A lightweight C-based shell simulation for OS coursework demos. The program includes:
- Login/authentication with SHA-256 password verification and default users.
- Role/permission flow (
adminandstandard) withsu/sudobehavior. - Command passthrough to host shell (supports pipelines like
ls | grep txt). - Scheduling demo outputs for Round-Robin and Priority modes.
- Paging demo outputs for FIFO and LRU replacement.
- Synchronization demo using producer/consumer with
pthreadmutex + condition variables.
shell_sim.c— simulator implementation.Makefile— build targets (make,make clean).sample_logfile.log— data for grep/sort pipeline demo.notes.txt— sample.txtentry for pipe demo.admin_secret.txt— admin-only target file in permission demo.scripts/run_demo.sh— non-interactive end-to-end demonstration script.docs/DELIVERABLE4_REPORT_APA.md— APA-style report template.
make clean && make./shellDefault users (created in users.db on first run):
- Admin:
admin/admin123 - Standard:
user/user123
After login:
# piping
ls | grep txt
cat sample_logfile.log | grep error | sort
# scheduling
scheduler rr
scheduler priority
# paging
paging fifo
paging lru
# synchronization
sync_demo
# permissions
su user user123
cat admin_secret.txt
sudo admin123
cat admin_secret.txtRun the scripted demonstration and capture output:
bash scripts/run_demo.shThis writes demo_output.txt with a complete transcript you can cite in a paper appendix.
Save terminal screenshots with these names:
login.pngpiping.pngscheduling_rr.pngscheduling_priority.pngpaging_fifo.pngpaging_lru.pngsync.pngpermission_denial.pngpermission_success.png
You can place them in docs/screenshots/ for submission packaging.