AROS
AROS () — проект по созданию независимой, переносимой и свободной (лицензия  аналогична Mozilla Public License) операционной системы (ОС), совместимой с AmigaOS 3.1 на уровне API, при этом превосходя её во многих областях. Исполняемые файлы для одной платформы совместимы для различных версий AROS, для переноса их на другую платформу потребуется перекомпиляция.

Разработчики AROS стремятся к полной межплатформенной совместимости: исходные коды AROS-программ не должны требовать каких-либо изменений при перекомпиляции под другую архитектуру (на сегодняшний день поддерживаются x86, m68k, идёт работа над SPARC, Palm и PowerPC-версиями). AROS может работать как полноценная ОС, загружаясь с собственного диска/раздела (тип () native), или же поверх Linux/FreeBSD/NetBSD/Solaris как X11-приложение (тип hosted) и поверх Android.

AROS является не клоном AmigaOS, a скорее её последователем, поскольку основной целью является реализация совместимости, а не полное повторение AmigaOS, что было бы противозаконно. Код AROS не содержит частей из AmigaOS.

Существует также эмулятор UAE (Ubiquitous Amiga Emulator), портированный на множество ОС, в том числе на сам AROS. Последнее связано с тем, что UAE в данный момент обладает наилучшей двоичной совместимостью и позволяет запускать оригинальные исполняемые файлы для платформы m68k на других платформах без перекомпиляции исходного кода.

История создания 

В 1993 году Amiga переживала трудные времена. Выпуском компьютеров с популярным названием «AMIGA» тогда занималась компания Commodore. Она выпустила доступную по цене для среднего пользователя мини-версию компьютера, знаменитую Amiga 600, однако серьёзные финансовые неурядицы поставили под сомнение дальнейшее существование популярной марки. Дело также ещё осложнялось тем, что операционная часть в виде AmigaOS до возможностей части аппаратной явно не дотягивала. В итоге руководство приняло решение создать отдельную свободную операционную систему, взяв за основу AmigaOS 3.1. Так на свет появилась совершенно новая и независимая система, которую впоследствии назвали AROS. Её распространение проводилось по принципу, который сейчас, к примеру, используется в Mozilla Public License и аналогичных продуктах. Это было довольно смелой попыткой вдохнуть в семейство Amiga новую жизнь, продолжить её развитие, с независимыми частями и независимым кодом, под новой маркой и под другим именем, под флагом и символом Open source. Всё это делалось в надежде, что поддержка свободных и независимых разработчиков поможет сэкономить компании дополнительные средства, которые можно будет использовать для развития новой линейки бюджетных компьютеров, что могло бы поправить пошатнувшееся финансовое положение компании. Некоторые из её представителей всерьёз задумывались над необходимостью обеспечить будущее платформы. Была поставлена цель повысить привлекательность AmigaOS для пользователей и разработчиков. Тогда же было разработано несколько планов по достижению этой цели. Согласно одному из них, AmigaOS должна стать более современной ОС (революция), другой предполагал избавление от накопленных ошибок (эволюция). Так, в ожесточённых спорах, родился проект AROS.

После продолжительной двухлетней дискуссии, зимой 1995 года Аарон Дигуилла опубликовал RFC (рабочее предложение), содержащее несколько вариантов создания минимального общего базиса, некоей отправной точки, фундамента проекта. В результате почти единогласно было решено написать открытую AmigaOS. Проект переименовали в AROS, работа закипела. Интересно, что позднее часть кода AROS была использована в проприетарных операционных системах MorphOS и AmigaOS 4.0, что доказывает гибкость и универсальность самой системы, не только на уровне API, но прежде всего на уровне кода. Система способна работать на архитектурах m68k и x86, однако разработчики усердно трудятся над созданием кроссплатформенной версии ОС. Отметим, что между всеми версиями AROS присутствует бинарная совместимость. Конечно, пока ещё данные продукты, даже при условии их постепенного совершенствования и развития, выглядят весьма старомодно. Однако стоит учесть, что основу для такой продвинутой ОС закладывали ещё в восьмидесятых годах прошлого века. Разумеется, угнаться за «окнами» или разработками конкурирующих компаний было не так легко, но нельзя раньше времени списывать со счетов как саму AmigaOS, так и произошедшие от неё продукты, такие, как MorphOS, и в том числе вышеупомянутую AROS.

