Hlavní navigace

32 bitů + 64 bitů = to nejlepší z obou světů v x32 ABI

Petr Krčmář

Trendem posledních (mnoha) let je přechod na 64bitový operační systém. Zdaleka ne všichni uživatelé se k tomuto kroku ale odhodlali. Nová architektura má z principu totiž také své nevýhody a ne každý je ochoten je akceptovat. Je tu ale zajímavé univerzální řešení x32 ABI, které spojuje to nejlepší z obou.

První procesor s architekturou AMD64 se objevil už v roce 2003, tedy před téměř deseti lety. Už v té době byl Linux (jádro) na 64bitový režim připraven a a během následujících let začaly vydávat novou větev i všechny velké linuxové distribuce. Od té doby vlastně probíhá přechod uživatelů na 64 bitů.

Přestože nová platforma přináší řadu výhod, mnoho uživatelů na ni ještě stále nepřešlo. Různé internetové ankety ukazují, že přibližně polovina linuxových počítačů ještě běží na 32 bitech. To je možné připisovat jednak neznalosti některých uživatelů, ale svou roli tu budou hrát i nevýhody 64bitové platformy.

64 bitů není pro každého

Platforma AMD64, kterou i přes název dnes používají i procesory Intel, řeší několik různých problémů. Přidává další (a větší) registry, přináší nové výkonné instrukce a zvětšuje adresní prostor. Poslední jmenovaná vlastnost je z uživatelského hlediska nejviditelnější a také nejzajímavější. „Pokud máš víc než 4 GB paměti, potřebuješ 64 bitů,“ říká obecná rada. I když je možné rozšířenou adresaci řešit i pomocí PAE v 32bitovém prostředí, přechod na 64 bitů je asi nejčistším řešením bez dalších vedlejších efektů.

Ovšem tady právě přichází největší nevýhoda: pro rozšířenou adresaci je třeba rozšířit i délku ukazatelů a proměnných na 64 bitů. To způsobuje nepříjemný efekt, kdy narůstá velikost binárního kódu. Bobtnání je závislé na konkrétní aplikaci, ale obecně jde o desítky procent. To není část uživatelů ochotna akceptovat a znám řadu lidí, pro které je to překážka v přechodu na 64 bitů.

Větší kód zabírá více prostoru v paměti a zároveň zahlcuje cache, což snižuje její efektivitu. Může tak dojít k paradoxní situaci, kdy 64bitová aplikace bude pomalejší, než kdyby běžela ve 32bitovém režimu. Navíc je třeba si uvědomit, že většina aplikací ani větší než 4GB adresní prostor nepotřebuje a nevyužije. Dvakrát delší ukazatele a proměnné jsou tedy pro takové aplikace jen přítěží bez praktického využití. Ovšem i těmto aplikacím by se hodilo více registrů a některé vylepšené instrukce a další výhody 64bitového režimu.

x32 ABI míchá výhody…

Proto se vývojáři rozhodli přijít s „novým režimem“, který si bere to nejlepší z obou světů a poměrně zajímavě vše kombinuje. Ve zkratce jde o to, že procesor stále běží v 64bitovém režimu se všemi jeho výhodami, ale aplikace používají k adresaci 32bitové ukazatele. Mohou tedy adresovat „jen“ 4 GB paměti, ale zbytečně nebobtnají.

K tomu je potřeba splnit dvě podmínky: mít překladač schopný takto kód sestavit a mít podporu v jádře operačního systému. Podpora v tomto případě znamená nové ABI označované v linuxovém jádře jako x32 ABI. To umožňuje při volání jádra přijmout od aplikací data v 32bitové podobě. O konkrétní podobě tohoto rozhraní se mezi vývojáři vedly spory, o kterých psal například server LWN.

Nový režim už není jen v plánech vývojářů, ale je možné jej nasadit. Podpora je součástí jádra 3.4, glibc 2.16 a GCC různých verzí, oficiálně pak od 4.7. Vývojáři různých distribucí už podporu oznámili a pravděpodobně půjde časem v mnoha distribucích o preferovanou variantu běhu aplikací.

