A home-made, hobby operating system written for AMD64.
This is a hobby project that I've started when I was really bored in the evenings, without thinking too much in advance. I was doing it just for fun and to get some experience in the system programming.
- Install required packages
sudo apt-get install build-essential ninja cmake flex libgmp3-dev libmpc-dev libmpfr-dev texinfo qemu
- Rebuild toolchain: run
Toolchain/build-toolchain.sh
. It will download and set up tools such as binutils and GCC for cross-compilation - Run
create-projects.sh
. It will run CMake to create all necessary build files. You would also have to run this file whenever you make any changes to the CMake project files(e.g. add new cpp file to the project). - During the previous step, the script would have created two separate folders -
Build/System
andBuild/Tests
. First one is cross-compiled code and contains actual OS binaries. Second one is a hosted compilation of some of the modules to be able to run unit tests on them. - To run the OS, you have to first build it. Run
ninja && ninja image && ninja run
to build the OS, create a disk image and run it in qemu. This should be done inBuild/System
folder. - To run unit tests, run
ninja && ninja tests
inBuild/Tests
.
Please feel free to contribute to the project however you would like to. Any help, tips or constructive criticism is welcome.
Neptune OS is licensed under MIT License