Comprendere i meccanismi fondamentali di funzionamento di un moderno Sistema Operativo

Tutti noi abbiamo quasi sicuramente già utilizzato un Sistema Operativo (ad es. Windows, Linux, MacOs ecc.) e probabilmente qualcuno di noi ha già anche scritto dei programmi da eseguire su di esso; ma quanti di noi sanno o si sono mai chiesti che cos’è in realtà un sistema operativo?

Quanto di ciò che vediamo quando utilizziamo un computer è il risultato diretto dell’hardware e quanto invece viene intermediato dal sistema operativo e dal software che su di esso è in esecuzione?

Cosa accade effettivamente quando accendo un computer?

Per rispondere a queste e altre domande è necessario comprendere come funziona un sistema operativo a “basso livello” (ovvero al livello più vicino all’hardware fisico della macchina).

Perchè è importante comprendere il funzionamento di un Sistema Operativo

Agli albori dell’informatica, gli addetti ai lavori prima ancora di poter iniziare qualsiasi attività di ricerca, erano costretti a scrivere il proprio sistema operativo partendo praticamente da zero.

Oggi invece diamo per scontata la possibilità di poter sviluppare ed eseguire i nostri programmi applicativi senza doverci “sporcare le mani” con i dettagli implementativi di basso livello, proprio in virtù della disponibilità dei moderni sistemi operativi.

La conoscenza tuttavia dei meccanismi basilari del funzionamento di un sistema operativo è tuttora importante non solo per lo sviluppo efficiente e affidabile dei software applicativi, ma anche per comprendere e valutare appieno gli aspetti ad essi connessi, a cominciare dalla Cybersecurity.

Quindi oltre agli sviluppatori, a beneficiare da tale conoscenza saranno anche tutti coloro i quali si occupano di Ethical Hacking, Malware Analysis, Reverse Engineering, ecc.

Argomenti esaminati

Nella nostra analisi ci concentreremo sulla CPU con architettura x86 in quanto essa è ampiamente utilizzata, e tratteremo aspetti fondamentali di un Sistema Operativo (OS) quali:

  • le fasi di avvio di un computer;
  • scrittura di programmi che girano direttamente sull’hardware in assenza di OS;
  • esaminare lo stato della CPU e dei suoi registri;
  • passaggio dal bootstrap al caricamento ed esecuzione dell’OS;
  • comprendere i servizi fondamentali del sistema operativo, come driver di dispositivo, le system call (chiamate di sistema), elaborazione multi-tasking;

Nel corso della nostra esposizione introdurremo i concetti fondamentali del linguaggio macchina assembly oltre alle caratteristiche fondamentali dell’hardware di una tipica architettura di un Sistema Operativo.

Contenuti online

Consulta i contenuti disponibili online: