Keresés

Új hozzászólás Aktív témák

  • Frawly

    veterán

    válasz Frawly #65077 üzenetére

    Az egész olybá tűnik, hogy UEFI-s gépen az UEFI 64 bites védett módú Ring 0-ban futó OS-ként fut. Mármint mindegyik x86-os proci valós módban kapcsol be, de az UEFI átlövi erre a fenti módra. Hiába is kapcsolja be az ember a CSM Legacy BIOS módot, az már csak virtuális módban, emulációként fut, és onnan még indul a DOS, mert azt hiszi, hogy valós üzemmódban megy a proci, és a BIOS-t is eléri, mert emulálja az UEFI. Tehát épp úgy be van csapva a DOS, mint mikor védett módú Windows-ban futtatott ablakban fut. Ez a hiedelem addig meg is marad, míg valamelyik memória manager (pl. EMM386, QEMM, JEMM) meg nem próbál virtuális módra váltani, vagy valamelyik DOS4GW-s alkalmazás védett módra, mert nem tud kilépni a virtuális módból, nem tud újra Ring 0 rendszerként üzemmódot váltani a procin, jön is egyből a hiba, hogy az adott üzemmódban nem engedélyezett utasítást (opcode) próbál végrehajtani, hiszen az üzemmódváltás is egy utasítással valósul meg.

    Még tesztelni fogom FreeDOS-szal, de pl. annak már a telepítő .iso-ja bootoláskor is invalid opcode hibákat dobogatott, szóval ez is ezt erősíti meg. A FreeDOS kernel vagy valamelyik drivere valószínű próbál üzemmódot váltani, mindjárt bootkor, és ezért nem megy.

    Valószínű egyébként, hogy korai UEFI-s gépeken nem lenne reménytelen, mert ott Legacy CSM BIOS módra átkapcsolva nem csak emulálódik a BIOS, hanem ténylegesen is valós üzemmódú valós BIOS indul el, és onnan indulva a DOS-os drivereknek és progiknak nem okoz gondot a módváltás. Meg hagyományos, BIOS only gépeken sem.

    Meg virtuális gépben sem, de csak akkor, ha hardveres virtualizáció van bekapcsolva, mert az engedi szintén a guest OS-t Ring 0 módban futni. Emulátorban sem gond, mert ott meg szoftver emulálja az egész folyamatot, és a futó OS nem a procin fut (bare metal), hanem egy szoftveres rétegen keresztül.

Új hozzászólás Aktív témák