Note: This screenshot is from v0.3.1. The latest version (v0.6.0) has more commands, games, and tools not shown here.
A pure C++ hobbyist operating-system simulation featuring an interactive shell, virtual filesystem with metadata, 9 built-in games, and developer tools β all contained in a single source file. No external dependencies. No framework. Just compile and run.
Note: NoNameOS is not a real operating system. It is a C++ simulation that mimics an OS environment with a shell, virtual filesystem, games, and built-in tools.
- Features
- What's New in v0.6.0
- Quick Start
- Build Instructions
- Command Reference
- Games
- Custom Maps
- Platform Requirements
- Contributing
- License
| Category | What You Get |
|---|---|
| Interactive Shell | Command prompt with 55+ commands, alias support, command history, and man pages |
| Virtual Filesystem | Create, read, copy, move, delete files and directories with sizes & timestamps |
| Games (9 built-in) | AsciiDash, Snake, Minesweeper, Tic-Tac-Toe, Hangman, RPS, Guess, Trivia, Adventure RPG |
| System Tools | Text editor (nano), calculator (calc), system info (cfetch), ps, uname |
| Utilities | grep, find, sort, wc, head, tail, cowsay, fortune, banner, and more |
- 3 new games: Tic-Tac-Toe (with minimax AI), Hangman, Rock Paper Scissors (best-of-7)
- 18 new commands:
cp,mv,head,tail,sort,wc,tee,yes,env,hostname,sleep,which,alias/unalias,users,banner,fortune,factor,shuf,chmod,su - Man pages for all 55+ commands via
man <cmd> - Working alias system β create custom shortcuts with
alias name='command' - Updated boot, help, and cfetch to v0.6.0
git clone https://github.com/Mark44928/NoNameOS.git
cd NoNameOS
g++ -O3 NoNameOS.cpp -o nonameos
./nonameosNoNameOS is written in pure C++ and uses POSIX headers. It compiles on any Linux-based system with a C++ compiler.
pkg install clang
clang++ -O3 NoNameOS.cpp -o nonameos
./nonameossudo apt update && sudo apt install g++
g++ -O3 NoNameOS.cpp -o nonameos
./nonameossudo dnf install gcc-c++
g++ -O3 NoNameOS.cpp -o nonameos
./nonameossudo pacman -S gcc
g++ -O3 NoNameOS.cpp -o nonameos
./nonameos| Command | Usage | Description |
|---|---|---|
ls |
ls |
List files in current directory |
ls -l |
ls -l |
Long listing with sizes and timestamps |
cd |
cd <dir> |
Change directory (.. for parent, / for root) |
mkdir |
mkdir <name> |
Create a new directory |
touch |
touch <file> |
Create an empty file |
cat |
cat <file> |
Display file contents |
echo |
echo <file> <content> |
Write content to a file |
rm |
rm <name> |
Remove a file or directory |
pwd |
pwd |
Print current working directory |
grep |
grep <pattern> <file> |
Search for a pattern in a file |
find |
find <name> |
Find files by name |
cp |
cp <source> <dest> |
Copy a file |
mv |
mv <source> <dest> |
Move or rename a file/directory |
head |
head <file> |
Display first 10 lines of a file |
tail |
tail <file> |
Display last 10 lines of a file |
sort |
sort <file> |
Sort lines of a file alphabetically |
wc |
wc <file> |
Count lines, words, and characters |
tee |
tee <file> <text> |
Write to file and display on stdout |
| Command | Usage | Description |
|---|---|---|
whoami |
whoami |
Show current user |
date |
date |
Show current date and time |
uptime |
uptime |
Show system uptime and load |
hostname |
hostname |
Print system hostname |
uname |
uname [-a|-r|-s|-m] |
Print system information |
ps |
ps |
List running processes |
env |
env |
Show environment variables |
history |
history |
Show command history |
cfetch |
cfetch |
Display system info (like neofetch) |
clear |
clear |
Clear the screen |
help |
help |
Show all available commands |
exit |
exit |
Exit NoNameOS |
| Command | Usage | Description |
|---|---|---|
nano |
nano <file> |
Built-in line-by-line text editor |
calc |
calc <expr> |
Calculator (+ - * / with precedence) |
cowsay |
cowsay [msg] |
ASCII cow with a speech bubble |
man |
man <command> |
Display manual pages for any command |
cal |
cal |
Display current month's calendar |
rainbow |
rainbow [msg] |
Print text in rainbow colors |
yes |
yes [text] |
Print text repeatedly |
sleep |
sleep <sec> |
Pause for N seconds (max 30) |
which |
which <command> |
Locate a command |
alias |
alias [name=cmd] |
Show or create aliases |
unalias |
unalias <name> |
Remove an alias |
su |
su <user> |
Switch user (root/user) |
chmod |
chmod |
Show VFS permission info |
users |
users |
Show logged-in users |
banner |
banner [msg] |
Display colored ASCII banner |
fortune |
fortune |
Random programming quote |
factor |
factor <n> |
Prime factorization of a number |
shuf |
shuf <text> |
Randomly shuffle text characters |
A side-scrolling obstacle runner. Jump over ^ obstacles with the SPACE key.
play # Run default map "Stereo Madness"
play jumper.gmd # Run a custom map from the VFSGuess a random number between 1 and 100. You get unlimited attempts.
guessAnswer 5 multiple-choice questions about computers and technology.
triviaA dungeon RPG with HP and gold. Explore left or right, find treasure, fight monsters, and survive.
adventureTerminal Snake game. Use WASD to move, eat food (*) to grow. Don't hit walls or yourself.
snakeClassic Minesweeper on a 10x10 grid with 12 mines. Enter x y to reveal, f x y to flag.
minesweeperPlay against an AI opponent that uses minimax strategy. You are X, AI is O.
tictactoeGuess letters to reveal a hidden word before the stick figure is complete.
hangmanBest-of-7 series against the AI. First to 4 wins.
rpsCreate your own AsciiDash maps using ^ for obstacles and _ for flat ground:
cd /geometry
echo mymap.gmd ____^^____^^^^____^___^
play mymap.gmdThe default map jumper.gmd is pre-loaded in /geometry/.
- Linux (Termux on Android, Debian, Ubuntu, Fedora, Arch, etc.)
- A C++ compiler (
g++orclang++) - POSIX-compatible system (uses
<termios.h>,<unistd.h>,<fcntl.h>) - Windows is not supported due to POSIX-only dependencies
- C++ learners exploring OS concepts without kernel-level complexity
- Students studying filesystems, shells, and process simulation
- Hackers wanting a terminal sandbox with games and tools
- Termux users looking for a fun single-file project to compile and run
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m "Add my feature") - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
Ideas for contributions:
- Add more games (2048, Tetris, Pong, etc.)
- Add more built-in tools (text-based paint, cron, etc.)
- Improve the AsciiDash engine with graphics
- Add a package manager simulation
- Add pipe support (
cmd1 | cmd2)
This project is licensed under the GNU General Public License v3. See the LICENSE file for details.
- Termux TUI Package Store - Interactive fzf-powered package browser for Termux
- Anti-Bloatware List - Debloat rooted Android TV sticks
If you like NoNameOS, give it a star! It helps others discover the project.
