A simple, educational ARM-based operating system kernel running on QEMU. This is a text-based UART-only version that includes basic OS components.
-
Memory Management
- Dynamic memory allocation and deallocation
- Block splitting and coalescing
- Memory usage visualization
-
Process Management
- Simple process creation and termination
- Round-robin scheduling
- Process states (Ready, Running, Blocked, Terminated)
- CPU usage tracking
-
File System
- In-memory tree-like structure
- Support for files and directories
- Commands: ls, cd, mkdir, touch, cat, edit, rm
-
System Monitor
- Interactive visualization of system resources
- Memory usage display
- Process activity display
- CPU usage monitoring
To build JasOS, you'll need an ARM cross-compiler (arm-none-eabi-gcc) and QEMU.
# Build the kernel
make
# Run the kernel
make run
help
- Show available commandsversion
- Show kernel versionclear
- Clear screeninfo
- Show system infoexit
- Quit (halt system)
ls
- List directory contentscd <dir>
- Change directorypwd
- Print working directorymkdir <name>
- Create directorytouch <name>
- Create empty filecat <file>
- Display file contentsedit <file>
- Edit filerm <name>
- Remove file or directory
ps
- List processestestproc
- Create a test processkill <pid>
- Terminate a process
memdump
- Show memory statistics
monitor
- Start the system monitor
When in the system monitor mode, the following commands are available:
overview
- Show system overviewmem
- Show detailed memory informationproc
- Show detailed process informationhelp
- Show help screenexit
- Exit monitor and return to shell
JasOS is organized into several components:
- Core Kernel - Handles initialization and shell interface
- Memory Manager - Manages heap and allocation
- Process Manager - Handles process creation and scheduling
- File System - Manages file and directory operations
- System Monitor - Provides visualization of system resources
To exit QEMU, press Ctrl+A, then X.
This project is for educational purposes only.