DietLinux is a distribution based on dietlibc.. #Operating system #Linux distribution #UNIX distro #DietLinux #Linux #Distribution
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.
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
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.
- runs on:
- Linux
- filename:
- dietlinux-snapshot.iso
- main category:
- Linux Distributions
- developer:
- visit homepage
IrfanView 4.67
Microsoft Teams 24060.3102.2733.5911 Home / 1.7.00.7956 Work
Bitdefender Antivirus Free 27.0.35.146
4k Video Downloader 1.5.3.0080 Plus / 4.30.0.5655
ShareX 16.0.1
calibre 7.9.0
7-Zip 23.01 / 24.04 Beta
Zoom Client 6.0.3.37634
Context Menu Manager 3.3.3.1
Windows Sandbox Launcher 1.0.0
- Zoom Client
- Context Menu Manager
- Windows Sandbox Launcher
- IrfanView
- Microsoft Teams
- Bitdefender Antivirus Free
- 4k Video Downloader
- ShareX
- calibre
- 7-Zip