Hlavní navigace

Názor k článku
32 bitů + 64 bitů = to nejlepší z obou světů v x32 ABI

Jardík
Jardík (neregistrovaný) ---.113.broadband7.iol.cz
31. 7. 2012 14:15 Nový

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

celé vlákno

O binárku větší jak 4G nejde. Je tu nějakej linker, kterej tu aplikace po spuštění linkuje s knihovnama. V x86-64 linuxu jdou většinou knihovny do adres nad 4GB a samotná binárka jde pod 4GB.

Jinak větší velikost ukazalů nemusí být pro některé aplikace problém. Kompilátor není debil (většinou) a dokáže použít relativní adresování (např. vůči RIP či nějaký tý adrese, kam byla nahrána knihovna/binárka, což je prakticky to position independent code, které stejně používá většina knihoven). Problém to asi může být spíše u aplikací, co používají hodně malých objektů a ukládají v nich ukazatele na jiné, např. nějaký stromy, spojový seznamy, kde se prostě většinou použije absolutní 64bit ukazatel (programátor si to ale prakticky může řešit sám tím, že si bude uchovávat třeba 32bit offsety k nějakýmu základu a pak je bude přičítat, je to pak přeci jen jedna instrukce tak jako tak.

Jinak já jsem známý odpůrce 32bit šmejďáren, který tu nemají co dělat na x86-64 procesorech, vypínám CONFIG_IA32_SUPPORT v kernelu (na které momentálně x32 závisí, ale plánuje se to změnit). Tenhle x32 vidím jen jako další šmejďárnu, né ani tak kvůli 32bit ukazatelům, jako kvůli tomu, že to umožní prasáckým programátorům portovat jejich rozbitý kód s chybnými předpoklady velikostí datových typů, s prasáckými přetypováními ukazatelů na čísla s předpokládanou velikostí a podobnými prasárnami, místo toho, aby byli donuceni opravit si vlastní rozbitý kód.