Update the console cursor position code to reflect the changes.
[monolithium.git] / README
1 ********************************************************************************
2               __  ___                  ___ __  __    _               
3              /  |/  /___  ____  ____  / (_) /_/ /_  (_)_  ______ ___ 
4             / /|_/ / __ \/ __ \/ __ \/ / / __/ __ \/ / / / / __ `__ \
5            / /  / / /_/ / / / / /_/ / / / /_/ / / / / /_/ / / / / / /
6           /_/  /_/\____/_/ /_/\____/_/_/\__/_/ /_/_/\__,_/_/ /_/ /_/ 
7
8 ********************************************************************************
9
10 Monolithium is a 32-bit operating system for x86 PCs. It is not a Unix-like
11 system, and shares almost nothing with the Unix architecture. Written
12 completely from scratch, it is completely incompatible with other operating
13 systems. Currently, only the Monolithium kernel is implemented. The other major
14 components, the "system library" and "system manager", are still missing.
15
16 Monolithium wasn't implemented according to any existing design, it was more or
17 less designed as it was implemented, so the current interface may not be
18 consistent. During this phase of its development, its kernel module interface
19 and application programming interface are not stable and subject to major
20 changes.
21
22 FREQUENTLY ASKED QUESTIONS
23
24 1) Why write another OS from scratch?
25
26 Most software development today is focused on assembling software from existing
27 "building blocks", using libraries and high-level programming languages, which
28 are designed to be complex and generic because they need to cover a lot of use
29 cases. Simplicity is a very useful trait that is often overlooked. Monolithium
30 is one of the few operating system projects with simplicity as its primary goal.
31
32 2) Why is there no development history?
33
34 I started this project in 2011, before I understood how VCS systems work and why
35 they're important. I made backups at regular intervals, but since I didn't use
36 git, there are no commits before the first release.
37
38 3) Will the interface ever become stable?
39
40 Having a stable interface, which will not change to the extent that later
41 versions break software running in userspace, is one of the end goals of
42 the project.