ad Ubuntu 32bit:
osobne nechapu rozhodnuti, vypocetni kapacita pro sestaveni 32bit iso je zanedbatelna (zvladal by ji za hodinu i 10let starej netbook s Atomem a 1GB RAM(tim ze 32bit balicky nadale budou), zahazovat 32bit buildscripty stejne nebudou, kdyz budou delat 32bit minimal iso, takze mohli pouze oznacit "Ubuntu desktop 32bit iso" jako nontested/nonsupported/experimental apod...
Build je skoro zadarmo, ale už údržba dalšího build prostředí zadarmo není - nemluvě o testování, supportu, údržbě. 32bit je historie - tak jako je historie 16bit a 8bit. Mít v repozitáři něco jako nontested/nonsupported je něco, co by si profi firma neměla domluvit - omlátí Vám to o hlavu konkurence, a nezapomínejte na bezpečnost.
o to prave nejde, nadale budou moznosti:
- upgrade ze stavajich Ubuntu(/Gnome) 32bit na Ubuntu(Gnome) 17.10 32bit...
- instalovat Ubuntu(GNOME) z ubuntu-minimal-17.10-32bit.iso nebo ubuntu-netinstall-17.10-32bit
- nainstalovat z xubuntu-desktop-17.10-32bit.iso, doinstalovat metabalik ubuntu-destkop a prepnout si pri prihlaseni sezeni na Ubuntu(GNOME)
tak reagoval sem na "by sa tam nechytal gnome", kdy v Gnome v 32bit nebo 64bit nebude zadnej viditelnej rozdil, ale ok to doporucovani ale ve smyslu: https://www.root.cz/clanky/ubuntu-konci-s-32bitovymi-instalacnimi-obrazy-pro-desktop/nazory/939582/
Používat 32-bit distribuci i na 64-bit HW může mít cenu. Možná mohou být binární soubory trochu kratší, zabírat méně RAM (ukazatele jsou poloviční atd.). I když na x86 je v 32-bit režimu zásadní nouze o počet registrů (8) proti 16 v 64-bit režimu. To vše je v pořádku, pokud se provozují aplikace, které nenarazí na limit 32-bit virtuálního prostoru (na Linuxu i Win 3 GB pro user) a jeho fragmentaci.
Ale 32-bit jádro, alespoň v případě Linuxu, trpí na všech 32-bit architekturách nad 1 GB paměti značnými problémy. Chybí totiž virtuální prostor, kam namapovat 1:1 veškerou fyzickou paměť. Pokud dojde jen k mapování/stránkování dat z disku do jednotlivých uživatelských protorů, tak to opět nevadí, když je DMA/bus-master na řadičích disků 64-bit, tak je to vlastně výkonnostně zcela jedno. Ale v okamžiku, kdy musí jádro k datům v pagecache nebo jinde přistupovat algoritmicky/procesorem, například operace read a write, tak každý přístup na stránky nad 1GB fyzické paměti znamená dočasné remapování stránky do stránkovacích tabulek, invalidaci a synchronizaci TLB přes procesory a mnoho dalších velmi časově náročných operací. Můj názor je, že nad 1GB RAM se 64-bit jádro musí vyplatit.
Provozovat 32-bit userspace na 64-bit jádrem by mohla být dobrá volba, ale v případě Linuxu není API mezi jádrem a userspace dané přes IDL, ale přes nativní struktury v C kompilované pro danou architekturu. Z toho vyplývá, že defaultně jsu ovladače a další součásti kompilované pro 64-bit ABI v předávaných strukturách binárně nekompatibilní s 32-bit ABI a zpětně jsou do ovladačů přidávané mechanizmy, které umožňují připrogramovat podporu pro překlad mezi reprezentacemi struktur v paměti. V dnešní době asi postupně přestane být tato vrstva minimálně na x86 tak mohutně testovaná, jako byla doteď a je možné, že se někde může projevit chyba, která při nativním volání ať již 32 do 32-bit nebo 64 do 64-bit nenastane.
Takže kolem a kolem asi má smysl na 64-bit přejít.
To neznamená, že mě nebude 32-bit prostředí chybět. Teď jsem na programování 15 let starých desek přes printerport dotal odložený notebook s 32-bit only Intelem a po nainstalování Stretche s Trinity běhá tak dobře a má proti dnešním solidní mechaniku klávesnice atd, že pro svůj embedded vývoj vůbec nepoznám, že pracuji na starším HW. Takže umělé urychlení likvidace takového HW je docela škoda. Ale celkově je čas vývojářů kriticky cenný a pokud vyhození 32-bit x86 přispěje jen k nepatrně (o několik jednotek chyb za rok) lépe odladěnému desktopu pro většinu, tak má zrušení podpory 32-bit x86 v Ubuntu cenu.
Hlavne ty 64bit ukazatele jsou silene. Nechapu, proc napr. C nema 2 nativni formaty pointeru (jasne, mohlo by to zanest nove chyby). Ale uz jenom jednoduche ->mam 64 bitu -> tj. hornich 32 a spodnich 32. Muzu prece mit 32 bit pointery a pri konverzi na 64bit je brat jako by bylo hornich 32 bitu 0.
Problem je, ze za a) nemame pameti, ktere by cele 64bit pointery vyuzilly b) cache CPU je draha a je ji malo c) maloktera aplikace potrebuje adresovat pres 4GB.