Linux SoftwareSystemBootTCCBOOT 0.1

TCCBOOT 0.1


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
Developer:   Fabrice Bellard
      more software by author →
Price:  0.00
License:   GPL (GNU General Public License)
File size:   184K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


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.
tags linux kernel  with the  you can  from the  the tinycc  tested with  the kernel  kernel with  address 0x00100000  the qemu  kernel image  source code  compile and  

Download TCCBOOT 0.1


 http://fabrice.bellard.free.fr/tcc/tccboot-0.1.tar.gz


Authors software

FFmpeg 0.4.9 pre1 (by Fabrice Bellard)
FFmpeg is a complete solution to record, convert and stream audio and video

Tiny C Compiler 0.9.23 (by Fabrice Bellard)
Tiny C compiles so fast that even for big projects Makefiles may not be necessary

QEMU 0.8.2 (by Fabrice Bellard)
QEMU is a fast processor emulator

TinyGL 0.4 (by Fabrice Bellard)
TinyGL is a small, free and fast Subset of OpenGL for embedded systems or games.

It is a software only implementation

TCCBOOT 0.1 (by Fabrice Bellard)
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


Similar software

TCCBOOT 0.1 (by Fabrice Bellard)
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

Gujin 1.6 (by Etienne Lorrain)
Gujin is a PC boot loader which can analyze your filesystems

Filesystem in Userspace 2.6.1 (by Miklos Szeredi)
FUSE can implement a fully functional filesystem in a userspace program.

Here are some key features of "Filesystem in Userspace":

cryptoswap 0.0.3 (by Mike Petullo)
The cryptoswap package supports building an encrypted swap partition when a system boots

Kernelconfig 1.0 (by Ryan Mann)
Kernelconfig is a program that performs the steps required to configure, build, and install the Linux kernel.

It also has the abil

Linux IP Firewalling Chains 1.3.10 (by Jos Vos)
Linux IP Firewalling Chains is an update to the 2.0 Linux Firewalling code, for the 2.2 Linux kernel

Splashy 0.2.2 (by Luis M and Otavio Salvador)
Splashy is a boot splash program that doesn't require patching the Linux kernel

Kernel Mode Linux 2.6.19_001 (by Toshiyuki Maeda)
Kernel Mode Linux project is a technology which enables us to execute user programs in kernel mode

vp-usb-lock 0.2.1 (by Tim Theede)
vp-usb-lock is a Linux kernel driver and PAM module that utilizes the PC wireless USB lock and makes it possible to use it as authent

BootRoot 0.4 (by Jonathan Rosenbaum)
BootRoot creates a boot disk with lilo, a kernel and an initrd image


Other software in this category

Ext2 Filesystems Utilities 1.39 (by Theodore Ts'o)
Ext2 Filesystem Utilities project (e2fsprogs) contain all of the standard utilities for creating, fixing, configuring , and debugging

Linux on the Microsoft Xbox (by David Pye)
The Xbox Linux Project aims to privide a version of GNU/Linux for the Xbox, so that it can be used as an ordinary computer.

Linux

LILO 22.7.3 (by John Coffman)
LILO is a Boot loader for Linux/x86 and other PC operating systems

Syslinux 3.31 (by H. Peter Anvin)
SYSLINUX is a boot loader for the Linux operating system which operates off an MS-DOS/Windows FAT filesystem

GNU GRUB 1.95 (by Yoshinori K. Okuji)
GNU GRUB project, which is a rewrite of GRUB, is alive and under development

    search


Featured Software

jEdit 4.3 pre8
jEdit is an Open Source text editor written in Java

Opera 9.02
Surf the Internet in a safer, faster, and easier way with Opera browser

GNU Aspell 0.60.4
GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


Subscribe in Rojo
Google Reader
Add to My Yahoo!

Add to My AOL
Subscribe with Bloglines
Subscribe in NewsGator Online
Add 'nixbit linux software' to Newsburst from CNET News.com
del.icio.us nixbit linux software


Top tags