Learn Operating Systems Visually
OSimulate is an interactive platform for learning core Operating System concepts through visualizations, simulators, and comprehensive notes. It is designed for students, educators, and anyone interested in understanding how operating systems work under the hood.
- Interactive Visualizers: Step-by-step animations for:
- Page Replacement Algorithms (FIFO, LRU, Optimal, etc.)
- CPU Scheduling Algorithms (FCFS, SJF, Round Robin, Priority, etc.)
- Disk Scheduling Algorithms (FCFS, SSTF, SCAN, C-SCAN, etc.)
- Comprehensive Notes: Clean, documentation-style notes with diagrams and concept highlights for topics like memory management, process management, file systems, and more.
- Algorithm Comparison: Compare different algorithms side by side.
- Modern UI: Responsive, accessible, and themeable interface with dark mode support.
- Framework: Next.js 15.2.4 — built on React 19.1.0 and TypeScript 5.8.3
- Styling & UI: Tailwind CSS 3.4.17, Radix UI, Lucide React Icons
- Visualization & Animation: Framer Motion 12.16.0, Recharts
- Backend & Payments: Supabase 2.49.9, Stripe
- Forms & Validation: React Hook Form 7.57.0, Zod 3.25.49
- Tooling: pnpm — workspace-aware, fast package manager
See
package.jsonfor the full list of dependencies.
- Node.js (v18 or higher recommended)
- npm
- pnpm
Fork and Clone the repository:
git clone https://github.com/your-username/OSimulate.git
cd OSimulateInstall pnpm globally if you haven't already
npm install -g @pnpm/exe@latest-10Install dependencies:
pnpm install Start the development server:
pnpm dev Open http://localhost:3000 to view the app.
pnpm build # or npm run build or yarn buildContributions are welcome! Please open issues and pull requests to help improve OSimulate.
- Fork the repository
- Create your feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/your-feature) - Open a pull request
OSimulate is open source and maintained by the community. If you find it useful, consider starring the repo and sharing it with others!