Eida.cz - Opatrná deintelizace

Opatrná deintelizace

23. června 2020, 17:59 Eida

Dnešek je jistě zajímavou konstelací šťastných hvězd hned z několika důvodů, kterým pořádně nerozumí ani ony samy. Ale máme čerstvě za sebou poslední WWDC a je docela možné, že se kvůli tomu ode mě něco očekává, protože téměř vytoužený den, jak se zdá, možná přece nadešel.

Na to, jak hrozně WWDC začala naprosto zbytečným plkáním o vynucené diverzitě a inkluzích, které jednou – až dojdou korporátní zdroje – zcela nezbytně pohřbí všechen technologický rozvoj, a na to, že to letos muselo být sice bez roušek, ale předtočené pro onlíne přenos, to zas tak hrozný průser nakonec nebyl. Rozličných novinek jako vždycky padlo docela dost a nebudu se teď zabývat tím, jak iOS 14 dostane vyladěné Metro-dlaždice a podporu rukopisu, o tom zcela jistě něco už sepsal Davídek. Taky si nemyslím, že je v tuhle chvíli úplně podstatné, jak se bude jmenovat nový macOS a proč, když se podle všeho základní koncept opět vrací víceméně do roviny Tigeru, musí být nový Menubaru transparentní a Dock se vzdouvat nad mezerou okraje obrazovky, kde velmi rády umírají pixely. Podstatná je v rámci tigerovské analogie úplně jiná změna, a to, že Apple po 15 letech konečně opět zcela mění architekturu procesoru.

In PowerPC we trusted, now some of as are Inteled. Maybe one day we well be ARMed.

Přechod na Intel před lety byl z mnoha důvodů epický fail a až teprve současné generace produktů, tedy procesory osmé a vyšší generace, nové Radeony a macOS Catalina, poskytují takový ten odlesk pocitu, jako býval dřív na PPC strojích. Důvod tehdejšího přechodu byl docela jednoznačný, prakticky bychom to celé mohli svést jenom na marketing, potažmo dopad problému megahertz myth na marketing, ale upřímně vzato tehdejší Power architektura ve srovnání se soudobými x86 trpěla jinými výkonnostními nedostatky. A to nejen v rychlostech FSB a dalších interních částech, ale jako hlavní problém zpětně vidím schopnost výrobních linek dostatečně rychle implementovat nové technologie do výrobního procesu, resp. dostatečně rychle inovovat výrobní proces samotný. Ona neustálá konkurence AMD a Intelu byla zkrátka dobrá v tom, že se naučili velmi pružně reagovat a i když Intel teď dostává nafackováno od jedné zranitelnosti ke druhé, firma se drží dobře a pořád vyrábí. Přitom nejenom současné, ale hlavně i post-PPC Power procesory nejsou vůbec špatné, jen zkrátka nepatří do spotřebního trhu. Koneckonců vlastně spotřební CellBE, který přišel docela krátce po G5 a který Sony použila v PS3, měl neuvěřitelný potenciál, který zase jen přibrzdil a nakonec zcela zamrazil marketing.

Tím se dostáváme asi k tomu hlavnímu jádru všeho zla – síle peněz a prodejnosti, která zkrátka předčí všechno ostatní. Přechod na Intel a zejména změna segmentu zákazníků na mainstreamový póvl byly od Apple plivnutím do tváře všem, co měli radost z toho, že mohou v klidu používat uživatelsky krásný, RISCový UNIXový systém, aniž by jim hrozilo, že budou konfrontováni s každodenní realitou všech, co z nějakého nešťastného důvodu mají Windows i doma. Z hlavy sice netuším, jak XNU/Darwin provádí plánování času, ale první intelové vlaštovky se vyznamenaly přesně tím, že sice prováděly nějakou operaci docela rychle, ale za cenu toho, že se třeba na okamžik zaseklo grafické vykreslování, nebo prostě cokoliv nebylo dokonale plynulé. A je to vlastně logické, kromě neúměrně dlouhé pipeline a spekulativního provádění instrukcí mají zkrátka CISCové platformy sice spočetnou, ale v praxi téměř nepředvídatelnou délku operací, zatímco Power byla navržená nad myšlenkou ze 70. let využít RISCovou instrukční sadu ortogonálně, kdy všechny typy instrukcí mohly využít libovolné a stejně velké režimy adresování, ve výsledku, když se to zjednoduší, úplně všechny operace mohly trvat stejnou, dobře předvídatelnou a spočetnou dobu.

Další tragédie byla také v samotném nasazení, které bylo docela opatrné a bez výstřelků, což není úplně pochopitelné. Zkrátka a dobře se nejprve skutečno jelo pouze na 32bitové i686, asi protože si nikdo nedokázal představit, že 64b se bude skutečně využívat. Těžko říct, co bylo důvodem nezvolit x86_64 od samého začátku, ale jak se to na sebe nabaluje, x86 si sebou nese všechny nešvary z celého vývoje a moc prostoru pro zlepšení tu už asi nebude, aniž by se zase něco rozbilo. Na druhé straně vzniklo díky tomu poměrně značné množství nových a zbytečných problémů, které by bez x86 neexistovaly. Pokud si například někdo pořídil Mac jen kvůli tomu, že na něm může provozovat Windows, nebo nějaký program, co běží jen na Windows, pak asi nikdy nepochopil tu původní cestu, nebo prostě ignoroval, že se má myslet trochu jinak, třeba se naučit pracovat s BSD, když nic jinýho. Jenže tenhle nešvar právě teď v Catalině tak trochu přerostl přes hlavu a neumím si vysvětlit, co se v Apple vlastně děje, ale možná trochu třeba přišli k rozumu, když podporu 32b kódu zcela zahodili nejen z jádra, ale i z knihoven. Na tomhle místě patří týpkům z Codeweavers obrovitánská poklona za implementaci mezilehlých překladů 32b volání v ryze 64b prostoru. Dost možná je to ta nejúžasnější věc, která nebude nejen vidět, ale zůstane i svou cílovkou zcela nepochopena.

