Архивы: по дате | по разделам | по авторам

Rhapsody

Архив
автор : ИЛЬЯ РУСАНОВ    08.09.1998

Предыстория, архитектура и варианты новой операционной системы Apple.

В августе 1996 года Apple остановила работу над проектом Copland. Несмотря на желание многих руководящих лиц компании взять все возможное из Copland и дать инженерам Apple еще один шанс, необходимость в быстром ответе на техническое превосходство Windows NT над Mac OS означала, что для разработки in-house просто нет времени. И начался поиск операционной системы, которая могла бы быть использована в качестве основания для наследницы System 7.

Было рассмотрено несколько кандидатов, включая Sun Solaris, BeOS и саму Windows NT. Но так как Apple считает необходимым контролировать дальнейшее развитие своей ОС, простое лицензирование Solaris или Windows NT не решало проблемы.

С технической точки зрения приобретение компании Be, управляемой бывшим вице-президентом Apple Жаном-Луи Гассе (Jean-Louis Gassee), являлось наиболее простым решением - BeOS уже работала на Power Mac и заслужила прекрасные отзывы о своей скорости и стабильности. Однако BeOS была все еще новой операционной системой с ограниченным числом приложений, Apple же хотела иметь систему, отвечающую нуждам разработчиков, а не только приносящую устойчивость, столь желанную пользователями "Мака".

Наконец, 20 декабря 1996 года Apple объявила о приобретении компании NeXT.

Немного истории.

В 1985 году Стив Джобс, один из основателей Apple, был вынужден покинуть компанию из-за разногласий с тогдашним CEO Джоном Скалли (John Sculley).

Уйдя из Apple, Джобс основал компанию NeXT Computer. Главной задачей компании была разработка компьютера, в котором Джобс намеревался воплотить идеи, почерпнутые им во время работы в исследовательском центре компании Xerox. NeXT взяла лучшее из существовавшего в то время: операционную систему Unix, простой объектно-ориентированный язык Objective-C (С++ еще не было) и новую дисплейную систему, основанную на Adobe PostScript.

Objective-C был одним из первых объектно-ориентированных языков, реализованных на базе С. С++, добавивший к стандартному С множество конструкций и метафор, является наследником Simula-67; Objective-C добавляет к стандартному С совсем немного синтаксиса и является наследником прекрасного и изящного языка SmallTalk...

NeXT выпускала компьютеры собственной разработки в течение пяти лет. Однако дела компании шли ни шатко ни валко, и в феврале 1993 года производство hardware было прекращено.

Через четыре месяца вышел первый релиз NextStep для процессоров Intel, затем ОС была портирована на Hewlet-Packard PA-Risc и рабочие станции Sun SPARC. С 1995 года NeXT сосредоточилась на работе над OpenStep, средой разработки, портированной на Windows NT/ 95, и WebObjects, средой разработки для Web-серверов.

Итак, операционная система следующего поколения Rhapsody основана на технологиях NeXT и Apple и будет выпущена как для PowerPC, так и для Intel. Основным отличием версии для х86 от версии для PowerPC является отсутствие в первой "синего ящика" (Blue Box) - среды для исполнения программ, написанных для Mac OS. Blue Box является портированной версией Mac OS 8.

Rhapsody состоит из нескольких уровней.

Уровень 1. В основе любой современной ОС лежит ядро. В основании Rhapsody лежит ядро Mach, разработанное в Университете Карнеги Меллона (Carnegie Mellon University, CMU). OpenStep использовала Mach версии 2.5. В Rhapsody к этой версии ядра были добавлены некоторые функции микроядра Mach 3.0 (версии Mach 2.х не являются "честным" микроядром, так как в отличие от микроядра, представляющего собой платформно-зависимое ПО, Mach до версии 3.0 рассматривалось как вариант ядра Unix и могло служить платформой для любой аппаратной базы). Apple добавила в ядро загружаемые драйверы устройств, высокопроизводительные сообщения, модифицированную подсистему ввода/вывода и др. Mach - это простое, коммуникационно-ориентированное ядро, поддерживающее распределенные и параллельные вычисления и обеспечивающее совместимость с BSD 4.4.

Компоненты Mach:

- небольшое, расширяемое системное ядро, обеспечивающее виртуальную память и межпроцессорные коммуникации; ядро экспортирует пользователю несколько абстракций через совместный интерфейс;

- среда поддержки операционной системы, обеспечивающая доступ к распределенным файлам, прозрачные сетевые межпроцессорные коммуникации, системы удаленного запуска и эмуляцию BSD 4.4.

Многие традиционные функции ОС выполняются пользовательскими программами и серверами вне ядра.

Так как дизайн Mach концептуально похож на дизайн BSD 4.4, оно поддерживает совместимость с BSD 4.4. Большинство программ BSD 4.4 после перекомпиляции работает под Mach. Mach предоставляет следующие функции, отсутствующие в BSD 4.4:

- множественные задачи, каждая с большим пространством виртуальной памяти;

- множественные потоки исполнения в каждой задаче;

- гибкое распределение памяти между задачами;

- эффективные, основанные на сообщениях межпроцессорные коммуникации;

- прозрачная сетевая расширяемость.

Rhapsody является объектно-ориентированной операционной системой, так как обеспечивает большинство услуг через программы пользовательского уровня, доступные по системе передачи сообщений (message passing). Объектно-ориентированная архитектура позволяет пользователю собирать ОС исходя из своих потребностей. Файловую и сетевую систему обеспечивает BSD Unix. Пользователи, предпочитающие работать без графического интерфейса, могут использовать командную строку Unix.

