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

Перейти к навигацииПерейти к поиску
Скриншот ОС Oberon (ETH), на экране несколько окон с текстом и графикой.

Oberon — операционная система, разработанная Никлаусом Виртом и Юргом Гуткнехтом[нем.] (ETHZ) для однопользовательской рабочей станции Ceres в рамках «Проекта Оберон»[1]. Как писали авторы, главной целью проекта было «спроектировать и реализовать всю систему с нуля, и структурировать её таким образом, чтобы её можно было описать, объяснить и понять целиком». В самом деле, книга[1] объёмом 550 страниц содержит полное описание системы вместе с исходными текстами.

Oberon написана на разработанном в рамках этого проекта одноимённом языке программирования. Она наследует предыдущему проекту Вирта и Гуткнехта — операционной системе для персональной рабочей станции Lilith (англ.), а также ОС Cedar, разработанной в Исследовательском центре корпорации Xerox в Пало-Альто (Xerox PARC), где Вирт и Гуткнехт провели годовой академический отпуск в 1984—1985 годах. Именно знакомство с мощной, но сложной и неустойчивой ОС Cedar побудило Вирта и Гуткнехта начать «Проект Оберон».[1]

В системе Оберон весьма элегантно и минималистично реализован ряд технических идей (начиная с языка реализации), которые удобно обозначать как Оберон-технологии, потому что, хотя и не все из этих идей по отдельности являлись совершенно новыми, но во всяком случае их отбор и тщательная интеграция в единой весьма надежной системе, — которая является образцом тщательного общего дизайна и тщательной проработки деталей, — несомненная заслуга Вирта и Гуткнехта. Влияние идеологии проекта Оберон можно проследить, например, в системах LabVIEW и Inferno.

Доказательством эффективности Оберон-технологий стал тот факт, что ОС Оберон была в короткие сроки перенесена аспирантами Вирта и Гуткнехта на несколько разных платформ, включая Amiga, PC и другие[2].

В настоящее время доступны версии системы для разных платформ.[3].

Взаимодействие Oberon с пользователем основано на подходе текст как интерфейс. Существует и графический интерфейс пользователя с поддержкой протоколов FTP, Telnet, HTTP, Ethernet и других[4].

Oberon — модульная система: все компоненты системы подгружаются по мере необходимости.

Последняя версия операционной системы — 2.3.6, выпущена в 2000 году[4].

Наследником Oberon стал Active Oberon (AOS)[5], который разрабатывается в ETHZ с участием Oberon Community.

Программирование в системе Oberon подразумевает расширение среды выполнения Oberon. В современном течении, программирование - это написание программы. После написания, программа запускается, запрашивает входные данные, выполняет вычисления, а затем выводит результат. Это может происходить много раз, пока программа не завершится и не освободит использованные ресурсы.

В Обероне нет программ. Программы - это пережиток тех времен, когда у компьютеров было мало памяти и других ресурсов. Программы ждут своей очереди, пока пользователь не решит их выполнить. После завершения программа удаляет себя из памяти, чтобы освободить место для следующей программы. Связь между программами, выполняющимися в разное время, происходит путем сохранения данных в энергонезависимом хранилище. Однако сегодня компьютеры имеют больше памяти, и программы выполняются одновременно друг с другом (многозадачность) и ресурсы компьютера делятся между всеми запущенными программами. Но к сожалению, коммуникация между разными программами продвинулась не намного дальше, чем в ранние времена пакетной обработки, что делает взаимодействие программ трудной задачей.

   Причину такого положения дел можно проследить в технологии написания программ. Если программа делает неправильные вещи, она может потенциально повредить целостность системы и тем самым негативно повлиять на другие работающие программы. Большинство современных языков программирования позволяют писать программы, которые могут разрушить систему. Вместо того чтобы решать проблему в корне (на уровне языка программирования), системы начали использовать концепцию защиты памяти. При использовании защиты памяти программа не позволяет другим программам повредить ее. Но эта защита также препятствует легкому общению и взаимодействию между разными программами.

   В отличие от всего этого, система Oberon является примером открытой и расширяемой системы. Открытость означает, что практикуется высокий уровень взаимодействия, и повторного использования кода между приложениями. Расширяемость означает, что любой может добавить новую часть к системе Oberon. Эта новая часть может использовать часть, добавленную кем-то другим, или сама может быть использована другой частью, добавленной позже. Чтобы достичь такой гибкости, Oberon полностью отказывается от понятия "программа" и вместо этого предлагает две концепции: модули и безопасность типов.

К особенностям системы Oberon относятся:

- Быстрая компиляция.

- Быстро запускается, быстро завершается, быстрый отклик.

- Новый подход к редактированию текста (и не только текста) использующий трехкнопочную мышь и "интерклики" ускоряющие операции редактирования.

- Простая и надежная, плоская файловая система исключающая коллизии путей к файлу, избавляющая от многих проверок и облегчающая разработку приложений.

- Динамическое связывание модулей во время выполнения.

- Четкая модульная структура. Включает модули для нескольких полезных типов данных, таких как текст, шрифты и изображения. Большая степень повторного использования кода приводит к созданию очень компактных приложений.

- Стандартные модули ввода/вывода.

- Встроенный и быстрый сборщик мусора для сбора неиспользуемых объектов. Поддерживается финализация объектов.

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

- Исключения приводят к отображению трассировки стека. Возможность прямого просмотра состояния запущенного модуля.

- Возможность вызова "командных" процедур непосредственно из пользовательского интерфейса.

- Полностью безмодельный графический интерфейс пользователя с поддержкой графических примитивов. Одновременная поддержка как перекрывающихся, так и плиточных оконных систем.

- Возможность конфигурирования рабочей среды.

- Поддержка базовой иерархической файловой системы (Apple HFS, файловая система DOS) и WYSIWYG-печати через драйверы хост-принтеров.

- Поддержка шрифтов TrueType.

- Возможность прямой печати в postscript и инкапсулированный postscript.

- Поддержка постоянных объектов. Объекты и файлы данных переносимы между всеми системами Oberon. Поддержка прикрепления кода к объектам, чтобы они стали переносимыми между различными реализациями Oberon.  

- Компонентная структура, позволяющая интерактивно создавать и модифицировать графические приложения без программирования. Включен большой набор полезных и расширяемых компонентов. Можно писать новые компоненты или расширять существующие. Поддержка модели MVC.

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

- Стандартный редактор текстов и документов с поддержкой встроенных объектов.

- Настраиваемые пользователем клавиатурные макросы. Компилятор компилирует непосредственно из текста, где бы этот текст не находился (не из файла) .

- Пользовательский интерфейс на основе документов с возможностью генерации динамических документов.

- Полная интеграция с сетями TCP/IP с поддержкой сетевых документов.

Примечания

  1. 1 2 3 N. Wirth and J. Gutknecht. Project Oberon. Addison-Wesley, 1992.
  2. С.Свердлов. Язык программирования Оберон (июль 1999). Дата обращения: 7 июня 2008. Архивировано 14 февраля 2011 года. Раздел «Оберон-системы».
  3. ETH - Oberon - Downloads
  4. 1 2 Native Oberon Operating System (англ.) (26 января 2003). Дата обращения: 25 октября 2010. Архивировано из оригинала 2 сентября 2010 года.
  5. Active Oberon System (англ.). Архивировано 8 августа 2012 года.

Ссылки

См. также