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

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

Швейцарская высшая техническая школа Цюриха

Семейство ОС

A2

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

x86, x86-64, ARM, Cell

Тип ядра

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

Интерфейс

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

Лицензия

BSD-подобная

Состояние

Актуальное

Веб-сайт

https://trac.inf.ethz.ch/trac/lecturers/a2

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

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

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

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

Операционная система A2 разрабатывалась в несколько этапов. Исходный код из предыдущих проектов с минимальными изменениями попадал в новые проекты (Если судить только по названиям модулей (префиксы платформ "Oberon.", "WM", "AMD64.", "I386.", "Win32.", "Unix.", "ARM." "RPI", etc) и двух областей видимости для модулей "A2" и "Oberon"). Это наложило отпечаток на архитектуру OS.

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

A2 ActiveOberon Hierarchy

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

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

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

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

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

  • 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

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