AmigaOS | |
---|---|
| |
Разработчик |
Commodore International (1.0-3.1) Haage & Partner (3.5-3.9) Hyperion Entertainment (3.1.4-3.2.2, 4.0-4.1) |
Семейство ОС | Amiga |
Первый выпуск | 23 июля 1985 |
Последняя версия |
AmigaOS 4.1 Final Edition (PPC) Update 2 AmigaOS 3.2.2.1 (68K) ( 12 января 2021 года (PPC) 23 апреля 2023 года (68K)) |
Последняя тестовая версия | |
Поддерживаемые платформы | Motorola 680x0 и PowerPC |
Тип ядра | атипичное микроядро |
Лицензия | Проприетарная |
Состояние | разработка прекращена |
Предыдущая | TRIPOS |
Следующая | AROS |
Веб-сайт | amigaos.net |
Медиафайлы на Викискладе |
AmigaOS — операционная система для компьютеров семейства Amiga, имеет атипичное микроядро. Классическую AmigaOS принято рассматривать как совокупность двух составляющих: Kickstart и Workbench. Kickstart обеспечивает абстрагирование от уникального аппаратного обеспечения Amiga и содержит в себе: планировщик вытесняющей многозадачности (Exec), дисковую операционную систему (AmigaDOS) и библиотеки графического интерфейса (Intuition). Workbench является графическим интерфейсом пользователя, и представлен как правило одноимённым рабочим столом или другим файловым менеджером.
AmigaOS основана на технологии совместно используемых библиотек (файлы с расширением .library), что обеспечивает её модульность и расширяемость. Библиотеки представляют собой сборники функций, в том числе и тех, которые обеспечивают функционирование самой операционной системы.
В этом плане библиотеки AmigaOS аналогичны библиотечным технологиям других операционных систем, но обладают также свойствами совместного использования и переместимости (решение имеет свои достоинства и недостатки).
Изначально предполагалось, что единственная библиотека, которая имеет жёстко заданный адрес в памяти и не может обновляться пользователем — exec.library по адресу 4. Впоследствии развитие аппаратной части Amiga сторонними компаниями и банкротство корпорации Commodore привели к появлению решений (акселераторы и эмуляторы), позволяющих перемещать и обновлять также и exec.library (так называемый «механизм затенения»). Эта библиотека является ядром AmigaOS.
Драйверы AmigaOS (файлы с суффиксом имени файла .device), также являются библиотеками функций, обслуживающих специфичные для подключаемой периферии и устройств Amiga-вызовы, и имеющие стандартный интерфейс запросов. Существует также специфичное для AmigaOS понятие «обработчика» (англ. handler) — драйвера, имеющего более высокий уровень абстракции. Обработчики обеспечивают управление распределением ресурсов Amiga и представляют собой процессы, запускаемые при старте AmigaOS.
Один из важнейших обработчиков AmigaOS — обработчик файловой системы. AmigaOS может использовать любую файловую систему, для которой был написан обработчик. Эта возможность используется в CrossDOS — приложении, служащем для обмена файлами, например с FAT, — и его аналогах. Для AmigaOS существуют обработчики для всех наиболее распространённых файловых систем, а также некоторых экзотических. У пользователей наиболее популярны следующие обработчики файловых систем: OFS, FFS, FFS2, PFS, PFS2, SFS.
Как правило, обработчики передают в DOS название устройства, связанного с ними, но существуют и исключения. Например, обработчик Speak-handler (соответствующий устройству SPEAK:) позволяет управлять программным синтезатором речи (аналогичным реализации в OS/2 Warp, и более поздней реализации в Windows NT) и является одним из примеров службы, не связанной с периферией.
AmigaOS безразличен регистр, в котором набрано название устройства (принято использовать прописные символы), а идентификатором устройства служит символ двоеточия (:) после его имени. После двоеточия может следовать дополнительная информация для обработчика, указывающая на объект и способ управления. Для обработчика файловой системы, это, как правило, информация о пути к файлу. Для других обработчиков это может быть указание потока ввода-вывода (например, устройство SER:, связанное с последовательным портом, воспринимает данные о битрейте, стартовом/стоповом бите и т. д.).
Файловые системы используют в названиях устройств их порядковые номера в системе. Например, устройство DF0: по умолчанию связано с первым дисководом в системе, а DH0: — с первым разделом винчестера.
Помимо этого, обработчики устройств могут неограниченно связываться друг с другом. В этом случае путь к устройству может быть достаточно «извилистым». Метки томов устройств также считаются устройствами. Например, если дискета в дисководе DF0: имеет метку тома Workbench, то пользователь может обратиться к ней как к логическому устройству Workbench:.
Если пользователь хочет обратиться к файлу Bar, находящемуся в каталоге Foo на диске Work в дисководе DF0:, он может записать это так:
DF0:Foo/Bar
или так:
Work:Foo/Bar
Однако эти формы записи не полностью аналогичны. Последняя форма используется, когда системе уже известно, что дискета с именем «Work» — это не любая дискета в дисководе DF0:. Поэтому, если попытаться вставить в тот же дисковод DF0: копию нашей дискеты, но с другой меткой тома и обратиться к ней как Work:Foo/Bar, система обнаружит ошибку и выдаст сообщение:
Please insert volume "Work" in any drive
Приложениям AmigaOS часто требуется получить доступ к файлу, не имея данных о его месторасположении (включая название устройства и метку тома): им известен только его тип, является ли файл библиотекой, документацией, локализацией сообщений программы и т. д. Этот вопрос решается на уровне стандартных логических устройств, связанных с файлами определённых типов. Поиск соответствующего файла производится в первую очередь в этих устройствах. По умолчанию в AmigaOS приняты следующие логические устройства:
Классическую AmigaOS принято рассматривать как совокупность двух составляющих: Kickstart и Workbench. До AmigaOS 3.5 они считались неотделимыми и зависимыми друг от друга.
Kickstart (в версиях от V0 до V42) предполагал использование определённых версий Workbench. Например, на Amiga 500, имеющей Kickstart V36, может исполняться Workbench 1.3, а корректная загрузка, например, Workbench 3.1 невозможна. Исключением из этого правила является только Workbench 2.1, который может быть загружен на Amiga, имеющей более ранний Kickstart V37. Последние версии Workbench — 3.5 и 3.9 — используют Kickstart V40 для первоначальной загрузки, после чего происходит его обновление до V42 (или V44) в специально выделенной и защищённой области памяти (функция замещения ПЗУ у акселераторов).
Kickstart — название, принятое для системного ПО, осуществляющего первоначальную загрузку Amiga. На Amiga 1000 (первой выпущенной модели) Kickstart загружался с 3,5″-диска и занимал 256 Кб. В более поздних моделях Kickstart был перенесён в постоянное запоминающее устройство, а его объём вырос до 512 Кб. Все версии Kickstart обратно совместимы, несмотря на многочисленные изменения, происходившие в чипсете классической Amiga с появлением каждой новой модели.
Помимо кода, отвечающего за первоначальную загрузку Workbench, Kickstart также содержит значительную часть самой AmigaOS. Эта часть носит название Amiga ROM Kernel и включает в себя Intuition (библиотеки, обеспечивающие GUI), Exec (микроядро, реализующее вытесняющую многозадачность) и AmigaDOS (библиотеки, обеспечивающие работу с дисками). Последняя составляющая основана на TRIPOS, портированной специально для Amiga компанией MetaComCo, и написана на языке BCPL (считается «прародителем» языка Си).
Последние версии Kickstart содержат драйверы для IDE- и SCSI-контроллеров, порта PCMCIA и различной периферии самой Amiga.
С помощью ПО от сторонних производителей возможно замещение Kickstart, находящегося в ПЗУ Amiga, на Kickstart другой версии, находящийся в специально выделенной и защищённой области ОЗУ. Например, Kickstart V34 может использоваться владельцем компьютера, имеющего Kickstart V37, для более корректной работы старых игр. Программы, осуществляющие такое замещение, называются «софткикерами» (Softkickers). Также существуют аппаратные переключатели Kickstart, позволяющие использовать компьютер как бы обладающим двумя чипсетами — устаревшим и штатным. Таким образом, существует множество средств для динамического замещения ПЗУ.
Workbench — штатная графическая оболочка AmigaOS. Название оболочки является метафорой словосочетания «рабочий стол» (дословно — «верстак»), поэтому аналогия была продолжена и дальше: каталоги изображены ящиками рабочего стола, исполняемые файлы — инструментами, данные — проектами, а остальные составляющие GUI — разного рода приспособлениями. Большинство приложений AmigaOS использует всплывающие меню, традиционно начинающиеся со слова Project («Проект»), а не File («Файл»), как на других платформах. Строго говоря, термин Workbench относится только к основному файловому менеджеру AmigaOS, хотя часто используется для обозначения всей той её части, которая расположена вне ПЗУ (то есть вне Kickstart).
Интерфейс Workbench похож на Finder в Mac OS: здесь также используется главное меню в виде полосы в верхней части экрана. В отличие от стандартной мыши Macintosh, имеющей единственную кнопку, стандартная мышь классической Amiga имеет две кнопки. Удержанием правой кнопки открывается всплывающее меню, отпусканием — выбирается опция. Левая кнопка мыши используется для управления открытыми на рабочем столе окнами (перемещение, свёртывание, закрытие, выделение и т. п.). Позднее была добавлена поддержка мыши с бо́льшим числом кнопок и колесом.
Exec[англ.] (ExegSG начиная от AmigaOS 4) является многозадачным микроядром AmigaOS. Exec обеспечивает функциональность для многозадачности, распределения памяти, обработки прерываний и обработки динамических разделяемых библиотек. Оно выступает в качестве планировщика для задач, запущенных в системе, обеспечивающего преимущественную многозадачность с приоритетами планирования в графическом окружении. Exec также обеспечивает доступ к другим библиотекам и на высоком уровне обеспечивает связи между процессами через передачу сообщений. Другие сопоставимые микроядра имели проблемы производительности из-за необходимости копирования сообщений между адресными пространствами. Так как Amiga имеет только одно адресное пространство, наличие Exec является довольно эффективным инструментом для передачи сообщений в системе.
AmigaDOS обеспечивает системную часть в операционной системе AmigaOS. Это включает в себя файловую систему, управление файлами и каталогами, интерфейс командной строки, перенаправление файлов, консольные окна и так далее. Интерфейс системы многофункционален, он включает в себя перенаправление команд, эффективную передачу сообщений, сценарии с шаблоном примитивов программирования и систему глобальных и локальных переменных.
В AmigaOS первого поколения AmigaDOS был основан на TRIPOS, который был написан на языке программирования BCPL. Взаимодействие с ним других языков оказалось задачей трудной и приводило порой к ошибкам, в связи с чем порт TRIPOS был признан не очень эффективным.
В AmigaOS второго поколения AmigaDOS был переписан на язык программирования C и ассемблер, сохранив совместимость с BCPL. В него были включены полная программа первого поколения и часть программы из третьей партии AmigaDOS Resource Project (ARP), которые уже нашли замену для многих из программных BCPL-утилит и интерфейсов.
В последующем ARP также предоставил один из первых стандартизированных реквестеров файлов для Amiga с целью введения в рабочую среду Amiga для использования более дружественных UNIX-стилю шаблонов (форматов) функций в параметрах командной строки. Другими нововведениями были существенные улучшения в диапазоне форматов файлов, реализуемых системой как объекты ОС, что позволяло загружать в память ту или иную информацию только один раз, сохранять её в памяти и значительно уменьшить время загрузки системы для последующих применений.
В AmigaOS 4.0 в составе DOS отказались от наследия BCPL полностью, и, начиная от AmigaOS 4.1, она была переписана целиком с полной поддержкой 64-битной архитектуры.
Само собой разумеется, что различные расширения часто используются в AmigaOS, но они не являются обязательными, и они не обрабатываются особым образом через DOS, которая ныне в системе относится лишь к каталогам и файлам. Исполняемые программы реализуются с использованием так называемого магического числа или сигнатуры данных.
AmigaOS содержит поддержку интерпретируемого языка программирования REXX (ARexx — официальное сокращение словосочетания Amiga Rexx). Эта поддержка буквально «пронизывает» все части операционной системы и позволяет: писать сценарии (script) управления ОС (аналогично bash в GNU/Linux), управлять приложениями (поздний аналог — интеграция VBA в Microsoft Office), а также осуществлять обмен сообщениями между приложениями, поддерживающими ARexx-порты (аналог — D-Bus).
Приложения могут открывать ARexx-порты и ожидать сообщения в виде текста от других приложений или ОС. Эти сообщения могут интерпретироваться таким образом, как если бы пользователь использовал GUI или командную строку для непосредственного управления приложением. Например, ARexx-программа (обычный текстовый файл) может запустить почтовый клиент, сохранить полученные письма, вызвать программу для их обработки, а затем вызывать внешний просмотрщик текста для их отображения. Таким образом, ARexx позволяет одним приложениям управлять другими, перебрасывая данные через память, вместо создания множества маленьких файлов и перенесения дисковых операций по управлению ими на плечи пользователя.
AmigaOS 1.0 — 3.0 (первоначальное название — Amiga Workbench) создавались корпорацией Commodore S. G.
AmigaOS 3.1, была создана компанией ESCOM, также возобновившей производство классической Amiga в Европе и США. Новая версия создавалась на основе исходников полученных от Commodore S.G.
AmigaOS 3.5-3.9, была создана компанией Amiga Inc., владельцем торговой марки Amiga в 2004 году. Новая версия была написана с нуля на языке Си с использованием реверс-инжиниринга.
AmigaOS 3.1.x, была создана компанией Hyperion Entertainment на базе исходников проданных компанией Amiga Inc.
AmigaOS 3.2.x, была создана компанией Hyperion Entertainment на базе исходников проданных компанией Amiga Inc.
AmigaOS 4.0 — 4.1 были созданы компанией Hyperion Entertainment[2] при активном содействии компании ACube Systems SRL, которые внесли значительную часть в развитие системы и сделали систему по-настоящему популярной благодаря продвинутому и комфортному графическому интерфейсу и широкому набору прикладных программ.