Idézet: SFIJ - Dátum: 2006. jún. 15., csütörtök - 9:24
abban igazad van, hogy a host-os-es virtualizációhoz nemnagyon kell, de van egy másik út, a meta-kerneles virtualizáció, ami önmagában több OS-t futtat. Jó példa erre az IBM VM/ESA. az ilyen rendszerek mindig szegmentált memóriájúak. nem állítom, hogy tömegesen használják ilyenre az x86-ot, de azért használják így is.
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).
A kívánt működés sokkal egyszerűbben kiváltható: minden virtuális gép kontrollblokkjába csak annyi információ kell, hogy a virtuális gép lineáris címterét hova kell leképezni a fizikai címtérbe (mondjuk a szokásos bázis+határ mezőkkel, a védett mód szegmensdeszkriptoraihoz hasonlóan). Nehogy rákezdd, tudom, ez definíció szerint a szegmentált memória.

De ehhez nemhogy a virtuális gépekben "látható" szegmensregiszterekre, de semmilyen onnan "látható" regiszterre nincs szükség.
Tehát mégegyszer: nem azt állítom, hogy az említett rendszerek nem használnak szegmentált memóriát, hanem azt, hogy az x86-os szegmentált címzésnek ezekhez semmi köze.
Azért is tartom csökevényesnek, mert nem transzparens; a szegmensregiszterek minden szintről "láthatóak".
Idézet
ez egy piaci igények vezérelte architektúra/ISA, úgyhogy ez a kérdés nagyon nehezen válaszolható meg. jelenleg nem látszik olyan bántó korlát, melynek feloldása valós piaci igényként jelentkezne.
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. 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.
Szerkesztette: cx.core 2006. 06. 15. 19:41 -kor