MutinyOS is a terminal-based Mini Operating System simulator designed for students, beginners, and enthusiasts who want to practice shell usage and explore OS-like utilities without installing a full operating system. It combines educational shell functionality with entertainment features such as games and TCP-based multiplayer chat.
-
Interactive Shell
- Built-in commands: help, cmd, cmds, prog, progs, clear, exit, etc.
- Executes system commands via fork/exec if not recognized as a built-in command.
-
Built-in Programs
- Calculator (calc)
- Date utility (date)
- Task manager, calendar (planned/future modules)
-
Entertainment
- Console games using ncurses/pdcurses (Snake, Tetris, Pacman, Sudoku, Maze Runner, Car Racing)
- TCP-based multiplayer group chat using CZMQ
MutinyOS/
├── Makefile # Build rules
├── config.mk # Compiler/linker configuration
├── shell.c # Main shell loop
├── cmd.c / cmd.h # Command/program definitions
├── calc.c # Calculator frontend
├── date.c # Date/time utility
├── help.c # Help text
├── lib/
│ ├── tinyexpr.c # Expression evaluation library
│ └── compatibility.c # Cross-platform helpers
git clone https://github.com/saifshahriar/MutinyOS.git
cd MutinyOSmakemake runmake cleanExample session:
saif@mutiny:$> help
saif@mutiny:$> calc
> 2 + 2 = 4
saif@mutiny:$> date
Sat Sep 6 18:00:00 2025
saif@mutiny:$> exit- Hardware: Any modern PC (≥ 512 MB RAM)
- Software: Linux or Windows with GCC and Makefile support
- Libraries: ncurses / pdcurses, CZMQ
- Currently terminal-based; depends on host OS
- No GUI, kernel, or low-level hardware interaction
- Networking limited to TCP in user-space
- Future: custom kernel, native shell, system calls, full OS-level features
───────────────────────────────────────────────────────────────────────────────
Language Files Lines Blanks Comments Code Complexity
───────────────────────────────────────────────────────────────────────────────
C 22 2598 446 127 2025 497
C Header 17 204 40 35 129 0
Makefile 2 115 21 20 74 0
License 1 674 121 0 553 0
Markdown 1 163 46 0 117 0
Shell 1 33 7 1 25 2
───────────────────────────────────────────────────────────────────────────────
Total 44 3787 681 183 2923 499
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop (organic) $83,313
Estimated Schedule Effort (organic) 5.35 months
Estimated People Required (organic) 1.38
───────────────────────────────────────────────────────────────────────────────
Processed 110833 bytes, 0.111 megabytes (SI)
───────────────────────────────────────────────────────────────────────────────See commit history for more information.
- Saif Shahriar
- Abdullah Sammo
- Imam Zafor Sadik
- Sozib Hasan
See Licence
- BusyBox: https://busybox.net/
- DOSBox: https://www.dosbox.com/
- Cygwin: https://www.cygwin.com/
- ncurses: https://invisible-island.net/ncurses/
- pdcurses: https://pdcurses.org/
- CZMQ: https://zeromq.org/languages/czmq/