Kernel/README.md

1.4 KiB
Raw Blame History

MiniOS Kernel (ARMv7)

This is a minimal bare-metal ARM kernel project built for educational and prototyping purposes.
It includes multitasking, a UART shell, a simple task scheduler, and IRQ handling.
Tested and compatible with Windows 10 using arm-none-eabi-gcc and QEMU.


Features

  • ARMv7 Bootloader (boot.s, boot.ld)
  • UART driver (uart.c, uart.h)
  • Task manager with real context switching (task.c, switch.s)
  • Round-robin scheduler triggered by timer IRQ (irq.s)
  • Interactive shell via UART (shell.c)
    • Supported commands:
      • ps list tasks
      • echo simple message
      • halt stop execution

Requirements


How to Build and Run

make
qemu-system-arm -M versatilepb -m 128M -nographic -kernel kernel.bin

Once running, you'll see:

MiniOS Kernel Booted
MiniOS Shell>

Type one of the supported commands (ps, echo, halt).


Next Steps (Optional)

  • Virtual File System (VFS)
  • ls, cat, cd shell commands
  • ELF binary loader
  • FAT32 filesystem support
  • Advanced multitasking with priorities

Author

Built by Georgiana using ARM bare-metal architecture.
Powered by QEMU and the GNU ARM Toolchain.