oasis is a small linux system.
It is probably quite a bit different from other Linux-based operating systems you might be familiar with, and is probably better compared to a BSD.
There are many features that distinguish it from other operating systems:
All software in the base system is linked statically, including the display server ( velox ) and web browser ( netsurf ). Compared to dynamic linking, this is a simpler mechanism which eliminates problems with upgrading libraries, and results in completely self-contained binaries that can easily be copied to other systems.
All packages are built with samurai , using build manifests generated by Lua scripts . This involves considerable up-front packaging cost, but minimal maintenance cost, and offers numerous advantages, including near optimal build times, predictable and reproducible builds, reduced build-time dependencies, and incremental builds even across package boundaries.
Any POSIX system with git, lua, curl, a sha256 utility, standard
compression utilities, and an
can be used to bootstrap oasis. This makes it trivial to cross-compile,
even from non-Linux systems such as macOS or OpenBSD.
BearSSL is incredibly small and well written, but is not widely adopted. Through the use of libcurl, which now has native BearSSL support, and libtls-bearssl , an alternative implementation of libtls based on BearSSL, oasis uses BearSSL throughout the system. Only a few optional packages still require LibreSSL.
Instead, you configure a set of specifications
of what files from
which packages to include on your system, and the build system
writes the resulting filesystem tree into a git repository. This
can then be merged into
, or pulled from another machine.
Although the aim is to provide a complete system, there is a lot of free software out there, a lot of which does not match up well to our goals. Rather than trying to build and maintain yet another repository with thousands of packages, oasis works well with pkgsrc and nix . This makes it easy to extend your system with software you might need, while keeping the base system small and focused.
A guiding principle is that the
directory should be simple
enough for system administrators to understand completely and
customize appropriately. The most complex file in the default
configuration is the system initialization script,
at only 16 lines.
A major goal of oasis is to build with cproc , a C compiler which is much stricter about the ISO C standard than gcc or clang, and orders of magnitude smaller. Although this is a work-in-progress effort , all core packages, and most others, build successfully with cproc.
An install guide can be found on the wiki .
However, keep in mind that oasis is an ambitious project, and there is still a lot of work to do. Users should be should be comfortable building your own kernel and tinkering their system when things go wrong. If you do run into trouble, I'm always happy to help you out.
oasis uses smaller and simpler implementations of libraries and tools whenever possible:
If your favorite software is missing, keep in mind that you can likely still install it via pkgsrc or nix.
Feel free to contact me with any questions over email (address in commit log), or IRC at #oasislinux on Freenode.