Как стать автором
Обновить

История операционных систем Apple. Часть 2. Взлет Macintosh

Время на прочтение 11 мин
Количество просмотров 135K
Автор оригинала: Amit Singh
Продолжаем знакомиться с историей операционных систем Apple. Сегодня Lisa, Macintosh вплоть до System 7 и ранние попытки использовать Unix.
Первая часть: habrahabr.ru/post/194696

Приход графики


image
Apple представил компьютер Lisa в январе 1983 года, за год до Макинтоша. Стартовая цена составляла $9995. Сердцем новинки был 32-битный процессор Motorola 68000. При создании разработчики явно вдохновлялись Xerox PARC, см. habrahabr.ru/post/194696. Этому способствовала договоренность между Xerox и Apple — акции в обмен на технологию. Следует заметить, что проект Lisa начали еще до причащения к PARC. В целом непонятно, какие именно идеи позаимствовали у Xerox, а какие изобрели своими силами.

Lisa OS

Lisa Office System (OS), операционная система этого компьютера, имела полностью графический интерфейс. Был файловый менеджер с иконками, при клике запускалось соответствующее приложение. В комплекте также был табличный процессор LisaCalc, программа для рисования диаграмм LisaGraph, продвинутый редактор списков LisaList, менеджер проектов LisaProject, рисовалка LisaDraw, эмулятор ANSI терминала LisaTerminal и т. д. Кроме того, на Lisa поддерживалась работа SCO Xenix.

image
В Lisa впервые ввели некоторые элементы интерфейса, которые используются Apple по сей день. Это меню вверху экрана, правда пока без кнопки с яблочком. Символ яблока был на клавиатуре и использовался в шорткатах. При дабл-клике открывающееся окно анимировалось. Можно было перетащить документ в корзину для удаления.
Подобно STAR, интерфейс Lisa базировался на метафорах реальных офисных объектов. Поэтому обои десктопа изображали однотонный белый лист. В те годы мониторы мерцали, а белый фон мерцал особенно сильно. Для сохранности глаз пользователей увеличили частоту развертки, что плохо отразилось на стоимости компьютера. Про белый фон вроде бы не подтверждается. Была сетка, которая действительно должна мерзко мерцать — прим. перев. Дополнительная память и диск делали цену прилично пятизначной в тех еще долларах. Были и проблемы с длительной загрузкой системы. В целом, Lisa была далеко не такой совершенной, как ее создавали.

Macintosh

image
В начале 80-х в Apple разрабатывался проект Annie. Джефф Раскин, тридцать первый (видимо, по порядку найма — прим. перев.) сотрудник Apple переименовал его в Macintosh. Вообще-то, сорт яблок правильно называется McIntosh, но такая торговая марка уже была. Во время попыток подобрать созвучное название пробовали и аббревиатуры. Например, MAC (Mouse Activated Computer). Сотрудники быстренько придумали альтернативный перевод Meaningless Acronym Computer, Малозначащая Аббревиатура Компьютера. Раскин также написал на тему персональных компьютеров документ для внутреннего пользования The Book of Macintosh. Это был первый весомый вклад в проект.
Стив Джобс представил общественности Macintosh 24 января 1984 года в Купертино. Позже эту модель обозначат Mac 128K из-за соответствующего объема памяти. Компьютер построен на основе процессора Motorola 68000 без блока управления памятью, работы с плавающей запятой и каких-либо кэшей. В корпус встроен девятидюймовый черно-белый монитор с разрешением 512х342. Из накопителей — только 3.5” дисковод, 400 Кб на дискету.
На 400 Кб дискете поставлялась однопользовательская однозадачная операционная система. Название ее постепенно определилось как Mac System Software, или просто System.

System 1

