Lithium is a general purpose x86_64 operating system. It's primarily developed in C with some features done in Assembly or even C++. Lithium is a continuation of and derivation of Horizon, a recently archived x86 OS project of similar structure and goal.
Lithium has one long-term goal as an operating system; to teach. To teach myself, other maintainers, and those interested in OS-level development.
This OS is x86_64, the freestanding 64-bit environment is provided by our bootloader of choice; Limine. Limine is an excellent bootloader, you'll want to run the ./bootstrap setup script to get the dependencies set up.
This OS is also attempting to be mostly binary compatible with Linux. This is to avoid the impossible project of rebuilding pretty much the entire software ecosystem from scratch and makes the process of porting exponentially easier.
For the most part, this is an educational side project. I don't have plans for this OS to really compete with already established systems like BSD, Linux, or Windows. Lithium is a tool to teach the fundamentals of operating systems and POSIX without having to build from ground-zero.
But also, I was inspired by other projects that are more progressed than this one currently is, the two biggest ones being:
Both of these are very different, one is a traditional monolithic kernel almost fully in C, the other is a modular kernel written vastly in C++.
This project, Lithium, is following the more traditional path of a monolithic kernel mostly in C. However I do roughly know where C++ could be a net benefit, so some regions may be developed in C++. Other languages like Zig or Rust are excluded from this project, not because of dislike for these languages, simply because... I don't know them well enough to make a project like this in them. Including languages I do not understand into the project sounds like an awful idea, and I simply will not allow it.
Ensure you have the required dependencies before compiling:
- x86_64-linux-gnu-gcc
- x86_64-linux-gnu-ld
- x86_64-linux-gnu-as
- limine-v10.x-binary git repo
- xorriso
- make
Once you've cloned the repo, and built the limine binary provided up here, the process is as simple as make iso. This builds and packages the OS automatically.
Contribution guidelines and helpful tips can be found in the Contributing Guide
Lithium is licensed under the GNU General Public License 3.0.