Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

RPL,DPL,CPL (x86 assembler i deskriptori/slektori)

[es] :: Asembler :: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)

[ Pregleda: 4470 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon RPL,DPL,CPL (x86 assembler i deskriptori/slektori)19.07.2001. u 21:40 - pre 276 meseci
Naso sam jedan veom zanimljivo post na comp.lang.asm.x86 news grupi :

> I'm reading a section in a book about Protected Mode
> and I've been having difficulties distinguishing
> between the functionality and purpose of the RPL
> located on the segment selector and the DPL located
> on the segment descriptor.

> In addition, there is the EPL which I understand by
> definition but no further than that.

No there isn't an EPL - i'll assume you mean CPL.

Well here goes. (First a little background)

Privledge levels have 4 possible values (binary)
00 highest privledge - operating system kernel
01 rest of the operating system software
10 trusted applications ie. database engines
11 normal applications (and v86 code) - you will
normally run most stuff in this mode
- lowest privledge
(The backward nature [00=highest->11=lowest] is confusing at first but you get $
course when you are coding your own OS you may elect
to only use a limited number of these modes (ie. 00
and 11 for system/user) or run every thing in ring
00 (no protection).

The CPL is the current privledge level - this is the
privledge the currently executing instruction/code is
running at - essentially the reference point against
which the other values are tested.

The DPL is the descriptor privledge level - this is
the privledge required to access the selector. It
is stored in the flags of the selector in the GDT or
LDT (depending on the location of the selector). The
selector can only be accessed if CPL<=DPL otherwise
fault 13h / general protection fault (#GF) occurs.

RPL is the requestor privledge level - this is used
when a selector is passed from a less privledged
procedure to a more privledged procedure to stop
possible accesses of the selector passed if the
application was unable to access the selector. The
RPL is stored in bits 1 and 0 of the selector. The
instruction ARPL is designed to alter the RPL before
it is loaded into a selector. If a selector is
accessed #GF occurs if CPL>DPL ior RPL>DPL. Setting
RPL to 0 allows it to be ignored, and if protection
is not an issue RPL should always be set to 0.
(nb: if you are passing a selector along a chain of
increasingly privledged procedures instead of setting
RPL = CPL of caller, set RPL as the higher of old RPL
and the CPL of the caller.

Ie. If CPL = 10,
SS = DPL10, RPL00
DS = DPL10, RPL10
ES = DPL00, RPL00
FS = DPL11, RPL11
GS = DPL10, RPL11

Then SS, DS and FS could be accessed but any attempt
to access ES or GS would cause #GF
(nb: I think even loading ES would cause a #GF however
you'll have to check - I'm writing this from memory)

That should answer you question - but I'll also mention
IOPL (stored in flags) this is the minimum privledge
IN or OUT instruction can occur at. If an IN or OUT is executed and CPL>IOPL t$
(in the current TSS) is checked. Then if the I/O is
accessing a port forbidden bu this bitmap #GF occurs.

A number of instructions are forbidden in certain
privledge levels.

If CPL>00 LIDT,LLDT,LGDT,LTR,LMSW,CLTS and HLT are
forbidden.
If CPL>IOPL STI and CLI are forbidden.
If CPL>IOPL IN,OUT,INS and OUTS are subject to the
I/O permission bitmap.
Also IRET and POPF are modified according to CPL
(IOPL field is unchanged if CPL>00 and IF field is
unchanged if CPL>IOPL)
[in v86 mode things are slightly different - but
that can be left for another day]
 
Odgovor na temu

StYx

Član broj: 180
Poruke: 40
*.mol.com.mk

ICQ: 124354897


Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)20.07.2001. u 21:22 - pre 276 meseci
caos predo,
jes da nisam za ovo temu ali sam naso tekstic sto bi te interesovao u vezi assemblera ... ustvari vise je u vezi security i assembler .. jos ga nisam procitao ali idem sad ... evo ti url
www.lsd-pl.net/papers.html


 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.rcub.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)26.07.2001. u 03:14 - pre 276 meseci
Intel nudi dokumentaciju u kojoj se sve ovo dokumentuje. Pogledajte Intel Developer's Manual, Volume III: Systems Programming.

Besplatno su dostupne 3 knjige referenci (2. sadrzi i sve instrukcije) u PDF formatu. Ukoliko se neko muci da ih nadje, neka se javi, sredicemo.

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)26.07.2001. u 14:03 - pre 276 meseci
Vec vidjeno, + nema primera za to sto govore u vezi descriptora/selectora.Ili govore mnogo da je malo konfuzno ;o)
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.rcub.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)27.07.2001. u 00:27 - pre 276 meseci
Možda jeste suviše zakomplikovano, ali ja sam pročitao to iz Intel Dev. Man. III, i iz teksta koji si poslao nisam saznao ništa novo, prema tome smatram da se može razumeti i tamo, i da sadrži sigurno dovoljno podataka.

