Programátoři z pekel zde za šat a stravu programují čipová pseuda. Nyní s favicon!

Mac OS X DP3

Podařilo se mi sehnat vzhledově velmi zachovalou desku z modrého PowerMacu G3. Vypadala jako nová, nicméně s výjimkou procesoru a páru paměťových modulů nevelké kapacity k ní nic nebylo. Obětoval jsem jeden ATX zdroj, dle návodu ho překonvertoval, do prvního PCI slotu Voodoo 3 2000, do dalšího USB řadič, následovaný gigabit ethernetem a nakonec doplněný SATA kartou, rozestavěl to po stole tak, aby to nespadlo a začal experiementovat.

PowerMac všude po stole

Jako první jsem zkusil Mac OS 9. Ten běžel bezchybně, dokonce v něm fungoval i přidaný ethernet a USB porty. Nicméně na klasický macovský systém mám strojů dostatek a většina z nich i vypadá jako Mac, ne jako volně rozhozená hromádka hardware, takže jsem chtěl zkusit něco jiného. Deska je zejména v prvních revizích známá svou notorickou nekompatibilitou: FreeBSD a NetBSD nejedou vůbec. OpenBSD nabootuje přesně jednou, pak už ne. Mac OS X 10.3 si nerozumí s grafickou kartou Voodoo2, starší Mac OS X 10.2 s ní sice problém nemá, ale vytuhne při instalaci. Když už jsem to chtěl vzdát a desku zase odložit do regálu, našel jsem ve svém soukromém archivu instalaci Mac OS X DP3.


Trocha historie

Mac OS X Developer Preview 3 je předposlední z vývojářských ochutnávek nového jablečného systému, který na konci devadesátých let vznikal na základech NextStepu/OpenStepu. Všechno to začalo v rámci projektu Rhapsody, což byl v podstatě OpenStep s GUI předělaným tak, aby na první pohled připomínalo GUI klasického Mac OS – Platinum. Ač vzhledově podobné, byly systémy nekompatibilní: Mac OS do verze 9.x včetně byl systém psaný převážně v C, s kooperativním multitaskingem a silným nánosem historických vrstev a mezivrstev, Rhapsody byla mikrokernelovým unixovým operačním systémem, pro nějž se psalo v Objective-C. Vývojáři aplikací Rhapsody brzy hodili Applu na hlavu, nikomu se nechtělo všechny programy od základu přepisovat. Apple proto vymyslel BlueBox (klasický Mac OS běžící jako aplikace v novém systému, v něm lze spouštět prakticky všechny staré programy) a Carbon (sada knihoven umožňujících rychlou úpravu stávajících aplikací tak, aby běžely ve starém i novém systému) a zrodil se Mac OS X.

Jedna jediná verze – Mac OS X Server 1.0 – má GUI z Rhapsody a tedy vypadá jako starý systém, i když uvnitř už je to skutečně Unix. V době vydání však už v Cupertinu usilovně pracovali na rozhraní novém, moderním, plném průhledností a grafických efektů, na rozhraní které s námi i přes rozsáhlé změny žije dodnes, na rozhraní Aqua.

A právě Aqua je hlavním lákadlem předprodukčních verzí Mac OS X, je v nich totiž ve značně syrovém stavu, z nějž za necelé dva roky do vydání první ostré verze (10.0) uběhla ještě dlouhou cestu.


Instalace a první spuštění

Instalace začíná bootem Mac OS 9 z instalačního CD, což mě trochu překvapilo, protože přeci jen všechny produkční verze se instalují samy ze sebe a nepotřebují k tomu jiný systém. Instalátor ale hned po spuštění počítač restartuje a pak už naskočí systém desítkový. Jelikož se jedná o vývojářskou verzi, neobsahuje systém mnoho aplikací a tak není v instalaci ani moc co měnit – párkrát se klikne na Continue a za zhruba patnáct minut je hotovo.

Instalace Mac OS X DP3

Po prvním spuštění čerstvě nainstalovaného DP3 se automaticky spustí konfigurační asistent, který vás jemně přinutí nastavit základní systémové údaje. Vybral jsem některé z jeho cca patnácti kroků:

Mac OS X DP3 - konfigurační asistent

Asistent je zajímavou kombinací obdobných průvodců z Mac OS 9 a Rhapsody: program sám bude zřejmě lehkou modifikací ekvivalentu z Rhapsody, než portem z devítky, bitmapy jsou ale zase více podobné těm devítkovým a GUI samotné je už Aqua tak, jak má být.

V devítce se také průvodce nevěnoval takovým technickým věcem jako je konfigurace IP adresy, výběr mezi DHCP/BootP, či zapnutím možnosti vzdáleného přihlášení (nejsem si jist zda rlogin či ssh, ale systém následně neobsahuje ani ssh klienta, takže bych se divil, kdyby obsahoval ssh server). Popravdě nevím, zda asistent přežil až do první plné verze (to snad zjistím někdy v budoucnu), ve verzích, které jsem používal já (tj. 10.2+) už v tomto provedení není. A jelikož jsem z principu nepřítelem podobných naváděčů, tak mi ani nechybí.

