Немного истории
В 1982 году, когда миром персональных компьютеров правили Apple II, Atari 400 и IBM PC на процессоре Intel 80186, бывшие инженеры компании Atari во главе с Джеем Майнером (Jay Miner) начинают разработку принципиально нового компьютера, который должен был оставить далеко позади все остальные ПК того времени.
Так в 1985 году на свет появляется Amiga 1000, действительно революционный компьютер, способный выводить на экран изображение разрешением 640 ✕ 512 и 4096 цветов, воспроизводить стереозвук из четырех независимых аппаратно микшируемых каналов и одновременно работать с несколькими приложениями, запущенными в многозадачной операционке с оконным интерфейсом.
Модель Amiga 1000 была оборудована развитым видеопроцессором Denise, который позволял работать с восемью аппаратными спрайтами (в том числе привязать спрайт к мыши для отображения курсора без лагов при перемещении), плавно скроллить экран и даже накладывать изображения друг на друга с использованием альфа-канала.
Amiga стоила вдвое дешевле, чем сравнимый IBM PC на 286-м процессоре, — две тысячи тогдашних долларов против четырех. И при этом не оставляла ему никаких шансов на конкуренцию в сфере мультимедиа. Не удивительно, что Amiga быстро завоевала популярность среди обычных пользователей и компаний, работающих с графикой и звуком.
Не последнюю роль в популярности Amiga сыграла AmigaOS, написанная с нуля операционка с микроядерной архитектурой. AmigaOS была многозадачной, то есть позволяла работать сразу с несколькими приложениями и четко разделяла ядро на множество мелких компонентов, которые загружались в память независимо друг от друга. Каждый компонент выполнял определенную функцию (драйверы, файловые системы и так далее), а взаимодействовали они с помощью каналов.
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 (местный «экран смерти»)!
Подробнее об истории AmigaOS читай в статье «Как появилась AmigaOS и что с ней стало теперь».
AROS
Пока крупные компании делили шкуру убитой Commadore и спорили, кому принадлежат права на исходники AmigaOS, небольшая группа разработчиков решила воссоздать операционку с нуля и портировать ее не только на оригинальную Amiga, но и на стандартный IBM PC. Так появилась AROS (AROS Research Operating System), открытая ОС, полностью совместимая на уровне исходного кода с Amiga 3.1 и бинарно совместимая с ПО для Amiga, если установить ее на одну из оригинальных моделей Amiga.
AROS активно развивается и сейчас, так что не попробовать эту экзотику было бы преступлением против тех, кто помнит и любит Amiga. Операционка доступна в четырех вариантах:
- ночные сборки для платформ x86 и ARM — включают в себя только саму операционку и базовый набор софта (размер от 2 до 135 Мбайт);
- ночные сборки для Linux, FreeBSD и Windows — hosted-версия AROS, способная работать поверх другой ОС (размер — 22 Мбайт);
- Icaros Desktop — преднастроенный Live CD AROS с набором сторонних приложений (1,7 Гбайт);
- Aros Vision — сборка AROS для оригинальной Amiga.
Существует еще несколько дистрибутивов разной степени жизнеспособности. К примеру, сборка для Raspberry Pi и некоторых других компьютеров. Мы же посмотрим на Icaros Desktop, последняя версия которого была выпущена в декабре 2016 года. Именно эта сборка в теории должна показать современную AmigaOS во всей красе.
Icaros можно юзать как в режиме Live CD, так и установив на жесткий диск или флешку. Операционка прекрасно работает внутри VirtualBox, а при запуске на реальном железе использует аппаратное 3D-ускорение адаптеров GeForce 5+ и Intel GMA. Также поддерживается USB 2.0 и ряд наиболее распространенных сетевых адаптеров.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»