MorphOS в деталях (v2.2)

MorphOS in Detail

Авторы: Ulrich Beckers, Nicholas Blachford

© v2.2 Ulrich Beckers, 1 декабря 2007
Русский перевод v2.2: Vlad Vinogradov, 9 декабря 2007

Целью этого документа ставится описание MorphOS: история развития, структура работы, планы на будущее. Особая благодарность команде разработчиков MorphOS, рабочего стола Ambient, и Genesi за помощь.

Содержание

  1. Вступление
  2. Прошлое: История MorphOS
  3. Аппаратная часть
       3.1 Pegasos
       3.2 Efika
  4. Настоящее: Структура MorphOS
  5. Настоящее: A-Box I - Общее представление
  6. Настоящее: A-Box II - Модуль изнутри
  7. Будущее: Q-Box
  8. Дополнительная информация

1. Вступление

MorphOS - абсолютно новая операционная система для PowerPC RISC-процессоров, которая предназначена в первую очередь для PowerPC-компьютеров от Genesi/bplan (включая серии плат Pegasos и Efika).

MorphOS v1.4.5 свободно доступна для всей серии материнских плат Pegasos после бесплатной регистрации (www.morphos-team.net). Специальный дистрибутив MorphOS v1.4.5 также свободно доступен для Amiga-компьютеров с акселераторами CyberstormPPC и BlizzardPPC (от phase5). Эта версия распростраяется "как есть" без дальнейшей поддержки, однако посильные материальные пожертвования всегда будут желанны. В настоящее время MorphOS адаптируется под процессор MPC5200, на базе которого создана небольшая материнская плата Efika, после чего в ближайшую версию дистрибутива MorphOS будет добавлена поддержка этих плат.

Также испытания проходили на платах Mai Logic Teron CX и Teron PX, однако выпуск версии для этих систем не запланирован. В будущем MorphOS будет также работать и на других OpenFirmware-основанных PowerPC-машинах.

В настоящее время MorphOS работает на PowerPC-процессорах 603e, 604e, 750, 5200, 7400, 7447 и 7447A от Motorola и IBM.

MorphOS по своей сути - удачный гибрид старого и нового. Происхождение системы уходит корнями в 1995 год, когда у фирмы Phase5 появился план использования Amiga и PowerPC, и мысли о новой собственной полноценной операционной системе, обеспечивающей также совместимость со старыми Amiga-программами.

Непосредственно проект MorphOS начался в 1999 году с целью создать систему, вобравшую в себя самые хорошие качества из AmigaOS, получив новую операционную систему "morpht". В дальнейшем цель немного поменялась, чтобы стать по-настоящему современной системой, прогрессивной, которая бы обладала совместимостью с существующими программами посредством Box-модулей.

2. История MorphOS

Для полноты обзора этот раздел рассказывает о том, как начинался и развивался проект MorphOS.

Amiga свой длинный и трудный путь к PowerPC-процессорам начинала в 1995 году. В то время были и другие подобные проекты, но в итоге MorphOS v1.0 появилась только летом 2002 года.

В сентябре 1995 года у Phase5 появились планы по внедрению PowerPC-процессоров в Амигу. Amiga Technologies и Phase5 заключили соглашение о плане перехода Амиги с процессоров Motorola 680x0 (68k), прекращающих своё развитие, на PowerPC-процессоры. Это было началом проекта PowerUP, который позже вылился в развитие MorphOS.

К несчастью это соглашение оказалось краткосрочным, так как Amiga Technologies (дочерняя фирма от Escom) обанкротилась. Проект всё же не умер, и Phase5 решила продолжить его осуществление. В 1997 году он привёл к созданию серии PowerUP-акселераторов (Phase5), впервые предоставляя Амиге RISC-технологии. Программы работали, используя оба процессора 68k и PowerPC (в основном для интенсивных арифметических вычислений) посредством PPC-нативной библиотеки.

