Emyx is an ealry-stage operating system with a kernel and libc written from scratch.
- Bootable ISO (GRUB/Multiboot)
- VGA text-mode terminal output
- UART serial debug (COM1)
- GDT and IDT setup and load
- CPU exceptions (0-31) with panic diagnostics
- PIC remap and IRQ controller helpers (mask/unmask, EOI)
- IRQ0 timer ticks (PIT configured)
- IRQ1 keyboard press decoding
- Kernel shell with utility commands (help, clear, ticks, irq, panic, reboot)
- Physical memory managment
- Virtual memory managment (identity paging)
- Basic kernel heap allocator (
kmalloc,kfree)
- Cross toolchain for
i686-elf(i686-elf-gcc,i686-elf-ar, ...) grub-mkrescueqemu-system-i386
Toolchain setup notes: docs/cross-compiler.md
git clone https://github.com/j1banez/emyx.git
cd emyx
make runUse make help for more information.
make gdb
# In another terminal
gdb kernel/emyx.kernelIn GDB:
(gdb) target remote :1234
(gdb) b kmain
(gdb) c
(gdb) bt
(gdb) info registers
(gdb) n
[...]