A2 (операционная система)

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Bluebottle OS»)
Перейти к навигации Перейти к поиску
A2
Разработчик ВТШ Цюриха и Никлаус Вирт
Семейство ОС AOS
Поддерживаемые платформы x86, ARM, x86-64 и Cell
Тип ядра Модульное микроядро с разделяемой памятью
Интерфейс графический, масштабируемый
Лицензия BSD-подобная, отдельные модули, приложения и программные каркасы распространяются под другими свободными лицензиями
Состояние Актуальное
Репозиторий исходного кода gitlab.inf.ethz.ch/felix…
Веб-сайт wiki.oberon.org/ao/a2/

A2 (ранее Bluebottle) — модульная объектно-ориентированная операционная система с автоматическим управлением памятью и подсистемой мягкого реального времени, разрабатываемая в ETH Zurich, основанная на ядре Active Object System — дальнейшем развитии системы ETH Oberon. Она обеспечивает компактное окружение времени выполнения для языка Active Oberon, который позволяет разрабатывать эффективные системы, основанные на активных объектах, выполняющихся непосредственно на "железе" без посреднического интерпретатора или виртуальной машины. А2 содержит в себе все инструменты, необходимые для разработки - компилятор, IDE, редактор форм, профилировщик, редактор XML, ассемблер и так далее.

Активный объект в A2 представляется как совокупность традиционного для современных языков ООП понятия «объект» и выполняющейся в контексте данного объекта «активности» (нити). В данной реализации Активного Оберона у активного объекта могут быть, кроме его активности, ещё и активности объектов-предков.

Другими отличиями A2 от более распространенных операционных систем является аскетичный дизайн, пользовательский интерфейс, поддерживающий метафору "наведи и щелкни" для выполнения команд непосредственно из текста в любом окне подобно гиперссылкам в веб-браузере. Безопасный для типов язык программирования, автоматическое управление памятью, сборка мусора, набор примитивов синхронизации доступа к внутренним элементам объектов из множества конкурирующих потоков (активностей).

Над слоем ядра гибкая коллекция модулей обеспечивает общие абстракции для устройств и сервисов, например, файловые системы, интерфейсы пользователя, сетевые подключения, кодеки и так далее.

Архитектура[править | править код]

Иерархия модулей A2 и Active Oberon[править | править код]

A2 ActiveOberon Hierarchy

Основная часть исходного кода оригинального Oberon вошла в проект A2 с префиксом "Oberon." (средняя часть диаграммы)[источник не указан 3068 дней]. По функциональным возможностям эта часть кода соответствует возможностям MS-DOS с экранным текстовым редактором[источник не указан 3068 дней].

Параллельно с AOS (A2) студенты работали над системой Native Oberon (N-O). В N-O были созданы следующие графические модули: GD54xx.Display.Mod, S3C805.Display.Mod, DisplayLinear.Mod, DisplayMach64.Mod, DisplayVGA4.Mod, Display3.Mod, DisplayGTF.Mod (иерархия модулей дисплеев N-O). В среде и операционной системе Active Oberon (A2) были сделаны изменения. A2 не поддерживает большое разнообразие различного железа, так как маленькой группой разработчиков во время создания A2 невозможно написать модули для большинства видеоустройств[1].

В A2 сохранилась возможность работы с графическими интерактивными объектами — Гаджетами (верхняя-средняя часть диаграммы). Возможности, близкие к Windows 3.x, так как обе OS имели один и тот же прототип из исследовательского центра Xerox PARC, где два раза по одному году (1976–1977 и 1984–1985) работал Вирт.

Концепция A2 связана с интерактивными и независимыми графическими окнами и элементами внутри окон, каждый из которых запускался в отдельной нити с собственным конечным автоматом или потоком активности (правая часть диаграммы). Все названия модулей этой части системы начинаются с «WM», что является сокращением от «Менеджер окон». Этот интерфейс функционально соответствует графическим менеджерам окон системы Unix/Linux[источник не указан 3068 дней].

Дальнейшее развитие системы происходило в улучшении приложений для аудио- и видеомультимедиа-взаимодействии приложений через сетевое соединение с помощью механизмов A2. Так же были написаны модули для различных видео- и аудиокодеков и кодирования передаваемой информации.

В качестве средства для удалённого взаимодействия с A2 предлагается сервер удалённого доступа VNC (левая часть диаграммы).

В A2 есть возможность обмена сообщениями и настройками элементов между приложениями по сети посредством Properties. Properties — это набор методов и описания объектов в формате XML для сохранения конфигурации объектов. Properties можно использовать для создания экземпляров объектов в A2. Такие возможности можно сравнить с линкованием интерфейсов типа DCOM/SOAP в системах Windows NT, Windows NT 4.0 и Java-фреймворке[источник не указан 3068 дней].

Формальная верификация на основе модели[править | править код]

  1. Модель модуля — это, по сути, формальное описание в виде конечного автомата его активности[2][3].
  2. Юнит-тестирование (Модульное тестирование является встроенной возможностью в Aктив Оберон)[4].
  3. Возможность построения общей схемы сложного проекта[5].

Детали конфигурации и реализации[править | править код]

Эта система обладает множеством параметров (вплоть до ассемблерного кода) в файле конфигурации, который, по сути, являлся загрузчиком [1].

Самыми популярными дополнительными опциями конфигурации были TraceModules=1, ATADetect=legacy.

История[править | править код]

