Skip to content

lithium-os/lithium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lithium

GitHub License GitHub last commit

GitHub code size in bytes

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.

Architecture Choices

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.

Why an OS project in 202X?

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.

How to build?

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.

How to Contribute?

Contribution guidelines and helpful tips can be found in the Contributing Guide

License

Lithium is licensed under the GNU General Public License 3.0.

About

Lithium is an OS, wow!

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published