Phase5 строила большие планы и заключала соглашения с различными фирмами, но чёрная полоса неудач постоянно их преследовала, и фирмы закрывались так и не успев начать воплощение планов в жизнь. В конце концов, в феврале 2000 года волна накрыла и саму Phase5, приведя к банкротству. Позже была основана новая фирма bPlan, взявшая на себя продолжение развития проекта MorphOS, и создание для него нового аппаратного решения - Pegasos. MorphOS и Pegasos должны были разрабатываться как абсолютно самостоятельная система, и обходиться без каких-либо составных частей AmigaOS или Amiga-железа.

После огромной работы в 2000 году была выпущена первая бета-версия новой системы для владельцев PowerUP-карт.

Выпуск MorphOS v1.0 для PowerPC-основанного Pegasos состоялся летом 2002 года, оставив таким образом за спиной 7 лет длительного перехода от 68k-систем к полноценной PowerPC-системе. С этой версии MorphOS больше не нуждалась в каком-либо Amiga-железе или AmigaOS-программном обеспечении, сохранив в себе дружеский дух Амиги и те же ощущения от компьютера, который работает быстро и непринуждённо!

Текущая версия MorphOS v1.4.5 от 30 мая 2005 года дала существенное расширение функциональности в сравнении с v1.0, устранив также ошибки. Рабочий стол Ambient, находящийся под открытой GPL-лицензией, постоянно развивается и оптимизируется, текущая версия 1.43.

3. Аппаратная часть

3.1. Pegasos

MorphOS сильно привязана к аппаратному проекту "Pegasos". Более того, MorphOS, как современная операционная система, нуждается в современном железе. Именно для этого и был создан Pegasos. Однако MorphOS не единственная система для него.

Pegasos представляет собой открытую современную компьютерную архитектуру, которая соответствует CHRP-стандарту, и преподносится в качестве Платформы с Открытой Архитектурой (OPA - Open Platform Architecture) как новый стандарт для PowerPC-основанных компьютеров. В качестве основных процессоров выбраны модели IBM 750CX (G3) с тактовой частотой 600 Mhz или Motorola MPC7447RXLB (G4) на 1000 Mhz.

Прошивка системы "SmartFirmware" - расширенная версия OpenFirmware по стандарту IEE 1275-1994. Таким образом, можно легко приспособить другие операционные системы под Pegasos.

Летом 2002 года начали продаваться первые компьютеры Pegasos, оснащённые процессором G3 на 600 Mhz с шиной 100 Mhz. В использованном при сборке северном мосте ArticiaS (A660BNGP) от Mai Logics были обнаружены ошибки, которые в декабре 2002 года были устранены с помощью разработанного чипа April. Позже была и вторая модификация April2, обеспечивающая хорошую работу ArticiaS. Но всё же затраты на северный мост были высоки и его применение оставалось под вопросом.

Таким образом, весной 2003 года на выставке CeBIT в Ганновере была анонсирована материнская плата с более эффективным северным мостом от Marvell. В декабре 2003 года пришло время показать миру новый компьютер Pegasos II, обладающий следующими особенностями:

Производство Pegasos II было остановлено в июле 2006 года из-за несоответствия новому закону стран ЕвроСоюза об ограничении использования опасных материалов (RoHS).

3.2. Efika

Efika - это серия миниатюрных материнских плат на базе PowerPC SoC ("Система на чипе", то есть чип содержит не только центральный процессор, но некоторые системные компоненты, такие как контроллер памяти, PCI-мост, IDE-контроллер).

Efika1 основана на процессоре MPC5200B SoC от Freesacle, и имеет размер 118x153мм с высотой 38мм. Процессор выполнен на PowerPC-ядре e300 (совместимый с 603e включая FPU), который работает с тактовой частотой 400Mhz, обладая производительность 760MIPS. В материнскую плату интегрированы:

