Skip to content
A simple operating system I am working on with a basic CLI
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
iso/boot/grub
.bochsrc
.gitignore
Makefile
README.md
edit.c
gdt.c
idt.c
io.s
irq.c
isrs.c
jonathan-os.sublime-project
jonathan-os.sublime-workspace
kb.c
kmain.c
link.ld
loader.s
scrn.c
serial.c
stage2_eltorito
system.c
system.h
terminal.c
timer.c
utilities.c

README.md

Jonathan's Simple Operating System

About

This is a simple, CLI-based operating system that I am building for fun and to learn about how operating systems work.

Getting Started

Prerequisites

  • Bash Shell
  • Bochs
  • Bochs SDL plugin
  • NASM Assembler
  • build-essential
  • GCC (in build-essential)
  • genisoimage

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

or

$ 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

Authors

Errors

If you find an error (there are plenty) that's not already listed, please open a new issue.

Contributing

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.

Acknowledgements

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.

License

This project is licensed under the GNU GPL v3. Follow the link for more details.

You can’t perform that action at this time.