AmigaOS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
AmigaOS
AmigaOS 3.5 Box.jpg
Скриншот AmigaOS 3.9
Скриншот AmigaOS 3.9
Разработчик

Commodore International (1.0-3.1)
Haage & Partner (3.5-3.9)
Hyperion Entertainment (4.0)

Последняя версия

4.1u6 — 30 ноября 2012

Поддерживаемые платформы

PowerPC и Motorola 680x0

Тип ядра

атипичное микроядро

Лицензия

Проприетарная

Состояние

Актуальное

Веб-сайт

amiga.com

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 приняты следующие логические устройства:

  • SYS:, указывающее на носитель, с которого была загружена система. Создаётся автоматически при старте AmigaOS
  • LIBS:, указывающее на директорию, содержащую системные библиотеки. Обычно, SYS:Libs/
  • DEVS:, указывающее на директорию, содержащую драйвера. Обычно, SYS:Devs/
  • L, указывающее на директорию, содержащую хэндлеры. Обычно, SYS:L/
  • C:, указывающее на директорию, содержащую команды Shell. Обычно, SYS:C/

Составляющие 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[править | править вики-текст]

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[править | править вики-текст]

Workbench — штатная графическая оболочка AmigaOS. Название оболочки является метафорой словосочетания «рабочий стол» (дословно — «верстак»), поэтому аналогия была продолжена и дальше: директории изображены ящиками рабочего стола, исполняемые файлы — инструментами, данные — проектами, а остальные составляющие GUI — разного рода приспособлениями. Большинство приложений AmigaOS используют всплывающие меню, традиционно начинающиеся со слова Project («Проект»), а не File («Файл»), как на других платформах. Строго говоря, термин Workbench относится только к основному файловому менеджеру AmigaOS, хотя часто используется для обозначения всей той её части, которая расположена вне ПЗУ (то есть вне Kickstart).

Интерфейс Workbench похож на Finder в Mac OS: здесь также используется главное меню в виде полосы в верхней части экрана. В отличие от стандартной мыши Macintosh, имеющей единственную кнопку, стандартная мышь классической Amiga имеет две кнопки. Удержанием правой кнопки открывается всплывающее меню, отпусканием — выбирается опция. Левая кнопка мыши используется для управления открытыми на рабочем столе окнами (перемещение, свёртывание, закрытие, выделение и т. п.). Позднее были поддержаны мыши с бо́льшим числом кнопок и колесом.

ARexx[править | править вики-текст]

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 0.7 — Kickstart V27.3 — первая полностью функционирующая операционная система;
  • AmigaOS 1.0 — Kickstart V30 — Amiga 1000. практически неработоспособна с точки зрения существующего на данный момент программного обеспечения, поддерживает только NTSC;
  • AmigaOS 1.1 — Kickstart V31.4 (NTSC) и Kickstart V32.34 (PAL);
  • AmigaOS 1.2 — Kickstart V33.166, V33.180 — Amiga 500 и Amiga 2000, поддерживает NTSC и PAL;
  • AmigaOS 1.2.1 — Kickstart 34.4, бета-версия AmigaOS 1.3
  • AmigaOS 1.3 — Kickstart V34.5 — Amiga 500 и Amiga 2000. Добавилась возможность старта с HDD;
  • AmigaOS 1.3.1 — Kickstart V34.5, бета-версия AmigaOS 1.3.2, основные обновления в Workbench;
  • AmigaOS 1.3.2 — Kickstart V34.5, основные обновления в Workbench;
  • AmigaOS 1.3.3 — Kickstart V34.5, основные обновления в Workbench;
  • AmigaOS 1.3.4 — Kickstart V34.5, основные обновления в Workbench, драйвер для мониторов A2024;
  • AmigaOS 1.4 — Kickstart V36, основные обновления в Workbench, бета-версия AmigaOS 2.0
  • AmigaOS 2.0 — Kickstart V36 — Amiga 500, Amiga 2000, первые модели Amiga 3000. Заметно усовершенствована по сравнению с предыдущими версиями, но имеет большое количество ошибок;
  • AmigaOS 2.01 — Kickstart V36.143, основные обновления в Workbench;
  • AmigaOS 2.02 — Kickstart V36.207, основные обновления в Workbench;
  • AmigaOS 2.03 — Kickstart V37.132, основные обновления в Workbench;
  • AmigaOS 2.04 — Kickstart V37.175 — Amiga 500, Amiga 600, Amiga 2000, Amiga 3000. Отлаженная версия. Начиная с 37.200 поддерживаются IDE-винчестеры (актуально для А600). При возможности легко обновляется на V38 (AmigaOS 2.1), поскольку разница между этими версиями заключается только в различных файлах дистрибутивов для этих систем (ПЗУ можно не менять).
  • AmigaOS 2.05 — Kickstart V37.299, V37.300, V37.350, не получила большого распространения;
  • AmigaOS 2.1 beta — Kickstart V38, бета-версия AmigaOS 2.1 (бета-версии перестали нумероваться отдельно);
  • AmigaOS 2.1 — Kickstart V38 — Amiga 500, Amiga 600, Amiga 2000, Amiga 3000. Все обновлённые библиотеки V38 находятся не в ПЗУ, а на диске дистрибутива, поэтому с точки зрения команд ОС, Kickstart остаётся прежним (V37.x). Введена поддержка локализации.
  • AmigaOS 3.0 beta — Kickstart V39.110, бета-версия AmigaOS 3.0;
  • AmigaOS 3.0 — Kickstart V39.106 — А1200, А4000 и А4000Т. AmigaOS обрела уже все черты операционной системы позволяющие говорить о её собственном, узнаваемом лице. Самое большое её отличие от предыдущих версий — появление системы Datatypes, позволяющей отображать данные любого существующего формата и представления во всех программах, поддерживающих эту систему.

