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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
A2
Розробник Федеральна вища технічна школа Цюриха і Ніклаус Вірт
Репозиторій
Ліцензія Ліцензія BSD
www.ocp.inf.ethz.ch/wiki/OCP/Home

A2 (раніше Bluebottle) — модульна об'єктно-орієнтована операційна система з автоматичним керуванням пам'яттю і підсистемою м'якого реального часу, розроблювана в ETH Zurich, заснована на ядрі Active Object System — подальшому розвитку системи ETH Oberon. Забезпечує компактне оточення часу виконання для мови Active Oberon, яка дозволяє розробляти ефективні системи, засновані на активних об'єктах, що виконуються безпосередньо на «залізі» без проміжного інтерпретатора або віртуальної машини. А2 містить усі інструменти, необхідні для розробки — компілятор, ІСР, редактор форм, профілювальник, редактор XML, асемблер тощо.

Активний об'єкт в A2 подається як сукупність традиційного для сучасних мов ООП поняття «об'єкт» і виконуваної в контексті цього об'єкта «активності» (нитки). У цій реалізації Active Oberon активний об'єкт може мати, крім його активності, ще й активності предків.

Іншими відмінностями A2 від поширеніших операційних систем є аскетичний дизайн, інтерфейс користувача, що підтримує метафору «наведи і клацни» для виконання команд безпосередньо з тексту в будь-якому вікні подібно до гіперпосилань у веб-браузері. Типобезпечна мова програмування, автоматичне керування пам'яттю, збирання сміття, набір примітивів синхронізації доступу до внутрішніх елементів об'єктів із багатьох конкурентних потоків (активностей).

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

Архітектура[ред. | ред. код]

Ієрархія модулів A2 та Active Oberon[ред. | ред. код]

Ієрархія A2 ActiveOberon

Основна частина сирцевого коду оригінального 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», що є скороченням від «Windows Manager» (менеджер вікон). Цей інтерфейс функціонально відповідає графічним менеджерам вікон системи Unix/Linux[джерело?].

Подальший розвиток системи полягав у поліпшенні програм для аудіо- та відеомультимедіа-взаємодії програм через мережеве з'єднання за допомогою механізмів A2. Також написано модулі для різних відео- й аудіокодеків і кодування передаваної інформації.

Як засіб віддаленої взаємодії з A2 пропонується сервер віддаленого доступу VNC (ліва частина діаграми).

В A2 є можливість обміну повідомленнями та налаштуваннями елементів між програмами через мережу за допомогою Properties — набору методів та описів об'єктів у форматі XML для збереження конфігурації об'єктів. Properties можна використовувати для створення примірників об'єктів A2. Такі можливості можна порівняти з лінкуванням інтерфейсів типу DCOM/SOAP у системах Windows NT, Windows NT 4.0 та Java -фреймворку[джерело?].

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

  1. Модель модуля — це, по суті, формальний опис у вигляді скінченного автомата його активності[2][3].
  2. Модульне тестування (вбудована можливість Active Oberon)[4].
  3. Можливість побудови загальної схеми складного проєкту[5].

Деталі конфігурації та реалізації[ред. | ред. код]

Ця система має багато параметрів (аж до асемблерного коду) у файлі конфігурації, який, по суті, був завантажувачем.

Найпопулярнішими додатковими опціями конфігурації були 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[7].
  • Наприкінці липня 2002 року зроблено завантажувальний CD з підтримкою VESA BIOS Extensions[10][11].
  • Наприкінці серпня 2002 року студентам Andre, Patrik, Pieter, Folks зауважено щодо нестачі документації (можливо, це був важливий момент для майбутнього цієї OS)[12]. Тоді ж викладачі припинили виділяти ресурси веб-сервера під Native Oberon на користь Bluebottle (зараз те саме відбувається з A2 — це типова історія для освітніх проєктів)[13].
  • 2003 року вийшов реліз Win AOS[14] — операційної системи, яка запускалася поверх Windows.
  • У червні 2003 року запропоновано спеціальні клавіші для масштабування простору Стільниці (до цього працювало тільки колесо миші)[15].
  • У листопаді 2004 року додано можливість працювати з USB-флешки[16].

Bluebottle[ред. | ред. код]

Через претензії торгових марок наступну версію ОС 2005 року офіційно назвали Bluebottle[6]. Ця система з нитками та активностями запускалася безпосередньо на Intel-сумісних однопроцесорних системах та процесорах StrongARM/XScale, а також на віртуальних системах QEMU, VMware та Virtual PC 4.0 (тільки для Macintosh).

  • 2006 року в Bluebottle додано кілька драйверів для різного обладнання і виправлено деякі помилки в мережевих застосунках[17].
  • 15 листопада 2006 випущено реліз WinAos під Windows 3.0[18].
  • У лютому 2010 року з'явилося підсвічування синтаксису[19].

