A2 (операционная система)
A2 (ранее Bluebottle) — модульная объектно-ориентированная операционная система с автоматическим управлением памятью и подсистемой мягкого реального времени, разрабатываемая в ETH Zurich, основанная на ядре Active Object System — дальнейшем развитии системы ETH Oberon. Она обеспечивает компактное окружение времени выполнения для языка Active Oberon, который позволяет разрабатывать эффективные системы, основанные на активных объектах выполняющихся непосредственно на "железе" без посреднического интерпретатора или виртуальной машины. А2 содержит в себе все инструменты необходимые для разработки; компилятор, IDE, редактор форм, профилировщик, редактор XML, ассемблер и так далее.
A2 | |
---|---|
Разработчик | Швейцарская высшая техническая школа Цюриха |
Семейство ОС | AOS |
Поддерживаемые платформы | x86, ARM, x86_64 и Cell |
Тип ядра | Модульное микроядро с разделяемой памятью |
Интерфейс | графический, масштабируемый |
Лицензия | BSD-подобная, отдельные модули, приложения и программные каркасы распространяются под другими свободными лицензиями |
Состояние | Актуальное |
Репозиторий исходного кода | a2.inf.ethz.ch |
Веб-сайт | Oberon Community Platform |
Активный объект в A2 представляется как совокупность традиционного для современных языков ООП понятия «объект» и выполняющейся в контексте данного объекта «активности» (нити). В данной реализации Активного Оберона у активного объекта могут быть, кроме его активности, ещё и активности объектов-предков.
Другими отличиями A2 от более распространенных операционных систем является аскетичный дизайн, пользовательский интерфейс поддерживающий метафору "наведи и щелкни" для выполнения команд непосредственно из текста в любом окне, подобно гиперссылкам в веб-браузере. Безопасный для типов язык программирования, автоматическое управление памятью, сборка мусора, набор примитивов синхронизации доступа к внутренним элементам объектов из множества конкурирующих потоков (активностей).
Над слоем ядра гибкая коллекция модулей обеспечивает общие абстракции для устройств и сервисов, например, файловые системы, интерфейсы пользователя, сетевые подключения, кодеки и так далее.
Архитектура
Иерархия модулей A2 и Active Oberon
Основная часть исходного кода оригинального Oberon вошла в проект A2 с префиксом "Oberon." (средняя часть диаграммы). По функциональным возможностям эта часть кода соответствует возможностям MS-DOS с экранным текстовым редактором.
Параллельно с 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.
Дальнейшее развитие системы происходило в улучшении приложений для аудио- и видеомультимедиа-взаимодействии приложений через сетевое соединение с помощью механизмов A2. Так же были написаны модули для различных видео- и аудиокодеков и кодирования передаваемой информации.
В качестве средства для удалённого взаимодействия с A2 предлагается сервер удалённого доступа VNC (левая часть диаграммы).
В A2 есть возможность обмена сообщениями и настройками элементов между приложениями по сети посредством Properties. Properties — это набор методов и описания объектов в формате XML для сохранения конфигурации объектов. Properties можно использовать для создания экземпляров объектов в A2. Такие возможности можно сравнить с линкованием интерфейсов типа DCOM/SOAP в системах Windows NT, Windows NT 4.0 и Java-фреймворке.
Формальная верификация на основе модели
- Модель модуля — это, по сути, формальное описание в виде конечного автомата его активности[2][3].
- Юнит-тестирование (Модульное тестирование является встроенной возможностью в Aктив Оберон)[4].
- Возможность построения общей схемы сложного проекта[5].
История
Проект Oberon был запущен Никлаусом Виртом в 1985 году. Операционные системы на базе языка Oberon были разработаны молодыми учёными из Федерального института технологии в Швейцарии. Проект A2 условно можно разделить на 3 этапа (AOS (2003), Bluebottle (2005), A2 (2008)) . Каждый этап связан со сменой основных мейнтейнеров и разработчиков системы.
AOS
Исторически первой ОС этого семейства была BlueBottle (Синяя бутылка). Название AOS поначалу употребляли в контексте файловой системы .
- В 2002 году группа будущей AOS начала работу по созданию Active Oberon для .NET ("Lightnight Oberon" — "Сумрачный Оберон") .
- В 2002 году она запускалась в среде DOS .
- В конце июля 2002 года был сделан загрузочный CD с поддержкой VESA BIOS Extensions
- В конце августа 2002 года студентам Andre, Patrik, Pieter, Folks было указано на недостаток документации (возможно, это был важный момент для будущего этой OS). Тогда же прозвенел второй звоночек, когда преподаватели перестали выделять ресурсы веб-сервера под Native Oberon в пользу Bluebottle (сейчас то же самое происходит с A2 — это типичная история для образовательных проектов) .
- В 2003 году вышел релиз Win AOS — операционной системы, запущенной поверх Windows.
- В июне 2003 года были предложены специальные клавиши для масштабирования пространства Рабочего стола (до этого работало только колесо мышки).
- Ноябрь 2004 года была добавлена возможность работать с USB-флешки .
Bluebottle
Из-за претензии торговых марок следующую версию ОС официально назвали Bluebottle в 2005 году . Эта система с нитями и активностями запускалась непосредственно на железе Intel-совместимые однопроцессорные системы и процессор StrongARM/XScale, а также на виртуальных системах QEMU, VMware и Virtual PC 4.0 (только для Macintosh) Macintosh.
A2
- 16 декабря 2008 года в рассылке появилось первое упоминание системы A2 . Идея новой системы состояла в упорядочивании файлов системы Bluebottle c целью уменьшения размера дистрибутива. Минимальная версия включала следующие модули: Trace, Machine, Heaps, Modules, Objects, Kernel, KernelLog, Streams, Reflection, Traps, Commands, Files, Loader and BootConsole. A2 в этой конфигурации занимала 299 008 байт (статически слинкованного загрузочного образа диска) .
- 11 декабря 2009 года добавилась поддержка Intel SMP-совместимости с мультипроцессорными системами (гиперпоточность) а также возможностью запуска поверх операционных систем Windows, Linux, OS X , сборщик мусора получил механизм прерываний .
- 14 апреля 2013 года пользователи заинтересовались примером работы с видеодрайвером (V4L2 и FFTW) в Linux из A2 .
- 19 сентября 2013 года информация об области видимости имён для модулей попала из FAQ в документацию .
- 1 февраля 2015 года программисты из бывшего СССР помогают находить ошибки в A2, создавая Юнит-тесты для конкретных функций .
- 5 октября 2015 года русские программисты учат ребят из Швейцарии строить диаграмму взаимодействия модулей в A2 .
Приложения
- 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 также может выполняться на отдельных виртуальных машинах, как, например:
- QEMU
- VMWare
- VMWare Player
- Virtual PC 4.0 (только в версии для Macintosh).
и поверх хостовых ОС Windows, Unix, Linux, Darwin
См. также
Примечания
- Thomas Martin Frey. Bluebottle : A Thread-safe Multimedia and GUI Framework for Active Oberon. — Швейцария, 2005. — С. 57-58.
- @Kemet. Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней . Хабрахабр. Хабрахабр (27 мая 2015). Дата обращения: 6 января 2017.
- SAGE's Homepage . Дата обращения: 6 января 2017.
- Yaroslav Romanchenko. [Oberon Some strange behaviour in A2] (англ.). Дата обращения: 6 января 2017.
- Alexander Ilin. [Oberon Import hierarchies of display modules] (англ.). Дата обращения: 6 января 2017.
- ETH Zurich - Computer Science - Native Systems Group J. Gutknecht (недоступная ссылка). Дата обращения: 24 июля 2013. Архивировано 19 апреля 2012 года.
Ссылки
- Руководство пользователя А2 на Русском языке
- Welcome to A2 (англ.)
- An application in industrial control at Radiar. (англ.)
- Видео о технике работы в ОС A2 (англ.)
- Screenshots (англ.)
- Установка и настройка
- Бутылка без джинна (Oberon и нелетние мысли)
- Русскоязычный форум
- Домашняя страница Ярослава Романченко. Статьи посвящённые ОС A2, исходные тексты
- Иерархия модулей A2 и Active Oberon
- Git - зеркало репозитория от metacore