A 32-bit, x86 operating system written in C.
InstructionOS is a hobby operating system written with a particular interest in low-level, test-driven development and comprehensive unit test coverage integrated from the beginning, something other kernels severely lack. The kernel code is clean, well-structured and commented to maximise educational value.
- Kernel written in ANSI C
- Bootloader written in NASM assembly
- Build toolchain written in Makefiles
- Comprehensive unit test coverage
- Multiboot Specification v1 compliant
- Full 32-bit protected mode
- Basic keyboard handler
- VGA text mode
InstructionOS isn't a fully-fledged 'operating system' yet, but it does boot and is being actively developed. The obligatory screenshot (which is pretty underwhelming at the moment) is here:
InstructionOS is developed on Ubuntu running in VMWare workstation.
A C cross-compiler is required (i686-elf-gcc); my bash script will build this for you, instructions for doing it manually are here.
Additional tools must also be installed: apt install build-essential nasm qemu-system-i386
make
will boot the kernel in QEMU, having first built it using the C freestanding toolchain.
make test
will run the unit tests, having first built the kernel and unit tests using the standard C11 toolchain.
make clean
should be run before switching between these two commands, otherwise you'll get a linker failure (given the differing toolchains).
Additional targets exist in the main Makefile, ideal for development IDE's with integrated Makefile support (eg. JetBrains CLion or Visual Studio Code).
InstructionOS is free software licensed under the terms of the MIT License, see LICENSE for more details.
InstructionOS was created by Frank Ray, Better Software UK.