ghadeeras / nos

NOS stands for "Not an Operating System" ;-)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NOS

NOS, as opposed to DOS, stands for "Not an Operating System", or a "No Operating System" software. I am using it to learn and experiment with OS development (i.e. writing the software that takes control of the computer right after the firmware loads it into memory) but WITHOUT making the writing of an actual OS the goal of this endeavor.

What prompted this exercise is a longing for low-level, down-to-the-metal development when I felt that, as a developer, I completely owned my PC and was able to manipulate the hardware directly. That was back in the days of DOS and the MSX (the 80s and early 90s). I wanted to restore that, but on modern hardware.

NOTE: It turned out that there was a discontinued operating system with the same name. This one is certainly unrelated to it.

Building & Running

Requirements

  • NASM: Needed to compile the assembly code. I am using version 2.15.05
  • LLVM: Needed for its linker (to generate EFI application). I am using version 14.0.6.
  • QEMU: needed to run NOS in an emulator. I am using version 7.0.0.
  • The executable binaries of the above tools should be in the search PATH.
  • a POSIX-compatible environment: I am using (Git Bash on Windows).

How To

Easy! From a terminal:

  • Clone this repository somewhere.
  • Change directory into the cloned repository.
  • For a legacy x86 architecture (BIOS): $ ./run.x86.sh
  • For a modern x64 architecture (UEFI): $ ./run.x64.sh

About

NOS stands for "Not an Operating System" ;-)

License:GNU General Public License v3.0


Languages

Language:Assembly 95.6%Language:Shell 4.4%