Mac OS X DP3

Systém máme nainstalovaný, pojďme se podívat jak vypadá a funguje. Nemám příliš rád hodnocení historického hardware a software současným pohledem. Kdyby autoři věděli to, co víme my dnes, určitě by své počítače, systémy a programy dělali jinak, takže být dnes chytrý na jejich účet je laciné a neobjektivní. Na straně druhé ale platí, že mám odstup skoro dvacet let a vím, kam nakonec vývoj šel a došel – takže se není možné dělat, že tomu tak není. Pokusím se to nějak vybalancovat.


Dock

První věcí, u které se musím zastavit, je Dock. V NeXTStepu a OpenStepu známá a nepostradatelná věc, v Rhapsody a Mac OS X Server 1.x někam zmizel, ovšem jako součást rozhraní Aqua se zase trochu vylepšen a přepracován vrátil. V Mac OS X (či OS X či macOS či jak se marketingoví mágové rozhodnou zítra systém přejmenovat) je dodnes, takže asi není zapotřebí nijak zvlášť popisovat, oč běží.

Dock v DP3

V DP3 nacházíme Dock uprostřed přerodu ze starého na nový. Je už standardně dole (a narozdíl od pozdějších systémů nenacházím možnost jak jej dát kamkoliv jinam), vlevo je v něm usmívající se Finder, vpravo koš, ale jinak je to dock NeXTStepový – skládá se se samostatných čtvercových objektů. Když některý z nich vyhodím, tak po něm zůstane prázdno a levý a pravý zbytek docku se až po chvilce smrskne k sobě. Každý čtverec má i samostatné pozadí. Průhledný jednolitý obdélník, do nějž se dají vkládat ikony se objevil až někdy později.

Zvláštní je, že dock i wallpaper systému nesahají až k dolnímu okraji obrazovky, ale končí několik pixelů nad ním. Tyto jinak černé pixelové řádky slouží k označení spuštěné aplikace. S výjimkou Finderu, který svoji existenci nijak neohlašuje platí, že spuštěné aplikace mají pod svojí položkou v Docku bílý proužek, aplikace aktuálně aktivní má proužek žlutý.


Dekorace oken

Za zajímavé považuji i rozdíly v dekoracích oken, při práci s DP3 totiž můžete narazit na tři rozdílné typy.

Dekorace oken v DP3

Začneme pěkně od podlahy: na obrázku dole je standardní dekorace okna aplikace pro Mac OS X v rozhraní Aqua. Vlevo jsou tři barevné lentilky pro zavření, minimalizaci a změnu velikosti okna, úplně vpravo je lentilka fialová, která sloužila k zapnutí funkce Single Window Mode, tolik vychvalované božským Stývem při první prezentaci nového uživatelského rozhraní, ovšem v tichosti zabité někde mezi DP4 a Mac OS X Public Beta. Pokud si chcete vyzkoušet, jak asi takový Single Window Mode fungoval, najdete jeho pozůstatky v systému ještě minimálně ve verzi 10.7.x, stačí do terminálu zadat:

defaults write com.apple.dock single-app -bool true

killall Dock

Pak zkuste přepínat běžící programy klikáním na jejich ikony v Docku. Při přepnutí automaticky zmizí okna aplikace, z níž se přepínáte a na obrazovce se objeví jen okna aplikace, do níž se přepínáte. Původně nešlo o celé aplikace ale o jejich jednotlivá okna – na obrazovce se nikdy neukázalo víc než jedno. Mělo to sloužit počítačově nepříliš zdatným uživatelům, nakonec to štvalo všechny uživatele a do produkce se to nikdy nedostalo.

Uprostřed jsou platinové dekorace z prostředí Classic.app a nahoře dekorace z MacOS.app.

Vysvětlím: Apple původní technologii BlueBox, která umožňovala běh starého Mac OS jako aplikace v novém Mac OS X v celoobrazovkovém režimu rozdělil na dvě části: Classic.app umožňuje spouštět staré aplikace bok po boku s novými, vidíte stále plochu Mac OS X, jen některá okna jsou ze starého systému a některá z nového. MacOS.app je celoobrazovkový režim starého systému, v němž žádné z nových aplikací nevidíte. Asi aby uživatel nebyl zmaten, jsou ve smíšeném režimu ovládací prvky oken nalevo u aquáckých i platinových programů. V režimu, v němž si máte připadat jako v klasickém Mac OS, jsou dekorace stejně, jako byly předchozích patnáct let. Osobně to nepovažuji za příliš šťastné a u Apple to také asi za příliš šťastné nepovažovali – celoobrazovkový režim do plné verze Mac OS X nepostoupil a režim smíšený získal dekorace staré.


Horní menu

Stejně jako potkáte tři různé dekorace oken, potkáte i tři různé verze horního menu, systémového prvku pro Apple tak typického. Klasický Mac OS měl v horní liště vlevo v ikonku jablka, pod níž se rozbalovalo Apple menu, vedle ní byly položky menu právě aktivní aplikace, dále hodiny, od nich napravo přepínač klávesnice, ukazatel stavu baterie u notebooku a další speciální ikony a úplně napravo ikona aktuální aplikace, po kliknutí na ni se rozbalil seznam spuštěných programů.