Macintosh ROM содержал смесь низкоуровневого кода для инициализации железа, драйверов и высокоуровневой библиотеки Toolbox. Она избавляла программиста от необходимости самому рисовать интерфейс, все программы получались в едином стиле. Toolbox поддерживал отображение и обработку диалоговых окон, шрифтов, иконок, меню, окон, ввод и редактирование текста, простые вычисления, и так далее. Компонент QuickDraw содержал примитивы для рисования фигур, диалогов, выпадающих меню, скролл-баров, окон. Этот фрагмент кода практически идентичен таковому в Lisa. На то время это был невероятно богатый API. Он позволил создать достаточно долгоживущую систему с поддержкой обратной совместимости.
image
Приложение по умолчанию, которое запускалось при старте, называлось Finder. Это был интерфейс для работы с файлами и запуска программ, по типу сегодняшних десктопов. Система была однозадачная, поэтому при запуске программы Finder закрывался, а после завершения запускался снова. Файловая система MFS была неиерархической, все файлы хранились в одной куче. В то же время, отображение вложенных каталогов было реализовано. В корне каждого диска был каталог Empty Folder. Чтобы создать новый каталог, надо было переименовать Empty Folder, который после этого респавнился. От Lisa новой системе досталось верхнее меню с добавленным яблочком и корзина. Корзина опустошалась при каждой перезагрузке. Примерно тогда же появился Apple's Human Interface Guidelines.
В те годы корзина использовалась еще и для безопасного извлечения диска. Это вызвало волну критики. Apple аргументировало свою позицию по этому вопросу, там все неочевидно и интересно.
Из дисковых носителей был только один дисковод. Уже тогда многие программы требовали несколько дискет для работы. Система поддерживала кэширование списка файлов на дискете, которая уже извлечена. Иконка такой дискеты делалась серой, а при попытке ее открыть выбрасывалось приглашение вставить ее обратно. В то же время, можно было очистить этот кэш перетягиванием дискеты в корзину.
Таким образом. чтобы извлечь дискету окончательно, надо было сначала дать команду “Извлечь”, а потом перетащить иконку в корзину. Поэтому переписали логику этого действия: перетягивание активной дискеты извлекало ее и очищало кэш.
Одновременно вышла и Lisa 2. Позже ей добавят жесткий диск, эмулятор Macintosh под названием MacWorks и переименуют ее в Macintosh XL.
Кроме всех программных новшеств, в этих компьютерах впервые обеспечили программное управление такими сугубо железными функциями как выброс дискеты, регулировка яркости и включение-выключение компьютера.
Алан Кэй однажды сказал, что интерфейсы IBM 3270/PC и Macintosh относятся друг к другу как машкоды к КОБОЛу. Дальше были несколько лет эволюционного развития с неожиданными отступлениями от общей темы.

System Software версий 2 — 6

Долгое время у Apple была крайне запутанная система нумерации версий софта, у каждого компонента ОС была своя система нумерации и план обновления. Отдельно учитывались System Software Release, System, Finder, MultiFinder, LaserWriter и т.д. Постепенно это унифицировали.
Улучшения за этот период:
  • Ускорили Finder, включая дисковый кэш и minifinder для быстрого запуска программ.
  • Добавили команды для обычных действий: выключение компьютера, создание нового каталога, извлечение диска
  • Иерархическая файловая система HFS с адекватной логикой работы
  • Поддержка нескольких мониторов и больших дисков
  • Улучшения в клиенте AppleShare


System 6

image
Здесь наконец-то появилась многозадачность через MultiFinder. Изначально это был отдельный софт, работающий параллельно со старым Finder. Но вскоре его сделали обязательным. Он позволял запустить несколько программ одновременно и раздать нужный объем памяти каждой из них. В интерфейс добавили прогресс-бар с кнопкой отмены для операций копирования и удаления файлов. Но в то же время Finder оставался черно-белым даже на компьютерах, поддерживающих цвет. Для исправления этого фатального недостатка выпустили Color QuickDraw.

Цветные проекты Apple