Также в разработке находится плата Efika2 на базе процессора MPC5121 от Freescale. MPC5121 построен на таком же ядре, но с более быстрой шиной в 200Mhz. Efika2 обладает USB 2.0, SATA-интерфейсом, увеличенным размером памяти. Ориентировочно плата будет доступна в первом полугодии 2008 года.

4. Структура MorphOS

Система MorphOS основана на микроядре Quark, на котором в настоящее время работают два глобальных "Модуля": первый A-Box находится в финальной фазе развития, второй Q-Box ещё в стадии разработки.

На текущий момент наибольшие усилия направлены на развитие A-Box. Работа над дизайном Q-Box уже сделана, миграция на него начнётся постепенно.

A-Box позволяет выполнять Amiga RTG/A (Re-Targetable Graphics/Audio) приложения. A-Box предлагает быструю и точную работу, основываясь на 100% PowerPC-нативном коде переписанной AmigaOS v3.1 (в дальнейшем AOS). JIT (Just-In-Time рекомпилятор) является 68k-эмулятором, обеспечивающим необходимую совместимость для старых AOS-приложений.

Q-Box будет новым модулем, значительно превосходящим возможности A-Box. Он будет нуждаться в собственных программах, но с совместимостью с Amiga-приложениями через A-Box, образующими хорошую основу для MorphOS несмотря на то, что Q-Box ещё находится в развитии.

Также не исключается, что в будущем будут созданы новые Модули, обеспечивающие совместимость с другими операционными системами. Наиболее приоритетным, вероятно, будут Модули для совместимости с Unix/Linux или BeOS-приложениями. Стоит сказать, что это лишь одна из возможностей MorphOS, и перед добавлением совместимости нужно хорошенько всё продумать, однако в настояшее время конкретных планов нет.

5. A-Box I - Общее представление

Первоначально MorphOS преследует цель быть приспособленной для современного железа, и быть системой, ушедшей дальше принципов AmigaOS, при этом оставаясь совместимой с ней.

Пользователи, конечно, могут использовать эмуляторы на других операционных системах для запуска оригинальных приложений AmigaOS 1.x - 3.x. Эти эмуляторы обеспечивают эмуляцию 68k-процессоров и custom-чипов. Эмуляция вроде бы достаточно полная и точная, но в процессе эмуляции теряется возможность выполнения программ родной OS, под которой запущен эмулятор. Также эмулируемая система привязана к стандартным функциям AOS 3.x, и никакие обновления или расширения функций не предоставляются.

MorphOS это не эмулятор, а AmigaOS 3.x совместимая операционная система на уровне системных вызовов (API). A-Box содержит абсолютно точный AOS 3.1 API, созданный используя публично доступную документацию. Несколько компонентов системы было улучшено благодаря открытому проекту AROS. API писалось и компилировалось под PowerPC, так что система является PPC-нативной на 100%. Кроме того, имеется прозрачный 68k-эмулятор для существующих 68k-программ. КПД работы эмулятора значительно возрастает из-за использования динамического рекомпилятора JIT, на лету превращающего 68k-код в PowerPC-код, сохраняя его в кэше. Помимо нативности, A-Box быстрее своего оригинала за счёт применения других технологий и оптимизаций.

Для достижения наивысшей скорости работы старых программ, они должны быть заново скомпилированы для PowerPC/MorphOS, например, используя Средства Разработки Программ (SDK) под MorphOS. SDK даёт возможность портировать Amiga-приложения в нативный PowerPC-код без лишних проблем, и использовать всю мощь процессоров PowerPC.

Но здесь есть один важный нюанс - нет никакой эмуляции custom-чипов Амиги. Следовательно, MorphOS не сможет выполнять приложения, требующие их. Хотя это не такая большая проблема, как могло бы показаться, потому как даже старые приложения под AOS 2.0 (1990 год) уже могли использовать стандартные API-вызовы, не зависящие от железа. Если пользователь всё же хочет запускать приложения, требующие custom-чипы (например, старые игры), то можно воспользоваться UAE (вездесущий эмулятор Амиги), который полностью эмулирует всё железо Амиги, и существует на различных платформах, включая MorphOS.

