This is a simple x86 32 bit operating system written from scratch, based on Carlos Fenollosas OS tutorial. It contains the following components:
- Boot loader
- Operating system kernel, including
- ISRs to handle CPU interrupts
- VGA driver
- Keyboard driver
- Shell
- Dynamic memory allocation
brew install qemu nasm
https://github.com/lordmilko/i686-elf-tools#mac-os-x
brew install i386-elf-binutils
brew install i386-elf-gcc
brew install i386-elf-gdb
export PATH="/usr/local/Cellar/x86_64-elf-binutils/<version>/bin/:/usr/local/Cellar/x86_64-elf-gcc/<version>/bin/:/usr/local/Cellar/i386-elf-gdb/<version>/bin:$PATH"
make run
make debug
In GDB shell:
- Set breakpoint at function (e.g.
start_kernel
):b start_kernel
- Start execution:
c
- Jump to next instruction:
n
- Print variable:
p <variable_name>