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生成的内核,但它至少可以引导并启动一个外壳。
按类别搜索
热门软件
-
Alpine Linux 17 Aug 18
-
Distro Astro 17 Feb 15
-
Robolinux 19 Jun 17
-
Kali Linux 22 Jun 18
-
Manjaro Netbook Edition 28 Apr 17
-
Unity Linux 15 Apr 15
-
Android-x86 22 Jun 18
TCCBOOT
类似的软件
boottool
3 Jun 15
s6-linux-utils
19 Feb 15
Upstart
17 Feb 15
WiLL-OSX Plymouth-Theme Mountain Lion
20 Feb 15
显影剂的其他软件 Fabrice Bellard
意见 TCCBOOT
按类别搜索
热门软件
-
AirSnort 3 Jun 15
-
Guadalinex Lite 17 Feb 15
-
Puppy Linux "Slacko" 14 Jul 16
-
NAS4Free 2 Oct 17
-
Lubuntu 16 Aug 18
-
Ubuntu GNOME 16 Aug 18
-
DEFT 9 Mar 17
评论没有发现