Первоначально AmigaOS работала на системах, устаревших по сегодняшним меркам, используя лишь небольшую крупицу вычислительной силы, которая доступна в современных процессорах. Скорость работы Амиги исчислялась в MIPS (миллионы инструкций в секунду). Сегодня даже IBM G3 600MHz работает в более 1000 раз быстрее (по MIPS), чем оригинальный 68000, работавший в Амигах, а скорость G4 1Ghz соответственно ещё быстрее. Несмотря на это AOS до сих пор довольно быстра и не заставляет пользователя ожидать её действий, быстро откликаясь на все события. Следовательно, при PPC-нативности модуля A-Box (что только увеличивает его скорость работы) поведение отклика системы MorphOS на Pegasos и Efika покажется необычайно быстрым, например, для PC-пользователей, особенно если сравнивать с пропорциональными x86-системами с тактовой частотой процессора 400-1000MHz.

6. A-Box II - Модуль изнутри

Структура системы в пределах Модуля соответствует значительно более расширенной структуре AOS 3.1. Ниже даётся краткий обзор некоторых составных частей A-Box.

Поддержка файловых систем
MorphOS поддерживает несколько файловых систем (другие могут поддерживаться через дополнительные драйвера):

Жёсткие диски:

CDRom-приводы:

Графическая система
Графическая система базируется на Cybergraphics (CGX) и полностью абстрагирована от аппаратной части, дополнительными особенностями служат прозрачность окон, возможность их перемещения за край экрана, оверлей. Поддержка 3D-графики осуществляется через Rave3D API, а также Warp3D API для совместимости с соответствующими приложениями. Поддержка 3D-системы OpenGL 1.4 прозрачно осуществляется через "JunGL".

В следующей версии MorphOS будет обладать аппаратной поддержкой в CGX, что значительно повысит рабочие характеристики графической системы (скорость и функции).

MUI - Magic User Interface
MUI является графическим интерфейсом в MorphOS. По сравнению с предыдущей версией, MUI был довольно сильно расширен, портирован под PowerPC, и интегрирован в операционную систему. Большинство MorphOS-приложений уже используют MUI, и разработчики не перестают рекомендовать его применение.

MUI предлагает множество уже готовых классов для использования в собственных разработках программистов, однако, естественно можно создавать и добавлять свои новые классы.

AHI
Аудио-система также расширена добавлением AHI - независимым от аппаратной части API с аудио-функциями. Таким образом, приложения могут пользоваться преимуществами современного аудио-железа.

Рабочий стол Ambient

Рабочий стол MorphOS называется Ambient, который поддерживает такие возможности графической системы, как 24-битное отображение и прозрачность. Отображение содержимого окна во время его перемещения - это другая из особенностей графической системы, используемой в Ambient. Интерфейс системы основан на MUI, что делает Ambient глубоко настраиваемым. Система иконок совместима со всеми иконками из AmigaOS 3.x, дополнительно предлагая поддержку для 24-битных PNG-иконок. Сглаживание векторных и растровых шрифтов также полностью поддержано. Файловый менеджер и программы просмотра файлов довольно разнообразны по своим возможностям, и поддерживают в том числе функции copy&paste и drag&drop, а также MIME-распознавание файлов.

С 22 января 2005 года Ambient имеет GPL-лицензию распространения, и разрабатывается MorphOS-Team (подробную информацию и обновления ищите в разделе Дополнительная информация [3]). В качестве альтернативы Ambient может быть заменён другими совместимыми рабочими столами для MorphOS (например, Scalos или Nemesis).

Наследственная PPC-поддержка
Приложения, написанные под PowerUP (ppc.library) и WarpOS, способны также работать и под MorphOS.

