An interactive, modern learning site for Operating Systems students. It visualizes core topics from a typical OS course (inspired by Operating System Concepts by Silberschatz, Galvin & Gagne) with step‑by‑step simulators and calculators. Pure frontend — no backend required.
Live locally with Vite, responsive UI via Tailwind CSS, and a tiny hash‑based router to keep dependencies minimal.
- Requirements: Node 18+ and npm
- Install:
npm install - Dev server:
npm run dev(opens at http://localhost:5173) - Production build:
npm run build - Preview build:
npm run preview
- Memory Management
- Paging simulator: frames, process pages, internal fragmentation, logical→physical translation
- Virtual Memory
- Page replacement (FIFO/LRU/OPT): step table, hits/faults counters
- File System Structure & Implementation
- Allocation visualizer: contiguous, linked, indexed; free‑space bitmap mock
- Storage Systems & Scheduling
- Disk head ordering: FCFS, SSTF, SCAN/LOOK, C‑SCAN; total seek distance
- File‑System Interfaces
- Attributes toggles; directory structure summaries (single/two‑level/tree/DAG)
- I/O Systems
- Timeline of requests, interrupts, and transfers; DMA vs PIO CPU overhead
- System Protection
- Access Matrix editor; derived ACLs (by object) and capabilities (by subject)
- Security
- Caesar cipher toy + SHA‑256 hashing via WebCrypto
- Deadlocks
- Resource‑allocation graph with cycle detection; Banker’s Algorithm safety check
All pages include short explanations, with sliders/inputs and sample data to explore scenarios immediately.
index.html— Vite entry with Tailwind importsrc/main.jsx— React bootstrapsrc/App.jsx— App shell + simple hash router wiringsrc/index.css— Tailwind CSS import- Components (visualizations)
src/components/PagingSimulator.jsxsrc/components/PageReplacementSimulator.jsxsrc/components/DiskSchedulingSimulator.jsxsrc/components/AccessMatrixVisualizer.jsxsrc/components/IOSchedulerDemo.jsxsrc/components/BankersSimulator.jsxsrc/components/FileSystemVisualizer.jsxsrc/components/ResourceGraph.jsxsrc/components/Nav.jsxsrc/components/SimpleRouter.jsx(tiny#/routehook)
- Pages
src/pages/Home.jsx(dashboard)src/topics/*.jsx(one per OS topic)
- Data
src/data/topics.js(home card metadata)
The app uses window.location.hash to keep routes simple: #/home, #/memory, #/virtual, #/filesystems, #/storage, #/fsinterfaces, #/io, #/protection, #/security, #/deadlocks.
- Hook:
src/components/SimpleRouter.jsxexposesuseHashRoute()andnavigate(key) - Add a route: import your page component in
src/App.jsx, add an entry in theroutesmap, and add a nav item insrc/components/Nav.jsx(optional).
Tailwind v4 is already configured (see src/index.css). Components follow a consistent, accessible style (high contrast, clear spacing) suitable for student use on mobile or desktop.
- Create a component in
src/components/YourTool.jsx - Create a page in
src/topics/YourTopic.jsxand render your tool(s) - Wire it in
src/App.jsx(routes map) andsrc/components/Nav.jsx - Add a card in
src/data/topics.jsto show it on the home dashboard
Tips:
- Keep state local to the component; prefer simple numeric/string inputs
- Provide sensible defaults so the demo works instantly
- Add brief explanatory text and a legend for visuals
- Algorithms here are accurate for teaching and exploration, but intentionally simplified for clarity.
- Useful for classroom demos and self‑study: change inputs, step through, and inspect results.
- The content paraphrases widely taught OS concepts; it is intended as an aid, not a substitute for your primary textbook or lectures.
- Static hosting works out of the box after
npm run build - Serve the
dist/directory via any static host (GitHub Pages, Netlify, Vercel, S3, etc.)
npm run dev— Local development with HMRnpm run build— Production build todist/npm run preview— Preview the build locally
- Pick a topic you want to improve (e.g., add SCAN animation, visualize TLB hits)
- Keep components small and documented
- Use the existing UI patterns for consistency
- Test with a few different inputs and edge cases
- Inspired by topics in “Operating System Concepts” (Silberschatz, Galvin, Gagne)
- Built with React, Vite, and Tailwind CSS