První testy vývojářů totiž ukazují, že jde o nejrychlejší režim pro běh aplikací. Phoronix uvádí, že v některých případech narostl výkon až o 32 %, což je jistě velmi zajímavé číslo. Dodává ale, že jsou situace, kdy je výkon nepatrně horší než u plně 64bitového režimu. Abychom ale měli představu o konkrétním dopadu na ušetřenou paměť a výkon, budeme si muset počkat na další testy, ideálně v plně funkčním operačním systému.

Uživatelé se také často ptají, co se stane, když bude některá aplikace vyžadovat více než 4 GB paměti. Ovšem i tahle situace má (poměrně) jednoduché řešení. Pokud by aplikace vyžadovala více než 4 GB paměti nebo by byla při kompilaci proti x32 ABI pomalejší, je možné ji vždycky provozovat v plně 64bitovém režimu. Procesor v něm tak či tak běží a obě ABI jsou k dispozici zároveň. Není tedy problém míchat x32 i klasické 64bitové aplikace.

Je tu ale jedno velké „ale“. Je totiž třeba počítat s tím, že pro takový běh je třeba mít zapnutý multilib a používat oddělené x32 a 64bitové knihovny. Stejně, jako dnes provozujeme vedle sebe 32– a 64bitové aplikace. Opět tím tedy naroste spotřeba paměti a místa na disku.

Kde už x32 je či bude

Jak už bylo napsáno, někteří distributoři o „nové architektuře“ hovoří či ji rovnou nasadili. Jako první bylo z pochopitelných důvodů Gentoo, které vydalo první testovací verzi v červnu letošního roku. Můžete si tedy novinku stáhnout a vyzkoušet.

I mezi vývojáři Ubuntu už se o nasazení hovoří několik měsíců. Canonical zatím vyčkává, až budou všechny střípky připraveny k reálnému nasazení. Z jednání zatím vyplynulo: Jednotlivé součásti pravděpodobně nebudou připraveny do verze 12.10, ale měli bychom už přemýšlet nad tím, jak to do Ubuntu dostaneme.

Debian zatím přidal podporu x32 ABI do balíčkovače dpkg (viz bug 667037) a v některých dokumentech se už jméno nové architektury nachází. Také v konferencích se dají najít zmínky o krocích vedoucích k podpoře v Debianu. Oficiální rozhodnutí ale zatím nepadlo, i když Ben Hutchings v konferenci píše: Nechci to udělat [zapnout podporu v jádře], dokud se projekt nerozhodne x32 podporovat. Což si myslím, že neudělá.

Podobně se nad nasazením diskutuje například ve Fedoře. Matthew Garrett v konferenci píše: Pokud se objeví dostatečný zájem, můžeme to případně implementovat jako samostatnou architekturu. Ale netuším, zda to bude pro Fedoru natolik přínosné, abychom na tom strávili více času.

U Arch Linuxu se zatím také diskutuje o přínosech, ale někteří vývojáři už začali na příslušných balíčcích pracovat.

Zatím je x32 ABI příliš mladé, než aby se tvůrci distribucí vrhli do jeho hromadného nasazování. Podle reakcí mnoha uživatelů jde ale o užitečnou věc, o kterou je zájem. Proto už vývoj na mnoha místech začal i přesto, že se projekty oficiálně nerozhodly, že jde o správný směr. Zřejmě tedy rozhodne reálný zájem uživatelů. Co si myslíte vy?

Našli jste v článku chybu?

31. 7. 2012 19:32

Myslel jsem, že tyhle názory "x KB musí stačit každému" už patří dávno do minulosti, ale zdá se, že někdo tomu věří ještě v 21. století.

Já mám doma 16GB, v práci 8 a na méně než 8 bych už dělat fakt nemohl. 4GB jsou tak na spuštění základních aplikací, ne na normální práci.

31. 7. 2012 19:03

Já mám 8GB a občas se spuštěným eclipse a aplikačním serverem má ten notebook co dělat, ani nepotřebuju virtuální mašiny...

Ale k věci. Ono nejde jenom o ty pointery, které jsou zbytečně dvakrát větší, což přetíží cache. Ale instrukční sada x86_64 je přece jen o pár desítek let jinde než x86_32. Do jisté míry by stačilo, kdyby se kompiloval kód pro architektury SSE3+, případně vylepšit ABI. Jenže skutečnost je taková, že omezení jde maximálně na i686 v lepším případě, a na i386 v horším (viz De…

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

DigiZone.cz: Flix TV startuje i na Slovensku

Flix TV startuje i na Slovensku

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla