A simple hobby OS targeting x86
nasm
clang
- with linker (
lld.ld
)
- with linker (
grub
mkisofs
qemu
gdb
(for debugging)- stage2_eldorito
- Download from here to
src/iso/stage2_eltorito
- Download from here to
$ sudo pacman -S nasm clang lld grub cdrkit qemu gdb
# clang, nasm, qemu, grub are required
# Compile:
make # -j4 for multithreded compile (4 cores)
# Run in qemu
make run
# Debug
make debug
# In a seperate terminal...
gdb
break kmain
continue
Note for
gdb
: you may get "...auto-loading has been decline", to fix this, follow the instructions to enable executation below for that directory
- Create starting point in 32 bit
- Create GDT
- Create basic IDT/IQR's
- Keyboard/timer support
- Multiboot info
- Add basic paging
- Map kernel at higher half
- Create page frame allocator
- Crate frames on demand
- Swap frames on demand
- Heap support
- VFS/initrd
- Multitasking
- Userland