Русская Википедия:A2 (операционная система)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

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

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

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

Архитектура

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

Файл:A2ActiveOberonHierarchy.svg
A2 ActiveOberon Hierarchy

Основная часть исходного кода оригинального 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-фреймворкеШаблон:Нет АИ.

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

  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

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Ссылки