Un sistema operativo deve essere in grado di gestire i malfunzionamenti dei programmi ed evitare che da questi vada in errore l'intero sistema . MS-DOS non sopportava bene questi meccanismi di protezione ,il che lo rendeva molto vulnerabile a virus . Infatti il malfunzionamento di un programma mandava in crash l'intero sistema .
In questo post vi illustrerò uno dei meccanismi di protezione, il Dual-Mode.
Funzione Dual-Mode
Vi piacerebbe avere l'opportunità di accedere a tutte le risorse del sistema operativo ? Se si,pensate sia una buona idea ?
Per fortuna tutto questo non è possibile ,e per rispondere alla seconda domanda, sicuramente sarebbe una cattiva idea ,ergo non un buon meccanismo di protezione . Pensate ad un virus : avendo accesso garantito a qualsiasi parte del sistema ,potrebbe cancellare il sistema operativo ,modificarlo o chissà cos'altro . Basterebbe avere un po di fantasia ,metterla a disposizione di un po di malvagità e il danno sarebbe fatto . Per fortuna esiste un meccanismo di protezione hardware denominato Dual-Mode . Fondamentalmente, questo differenzia due modalità di esecuzione delle operazioni : modalità utente e modalità Kernel .
Esiste dunque un bit di modo ( valore booleano che può assumere il valore 0 o 1) che differenzia tra la modalità kernel ( bit di modo=0) e modalità utente (bit di modo = 1) .
In modalità utente un qualsiasi programma utente (scusate la cacofonia) non può accedere a risorse privilegiate ,non ne ha il diritto , lo può fare esclusivamente il sistema operativo . Se il programma ha bisogno di una di queste risorse ," chiede il servizio " al sistema operativo attraverso una System Call, se tutto va bene ,il sistema operativo passa in modalità kernel (cambiando il bit di modo) e soddisfa il servizio . Alla fine il controllo ritornerà all'utente con una successiva commutazione del bit di modo a modalità utente. Ad esempio il cambiamento del bit di modo è una funzione privilegiata e può essere svolta esclusivamente dal sistema operativo . Stessa cosa per le operazioni di I/O.
Inizialmente all'accensione del calcolatore , lo stato in cui ci si trova è in modalità kernel (è infatti necessario caricare il sistema operativo).
Come dicevo inizialmente, MS-DOS non sopportava questo meccanismo di protezione ,il che creava una marea di problemi e rende l'idea della mediocrità dello stesso.
Nessun commento :
Posta un commento