AmigaOS — это семейство собственных операционных систем для персональных компьютеров Amiga и AmigaOne . Впервые она была разработана компанией Commodore International и представлена с выпуском первой Amiga, Amiga 1000 , в 1985 году. Ранние версии AmigaOS требовали 16- и 32-разрядных микропроцессоров Motorola 68000. Более поздние версии, после распада Commodore, были разработаны Haage & Partner (AmigaOS 3.5 и 3.9), а затем Hyperion Entertainment (AmigaOS 4.0-4.1). Для последней версии, AmigaOS 4 , требуется микропроцессор PowerPC.
AmigaOS — это однопользовательская операционная система, основанная на ядре с вытесняющей многозадачностью , называемом Exec . [ 1] Она включает в себя абстракцию оборудования Amiga, дисковую операционную систему AmigaDOS , API оконной системы Intuition , а также среду рабочего стола [2] и файловый менеджер Workbench .
Интеллектуальная собственность Amiga разделена между Amiga Inc. , Cloanto и Hyperion Entertainment . Авторские права на работы, созданные до 1993 года, принадлежат Cloanto. [3] [4] В 2001 году Amiga Inc. заключила контракт на разработку AmigaOS 4 с Hyperion Entertainment, а в 2009 году они предоставили Hyperion эксклюзивную, постоянную, всемирную лицензию на AmigaOS 3.1 для разработки и продвижения AmigaOS 4 и последующих версий. [5] [ требуется обновление ]
AmigaOS — это однопользовательская операционная система, основанная на вытесняющем многозадачном ядре Exec . AmigaOS предоставляет абстракцию оборудования Amiga, дисковую операционную систему AmigaDOS, API оконной системы Intuition и файловый менеджер рабочего стола Workbench .
Интерфейс командной строки (CLI), называемый AmigaShell, также интегрирован в систему, хотя он также полностью основан на окнах. Компоненты CLI и Workbench имеют одинаковые привилегии. Примечательно, что в AmigaOS отсутствует встроенная защита памяти .
AmigaOS состоит из двух частей, а именно, компонента прошивки, называемого Kickstart , и программной части, обычно называемой Workbench . До AmigaOS 3.1 соответствующие версии Kickstart и Workbench обычно выпускались вместе. Однако с AmigaOS 3.5, первого релиза после распада Commodore, был обновлен только программный компонент, а роль Kickstart несколько уменьшилась. Обновления прошивки по-прежнему можно применять путем исправления при загрузке системы. Так было до 2018 года, когда Hyperion Entertainment (владелец лицензии на AmigaOS 3.1) выпустила AmigaOS 3.1.4 с обновленным ПЗУ Kickstart.
Kickstart — это загрузочная прошивка, обычно хранящаяся в ПЗУ . Kickstart содержит код, необходимый для загрузки стандартного оборудования Amiga и многих основных компонентов AmigaOS. Функция Kickstart сопоставима с BIOS и основным ядром операционной системы в IBM PC-совместимых компьютерах . Однако Kickstart предоставляет больше функциональных возможностей, доступных во время загрузки, чем обычно ожидается на ПК, например, полную оконную среду.
Kickstart содержит множество основных частей операционной системы Amiga, таких как Exec , Intuition , ядро AmigaDOS и функциональность для инициализации Autoconfig -совместимого оборудования расширения. Более поздние версии Kickstart содержали драйверы для контроллеров IDE и SCSI , портов PC-карт и другого встроенного оборудования.
При запуске или сбросе Kickstart выполняет ряд диагностических и системных проверок, а затем инициализирует чипсет Amiga и некоторые основные компоненты ОС. Затем он проверит подключенные загрузочные устройства и попытается загрузиться с того, которое имеет наивысший приоритет загрузки. Если загрузочное устройство отсутствует, отобразится экран с просьбой вставить загрузочный диск, обычно дискету.
При запуске Kickstart пытается загрузиться с загрузочного устройства (обычно это дискета или жесткий диск). В случае дискеты система считывает первые два сектора диска ( загрузочный блок ) и выполняет все инструкции по загрузке, хранящиеся там. Обычно этот код передает управление обратно ОС (вызывая AmigaDOS и GUI) и использует диск в качестве загрузочного тома системы. Любой такой диск, независимо от другого содержимого диска, назывался «загрузочным диском» или «загрузочным диском». Загрузочный блок можно было добавить на пустой диск с помощью команды install
. Некоторые игры и демонстрации на дискете использовали пользовательские загрузочные блоки, что позволяло им брать на себя последовательность загрузки и управлять оборудованием Amiga без AmigaOS.
Загрузочный блок стал очевидной целью для вирусописателей . Некоторые игры или демоверсии, которые использовали пользовательский загрузочный блок, не работали, если были заражены вирусом загрузочного блока, так как код вируса заменял исходный. Первым таким вирусом был вирус SCA . Попытки антивирусной защиты включали пользовательские загрузочные блоки. Эти измененные загрузочные блоки объявляли о наличии антивирусной программы, проверяя систему на наличие явных признаков вирусов, находящихся в памяти, а затем передавали управление обратно системе. К сожалению, их нельзя было использовать на дисках, которые уже полагались на пользовательский загрузочный блок, но они предупреждали пользователей о потенциальных проблемах. Некоторые из них также копировали себя на другие диски, становясь не более чем вирусами сами по себе. [ необходима цитата ]
Macintosh должен был иметь многозадачность. Я не могу не подчеркнуть, какой большой вклад он вносит в элегантный дизайн системного программного обеспечения. Amiga имеет превосходную многозадачную систему, и я думаю, что из-за этого у нее будет вдвое больший срок службы, чем у Macintosh.
— Адам Брукс Уэббер, программист, ответственный за портирование TrueBASIC на Amiga и Macintosh, Byte , сентябрь 1986 г. [6]
Exec — многозадачное ядро AmigaOS. Exec обеспечивает функциональность для многозадачности, выделения памяти, обработки прерываний и обработки динамических общих библиотек . Он действует как планировщик для задач, запущенных в системе, обеспечивая упреждающую многозадачность с приоритетным циклическим планированием . Exec также обеспечивает доступ к другим библиотекам и высокоуровневую межпроцессную связь через передачу сообщений . Другие сопоставимые микроядра имели проблемы с производительностью из-за необходимости копировать сообщения между адресными пространствами. Поскольку Amiga имеет только одно адресное пространство, передача сообщений Exec довольно эффективна. [7] [8]
AmigaDOS обеспечивает часть дисковой операционной системы AmigaOS. Это включает файловые системы , манипуляции файлами и каталогами, интерфейс командной строки , перенаправление файлов, консольные окна и т. д. Его интерфейсы предлагают такие возможности, как перенаправление команд , конвейеризация , скрипты с примитивами структурного программирования и система глобальных и локальных переменных .
В AmigaOS 1.x часть AmigaDOS была основана на TRIPOS , который написан на BCPL . Взаимодействие с ним из других языков оказалось сложной и подверженной ошибкам задачей, а порт TRIPOS оказался не очень эффективным.
Начиная с AmigaOS 2.x, AmigaDOS была переписана на C и Assembler , сохранив совместимость с программами BCPL 1.x, и включила в себя части стороннего проекта AmigaDOS Resource Project [9] , который уже написал замены для многих утилит и интерфейсов BCPL.
ARP также предоставил один из первых стандартизированных файловых запросчиков для Amiga и ввел использование более дружественных функций UNIX-стиля wildcard ( globbling ) в параметрах командной строки. Другими нововведениями были улучшение диапазона форматов даты, принимаемых командами, и возможность сделать команду резидентной, так что ее нужно загрузить в память только один раз, и она остается в памяти, чтобы снизить стоимость загрузки при последующих использованиях.
В AmigaOS 4.0 DOS полностью отказалась от наследия BCPL, а начиная с AmigaOS 4.1 она была переписана с полной поддержкой 64-битной архитектуры .
Расширения файлов часто используются в AmigaOS, но они не являются обязательными и не обрабатываются DOS специально, а являются просто условной частью имен файлов. Исполняемые программы распознаются с помощью магического числа .
Собственная оконная система Amiga называется Intuition , она обрабатывает ввод с клавиатуры и мыши, а также отображает экраны, окна и виджеты .
До AmigaOS 2.0 не было стандартизированного внешнего вида и поведения , разработчикам приложений приходилось писать собственные нестандартные виджеты. Commodore добавила библиотеку GadTools и BOOPSI в AmigaOS 2.0, обе из которых предоставляли стандартизированные виджеты. Commodore также опубликовала Amiga User Interface Style Guide , в котором объяснялось, как приложения должны быть расположены для обеспечения единообразия. Стефан Штунц создал популярную стороннюю библиотеку виджетов, основанную на BOOPSI, под названием Magic User Interface , или MUI. MorphOS использует MUI в качестве своего официального инструментария, в то время как AROS использует клон MUI под названием Zune . AmigaOS 3.5 добавила еще один набор виджетов, ReAction , также основанный на BOOPSI.
Необычной особенностью AmigaOS является использование нескольких экранов, отображаемых на одном дисплее. Каждый экран может иметь разное разрешение видео или глубину цвета. AmigaOS 2.0 добавила поддержку публичных экранов , что позволило приложениям открывать окна на экранах других приложений. До AmigaOS 2.0 был общим только экран Workbench. [10] Виджет в правом верхнем углу каждого экрана позволяет циклически переключаться между экранами. Экраны можно накладывать друг на друга, перетаскивая их вверх или вниз за их заголовки. AmigaOS 4 представила экраны, которые можно перетаскивать в любом направлении.
Workbench — это собственный графический файловый менеджер и среда рабочего стола AmigaOS. Хотя термин Workbench изначально использовался для обозначения всей операционной системы, с выпуском AmigaOS 3.1 операционная система была переименована в AmigaOS, и впоследствии Workbench относится только к менеджеру рабочего стола. Как следует из названия, используется метафора рабочего стола , а не рабочего стола; каталоги изображены как ящики , исполняемые файлы — инструменты , файлы данных — проекты , а виджеты GUI — гаджеты . Во многих других аспектах интерфейс напоминает Mac OS , с основным рабочим столом, показывающим значки вставленных дисков и разделов жесткого диска, и одной строкой меню в верхней части каждого экрана. В отличие от мыши Macintosh, доступной в то время, стандартная мышь Amiga имеет две кнопки — правая кнопка мыши управляет выпадающими меню с механизмом «отпустить для выбора».
До выпуска версии 3 AmigaOS поддерживала только собственный графический чипсет Amiga через graphics.library , который предоставляет API для геометрических примитивов , растровых графических операций и обработки спрайтов. Поскольку этот API можно было обойти, некоторые разработчики предпочли избегать функциональности ОС для рендеринга и напрямую программировать базовое оборудование для повышения эффективности.
Сторонние графические карты изначально поддерживались через фирменные неофициальные решения. Более позднее решение, в котором AmigaOS могла напрямую поддерживать любую графическую систему, называлось retargetable graphics (RTG). [11] С AmigaOS 3.5 некоторые системы RTG были объединены с ОС, что позволяло использовать обычные аппаратные карты, отличные от собственных чипсетов Amiga. Основными системами RTG являются CyberGraphX , Picasso 96 и EGS . Также доступны некоторые векторные графические библиотеки, такие как Cairo и Anti-Grain Geometry . Современные системы могут использовать кроссплатформенный движок SDL (simple DirectMedia Layer) для игр и других мультимедийных программ.
Amiga не имела встроенных возможностей 3D-графики , и поэтому не имела стандартного API 3D-графики . Позже производители видеокарт и сторонние разработчики предоставили свои собственные стандарты, в том числе MiniGL , Warp3D , Storm Mesa ( agl.library ) и CyberGL.
Amiga была запущена в то время, когда было мало поддержки библиотек 3D-графики для улучшения графических интерфейсов рабочего стола и возможностей компьютерного рендеринга. Тем не менее, Amiga стала одной из первых широко распространенных платформ 3D-разработки. VideoScape 3D была одной из самых ранних систем 3D-рендеринга и анимации, а Silver/ TurboSilver была одной из первых программ трассировки лучей 3D. Затем Amiga могла похвастаться многими влиятельными приложениями в 3D-программном обеспечении, такими как Imagine , Cinema 4D от maxon , Realsoft 3D , VistaPro , Aladdin 4D и Lightwave от NewTek (использовалась для рендеринга фильмов и телешоу, таких как Babylon 5 ).
Аналогично, хотя Amiga хорошо известна своей способностью легко синхронизироваться с видео, у нее нет встроенного интерфейса видеозахвата . Amiga поддерживала огромное количество сторонних интерфейсов для видеозахвата от американских и европейских производителей. Существовали внутренние и внешние аппаратные решения, называемые фрейм-грабберами, для захвата отдельных или последовательностей видеокадров, в том числе: Newtronic Videon, Newtek DigiView, [12] Graffiti внешний 24-битный кадровый буфер , Digilab, Videocruncher, Firecracker 24, Vidi Amiga 12, Vidi Amiga 24-бит и 24RT (в реальном времени), Newtek Video Toaster , GVP Impact Vision IV24, MacroSystem VLab Motion и VLab PAR, DPS PAR (персональный анимационный рекордер), VHI (видеоаппаратный интерфейс) от IOSPIRIT GmbH, DVE-10 и т. д. Некоторые решения представляли собой аппаратные плагины для графических карт Amiga, такие как модуль Merlin XCalibur или модуль DV, созданный для клона Amiga Draco немецкой фирмой Macrosystem. Современные платы расширения PCI- шины для ТВ и их интерфейсы захвата поддерживаются через tv.library от Elbox Computer и tvcard.library от Гвидо Мерсманна.
Следуя современным тенденциям в развитии графических интерфейсов, AmigaOS 4.1 использует 3D- движок компоновки изображений Портера-Даффа с аппаратным ускорением .
До версии 3.5 AmigaOS официально поддерживала только собственный звуковой чип Amiga через audio.device . Это облегчает воспроизведение звуковых сэмплов на четырех DMA -управляемых 8-битных звуковых каналах PCM . Единственный поддерживаемый аппаратный формат сэмплов — это подписанный линейный 8-битный двоичный дополнительный код .
Поддержка сторонних звуковых карт зависела от поставщика, пока не был создан и принят AHI [13] в качестве фактического стандарта. AHI предлагает улучшенную функциональность, такую как бесшовное воспроизведение звука с выбранного пользователем аудиоустройства, стандартизированную функциональность для записи звука и эффективные процедуры программного микширования для объединения нескольких звуковых каналов, тем самым преодолевая четырехканальное аппаратное ограничение оригинального чипсета Amiga. AHI можно установить отдельно на AmigaOS v2.0 и более поздних версиях. [14]
AmigaOS сама по себе не поддерживала MIDI до версии 3.1, когда camd.library Роджера Данненберга была адаптирована как стандартный MIDI API. Версия camd.library от Commodore также включала встроенный драйвер для последовательного порта. Более поздняя версия camd.library с открытым исходным кодом от Кьетиля Матеуссена не предоставляла встроенного драйвера для последовательного порта, а вместо этого предоставляла внешний драйвер.
AmigaOS была одной из первых операционных систем, в которой был реализован синтез речи с помощью программного обеспечения, разработанного SoftVoice, Inc., что позволяло преобразовывать текст в речь американского английского языка . [15] Он имел три основных компонента: narrator.device , который модулирует фонемы, используемые в американском английском , translater.library , который переводит английский текст в фонемы американского английского языка с помощью набора правил, и высокоуровневый обработчик SPEAK:, который позволяет пользователям командной строки перенаправлять текстовый вывод в речь. В ОС была включена утилита Say , которая позволяла осуществлять синтез текста в речь с некоторым контролем параметров голоса и речи. Демонстрационная версия также была включена в примеры программирования AmigaBASIC . Синтез речи иногда использовался в сторонних программах, особенно в образовательном программном обеспечении. Например, текстовые процессоры Prowrite и Excellence! могли читать документы с помощью синтезатора. Эти компоненты синтеза речи остались в значительной степени неизменными в более поздних выпусках ОС, и Commodore в конечном итоге удалила поддержку синтеза речи из AmigaOS 2.1 и далее из-за лицензионных ограничений. [16]
Несмотря на ограничение американского английского фонем narrator.device , Франческо Девитт разработал неофициальную версию с многоязычным синтезом речи. Это использовало улучшенную версию translate.library , которая могла переводить ряд языков в фонемы, учитывая набор правил для каждого языка. [17]
AmigaOS имеет динамический размер RAM-диска , который автоматически изменяет свой размер, чтобы вместить свое содержимое. Начиная с AmigaOS 2.x, файлы конфигурации операционной системы загружались на RAM-диск при загрузке, что значительно ускоряло использование операционной системы. Другие файлы можно было копировать на RAM-диск, как и на любое стандартное устройство, для быстрой модификации и извлечения. Также, начиная с AmigaOS 2.x, RAM-диск поддерживал уведомления об изменении файлов, которые в основном использовались для мониторинга изменений в файлах конфигурации.
Начиная с AmigaOS 1.3, [18] также есть фиксированный восстанавливаемый RAM-диск, который функционирует как стандартный RAM-диск, но может сохранять свое содержимое при мягком перезапуске. Его обычно называют RAD-диском по имени устройства по умолчанию, и его можно использовать как загрузочный диск (с загрузочным сектором). Ранее восстанавливаемый RAM-диск, обычно называемый ASDG RRD или VD0 , был представлен в 1987 году; [19] сначала он был привязан к продуктам расширения памяти ASDG. Позже ASDG RRD был добавлен в серию бесплатного, условно-бесплатного и общедоступного программного обеспечения Fred Fish (диски 58 [20] и 241 [21] ).
AmigaOS поддерживает язык Rexx , называемый ARexx (сокращение от "Amiga Rexx"), и является языком сценариев, который позволяет выполнять полноценные сценарии ОС, аналогичные AppleScript ; сценарии внутри приложений, аналогичные VBA в Microsoft Office ; а также межпрограммное взаимодействие. Наличие единого языка сценариев для любого приложения в операционной системе выгодно для пользователей, вместо необходимости изучать новый язык для каждого приложения.
Программы могут прослушивать «порт ARexx» на предмет строковых сообщений. Затем эти сообщения могут интерпретироваться программой аналогично нажатию пользователем кнопок. Например, скрипт ARexx, запущенный в программе электронной почты, может сохранить отображаемое в данный момент электронное письмо, вызвать внешнюю программу, которая может извлекать и обрабатывать информацию, а затем вызвать программу просмотра. Это позволяет приложениям управлять другими приложениями, отправляя данные туда и обратно напрямую с помощью дескрипторов памяти, вместо того, чтобы сохранять файлы на диск и затем перезагружать их.
Начиная с AmigaOS 4, в операционную систему включен язык Python .
Джон С. Дворжак заявил в 1996 году:
AmigaOS «остается одной из величайших операционных систем последних 20 лет, включающей небольшое ядро и огромные возможности многозадачности , подобные которым только недавно были разработаны в OS/2 и Windows NT . Самое большое отличие заключается в том, что AmigaOS могла работать в полную силу и выполнять многозадачность всего лишь при 250 Кб адресного пространства. Даже сегодня размер ОС составляет всего около 1 МБ. И по сей день мало что может сделать загружаемая с CD-ROM операционная система, которую не может сделать Amiga. Компактный код — ничего подобного.
У меня Amiga, наверное, уже десять лет. Это самое надежное оборудование, которым я когда-либо владел. Это потрясающе! Легко понять, почему так много фанатиков задаются вопросом, почему они одиноки в своей любви к этой штуке. Amiga продолжает вдохновлять живое — хотя и похожее на культ — сообщество, мало чем отличающееся от того, что есть у вас с Linux, клоном Unix». [22]
AmigaOS предоставляет модульный набор системных функций через динамически загружаемые общие библиотеки , которые либо хранятся в виде файла на диске с .library
расширением имени файла " ", либо хранятся в прошивке Kickstart. Все библиотечные функции доступны через таблицу косвенных переходов , которая является отрицательным смещением к базовому указателю библиотеки. Таким образом, каждая библиотечная функция может быть исправлена или перехвачена во время выполнения, даже если библиотека хранится в ПЗУ. Основная библиотека AmigaOS — это exec.library ( Exec ), которая предоставляет интерфейс к функциям микроядра Amiga .
Драйверы устройств также являются библиотеками, но они реализуют стандартизированный интерфейс. Приложения обычно не вызывают устройства напрямую как библиотеки, а используют функции ввода-вывода exec.library.device
для косвенного доступа к ним. Как и библиотеки, устройства представляют собой либо файлы на диске (с расширением " "), либо хранятся в ПЗУ Kickstart.
Более высокоуровневая часть управления устройствами и ресурсами контролируется обработчиками , которые являются не библиотеками, а задачами , и взаимодействуют посредством передачи сообщений. Одним из типов обработчиков является обработчик файловой системы . AmigaOS может использовать любую файловую систему, для которой был написан обработчик, возможность, которая была использована такими программами, как CrossDOS , и несколькими «альтернативными» файловыми системами по сравнению со стандартными OFS и FFS . Эти файловые системы позволяют добавлять новые функции, такие как ведение журнала или привилегии файлов , которые отсутствуют в стандартной операционной системе. Обработчики обычно предоставляют имя устройства DOS , которое может использоваться для доступа к периферийному устройству (если таковое имеется), связанному с обработчиком. Примером этих концепций является обработчик SPEAK:, который может перенаправлять текст в устную речь через систему синтеза речи.
Имена устройств представляют собой строки, нечувствительные к регистру (по соглашению, в верхнем регистре), за которыми следует двоеточие . После двоеточия можно добавить спецификатор , который дает обработчику дополнительную информацию о том, к чему осуществляется доступ и как . В случае файловой системы спецификатор обычно состоит из пути к файлу в файловой системе; для других обработчиков спецификаторы обычно задают характеристики желаемого канала ввода/вывода (например, для драйвера последовательного порта SER: спецификатор будет содержать битрейт , стартовые и стоповые биты и т. д.). Файловые системы предоставляют имена дисков в качестве имен своих устройств. Например, DF0: по умолчанию относится к первому дисководу в системе. Во многих системах DH0: используется для обозначения первого жесткого диска. Файловые системы также предоставляют имена томов , следуя тому же синтаксису, что и имена устройств: они идентифицируют конкретный носитель на диске, управляемом файловой системой. Если DF0: содержит диск с именем "Workbench", то Workbench: будет именем тома, которое можно использовать для доступа к файлам в DF0: . Если кто-то хочет получить доступ к файлу с именем "Bar", расположенному в каталоге "Foo" диска с именем "Work" на диске DF0: , можно написать " DF0:Foo/Bar
" или " Work:Foo/Bar
". Однако это не полностью эквивалентно, поскольку при использовании последней формы система знает, что требуемый том - "Work", а не просто любой том на DF0: . Поэтому всякий раз, когда запрошенный файл на "Work" обращается без тома "Work" на каком-либо диске, она скажет что-то вроде: Please insert volume Work in any drive
.
Программам часто требуется доступ к файлам, не зная их физического расположения (диска или тома): они знают только «логический путь» файла, то есть является ли файл библиотекой, файлом документации, переводом сообщений программы и т. д. В AmigaOS это решается с помощью assigns . Назначение следует, опять же, тому же синтаксису, что и имя устройства; однако оно уже указывает на каталог внутри файловой системы. Место, на которое указывает assign , может быть изменено пользователем в любое время (такое поведение похоже на команду subst
в MS-DOS , но тем не менее отличается от нее, например). Назначения также были удобны, потому что одно логическое назначение могло указывать на несколько разных физических расположений одновременно, тем самым позволяя содержимому назначения логически расширяться, сохраняя при этом отдельную физическую организацию. Стандартные назначения, которые обычно присутствуют в системе AmigaOS, включают:
startup-sequence
выполняется автоматически во время загрузки, если он существует. Во время загрузки это SYS:S, если он существует, в противном случае S: автоматически не создается.AmigaOS 4 представила новую систему для выделения оперативной памяти и ее дефрагментации «на лету» во время бездействия системы. Она основана на методе выделения слэбов , а также присутствует пейджер памяти, который управляет страничной памятью и позволяет производить подкачку больших участков физической оперативной памяти на устройствах массового хранения как своего рода виртуальную память . [23] [24] Кооперативное страничное размещение было наконец реализовано в AmigaOS 4.1 .
С момента появления AmigaOS в 1985 году было четыре основных версии и несколько второстепенных ревизий. Вплоть до выпуска операционной системы Amiga 3.1 Commodore использовала Workbench для обозначения всей операционной системы Amiga. В результате Workbench обычно использовался для обозначения как операционной системы, так и компонента файлового менеджера. Для конечных пользователей Workbench часто был синонимом AmigaOS. Начиная с версии 3.5 ОС была переименована в «AmigaOS», а версии до 3.5 также ретроспективно назывались «AmigaOS» (а не Workbench). Впоследствии «Workbench» относился только к собственному графическому файловому менеджеру.
С самого начала Workbench предлагал высоконастраиваемый интерфейс. Пользователь мог менять вид значков программ, заменяя их новыми с другими цветовыми сочетаниями. Пользователи также могли делать «снимки» значков и окон, так что значки оставались на рабочем столе в координатах, выбранных пользователем, а окна открывались в желаемом размере.
AmigaOS 1.0 была выпущена с первой Amiga, Amiga 1000 , в 1985 году. Версии AmigaOS 1.x по умолчанию использовали сине-оранжевую цветовую схему, разработанную для обеспечения высокой контрастности даже на самых плохих телевизионных экранах (цвета могут быть изменены пользователем). Версия 1.1 в основном состоит из исправлений ошибок и, как и версия 1.0, распространялась только для Amiga 1000.
Дисплей был очень настраиваемым для той эпохи. Пользователь мог свободно создавать и изменять системные и пользовательские значки, которые могли иметь произвольный размер и дизайн и могли иметь два состояния изображения для создания псевдоанимационного эффекта при выборе. Пользователи могли настраивать четыре цвета дисплея и выбирать из двух разрешений: 640×200 или 640×400 (чересстрочное) в системах NTSC или 640×256 или 640×512 в системах PAL . В более поздних версиях можно было регулировать экран телевизора или монитора.
Несколько функций были устарели в более поздних версиях. Например, измерительный прибор, показывающий свободное место в файловой системе, был заменен процентом в AmigaOS 2.0, прежде чем был восстановлен в 3.5. Указатель «занято» по умолчанию (комический воздушный шар, показывающий «Zzz...») был заменен секундомером в более поздних версиях.
AmigaOS 2.0 была выпущена с запуском Amiga 3000 в 1990 году. До AmigaOS 2.0 не существовало единого стандарта дизайна внешнего вида и поведения , и разработчикам приложений приходилось писать собственные виджеты (как кнопки, так и меню), если они хотели улучшить и без того скудный выбор стандартных базовых виджетов, предоставляемых Intuition. С AmigaOS 2.0 была создана gadtools.library , которая предоставляла стандартные наборы виджетов. Было опубликовано Amiga User Interface Style Guide , в котором объяснялось, как приложения должны быть расположены для обеспечения согласованности. Intuition была улучшена с помощью BOOPSI (Basic Object Oriented Programming System for Intuition), которая расширила систему с помощью объектно-ориентированного интерфейса для определения системы классов, в которой каждый класс индивидуализирует один виджет или описывает событие интерфейса. Его можно использовать для программирования объектно-ориентированных интерфейсов в Amiga на любом уровне.
AmigaOS 2.0 также добавила поддержку публичных экранов . Вместо того, чтобы экран AmigaOS был единственным общим экраном, приложения могли создавать свои собственные именованные экраны для совместного использования с другими приложениями.
AmigaOS 2.0 исправила проблему прямого подключения приложений к потоку событий ввода для захвата движений клавиатуры и мыши, иногда блокируя всю систему. AmigaOS 2.0 предоставляла Commodities , стандартный интерфейс для изменения или сканирования событий ввода. Это включало стандартный метод указания глобальных последовательностей клавиш "горячих клавиш" и реестр Commodities Exchange для пользователя, чтобы видеть, какие товары запущены.
AmigaOS 2.1 представила AmigaGuide , простую схему гипертекстовой разметки и браузер для предоставления онлайн-помощи внутри приложений. Она также представила Installer , стандартную программу установки программного обеспечения, управляемую языком сценариев, подобным LISP .
В AmigaOS 2.1 появилась поддержка многоязыковой локали через locale.library , и впервые AmigaOS была переведена на разные языки. [16]
Версия 3.0 изначально поставлялась с компьютерами Amiga 1200 и Amiga 4000. В версии 3.0 была добавлена поддержка типов данных, которая позволяла любому приложению, поддерживающему типы данных, загружать любой формат файла, поддерживаемый типами данных. Workbench мог загружать любое фоновое изображение в любом формате, если был установлен требуемый тип данных. Было включено небольшое приложение Multiview, которое могло открывать и отображать любой поддерживаемый файл. Его возможности были напрямую связаны с типами данных, установленными в Devs:Datatypes. Установленная гипертекстовая система AmigaGuide стала более удобной в использовании за счет использования ссылок на документы, указывающих на медиафайлы, например, изображения или звуки, все из которых распознавались типами данных.
29 декабря 2015 года исходный код AmigaOS 3.1 просочился в сеть; это подтвердил лицензиат Hyperion Entertainment . [25] [26]
Примерно через шесть лет после выпуска AmigaOS 3.1, после прекращения деятельности Commodore, компания Haage & Partner получила лицензию на обновление AmigaOS, которая была выпущена в 1999 году как программное обновление для существующих систем, работающих как минимум на процессоре 68(EC)020.
Внешний вид и ощущения AmigaOS , хотя и в значительной степени основанные на более раннем выпуске 3.1, были несколько пересмотрены, с улучшенным пользовательским интерфейсом на основе ReAction, улучшенной визуализацией значков и официальной поддержкой фонов true color . Эти выпуски включали поддержку существующих сторонних улучшений GUI, таких как NewIcons , путем интеграции этих патчей в систему. Выпуски 3.5 и 3.9 включали новый набор из 256 цветных значков и выбор обоев рабочего стола. Они заменили стандартную полностью металлическую серую цветовую схему 4/8, используемую в AmigaOS с выпуска 2.0 по 3.1.
Версия AmigaOS 3.9 была вновь разработана компанией Haage&Partner и выпущена в 2000 году. Основными улучшениями стали введение панели запуска программ под названием AmiDock, пересмотренные пользовательские интерфейсы для системных настроек и улучшенные служебные программы.
В сентябре 2018 года Hyperion Entertainment выпустила AmigaOS 3.1.4; это было как программное, так и аппаратное обновление для всех Amiga. В 2019 году AmigaOS 3.1.4.1 была выпущена как программное обновление только для Amiga 3.1.4, в основном как исправление ошибок. [ необходима цитата ]
Он включает множество исправлений, модернизирует несколько системных компонентов, ранее обновленных в OS 3.9, вводит поддержку больших жестких дисков (в том числе при загрузке), поддерживает всю линейку процессоров Motorola 680x0 до (и включая) Motorola 68060 и включает модернизированный Workbench с новым, дополнительным набором иконок. В отличие от AmigaOS 3.5 / 3.9, AmigaOS 3.1.4 по-прежнему поддерживает процессор Motorola 68000.
В мае 2021 года Hyperion Entertainment выпустила AmigaOS 3.2, которая включает в себя все функции предыдущей версии (3.1.4.1) и добавляет несколько новых улучшений, таких как поддержка ReAction GUI , управление образами файлов Amiga Disk , справочная система и улучшенные типы данных. [27] В декабре 2021 года было выпущено обновление под названием AmigaOS 3.2.1 с исправлениями ошибок и другими улучшениями. Второе обновление под названием AmigaOS 3.2.2 было выпущено в марте 2023 года с большим количеством улучшений и исправлений ошибок. [28]
Эта новая AmigaOS, названная AmigaOS 4.0, была переписана, чтобы стать полностью совместимой с PowerPC . Первоначально она была разработана на Cyberstorm PPC, поскольку сделать ее независимой от старых чипсетов Amiga было нетривиальной задачей. [29] Начиная с четвертого обновления Developer Pre-Release Update была принята новая технология, и экраны можно перетаскивать в любом направлении. [30] Также возможно перетаскивание иконок Workbench между различными экранами.
Также в AmigaOS 4.0 появились новая версия Amidock, шрифты TrueType / OpenType и видеоплеер с поддержкой DivX и MPEG-4 .
В AmigaOS 4.1 была добавлена новая функция Start-up preferences, которая заменила старый ящик WBStartup. Дополнительные улучшения включали новый набор иконок для более высоких разрешений экрана, новые темы окон, включая тени, новую версию AmiDock с настоящей прозрачностью, масштабируемые иконки и AmigaOS с функцией автоматического обновления. [31]
В октябре 2022 года разработчик AmigaOS Hyperion Entertainment выпустил SDK для AmigaOS 4.1. [32]
AROS Research Operating System (AROS) реализует API AmigaOS в портативной операционной системе с открытым исходным кодом. Хотя она несовместима с AmigaOS на уровне двоичного кода (если только не запущена на 68k), пользователи сообщают, что она в высокой степени совместима с исходным кодом.
MorphOS — это собственная операционная система PowerPC, которая также работает на некотором оборудовании Amiga. Она реализует API AmigaOS и обеспечивает двоичную совместимость с «дружественными к ОС» приложениями AmigaOS (то есть, с теми приложениями, которые не обращаются напрямую ни к какому собственному устаревшему оборудованию Amiga, как AmigaOS 4.x, если только они не запущены на реальных моделях Amiga).
pOS была многоплатформенной операционной системой с закрытым исходным кодом, совместимой на уровне исходного кода с существующим программным обеспечением Amiga. [33]
BeOS также имеет централизованную структуру типов данных, похожую на MacOS Easy Open после того, как старые разработчики Amiga попросили Be принять службу типов данных Amiga. Она позволяет всей ОС распознавать все виды файлов (текст, музыка, видео, документы и т. д.) со стандартными дескрипторами файлов . Система типов данных предоставляет всей системе и любым инструментам производительности стандартные загрузчики и хранители для этих файлов, без необходимости встраивать несколько возможностей загрузки файлов в какую-либо отдельную программу. [34]
AtheOS была вдохновлена AmigaOS и изначально планировалась как клон AmigaOS. [35] Syllable — это ответвление AtheOS, включающее в себя некоторые качества, присущие AmigaOS и BeOS .
FriendUP — это облачная метаоперационная система. Над проектом работают многие бывшие разработчики и сотрудники Commodore и Amiga. Операционная система сохраняет несколько функций, подобных AmigaOS, включая драйверы DOS, списки монтирования, CLI на основе TRIPOS и перетаскивание экрана. [36]
Наконец, операционная система 3DO Interactive Multiplayer имела очень большое сходство с AmigaOS и была разработана RJ Mical , [37] создателем пользовательского интерфейса Intuition для Amiga . [38]