Ring 1 e Ring 2 Memory Protection Architecture

6

Ho sentito che le protezioni di memoria Ring 1 e Ring 2 non sono praticamente più utilizzate nei sistemi moderni.

Tuttavia, quando ho effettuato il check-in, ho scoperto che questi anelli sono in qualche modo associati a driver e accesso al driver.

Sono stati veramente eliminati completamente, o ci sono elementi di questi due anelli di protezione presenti nei sistemi operativi di sistema ancora in uso comune (per esempio OSX, Windows 7-10 e comuni distribuzioni Linux come Mint o Ubuntu)? In tal caso, che tipo di codice dovrei scrivere per richiedere l'accesso a questa parte del sistema? Se sono stati effettivamente eliminati, o sono in fase di eliminazione, qual è la ragione di questo cambiamento?

Suppongo che i due anelli fungano da una sorta di strato intermedio, come il middleware, tra il Kernal (ring 0) e il livello dell'applicazione (ring 3) ...

    
posta Guy Incognito 15.06.2016 - 16:56
fonte

1 risposta

4

Il sistema a quattro anelli è stato progettato da Intel per chiunque e Microsoft ha scelto uno schema per semplificare il lavoro di sviluppo e fornire un sistema operativo più veloce a scapito di una certa sicurezza. Per quanto riguarda Microsoft, non sono stati eliminati, così come non erano mai stati usati per cominciare. Microsoft non ha chiesto a Intel di creare un sistema a due anelli; Intel ha fornito un sistema a quattro anelli per uso generico e Microsoft ha deciso di utilizzarlo nel modo che ritenevano opportuno.

Intel ha fornito un modo per i sistemi operativi per fornire una maggiore sicurezza per impedire ai driver dannosi di bloccare il sistema, e Microsoft ha scelto di andare in un modo diverso ( driver firmati ), che è opzionale in modalità a 32 bit e richiesto in modalità 64 bit. Microsoft richiede la convalida che i driver non influenzeranno il sistema prima che firmeranno un binario. Ricorderai che Windows 95/98 era famoso per il crash. Questo perché i driver erano solitamente buggati e il sistema operativo non aveva alcuna protezione da quei driver, dato che erano tutti in Ring 0.

Credo che oggi siano ancora in uso alcuni moderni sistemi operativi che utilizzano più di due livelli di suoneria e, in base alla compatibilità con le versioni precedenti, i produttori di hardware non possono escludere questi due anelli "inutilizzati". Solo perché Microsoft o il kernel Linux principale utilizza più di due livelli non significa che qualcuno non possa scrivere un sistema operativo che utilizza la protezione aggiuntiva fornita da Rings 1 e 2. La protezione dell'hardware da software dannoso o semplicemente difettoso era assolutamente necessaria in un'epoca in cui non era possibile verificare in anticipo il comportamento del programma ei processori erano troppo lenti per eseguire tutta la protezione del software.

Microsoft ha anche rilasciato un progetto di ricerca chiamato Singularity e il sistema operativo in cui viene eseguito tutto il codice in Ring 0 e tutte le pagine in memoria non usano selettori di segmento. In altre parole, non esistono protezioni hardware contro programmi dannosi. Ciò si traduce in un significativo aumento della velocità, poiché i programmi non devono più passare attraverso i livelli degli anelli per chiamare il codice del kernel, ma tutto il codice deve essere staticamente verificabile, come sarebbe se fosse scritto in .NET senza usare la parola chiave "non sicura". Il sistema operativo può verificare staticamente che un programma non è dannoso prima dell'esecuzione. Il codice sorgente completo è disponibile gratuitamente.

La protezione dell'hardware probabilmente non si spegnerà mai, perché ci sono semplicemente troppi sistemi che dipendono da esso. Ci vorrebbe uno sforzo coordinato tra fornitori di hardware e software, e probabilmente a lungo termine costerebbe miliardi o addirittura miliardi di dollari, senza alcuna riduzione significativa dei costi in termini di potenza / velocità / ecc. I due squilli, 0 e 3, continueranno probabilmente ad essere utilizzati nel prevedibile futuro purché esistano solo tre principali sistemi operativi concorrenti (Microsoft, Apple, Linux). Ci vorrebbe un significativo cambio di mercato per sconvolgere lo status quo.

    
risposta data 15.06.2016 - 18:11
fonte

Leggi altre domande sui tag