TCCBOOT項目是一個引導裝載程序能夠直接從它的源代碼編譯並引導Linux內核。
TCCBOOT只有138 KB大的(未壓縮的代碼),它可以編譯和一個2.4 GHz的Pentium 4處理器運行一個典型的Linux內核,在不到15秒。
TCCBOOT是基於TinyCC編譯器,彙編器和連接器。 TinyCC是一個實驗產生一個非常小的,簡單的C編譯器,GNU C編譯器和二進制實用程序兼容。
TCCBOOT靴同樣的方式作為一個Linux內核,所以任何引導裝載程序,可以運行“的bzImage”Linux內核映像可以運行TCCBOOT。我只用ISOLINUX測試,但LILO或GRUB應該工作了。
TCCBOOT從存儲在初始RAM磁盤(initrd的)一個壓縮文件系統ROMFS讀取C語言或彙編源。它首先讀取文件“啟動/ tccargs'包含TinyCC命令行(相同的語法TCC可執行文件)。該TinyCC調用應該輸出一個二進制圖像'內核'。該圖像在地址0x00100000加載。 TCCBOOT然後做一個跳轉到地址0x00100000在32位平模式。這與“vmlinux的”內核映像的ABI兼容。
編譯:
TCCBOOT只使用Linux 2.4.26測試。為了建立TCCBOOT,你必須首先編譯內核2.4.26,因為簡單TCCBOOT使用一些二進制文件和頭從Linux內核。 TCCBOOT也需要TinyCC的源代碼(與TinyCC版本0.9.21測試)。您可以修改Makefile給予必要的路徑。
例如:
一個“Hello World”的ROMFS分區包括:(initrd.img中)。您可以從例如/目錄重建。你可以用QEMU仿真器的PC與“QEMU-tccboot'腳本測試它。
內核編譯:
為了您的信息,補丁“的linux-2.4.26-tcc.patch”給出了必要的修改,以建立一個Linux內核TCCBOOT(注:這是不是suffisant到與自己的Makefile構建內核 - 我從來沒有嘗試過)。相應的內核配置文件中的linux-2.4.26-配置。補丁是必要的,原因如下:
- 不支持的裝配指令:.rept,.endr偽,.subsection
- “#定義__ASSEMBLY__'需要組裝源
- 靜態變量不能從內聯彙編代碼中可以看出
- 打字/左值問題“? :'
- 沒有長長位字段
- “對齊”屬性不支持整體結構,僅供領域
- OBSCUR預處理器的bug
有些問題很容易被固定的,但我太懶了。可以肯定的是還是有很多漏洞由TinyCC / TCCBOOT生成的內核,但它至少可以引導並啟動一個外殼。
按類別搜索
熱門軟件
-
Endless OS 17 Aug 18
-
Navigatrix 19 Feb 15
-
OpenELEC 19 Jun 17
-
Cub Linux 11 Apr 16
-
Boot-Repair-Disk 20 Feb 15
-
Elive 20 Jan 18
-
Contiki 19 Feb 15
TCCBOOT
類似的軟件
顯影劑的其他軟件 Fabrice Bellard
意見 TCCBOOT
按類別搜索
熱門軟件
-
Linux Lite 20 Jan 18
-
Red Hat Linux 20 Feb 15
-
Linux AIO Ubuntu 20 Jan 18
-
PCLinuxOS 22 Jun 18
-
Slax 20 Feb 15
-
Linux Deepin 9 Dec 15
-
Xiaopan OS 20 Feb 15
評論沒有發現