Długa droga do macOS
Wstęp
Ostatnio przeglądając tematy, które poruszyłem na łamach swojego bloga, zauważyłem, że nie ma w nim ani jednego wpisu na temat Apple. Trochę to się kłóci z chęcią różnorodności tematycznej, więc uznałem, że to dobry pomysł na kolejny wpis.macOS nie jest tak stary jak Windows czy Linux. Te systemy pochodzą z końcówki XX wieku, podczas gdy system Apple oficjalnie zadebiutował na początku XXI wieku. MacOS 21 marca tego roku skończył 16 lat. Właśnie w 2001 roku został wydany Mac OS X 10.0 Cheetah – pierwsza skończona i oficjalnie wydana wersja systemu dla użytkowników końcowych (poprzedziła go publiczna beta, a także Mac OS X Server, ale o tym później). Wśród użytkowników jabłkowych sprzętów zrobił on nieco zamieszania. Początkowo przyjęty dość chłodno, podłożył jednak podwaliny pod przyszłe wersje, które stały się ulubionym systemem wielu ludzi. W czerwcu tego roku została wydana 14 wersja tego systemu (dzisiaj pod nazwą macOS), która pomimo wielu różnic (głównie wizualnych) nadal jest tym samym systemem, tylko udoskonalonym. Jak rodził się, wierząc hasłom reklamowym Apple, najbardziej zaawansowany system na świecie?
NeXT i próby stworzenia nowego systemu
Cofnijmy się do końcówki XX wieku. Konkretniej do roku 1985. Steve Jobs po odejściu z Apple postanowił nie próżnować i z pieniędzmi od Ross’a Perrot’a i swoimi własnymi zacząć „kolejną wielką rzecz”. Efektem tego było założenie firmy NeXT tworzącej komputery i system operacyjny NeXTSTEP. Jobs celował swoimi maszynami w rynek profesjonalny, a do tego był potrzebny profesjonalny system operacyjny, jakim stać się miał właśnie NeXTSTEP – przodek macOS.
Pierwsze wydanie systemu nastąpiło w 1989 roku. Był to obiektowo zorientowany i wielozadaniowy system Uniksowy. Oparto go na mikrojądrze Mach wraz z elementami zaczerpniętymi z BSD i własnościowym systemem okien połączonym z Display Postscript. Ze względu na obiektową naturę systemu zdecydowano się postawić na język programowania Objective C, a system zaopatrzono w obiektowo zorientowaną warstwę aplikacji podzieloną na zestawy wraz z narzędziami deweloperskimi. Dawało to produktowi NeXT dość spore możliwości. Warto wspomnieć, że to właśnie tutaj zadebiutował dobrze znany dock (aczkolwiek nieco inny niż ten z macOS). System w istocie stał się dość popularny w szeregach profesjonalistów. To m.in. na maszynach NeXT pisano takie klasyki jak Doom, Doom II czy Quake. W 1994 roku postanowiono zmodyfikować system tak, by rozdzielić system operacyjny od API. Wynikiem tego było stworzenie, ze współpracą z Sun Microsystems, OpenStep – API, którego celem było zapewnienie środowiska NeXTSTEP na systemie nim nie będącym (celując początkowo w Solarisa). Firma NeXT przygotowała też implementację tego API na jądrze Mach, czego wynikiem było powstanie OPENSTEP for Mach 4.0. Zastąpił on NeXTSTEP (chociaż często bywa określany NeXTSTEP 4.0) nadal jednak oferując to, z czego słynął jego poprzednik (Uniksowy rdzeń, interfejs itd.). Wydano też OpenStep dla Windows NT. Przed ponownym pojednaniem z Apple zdołano wydać dwie główne wersje OPENSTEP (pomijając wersje testowe).
Apple w 1994 roku borykało się z własnymi problemami. Ich 10 letni system zaczął boleśnie pokazywać swoje limity związane z obsługą tylko jednego użytkownika a także wielozadaniowości. Dodatkowo ich niegdyś innowacyjny interfejs zaczął się nieco starzeć. W tym roku zapoczątkowano projekt badawczy Copland mający pozbyć się limitów MacOS. Miał on zaoferować lepszą wielozadaniowość, ochronę pamięci i wiele innych ulepszeń zachowując jednak kompatybilność z dotychczasowym systemem firmy. Dodatkowo planowany następca projektu miał też umożliwić wielowątkowość dla aplikacji. Projekt miał być oparty na mikrojądrze (nieco inspirowanym Mach) zwanym Nukernel, który miał zajmować się podstawowymi rzeczami jak obsługa programów czy zarządzanie pamięcią, a reszta zadań miała być wydzielona do specjalnych serwerów. Dla przykładu – sieć czy usługi plikowe nie miał być obsługiwane przez samo jądro, a właśnie przez serwery komunikujące się między sobą. Kolejną ważną zaletą Copland miało być to, że byłby to system w pełni natywny dla PowerPC. Pomimo, że System 7 został w sporej większości przeportowany z procesorów Motoroli na PowerPC, to jednak zostało nieco kodu, który uruchamiany był za pomocą emulacji zmuszając system do obsługi obu środowisk. Każde wywołanie w MacOS wymagało tłumaczenia z m68k na PowerPC, co nie było zbyt optymalne pod względem wydajnościowym. Niestety projekt Copland, ze względu na różnice zdań, został zamknięty w 1996 roku, chociaż część jego elementów przeniknęła do MacOS 8.
Wraz ze skasowaniem projektu Copland Apple ponownie stanęło na rozdrożu. Nadal nie posiadali nowoczesnego systemu operacyjnego, a próba stworzenia takowego skończyła się fiaskiem. Tym razem postanowiono poszukać już gotowego systemu, zamiast tworzyć go od nowa. Początkowo wzrok zarządu Apple padł na BeOS, multimedialny i wielozadaniowy system operacyjny, który był zaprojektowany dla sprzętu podobnego do tego od Apple. Do zakupu nie doszło. CEO Be Inc żądał kwoty 300 milionów dolarów, podczas gdy Apple nie miało zamiaru dać więcej jak 125 milionów. Zarząd Apple uznał wkońcu, że NeXT będzie lepszym pomysłem i zakupił firmę za 429 milionów dolarów, co spowodowało powrót Steve Jobsa do firmy.
Rhapsody i początek Mac OS X
Po kupnie NeXT Apple miało już swoją bazę pod nowoczesny system. OPENSTEP wydawał się do tego celu idealnym kandydatem, a Uniksowe wnętrzności dawały rozbudowaną wielozadaniowość, ochronę pamięci i obsługę wielu użytkowników. Powstał kolejny projekt badawczy zwany Rhapsody. W większości był to OPENSTEP for Mach dostosowany do pracy na Macintoshach (a także na PC) z interfejsem podobnym do MacOS, jednak zawierał parę nowych możliwości. Jedną z nich był Blue Box (na jego bazie powstało Classic dla OS X), czyli warstwa emulacji pozwalająca uruchamiać programy z MacOS. Położono w nim też nacisk na API Yellow Box, które zmieniło nazwę na Cocoa (i stało się później głównym API dla Mac OS X). W systemie znalazła też miejsce maszyna wirtualna Javy. Przeportowano też technologie i Carbon API z MacOS poprawiając kompatybilność wsteczną. Dzięki temu możliwe miałoby skompilowanie programów pisanych dla MacOS na nowy system. Rhapsody ewoluował nadal i w 1999 roku został wydany pod nazwą Mac OS X Server 1.0.
Mac OS X Server 1.0 nie różnił się dużo od Rhapsody, za to różnił się znacząco od Mac OS X. Nie posiadał interfejsu Aqua, ani nowości wprowadzonych przez ten drugi. Była to kolejna wersja Rhapsody z inną nazwą. Wiele rzeczy było jeszcze niegotowych i musiało poczekać na swój debiut. W wersji 1.0 pojawiła się jednak pierwsza wersja serwera NetBoot, pozwalająca na bootowanie komputera z obrazu systemu trzymanego na serwerze. Było to wygodne np. w szkołach, bo każda maszyna mogła wystartować z obrazu trzymanego na Mac OS X Server 1.0 i utrudniało to uszkodzenie systemu, gdyż po restarcie komputer uruchamiał się z nieruszonego obrazu trzymanego na serwerze. Do systemu dołączono też Blue Box, który zawierał w sobie kompletny MacOS 8.5.1 (w wersji 1.2 i późniejszych można było go zaaktualizować do MacOS 8.6) w celu zapewnienia kompatybilności z aplikacjami pisanymi dla poprzedniego systemu. Blue Box w Mac OS X ewoluował w Classic, który zawierał MacOS 9, a także nieco lepiej integrował się ze systemem.
13 września 2000 roku ukazał się Mac OS X Public Beta (nazwa kodowa Kodiak). Kosztował on 29,95 dolarów. Poprzedziły go 4 wydania Mac OS X Developer Preview. Pierwsze 2 nie różniły się zbytnio od Rhapsody i Mac OS X Server 1.0, ale 3 wydanie wprowadziło znany i używany do dzisiaj interfejs Aqua. Przeskoczmy jednak opis ich zmian i skupmy się na Public Beta, która była ostatnią podglądową wersją przed oficjalną premierą. Podstawa nowego systemu została w międzyczasie otwarta pod nazwą Darwin, jednak kluczowe elementy (np. interfejs czy aplikacje) pozostały zamknięte. Public Beta bazowała na Darwin 1.2.1. Pozbyto się też przestarzałego systemu okien pamiętającego czasy NeXTSTEP zastępując go stworzonym specjalnie dla nowego systemu Quartz. Stary interfejs odszedł w niebyt i nowa Aqua wprowadziła elementy używane do dzisiaj – górny panel wraz z menu aplikacji oraz dock na dole zawierający przypięte i uruchomione programy. No cóż, z jedną małą różnicą – logo Apple było umiejscowione na środku panelu, nie z lewej strony jak kiedyś. Było wyłącznie w roli dekoracji i kliknięcie na niego nie dawało efektu. Była to jedna ze zmian, która nie przetrwała okresu testowego i oficjalna wersja się jej pozbyła wracając logo Apple tam gdzie było od dawna – na lewą stronę panelu. Do systemu doszły też dobrze znane użytkownikom Mac’ów aplikacje, takie jak Edytor tekstu, Przeglądarka zdjęć, Klient poczty, odtwarzacz QuickTime Player oraz emulator terminala (jakże potrzebna aplikacja w Uniksie). Zawierał też kilka aplikacji, które później wyleciały ze systemu, takie jak prosty odtwarzacz MP3 (iTunes miał się pojawić rok później), Sketch będący podstawowym programem do rysowania grafiki wektorowej (stanowiącym demo nowego systemu okien) oraz HTMLEdit, edytory WYSIWYG z WebObjects pamiętającym czasy NeXT. Pomimo tego w systemie brakowało jednak wielu natywnych aplikacji. Część była zaczerpnięta z OPENSTEP lub Rhapsody, a część była zwykłym opakowaniem dla konsolowych uniksowych programów. Dojrzałość API Cocoa zachęcała jednak do przepisywania na niego programów porzucając stare API.
Wersje deweloperskie i w końcu publiczna beta była spełnieniem marzeń Apple o stworzenie nowoczesnego systemu dla swoich urządzeń, który wreszcie nabył realny kształt. Wiele było do dopracowania, ale właśnie odtąd zaczęła się droga ich systemu do tej, którą możemy obserwować dzisiaj. Mac OS X Public Beta wygasł w maju 2001 roku. Nie uruchomi się na na nowszych od niej komputerach PowerPC, ani tym bardziej na tych bazujących na procesorach Intela. Możliwe jest jej uruchomienie na zgodnym sprzęcie poprzez cofnięcie daty. Wygaśnięcie systemu zmusiło jego użytkowników do zakupu oficjalnego wydana. Testerzy dostali zniżkę w wysokości 30 dolarów. Warto wspomnieć, że tylko interfejs graficzny wygasał – Unix pod spodem nadal działał w linii poleceń.
Wielka premiera Mac OS X i rozwój
24 marca 2001 roku ukazał się owoc wcześniejszych prac w postaci Mac OS X 10.0. Nosił on nazwę kodową Cheetah, choć, w przeciwieństwie do następców, nie była ona używana w marketingu. Kosztował on w dniu premiery 129 dolarów. W końcu nowy system trafił do użytkowników końcowych. Tutaj po raz pierwszy zwykli użytkownicy dostali nowy, lśniący interfejs i zaawansowanego Uniksa pod spodem. Cheetah do działania wymagał komputerów z procesorem G3 i nowszych. Wymagał także 128MB RAM (nieoficjalnie minimum 64MB), oraz 1,5GB miejsca na dysku, lub 800MB dla minimalnej instalacji. Na system spadła jednak fala krytki i nie został on dobrze przyjęty przez użytkowników Macintoshy. Krytykowano duże wymagania systemowe, powolność nowego systemu, stabilność (pomimo, że teoretycznie Mac OS X 10.0 był bardziej stabilny niż MacOS 9, to zupełne inna budowa przyniosła dużo problemów) oraz brakujące funkcjonalności. Na nowym systemie nie dało się odtwarzać DVD czy wypalać CD, pomimo że te funkcje były dostępne na starym MacOS 9. Wprawdzie aktualizacja 10.0.2 umożliwiła iTunes 1.1.1 wypalanie płyt audio CD, to jednak wypalanie danych musiało czekać na nową wersję systemu. Brakowało też niektórych sterowników. Krytyka sprawiła, że kolejna wersja systemu została wydana za darmo dla obecnych użytkowników 10.0.
Mac OS X 10.1 Puma wydany 25 września 2001 roku przyniósł poprawę szybkości działania (w tym wydajność OpenGL), a także brakujące funkcje wypalania płyt. Poprawił też obsługę drukarek (przynosząc wbudowane wsparcie dla 200 urządzeń), ulepszoną nawigację po plikach w Finder, a także narzędzie do pobierania zdjęć z aparatów i skanerów. System zyskał lepsze opinie, nadal jednak istniały głosy krytyki, że nie nadaje się do używania nacodzień i polecano mieć na dysku też MacOS 9. Po roku w sierpniu przyszedł na świat Mac OS X 10.2 Jaguar. Była to pierwsza wersja używająca nazwy kodowej w marketingu. Przyniósł poprawki stabilności i szybkości, a także wsparcie dla MPEG-4 w QuickTime. Jego edycja serwerowa (aż do wydania 10.7 Mac OS X Server był osobnym, lecz bardzo zbliżonym systemem) dodała wsparcie dla księgowania w systemie plików HFS+. W kolejnej wersji systemu wsparcie to trafiło także do desktopowej edycji systemu. Zadebiutował także Quartz Extreme, który kompozycje przenosił na barki karty graficznej, dzięki czemu procesor był odciążony od tego zadania i mógł się zająć innymi. Dodano także ułatwienia dostępu, CUPS (podsystem drukowania dla Uniksów) oraz Samba dla lepszego wsparcia SMB z Windowsa. Warto wspomnieć, że logo Happy Mac pokazywane przy starcie systemu od 18 lat zostało zastąpione logiem Apple.
Mac OS X 10.3 Panther zadebiutował 24 października 2003 roku. Poza ulepszeniami w systemie (szybkie przełączanie użytkowników oraz tryb prezentacji wszystkich okien) jak i w aplikacjach (Finder dostał wbudowaną obsługę zip, TextEdit obsługę formatu doc, QuickTime obsługę kodeka Pixlet itd.) wprowadził też kilka nowych aplikacji. Nowa przeglądarka od Apple zwana Safari zastąpiła Microsoftowego Internet Explorer for Mac, a na tej wersji systemu po raz pierwszy zadebiutowało środowisko programistyczne Xcode. Poprawiono też współpracę z Microsoft Windows poprzez obsługę Active Directory. Kolejna wersja systemu, czyli Mac OS X 10.4 Tiger ukazała się 29 kwietnia 2005 roku. 2 letni okres przerwy zaowocował wieloma nowymi funkcjami. Tutaj zadebiutowała wyszukiwarka Spotlight oraz Dashboard. Ponadto poprawiono obsługę 64 bitów na procesorze PowerPC G5. Ilość nowych funkcji, w tym poprawiona grafika i wyszukiwarka zszokowała Microsoft, który w pocie czoła pracował nad podobnymi funkcjami, które miały się znaleźć w tworzonym Windows Vista. Apple ponadto ogłosiło migrację swoich maszyn z PowerPC na Intel, więc Tiger stał się pierwszym Mac OS X, który pracował także na architekturze x86 (jej wsparcie zostało dodane w wersji 10.4.4). Część funkcji miała znalazła też swój koniec w Tiger. Jest to ostania wersja Mac OS X wspierająca Classic, czyli środowisko emulujące Mac OS 9. Poza tym wprowadzono także wiele ulepszeń w samym systemie (tutaj zadebiutował daemon launchd) i w API. Warto wspomnieć, że wraz z przejściem Apple na procesory Intela narodziła się społeczność Hackintosha, której celem było zainstalowanie i używanie systemu Apple na sprzęcie od nich nie pochodzącym.
Po Tiger w październiku 2007 roku przyszedł czas na Mac OS X 10.5 Leopard. Jest to ostatnia wersja systemu pracująca na procesorach PowerPC. Jego następca miał być ograniczony tylko do procesorów Intela. Leopard przyniósł odświeżenie wyglądu systemu – m.in. dock stał się trójwymiarowy. Apple chwaliło się, że ta wersja przyniosła ponad 300 zmian. Do nowych aplikacji należały m.in. Boot Camp pozwalający zainstalować Windowsa obok Mac OS X (jego testowa wersja pojawiła się już wcześniej, oficjalnie gotowa wersja zadebiutowała wraz z Leopardem) oraz Time Machine automatycznie wykonujący kopie plików i pozwalający je przywrócić w każdym momencie. Poprawiono wsparcie dla 64 bitów (poprzez zaoferowanie wielu bibliotek w 64 bitowej wersji). Pojawił się też DTrace zaczerpnięty z Solarisa oraz OpenGL 2.1 wraz z LLVM. Leopard przeszedł też testy zgodności i dostał certyfikację zgodności z UNIX. Poza tym, że mógł się od teraz dumnie tytułować Uniksem, to oprogramowanie zgodne z Single Unix Specification powinno kompilować się i działać bez problemów. Od tej wersji niemożliwe stało się też zainstalowanie systemu na partycji UFS (uniksowy system plików). Wcześniej był dostępny jako alternatywa dla HFS+, od tej wersji niemożliwe było już użycie go do instalacji systemu, ani aktualizacja Maców z partycjami sformatowanymi w UFS. Wprowadzono także framework do podpisywania kodu. 28 sierpnia 2009 roku pojawił się Mac OS X 10.6 Snow Leopard. Śnieżna pantera była kresem dla Mac’ów z procesorami PowerPC – przestały być obsługiwane i odtąd można było go zainstalować tylko na Intelach. Część aplikacji (np. Finder) zostały przepisane, by lepiej sprostać nowym urządzeniom. Tutaj zadebiutował też Mac App Store – sklep z aplikacjami na wzór iOS. Była to też ostatnia wersja systemu, w której działało narzędzie Rosetta – emulator PowerPC pozwalający uruchamiać aplikacje skompilowane na tę architekturę na Intelach. Snow Leopard jest więc ostatnim systemem od Apple zdolnym uruchamiać aplikacje PowerPC. Pojawiła się też obsługa OpenCL. Bezpieczeństwo systemu także zostało poprawione po wprowadzeniu ochrony stosu i uruchamiania większej ilości elementów w piaskownicy. W ostatniej aktualizacji Snow Leoparda pojawiła się też obsługa TRIM dla Mac’ów z SSD.
20 lipca 2011 roku zadebiutował Mac OS X 10.7 Lion. Porzucił on wsparcie dla architektury 32 bitowej stając się systemem wyłącznie 64 bitowym. Poprawiono w nim m.in. integracje z iOS. Poza tym część aplikacji doczekała się poprawek. Finder pozwalał lepiej sprecyzować kryteria wyszukiwania, a Terminal dostał tryb pełnoekranowy. Ponadto dołączono też parę nowych aplikacji, np. FaceTime. Po Lionie w połowie 2012 roku zadebiutował Mountain Lion. Tutaj zmieniono po raz pierwszy nazwę systemu – z Mac OS X na OS X. Dostał on centrum powiadomień oraz część aplikacji z iOS – Notatki, Wiadomości oraz Game Center. MobileMe zostało zastąpione przez iCloud, a głównym serwerem X11 stał się XQuartz. System został przyjęty przez użytkowników pozytywnie. Warto wspomnieć, że to ostatni OS X ze zwierzęciem z rodziny kotowatych w nazwie kodowej. Rok później zadebiutował OS X 10.9 Mavericks. Przyniósł on jeszcze większą integracje z iCloud oraz więcej aplikacji z iOS. Pojawiła się także kompresja pamięci, obsługa OpenGL 4.1, karty w Finder i wiele innych ulepszeń. Mavericks miał dość mieszane opinie wśród użytkowników. Jedną krytykowaną cechą było to, że usunięto lokalne synchronizowanie urządzeń co zmusiło użytkowników do użycia iCloud. Jednakże ta funkcja powróciła w aktualizacji iTunes.
Wydany w 2014 roku Yosemite przyniósł największą zmianę interfejsu OS X od czasów Leoparda. Cały interfejs uległ spłaszczeniu niczym wydany wcześniej iOS 7. Trójwymiarowy dock ustąpił miejsca płaskiemu (podobnie jak z czasów przed Leopardem) z rozmyciem, a część efektów została usunięta na rzecz prostszych. W aplikacjach pojawiły się przezroczyste elementy z mocnym rozmyciem. Poza tym Apple po raz pierwszy od 2000 roku uruchomiło program publicznych beta testów, tym razem za darmo. Yosemite miał 6 publicznych wersji beta przed ostatecznym wydaniem. Jego następcą stał się wydany w 2015 roku El Capitan. Uzyskał on znacznie lepsze opinie niż poprzednik. Wprowadził też nowe, niskopoziomowe API graficzne zwane Metal. Poprawiono też szybkość i bezpieczeństwo systemu, a nowy font San Francisco zastąpił starszy Helvetica. OpenSSL został zastąpiony przez LibreSSL, a menedżer okien dorobił się możliwości dzielenia aplikacji na pół ekranu.
Wydany 20 września 2016 roku macOS 10.12 Sierra był kresem OS X – nazwa została zmieniona po raz drugi, tym razem na macOS w celu lepszego dostosowania nazwy do reszty produktów firmy. Sierra przyniosła obsługę Siri z iOS, później dodano też Night Shift, redukujący światło niebieskie. Zaprezentowano też nowy system plików, APFS mający zastąpić wysłużony HFS+. Sierra to pierwsza, od czasów Mountain Lion wersja, która nie wspierała wszystkich komputerów wspieranych przez poprzednika. Sierra usunęła też zbieracza śmieci z runtime Objective C (dodanego w Mac OS X Leopard), zastępując go nowym mechanizmem. Aplikacje skompilowane z obsługą starego mechanizmu nie działały poprawnie na nowym systemie. Usunięto też aplikację Game Center. Rok później zadebiutował macOS 10.13 High Sierra. Największą zmianą w tym było wprowadzenie systemu plików APFS jako domyślnego i wspierane urządzenia zostały na niego przekonwertowane. Pojawiła się także nowa wersja API Metal, czyli Metal 2. Apple planuje też porzucić wsparcie dla aplikacji 32 bitowych w kolejnej wersji systemu.
Na tym kończy się nasza podróż po drodze rozwoju macOS. High Sierra jest obecnie najnowszą wersją systemu, chociaż na pewno nie ostatnią.
Zakończenie
Przebrnęliśmy właśnie przez 17 lat rozwoju systemu Apple. Od Mac OS X Public Beta wydanej w 2000 roku do macOS Sierra wydanej w 2017. Jak widać producent nie próżnował i każda wersja przynosiła istotne zmiany. Nie można na pewno odmówić Apple umiejętności marketingowych, gdyż każda ich premiera wywołuje spory szum. Mimo wszystko jest to system, którego początki były dość problematyczne, wyszedł jednak z czasem na prostą. Na pewno warto sobie choć na chwilę przypomnieć jak kiedyś wyglądały produkty Apple.
Źródła
Pozostałe zrzuty pochodzą z wikipedia.org