В марте 1988 года некоторые инженеры и менджеры Apple в тайне от руководства обсудили глобальные планы на будущее. Идеи сортировали по безумности и записывали на цветные карточки — синие, розовые и красные.
Blue — проект улучшения уже имеющейся ОС. Он стал основой для System 7.
Pink — система, переписанная с нуля. Предполагали внедрить ООП, полную защиту памяти, легковесные потоки, отдельные защищенные адресные пространства, многозадачность и много еще чего интересного. Проект развивался вяло, и его отдали в компанию Taligent. Но об этом чуть позже.
Red — вещи, слишком прорывные даже для Pink.
В это время актуальной была System 6.х. К 1991 году допишут Blue и выпустят под именем System 7. Это будет очень значительный шаг, сравнимый разве что с выходом Mac OS X. В этом промежутке времени Apple выпустила два интересных проекта: GS/OS и A/UX.

GS/OS


image
Как мы говорили в первой части, Apple II продержался на конвейере 14 лет. Даже выход Macintosh не сдвинул его с трона. В 1986 году вышел Apple IIGS, некий микс этих двух очень различных систем. Это был первый и единственный 16-битный Apple II. Буквы GS обозначали Graphics and Sound. Процессор был совместим с 6502, поддерживались режимы 200x320 16 цветов и 200x640 4 цвета, 32-х канальный звуковой чип Ensoniq Digital Oscillator поддерживал до 15 инструментов.
Apple ProDOS разделили на 8- и 16-битную ветки для поддержки Apple IIGS. ProDOS 16 поставлялась как ОС весьма недолго, вскоре Apple представляет GS/OS. Это новая, изначально 16-битная система, которая работает намного быстрее. Из новинок — FST, file system translators. Это что-то типа набора драйверов для поддержки различных ФС. Источник вдохновения — vfs из UNIX. Из коробки поддерживались ФС Apple Pascal, Apple DOS 3.3, ISO/High Sierra, HFS, FAT, ProDOS и сетевой протокол AppleShare.
image
Finder умел отображать сетевые тома, а GS/OS даже поддерживала загрузку из сети.
В GS/OS была Панель управления, которая могла дополняться сторонними апплетами под названием CDEV.
Последняя версия GS/OS 4.02 поставлялась с Apple IIGS System 6.0.1.

A/UX


Apple выпустила собственную версию POSIX-совместимого Unix в конце 1988 года. Ранние версии были основаны на 4.2BSD и AT&T UNIX System V Release 2, но вскоре в ход пошли 4.3BSD и последующие релизы System V.
A/UX включала контроль задач, сигналы, сеть (AppleTalk, STREAMS, TCP/IP, сокеты, NFS с поддержкой YP и т.д.), файловую систему ffs, систему контроля версий SCCS, печать, X Window, совместимость с API BSD и System V, компиляторы cc и f77 и т.д.
image
Кроме этого, в A/UX входили многие компоненты из ОС Macintosh, в частности Finder. A/UX 2.x построена на System 6, а A/UX 3.x — на System 7. Поддерживались приложения Macintosh, Unix с командной строкой и X, DOS через эмулятор. Также были гибридные приложения, совмещающие API Unix и интерфейс Toolbox. Для процессов Unix многозадачность была вытесняющая, а для Macintosh — только кооперативная через MultiFinder. Для запуска среды исполнения Macintosh использовались программы startmac и startmac24, в зависимости от используемой схемы адресации памяти. Поддерживалось множество настроек, даже замена Finder на другое приложение.
Сторонники A/UX от него тащились. Инсталляция на поддерживаемое железо была максимально простой для Unix, даже на фоне сегодняшнего дня. Кое-что из A/UX дожило до времени Mac OS X. Например, команда appleping. Или каталоги /.mac/hostname/Desktop Folder и /.mac/hostname/Trash. Про разделитель каталогов / и говорить стыдно. В Маках в то время был разделитель :, подмена в случае работы с HFS делалась на лету. Хоум был в /users, и так далее. Спорный абзац, ну да ладно — прим. перев.
Последняя версия A/UX 3.1.1 вышла в 1995 году. Система работает только на Apple с процессорами 68 серии с поддержкой плавающей запятой и управления памятью.

