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

Поделись знанием:
Перейти к: навигация, поиск
Разработчик

ETHZ

Семейство ОС

AOS

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

x86, x86-64, ARM, Cell

Тип ядра

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

Интерфейс

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

Лицензия

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

Состояние

Актуальное

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

[trac.inf.ethz.ch/trac/lecturers/a2 A2 Repository]

Веб-сайт

[www.ocp.inf.ethz.ch/wiki/OCP/Home Oberon Community Platform]

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

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

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





Архитектура

Иерархия модулей A2 и Active Oberon

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

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

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

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

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

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

Формальная верификация на основе модели

  • 1. Модель модуля — это, по сути, формальное описание в виде конечного автомата его активности [habrahabr.ru/post/258917/] [sage.com.ua/ru.shtml?e6l0].
  • 2. Юнит-тестирование (Модульное тестирование является встроенной возможностью в Aктив Оберон) — пример: [lists.inf.ethz.ch/pipermail/oberon/2015/007998.html] ).
  • 3. Возможность построения общей схемы сложного проекта [lists.inf.ethz.ch/pipermail/oberon/2015/008415.html].

Детали конфигурации и реализации

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

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

История

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

AOS

Исторически первой ОС этого семейства была BlueBottle. Название AOS поначалу употребляли в контексте файловой системы [lists.inf.ethz.ch/pipermail/oberon/2002/002144.html].

  • В 2002 году группа будущей AOS начала работу по созданию Active Oberon для .NET ("Lightnight Oberon" — "Сумрачный Оберон") [archive.is/Is3Sf] [www.oberon.ethz.ch/language/genealogy].
  • В 2002 году она запускалась в среде DOS [lists.inf.ethz.ch/pipermail/oberon/2002/002144.html].
  • В конце июля 2002 года был сделан загрузочный CD с поддержкой VESA BIOS Extensions [web.archive.org/web/20020701155758/bluebottle.ethz.ch/wm/gallery.html] [lists.inf.ethz.ch/pipermail/oberon/2002/002258.html]
  • В конце августа 2002 года студентам Andre, Patrik, Pieter, Folks было указано на недостаток документации (возможно, это был важный момент для будущего этой OS)[lists.inf.ethz.ch/pipermail/oberon/2002/002515.html]. Тогда же прозвенел второй звоночек, когда преподаватели перестали выделять ресурсы веб-сервера под Native Oberon в пользу Bluebottle (сейчас то же самое происходит с A2 — это типичная история для образовательных проектов) [lists.inf.ethz.ch/pipermail/oberon/2002/002548.html].
  • В 2003 году вышел релиз Win AOS [lists.inf.ethz.ch/pipermail/oberon/2003/003061.html] — операционной системы, запущенной поверх Windows.
  • В июне 2003 года были предложены специальные клавиши для масштабирования пространства Рабочего стола (до этого работало только колесо мышки)[lists.inf.ethz.ch/pipermail/oberon/2003/003096.html].
  • Ноябрь 2004 года была добавлена возможность работать с USB-флешки [lists.inf.ethz.ch/pipermail/oberon/2004/003774.html].

Bluebottle

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

  • В 2006 в Bluebottle добавлены несколько драйверов для различного железа и исправлены некоторые ошибки в сетевых приложениях [lists.inf.ethz.ch/pipermail/oberon/2006/005013.html].
  • 15 ноября 2006 года был выпущен релиз WinAos под Windows 3.0 [lists.inf.ethz.ch/pipermail/oberon/2006/005036.html].
  • В феврале 2010 года появилась подсветка синтаксиса [lists.inf.ethz.ch/pipermail/oberon/2010/005713.html].

