Idézet: cx.core - Dátum: 2006. jún. 15., csütörtök - 19:34
A szegmentált memóriacímzés az x86-on jelenlévő formájában nem teszi lehetővé több védett módú OS biztonságos futtatását egyazon gépen. Ehhez arra lenne szükség, hogy az egyes virtualizált gépek védett módjának 0. privilégiumszintjén futó kód számára is korlátozható legyen a fizikai memória bizonyos (más virtuális gépeknek kiosztott) területeinek elérése. Ezt az x86 szegmentált címzése nem teszi lehetővé, mivel a 0. szinten futó kódnak (definíció szerint) "mindent szabad" (a deszkriptortáblázatokat írni, a szegmensregisztereket globális, "supervisor" típusú deszkriptorokra mutató szelektorokkal feltölteni, stb). Ilyetén virtualizációt a lapozás sem tesz lehetővé (eredeti formájában), hasonló okok miatt (a 0. szinten futó kód módosíthatja a laptáblázatokat, feltöltheti a laptáblázat-címregisztert (CR3), stb).
igen ez a mai latasmod mellett mar igaz, csakhat volt/van ring0,1,2,3 1985-ben a szegmentalas meg divatban volt, vagyis az ibm koncepicoja, mikoris a meta-os egyeb OS-t tolt (IPL), ring 0-n laknak a virtualis szervizek, amikbol minden OS gazdalkodhat. Az OS a Ring1-re toltodik. Ha megnezed a linux IBm VM/ESA specifikus kernel reszeit, akkor valami ilyesmit latsz. Namost a budos helyzet az lett, hogy
a) nem tudta/akarta az intel a meat OS funkciokat letrehozni, itt ugye DOS, CP/M 86, xenix (kesobb sco unix)-rol volt szo
b) az allando kapuhivasok doglassuva tettek a mukodest
c) a 90-es evek elejeig az ment, hogy volt ugye a microsoft fele DPMI, ami egy katasztrofa ugye, mert nem igazi dolog, hanem valami olyasmi, hogy belepsz IA32 modba, kihuzatod a szegmenseket 4Gigara, van egy flat cimed, a RAM-ok birjak ameddig vannak, mikozben van egy EMM386.sys ami lenyegeben egy kapuhivas, es lapozgat neked memoriateruleteket, tovabba valoban szetszegmentalja fizikailag a virtualis dos gepeket. ennek a legokosabb implementacioja a quterdeck fele desqview volt, ami DOS-okat es ratoltott proggiat tudott valoban multitszk futtani, igaz a proggik kozott zerus interakcio, adatcsere lehetett.
d) jott linus torwalds meg az NT, amik lenyegesen kisebb igenyuek voltak (privilegizalt mod + lapozas)
e) A szegmens regiszterek koruli oromkodes az utobbi 4 evben aranykorat elte, PSE36, felfedeztuk ujra az EMS-t igaz mostmar valos 32 bites proggik szamara, ambator eletveszelyes dolog felhasznaloi program kezebe adni a memoria-kezeleset.
A virtualizacio sokkal primitivebb modon lejezelheto amugy, wmvare modra. a guest OS kernel futas kozben tabornokvedelmi hibakat okoz, amit egy, a host OS-be injektalt virtualis driver egyszeruen elkap, es leemulalja a priviliegizalt funkciokat.
Azért is tartom csökevényesnek, mert nem transzparens; a szegmensregiszterek minden szintről "láthatóak".
hehe igen, de meg tudom oldalni, hogy minden garazda csak a sajat szegmens regisztereit lassa, es ne lathasonn bele a masikeba
lenyeg ami lenyeg. az AMD azert hagyta el az AMD64 modbol a szegmens reisztereket, mert
a) a kutyanak sem kell
b) noveli a cimszamitas indirekcios szintjeit ezaltal lassitja a mukodest.
Idézet: cx.core - Dátum: 2006. jún. 15., csütörtök - 19:34
Megpróbálom összefoglalni, hogy mi vetette fel bennem a kérdést.
Ha megnézünk egy modern "complex" meg egy modern "reduced" ISA-t, akkor azt látjuk, hogy a nagy "összecsapás" során kölcsönösen tanultak egymástól. Pl. az x86-ba is bekerültek valamilyen szinten a másik oldal szívének szottya predikátumos végrehajtású utasítások (cmov, fcmov), vagy az a lebegőpöttyös összehasonlító utasítás, amely közvetlenül az ALU flageit módosítja (fcomi), nem az FPU-ban lévőket. De pl. az ARM procikba meg bekerült a Thumb utasításkészlet, amely a félszavas (:Đ) utasításaival nyilván az x86 drágaszágát, a nagyobb utasítássűrűséget hivatott megkaparintani.
ebben teljesen igazad van, az ISA-k olyanna valnak, amilyenre szukseg van. A SUN USIII-nak van olyan utasitasa, ami a regiszter file-ban ropteben leszamol egy 8x8-as (i)DCT-t. Egy ilyenre a leg elvetemultebb CISC-fanok is elgedetten csettinetenek a szajuk szelen a nyelvukkel
Idézet: cx.core - Dátum: 2006. jún. 15., csütörtök - 19:34
Ezek nyilván kiragadott példák csupán (ráadásul a saját szájízem szerint válogatva), de az x86-64 bővítéseivel együtt nézve számomra egyértelműen radikálisabb változásokat jeleznek előre. Ki tudja, talán még azt is megérjük, hogy a TLB miss az eljövendő x86-64-eken is egyszerűen csak megszakítást fog okozni, ahelyett, hogy a laptáblázatok HW-es bogarászása indulna meg.

Ennel en kisebb igenyu vagyok. nekem mar azis jol esne ha a regiszterek beteges harmassaga mexunne, ugymint egesz regiszter, lebegopottyos regiszter, xmm regiszter. legyenek csak 128 bites memoriacellak es az hogy a benne levo adatot hogyan kell ertelmezni az kizarolag a raapplikalt utasitas dontse el.