Rhapsody/Server 1.x převzaly z klasického MacOS platinový vzhled grafiky i horní menu, ve skutečnosti to ale bylo přešablonované menu z NeXTStepu a chovalo se jinak.

Tři typy menu v DP3

V DP3 je to kočkopes úplný a osobně nevěřím, že tohle Apple chtěl někdy pustit mezi lidi. Jablko je uprostřed lišty a nedělá nic, je to prostě jen modré jablko uprostřed lišty. Nalevo od něj je menu aktivní aplikace, u nějž první položka vždy nese její ikonu. Přes tuto položku se aplikace ukončuje (to zůstalo do moderních časů, jen dnes je místo ikony název), ale ne pokud je aktivní Finder – to je pak třeba vlézt do Speciál – Shut down. Napravo od jablka není nic. Asi tam měly být hodiny, jistě to ale nevím – v systému je na několika místech odkaz na Clock.app, tato aplikace se má například automaticky spouštět po přihlášení, nicméně nikde na disku není, ani na systémovém, ani na tom instalačním – Apple ji jaksi zapomněl dodat.

V případě, že jsme zrovna v aplikaci spuštěné prostřednictvím mezivrstvy Classic (prostřední menu na obrázku), pak se horní menu kreslí sice novým vzhledem, ale postaru. Starým fontem, bez zbytečných stínových efektů a část napravo od modrého jablka funguje jako dříve, včetně hodin.

Pokud spustíme MacOS.app (na obrázku menu dole), máme horní menu kompletně platinové.


Classic

Classic.app/MacOS.app je vůbec zajímavá dvojka. V Serveru 1.x a předtím Rhapsody existoval pod označením BlueBox jen celoobrazovkový režim (MacOS.app), ve verzích produkčních naopak jen režim smíšený (Classic.app). Vtipné je v DP3 provedení druhého jmenovaného, jeden z recenzentů předchozího DP2 jej označil jako MacOS.app s průhlednou plochou a nespletl se – když si v tomto režimu otevřete okno klasického Finderu, vezmete v něm libovolnou ikonu a vytáhnete ji myší mimo okno, prostě zmizí. Abyste ji našli, musíte nastartovat režim celoobrazovkový a v něm ji najdete na ploše. Uživatelské peklo, tady musela jet vývojová oddělení hodne naplno, aby to předělali.

Přepínání mezi Mac OS a Mac OS X

Jelikož uživatelská dokumentace, na kterou po prvním spuštění MacOS.app upozorňuje čerstvě nastartovaný systém, neexistuje a cesta vede jen do prázdné složky, dlouho jsem dumal, jak přepnout mezi starým a novým systémem, když oba zabírají celou obrazovku. Pak jsem si zcela náhodou všiml, že ten druhý je vždy vidět v seznamu spuštěných programů. To je praktické zejména proto, že režim mixovaný je ve výše popsaném provedení spíše pro zlost.

Struktura filesystému v DP3


Souborový systém

Poslední věcí, která je different, je adresářová struktura. Definitivně jsem opouštěl Mac OS 9 někdy v roce 2004/5 a přecházel na Mac OS 10.3.x. Věci tam byly trochu jinak, ale dalo se na to zvyknout. Filesystém v DP3 je nejspíše další relikt NeXTStepu / OpenStepu / Rhapsody / Serveru 1.x a je to chaos. V grafickém prostředí úplně nahoře najdeme dvojici adresářů Local / System, v nichž je navzájem skoro stejná struktura podadresářů, některé z těchto podadresářů najdeme ještě jednou v uživatelské složce. Určit, kdy se aplikace nachází v /Local/Applications, kdy v /System/Applications a kdy v /Local/Users/logout/Applications se mi nepodařilo. Když jsem se pokoušel rozeběhat prohlížeč OmniWeb, tak verze pro Mac OS X 10.0 hledala knihovny na místech, která v DP3 nejsou, naopak verze pro Server 1.x hledala na místech správných, jen nefungovala (bez hlesnutí padla po startovacím obrázku). I tady tedy ještě čekala jablečné programátory poměrně zásadní kopa práce.


Závěrem

Mac OS X DP3 není vůbec špatný systém. Kdyby se z něj vyházela všechna jablka, smějící se Findery a odkazy na Apple, byl by to ve své době dokonce skvělý operační systém. Při srovnání s devítkou či staršími klasickými Mac OS ale kulhá v uživatelské přívětivosti a když jej srovnám s tím, co přišlo v plné verzi, tak je to nedodělek. Jako ujištění, že to Apple tentokrát s nex-gen systémem myslí opravdu vážně (po Coplandu, Rhapsody a Serveru) ale Developer Preview posloužily skvěle, pokrok mezi DP2 a DP3 byl téměř nekonečný (přibyla Aqua) a nakonec to v březnu 2001 všechno dobře dopadlo.