The Monolithium Operating System Kernel for x86 architecture computers

coderain d0a03df8a3 Improve the language used 4 سال پیش
drivers cf0e7bf409 Create the bin directories during the build process 6 سال پیش
kernel d0a03df8a3 Improve the language used 4 سال پیش
libraries dbbcc22291 Fix qsort 6 سال پیش
programs cf0e7bf409 Create the bin directories during the build process 6 سال پیش
sdk d0a03df8a3 Improve the language used 4 سال پیش
tests 126dd9162c Implement vectored I/O. 6 سال پیش
tools e06a5d13a3 Add an automatic build environment setup script for POSIX-compliant systems. 6 سال پیش
.gitignore 1d2617f421 Reorganize the files. 6 سال پیش
COPYING 6556847b55 Initial commit. 8 سال پیش
Makefile 0230a6c7f2 Fix the paths in the makefile 5 سال پیش
README.md e06a5d13a3 Add an automatic build environment setup script for POSIX-compliant systems. 6 سال پیش
common.mk ae4db17b61 Fix a bug in common.mk. 6 سال پیش
grub.cfg c1387c687c Reimplement basic locking. Fix bugs. 6 سال پیش
setup c1387c687c Reimplement basic locking. Fix bugs. 6 سال پیش
syscalls.awk c2c026e397 Automatically generate syscalls.h and syscalls.c as well 7 سال پیش

README.md

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

********************************************************************************

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).