С течением времени AROS стала принимать современные черты, для неё было создано немало оригинального софта, появился и нынешний логотип. Логотип системы создал американский художник-фуррист Эрик Шварц ().

Будущее операционной системы 
Под AROS был портирован компилятор GCC 3.3.1, существующие библиотеки подстраиваются под стандарт POSIX, закончено портирование стека протоколов TCP/IP, позаимствованного из FreeBSD. Значение стандартизации AROS трудно переоценить, ведь когда этот процесс будет закончен, откроется доступ к огромному количеству уже написанного исходного кода, перенос утилит из *nix-систем упростится, заработает схема «ПО — пользователи — разработчики — ПО». В качестве побочного эффекта станет возможным компилирование исходников AROS с помощью AROS-версии GCC, то есть ОС станет полностью самоподдерживаемой и самодостаточной. Сравнительно недавно стала возможной и обратная схема разработки — AROS стала работать на классических Amiga (благодаря немецкому проекту «AfA OS» — AROS fur AmigaOS). Таким образом, разработчики приложений для AmigaOS теперь могут компилировать версии и для AROS.

В текущее время в разработке находятся USB-стек и драйвер файловых систем FAT, что позволит использовать множество USB-устройств в AROS, таких как мыши, клавиатуры и USB-диски. Дорабатываются системные библиотеки и решаются вопросы стабильности файловых систем /SFS. Файловый менеджер Wanderer обрастает новыми функциями и постепенно становится похож на свой прототип — Amiga Workbench.

Разработчики системы стараются реализовать ОС со следующими :
 Совместимость с AmigaOS 3.1 API, за исключением частей, сочтенных не переносимыми или устаревшими, либо не стоящих прилагаемых усилий. Текущее состояние: Большая часть AmigaOS 3.1 API была реализована и даже заменена в некоторых частях. Позволяет запускать старые приложения AmigaOS с помощью эмулятора E-UAE.
 Готовый инструментарий разработки GUI. Редактору настроек недостает некоторых функций
 Стандартные приложения, сравнимые с аналогами, идущими с AmigaOS 3.1. Большинство из основных приложений разработаны.
 Поддержка сети. Сюда относится стек TCP/IP и некоторые основные приложения, вроде клиентов электронной почты и SSH, а также простой веб-браузер. Должен быть по меньшей мере один драйвер сетевой карты (NIC) для каждой обязательной портированной версии. Текущее состояние: есть AROSTCP, ведётся работа над реализацией стека . Разработаны некоторые приложения (например, клиенты FTP, telnet и IRC), но они не являются частью самой системы. Другие приложения, включая некоторые возможные реализации браузеров, находятся в разработке.
 Собственная среда разработки и SDK для разработчиков. Для AROS есть полный порт GCC, позволяющий компилировать приложения, но все ещё не хватает некоторых инструментов от GNU, вследствие чего на данный момент невозможна самокомпиляция (то есть сборка новой версии ОС из самой ОС).
 Возможность портирования на разные платформы, такие как x86, PowerPC, DEC Alpha, SPARC, HP-PA и другие.
 Способность самостоятельной работы и загрузки непосредственно с жёсткого диска, а также в режиме эмуляции.
 Удобство использования больше, чем у предшественницы — AmigaOS.

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