A2

  • 16 декабря 2008 года в рассылке появилось первое упоминание системы A2 [lists.inf.ethz.ch/pipermail/oberon/2008/005614.html]. Идея новой системы состояла в упорядочивании файлов системы Bluebottle c целью уменьшения размера дистрибутива. Минимальная версия включала следующие модули: Trace, Machine, Heaps, Modules, Objects, Kernel, KernelLog, Streams, Reflection, Traps, Commands, Files, Loader and BootConsole. A2 в этой конфигурации занимала 299 008 байт (статически слинкованного загрузочного образа диска) [lists.inf.ethz.ch/pipermail/oberon/2009/005647.html].
  • 11 декабря 2009 года добавилась поддержка Intel SMP-совместимости с мультипроцессорными системами (гиперпоточность) а также возможностью запуска поверх операционных систем Windows, Linux, OS X [archive.is/hUAk9#selection-275.33-275.107], сборщик мусора получил механизм прерываний [lists.inf.ethz.ch/pipermail/oberon/2009/005699.html].
  • 14 апреля 2013 года пользователи заинтересовались примером работы с видеодрайвером (V4L2 и FFTW) в Linux из A2 [lists.inf.ethz.ch/pipermail/oberon/2013/006836.html].
  • 19 сентября 2013 года информация об области видимости имён для модулей попала из FAQ в документацию [lists.inf.ethz.ch/pipermail/oberon/2013/006870.html].
  • 1 февраля 2015 года программисты из бывшего СССР помогают находить ошибки в A2, создавая Юнит-тесты для конкретных функций [lists.inf.ethz.ch/pipermail/oberon/2015/007998.html].
  • 5 октября 2015 года русские программисты учат ребят из Швейцарии строить диаграмму взаимодействия модулей в A2 [lists.inf.ethz.ch/pipermail/oberon/2015/008415.html].

Приложения

  • 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

  • [www.ocp.inf.ethz.ch/wiki/Documentation/HardwareCompatibility Устройства, поддерживаемые A2]

См. также

Напишите отзыв о статье "A2 (операционная система)"

Примечания

  1. Thomas Martin Frey Bluebottle : A Thread-safe Multimedia and GUI Framework for Active Oberon. — Switzerland, 2005. — С. 57-58.
  2. [www.nativesystems.inf.ethz.ch/Main/WebHomeProjectsA2#Portierung_von_AOS_auf_Cell_Proz ETH Zurich - Computer Science - Native Systems Group J. Gutknecht]

Ссылки

  • [www.a2.ethz.ch/ Welcome to A2]  (англ.)
  • [www.radiar.ch/ An application in industrial control at Radiar.]  (англ.)
  • [www.youtube.com/watch?v=Pe0ZdzO_urU Видео от технике работы в ОС A2] (англ.)
  • [www.ocp.inf.ethz.ch/wiki/Documentation/WindowManager Screenshots]  (англ.)
  • [www.ocp.inf.ethz.ch/wiki/FAQ/Installation Установка и настройка]
  • [itc.ua/articles/butylka_bez_dzhinna_oberon_i_neletnie_mysli_10552 Бутылка без джинна (Oberon и нелетние мысли)]
  • [a2os.org.ua/forums Русскоязычный форум]
  • [sage.com.ua/ Домашняя страница Ярослава Романченко. Статьи посвящённые ОС A2, исходные тексты]
  • [github.com/Ignat99/a2/raw/master/doc/A2ActiveOberonHierarchy.svg Иерархия модулей A2 и Active Oberon]

Отрывок, характеризующий A2 (операционная система)

– Mon Dieu! Mon Dieu! [Боже мой! Боже мой!] Oh! – слышала она сзади себя.
Потирая полные, небольшие, белые руки, ей навстречу, с значительно спокойным лицом, уже шла акушерка.
– Марья Богдановна! Кажется началось, – сказала княжна Марья, испуганно раскрытыми глазами глядя на бабушку.
– Ну и слава Богу, княжна, – не прибавляя шага, сказала Марья Богдановна. – Вам девицам про это знать не следует.
– Но как же из Москвы доктор еще не приехал? – сказала княжна. (По желанию Лизы и князя Андрея к сроку было послано в Москву за акушером, и его ждали каждую минуту.)
– Ничего, княжна, не беспокойтесь, – сказала Марья Богдановна, – и без доктора всё хорошо будет.
Через пять минут княжна из своей комнаты услыхала, что несут что то тяжелое. Она выглянула – официанты несли для чего то в спальню кожаный диван, стоявший в кабинете князя Андрея. На лицах несших людей было что то торжественное и тихое.
Княжна Марья сидела одна в своей комнате, прислушиваясь к звукам дома, изредка отворяя дверь, когда проходили мимо, и приглядываясь к тому, что происходило в коридоре. Несколько женщин тихими шагами проходили туда и оттуда, оглядывались на княжну и отворачивались от нее. Она не смела спрашивать, затворяла дверь, возвращалась к себе, и то садилась в свое кресло, то бралась за молитвенник, то становилась на колена пред киотом. К несчастию и удивлению своему, она чувствовала, что молитва не утишала ее волнения. Вдруг дверь ее комнаты тихо отворилась и на пороге ее показалась повязанная платком ее старая няня Прасковья Савишна, почти никогда, вследствие запрещения князя,не входившая к ней в комнату.
– С тобой, Машенька, пришла посидеть, – сказала няня, – да вот княжовы свечи венчальные перед угодником зажечь принесла, мой ангел, – сказала она вздохнув.
– Ах как я рада, няня.
– Бог милостив, голубка. – Няня зажгла перед киотом обвитые золотом свечи и с чулком села у двери. Княжна Марья взяла книгу и стала читать. Только когда слышались шаги или голоса, княжна испуганно, вопросительно, а няня успокоительно смотрели друг на друга. Во всех концах дома было разлито и владело всеми то же чувство, которое испытывала княжна Марья, сидя в своей комнате. По поверью, что чем меньше людей знает о страданиях родильницы, тем меньше она страдает, все старались притвориться незнающими; никто не говорил об этом, но во всех людях, кроме обычной степенности и почтительности хороших манер, царствовавших в доме князя, видна была одна какая то общая забота, смягченность сердца и сознание чего то великого, непостижимого, совершающегося в эту минуту.
В большой девичьей не слышно было смеха. В официантской все люди сидели и молчали, на готове чего то. На дворне жгли лучины и свечи и не спали. Старый князь, ступая на пятку, ходил по кабинету и послал Тихона к Марье Богдановне спросить: что? – Только скажи: князь приказал спросить что? и приди скажи, что она скажет.
– Доложи князю, что роды начались, – сказала Марья Богдановна, значительно посмотрев на посланного. Тихон пошел и доложил князю.
– Хорошо, – сказал князь, затворяя за собою дверь, и Тихон не слыхал более ни малейшего звука в кабинете. Немного погодя, Тихон вошел в кабинет, как будто для того, чтобы поправить свечи. Увидав, что князь лежал на диване, Тихон посмотрел на князя, на его расстроенное лицо, покачал головой, молча приблизился к нему и, поцеловав его в плечо, вышел, не поправив свечей и не сказав, зачем он приходил. Таинство торжественнейшее в мире продолжало совершаться. Прошел вечер, наступила ночь. И чувство ожидания и смягчения сердечного перед непостижимым не падало, а возвышалось. Никто не спал.

Была одна из тех мартовских ночей, когда зима как будто хочет взять свое и высыпает с отчаянной злобой свои последние снега и бураны. Навстречу немца доктора из Москвы, которого ждали каждую минуту и за которым была выслана подстава на большую дорогу, к повороту на проселок, были высланы верховые с фонарями, чтобы проводить его по ухабам и зажорам.
Княжна Марья уже давно оставила книгу: она сидела молча, устремив лучистые глаза на сморщенное, до малейших подробностей знакомое, лицо няни: на прядку седых волос, выбившуюся из под платка, на висящий мешочек кожи под подбородком.
Няня Савишна, с чулком в руках, тихим голосом рассказывала, сама не слыша и не понимая своих слов, сотни раз рассказанное о том, как покойница княгиня в Кишиневе рожала княжну Марью, с крестьянской бабой молдаванкой, вместо бабушки.
– Бог помилует, никогда дохтура не нужны, – говорила она. Вдруг порыв ветра налег на одну из выставленных рам комнаты (по воле князя всегда с жаворонками выставлялось по одной раме в каждой комнате) и, отбив плохо задвинутую задвижку, затрепал штофной гардиной, и пахнув холодом, снегом, задул свечу. Княжна Марья вздрогнула; няня, положив чулок, подошла к окну и высунувшись стала ловить откинутую раму. Холодный ветер трепал концами ее платка и седыми, выбившимися прядями волос.
– Княжна, матушка, едут по прешпекту кто то! – сказала она, держа раму и не затворяя ее. – С фонарями, должно, дохтур…
– Ах Боже мой! Слава Богу! – сказала княжна Марья, – надо пойти встретить его: он не знает по русски.
Княжна Марья накинула шаль и побежала навстречу ехавшим. Когда она проходила переднюю, она в окно видела, что какой то экипаж и фонари стояли у подъезда. Она вышла на лестницу. На столбике перил стояла сальная свеча и текла от ветра. Официант Филипп, с испуганным лицом и с другой свечей в руке, стоял ниже, на первой площадке лестницы. Еще пониже, за поворотом, по лестнице, слышны были подвигавшиеся шаги в теплых сапогах. И какой то знакомый, как показалось княжне Марье, голос, говорил что то.
– Слава Богу! – сказал голос. – А батюшка?
– Почивать легли, – отвечал голос дворецкого Демьяна, бывшего уже внизу.
Потом еще что то сказал голос, что то ответил Демьян, и шаги в теплых сапогах стали быстрее приближаться по невидному повороту лестницы. «Это Андрей! – подумала княжна Марья. Нет, это не может быть, это было бы слишком необыкновенно», подумала она, и в ту же минуту, как она думала это, на площадке, на которой стоял официант со свечой, показались лицо и фигура князя Андрея в шубе с воротником, обсыпанным снегом. Да, это был он, но бледный и худой, и с измененным, странно смягченным, но тревожным выражением лица. Он вошел на лестницу и обнял сестру.
– Вы не получили моего письма? – спросил он, и не дожидаясь ответа, которого бы он и не получил, потому что княжна не могла говорить, он вернулся, и с акушером, который вошел вслед за ним (он съехался с ним на последней станции), быстрыми шагами опять вошел на лестницу и опять обнял сестру. – Какая судьба! – проговорил он, – Маша милая – и, скинув шубу и сапоги, пошел на половину княгини.


Маленькая княгиня лежала на подушках, в белом чепчике. (Страдания только что отпустили ее.) Черные волосы прядями вились у ее воспаленных, вспотевших щек; румяный, прелестный ротик с губкой, покрытой черными волосиками, был раскрыт, и она радостно улыбалась. Князь Андрей вошел в комнату и остановился перед ней, у изножья дивана, на котором она лежала. Блестящие глаза, смотревшие детски, испуганно и взволнованно, остановились на нем, не изменяя выражения. «Я вас всех люблю, я никому зла не делала, за что я страдаю? помогите мне», говорило ее выражение. Она видела мужа, но не понимала значения его появления теперь перед нею. Князь Андрей обошел диван и в лоб поцеловал ее.
– Душенька моя, – сказал он: слово, которое никогда не говорил ей. – Бог милостив. – Она вопросительно, детски укоризненно посмотрела на него.
– Я от тебя ждала помощи, и ничего, ничего, и ты тоже! – сказали ее глаза. Она не удивилась, что он приехал; она не поняла того, что он приехал. Его приезд не имел никакого отношения до ее страданий и облегчения их. Муки вновь начались, и Марья Богдановна посоветовала князю Андрею выйти из комнаты.
Акушер вошел в комнату. Князь Андрей вышел и, встретив княжну Марью, опять подошел к ней. Они шопотом заговорили, но всякую минуту разговор замолкал. Они ждали и прислушивались.
– Allez, mon ami, [Иди, мой друг,] – сказала княжна Марья. Князь Андрей опять пошел к жене, и в соседней комнате сел дожидаясь. Какая то женщина вышла из ее комнаты с испуганным лицом и смутилась, увидав князя Андрея. Он закрыл лицо руками и просидел так несколько минут. Жалкие, беспомощно животные стоны слышались из за двери. Князь Андрей встал, подошел к двери и хотел отворить ее. Дверь держал кто то.
– Нельзя, нельзя! – проговорил оттуда испуганный голос. – Он стал ходить по комнате. Крики замолкли, еще прошло несколько секунд. Вдруг страшный крик – не ее крик, она не могла так кричать, – раздался в соседней комнате. Князь Андрей подбежал к двери; крик замолк, послышался крик ребенка.
«Зачем принесли туда ребенка? подумал в первую секунду князь Андрей. Ребенок? Какой?… Зачем там ребенок? Или это родился ребенок?» Когда он вдруг понял всё радостное значение этого крика, слезы задушили его, и он, облокотившись обеими руками на подоконник, всхлипывая, заплакал, как плачут дети. Дверь отворилась. Доктор, с засученными рукавами рубашки, без сюртука, бледный и с трясущейся челюстью, вышел из комнаты. Князь Андрей обратился к нему, но доктор растерянно взглянул на него и, ни слова не сказав, прошел мимо. Женщина выбежала и, увидав князя Андрея, замялась на пороге. Он вошел в комнату жены. Она мертвая лежала в том же положении, в котором он видел ее пять минут тому назад, и то же выражение, несмотря на остановившиеся глаза и на бледность щек, было на этом прелестном, детском личике с губкой, покрытой черными волосиками.
«Я вас всех люблю и никому дурного не делала, и что вы со мной сделали?» говорило ее прелестное, жалкое, мертвое лицо. В углу комнаты хрюкнуло и пискнуло что то маленькое, красное в белых трясущихся руках Марьи Богдановны.

Через два часа после этого князь Андрей тихими шагами вошел в кабинет к отцу. Старик всё уже знал. Он стоял у самой двери, и, как только она отворилась, старик молча старческими, жесткими руками, как тисками, обхватил шею сына и зарыдал как ребенок.

Через три дня отпевали маленькую княгиню, и, прощаясь с нею, князь Андрей взошел на ступени гроба. И в гробу было то же лицо, хотя и с закрытыми глазами. «Ах, что вы со мной сделали?» всё говорило оно, и князь Андрей почувствовал, что в душе его оторвалось что то, что он виноват в вине, которую ему не поправить и не забыть. Он не мог плакать. Старик тоже вошел и поцеловал ее восковую ручку, спокойно и высоко лежащую на другой, и ему ее лицо сказало: «Ах, что и за что вы это со мной сделали?» И старик сердито отвернулся, увидав это лицо.