<pre>
********************************************************************************
              __  ___                  ___ __  __    _
             /  |/  /___  ____  ____  / (_) /_/ /_  (_)_  ______ ___
            / /|_/ / __ \/ __ \/ __ \/ / / __/ __ \/ / / / / __ `__ \
           / /  / / /_/ / / / / /_/ / / / /_/ / / / / /_/ / / / / / /
          /_/  /_/\____/_/ /_/\____/_/_/\__/_/ /_/_/\__,_/_/ /_/ /_/

********************************************************************************
</pre>

### What is Monolithium? ###

Monolithium is a 32-bit operating system for x86 PCs. It is not a Unix-like
system, and shares almost nothing with the Unix architecture. Written
completely from scratch, it is completely incompatible with other operating
systems. Currently, only the Monolithium kernel is implemented. The other major
components, the "system library" and "system manager", are still missing.

Monolithium wasn't implemented according to any existing design, it was more or
less designed as it was implemented, so the current interface may not be
consistent. During this phase of its development, its kernel module interface
and application programming interface are not stable and subject to major
changes.

### FREQUENTLY ASKED QUESTIONS ###

**1) Why write another OS from scratch?**

Most software development today is focused on assembling software from existing
"building blocks", using libraries and high-level programming languages, which
are designed to be complex and generic because they need to cover a lot of use
cases. Simplicity is a very useful trait that is often overlooked. Monolithium
is one of the few operating system projects with simplicity as its primary goal.

**2) Why is there no development history?**

I started this project in 2011, before I understood how VCS systems work and why
they're important. I made backups at regular intervals, but since I didn't use
git, there are no commits before the first release.

**3) Will the interface ever become stable?**

Having a stable interface, which will not change to the extent that later
versions break software running in userspace, is one of the end goals of
the project.

### COMPILING ###

Run the "setup" script to download, configure, and locally install required
packages, then run "make". To speed things up, use the -j flag to compile with
more threads in parallel.

Prerequisites:

* A POSIX-compatible environment.
* An internet connection (to download required packages).
