Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EDU-OS · OS Playground

🇮🇹 Italiano · 🇬🇧 English

▶ Provalo online: https://manzolo.github.io/OsSimulator/?lang=it

Un hub didattico interattivo in due piani per capire come un sistema operativo sparte un computer — la memoria e il tempo di CPU — mostrando ogni decisione passo per passo. Motori scritti a mano, nessuna dipendenza: il livello fissa il carico di lavoro, tu scegli la politica, e guardi l'allocazione riempire l'heap, i page fault caricare e sfrattare pagine, il diagramma di Gantt riempirsi tick dopo tick.

È un fratello della collana EDU-*, insieme a EDU-16 ASM Playground, EDU-NUM, EDU-NET, EDU-REGEX, EDU-SQL, EDU-GIT, EDU-CRYPTO, EDU-NN e EDU-ELN.

I due piani

  • Gestione della memoria — distribuisci e recupera memoria su un heap (first/best/worst-fit, frammentazione, coalescing), poi pagina la memoria virtuale dentro e fuori (page table, page fault, sostituzione FIFO / LRU / ottima).
  • Scheduling della CPU — dai i processi in pasto a una CPU e guarda il diagramma di Gantt riempirsi: FCFS, SJF, SRTF, Round Robin e a priorità — e vedi come cambia il tempo di attesa.

Perché un motore scritto a mano

Possedere il motore è tutto il punto: l'allocatore, il paginatore e lo scheduler sono discreti e deterministici, in */js/core/, e verificati nei test contro valori calcolati a mano. Ogni motore emette un flusso di eventi neutri rispetto alla lingua (una scansione, un page fault, uno switch di contesto) a cui la UI si iscrive: un tick = una micro-operazione, così puoi guardare al rallentatore o macinare in turbo.

Da zero: la guida "Basi"

Non serve alcun prerequisito: alla prima visita si apre una guida introduttiva che spiega da zero — con analogie e un glossario — cosa fa un sistema operativo, cosa sono processi, heap, pagine, page fault, scheduler e Gantt. Resta sempre raggiungibile dal bottone in alto.

Ogni piano ha livelli guidati con verifica automatica (su carichi di lavoro anche nascosti, così una politica cablata sul caso visibile fallisce quelli nascosti) e una sandbox libera.

Avvio

Sito statico puro, moduli ES, zero build, zero dipendenze:

npm run serve        # python3 -m http.server 8000
# apri http://localhost:8000

Deploy su GitHub Pages da main/root così com'è (.nojekyll, percorsi relativi).

Sviluppo / test

npm test             # node --test — motori e livelli dei due piani
npm run e2e          # smoke test headless su Chrome (hub + i due piani)

Licenza

MIT © Andrea Manzi (manzolo)

About

EDU-OS · OS Playground — interactive operating-systems hub: memory management (heap allocation + paging) and CPU scheduling, animated step by step. Two floors, 24 guided levels, bilingual IT/EN, zero dependencies

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages