functional kernel with IRQ, shell and UART
Find a file
2025-04-07 11:16:01 +00:00
boot.ld Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
boot.s Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
irq.s Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
kernel.c Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
Makefile Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
README.md Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
shell.c Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
shell.h Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
startup.s Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
switch.s Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
task.c Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
task.h Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
uart.c Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00
uart.h Initial commit - full kernel with IRQ, shell and UART 2025-04-07 11:16:01 +00:00

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.