Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Arm64X je nový typ binárního souboru, který může obsahovat klasický kód Arm64 i kód Arm64EC společně. Díky této duální kompatibilitě je Arm64X vhodný pro klasické operace Arm64 i Arm64EC na zařízeních s Windows na platformě Arm. Je to zvláště vhodné pro middleware nebo pluginy, které používají obě ABI.
Představeno v sadě Windows 11 SDK, binární soubor Arm64X je typ Portable Executable (PE) souboru, který funguje s Windows 11 pro Arm i Windows 10 pro Arm. Pokud chcete sestavit binární soubory Arm64X, přečtěte si téma Sestavení binárních souborů Arm64X.
Jak fungují binární soubory Arm64X?
Binární soubor Arm64X v podstatě obsahuje veškerý obsah, který by byl v samostatných binárních souborech x64/Arm64EC a Arm64, ale sloučí je do jednoho efektivnějšího souboru na disku. Integrovaný binární soubor Arm64X má dvě sady kódu, vstupních bodů a dalších prvků a současně eliminuje redundantní části, aby se ušetřilo místo na disku.
Když aplikace načte binární soubor Arm64X, operační systém použije transformace, aby v závislosti na architektuře procesu zpřístupnil správné části. Binární soubor Arm64X si můžete představit jako staré 3D obrázky s červeným i modrým obrázkem, který si můžete prohlédnout prostřednictvím červených nebo modrých objektivů na dvojici 3D brýle. Aplikace x64 vidí knihovnu DLL, jako by se jedná o knihovnu DLL x64, zatímco aplikace Arm64 vidí stejnou knihovnu DLL jako knihovnu ARM64 DLL.
Transparentní transformace operačního systému umožňují aplikacím x64 i Arm64 načíst stejný binární soubor Arm64X, aniž byste museli vědět, že obsahuje také kód pro jinou architekturu. Z tohoto důvodu lidé přezdívají Arm64X binaries 'chameleon', protože si vezmou "barvu" svého okolí.
Ve výchozím nastavení se binární soubory Arm64X jeví jako binární soubory Arm64. Toto výchozí nastavení umožňuje systému s Windows 10 v Arm, který nerozpozná formát Arm64X ani neví, jak použít transformace, aby se binární soubor Arm64X úspěšně načetl do procesu Arm64.
Jak operační systém používá binární soubory Arm64X?
Windows 11 on Arm představil možnost spouštět aplikace x64 v Arm64. Na rozdíl od emulace x86, která obsahuje SysWoW64 složku, ale neexistuje žádná samostatná složka binárních souborů operačního systému x64. S Windows 11 ve verzi pro Arm mohou jak aplikace x64, tak i Arm64 načítat binární soubory a volat rozhraní API pomocí binárních souborů v System32. Tato flexibilita je možná, protože vývojáři překompilují všechny binární soubory v System32, které by aplikace mohla potřebovat načíst jako binární soubory Arm64X.
Aplikace x64 i Arm64 můžou načítat binární soubory a s nimi interagovat System32, aniž by potřebovaly samostatnou kopii všech systémových binárních souborů, jako to potřebuje x86 ve SysWoW64.
Arm64X pro použití s middlewarem nebo moduly plug-in
Základní funkcí binárního souboru Arm64X je povolení jednoho souboru na disku pro podporu procesů x64/Arm64EC i Arm64. Většina vývojářů aplikací se zaměřuje na vytváření aplikace jako Arm64EC nebo Arm64, ne na obojí, takže pravděpodobně nebudete potřebovat Arm64X.
Vývojáři middlewaru nebo modulů plug-in by ale měli zvážit Arm64X, protože takový kód se může načíst do procesů x64 nebo Arm64.
Můžete podporovat procesy x64 i Arm64 bez použití Arm64X, ale možná zjistíte, že je jednodušší nechat operační systém zpracovat načítání správné architektury binárního souboru do daného 64bitového procesu.
Mezi tři koncepční způsoby podpory obou architektur ve Windows 11 v Arm patří:
Samostatné binární soubory: Vzhledem k tomu, že standardní postupy dnes používají samostatné binární soubory při podpoře více architektur, můžete zjistit, že sestavení a odeslání samostatných binárních souborů x64 a Arm64 funguje pro vaše řešení lépe. Pomocí stávajících mechanismů můžete zajistit správné načtení binárního souboru do procesu spojeného s příslušnou architekturou.
Binární soubor Arm64X: Můžete vytvořit binární soubor Arm64X, který obsahuje veškerý kód x64/Arm64EC a Arm64 v jednom binárním souboru.
Arm64X pure forwarder: Pokud potřebujete flexibilitu Arm64X, ale chcete se vyhnout vložení veškerého kódu aplikace do binárního souboru Arm64X, můžete použít čistě předávací přístup. Malý binární soubor Arm64X bez zpracování kódu přesměruje načítací modul na správnou architekturu knihovny DLL.
Příklady situací, které vyžadují Arm64X
Některé situace vyžadují použití binárního souboru Arm64X pro podporu aplikací x64 i Arm64. Mezi tyto situace patří:
- 64bitový server COM, který volají aplikace x64 i Arm64
- Plugin, který se načte do aplikace x64 nebo Arm64
- Jeden binární soubor, který se vloží do procesu x64 nebo Arm64
V každém z těchto případů můžete použít binární soubor Arm64X nebo čistě předávací modul Arm64X, který umožňuje, aby jeden binární soubor podporoval obě architektury.
Podrobnosti o vytváření binárních souborů Arm64X najdete v tématu Sestavení binárních souborů Arm64X.
Windows on Arm