После возврата Джобса в Apple первоочередной задачей было, разумеется, улучшить финансовые показатели компании, которая, как мы помним по предыдущим частям (1, 2, 3, 4, 5 и 6), находилась в середине 90-ых не в самых лучших условиях. И Стиву это удалось: Mac OS 8 и 9 оказались очень удачными, ровно как и цветной iMac G3. У компании появились деньги, и нужно было снова задумываться о будущем.
Полностью новыми Mac OS 8 и 9 назвать было трудно — в них хватало кода из более ранних System 6 и 7, и делать на их базе систему с заделом на будущее не имело смысла. С другой стороны, после покупки NeXT в руки Apple попало множество разработок этой компании (в том числе, очень классное ядро Mach), да и у Apple тоже хватало своих недоведенных до ума проектов (о них мы говорили в позапрошлой части). Терять эти наработки было глупо, и поэтому было принято решение «слепить» из них новую ОС.
Rhapsody
Система была анонсирована на MacWorld Expo в Сан-Франциско 7 января 1997 года, и впервые продемонстрирована на WWDC спустя полгода. Разрабатывалась эта ОС сразу для PowerPC и x86, и внутри была просто дикая мешанина: так, ядро было основано на Mach и BSD. Интерфейс программирования приложений (API) OPENSTEP был разработан еще в 1994 году совместно NeXT и Sun Microsystems.
Для совместимости Rhapsody с Mac OS был сделан слой совместимости под названием Blue Box: это было виртуальное окружение без эмуляции «железа», поэтому была возможность запуска софта для Mac OS 8 в полноэкранном режиме, без поддержки программ, обращающихся напрямую к «железу».
Более того — в Apple решили поиграть и на стороне своего основного конкурента, Microsoft: так платформа для разработки Rhapsody, Yellow Box, была написана и для Windows, представляя собой надстройку над ОС. Причем сделано это было очень хорошо — так, низкоуровневые сервисы, которые должны работать с железом, были переписаны как службы Windows.
Что касается внешнего вида, то в компании решили не изобретать велосипед: «платиновая» Mac OS 8 всем понравилась, так что такой же интерфейс получила и Rhapsody. Никуда не делись и док с Finder. Ну и разумеется, на эту ОС был портирован полный набор встроенных программ с Mac OS: QuickTime, ColorSync, QucikDraw, и т.д. Система поддерживала множество файловых систем: HFS, HFS+, FAT, AFP (Apple Filing Protocol), UFS, ISO9660, имела виртуальную Java-машину, ну и разумеется софт можно было писать на Objective-C — в общем, возможностей была масса.
По итогу, думаю, было понятно, что система была совсем чуть-чуть перегружена фичами, которые не только были абсолютно не нужны для рядового пользователя, но и делали систему медленней. К счастью, это понимали и разработчики ОС, и решение пришло быстро: раз не получилось создать конкурента Windows 98, то путь Rhapsody будет конкурентом серверной Windows NT. Так что в марте 1999 года вместо ожидаемой публичной версии Rhapsody Apple выпускает Mac OS X Server 1.0.
Создание Mac OS X
То, что Apple, пусть и несколько запоздало, представила хорошего конкурента Windows NT — здорово. Но вот обычные пользователи опять остались обделенными, и с этим нужно было что-то решать, причем быстро, так как в 1999 году уже было известно, что Microsoft готовит пользовательскую систему на серверном ядре NT (которую по итогу назвали Windows 2000).
В Apple решили пойти по пути конкурента: у них уже было хорошее ядро XNU, которое включало в себя микроядро Mach и стандартные службы BSD. Для запуска старого софта из-за этого можно было взять то же API Carbon (Blue Box): старое приложение для запуска требовало образ Mac OS 9, перекомпилированное приложение запускалось просто через API Carbon, ну а среду разработки Yellow Box назвали Cocoa, и она была нужна для написания софта под новую ОС — к тому же, к ней «прикрутили» поддержку Java.
Разумеется, для новой ОС нужен был новый интерфейс — его назвали Aqua. Он был основан на старом «платиновом» внешнем виде, но теперь имел закругленные углы и полупрозрачные элементы.
В итоге система имела 4 слоя:
- Подсистема Darwin (ядро Mach и набор утилит BSD);
- Среда программирования Core Foundation (Carbon API, Cocoa API и Java API);
- Графическая среда Aqua (QuickTime, Quartz Extreme и OpenGL);
- Фреймворки и драйвера Core Image, Core Animation, CoreAudio и CoreData.
Mac OS X Public Beta
То, что система, собранная из множества компонентов, была сырой — в Apple отлично понимали. И самым логичным выходом был запуск публичного бета-теста в сентябре 2000 года, дабы выявить все проблемы до релиза: вполне обычная практика и по сегодняшним меркам. Только вот проблема в том, что бета была... платной. Да-да, вы все верно прочитали — для того, чтобы «прикоснуться к будущему Macintosh» (именно это было написано на коробке с системой) пользователь должен был заплатить 30 долларов.
С учетом того, что ни функциональностью, ни скоростью, ни стабильностью бета отнюдь не блистала, такой подход был крайне странным. Еще можно было бы понять Apple, если бы у них были трудные времена и не хватало денег — но нет, компания уже пару лет как выбралась из кризиса и выпускала отличные продукты, так что проблем с деньгами не было.
Вторым неприятным моментом стали системные требования: среднестатистический Mac имел тогда 64 МБ ОЗУ, тогда как система требовала 128 МБ. В принципе, она и на 64 вставала, но это очень сильно влияло на и без того не самую высокую скорость работы (при этом минимальный требования для Windows 2000 были 32 МБ ОЗУ, а 64 были рекомендованным объемом).
Также система поддерживала Mac начиная с G3, то есть 1998 года и новее. С учетом того, что все привыкли к поддержке в течении 4-5 лет — это опять же не понравилось владельцам более старых Mac, которые вполне бодро работали на OS 9. К тому же система не имела поддержки карт расширений для процессоров, которые были достаточно популярны и неплохо ускоряли работу с вычислениями. Ну и, разумеется, ОС требовала больше места на диске — целых 1.5 ГБ, что не могло не сказаться на скорости ее загрузки.
Mac OS X 10.0 Cheetah
В итоге бета-версия Mac OS X в среднем была воспринята скорее негативно, чем позитивно — толку от красот и возможностей системы, если даже на топовых решениях она работает достаточно медленно? Но все же многие признавали, что нововведений было много, и они были удобными:
- Dock — панель внизу экрана, где можно было располагать значки приложений. Из-за своего удобства дожил до наших дней и не собирается исчезать.
- Терминал — так как система имела достаточно много общего с BSD, без интерфейса командой строки было никуда.
- Появился почтовый агент Mail, адресная книга, TextEdit — аналог блокнота из Windows.
- Полная поддержка многозадачности и защищенной области памяти.
- Поддержка PDF, как на чтение, так и на возможность создания.
- Поддержка OpenGL — графических библиотек для работы с 2D и 3D.
- Медленная работа: новый интерфейс Aqua был очень неторопливым, время отклика и скорость запуска приложения на OS 9 была существенно выше.
- Стабильность: в теории, Mac OS X должна быть более стабильна из-за использования хорошо отлаженного ядра Mach. Увы — на практике постоянно происходили Kernel Panic, да и просто зависания.
- Проблемы с совместимостью: так, в первых версиях OS X отсутствовала возможность воспроизведения DVD и записи на компакт-диски, а большая часть старых устройств требовала новых драйверов.
- Путаница с языками: так, Apple выпустила два диска, 1Z с поддержкой 8 основных языков, среди которых не было китайского или корейского, из-за чего были проблемы с отображением иероглифов. И если вам это было критично, нужно было брать диск 2Z с поддержкой уже 15 языков. Причем проблема окончательно решилась лишь спустя полтора года с выходом 10.2.
Mac OS X 10.1 Puma
Система вышла спустя год после 10.0, и, разумеется, основной задачей Apple было исправление насущных ошибок, с чем компания не очень-то и справилась.
Apple обещала следующие изменения:
- Улучшение производительности: да, многие пользователи отметили, что система стала работать быстрее. Но все еще до OS 9 было далеко.
- Вернулась возможность полноценной работы с CD и DVD.
- Улучшенная поддержка принтеров — из коробки поддерживалось больше 200 штук, чего с лихвой хватало для рядовых пользователей и выгодно выделяло систему на фоне Windows, где без ручной установки драйверов было не обойтись.
- Оптимизация OpenGL — компания обещала, что 3D приложения будут работать на 20% быстрее. На практике же работа с графикой быстрее все равно была на OS 9.
- Улучшенный AppleScript — так, он теперь мог использовать гораздо больше системных компонентов: например, терминал или Центр печати.
- Улучшенный Finder, новая версия ColorSync.
- Image Capture — программа для получения изображений с камер и сканеров.
В итоге проблемы с производительностью были поправлены лишь в Mac OS X 10.2 Jaguar, вышедшей в августе 2002 года, и, по-хорошему, именно 10.2 и нужно было делать первым релизом Mac OS X. Но об этом уже в следующей части статьи.