В поисках свежей крови


В начале 90-х в Apple осознали, что накопившийся в ОС код пора бы и переписать. Упомянутый выше проект Blue вылупился под названием System 7.

System 7

Маленький шаг в нумерации, большой прыжок для всех Macintosh.

Обновления:
  • MultiFinder встроен и используется по умолчанию. Многозадачность только кооперативная.
  • Встроенная поддержка сети AppleTalk и сетевых дисков AppleShare
  • 32-битная адресация памяти
  • AppleScript для автоматизации работы, управление цветом ColorSync, совместная работа и электронная почта через PowerTalk, QuickTime, TrueType, WorldScript поддерживал несколько языков как системные. Не все эти компоненты входили в поставку, некоторые надо было добавлять отдельно.
  • Поддержка виртуальной памяти

Первый Macintosh с блоком управления памятью вышел в 1987 году под названием Macintosh II. До выхода System 7 блок вообще не использовался. В этой версии поддержка виртуальной памяти была в весьма зачаточной стадии. Не было защищенных адресных пространств, mmap, блокировки страниц, разделения памяти и т.д.
image
Были и некоторые изменения интерфейса. Можно переключать запущенные приложения через меню. Корзина стала обычной папкой, убрали автоочистку. Текст можно не только копипастить, но и перетягивать между приложениями. Появились ярлыки. Поменяли структуру Панели управления и Расширений.
Примерно в это же время Apple объединяет усилия с IBM и Motorola для перехода на PowerPC. Это потребовало еще одного переписывания системы.

Наша цель — POWER


В свое время господствовала концепция набора команд процессора, приближенного к языку высокого уровня — CISC. Это привело к появлению очень сложных процессоров. В противовес этому, Сеймур Крей в начале 60-х разработал суперкомпьютер CDC 6600 (он же CRAY-1) с компактным набором команд. Это был RISC, но тогда этого слова еще не знали. RISC (Reduced Instruction Set Computer), компьютер с уменьшенным набором команд. Кроме этого, почти все команды работают только с регистрами, а операции загрузки в память и выгрузки оттуда вынесены отдельно. Это позволяет сделать эффективный конвейер и выполнять каждую команду за меньшее число тактов. Сейчас граница между CISC и RISC сильно размылась.
В 1975 году в IBM запустили RISC-архитектуру под кодовым номером 801. В начале 80-х Беркли и Стэнфорд начали проекты RISC и MIPS соответственно. К 1990 году на рынке было несколько конкурирующих RISC-архитектур. Например, MIPS, PA-RISC, SPARC V8, Motorola 88k, IBM RS/6000. RS/6000 — это второе поколение архитектуры под общим названием POWER. В рамках проекта Jaguar были попытки Apple использовать Motorola 88k. Но проект не пошел, и в работу взяли PowerPC.
В 1991 году Apple, IBM и Motorola создали AIM Alliance с целью создания единой аппаратной платформы CHRP (Common Hardware Reference Platform). В результате получилась платформа PowerPC. Первый процессор PowerPC 601 поддерживал большинство инструкций POWER. Архитектура сразу разрабатывалась как 64-битная, с возможностью динамического переключения между 32- и 64-битными режимами. Процессоры вплоть до G5 поддерживали только 32-битный режим. Как оказалось, PowerPC пришел надолго.
Следует заметить, что CHRP предполагалось лицензировать для продажи сторонними производителями. Для PowerPC даже существовала версия Windows NT.

Apple и ARM

