#Klooienmetcomputers

Vlagvertoon

Arnout van Kempen over rommelen in een digitale wereld.

Vorige week zagen we de 31 64-bits registers, de 32 floating point registers en een paar normale (PC en SP) en een gek register (XZR). Ik noemde ook nog PSTATE en een paar specifieke registers die betrekking hebben op moderne besturingssystemen. Wat vinden we voor vlaggen in PSTATE?

De rekenkundige vlaggen zijn:
Z: de laatste berekening leverde een nul op.
N: de laatste berekening leverde een negatieve uitkomst op.
C: bij de laatste unsigned optelling was een carry nodig.
V: bij de laatste signed bewerking trad een overflow op.

Dan zijn er de execution state bits:
EL: dit geeft het exception level aan waarin wordt gewerkt, van 0 tot 3.
SP: geeft aan welke stackpointer wordt gebruikt.

De interrupt mask bits worden gebruikt om specifieke hardware interrupts te negeren:
I: als deze gezet is, worden normale interruptrequests (IRQ) genegeerd.
F: is deze gezet, dan worden snelle interruptrequests (FIQ) genegeerd.
A: is deze gezet, dan worden zogenoemde asynchrone errors genegeerd.

En dan nog een paar overigen:
D: betekent dat de CPU in Debug-status is.
IL: bij uitvoering van een illegale instructie.
SS: de CPU is in software stepping status.

Alles behalve de eerste vier zal niet snel nodig zijn. Toch nog even iets over de exception levels van de ARM; redelijk vergelijkbaar met de protected mode van de 80286 inclusief de geavanceerdere uitwerking daarvan in latere versies van de 80x86. ARM kent de volgende vier niveaus:

EL0: User mode. Geen directe toegang tot hardware, alles loopt via het besturingssysteem. Kortom, hier zitten wij eigenlijk altijd.

EL1: Priviliged mode. Hier zit de kernel van het operating system, de protected mode uit de x86-wereld. Als user zie je niet wat hier gebeurt, maar hier is de toegang tot de hardware geregeld.

EL2: Hypervisor mode. Dit is voor een soort super-besturingssysteem, de hypervisor is een besturingssysteem van besturingssystemen. Zoals de gebruiker in EL0 als het ware met een onzichtbare kernel in EL1 heeft te maken, zo heeft de kernel uit EL1 met een onzichtbare hypervisor in EL2 te maken. De hypervisor laat verschillende operating systems naast elkaar op hetzelfde systeem bestaan, zonder dat zij elkaar zien. Dit maakt verregaande virtualisatie mogelijk.

EL3: Secure Monitor mode. Hier draait security code in een extra beveiligde omgeving, ontoegankelijk voor de rest van het systeem.

Leuk om te weten allemaal, maar de kans dat we hiermee veel gaan doen is klein. Heel klein.

Wie mee wil doen met #klooienmetcomputers kan dat doen via GitHub. Maak een account op github.com en zoek naar Abmvk/kmc. Het account Abmvk volgen kan ook. Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren.

Arnout van Kempen di CCO CISA is directeur compliance & risk bij aaff, de fusieorganisatie van Alfa en ABAB. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.