sls
===
sls is a basic Linux distro using musl, sbase, ubase, and sinit.
Base system
-----------
The base system (sls.iso) includes:
- linux
- musl libc
- sbase
- ubase
- sinit
- dash
- oksh
- mandoc
- page
- bzip2
- sls
- rc.shutdown (just a tiny C program)
- e3 text editor
- sls-netutils
- sdhcp
- dropbear
Requirements
------------
In order to build sls you need:
- bzip2
- POSIX sh
- GNU Make
- gcc
- g++
- git
- autoconf
- automake
- flex
- bison
- elfutils-dev / libelf-dev
- libressl-dev / openssl-dev
- xorriso
- mtools
- grub-mkrescue
- nasm
- patch
Building
--------
To build sls and create an sls.iso, run build.sh.
Configuration
-------------
To configure sls, edit config.sh.
Hacking
-------
When writing C specifically for sls (e.g. rc.shutdown), use
https://suckless.org/coding_style/ as your style guide.
Networking and SSH (QEMU)
-------------------------
*on your host*, start QEMU and port forward SSH to your host:
qemu-system-x86_64 -m 512 -enable-kvm -bios /usr/share/qemu/OVMF.fd -cdrom sls.iso -net user,hostfwd=tcp::10022-:22 -net nic
*inside sls*, bring up networking:
up eth0
sdhcp
*inside sls*, start up dropbear:
mkdir /etc/dropbear
dropbear -R
*on your host*, log in:
ssh -p 10022 root@localhost