Уровень 2.Для представления графики в Rhapsody используется Display PostScript, который имеет два больших достоинства: во-первых, один и тот же код применяется как для изображения на экране, так и для печати; во-вторых, большое число программистов знают эту технологию. В модель Display PostScript были добавлены такие технологии Apple, как QuickDraw GX и ColorSync.

Уровень 3.

"Желтый ящик" (Yellow Box) основан на технологии OpenStep и представляет собой программный интерфейс приложений (API) и среду для объектно-ориентированной разработки. Yellow Box будет выпущен как часть Rhapsody, а также как среда разработки для Windows NT/95. С его помощью можно будет создавать приложения работающие в Rhapsody, Windows NT, Windows 95 и Mac OS. Такая кросс-платформность достигается путем распространения вместе с программой динамических библиотек Yellow Box, занимающих при инсталляции всего восемь мегабайт на диске. Для перенесения приложения на разные платформы его достаточно перекомпилировать. По многочисленным отзывам программистов, создание приложений, например, для Windows NT в среде Yellow Box во многих случаях отнимает на порядок меньше времени, чем в среде Microsoft Visual C++.

Для работы с мультимедийными приложениями в Rhapsody портирована технология Quick Time Media Layer (QTML), состоящая из трех частей:

- Quick Time - промышленный стандарт для хранения, редактирования и проигрывания видео, звука, графики и текста, принятый за основу MPEG-4;

- Quick Time VR - технология создания и просмотра виртуальной реальности;

- Quick Draw 3D - позволяет просчитывать в реальном времени трехмерную графику.

Джон Кармак (John Carmack) из id Software лично представил Стиву Джобсу OpenGL и убедил включить эту технологию в Rhapsody.

Для распределенных вычислений применяется технология Distributed Objects, позволяющая объектам в разных потоках и задачах взаимодействовать - на одной машине или через сеть - друг с другом. Также Yellow Box поддерживает CORBA.

Apple рассматривает Rhapsody как мощный инструмент для работы с Интернетом. Среда разработки предоставляет API для почты, сообщений, функций безопасности. Yellow Box содержит WebObjects, приложение для создания динамических страниц и серверов.

WebObjects - это объектно-ориентированная среда для разработки Web-приложений. В ее состав входит несколько программных инструментов (WebObjects Builder, Project Builder и ряд других), богатый набор предопределенных компонентов и процедур, наиболее типичных для Web-приложений. WebObject Builder позволяет визуально разрабатывать прообразы HTML-страниц, включающие как стандартные HTML-элементы, так и динамические объекты WebObjects, кроме того, позволяет связывать эти динамические элементы с переменными в исходном тексте Web-приложения. WebObjects позволяет писать Web-приложения в любом из трех языков: Java, Objective-C и WebScript, а также смешивать любые из этих языков в любой пропорции для повышения производительности итогового приложения.

WebObjects позволяют в течение нескольких минут, без модификации вручную исходных текстов программ создавать вполне функциональные небольшие программы. Объектно-ориентированная среда, компоненты повторного использования позволяют создавать Web-приложения неограниченной сложности.

Enterprise Objects - технология для предоставления приложениям доступа к базам данных. Имеются адаптеры для Oracle, Sybase и Informix. С помощью WebObjects информация из базы данных может поступать на Web-сервер.

Локализация и интернационализация приложений Yellow Box проста, так как элементы пользовательского интерфейса содержатся отдельно от исполняемых, то есть можно вместе с основным кодом поставлять несколько пакетов локализации. Имеется поддержка Unicode.

Для программирования приложений Yellow Box применяются языки C, C++, Objective-C и Java. При программировании на Java можно будет порождать классы от объектов Yellow Box, то есть Java, как и Objective-C, является родным языком для Rhapsody, которая поддерживает как основные пакеты Java: AWT, JFC, AFC и IFC, так и собственные API.

Уровень 4. Графический интерфейс пользователя Rhapsody похож на интерфейс Mac OS 8, таким образом, большие возможности этой операционной системы будут сочетаться с традиционной простотой и удобством интерфейса Macintosh.

Apple внесла изменения в свою стратегию развития операционных систем: Rhapsody, которая теперь называется Rhapsody, будет выпущена для PowerPC и x86 только в версии 1.0, и дальнейшего развития этой ОС не планируется. Ранее предполагалось, что Apple будет выпускать две системы: Rhapsody для серверов и мощных рабочих станций и классическую Mac OS для настольных компьютеров, но теперь планируется объединить их в одну - Mac OS X.

Mac OS X отличается от Rhapsody наличием набора API под названием Carbon.

В сегодняшней Mac OS имеется более 8 тыс. API, большАя часть которых отвечает за совместимость с предыдущими версиями ПО, и эта часть системных вызовов абсолютно несовместима с функциями, которыми должна обладать современная ОС. Для того чтобы обеспечить проигрывание существующих программ для Mac OS с использованием всех преимуществ новой системы, а не только в эмуляции Blue Box, было решено избавиться от устаревших API, и новый набор интерфейсов получил название Carbon. Теперь, после двух-трехмесячной доводки, программы для классической Mac OS будут выполняться, используя вытесняющую многозадачность, защищенную память и устойчивость новой системы.

Пользователю, запускающему приложение, будет неважно, где оно выполняется: в Blue Box, Yellow Box или Carbon. Впоследствии планируется объединить Yellow Box и Carbon в единый модуль.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.