DietLinux

Software Screenshot:
DietLinux
Software Details:
Version: 1.0
Upload Date: 3 Jun 15
Developer: DietLinux Team
Distribution Type: Freeware
Downloads: 172

Rating: 3.5/5 (Total Votes: 2)

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.

Similar Software

siduction Xfce
siduction Xfce

22 Jun 18

Play Linux
Play Linux

17 Feb 15

Unity Dark 64
Unity Dark 64

20 Feb 15

Comments to DietLinux

Comments not found
Add Comment
Turn on images!