Прочее
MorphOS имеет встроенный и довольно мощный USB-стек (Poseidon), а также высококачественную поддержку принтеров через встроенный в систему пакет Turboprint.

Консоль командной строки также была существенно расширена. В состав системы входят многочисленные библиотеки, типы данных, утилиты (PDF-просмотрщик, MP3-плеер, и так далее), инструменты, и прочее. Прежние версии MorphOS снабжались web-браузером Voyager, а начиная со следующего выпуска будут поставляться вместе с web-браузером Sputnik (MUI-интерфейс, на базе KHTML) и TCP/IP-стеком. Пакет программ Superbundle включает в себя несколько нативных пакетов программ и игр, и поставляется вместе с системой, или скачивается отдельно.

На этом список разумеется не останавливается.

Скорость и отзывчивость
Когда в 1985 году AmigaOS вышла на рынок, она была весьма прогрессивной системой, и уже содержала вытесняющую многозадачность как одну из своих особенностей, другие системы (Windows, MacOS) получили её значительно позднее. По сравнению с современными операционными системами, AmigaOS имеет несколько критических недостатков, в частности нет защиты памяти и поддержки виртуальной памяти.

Поскольку MorphOS имеет точную спецификацию структуры AOS 3.1 API, дизайн A-Box фактически был предопределён и не мог изменяться радикально. Поэтому A-Box имеет те же самые ограничения, что и AmigaOS. Некоторые из ограничений слишком сложно устранить, а порой даже невозможно не потеряв в совместимости с существующими приложениями. Однако, всё это касается только A-Box, а не MorphOS. Q-Box таких проблем иметь не будет.

7. Q - Будущее MorphOS

Q-Box
До сих пор развитие было сконцентрировано на A-Box. Учитывая ядро "Quark" развитие A-Box в MorphOS может значительно расшириться в будущем.

Q будет состоять из расширенного ядра Quark, ряда серверов для различных функций и Q-Box, в котором будут работать приложения. Ядро Quark довольно небольшое, и обеспечивает абстракцию аппаратных средств, драйвера, управление памятью и передачу сообщений. Основная работа осуществляется серверами, как-то сетевая поддержка, файловая система, графический интерфейс, носители информации, защита, 2D/3D графика, и так далее.

Приложения, работающие в Q-Box, будут делать API-вызовы через систему сообщений. API не будет ограничен одним языком программирования, так что разработчики программ не будут вынуждены изучать новый язык. Передача сообщений очень быстра: вместо передачи данных в сообщение, месторасположение памяти этого сообщения проектируется на соответствующее приложение. Небольшие сообщения копируются напрямую, поскольку этот метод быстрее для очень малых количеств данных.

Масштабность и другие аспекты
Система сообщений делает MorphOS крупномасштабной системой. Компоненты, посылающие и получающие сообщения, могут работать на разных процессорах, или даже на физически разных компьютерах, все сообщения будут доходить. Используя такой метод могла бы быть реализована, например, оконная система, работающая в сети (наподобие X-Window), но очевидно более чувствительная с быстрым временем ответа.

Распределённая возможность Q-системы сообщений означает кластерную структуру. Приложения, которые будут нуждаться в большом числе процессоров, относительно просты в написании под Q. Единственное требование для крупных приложений - большое количество памяти. Рабочие станции и большие серверы уже много лет 64-битные. С недавних пор 64-битные системы достигли уровня потребителя, в то время как A-Box ограничен 32 битами. Q не будет иметь этого ограничения.

