Het belangrijkste verschil tussen de echte modus en de beschermde modus in een CPU (met name CPU's met x86-architectuur) ligt in de manier waarop de CPU geheugen en bronnen beheert:
Echte modus:
* Geheugenadressering: Gebruikt een adresruimte van 20 bits, waardoor het adresseerbare geheugen wordt beperkt tot 1 MB (1.048.576 bytes). Al het geheugen is rechtstreeks adresseerbaar door elk programma. Er is geen geheugenbeveiliging.
* Geheugensegmentatie: Er wordt gebruik gemaakt van segmentatie, maar deze is eenvoudig en grotendeels transparant voor de programmeur. Segmenten zijn doorgaans 64 KB groot en de processor berekent het fysieke adres door een segmentselector en een offset te combineren. Segmentkiezers bieden echter vooral een manier om het geheugen logisch te ordenen, in plaats van bescherming te bieden.
* Geheugenbeveiliging: Geen geheugenbescherming. Het ene programma kan gemakkelijk het geheugen van een ander of het besturingssysteem overschrijven, wat kan leiden tot systeemcrashes en instabiliteit.
* Multitasken: Niet direct ondersteund. Er kan slechts één programma tegelijk worden uitgevoerd.
* Bevoorrechte instructies: Alle instructies zijn beschikbaar voor alle programma's. Er is geen onderscheid tussen bevoorrechte bewerkingen (zoals toegang tot I/O-poorten) en niet-bevoorrechte bewerkingen.
* Onderbreekt: De basisafhandeling van interrupts is aanwezig, maar mist de geavanceerde functies van de beschermde modus.
* Besturingssystemen: Zeer eenvoudige besturingssystemen met één taak, zoals MS-DOS, werkten voornamelijk in de echte modus.
Beveiligde modus:
* Geheugenadressering: Gebruikt een 32-bits (of 64-bits in 64-bits modus) adresruimte, waardoor toegang tot veel meer geheugen mogelijk is (4 GB in 32-bits, theoretisch meer in 64-bits). Het geheugen is verdeeld in segmenten, maar deze segmenten worden gebruikt om geheugenbeveiliging af te dwingen.
* Geheugensegmentatie: Segmentatie is geavanceerder. Segmenten kunnen verschillende toegangsrechten hebben (alleen-lezen, lezen-schrijven, alleen uitvoeren) en de CPU handhaaft deze beperkingen. Dit voorkomt dat een programma per ongeluk of kwaadwillig toegang krijgt tot het geheugen van een ander programma of dit wijzigt. Paging (een virtueel geheugenmechanisme) wordt doorgaans gebruikt in combinatie met segmentatie voor verbeterd geheugenbeheer en bescherming.
* Geheugenbeveiliging: Sterke geheugenbescherming is een kernfunctie. Elk programma draait in zijn eigen beschermde geheugenruimte, waardoor conflicten en crashes worden voorkomen.
* Multitasken: Volledig ondersteund. De CPU kan snel tussen meerdere programma's schakelen, waardoor de illusie ontstaat van gelijktijdige uitvoering.
* Bevoorrechte instructies: Instructies zijn onderverdeeld in bevoorrecht en onbevoegd. Alleen het besturingssysteem (dat in de kernelmodus draait) kan geprivilegieerde instructies uitvoeren, wat een laag van beveiliging en stabiliteit biedt.
* Onderbreekt: Er is geavanceerde interruptafhandeling mogelijk, inclusief interrupt-poorten en systeemoproepen voor gecontroleerde toegang tot geprivilegieerde bewerkingen.
* Besturingssystemen: Moderne besturingssystemen zoals Windows, macOS en Linux werken uitsluitend in de beschermde modus (of het 64-bit equivalent ervan).
In het kort: De echte modus is een oudere modus, eenvoudig maar onzeker en beperkt. De beveiligde modus is de moderne standaard en biedt geheugenbescherming, multitasking en een veel stabielere en veiligere omgeving voor het uitvoeren van programma's. De overgang van de echte modus naar de beschermde modus is een fundamentele stap bij het opstarten van een moderne computer. |