Skip to content
/ OS1 Public

Basic operating system for self-learning purposes

Notifications You must be signed in to change notification settings

jarmond/OS1

Repository files navigation

OS1

This a operating system project for the purposes of the self-learning.

Usage

Compile bootloader, kernel and libaries using the Makefile. This requires gcc and a recent version of nasm (Homebrew).

make

Run using the Bochs x86 emulator.

bochs -f bochsrc

Architecture

The OS is designed to map onto a (virtual) floppy disk with no filesystem.

Bootloader is in bootldr.asm. It is designed to fit into the first sector of the disk (512 bytes). Space is left on the first track for loading an extended bootloader (not implemented). The kernel is installed on the remaining tracks.

The bootloader sets the video mode and prints some wakeup message. It then loads the kernel track-by-track into memory (see bootldr.asm for memory map). The floppy disk track is read using INT 13h into a disk buffer (18384 bytes, exactly 1 track), and then copied to location 0xf000. After loading the kernel, it enters protected mode and jumps to kernel start (0xf000).

  • Jon Armond Feb' 2017

About

Basic operating system for self-learning purposes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published