63 lines
No EOL
1.4 KiB
Markdown
63 lines
No EOL
1.4 KiB
Markdown
# 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
|
||
|
||
- **Windows 10**
|
||
- [Git Bash](https://git-scm.com/download/win)
|
||
- [GCC ARM Embedded Toolchain](https://developer.arm.com/downloads/-/gnu-rm)
|
||
- [QEMU for Windows 64-bit](https://qemu.weilnetz.de/w64/)
|
||
|
||
---
|
||
|
||
## How to Build and Run
|
||
|
||
```bash
|
||
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. |