lin0
             _._
           e/` '\,.eo-__.     lin0 (linux zero) is a
          '/.' .|_/e--. '\e   super minimal source
    ,;-o-.'|`  //e    e\ |`   based linux meta
  ./' ,e0\o   //-o.__. ,. \'  distribution, aimed
 ./` /' -/e   e\o_/___.  \|'  at power users or
 e|`/`,o-o\  /v-/e_.  '\. \.  minimalism enthusiasts
'/  ._e._, \ //    \`  \e |'
'|'"/     \.V |    `|' `|'|`  it was born from
`|e`|'    | # /    `|.  |`|`  exercises in how
e|` `    /\- ,\    e|'  '\`   minimal a linux system
 '`    _/  / / \     `  `|'   can get.
   .,wW'^^^//;^-^;^;w_


the distro features a barebones system built from
scratch:

- the linux kernel, without initrd
- musl libc
- mksh (the myr korn shell)
- tcc (tiny C compiler)
- toybox
- simple configs and a shell script init

all the rest is optional and can be built from
this if needed. we provide optimized configurations
for some platforms, lin0 also gives you, for your
convenience, much needed programs: make and curl.


release notes

v0.0.2: improved compiler toolchain
v0.0.1: initial release


roadmap

current work:

- adjust kernel build:
  + build hpelitedesk with firmware builtin


features that may fit lin0:

- make system compile itself
- improve rpi3b+ rootfs
- support mod loading and daemons in init script
- improve issue file or provide a login program: ly
- create man pages
- support rpi zero w
- support rpi cm5
- add lin0 to fetch et al commands


images

if you don't want to build the whole system we
provide system images in various formats so you can
start with a ready environment.


tarballs

our tarballs are compressed with xz, thus .tar.xz
files, these are targeted at platforms, and do not
include the linux kernel:

v0.0.2:

- x86_64 [3.3Mb]

v0.0.1

- arm64 [3.0Mb]

and for specific platforms, including the kernel:

- hp elite desk 800 g1 [13Mb]
- pinebook pro [13Mb]
- raspiberry pi 3b+ [26Mb]


docker

we also provide docker images for quick testing or
building applications. this image features an easy
way to use musl libc and the tcc compiler.

	docker push bleemayer/lin0:latest

architectures supported are the same as tarballs.


installation


from source

clone this repo with:

	git clone https://terminal.pink/lin0

the installation is a 3-step process:

- copy your kconfig to configs/MODEL-linux.config
- run platform=PLATFORM ./make.sh, this will
  build the root filesystem. see the available
  platforms in the configs folder
- copy the generated rootfs to your target system

the installer will copy any extra packages present
at the pkg folder to your /home/root/ folder.


from tarball

if you downloaded the tarball you can simply untar
it to your destination partition. then copy your
kernel to the boot folder.


usage

after built the system should boot to a login
prompt, the default user is root and password is
lin0.

however, your lin0 system is not ready yet for real
work: some configuration is needed, since we don't
want to give you a default. hence, you need to:

- create the /etc/resolv.conf file
- add more users
- change the default password
- install needed software, e.g. wpa_supplicant

the rest is up to you. welcome to lin0!


getting help

use the mailing list, to ask a question just send
an email to:

lin0 AT terminal DOT pink

i plan to create a wiki to let users contribute
easily.


license

this software is licensed under the BSD 2-clause
license.

(C) 2023-25 Brian Mayer