image
Еще в начале 90-х были серьезные попытки Apple использовать RISC. Первый процессор ARM1 вышел в середине 80-х. Еще до AIM Apple и Acorn пытались совместно создать новый процессор. Инвестор и первый покупатель лицензии — VLSI Technology. Процессор ARM6 610 архитектуры ARMv3 с частотой 20 МГц использовался в планшете MessagePad с операционной системой Newton. Про это будет отдельная глава.

Mac OS для PowerPC


Впервые PowerPC поддерживалась в System 7.1.2. Портирование всех компонентов заняло уйму времени. Особую прелесть процессу добавляла необходимость сделать эмулятор старого процессора, для обратной совместимости. В итоге получился HAL (слой абстракции от железа) и эмулятор собственно 68k.
Для PowerPC было разработано наноядро — меньшее, чем микроядро. Оно выполнялось с высшим приоритетом, выступало в роли HAL и предоставляло низкоуровневые интерфейсы для обработки прерываний, исключений, управления памятью. Напрямую к ядру могли обращаться только службы ОС и дебаггер.
Эмулятор 68k запускался при загрузке. Он эмулировал только общий набор инструкций процессора 68LC040, без плавающей запятой и блока управления памятью. Стек исключений был взят из процессора 68020, для лучшей совместимости. Были и другие мелкие ограничения. A/UX на этом эмуляторе не запускается. На современных программных тоже — прим. перев.
Поскольку одновременно могли использоваться два набора инструкций, был специальный системный компонент Mixed Mode Manager, который управлял переключением контекста между двумя типами кода. Взаимные вызовы между ними тоже поддерживались. Менеджер был незаметен для кода 68k, но код PowerPC его видел.
Следует заметить, что первые версии Mac OS для PowerPC содержали мало нативного кода. Большинство существующих приложений, драйверов, бОльшая часть Toolbox и собственно кода ОС использовали эмуляцию. Их только предстояло переписать. Предполагалось, что наноядерная архитектура этому поможет.
image
В System 7.5 появились OpenTransport (реализация Mentat Portable STREAMS), QuickDraw 3D, Java, OpenDOC (местный аналог OLE). Из украшений появился экран загрузки с логотипом Mac OS и прогресс-баром.

MAE

Mixed Mode Manager также использовался в Macintosh Application Environment (MAE). Это эмулятор Мака для X Window под SunOS и HP-UX. Была эмуляция 68k и трансляция команд в родные для хост-системы. Поддерживалась System 7.x и многие ее компоненты. Еще из похожего — Mac-on-Unix (MAS), для запуска приложений Macintosh под Unix на PowerPC.

NetWare для PowerPC

Apple и Novell сотрудничали в середине 90-х для портирования NetWare на PowerPC. Этот порт намного проще настраивался по сравнению с х86, планировалось запускать его на сервере Apple Shiner. Проект был в приличной степени готовности, но закрыт до выхода готового продукта. Название Shiner перешло к Apple Network Server под управлением AIX.

AIX для PowerPC

Через несколько лет, в 1996 году, Apple выпускает малоудачный Apple Network Server. Он был основан на процессоре PowerPC и поддерживал горячую замену дисков, вентиляторов и блоков питания, RAID, много устройств SCSI и PCI, заменяемый процессор на отдельной плате и экран на корпусе для отображения статуса.
image
Network Server поставлялся с AIX for Apple Network Servers и не поддерживал Mac OS. Это была очень продвинутая ОС с поддержкой вытесняющей многозадачности, многопоточности, множества сетевых протоколов, RAID, JFS, LVM и прочих приятных суровым админам-юниксоидам штук. На выбор были командная строка или графические AIXwindows и CDE.
image
Эту линейку серверов сняли с производства в 1997 году. Apple вернется на рынок только через 5 лет, когда выйдет Xserve.

В следующей части будет про разброд и шатания в середине 90-х и поиск источника вдохновения для очередного полного переписывания. Если вмещусь по объему, то затрону поздние версии Mac OS Classic.
Теги:
Хабы:
+130
Комментарии 27
Комментарии Комментарии 27

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн