Jonathan's Simple Operating System
This is a simple, CLI-based operating system that I am building for fun and to learn about how operating systems work.
- Bash Shell
- Bochs SDL plugin
- NASM Assembler
- GCC (in build-essential)
On Ubuntu, you can install the prerequisites with the following command:
sudo apt install build-essential nasm genisoimage bochs bochs-sdl
On other Linux systems, you may have to install the prequisite packages manually and/or compile Bochs with the SDL plugin (for example, the AUR does not have bochs-sdl). You can find more information on it here. After extracting Bochs, you can compile it with SDL using the following commands.
$ ./configure --with-sdl $ make $ sudo make install
I have only tested this on Arch Linux and Ubuntu, however, so it's possible that set up problems may come up on other systems, such as Windows or OS X. Additionally, I have only ran this OS through Bochs on Bash, so this may not work on other shells.
Running the OS
Use the following commands to run the OS
- To build the OS
$ make fresh
- To run (and build if necessary) the OS
$ make run
- To remove object and other intermediate files (highly recommended, not doing so has occasionally caused problems)
$ make clean
- Jonathan Tong — Jont828
If you find an error (there are plenty) that's not already listed, please open a new issue.
If you would like to contribute new features/material or by fixing errors, please fork the repository, make your changes, and open a pull request.
I would like to thank Erik Helin and Adam Renberg, the authors of The Little Book About OS Development, and Brandon Friesen, the author of Bran's Kernel Development Tutorial, whose tutorials I used to begin the project.
This project is licensed under the GNU GPL v3. Follow the link for more details.