16:54 | 25.11.2010
Anonym
Článok popisuje funkcionalitu a možnosti 32-bitových aplikácií na 64 bitovej platforme. Poukazuje na bezpečnosť, na možné úskalia pri ich používaní a na obmedzenia, ktoré sa ich týkajú. Vysvetľuje ako ich vníma súborový systém i register.
32-bitové aplikace na platformě x64
64-bitové verze operačních systémů Windows jsou stále populárnější. Krom toho, že lépe využívají možnosti současných procesorů, například v podobě většího počtu větších registrů a možností instrukcí pracujících s 64-bitovými operandy, což se může projevit zrychlením výpočetně náročnějších aplikací, dovolují jednotlivým běžícím procesům využívat větší množství virtuální paměti. Také disponují lepším zabezpečením (vynucení digitálně podepsaných ovladačů, ASLR, Patchguard).
Ne všechny programy však lze do podoby nativního 64-bitového kódu převést. Jednak proto, že jejich zdrojové kódy skončily kdesi v propadlišti dějin, druhak z toho důvodu, že programátoři při, když tyto aplikace tvořili, předpokládali platnost invariantů, které na platformě x64 neplatí. Například že velikost adresy je vždy 4 bajty (32 bitů).
Protože 32-bitových aplikací je velké množství, 64-bitové verze Windows jejich běh dokáží emulovat. Nejedná se přitom o emulaci na bázi virtuálního stroje – procesory disponují speciálním režimem kompatibility, který dovoluje provádět i 32-bitový kód v 64-bitovém prostředí. Operační systém emuluje pouze systémová volání a několik dalších aspektů života těchto aplikací, ostatní se odehrává přímo na procesoru.
64-bitová Windows se snaží 32-bitovým aplikacím vytvořit běhové prostředí, které co nejvěrohodněji kopíruje prostředí opravdového 32-bitového operačního systému. V tomto článku se zaměříme na změny v obsluze volání souborového systému a registru a ukážeme si, že mohou způsobit zajímavé problémy.
Zdroj: Secit.sk