µLinux (uLinux) is a micro (µ)Linux Cloud Native OS designed for high performance, minimal overheads and decreased security footprint attack surface. µLinux is container-ready and is small enough with a lot of fat removed and stripped down you could almost consider it a "Unikernel" of sorts. If you care about performance, footprint, security and minimalism like I do you'll want to use µLinux for your workloads.
NOTE:: µLinux is NOT a full blown Desktop OS nor will it ever likely be. It is also not ever likely to build your favourite GCC/GLIBC/Clang software as it only ships with a very small C compiler and libc (musl). Consider using Alpine for a more feature rich system or any other "heavier" / "full featured" distro.
- Recent Linux Kernel
- Busybox userland
- Dropbear SSH
- Hybrid Live ISO
- Crude (to be replaced) package manager
uLinux currently supports building C and Assembly and ships with the following compilers and tools:
- Tiny C Compiler
- Flat Assembler
- Musl LibC
There is no support for GCC/GLIBC.
First make sure you have Docker installed on your system as the build uses this extensively to build the OS reliably across all platforms consistently.
Also make sure you have QEMU installed as this is used for testing and booting the OS into a Guest VM.
This repo contains prebuilt assets to get you started quickly without having to build anything yourself.
Please see the Release for the latest published versions of:
ulinux.iso-- Hybrid Live ISO with Installer.
kernel.gz-- The Kernel Image (Linux)
rootfs.gz-- The RootFS Image (INITRD)
Once booted with either the Hybrid Live ISO or Kernel + RootFS you can install uLinux to disk by typing in a shell:
# setup /dev/sda
/dev/sda is the device path to the disk you want to install to.
WARNING: This will automatically partition, format and install uLinux with no questions asked without hestigation. Please be sure you understand what you are doing.
$ make test
The OS comes pre-shipped with Dropbear (SSH Daemon) as well as a Busybox
Userland. The test script (
test.sh) also uses QEMU and sets up a User mode
network which forwards port
10022 to teh geust VM for SSh access.
You can access the guest with:
$ ssh -p 2222 root@localhost