В текущем релизе Icaros Desktop 2.0 все эти идеи были в полной мере реализованы, Icaros Desktop позволяет на обычном ПК запустить Amiga-подобное десктоп-окружение, в состав которого включено множество развлекательных приложений и игр. Осуществлена синхронизация с кодом проекта AROS по состоянию на 7 октября 2014 года. Задействовано новое окружение рабочего стола, в основе которого лежит файловый менеджер Directory Opus 5 Magellan. Представлена новая функция Wastebasket с реализацией корзины, поддерживающей восстановление удалённых файлов. Добавлен новый конфигуратор Icaros Settings. Улучшена работа окружения для эмуляции платформы Amiga 68k. Добавлены новые приложения Viewbox, PictureAlbum, subversion, DaySleeper, MUI-AYlet, ArTorr, ZuneView.

План развития 
Для успешного завершения разработки операционной системы AROS должны быть выполнены следующие требования:

Требования 
 Совместимость с AmigaOS 3.1 API Полная совместимость, за исключением сегментов, которые были признаны перенесёнными или устаревшими, или не стоящими общих усилий в связи с превышающими выделенный лимит затратами на них. Для того, что отнести какую-либо часть к категории устаревших, даже несмотря на возможность внедрения её в рамках портирования, необходимы достаточно веские основания. Например, если данная возможность очень редко используется приложениями и её внедрение требует значительных усилий для разработки.
 Частичная совместимость с AmigaOS 3.5 и 3.9 API Для разработки выбираются исключительно только те сегменты, которые могут максимально полезны и достойны внедрения.
 Готовый инструментарий разработки GUI Полная совместимость Zune с MUI API, и доработанное приложение редактирования настроек.
 Стандартные приложения, сопоставимые с аналогами, идущими из AmigaOS 3.1 Это не означает, что в AROS должны быть программы, работающие в точности так же, как и их аналоги в AmigaOS, но доступные пользователю функции должны быть примерно эквивалентны.
 Поддержка звука Совместимость на уровне API и основные приложения. Должно быть не менее одного драйвера для каждой обязательно портированной версии.
 Поддержка сети Сюда относится TCP/IP стек и некоторые основные программы, вроде почтовых клиентов и SSH, а также простой веб-браузер. Должно быть не менее одного драйвера сетевой карты (NIC) для каждой обязательно портированной версии. Для веб-браузера не выдвигаются высокие требования, но обязательно должна быть поддержка YouTube и веб-приложений.
 Собственная среда разработки SDK для разработчиков Конкретно, сюда входит всё программное обеспечение требуемое для сборки AROS, такое как GCC, GNU Binutils,  и другое. Должна быть возможность компилировать AROS в самой же AROS. Реализация бинарной совместимости (ABI) для поддерживаемых архитектур (в этом случае только для i386) должна быть максимально завершенной.
 Полная документация для разработчиков Сюда относятся полные справочные руководства по всем библиотекам, устройствам, классам и средствам разработки, а также руководства и учебные материалы, знакомящие с подсистемами и дающие общие представления о системе в целом. Также должно быть руководство по миграции и портировании.
 Полная документация для пользователей Сюда относится полная справка по командам, учебные материалы, пособия по установке, настройке и другие руководства.

Реализация 
В настоящее время данные требования к системе AROS и её дистрибутивам выполнены.

Дистрибутивы AROS 

Дистрибутивы — это преднастроенные и испытанные . Они содержат ряд полезных приложений, которых нет в обычных сборках и потому представляют максимальный интерес для пользователей. Они могут иметь не самые свежие версии базовых библиотек и ядра, но зато более стабильны и дружелюбны к пользователю, нежели обычные ночные сборки. Собираются они из системных файлов AROS, которые могут быть загружены в разных версиях с сайта проекта. Эти файлы компилируются прямо из исходников SVN в ночное время, и доступны как ночные сборки. Ежедневные ночные сборки также содержат ряд приложений сторонних разработчиков, которые могут быть полезны для выполнения самых разных задач.

Для конечного/среднего пользователя имеются несколько дистрибутивов:

