Naar inhoud springen

Ontwerp en bouw een besturingssysteem/Appendix B/GDT descriptors

Uit Wikibooks

Descriptors

[bewerken]

Algemeen

[bewerken]

Als bit 47 op 0 staat, is er veel ruimte in de descriptor dat door het besturingssysteem kan worden gebruikt:

 
63      56
 
55      48
 
 
 
47464544   40
0DPLType
39      32
 
 
 
31      24
 
23      16
 
 
 
15      8
 
7      0
 
 
Naam Lengte Beschrijving
Beschikbaar - Deze bits kunnen door het besturingssysteem worden gebruikt.
Type 5 bits Definieert het type descriptor. De mogelijkheden staan hieronder beschreven.
DPL 2 bits Descriptor Privilegeniveau
  • 0: Meeste privileges
  • 1: TODO
  • 2: TODO
  • 3: Minste privileges

Code Segment Descriptor

[bewerken]
 
63      56
Basis (bits 24-31)
5554535251  48
GD0 Limiet (bits 16-19)
 
 
4746454443424140
1DPL11CRA
39      32
Basis (bits 16-23)
 
 
31      24
Basis (bits 8-15)
23      16
Basis (bits 0-7)
 
 
15      8
Limiet (bits 8-15)
7      0
Limiet (bits 0-7)
 
Naam Lengte Beschrijving
Limiet 20 bits TODO
Basis 32 bits TODO
C 1 bit Conforming:
  • 0: Niet conforming.
  • 1: Conforming. TODO: Wat is conforming?
R 1 bit Leesbaarheid:
  • 0: Niet leesbaar, wel uitvoerbaar.
  • 1: Leesbaar en uitvoerbaar.
A 1 bit Opgevraagd:
  • 0: Niet opgevraagd.
  • 1: Wel opgevraagd.
D 1 bit Standaard adres en operand lengte:
  • 0: 16-bit adressen en 16-bit of 8-bit operands.
  • 1: 32-bit adressen en 32-bit of 8-bit operands.
G 1 bit Eenheidgrootte van limiet:
  • 0: limiet is uitgedrukt in eenheden van 1 byte.
  • 1: limiet is uitgedrukt in eenheden van 4 KiB.

Data Segment Descriptor

[bewerken]
 
63      56
Basis (bits 24-31)
5554535251  48
GB0 Limiet (bits 16-19)
 
 
4746454443424140
1DPL11EWA
39      32
Basis (bits 16-23)
 
 
31      24
Basis (bits 8-15)
23      16
Basis (bits 0-7)
 
 
15      8
Limiet (bits 8-15)
7      0
Limiet (bits 0-7)
 
Naam Lengte Beschrijving
E 1 bit Uitbreid richting:
  • 0: Breidt uit naar boven (weg van 0).
  • 1: Breidt uit naar beneden (richting 0).
W 1 bit Beschrijfbaar:
  • 0: Niet beschrijfbaar.
  • 1: Beschrijfbaar.
A 1 bit Opgevraagd:
  • 0: Niet opgevraagd.
  • 1: Wel opgevraagd.
B 1 bit Als de E-bit is ingesteld, de bovengrens:
  • 0: De bovengrens is 0x0000FFFF (64 KiB).
  • 1: De bovengrens is 0xFFFFFFFF (4 GiB).

Als dit een segment is waar het SS register naar verwijst (een stack segment):

  • 0: 16-bit stack pointer, opgeslagen in het SP register.
  • 1: 32-bit stack pointer, opgeslagen in het ESP register.

Call gate

[bewerken]
 
63      56
Segment offset (bits 24-31)
55      48
Segment offset (bits 16-23)
 
 
4746454443424140
1DPL01100
39383736   32
000Aantal param.
 
 
31      24
Segment selector (bits 8-15)
23      16
Segment selector (bits 0-7)
 
 
15      8
Segment offset (bits 8-15)
7      0
Segment offset (bits 0-7)
 
Naam Lengte Beschrijving
Segment selector 16 bits TODO
Segment offset 32 bits TODO
Aantal param. 5 bits TODO

TSS Descriptor

[bewerken]
 
63      56
Basis (bits 24-31)
5554535251  48
G00 Limiet (bits 16-19)
 
 
4746454443424140
1DPL010B1
39      32
Basis (bits 16-23)
 
 
31      24
Basis (bits 8-15)
23      16
Basis (bits 0-7)
 
 
15      8
Limiet (bits 8-15)
7      0
Limiet (bits 0-7)
 
Naam Lengte Beschrijving
Limiet 20 bits TODO
Basis 32 bits TODO
B 1 bit Bezig:
  • 0: Niet bezig.
  • 1: Bezig. TODO: Wat is bezig?

Task gate

[bewerken]
 
63      56
 
55      48
 
 
 
4746454443424140
1DPL00101
39      32
 
 
 
31      24
TSS segment selector (bits 8-15)
23      16
TSS segment selector (bits 0-7)
 
 
15      8
 
7      0
 
 
Naam Lengte Beschrijving
TSS segment selector 16 bits TODO

Interrupt gate

[bewerken]
 
63      56
Offset (bits 24-31)
55      48
Offset (bits 16-19)
 
 
4746454443424140
1DPL0D110
39383736   32
000 
 
 
31      24
Segment selector (bits 8-15)
23      16
Segment selector (bits 0-7)
 
 
15      8
Offset (bits 8-15)
7      0
Offset (bits 0-7)
 
Naam Lengte Beschrijving
Offset 32 bits TODO
Segment selector 16 bits TODO
D 1 bit Gate grootte:
  • 0: 16-bit.
  • 1: 32-bit.

Trap gate

[bewerken]
 
63      56
Offset (bits 24-31)
55      48
Offset (bits 16-19)
 
 
4746454443424140
1DPL0D111
39383736   32
000 
 
 
31      24
Segment selector (bits 8-15)
23      16
Segment selector (bits 0-7)
 
 
15      8
Offset (bits 8-15)
7      0
Offset (bits 0-7)
 
Naam Lengte Beschrijving
Offset 32 bits TODO
Segment selector 16 bits TODO
D 1 bit Gate grootte:
  • 0: 16-bit.
  • 1: 32-bit.

Task gate descriptor

[bewerken]
 
63      56
 
55      48
 
 
 
4746454443424140
1DPL00101
39      32
 
 
 
31      24
TSS segment selector (bits 8-15)
23      16
TSS segment selector (bits 0-7)
 
 
15      8
 
7      0
 
 
Naam Lengte Beschrijving
TSS segment selector 16 bits TODO

 

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.