Čak šta više, morao bih da se složim da je u tekstu koji si postovao sve to sažeto rečeno, i veoma razumljivo, ali mislim da je takav način izlaganja nemoguć u priručniku obima IDM3, zbog toga što ima tu još mnogo stvari koje treba usput predstaviti ukoliko se izlaže na ovakav način. Intel je uradio veoma loš posao, pošto nije sistematski izložio tematiku, ali kada se pročita ceo priručnik može se sve povezati.

A pored toga, ja sam ovu preporuku dao za one koji žele da upoznaju sve detalje Intel arhitekture, a ne samo priviledge levels i par napomena kada se inicira #GPF (ili je možda ipak #GF kako kaže u datom tekstu).

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)27.07.2001. u 12:05 - pre 276 meseci
Ako nekom treba :
Intel Architecture Software Developer's Manual Volume 3 : System Programming Guide nek se javi da mu dam da fotokopita; o)))
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.226.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)29.07.2001. u 01:18 - pre 276 meseci
jel odatle mogu da se dobiju pocetna znanja iz tog naprednijeg dela
posto sam ovaj pocetni kao prosao

ps. mislim da bi moderator za ovaj forum trebalo da bude t0wk ako se on slaze i zeli
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.rcub.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)29.07.2001. u 03:42 - pre 276 meseci
Citat:
Mikky je napisao:
jel odatle mogu da se dobiju pocetna znanja iz tog naprednijeg dela
posto sam ovaj pocetni kao prosao

ps. mislim da bi moderator za ovaj forum trebalo da bude t0wk ako se on slaze i zeli


Pa najverovatnije je ipak bolje procitati prvo neke uvodne tekstove koji se bave zasticenim modom (protected mode) i organizacijom memorije na IA32, pa se onda ovo sve cita mnogo lakse, medjutim, trebalo bi da je i moguce da se sve provali odatle. Ima mnogo sajtova koji se bave uvodima u programiranje, zanimljivi primeri za to su DOS Flat Real mode, LOADLIN itd.

Sto se tice pozicije moderatora, ima ovde jos dosta ljudi koji mogu da budu moderatori, a ja sigurno nisam za tu poziciju posto nisam bas pouzdan, i moze se desiti da ne posetim forum i po 2-3 nedelje (kao do pre neki dan). Ne zelim da preuzimam bilo kakve obaveze pa da ih ne ispunim onako kako bi trebalo.

Toliko.

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.64.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)29.07.2001. u 16:18 - pre 276 meseci
IA32?
za sta je ta oznaka?

biti moderator nije neka preterana obaveza barem na ovom forumu gde nema mnogo postova i nema pljuvanja itd
pre svega sam mislio zbog tvog znanja iz ove oblasti posto glupo je da neko pita nesto malo slozenije a ja nemam pojma da mu objasnim a glumim tu nekog moderatora heh :)
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)29.07.2001. u 23:15 - pre 276 meseci
IA32 je bre Intel 32bitni procesor ;o))

Si cuo nekad da Linux kernel ima podrsku za IA64 ? E to je ovo sto zovi 64bitni intel proesor ;o)
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.etf.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)30.07.2001. u 02:08 - pre 276 meseci
predator ti je odgovorio, ali ako te interesuje precizno IA32 = Intel Architecture 32 i tu se misli na procesore od 386 do pentiuma [sve do XVII ukljucno].


Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.25.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)30.07.2001. u 02:12 - pre 276 meseci
e kad smo vec kod toga
Kada se kaze da je procesor 16 bitan sta to tacno znaci?
Da li to znaci da on komunicira sa 16 bitnom magistralom podataka tj
od jednom moze da posalje samo 16 bita podatkovnoj magistrali ili je nesto
sasvim drugo?
takodje da li ako je procesor 16 bitan to znaci da on moze da se nakaci
na 8 bitnu (i manje bitne) magistralu?
posto sam procitao za slucaj kod 8088 posto su
mnogi mislili da je 8088 8 bitni procesor sto nije tacno jer je on konstruisan za rad
sa 8 bitnom magistralom a u stvari je 16 bitni procesor

-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)30.07.2001. u 11:50 - pre 276 meseci
Pa to 16,32 i 64 bitni oprocesori dobijaju ime po velicini registra.

od 8086 do 80286 je 16 bitni procesor jel su im registri 16 bita a vec od 386 -> do pentium je 32bitni procesor jel su registri == 32 bita sada izlaze sezdesetcetvoro bitni procesori jer su im registri 64 bita ;o)
 
Odgovor na temu

[es] :: Asembler :: RPL,DPL,CPL (x86 assembler i deskriptori/slektori)

[ Pregleda: 4470 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.