Проект Oberon был запущен Никлаусом Виртом в 1985 году. Операционные системы на базе языка Oberon были разработаны молодыми учёными из Федерального института технологии в Швейцарии. Проект A2 условно можно разделить на 3 этапа (AOS (2003), Bluebottle (2005), A2 (2008)) [2]. Каждый этап связан со сменой основных мейнтейнеров и разработчиков системы.

AOS[править | править код]

Исторически первой ОС этого семейства была BlueBottle (Синяя бутылка). Название AOS поначалу употребляли в контексте файловой системы [3].

  • В 2002 году группа будущей AOS начала работу по созданию Active Oberon для .NET ("Lightnight Oberon" — "Сумрачный Оберон") [4] [5].
  • В 2002 году она запускалась в среде DOS [6].
  • В конце июля 2002 года был сделан загрузочный CD с поддержкой VESA BIOS Extensions [7] [8]
  • В конце августа 2002 года студентам Andre, Patrik, Pieter, Folks было указано на недостаток документации (возможно, это был важный момент для будущего этой OS)[9]. Тогда же прозвенел второй звоночек, когда преподаватели перестали выделять ресурсы веб-сервера под Native Oberon в пользу Bluebottle (сейчас то же самое происходит с A2 — это типичная история для образовательных проектов) [10].
  • В 2003 году вышел релиз Win AOS [11] — операционной системы, запущенной поверх Windows.
  • В июне 2003 года были предложены специальные клавиши для масштабирования пространства Рабочего стола (до этого работало только колесо мышки)[12].
  • Ноябрь 2004 года была добавлена возможность работать с USB-флешки [13].

Bluebottle[править | править код]

Из-за претензии торговых марок следующую версию ОС официально назвали Bluebottle в 2005 году [14]. Эта система с нитями и активностями запускалась непосредственно на железе Intel-совместимые однопроцессорные системы и процессор StrongARM/XScale, а также на виртуальных системах QEMU, VMware и Virtual PC 4.0 (только для Macintosh) Macintosh.

  • В 2006 в Bluebottle добавлены несколько драйверов для различного железа и исправлены некоторые ошибки в сетевых приложениях [15].
  • 15 ноября 2006 года был выпущен релиз WinAos под Windows 3.0 [16].
  • В феврале 2010 года появилась подсветка синтаксиса [17].

A2[править | править код]

  • 16 декабря 2008 года в рассылке появилось первое упоминание системы A2 [18]. Идея новой системы состояла в упорядочивании файлов системы Bluebottle c целью уменьшения размера дистрибутива. Минимальная версия включала следующие модули: Trace, Machine, Heaps, Modules, Objects, Kernel, KernelLog, Streams, Reflection, Traps, Commands, Files, Loader and BootConsole. A2 в этой конфигурации занимала 299 008 байт (статически слинкованного загрузочного образа диска) [19].
  • 11 декабря 2009 года добавилась поддержка Intel SMP-совместимости с мультипроцессорными системами (гиперпоточность) а также возможностью запуска поверх операционных систем Windows, Linux, OS X [20], сборщик мусора получил механизм прерываний [21].
  • 14 апреля 2013 года пользователи заинтересовались примером работы с видеодрайвером (V4L2 и FFTW) в Linux из A2 [22].
  • 19 сентября 2013 года информация об области видимости имён для модулей попала из FAQ в документацию [23].
  • 1 февраля 2015 года программисты из бывшего СССР помогают находить ошибки в A2, создавая Юнит-тесты для конкретных функций [24].
  • 5 октября 2015 года русские программисты учат ребят из Швейцарии строить диаграмму взаимодействия модулей в A2 [25].

Приложения[править | править код]

  • Media Player (AVI, DivX, MPEG, MP3, OGG/Vorbis, WAV)
  • Просмотр картинок (BMP, GIF, JPEG, PNG, SVG)
  • TV-приёмник
  • Programming Editor (Редактор исходного текста программ)
  • Web-сервер
  • FTP-сервер
  • Архиваторы (ZIP, TAR)
  • CAPO — Computational Analysis Platform for Oberon
  • OCTK — Oberon Computational Toolkit
  • ETH Oberon для A2
  • VNC — сервер
  • FDD — графический визуализатор пространства-времени
  • UDPChat — UDP чат-мессенджер
  • Raycaster — игра
  • WMColorLines — игра

и множество других приложений

Совместимость[править | править код]

A2 в настоящий момент реализована для:

A2 также может выполняться на отдельных виртуальных машинах, как, например:

и поверх хостовых ОС Windows, Unix, Linux, Darwin

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

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

  1. Thomas Martin Frey. Bluebottle : A Thread-safe Multimedia and GUI Framework for Active Oberon. — Швейцария, 2005. — С. 57-58.
  2. @Kemet. Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней. Хабрахабр. Хабрахабр (27 мая 2015). Дата обращения: 6 января 2017. Архивировано 7 января 2017 года.
  3. SAGE's Homepage. Дата обращения: 6 января 2017. Архивировано 7 января 2017 года.
  4. Yaroslav Romanchenko. [Oberon] Some strange behaviour in A2 (англ.). Дата обращения: 6 января 2017. Архивировано 4 марта 2016 года.
  5. Alexander Ilin. [Oberon] Import hierarchies of display modules (англ.). Дата обращения: 6 января 2017. Архивировано 4 марта 2016 года.
  6. ETH Zurich - Computer Science - Native Systems Group J. Gutknecht. Дата обращения: 24 июля 2013. Архивировано из оригинала 19 апреля 2012 года.

Ссылки[править | править код]