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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Bluebottle OS»)
Перейти к: навигация, поиск
Разработчик

ETHZ

Семейство ОС

AOS

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

x86, x86-64, ARM, Cell

Тип ядра

Модульное микроядро с разделяемой памятью

Интерфейс

графический, масштабируемый

Лицензия

BSD-подобная, отдельные модули, приложения и программные каркасы распространяются под другими свободными лицензиями

Состояние

Актуальное

Репозиторий исходного кода

A2 Repository

Веб-сайт

Oberon Community Platform

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

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

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

Архитектура[править | править вики-текст]

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

A2 ActiveOberon Hierarchy

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

Параллельно с 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[источник не указан 372 дня].

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

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

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

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

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

Эта система обладает множеством параметров (вплоть до ассемблерного кода) в файле конфигурации, который по сути являлся загрузчиком [5]. Обратите на дату ответа на это послание — Dec 31 23:56:50 CET 2002. За 3 минуты до начала нового года!

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

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

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

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

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

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

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

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

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

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

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

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

  • 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. — Switzerland, 2005. — С. 57-58.
  2. ETH Zurich - Computer Science - Native Systems Group J. Gutknecht

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