TCCBOOT 0.1
Sponsored Links
TCCBOOT 0.1 Ranking & Summary
File size:
0.18 MB
Platform:
Any Platform
License:
GPL (GNU General Public License)
Price:
Downloads:
1316
Date added:
2006-03-29
Publisher:
Fabrice Bellard
TCCBOOT 0.1 description
TCCBOOT project is a boot loader able to compile and boot a Linux kernel directly from its source code.
TCCBOOT is only 138 KB big (uncompressed code) and it can compile and run a typical Linux kernel in less than 15 seconds on a 2.4 GHz Pentium 4.
TCCBOOT is based on the TinyCC compiler, assembler and linker. TinyCC is an experiment to produce a very small and simple C compiler compatible with the GNU C compiler and binary utilities.
TCCBOOT boots the same way as a Linux kernel, so any boot loader which can run a bzImage Linux kernel image can run TCCBOOT. I only tested it with ISOLINUX, but LILO or GRUB should work too.
TCCBOOT reads C or assembly sources from a gzipped ROMFS filesystem stored in an Initial Ram Disk (initrd). It first reads the file boot/tccargs which contains the TinyCC command line (same syntax as the tcc executable). The TinyCC invocation should output one binary image kernel. This image is loaded at address 0x00100000. TCCBOOT then does a jump to the address 0x00100000 in 32 bit flat mode. This is compatible with the ABI of the vmlinux kernel image.
Compilation:
TCCBOOT was only tested with Linux 2.4.26. In order to build TCCBOOT, you must first compile a 2.4.26 kernel because for simplicity TCCBOOT uses some binary files and headers from the Linux kernel. TCCBOOT also needs the source code of TinyCC (tested with TinyCC version 0.9.21). You can modify the Makefile to give the needed paths.
Example:
An "Hello World" ROMFS partition is included (initrd.img). You can rebuild it from the example/ directory. You can test it with the QEMU PC emulator with the qemu-tccboot script.
Kernel compilation:
For your information, the patch linux-2.4.26-tcc.patch gives the necessary modifications to build a Linux kernel with TCCBOOT (NOTE: it is not suffisant to build the kernel with its own Makefiles - I never tried). The corresponding kernel configuration is in file linux-2.4.26-config. Patches are necessary for the following reasons:
- unsupported assembly directives: .rept, .endr, .subsection
- #define __ASSEMBLY__ needed in assembly sources
- static variables cannot be seen from the inline assembly code
- typing/lvalue problems with ? :
- no long long bit fields
- aligned attribute not supported for whole structs, only for fields
- obscur preprocessor bug
Some of these problems could easily be fixed, but I am too lazy now. It is sure that there are still many bugs in the kernel generated by TinyCC/TCCBOOT, but at least it can boot and launch a shell.
TCCBOOT is only 138 KB big (uncompressed code) and it can compile and run a typical Linux kernel in less than 15 seconds on a 2.4 GHz Pentium 4.
TCCBOOT is based on the TinyCC compiler, assembler and linker. TinyCC is an experiment to produce a very small and simple C compiler compatible with the GNU C compiler and binary utilities.
TCCBOOT boots the same way as a Linux kernel, so any boot loader which can run a bzImage Linux kernel image can run TCCBOOT. I only tested it with ISOLINUX, but LILO or GRUB should work too.
TCCBOOT reads C or assembly sources from a gzipped ROMFS filesystem stored in an Initial Ram Disk (initrd). It first reads the file boot/tccargs which contains the TinyCC command line (same syntax as the tcc executable). The TinyCC invocation should output one binary image kernel. This image is loaded at address 0x00100000. TCCBOOT then does a jump to the address 0x00100000 in 32 bit flat mode. This is compatible with the ABI of the vmlinux kernel image.
Compilation:
TCCBOOT was only tested with Linux 2.4.26. In order to build TCCBOOT, you must first compile a 2.4.26 kernel because for simplicity TCCBOOT uses some binary files and headers from the Linux kernel. TCCBOOT also needs the source code of TinyCC (tested with TinyCC version 0.9.21). You can modify the Makefile to give the needed paths.
Example:
An "Hello World" ROMFS partition is included (initrd.img). You can rebuild it from the example/ directory. You can test it with the QEMU PC emulator with the qemu-tccboot script.
Kernel compilation:
For your information, the patch linux-2.4.26-tcc.patch gives the necessary modifications to build a Linux kernel with TCCBOOT (NOTE: it is not suffisant to build the kernel with its own Makefiles - I never tried). The corresponding kernel configuration is in file linux-2.4.26-config. Patches are necessary for the following reasons:
- unsupported assembly directives: .rept, .endr, .subsection
- #define __ASSEMBLY__ needed in assembly sources
- static variables cannot be seen from the inline assembly code
- typing/lvalue problems with ? :
- no long long bit fields
- aligned attribute not supported for whole structs, only for fields
- obscur preprocessor bug
Some of these problems could easily be fixed, but I am too lazy now. It is sure that there are still many bugs in the kernel generated by TinyCC/TCCBOOT, but at least it can boot and launch a shell.
TCCBOOT 0.1 Screenshot
TCCBOOT 0.1 Keywords
TCCBOOT
TinyCC
TCCBOOT 0.1
Linux kernel
boot loader
source code
to compile
directly from
able to
kernel
boot
linux
code
compile
assembly
TCCBOOT 0.1
Bookmark TCCBOOT 0.1
TCCBOOT 0.1 Copyright
WareSeeker periodically updates pricing and software information of TCCBOOT 0.1 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of TCCBOOT 0.1 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
linux kernel development
compile linux kernel
linux kernel source
understanding linux kernel
linux kernel version
linux kernel 2.6
linux kernel tutorial
linux kernel compilation
linux kernel parameters
linux kernel compile
linux kernel design
linux kernels
linux kernel internals
linux kernel archives
linux kernel tutorials
linux kernel hacking
linux kernel programming
linux kernel mailing list
Related Software
KBoot project is a proof-of-concept implementation of a Linux boot loader based on kexec. Free Download
Bootchart is a tool for analysis and visualization of the GNU/Linux boot process. Free Download
kexec-chooser is a small utility that makes warm rebooting into new kernels under Debian a bit easier. Free Download
boot-dvd project contains a couple of Perl-scripts that can be used to create a custom DVD-ISO image. Free Download
FTP Copy (fcp for short) is a program which currently has the ability to copy single files from your computer into any folder in Free Download
bicl is a tool for editing the builtin command line boot arguments in binary files like the PPC64 Linux compressed kernel image. Free Download
Instant is a Python module that allows for instant inlining of C and C++ code in Python. Free Download
Pentoo is a Linux LiveCD, it means that you can boot a linux environment on any x86 based PC. Free Download
Latest Software
Popular Software
Favourite Software