Icaros Desktop 
С апреля 2009 года название дистрибутива VMWAros было изменено на , чтобы избежать двусмысленности с любой существующей и защищённой авторским правом виртуальной машиной любого рода. В данном дистрибутиве интегрированы эмуляция платформы Amiga 68k, 3D ускорение для графических карт Nvidia, AMD и Intel и последние версии приложений, которые можно обновлять сразу же после установки. Последняя версия:  (релиз 22 декабря 2020 года).

Broadway 
 является новым дистрибутивом AROS, реализованный в конце 2009 года и являющийся простой и более удобной реализацией этого программного продукта. Версия 0.05, выпущенная 14 июня 2011 года, была предустановлена по умолчанию в некоторых продуктах компании , в частности, компьютерах  и его предшественнике . Использование этого дистрибутива продолжается, текущий релиз:

AspireOS 
 является дистрибутивом, созданным в 2011 году Никосом Томатсидисом и ориентирован на улучшенную поддержку линейки компьютеров Acer Aspire One (данные компьютеры выпускаются с самым разным программным обеспечением). Однако, сам дистрибутив возможно установить на любое оборудование поддерживающее AROS как таковой.

Отличительными чертами данного дистрибутива является то, что в отличие от Icaros, который предоставляется по универсальному принципу всё-в-одном с огромным перечнем программного обеспечения, AspireOS представляет собой компактную amiga-like систему для ноутбуков, но так же готовую к работе «из коробки». Так же, это один из немногих дистрибутивов, который трепетно относится к аппаратной поддержке 3D-ускорения, поэтому в рекомендациях указывается как графика на базе чипсета Intel GMA — стандартной для ноутбуков на Atom, так и GeForce, в случае для настольного ПК. Так же от автора дистрибутива отдельным архивом предоставляется специальная подборка игр и список рекомендуемых мультимедиа-программ.

Между ветками 1.х и 2.х имеется как значительный временной интервал в 5 лет, так и, соответственно, значительное изменение кодовой базы AROS за этот промежуток времени.

AROS Vision 
 является нативным дистрибутивом m68k.

AROS One 
AROS One является экспериментальным дистрибутивом собираемым AMIGASYSTEM с 2019 года под две платформы  (x86_64) и  (m68k) на базе последних ночных сборок AROS. Обе ветки характеризуются добавлением иконок и тем в стилях AmigaOS 3.9 и AmigaOS 4, а также особым вниманием к преднастроенным связям между типами файлов и приложениями. Существует также версия дистрибутива AROS One 68k, которая может быть использована на классической Amiga с Kickstart 3.x (то есть без AROS Kickstart.rom), вместо AmigaOS 3.x. Использование этого дистрибутива продолжается, текущие релизы:  и

Apollo OS / Caffeine OS 
Операционная система на базе AROS для компьютеров Vampire на архитектуре m68k. Ранее разработчики использовали так называемый вариант Caffeine OS, но, из-за наличия проприетарных компонентов и возможных претензий относительно их использования, были вынуждены перейти на свободный вариант на базе чистого AROS.

Вместо простого переноса AROS с архитектуры х86 на 68k, Apollo OS — специализированная версия, которая напрямую обращается к чипсету Amiga и 68K вместо использования прослойки AROS HAL. Apollo OS непосредственно поддерживает процессор 68080 для достижения максимальной производительности. Это быстрая и открытая ОС 68k без юридических ограничений OS 3.x или более медленной работы дистрибутива AROS 68k.

AROS x86_64 
Ветка Aros разрабатываемая с середины 00-х под платформу на базе AMD64. На данный момент представлены рядом дистрибутивов (Icaros 64, Aros One 64) в стадии полу-рабочих альфа-версий. AROS является единственной амигаподобной системой доступной в 64-битной версии.

В настоящее время AROS 64 разрабатывается командой AROS, в частности Ником «Kalamatee» Эндрюсом (который работает над несколькими частями системы и над самой ABIv1). Также идёт разработка 64bit AROS Runtime для Linux Кшиштофа «Deadwood» Smiechowicz, что может дать очень полезные инструменты в будущем.

