How devanshk01/ssd-simulator works
SSD Simulator models NAND storage behavior and exposes it through CLI modes and a real-time web dashboard. Users configure the device, then issue read, write, and TRIM operations or run workloads; the controller translates logical requests into flash activity, with garbage collection, wear leveling, and bad-block handling maintaining the simulated device. Statistics and state feed console and dashboard views. The README documents capabilities beyond the sampled excerpts; relationships for those are cited to it rather than presented as source-verified call paths.
Main entry points: ssd.c SSD Controller · ssd_server.c HTTP & REST API · main.c CLI & Workloads · index.html Dashboard Layout
Components 15
Simulation Runtime
- Configuration
src/ssd_config.c - SSD Controller
src/ssd.c - Address Translation
src/ssd_ftl.c - NAND Model
src/ssd_nand.c
Flash Maintenance
- Garbage Collection
src/ssd_gc.c - Wear Leveling
src/ssd_wear.c - Bad Block Management
src/ssd_block.c
User Interfaces
- CLI & Workloads
src/main.c - HTTP & REST API
src/ssd_server.c - Dashboard Client
web/app.js - Dashboard Layout
web/index.html - Dashboard Styling
web/style.css
Analytics
- Metrics & State Export
src/ssd_stats.c
Other components
- User
- Web Browser
Connections 17
- User → CLI & Workloads: issues commands
README.md - CLI & Workloads → Configuration: loads settings
README.md - CLI & Workloads → SSD Controller: runs operations
README.md - CLI & Workloads → HTTP & REST API: starts dashboard server
README.md - SSD Controller → Address Translation: translates addresses
- SSD Controller → NAND Model: performs flash I/O
- SSD Controller → Garbage Collection: checks GC triggers
- SSD Controller → Wear Leveling: checks wear leveling
- SSD Controller → Bad Block Management: manages worn blocks
- SSD Controller → Metrics & State Export: records operations
- HTTP & REST API → SSD Controller: dispatches commands
src/ssd_server.c - HTTP & REST API → Metrics & State Export: exports metrics and state
src/ssd_server.c - HTTP & REST API → Dashboard Layout: serves static files
README.md - Web Browser → Dashboard Client: uses dashboard
README.md - Dashboard Client → HTTP & REST API: calls REST API
README.md - Dashboard Layout → Dashboard Client: hosts client interface
- Dashboard Layout → Dashboard Styling: uses stylesheet