Трудно представить более любимый и почитаемый пользователями ПК, чем Amiga. Этот опередивший свое время домашний компьютер подарил нам демосцену, трекерную музыку, механизм plug’n’play и, конечно же, AmigaOS, операционку, которая в форме независимого AROS продолжает развиваться и по сей день. Но действительно ли это заслуживающая внимания система, а не просто ностальгический проект фанатов Amiga?
 

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

В 1982 году, когда миром персональных компьютеров правили Apple II, Atari 400 и IBM PC на процессоре Intel 80186, бывшие инженеры компании Atari во главе с Джеем Майнером (Jay Miner) начинают разработку принципиально нового компьютера, который должен был оставить далеко позади все остальные ПК того времени.

Так в 1985 году на свет появляется Amiga 1000, действительно революционный компьютер, способный выводить на экран изображение разрешением 640 ✕ 512 и 4096 цветов, воспроизводить стереозвук из четырех независимых аппаратно микшируемых каналов и одновременно работать с несколькими приложениями, запущенными в многозадачной операционке с оконным интерфейсом.

Amiga 1000
Amiga 1000

Модель Amiga 1000 была оборудована развитым видеопроцессором Denise, который позволял работать с восемью аппаратными спрайтами (в том числе привязать спрайт к мыши для отображения курсора без лагов при перемещении), плавно скроллить экран и даже накладывать изображения друг на друга с использованием альфа-канала.

Amiga стоила вдвое дешевле, чем сравнимый IBM PC на 286-м процессоре, — две тысячи тогдашних долларов против четырех. И при этом не оставляла ему никаких шансов на конкуренцию в сфере мультимедиа. Не удивительно, что Amiga быстро завоевала популярность среди обычных пользователей и компаний, работающих с графикой и звуком.

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

Цветовая палитра AmigaOS 1.0 была выбрана в расчете получить хороший контраст даже на самых дешевых телевизорах
Цветовая палитра AmigaOS 1.0 была выбрана в расчете получить хороший контраст даже на самых дешевых телевизорах

Amiga стремительно завоевывала популярность, поэтому, кроме Amiga 1000, в последующие годы было выпущено множество других моделей компьютера, включая еще более дешевую модель Amiga 500. Далее последовала Amiga 2000 с пятью слотами расширения и функцией Autoconfig (которая больше известна нам в реализации Microsoft под названием plug’n’play), Amiga 3000 с более производительным процессором и большим объемом памяти и, наконец, Amiga 4000, способная отображать 262 144 оттенка.

Вместе с Amiga развивалась и AmigaOS. Версия 2.0, выпущенная в 1990 году для Amiga 1200 и 3000, избавилась от яркой палитры, стандартизовала пользовательский интерфейс и позволила разработчикам создавать развитые графические интерфейсы с помощью объектно ориентированного API BOOPSI (Basic Object Oriented Programming System for Intuition).

В версии 3.0 появилась концепция datatypes, очень похожая на трансляторы BeOS/Haiku. Datatypes позволяли добавлять в систему поддержку новых типов файлов созданием библиотеки, реализующей специальный API. После этого все приложения, как системные, так и сторонние, могли работать с этим типом файлов.

В 1995 году, вскоре после выпуска версии 3.1, компания Commadore, выпускавшая Amiga, обанкротилась, а права на операционку начали переходить из рук в руки. Через шесть лет разработку ОС продолжила компания Haage & Partner (версии 3.5, 3.9), а с версии 4.0 ей начала заниматься Hyperion Entertainment.

Последняя на сегодняшний день версия Amiga OS 4.1 Final Edition Update 1 была выпущена 31 декабря 2016 года, но работать она может только на машинах с процессорами PowerPC: Blizzard PPC, AmigaOne, Pegasos II, Samantha. Фактически это уже не настоящая Amiga, а вполне стандартные «башни», выпускаемые разными компаниями. К тому же даже самые мощные из них остаются далеко позади современных x86-систем.

 

Причудливая архитектура AmigaOS

AmigaOS родилась аккурат в то время, когда в мире начала распространяться идея микроядерной ОС. Суть идеи заключалась в том, чтобы вынести большинство компонентов ядра из привилегированного адресного пространства памяти в пользовательское, а для связи между ними использовать типизированные каналы. Такая архитектура гарантирует, что, если в драйвере мыши (или любом другом драйвере или компоненте ядра) будет допущена ошибка, которая приведет к его падению, он не потянет за собой все ядро, а просто упадет, как обычное приложение, и его можно будет перезапустить.

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

Разработчиков AmigaOS эти ограничения не остановили, да и не могли остановить. В процессоре Motorola MC68000 просто не было модуля MMU, который бы позволил разделить адресное пространство процессов и ядра. Как следствие, бесконечное копирование памяти уже не требовалось, а переключений контекста не существовало как класса.

Так AmigaOS стала микроядерной ОС, в которой использование микроядра не имеет никакого смысла. Из-за отсутствия блока MMU доступ к страницам памяти никак не разграничивался, и операционка могла упасть не только из-за ошибки в драйвере, но и по причине бага в обычном приложении! Программисту достаточно было всего лишь ошибиться в адресе перехода или записать данные немного не туда, и привет, Guru Meditation (местный «экран смерти»)!

Guru Meditation
Guru Meditation

Подробнее об истории AmigaOS читай в статье «Как появилась AmigaOS и что с ней стало теперь».

 

AROS

Пока крупные компании делили шкуру убитой Commadore и спорили, кому принадлежат права на исходники AmigaOS, небольшая группа разработчиков решила воссоздать операционку с нуля и портировать ее не только на оригинальную Amiga, но и на стандартный IBM PC. Так появилась AROS (AROS Research Operating System), открытая ОС, полностью совместимая на уровне исходного кода с Amiga 3.1 и бинарно совместимая с ПО для Amiga, если установить ее на одну из оригинальных моделей Amiga.

AROS активно развивается и сейчас, так что не попробовать эту экзотику было бы преступлением против тех, кто помнит и любит Amiga. Операционка доступна в четырех вариантах:

Существует еще несколько дистрибутивов разной степени жизнеспособности. К примеру, сборка для Raspberry Pi и некоторых других компьютеров. Мы же посмотрим на Icaros Desktop, последняя версия которого была выпущена в декабре 2016 года. Именно эта сборка в теории должна показать современную AmigaOS во всей красе.

Icaros можно юзать как в режиме Live CD, так и установив на жесткий диск или флешку. Операционка прекрасно работает внутри VirtualBox, а при запуске на реальном железе использует аппаратное 3D-ускорение адаптеров GeForce 5+ и Intel GMA. Также поддерживается USB 2.0 и ряд наиболее распространенных сетевых адаптеров.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


4 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

А ты знал? 10 фактов о Python

Python — язык программирования с достаточно низким порогом вхождения, поэтому его часто вы…