Icaros 64 
Новая версия Icaros Desktop, известная как «Icaros 64», в настоящее время находится в разработке параллельно с обычной 32-битной версией. Icaros Desktop, как и другие варианты AmigaOS, представляет собой только 32-битную ОС, что весьма ограничено по современным стандартам. Icaros 64 будет идеологический приемник 32-битной версии, но он принесет реальные преимущества, такие как обработка памяти большого размера, актульные файловые системы, обновленное системное ПО и ожидается в ближайшем будущем также поддержка многопроцессорности для ускорения многопоточной обработки и операции.

Текущее программное обеспечение AROS x86 не будет работать. Современный ABIv1 64 битного AROS не может запускать 32-битное программное обеспечение ABIv0, поэтому все приложения должны быть соответствующим образом адаптированы, исправлены, перекомпилированны и объединены. А 32-битной версии дистрибутива ABI v1 никогда не будет, так как попросту не рационально. Для сравнения ABI v0 прошёл время разработки, до современного состояния, в 20 лет.

Основное проблемы, вынуждающие AROS на переход:

 Все выпускаемые на ПК процессоры последние 15 лет — 64-битные
 Большинство имеют многоядерность/многопоточность
 Типовой размер встроенных накопителей около 1ТБ (тогда как файловая система AROS поддерживает максимум 120 ГБ)
 Уже мало кто располагает менее чем 4 ГБ ОЗУ.
 Основной программный прогресс разработки идёт под ABIv1. Тогда как использование двоичного интерфейса приложения «версия 0» AROS (ABI), который хоть и «стабильный», но также довольно старый, что может быть проблемой для пользователей, которые не получают надлежащих обновлений и исправлений ошибок.

Особенности системы 
Основным инструментом для построения графического интерфейса пользователя для AROS является Zune (замена MUI). В свою очередь графическим интерфейсом системы является Wanderer, имитирующий поведение Workbench из AmigaOS.

АРОС имеет динамично расширяющийся RAM диск, который подгоняет его размер к имеющемуся содержимому. Файлы конфигурации загружаются в ОЗУ диска при загрузке, что значительно ускоряет его работу. Другие файлы могут быть скопированы в RAM диск в качестве стандартного привода. Содержимое RAM диска очищается во время остановки или перезагрузки.

Значки представляющие файлы, папки и диски хранятся в специальных графических файлах с расширением .info, с тем же именем, что и файл, который они представляют. К примеру, редактор файлов представлен иконкой «Editor.info».

Файлы .info также указывают на тип файла. Существуют 4 типа:

 Инструмент — исполняемая программа
 Проект — это файл данных выполняемой программы. Программа, которая создала файл данных, указана в иконке файла. При нажатии на значок запускает тип проекта, присвоенный программе и загружает файл данных.
 Каталог
 Привод — физический или RAM диск

Система АРОС также реализует поддержку REXX, этот скриптовый язык широко используется в AmigaOS.

Структура системных каталогов:

 C — команды shell
 Classes — каталог, связанный с логическим устройством LIBS, типы данных и расширения пользовательского интерфейса
 Devs — управляющие файлы
 Fonts — шрифты
 Libs — библиотеки
 Locale — переводы системы и программ
 Prefs — программы, которые контролируют параметры системы и среды AROS
 S — скрипты
 System — система
 Tools — простые системные инструменты
 Utilities — утилиты
AROS является одной из самых простых и гибких операционных систем, вобравшей в себя всё лучшее в идейном смысле не только из AmigaOS, но также из других систем, не имеющих отношение к семейству Amiga. Кроме совместимости с AmigaOS, она имеет программный слой POSIX для обеспечения совместимости с UNIX-подобными операционными системами, при этом являясь сугубо Amiga-подобной. Данное направление усиленно развивается.

См. также 
 AmigaOS
 MorphOS

Примечания

Ссылки 

 Официальный сайт AROS
 Галерея скриншотов AROS
 AROS-Exec — Новости разработки AROS
 

Программное обеспечение для Amiga
AmigaOS-совместимые операционные системы