Микроядро против Макроядра
Скорость - общая проблема, с которой сталкиваются при разработке операционных систем на микроядре. Это происходит из-за необходимости процессора постоянно переключаться между процессами ядра и пользователя. Переключение становится узким местом, отражаясь на общей скорости. В итоге многие операционные системы, изначально основанные на микроядре, переходят в ряды систем на макроядре, перенося свои функциональные возможности внутрь ядра системы. Например, Microsoft переместила графическую систему и работу с сетью в ядро Windows NT, а Linux изначально строился на макроядре и всё это уже имеет внутри. Эта технология даёт прирост скорости, но только за счёт потерь в многозадачности, стабильности и защиты, так как различные процессы ядра потенциально могут перезаписывать память поверх друг друга.

Учитывая вышесказанное, логичным был бы вопрос: "Почему Q основывается на микроядре и, тем не менее, ожидается прекрасная скорость работы?". Ответ лежит в том факте, что MorphOS работает на PowerPC-процессорах, а не на x86. Всё вышеописанное является только проблемой x86-архитектуры, заставляя "платить" за переключения ядра. Переключение в PowerPC происходит в 10 раз быстрее, и подобно скорости вызова подпрограмм. Это означает, что PowerPC-операционная система может пользоваться всеми преимуществами архитектуры микроядра, без задержек из-за медленного переключения. Поэтому x86-версии MorphOS в планах не значится. Даже если это и случится когда-нибудь, то без существенных внутренних изменений здесь не обойтись.

Переход
Ядро Quark и Q уже сейчас представляют основу MorphOS, но с некоторыми ограничениями абстракции аппаратной части, ExceptionServer, MasterClanServer, AddressServer, ConfigServer, CPUTimeServer, SystemInit. SystemInit - процедура ядра, кроме всего прочего запускающая A-Box. Quark также обеспечивает полную защиту памяти, ресурсов, ресурстрекинг (Tracking) и многопроцессорность (SMP).

Часть Q находится в стадии планирования, основные детали уже решены, но небольшие изменения ещё возможны. Например, драйверы сейчас включены в A-Box, где они могут обращаться непосредственно к железу. В будущем драйверы будут перенесены в ядро Quark, где они будут независимы от A-Box или любого другого Модуля. В этом есть своё преимущество, так как драйверы можно будет использовать из любого Модуля.

В чём подвох?
Большая часть информации о Q-Box ещё не утверждена и находится где-то в будущем, что может привести к мыслям о готовящемся подвохе. Мы разъяснили здесь только наши цели и способы их достижения. Для компьютерного мира изменение вещей является нормальным, и эта тема не исключение. Разработка сложных комплексных систем всегда требует много времени, и мы стремимся как можно быстрее выпустить нашу систему на рынок. С материнской платой Efika целевой аудиторией MorphOS становится рынок встраиваемых систем и низкого потребления энергии, характерные черты Q поначалу здесь не будут иметь большого приоритета.

Пройдёт ещё некоторое время, пока Q станет настолько прогрессивной, чтобы выйти к пользователям. А до тех пор A-Box предлагает удивительно дружественную систему, эффективную для повседневной работы, подготовленную для будущих расширений.

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

8. Дополнительная информация

[1] Дополнительные детали о материнских платах Pegasos и Efika: www.pegasosppc.com или русское зеркало www.pegasos.org.ru

[2] Больше информации о MorphOS на сайте: www.morphos-team.net

[3] GPL-проект Ambient: morphosambient.sourceforge.net

[4] MobileGT от Freescale: www.freescale.com/webapp/sps/site/overview.jsp?nodeId=02Wcbfwp3h&tid;=tAhl

[5,6] Дополнительные детали о MorphOS, новости и ссылки смотри на: www.morphos-news.de и/или www.morphzone.org

История версий
v1.1 © Nicholas Blachford, Thendic-France SARL, 16 ноября 2002
v2.0 © Ulrich Beckers, Genesi SARL Luxemburg, 27 февраля 2004
v2.1 © Ulrich Beckers, Genesi SARL Luxemburg, 12 апреля 2005
v2.2 © Ulrich Beckers, 1 декабря 2007

Все упомянутые названия и торговые марки являются собственностью их соответствующих владельцев.