The Operating System Simulator 🧠 is a terminal-based simulation of an OS, developed for the Operating Systems Lab course. It implements core concepts like multitasking, process scheduling, resource management, and user/kernel modes. Interact with tasks like Notepad, Calculator, and Minigames—with optional graphical support 🖼️.
- 🛠️ Custom OS Branding: Displays the OS name with a loading animation on boot.
- 💻 User-Defined Hardware: Specify RAM, HDD, and CPU cores at startup.
- 🧵 Multitasking: Supports multilevel queue scheduling for concurrent tasks.
- 📋 Task Management: 15+ tasks, each with minimize/close options.
- 📦 Resource Management: Allocates RAM & HDD, terminates if insufficient.
- 🔐 Kernel/User Modes: Kernel handles low-level process & hardware operations.
- 🚨 Interrupt Handling: Pause/minimize tasks via simulated interrupts.
- 🧩 Scheduling: Uses semaphores, mutual exclusion, and condition variables.
- 💾 Data Storage: Simulated hard drive stores app data.
- 🐧 Supported OS: Linux — preferably Ubuntu for smoother experience
- 🧑💻 Programming Language: [C++]
- 📦 Dependencies:
- [GCC, GCC libraries, SDL, xterm terminal]
- 🧰 Hardware:
- 4GB RAM
- 1GB free disk space
- 🔧 Tools: Git , VSCode
-
📂 Clone the Repository:
git clone https://github.com/fatima-Sami55/OS_Simulator.git cd OS_Simulator
-
📦 Install Dependencies:
-
For C/C++:
sudo apt-get install build-essential
-
For Python:
pip install -r requirements.txt
-
-
⚙️ Compile (if needed):
make
-
🚀 Run the Simulator:
./os_simulator
Or for Python:
python main.py
-
🧠 Boot Process:
- See OS branding + loading animation.
- Input hardware specs (RAM, HDD, cores).
-
🎮 Interact:
- View the task guide.
- Select tasks via number or icon.
- Close, minimize, or switch tasks freely.
- Use kernel mode for admin operations.
-
🔌Shutdown:
- Select shutdown to terminate all tasks and exit safely.
Each task runs as an individual process:
- 🧮 Calculator: Basic arithmetic operations.
- 📝 Notepad: Auto-save text editor.
- ⏰ Clock: Auto-updating clock.
- 📆 Calendar: Viewable calendar.
- 📄 Create File: Make files on disk.
- 🗑️ Delete File: Remove selected files.
- 📁 Move File: Change file locations.
- 📑 Copy File: Duplicate files.
- 🔍 File Info: Display file metadata.
- 📋 Task Manager: Monitor and manage processes.
- 🎵 Music Player: Play system beeps as music.
- 🎮 Minigame: Number Guessing: Fun CLI-based game.
- 🖨️ Print File: Simulate background printing.
- 📖 Instruction Guide: Step-by-step guide to using the system.
- 🎲 Dice Roller: Random number generator.
✅ All tasks check system resources before starting.
- Fork the repo.
- Create a branch:
git checkout -b feature-branch
- Commit changes:
git commit -m "Add feature"
- Push it:
git push origin feature-branch
- Open a pull request 🧷
Need help? Open issues on GitHub 📫
Good luck exploring the Operating System Simulator! 🚀💡