Первая часть: habrahabr.ru/post/194696/
Вторая часть: habrahabr.ru/post/196276/
Третья часть: habrahabr.ru/post/197160/
Сегодня завершаю этот цикл переводов. В четвертой части будет про поздние версии Mac OS Classic, начало Mac OS X и чуть-чуть про некомпьютерные продукты Apple.
Зрелые годы Mac OS
Следующий после покупки NeXT релиз получил номер 7.6. Mac OS 8.0 сначала хотели выпустить как 7.7, но потом передумали и сделали как есть.
Mac OS 8
Сюда вошли кое-какие новинки, изначально планируемые в Copland. Например:
- Файловая система HFS+
- Поисковый движок для локальных дисков, серверов сети и интернета. Известен под назвванием Sherlock.
- API Copland, которое потом плавно мутировало в Carbon — олдовые разработчики под Mac OS пустили скупую слезу.
- Тема интерфейса Platinum, см. скриншот
- Поддержка нескольких пользователей с минимально приличным ограничением доступа
В Mac OS 8 был многопоточный Finder, который наконец-то позволил производить несколько операций над файлами одновременно. Еще появилось контекстное меню с доступом по ctrl-клику, персональный веб-хостинг, значительно улучшенная поддержка энергосбережения, USB и FireWire. Для работы в интернете поставлялись одновременно IE и Netscape. Java поддерживалась через собственный рантайм Macintosh Runtime for Java (MRJ), который тоже шел в комплекте. Версия 8.1 была последней для 68k, начиная с 8.5 поддерживались только процессоры PowerPC. В версии 8.6 снова переписали микроядро для улучшения поддержки мультизадачности и мультипроцессорности. Появился аллокатор памяти, пригодный для вытесняющей многозадачности. API библиотеки мультипроцессорности перестало конфликтовать с виртуальной памятью.
Mac OS 9
Mac OS 9 выходит в 1999 году. В рекламе утверждали, что это самая лучшая ОС для интернета. Как минимум, обновляться по сети она умела. Улучшились криптография и функции безопасности, появилась поддержка AppleTalk поверх TCP/IP.
В Mac OS 9 включили стабильную версию API Carbon. Он включил в себя 70% API старых версий Mac OS и обеспечил полную совместимость с версиями новее Mac OS 8.1. Последний релиз Mac OS Classic, 9.2.2, вышел в конце 2001 года.
Rhapsody
Rhapsody в первый раз показали публике на выставке WWDC в 1997 году. Она появилась как продолжение OPENSTEP с добавлением совместимости с Mac OS. Значимые компоненты:
- Ядро и его подсистемы, основанные на Mach и BSD
- Дальнейшее развитие API OpenStep, кодовое имя Yellow Box
- Виртуальная машина Java
- Слой совместимости с Mac OS под названием Blue Box
- Mac OS-подобная тема интерфейса для OPENSTEP
На Rhapsody планировалось портировать многие компоненты Mac OS: QuickTime, QuickDraw 3D, QuickDraw GX, ColorSync и т.д. Поддерживалось множество файловых систем: Apple Filing Protocol (AFP), FAT, HFS, HFS+, ISO9660 и UFS.
Вышло два релиза Rhapsody — DR1 и DR2, оба для разработчиков. Они поддерживали платформы PowerPC и x86.
Blue Box
Для совместимости PowerPC-версии DR1 с Mac OS сделали приложение MacOS.app
, оно же Blue Box. Это виртуальное окружение без эмуляции железа, транслируются только вызовы Macintosh ROM, которые передаются в запущенную с диска слегка модифицированную копию Mac OS. Изначально 'эмулировалась Mac OS 8.x в режиме полноэкранного приложения, с возможностью переключения обратно в Rhapsody. Не поддерживались программы, работающие с железом напрямую и использующие грязные хаки. Поддержку более новых версий Mac OS и улучшения интерфейса добавили со временем.
Yellow Box
Yellow Box — это платформа для разработки Rhapsody, выполненная в виде надстройки над системой или как приложение для Windows.
В Yellow Box были включены многие библиотеки из OPENSTEP, рантайм для всего этого и средства разработки. Для трех самых главных компонентов были API на Objective-C и Java:
- Foundation: базовые классы для выделения, освобождения, проверки, хранения, уведомления и распределения объектов.
- Application Kit: богатый API для создания интерфейса пользователя. Получение и обработка событий, работа с цветом, шрифтами, принтерами и прочими пользовательскими штуками.
- Display PostScript: API для работы с PostScript, наложением изображений и всякими визуальными эффектами. В целом, это часть Application Kit.
В Yellow Box входили IDE Project Builder и визуальный инструмент Interface Builder понятно для чего. Yellow Box под Windows NT был примерно аналогичен по функциональности. Низкоуровневые сервисы, работающие с железом, были переписаны как службы Windows. Например, это эмулятор ядра Mach machd
и сервер имен nmserver
. Все остальное было пользовательскими программами, как WindowServer и pbs
, сервер буфера обмена. Подобная архитектура была и у ранних реализаций OpenStep под сторонние ОС, например Solaris.
На ближних подступах к Mac OS X
После релиза Rhapsody DR2 у Apple в очередной раз радикально меняется стратегия выпуска ОС. Выпуск принципиально новой системы займет три года. На рисунке примерная схема эволюции:
Mac OS X Server 1.x
Вместо ожидаемой публикой Rhapsody DR3 в марте 1999 года Apple внезапно выпускает Mac OS X Server 1.0. В целом, эту систему можно считать очередной версией Rhapsody. В комплекте был фреймворк WebObjects, потоковый сервер QuickTime, Apache, средства разработки и удаленного администрирования.
Параллельно с этим выходит первая версия Apple Darwin, форк Rhapsody с открытым кодом.
Следующие пару лет будут выходить обновления серверной версии, которые сразу же интегрируются в еще не выпущенную пользовательскую версию. В дальнейшем у них не будет глобальных отличий.
Mac OS X Developer Preview
Было выпущено 4 версии Mac OS X Developer Preview, они именовались DP1-4. В них постепенно добавлялись новые возможности:
- Реализован API Carbon (DP1), для запуска старых, но перекомпилированных приложений в новой ОС. Это смягчало остроту перехода на принципиально новую систему. Старое приложение требовало для запуска инсталляции Mac OS 9 для запуска, приложения Carbon запускались без этого. Carbon назывался старым API, в противовес новому Cocoa. При этом у них была некоторая небольшая степень совместимости
- Приложение Blue Box,
MacOS.app
, переименовали вClassic.app
(DP2) - Yellow Box переименовали в Cocoa, добавили ему поддержку Java (DP2)
- Интерфейс Aqua (DP3)
Mac OS X Public Beta
Платная бета стоимостью $29.95 вышла в сентябре 2000 года. На обложке было послание Apple хомячкам бета-тестерам — “Подержись за будущее Macintosh”
Понятно, что бете не хватало ни стабильности, ни функциональности. Но это была захватывающая демонстрация амибций и технологий Apple. Широкой публике впервые показали юниксовый по своей сути Darwin с ядром xnu
, основанную на PDF графическую подсистему Quartz, интерфейс Aqua с их фирменным доком, и так далее. Darwin позволил позаимствовать и интегрировать в Mac OS X заметное количество стороннего софта с открытым кодом и соответствующей лицензией.
Ядро Darwin называется xnu
. Один из вариантов расшифровки — «X is Not Unix». Или это намек на их старое ядро NuKernel, переделанное под Mac OS X. xnu
содержит код Mach, FreeBSD, MkLinux и кучи других источников.
Mac OS X 10.x
Mac OS X 10.0 вышла 24 марта 2001 года. Вскоре схему нумерации Mac OS X Server подогнали под десктопные версии. После этого они стали выходить попарно, но десктопная чуть раньше.
На момент выхода статьи были такие версии:
10.0 | Cheetah | 24 марта 2001 |
10.1 | Puma | 29 сентября 2001 |
10.2 | Jaguar | 24 августа 2002 |
10.3 | Panther | 24 октября 2003 |
Все версии (до 10.9, вышедшей в 2013 году — прим. перев.) назывались именами больших котов. (Cheetah — это гепард. По иронии судьбы, 10.0 работала очень медленно — прим. перев.)
В версии 10.0 появились iMovie и iTunes, в 10.1 добавили iDVD. Carbon API привели к стабильной версии тоже в 10.1. Это позволило быстро выпустить много важного софта, например Photoshop.
В 10.2 добавили много важных улучшений. Наиболее заметное из них — Quartz Extreme, движок аппаратного ускорения отрисовки интерфейса. Кроме этого, добавлено много новых программ: Address Book, Mail, Chat, Rendezvous для работы с сетью, iPhoto, Safari, X-сервер и многое другое.
В 10.3 в основном улучшена стабильность и безопасность.
После этого система в целом стала похожа на то, что планировалось в Apple. Новые пользователи покупали Маки и сразу начинали эффективно работать, старые не разбегались в панике от незнакомого расположения кнопок и менюшек. Ну и вообще, среди сторонников Apple много людей разных профессий, наклонностей и ориентаций.
Описание внутренней структуры Mac OS X можно найти в книге автора оригинальной статьи Mac OS X Internals.
Разное
Кроме компьютеров и серверов, Apple выпускала и всякие другие интеллектуальные устройства.
Pippin
Pippin — это мультимедийное устройство, приставка или сетевой компьютер родом из середины 90-х. Кто как хочет, так и называет. На нем можно было слушать аудио-CD, серфить по интернету, читать мейлы и играть в игры, но нельзя пользоваться как полноценным компьютером. То есть это устройство с искусственно ограниченными возможностями наподобие игровой консоли. Планировалось продавать лицензию сторонним производителям. Фактически, это был PowerMac с ограничениями. Он основан на процессоре PowerPC 603e 66 МГц, содержит 6 Мб памяти, 128 Кб флеша, 4х CD-ROM, стереозвук, несколько видеовыходов, разъем PCI для расширения, разъемы ADB для клавиатуры и мыши, модем, клавиатуру и геймпад. Для работы всего этого использовалась специальная версия Mac OS. Проект родился мертвым и успеха не получил. Название произошло от одноименного сорта яблок.
Newton
У Apple была линейка планшетоподобных аппаратов Newton. В основном, они принадлежали к линейке MessagePad. Редкое исключение — eMate 300. Были и клоны. Самый первый MessagePad работал на 20 МГц процессоре ARM 610, всем хватало его 640 Кб оперативной памяти и 4Мб ROM. Это был 1993 год, версия софта Newton OS 1.0. Эпоха завершилась в 1998 году. У последней модели MP2100 был процессор StrongARM с частотой 162 МГц и по 8 Мб RAM и ROM. Нумерация версий ОС дошла до Newton OS 2.1.
Newton System Software вполне логично разделялась на ядро Newton OS, системные сервисы и пользовательские компоненты. В целом, это была достаточно продвинутая ОС с вытесняющей многозадачностью. Вся внутренняя механика наподобие планировщика, управления задачами, межпроцессного взаимодействия, управления памятью, питанием и работы с железом была реализована через потоки ядра. Была очень развитая подсистема работы с последовательными протоколами. В те годы это позволяло использовать факсы, модемы, инфракрасные устройства, сети AppleTalk. Можно было даже добавлять новые протоколы на лету.
В самом верхнем слое работали программы на NewtonScript и интерфейс пользователя. Все пользовательские приложения, как встроенные, так и установленные отдельно, исполнялись как одна задача ОС.
Особенность Newton — немодальный интерфейс с распознаванием рукописного ввода текста, фигур и жестов. Поддерживались печатные буквы, рукописные и их смесь. Формы фигур тоже могли быть самые разные. Некий наследник этой технологии включен в Mac OS X под названием Inkwell.
iPod
Плеера iPod быстро стали очень популярными. Они работают на проприетарной ОС.
В первых айподах 2001 года выпуска во вкладке «About» упоминался PortalPlayer. Это компания, которая лицензирует музыкальное ПО для компьютеров, плееров и бытовой электроники. Использовались также наработки компании Pixo. Они специализируются на разработке прошивок мобильных телефонов.
В айподе использовалась «Digital Media Platform» разработки PortalPlayer. Это комплекс железа и расширяемого софта, программ для синхронизации с компьютером, сторонних расширений и прочего. Использовался чип PP50xx с двумя ядрами ARM7TDMI.
Pixo предоставил инструментарий для разработки пользовательского интерфейса, а рисовали его непосредственно в Apple. Им же принадлежат многие библиотеки и встроенные приложения типа адресной книги.
iPhone
Статья 2004 года, тогда айфонов еще не было
Автор: BubaVV