oasis is a small linux system
It is suitable for a range of uses including server and desktop. oasis provides a solution for many common tasks:
- Display server (velox, wayland-based)
- Terminal (st)
- Program launcher (dmenu)
- Web browser (netsurf with custom frontend)
- Document viewer (mupdf)
- Media player (mpv)
- HTTP server (nginx)
- DNS server (nsd)
- BitTorrent client (transmission)
The entire system can be compiled in minutes, and uses up up only a couple hundred megabytes of disk space (despite being statically linked). It is entirely C-based, and most packages make limited use of GNU C extensions. Additionally all packages are built in a way that ensures the binaries are 100% reproducible.
Updating your system is as simple as
git -C /src/oasis pull
samu -C /src/oasis commit
doas git -C / merge
For more information, see the wiki.
- Binaries should be linked statically. This is made possible by lightweight system components like musl libc, and a central source repository to keep track of system-wide dependencies.
- Software components should be built in a way that allows the user to easily customize and/or modify as needed.
- Sources can be referenced through a URL or git submodule, but not included directly in the oasis repository. This way, users only need to download the sources they are interested in.
/etc
directory should be simple enough for system administrators to understand in its entirety and customize appropriately.
oasis uses software from a lot of different packages. The core system is built up from the following:
- musl (libc)
- suckless
- sbase, ubase, sinit, sdhcp
- openbsd
- pax, fmt, diff, patch, doas
- awk
- bearssl
- byacc
- bzip2
- bc
- curl
- e2fsprogs
- git
- iproute2
- kbd
- lua
- mandoc
- samurai (ninja-compatible build tool)
- openntpd
- openssh
- perp (process supervisor)
- pigz (gzip)
- rc
- tz
- util-linux (fdisk, losetup)
- xz
Feel free to contact me with any questions over email (address in commit log), or IRC at #oasislinux on Freenode.