Оберон (операционная система)
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 2 3 N. Wirth and J. Gutknecht. Project Oberon. Addison-Wesley, 1992.
- ↑ С.Свердлов. Язык программирования Оберон (июль 1999). Дата обращения: 7 июня 2008. Архивировано 14 февраля 2011 года. Раздел «Оберон-системы».
- ↑ ETH - Oberon - Downloads
- ↑ 1 2 Native Oberon Operating System (англ.) (26 января 2003). Дата обращения: 25 октября 2010. Архивировано из оригинала 2 сентября 2010 года.
- ↑ Active Oberon System (англ.). Архивировано 8 августа 2012 года.
Ссылки
- (рус.) Русифицированая версия ETH Oberon for Windows
- (англ.) en:Lilith (computer) — "Лилит", система предшественник.
- (англ.) The ETH Oberon Homepage — официальный сайт системы, языка, сред разработки и др.
- (англ.) Native Oberon Operating System — более подробная информация об операционной системе на официальном сайте.
- (англ.) Инструкции по установке и использованию.
- (рус.) Путеводитель по системам Oberon