Ačkoliv bylo od začátku jasné, že život na Intelu nepotrvá věčně, bylo otázkou, kam se bude vývoj zase ubírat, když se už PPC asi těžko vrátí. Odpověď se vyjasnila víceméně krátce po tom, co Apple nakoupil vlastní výrobní linky na mobilní procesory použité v telefonech a tabletech, což jsou linky s licencí na výrobu ARMu. Tady není už moc o čem spekulovat, mít vlastní výrobní linku je obrovské plus, které sice přináší totální nezávislost, ale taky mnoho určitých otazníků a omezení. Dostali jsme se do doby, kdy se už nevyrábí procesory samostatně, ale tzv. System-on-Chip platformy. To má hodně výhod, procesory v jednom pouzdře mohou integrovat grafická jádra a spoustu dalšího zařízení, co by se normálně na deskách muselo nacházet mimo CPU čip a komunikovalo by se s tím pomocí dalších speciálních a z tohoto pohledu vlastně externích řadičů. Víceméně proč ne, je to cesta nejvíce vhodná pro výrobu, ale zároveň docela může sloužit k omezení otevřeného rozvoje, což je asi vykřičník, na který brzo poukáže komunita.

Rozhodně základní výhodou nezávislosti na Intelu bude ukončení dohadů, zda jsou Macy postiženy nejen chybami, ale i možnými backdoory intelových procesorů. K tomu mám určitou teorii, který souvisí s bezpečnostními čipy T1 a T2, které jsou, shodou náhod, také ARMové. Dnešní počítače jsou sice velmi rychlé a tiché, ale přijde mi, že právě bezpečnostní čipy, které se starají o přenos a šifrování dat z/do hlavního CPU, mohou do určité míry fungovat samostatně a komunikovat s pamětí, sítí a diskem přímo. Třeba jsem paranoidní, ale možná to jednou někdo potvrdí. Z toho by mohlo vyplývat, že určité zabezpečení proti Intelu tu asi už někde je. No a teď ta základní nevýhoda. Sice aktuálně neexistuje žádný ARMový Mac, ale ať už budou procesoru říkat Apple Silicon, nebo to zůstane u A{číslo}{písmeno}, tyhle SoC budou docela jistě používat komponenty i mimo základní aarch64 ISA, tj. hardwarová akcelerace všeho možného bude možná asi jen skrz oficiální funkční volání nových XNU jader, nebo nebude možná vůbec. Je to otázka, XNU je a bude sice otevřené, platforma asi těžko a konkurence, která jako první použije RISC-V bude mít potenciál na tom všem něco málo vydělat. Alternativně je také možné, že se platforma otevře. Ostatně teď se v ukázkách nenápadně oháněli Linuxem a Microsoft se jím ohání poslední dobou hodně, tak třeba, pokud to to inkluzivní levičáci nezničí dříve, se dočkáme i lepších zítřků v těchto ohledech.

Pravdou ale je, že ta opatrná deintelizace zabere poměrně dlouho dobu, možná delší, než jak dlouho trval kompletní přechod od PPC. Je samozřejmě parádní, že recyklovali Rosettu, překladovou vrstvu mezi architekturami, která je z nějakého důvodu neobyčejně účinná. Zase by se tu dalo spekulovat, zda bude možné vytvářet opravdu univerzální UB2 Mach-O balíčky, ale byla by to vážně zábava. V tuhle chvíli již pravděpodobně bude možné vytvářet ARMové aplikace bez komplikací, ostatně odzkoušené na iOS to už musí mít hodně dlouho. Ono tvrdit, že všechny vestavěné aplikace fungují, je sice fajn, ale je důležité si uvědomit, že macOS je celý ekosystém okolo XNU/Darwinu s BSD userlandem, a tedy zřejmě již funguje uvnitř systému právě ten userland, přestože to spousta mainstreamových uživatelů neumí používat a učit se to nechce. Tím se možná dostaneme k tomu poslednímu, co bylo na videu poměrně zajímavé, a to označení systému jako 11.0. Je celkem jisté, že kernel bude 20, ale nástupnické označení by se mohlo změnit prostě na 16, protože popravdě tak to je. Věci se vyjasní, až bude veřejně dostupná OpenGroup certifikace pro standard UNIX 03, který do teď systémy macOS mají a jejich prefix 10 historicky znamená prostě X jako UNIX. Kdo ví, já ne, ostatně i MS se svými Windows neplánuje nic jako 11, desítky prostě mají teď 2004, a to se bude dít dál, už asi žádné dlouhé čekání na dlouhý roh.

Celkem jisté ale je, že i kdyby měl mít Apple první ARMové počítače hotové v příštím roce, Intelu se jen nezbavíme minimálně do roku 2026, nebo na kolik by mohla vycházet podpora posledních Pro stanic. Už aby to bylo – abychom se co nejdříve vzpamatovali z toho zatím nejhoršího kroku vedle.

Eida
Tento článek přečetlo již 24 čtenářů (0 dnes).
 

Komentáře

Nový komentář