I would start by looking at the output of the buildroot tool that comes with busybox.
You assume you want to create your own Linux distribution, this is great, but you really need to know how to use the existing one first. I assume that you fully understand how Linux boots and works at a basic level. You will need
- Some kind of bootable media (in some cases it MAY be rum, but usually it isn’t), from which the firmware can be loaded (in most cases, firmware on x86 is a kind of BIOS or bio-like - except on things like Mac )
- Bootloader - I like to use syslinux because it is easy (and boots from dos file system)
- Nucleus
- Root file system - you can use initramfs for this, in which case it is loaded by the bootloader and expanded at boot time. Initramfs is cool, it avoids the need for “real” root fs or device block drivers, etc. (Due to some bar, but ram is easy).
- C library (if all your exes are not statically linked)
- Some user software
I would highly recommend using an emulator (like vmware) to test this, it significantly reduces processing time. The development system should have quite a lot of disk space, since you will probably have to compile everything in the list above and, possibly, some other tools (for example, gcc and C library) that are not small. Your build block should probably have the appropriate Linux distribution installed.
I did it and it is fun, but sometimes frustrating (debugging may be the mission itself)
Happy hack :)
Markr
source share