MiniOS is a small Track B project: a terminal-based mini operating system written in C. It uses five custom libraries for string handling, math, memory, screen output, and keyboard input, then combines them into a shell with a virtual file system and a cooperative scheduler.
- Custom
string,math,memory,screen, andkeyboardlibraries - A non-blocking shell loop
- In-memory virtual files backed by the custom allocator
- A background scheduler task that keeps running while the shell stays usable
- Terminal output and input handled without
string.h,math.h,malloc, orfree
The flow is simple and easy to explain in evaluation:
- Keyboard reads user input.
- Parser splits the line into command and arguments.
- Shell decides which command to run.
- Memory allocates or frees file data.
- Math helps with arithmetic and boundary checks.
- Screen prints the final result to the terminal.
| Command | Description |
|---|---|
help |
Show available commands |
echo <text...> |
Print text |
math <a> <op> <b> |
Arithmetic using +, -, *, / |
touch <file> |
Create a file in virtual memory |
write <file> <data...> |
Write or overwrite file contents |
read <file> |
Read a file from virtual memory |
ls |
List all files with sizes |
delete <file> |
Delete a file and free its memory |
run |
Run one scheduler tick |
mem |
Show virtual memory usage |
clear |
Clear the terminal and restart the banner |
exit |
Quit MiniOS |
make
./miniOSOptional cleanup:
make clean- This project follows Track B: Mini Operating System.
- Files are stored only in RAM, so they reset when the program closes.
- The scheduler is cooperative, not preemptive.
- The virtual RAM size is 1 MB.
- No persistent storage yet.
- No real multitasking or process isolation.
- Input handling is terminal-based, so it depends on a POSIX-like environment.
helpshows the full command listtouch,write,read,ls, anddeletework togetherrunshows the background countermemshows allocator usageclearredraws the boot banner cleanly