A2[ред. | ред. код]

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

Застосунки[ред. | ред. код]

  • Media Player — програвач файлів форматів AVI, DivX, MPEG, MP3, OGG/Vorbis, WAV
  • Перегляд зображень у форматах BMP, GIF, JPEG, PNG, SVG
  • TV-приймач
  • Programming Editor — редактор сирцевого коду програм
  • Вебсервер
  • FTP-сервер
  • Архіватори (ZIP, TAR)
  • CAPO — Computational Analysis Platform for Oberon — платформа обчислювального аналізу для Oberon
  • OCTK — Oberon Computational Toolkit — обчислювальний інструментарій Oberon
  • ETH Oberon для A2
  • VNC — сервер
  • FDD — графічний візуалізатор простору-часу
  • UDPChat — UDP чат-месенджер
  • Raycaster — гра
  • WMColorLines — гра

та багато інших застосунків.

Сумісність[ред. | ред. код]

Станом на 2012 рік A2 реалізовано для:

A2 також може виконуватися на окремих віртуальних машинах, наприклад:

і поверх хостових ОС Windows, Unix, Linux, Darwin.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Thomas Martin Frey. Bluebottle : A Thread-safe Multimedia and GUI Framework for Active Oberon. — Швейцария, 2005. — 30 квітня. — С. 57-58.
  2. @Kemet (27 травня 2015). Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней. Хабрахабр. Хабрахабр. Архів оригіналу за 7 січня 2017. Процитовано 6 січня 2017.
  3. SAGE's Homepage. Архів оригіналу за 7 січня 2017. Процитовано 6 січня 2017.
  4. Yaroslav Romanchenko. [Oberon] Some strange behaviour in A2 (англ.). Архів оригіналу за 4 березня 2016. Процитовано 6 січня 2017.
  5. Alexander Ilin. [Oberon] Import hierarchies of display modules (англ.). Архів оригіналу за 4 березня 2016. Процитовано 6 січня 2017.
  6. а б ETH Oberon home page. web.archive.org. 21 лютого 2005. Архів оригіналу за 21 лютого 2005. Процитовано 8 січня 2024.
  7. а б [Oberon] Re (2): Bluebottle OS available. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  8. Oberon for .NET Homepage. www.bluebottle.ethz.ch (англійською) . Архів оригіналу за 27 червня 2007. Процитовано 8 січня 2024.{{cite web}}: Обслуговування CS1: bot: Сторінки з посиланнями на джерела, де статус оригінального URL невідомий (посилання)
  9. ETH - Oberon - Language. web.archive.org. 8 червня 2008. Архів оригіналу за 8 червня 2008. Процитовано 8 січня 2024.
  10. Screenshot Gallery. web.archive.org. 1 липня 2002. Архів оригіналу за 1 липня 2002. Процитовано 8 січня 2024.{{cite web}}: Обслуговування CS1: bot: Сторінки з посиланнями на джерела, де статус оригінального URL невідомий (посилання)
  11. [Oberon] Re: BlueBottle CD. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  12. [Oberon] Bluebottle documentation. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  13. [Oberon] Future of Native Oberon and Bluebottle. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  14. [Oberon] ETH Win Aos Oberon, first alpha release. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  15. [Oberon] bluebottle. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  16. [Oberon] Bluebottle, USB Controller, UHCI. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  17. AW: [Oberon] Bluebottle: USB Ethernet Adapter support. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  18. [Oberon] WinAos / Bluebottle for Windows 3.00. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  19. [Oberon] New native A2 release. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  20. [Oberon] Aos/A2 system size. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  21. [Oberon] A2 System Size. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  22. Welcome to A2. www.a2.ethz.ch (англійською) . Архів оригіналу за 1 січня 2013. Процитовано 15 січня 2024.{{cite web}}: Обслуговування CS1: bot: Сторінки з посиланнями на джерела, де статус оригінального URL невідомий (посилання)
  23. [Oberon] New A2 native release. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  24. [Oberon] call ioctl() function in linux from AOS. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  25. [Oberon] Re(2): Module naming in A2. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  26. [Oberon] Some strange behaviour in A2. lists.inf.ethz.ch. Процитовано 8 січня 2024.
  27. ETH Zurich - Computer Science - Native Systems Group J. Gutknecht. Архів оригіналу за 19 квітня 2012. Процитовано 24 липня 2013.

Посилання[ред. | ред. код]