AmigaOS 3.1 была создана компанией ESCOM, также возобновившей производство классической Amiga в Европе и США.

Новая версия создавалась на основе исходников полученных от Commodore S.G.

  • AmigaOS 3.1 beta — V39.82, V39.92, бета-версия AmigaOS 3.1;
  • AmigaOS 3.1 — Kickstart V40.55, V40.56, V40.58, V40.60, V40.63, V40.68, V40.70 — A1200, A4000 и A4000T. Устанавливается на все модели Амиг, выпускаемых с 1995 года.
  • AmigaOS 3.1 beta — Kickstart V44.0, V44.1, бета-версия AmigaOS 3.5;
  • AmigaOS 3.5 (2000 год) — Kickstart V44.2, V44.4 (BoingBag1), V44.5 (BoingBag2) — A1200, A4000 и A4000T, оснащённые 68k-акселераторами. Обновление файлов самой ОС и Kickstart для всех моделей Амиг, оснащённых акселератором. Существенные изменения в дизайне, набор популярных программ, лицензированных в составе дистрибутива.
  • AmigaOS 3.9 beta — Kickstart V45.0, бета-версия AmigaOS 3.9;
  • AmigaOS 3.9 (2001 год) — Kickstart V45.057, V45.2 (BoingBag1), V45.3 (BoingBag2) — A1200, A4000 и A4000T, оснащённые 68k-акселераторами. Очередное обновление и исправление найденных с 1995 года ошибок в ПЗУ, их программное перекрытие (заплатки) для необновлённых Kickstart. Новый набор программ, лицензированных в составе дистрибутива.
  • AmigaOS 4.0 (20042005 годы) — Kickstart V50.12, V50.33 — Полностью переписанная на Си и скомпилированная для процессорной линейки PowerPC AmigaOS для новых моделей Амиги — AmigaOne. В декабре 2007 года была портирована на классические A1200, A4000, A4000T, оснащённые PPC-акселераторами. Совместима с ранними версиями AmigaOS и ПО, написанным для них с помощью встроенного JIT-эмулятора 68k-кода.
  • AmigaOS 4.1 — Kickstart V51.28, V51.1 — A1200, A4000, A4000T, оснащённые PPC-акселераторами, AmigaOne, Sam 440. Вышла в сентября 2008 года при активном содействии компаний Hyperion Entertainment VOF и ACube Systems SRL. В 2009 году портирована на Pegasos II. Также существуют планы по адаптации для Mac mini G4 (проект Moana).
  • AmigaAnywhere — ранее называлась AmigaDE. Кроссплатформенная система, ориентированная на КПК, смартфоны и другие устройства домашнего использования. Отличительная черта — наличие переносимого ядра, похожего по своим возможностям на виртуальные Java-машины. Программа, скомпилированная для AmigaAnywhere один раз, будет работоспособна на всех системах с установленной AmigaAnywhere (ряд КПК продаются с предустановленной AA) или AmigaAnywhere Player (существует для GNU/Linux, Microsoft Windows и Mac OS). Компания Hyperion Entertainment[1] (разработчик AmigaOS, сегодня) имеет планы в будущем включать AmigaAnywhere в AmigaOS 4.x. Разработчик AmigaAnywhere — Amiga Inc[2]., лицензировал систему у Microsoft.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]