

MorphOS — проприетарная многозадачная операционная система (ОС), предназначенная для линейки процессоров PowerPC.
Создание
Происхождение операционной системы уходит корнями в 1995 год, когда компания Phase5 озвучила собственный план обновления парка ПК Amiga, путём миграции на архитектуру PowerPC. (Аналогичное решение приняла Apple Computer для своих ПК Macintosh.) Также существовала необходимость создания новой операционной системы, совместимой с приложениями для классической AmigaOS (m68k). Проект начали в 1999 году независимые германские разработчики Ральф Шмидт и Франк Марьяком, и на данный момент проект развивается при поддержке корпорации Genesi. Релиз MorphOS 1.0 для ПК Pegasos состоялся летом 2002 года, оставив таким образом за спиной 7 лет длительного перехода с процессоров m68k на процессоры PowerPC.
Архитектура
Основой MorphOS является микроядро Quark. Микроядро Quark предполагает систему боксов (Box), позволяющих включать API с абсолютно различными характеристиками в одну ОС. Для того, чтобы иметь максимум программ к моменту своего выхода, MorphOS уже содержала A-Box — программную прослойку, обеспечивающую совместимость с API AmigaOS 3.1. Таким образом, тысячи программ уже работают под MorphOS. В будущем разработчики планируют добавить прослойку Q-Box, обеспечивающую защиту памяти и поддерживающую параллельную работы нескольких процессоров (аппаратных процессорных ядер), виртуальную память и отслеживание ресурсов. Также предполагается, что этот слой позволит одновременно выполнять прикладные программы, написанные для разных ОС (прежде всего BSD, и, возможно, Mac OS X) в одной среде. Эти свойства подчёркнуты в названии операционной системы: Morph (англ.) — означает «изменяющаяся», «подвижная». Также это отразилось и на логотипе: графическим символом ОС является бабочка Blue Morpho butterfly (Morpho menelaus). Также широко используются логотипы, содержащие комбинацию названия ОС и изображения бабочки.
MorphOS допускает исполнение как предназначенного для MorphOS кода, так и кода для WarpOS, PowerUP и AmigaOS 68k. В MorphOS могут выполняться только «системные» приложения для AmigaOS (то есть программы, которые не используют чипсет классической Amiga: OCS, ECS или AGA). Программы, использующие чипсет, можно исполнять в среде эмулятора UAE, регулярно обновляемого для MorphOS.
Вплоть до версии 1.4.5 не были реализованы:
- поддержка технологии AltiVec;
- прослойка Q-Box;
- стек протоколов TCP/IP;
- поддержка 1GB Ethernet, Firewire.
В сравнении со старыми версиями, MorphOS 2.0 претерпела ряд изменений:
- появился стек сетевых протоколов TCP/IP «NetStack»;
- изменилась система управления оперативной памятью. Вместо прежней системы, доставшейся в наследство от AmigaOS и использовавшейся вплоть до версии 1.4.5, реализована система управления TLSF, характеризующаяся малым заданным временем отклика и уменьшенной фрагментацией ОЗУ;
- поддерживается набор инструкций AltiVec;
- появилась поддержка 64-битной архитектуры в файловой системе Smart File System (SFS);
- вместо браузера «Voyager» в комплекте поставляется браузер «Sputnik»;
- для ускорения работы графического интерфейса используются возможности ускорителей трехмерной графики;
- поддерживаются полтора десятка языков, включая русский;
- добавлена возможность выбора загрузочного раздела (как в AmigaOS);
- обновлены USB-стек «Poseidon» и MUI.
Кроме упомянутых выше и неупомянутых здесь изменений и дополнений, существует ещё одно изменение, вызвавшее жаркие споры среди пользователей — MorphOS стала платной.
Последовавшая двумя месяцами позднее версия 2.1 не имеет радикальных отличий от предыдущей версии и содержит в основном исправления ошибок (в том числе — снижавших стабильность работы ОС на платформе Efika) и небольшие обновления.
В версии 2.2 также продолжена линия на оптимизацию и исправление ошибок и добавлено новый функционал — для шифрования дисков. Для видеокарт на основе процессора ATI Radeon по умолчанию включена функция ускорения ГИП аппаратными средствами ускорителя трёхмерной графики.
В версии 2.3, помимо исправлений ошибок и оптимизации, вновь сменился браузер — теперь в комплекте поставляется Orygin Web Browser (OWB). Также, в рамках подготовки к выпуску MacMini-версии MorphOS появилась поддержка файловой системы HFS+ и утилита для расширения функциональности однокнопочной мыши (имитация правой кнопки).
Основное отличие версии 2.4 от предыдущих — поддержка компьютеров MacMini на базе процессоров PowerPC.
В версии 3.0 добавлена поддержка ряда ноутбуков Apple PowerBook. Цена ОС зависит от аппаратной платформы, для которой она регистрируется.
В версии 3.2 появилась поддержка рабочих станций Power Mac G5, ноутбуков iBook G4, расширен список совместимых моделей PowerBook G4. Также улучшена поддержка сетевых интерфейсов, появилась поддержка беспроводных сетей и сбор сетевой статистики, добавились VNC- и RDP-клиенты. К моменту выхода версии 3.2 число зарегистрированных пользователей превысило 2000. По данным регистрации MorpOS наиболее популярна у пользователей Mac Mini (37 %) и Pegasos 2 (25 %).
В версии 3.3 основной упор был сделан на повышение скорости эмуляции и улучшение совместимости со старым ПО для классической Amiga, были исправлены ошибки обнаруженные с момента выхода версии 3.2.
В версии 3.4 улучшена стабильность работы системного таймера на компьютерах Apple, устранена проблема с рассинхронизацией системных часов при длительном времени непрерывной работы (Uptime). Добавлена поддержка карт SATA на чипах Silicon Image SiI3114, реализована встроенная функция блокировки экрана паролем (Password Lock), а также поддержка аппаратного масштабирования экрана для большинства моделей ноутбуков iBook и PowerBook. В драйвере Radeon для чипов серии R300 была добавлена поддержка экранов шириной до 2656 точек, оптимизирована работа с шиной AGP и оверлеями на Power Mac G5. Утилиты для работы с архивами LhA и UnRAR получили поддержку больших файлов и архивов объёмом более 2 ГБ.
В версии 3.5 добавлена поддержка рабочих станций Power Mac G5 модели PowerMac7,2, включены нестандартные разрешения экрана для 17-дюймовых ноутбуков PowerBook G4, улучшен расчёт частот пиксельного генератора (PLL) на Mac mini, оптимизировано энергопотребление и работа подсветки экранов на iBook.
Версия 3.6 принесла существенное расширение аппаратной и сетевой функциональности:
- добавлена поддержка видеокарт серии Radeon R400 (включая управление вентилятором на X800 и 9800XT);
- реализован драйвер беспроводных адаптеров B43 для встроенных чипов Wi-Fi компьютеров Apple;
- включена поддержка микрофона и автопереключение звука (динамики/наушники) на PowerBook и iBook;
- добавлен собственный клиент протокола Samba (SMBFS) с поддержкой 64-битного ввода-вывода;
- появились встроенные клиенты и серверы для удалённого управления: клиент Synergy (позволяющий управлять MorphOS с помощью клавиатуры и мыши другого компьютера под управлением Windows или macOS) и VNC-сервер;
- через `sensors.library` добавлена поддержка современных игровых контроллеров, в том числе геймпада Xbox 360;
- внедрена разделяемая библиотека SQLite 3 (`sqlite.library`);
- браузер Odyssey (бывший OWB) обновлён до версии 1.23, а текстовый редактор Scribble получил продвинутую поддержку систем контроля версий (CVS), свёртку кода (Фолдинг) и автосохранение.
В версии 3.7 основное внимание было уделено стабильности файловой системы SFS при операциях с файлами предельного размера, оптимизации работы сетевого контроллера G5 K2 GMac Phy и исправлению ошибок в системных библиотеках и микроядре Quark.
В версии 3.8 перечень поддерживаемых платформ пополнился материнскими платами ACube Sam460ex на базе процессоров AMCC PPC460EX (для загрузки с их прошивки был разработан загрузчик Hyperbootloader, а также добавлены драйверы чипа SM502 и встроенного Ethernet). Для рабочих станций Power Mac G5 был расширен объём доступной физической памяти до 2 ГБ (с ограничением слоя A-Box в 1,5 ГБ). Видеоподсистема получила поддержку видеокарт серии Radeon X1000 (R500) с использованием AtomBIOS, текстурированных оверлеев и разрешений вплоть до 4K). Также появилась поддержка разделов и дисков объёмом более 2 ТБ, чтение разделов ext4 и exFAT, встроенный сервер Synergy Server, поддержка скриптов на языке Lua и печати через TurboPrint в редакторе Scribble, а библиотека интерфейса MUI была обновлена до версии V21.
Версия 3.9 носила характер корректирующего релиза, направленного на повышение стабильности: исправлена работа шины AGP на PowerMac7,2, устранены проблемы с нестандартными Wi-Fi-кадрами, обновлён OpenSSL (с закрытием уязвимости Logjam) и улучшена работа подсистемы 3D-графики TinyGL со сжатыми текстурами.
Версия 3.10 стала одним из самых масштабных обновлений в истории операционной системы:
- Новая аппаратная платформа: добавлена поддержка материнских плат A-EON AmigaOne X5000 на базе процессоров Freescale QorIQ P5020 и P5040 (архитектура PowerPC e5500);
- Графика: добавлена поддержка 2D-аппаратного ускорения для широкого спектра видеокарт линеек Radeon HD — от серии HD 2000 до HD 6000 (микроархитектуры R600, RV6xx, RV7xx, Evergreen и Northern Islands);
- Архитектура и среда разработки: в систему интегрирована полноценная среда выполнения языка Objective-C (`ob.framework`) и мост к интерфейсной библиотеке (`mui.framework`), что открыло возможность создания современных объектно-ориентированных приложений. Текстовый редактор Scribble был преобразован в полноценную интегрированную среду разработки (IDE) Flow Studio со встроенным отладчиком, управлением проектами C/C++/Objective-C и генерацией сборочных файлов Makefile;
- Пользовательский интерфейс: внедрена библиотека MUI 5 с поддержкой сортировки колонок списков и динамического редактирования. Добавлены векторные иконки формата SVG, внедрена виртуальная корзина на рабочем столе с собственной файловой системой (TrashFileSystem), а графический просмотрщик Showgirls переименован в ShowCase;
- Системные сервисы: системное время переведено на стандарт UTC, добавлена файловая система Ssh2FS (прозрачное монтирование удалённых ресурсов по протоколу SSH/SFTP), реализована поддержка стандарта сканирования SANE с драйверами для десятков чипсетов, добавлены новые стили оформления интерфейса (включая ретро-тему Origo).
В версии 3.11 улучшена поддержка материнских плат AmigaOne X5000 (сетевой драйвер `p50x0_eth.device`), оптимизировано управление кулерами ноутбуков PowerBook, в веб-браузере Odyssey появилась поддержка современных спецификаций CSS3 (Flexbox, CSS Grid, CSS Filters) и блокировка автовоспроизведения медиафайлов, а также добавлена библиотека шифрованного хранения ключей `cryptostorage.library`.
В версии 3.12 реализован ряд ключевых нововведений:
- Многомониторность: в графическую подсистему Cybergraphics и драйвер Radeon внедрена поддержка вывода изображения на несколько дисплеев (Dual-head) для карт семейства R300 (на Power Mac G5 и PowerBook G4);
- Периферия и шины: для компьютеров Apple на архитектурах PPC32 и PPC64 интегрирован стек Helios для работы с интерфейсом FireWire, добавлена поддержка работы с энергонезависимой памятью NVRAM, контроллерами PMU и SMU, а на компьютерах iMac G5 (PowerMac12,1) реализовано динамическое управление частотой процессора в зависимости от нагрузки;
- Интерфейс и локализация: подсистема MUI Area и связанные классы получили полноценную поддержку кодировки Unicode, добавлена поддержка «естественного» направления прокрутки колеса мыши, реализована среда выполнения ObjFW с автоматическим подсчётом ссылок (ARC) для Objective-C;
- Приложения и сеть: браузер Odyssey получил обновлённый компактный интерфейс с объединённой панелью адреса и поиска, поддержку протоколов HTTP/2 и TLS 1.3, интеграцию с системной библиотекой проверки орфографии и обновлённую версию OpenSSL 1.1.1.
В версии 3.13 стиль оформления Origo был назначен темой по умолчанию для всей системы. В шрифтовой подсистеме TTEngine появилось субпиксельное сглаживание шрифтов (Sub-pixel anti-aliasing) и хинтинг, улучшена работа с видеокартами на компьютерах iMac G5 iSight, а для компьютеров Power Mac G5 выпущена специализированная утилита мониторинга и ручной регулировки кулеров PowerMac7FanControl.
В версии 3.14 в микроядро Quark и подсистему Exec была внедрена поддержка механизма локальной памяти потоков (TLS), что существенно упростило перенос многопоточных библиотек и программ, использующих Pthreads и современные версии GCC. В сетевой стек NetStack встроена прозрачная инициализация сокетов для дочерних задач, драйверы видеокарт Radeon адаптированы под матрицы с разрешением 1920×1200 для 17-дюймовых ноутбуков PowerBook, добавлена системная утилита мониторинга ScoutNG, а библиотека совместимости с Unix-окружением `ixemul.library` получила значительное расширение поддержки стандарта POSIX (включая эмуляцию сокетов AF_UNIX).
В версии 3.15 устранены ошибки в реализации деструкторов многопоточного слоя TLS, обновлены сертификаты корневых центров доверия, компоненты OpenSSL 1.1.1i и библиотека рендеринга шрифтов FreeType 2.10.4.
Версия 3.16 принесла масштабную модернизацию пользовательского окружения и программного состава:
- Графические эффекты: в оконную подсистему Intuition и 3D-слой Layers3D внедрены эффекты плавного появления, затухания и полупрозрачности окон (Композитинг), переработана многомониторная навигация с возможностью бесшовного перемещения курсора мыши между разными экранами;
- Новый веб-браузер: в качестве основного системного браузера дебютировал Wayfarer, основанный на современном движке WebKit (WebKitGTK) и сменивший устаревший браузер Odyssey;
- Новый почтовый клиент: в дистрибутив включён современный почтовый клиент Iris с поддержкой протоколов IMAP и современных стандартов шифрования;
- Системные утилиты: добавлены переключатель приложений Expose (вызываемый по комбинации ⌘ Command+Tab ↹), централизованная служба всплывающих системных уведомлений MagicBeacon с панелью настроек, утилита отправки уведомлений из скриптов Shell `SendBeacon`, а также реализована поддержка разделяемой библиотеки OpenSSL 3.0.
Версия 3.17 включила доработки для платформы AmigaOne X5000 (исправление адресации шины PCI Express, индикация активности накопителей), расширила набор параметров наложения текстур в подсистеме OpenGL (TinyGL), улучшила переключение приложений в Expose и повысила стабильность файловой системы виртуальной корзины TrashFS.
Версия 3.18 существенно расширила сетевые и функциональные возможности:
- Поддержка сетевых протоколов: внедрена файловая система Smb2FS, обеспечившая поддержку современных версий протокола Windows-сетей — SMB2 и SMB3. Добавлен обозреватель сетевого окружения NetworksFS с функцией автоматического монтирования сетевых ресурсов Samba и интеграцией с файловым менеджером Ambient;
- Аппаратная поддержка: реализована полноценная поддержка моноблоков iMac G5 (PowerMac12,1), включая раздельное управление кулерами, датчиками, подсветкой экрана и панель настроек Prefs/iMac;
- Новые утилиты и библиотеки: включён специализированный шестнадцатеричный редактор Hex с поддержкой сверхбольших файлов и скриптов на Lua; приложение ArchiveIt для работы с архивами ZIP с поддержкой 64-битного размера файлов и шифрования; утилита мониторинга температур и вентиляторов Thermals; добавлены библиотеки `calendar.library` (с переработанным календарём в MUI), `freeglut.library` и `keyframe.library`;
- подсистема 3D-графики TinyGL получила масштабный комплекс оптимизаций и расширений функционала.
В версии 3.19 была улучшена поддержка платформы Sam460LE, исправлены редкие ошибки синхронизации времени на компьютерах Apple, добавлены профили для новых моделей современных USB-геймпадов, обновлены компоненты OpenSSH до 9.3p2, OpenSSL до 3.1.7 и Poppler до 25.01, а установщик IWizard получил защиту от случайного перезаписывания более новых версий браузера Wayfarer и почтового клиента Iris при обновлении системы.
Юбилейная версия 3.20 стала одним из крупнейших технологических скачков ОС:
- Поддержка платформы Mirari: добавлена базовая поддержка новой процессорной архитектуры Mirari на базе многоядерных чипов NXP QorIQ (включая модуль управления питанием и кулерами ThermalMGMTMirari, сетевой драйвер `qoriq_eth.device` и загрузочные компоненты);
- Преодоление «проблемы 2038 года» и 64-битный ввод-вывод: во всех ключевых подсистемах DOS, файловых системах (Ext2FS, HFS+, NTFS, SgixFS, Smb2FS, XADFS) и POSIX-эмуляторе `ixemul.library` внедрена поддержка дат после 2038 года (Y2038) за счёт перехода на 64-битный тип `time_t`. Библиотека `ixemul` также переведена на 64-битные типы позиционирования и размера файлов (`off_t`, `fpos_t`), сняв ограничение на максимальный размер обрабатываемых файлов в портированном ПО;
- Файловые системы и накопители: включена поддержка файловой системы SFS2 (SmartFileSystem 2), позволяющей создавать разделы объёмом до 2 ТБ и работать с файлами больше 4 ГБ. Внедрена поддержка распознавания разделов на дисках с разметкой GPT, добавлена сервисная утилита SMARTDoctor и апплет панели задач для отслеживания состояния накопителей по технологии S.M.A.R.T.;
- Драйверы видеокарт Radeon: проведена масштабная модернизация драйвера Radeon. Добавлена поддержка видеокарт на базе микроархитектуры GCN — семейств Southern Islands (GCN 1.0) и Sea Islands (GCN 2.0, чипы Bonaire, Radeon R7 240), мобильных версий Radeon Mobility, поддержка до шести независимых контроллеров дисплеев, обновлённого AtomBIOS, шины PCI Express DMA для карт Cayman/GCN, аппаратного тинтинга и вывода через DisplayPort, HDMI и DVI;
- 3D-графика (TinyGL): существенно расширен функционал библиотеки TinyGL: добавлена поддержка внеэкранного рендеринга и буферов кадра (FBO), кубических карт (Cubemaps), 1D-текстур, асинхронных загрузок вершинных буферов через DMA, расширен спектр поддерживаемых шейдерных инструкций и оптимизировано управление видеопамятью;
- Новые утилиты и мультимедиа:
- браузер Wayfarer обновлён до версии 11.3 (на базе современного движка WebKitGTK 2.50.4), а почтовый клиент Iris — до версии 1.53, получив приложение-компаньон Iris Contacts для синхронизации адресной книги по протоколу CalDAV (включая контакты iCloud и Gmail);
- внедрена библиотека `thorvg.library` (Thor Vector Graphics) для высокопроизводительного рендеринга векторных сцен и SVG-графики;
- в мультимедийный фреймворк Reggae добавлены декодер и демуксер формата сжатия аудио без потерь FLAC, а также поддержка современного компактного формата изображений QOI (Quite OK Image);
- добавлены новые служебные утилиты: `DriveImager` (запись и снятие образов дисков формата ISO), `MirrorBackup` (резервное зеркалирование файлов), `Automator` (управление и инспекция GUI-приложений MUI из скриптов Shell), а также консольные утилиты `OFArc`, `OFDNS`, `OFHash`, `OFHTTP` и `MirrorCopy`;
- добавлена разделяемая библиотека `openssl4.library` на базе релиза OpenSSL 4.0.
Составляющие MorphOS
- Ambient — рабочий стол наподобие Workbench в AmigaOS, Wanderer в AROS или Windows;
- Cybergraphics — поддержка стандарта RTG (управляемый вывод изображений на любое число видеоустройств);
- TinyGL — открытый вариант API, совместимого с OpenGL;
- RAVE — открытый вариант API, совместимого с Warp3D;
- MUI — объектно-ориентированный интерфейс для приложений AmigaOS и MorphOS;
- PowerSDL — реализация Simple DirectMedia Layer (SDL);
- Trance JIT — эмулятор, исполняющий код процессоров m68k в реальном времени, транслируя его в код PowerPC;
- Q-Box — управление функциями операционной системы на низком уровне. Дальнейшая разработка в настоящее время заморожена;
- A-Box — PowerPC API, обеспечивающее совместимость с приложениями AmigaOS (аналогично AROS для x86). Развитие этой «песочницы» является приоритетным.
Аппаратные требования
MorphOS работает как на компьютерах, основанных на материнской плате Pegasos, так и на классических компьютерах Amiga, оборудованных PPC-акселераторами. Кроме того, MorphOS также существует для MobileGT и ряда плат, производимых Freescale Semiconductor.
MorphOS 2.х также поддерживает платформу Efika, а начиная с версии 2.4 — компьютеры Mac mini на базе процессоров PowerPC.
Начиная с версии 2.6 MorphOS поддерживает компьютеры серии PowerMac.
MorphOS 3.x в значительной степени нацелена на расширение поддержки PPC-совместимых компьютеров. Например, список совместимости в MorphOS 3.9 по платформам выглядит так:
- Amiga PPC: Pegasos 1 & 2, EFIKA, Sam460, ACube AmigaOne 500
- Mac PPC: eMac, iBook G4, PowerBook G4, Mac mini G4, Power Mac G4, Power Mac G5, PowerMac Cube
Примечания
Ссылки
- Официальный сайт Genesi Архивная копия от 12 августа 2006 на Wayback Machine (англ.)
- MorphOS: Со скоростью молнии! (рус.)
- MorphOS в деталях Архивная копия от 5 апреля 2007 на Wayback Machine (рус.)
- The New MorphOS Memory System by Harry «Piru» Sintonen Архивная копия от 13 февраля 2009 на Wayback Machine (англ.) (перевод на русский Архивная копия от 4 марта 2016 на Wayback Machine)
