DietLinux

DietLinux is a distribution based on dietlibc.
DietLinux is a distribution based on dietlibc. It contains a 2.6.x linux kernel, and will never support older kernels that do not support for devfs and tmpfs.

The boot process is optimized for small size, the upcoming 0.2-release should be able to boot from cdrom, floppy or usb-stick on all systems with at least 8mb of RAM.

General stuff

With the upcoming 0.2-release the boot-process is the same for all media. I got rid of ramdisk images for the root filesystem completely, and shrinked the initrd-images to about 60k (uncompressed). A kernel can be used with the boot system if it has support for initrd, tmpfs and devfs.

You need to configure the bootloader to give the kernel some bootparameters:

init=/linuxrc

We use linuxrc to set up some stuff. It will execle() init later

root=/dev/ram0

The initrd is the final root. Though our linuxrc will change it.

devfs=mount

Only needed if you didn't tell the kernel at compile time to automatically mount devfs

bootdevice=[]

To come, hints for linuxrc from which device we booted

Bootup, the initrd phase

linuxrc, stage 1

The first part is handled in linuxrc. I'ts described here short for better understanding what's going on.

* linuxrc gets started by the kernel. Besides linuxrc we have two directories in our ramdisk -- /dev with mounted devfs and /rootfs
* linuxrc mounts a tmpfs at /rootfs
* linuxrc creates basic directories in the rootfs (namely dev and initrd)
* linuxrc chdirs to /rootfs, calls pivot_root and chdirs / chroots in the new root. After this we have the old contents of the initrd under /initrd
* linuxrc remounts initrd/dev under /dev, and mounts /proc. With the dev remount we've put the open /dev/console file into the right filesystem.
* linuxrc umounts /initrd with MNT_DETACH set. Most likely initrd will not unmounted immediately but when calling execle() to exec init

For more details please consult the apkg sources.

linuxrc, stage 2

We're now getting to the second stage, still powered by initrd. That's the first stage you can influence without modifying the linuxrc-sources.

* linuxrc creates all directories in the rootfs
* linuxrc mounts procfs and sysfs
* linuxrc inits the built-in packagesystem. This includes trying to find a (a dietlinux media must have a file called `dietlinux-media' in its root) es well es the name of the initial package to load (from dietlinux-media)
* linuxrc loads the initial package (the apkg package system) and execl()s apkg with param -t (starts bootstrap). Most likely /initrd gets freed here, so we have about 60k additional space from now on.

apkg stage

Now it's apkgs turn to bootstrap a package set to the rootfs.

last updated on:
May 18th, 2005, 17:32 GMT
price:
FREE!
developed by:
DietLinux Team
homepage:
lart.info
license type:
GPL (GNU General Public License) 
category:
ROOT \ Linux Distributions

FREE!

In a hurry? Add it to your Download Basket!

user rating

UNRATED
0.0/5
 

0/5

Rate it!
2 Screenshots
DietLinuxDietLinux

Add your review!

SUBMIT