[ SELEKTOR ]
Hmm, tak tahle stránka je věnovaná popisu funkce selektoru... Vždyť
si vemte i ten název SELECTor - jazyková lekce č. 2: SELECT je
slovíčko pro VÝBĚR, OZNAČENÍ...
Selektor má velikost 16 bitů a takhle vypadá jeho struktura:
+-15--14--13--12--11--10--9---8---7---6---5---4---3-+-2--+-1---0-+
| Index do tabulky deskriptorů | TI | RPL |
+---------------------------------------------------+----+-------+
---------------------------------------------------------------------
Bit(y) Obsah Popis
---------------------------------------------------------------------
Index... 0 - 8192 Index v tabulce deskriptorů na deskriptor
---------------------------------------------------------------------
TI 0 - 1 0 = index ukazuje do Global Descriptor Table
1 = index ukazuje do Local Descriptor Table
---------------------------------------------------------------------
RPL 0 - 3 Nejvyšší úroveň oprávnění při použití
selektoru
---------------------------------------------------------------------
[ O úrovních oprávnění někdy v dalších dílech - i teď už toho je
celkem dost :)) ]
Je to poměrně jednoduché - ale já to kdyžtak zkusím nakreslit:
+------------------------+
SELEKTOR ---------+ | Local Descriptor |
(word) buď | | Table |
| | +------------------------+
| | |pořadí/offset/deskriptor|
| | +------------------------+
| | |1. ( 00h ) Deskriptor 1 |
| +-> |2. ( 08h ) Deskriptor 2 |
| |3. ( 10h ) Deskriptor 3 |
| +------------------------+
|n
|e +------------------------+
|b | Global Descriptor |
|o | Table |
| +------------------------+
| |pořadí/offset/deskriptor|
| +------------------------+
| |1. ( 00h ) Deskriptor 1 |
| |2. ( 08h ) Deskriptor 2 |
| |3. ( 10h ) Deskriptor 3 |
| |4. ( 18h ) Deskriptor 4 |
+----------------> |5. ( 20h ) Deskriptor 5 |
|6. ( 28h ) Deskriptor 6 |
+------------------------+
Pořadí je číslo deskriptoru v tabulkách, offset je pozice deskriptoru
vůči počátku tabulky a deskriptor je deskriptor :)) [To, co já tu
popisuji jako 'Deskriptor x' jsou vlastně různé deskriptory - datový,
systémový, kódový a deskriptor přerušení...]
Selektor obsahuje vždy hodnotu offsetu vůči počátku tabulky
deskriptorů (a ty jsou, jak už jsem napsal Local Descriptor Table,
Global Descriptor Table a Interrupt Descriptor Table...)
[ Pozn.: Pokud nečtete Výhěň a články postupně :) - velikost každého
deskriptoru je 8 bajtů... Proto ty offsety skáčí po osmičkách ]
výheň