Плиточная композиция окна Оберона | |
Разработчик | Никлаус Вирт Юрг Гуткнехт |
---|---|
Написано в | Оберон |
Семейство ОС | Оберон |
Рабочее состояние | Текущий |
Исходная модель | С открытым исходным кодом |
Первоначальный выпуск | 1987 ( 1987 ) | [1]
Доступно в | Английский |
Платформы | Ceres ( NS32032 ), IA-32 , Xilinx Spartan и многие другие |
Тип ядра | Объектно-ориентированный |
Пользовательский интерфейс по умолчанию | Текстовый пользовательский интерфейс |
Лицензия | BSD -стиль [2] |
Предшествовал | Медос-2 |
Официальный сайт | www.projectoberon.net |
Система Oberon [3] — это модульная, однопользовательская, однопроцессная, многозадачная операционная система , написанная на языке программирования Oberon . [4] Первоначально она была разработана в конце 1980-х годов в ETH Zurich . Система Oberon имеет нетрадиционный визуальный текстовый пользовательский интерфейс (TUI) вместо обычного интерфейса командной строки (CLI) или графического пользовательского интерфейса (GUI). Этот TUI был очень инновационным в свое время и повлиял на дизайн текстового редактора Acme для операционной системы Plan 9 от Bell Labs .
Система также превратилась в многопроцессорную, симметричную многопроцессорную (SMP) систему A2 (ранее Active Object System (AOS), [5] затем Bluebottle ) с масштабируемым пользовательским интерфейсом (ZUI).
Операционная система Oberon возникла как часть проекта рабочей станции Ceres на базе NS32032 . Она была написана почти полностью (и в версии 2013 года полностью действительна) на языке программирования Oberon . [6] Базовая система была разработана и реализована Никлаусом Виртом и Юргом Гуткнехтом , а ее проектирование и реализация полностью задокументированы в их книге «Project Oberon». [7] Пользовательский интерфейс и справочник программистов можно найти в книге Мартина Райзера «The Oberon System». [8] Система Oberon была позже расширена и перенесена на другие аппаратные платформы [9] [10] [11] [12] [13] командой из ETH Zurich , и получила признание в популярных журналах. [14] [15] [16] [17] [18] [19] Вирт и Гуткнехт (хотя они и являются действующими профессорами компьютерных наук ) называют себя «программистами по совместительству» в книге Project Oberon . [7] В конце 2013 года, за несколько месяцев до своего 80-летия, Вирт опубликовал второе издание Project Oberon. [20] В нем подробно описывается реализация системы Oberon с использованием процессора RISC собственной разработки, реализованного на плате Xilinx с программируемой пользователем вентильной матрицей ( FPGA ). Она была представлена на симпозиуме [21], организованном в честь его 80-летия в ETH Zurich . Тем временем было реализовано несколько эмуляторов для этой версии. [22] [23] [24] [25] [26]
По словам Йозефа Темпла, бывшего члена группы разработчиков Швейцарского федерального технологического института в Цюрихе , а затем члена Института системного программного обеспечения Университета имени Иоганна Кеплера в Линце , где поддерживалась одна ответвленная версия (V4), генеалогия различных версий системы Oberon выглядит следующим образом:
Год | Имя | Замечание | |
---|---|---|---|
1985 | Начало проекта Оберон | ||
1987 | В1 | Внутреннее использование в ETHZ ; [3] [27] только простые возможности редактирования текста | |
1991 | В2 | Расширяемая текстовая модель и специальный редактор Write [28], поддерживающий эти расширения | |
1991 | Система 3 | Расширения ядра , поддерживающие постоянные объекты и библиотеки объектов, поддерживающие встраивание объектов и связывание объектов; гаджеты, скрипт (текстовый редактор), Illustrate (графический редактор) [15] | |
1992 | Публикация трилогии «Оберон»: «Проект Оберон», [7] «Система Оберон», [8] и «Программирование в Обероне» [6] | ||
1992 | В4 | Функции Write интегрированы в стандартный текстовый редактор | |
Рел. 1.4 | Настольные компьютеры | ||
1993 | Отн. 1.5 | Общая модель документа | |
1994 | В4 | Ханспетер Мёссенбёк назначен в JKU (Линц) , разработка V4 переносится туда | |
1995 | Версия 2.0 | Пространство документа расширено на весь Интернет; улучшенный редактор растровых изображений: Rembrandt; онлайн-уроки | |
2000 | ETH-Оберон | Система-3 переименована в ETH-Oberon | |
2002 | АОС | Active Object System, [5] также Active Oberon System, позже переименованная в Bluebottle, затем A2 | |
2013 | ПО 2013 - V5 | Повторная реализация оригинальной системы Oberon в FPGA |
Oberon имеет текстовый пользовательский интерфейс (TUI), который сильно отличается от терминального пользовательского интерфейса . Он сочетает в себе удобство «укажи и щелкни» графического пользовательского интерфейса (GUI) с лингвистической силой интерфейса командной строки (CLI) и тесно связан с соглашениями об именовании языка Oberon. Текст, появляющийся практически в любом месте экрана, можно редактировать и использовать в качестве ввода команд . Команды активируются щелчком средней кнопкой мыши [29] по текстовому фрагменту формы Module.Command
(необязательно с последующими параметрами, которые завершаются ~
). Команда определяется любой процедурой, которая экспортируется и имеет пустой список аргументов. Параметры команды должны быть определены до выполнения щелчка средней кнопкой мыши и должны быть явно просканированы и извлечены процедурой. Во время выполнения команды не происходит никаких проверок или вопросов. Иногда это называют немодальным пользовательским интерфейсом (UI). Ничего похожего на командную строку не требуется.
Хотя TUI сильно отличается от командной строки, он очень эффективен и мощен. [30] Крутой подъем на ранней кривой обучения делает его немного сложным поначалу. Вопросы не задаются: это преднамеренное решение дизайна, к которому нужно привыкнуть. Большинство редакторов спрашивают пользователя при закрытии измененного текста: в системе Oberon это не так. Использование TUI и интерфейса программирования полностью документировано в книге Мартина Райзера «Система Oberon». [8] Краткое введение в пользовательский интерфейс можно найти на домашней странице Никлауса Вирта . [31] Более поздние версии системы Oberon, Oberon V4 (V4, иногда также называемая Linz-Oberon) и Oberon System 3 (или S3, иногда также называемая ETH-Oberon или Spirit of Oberon), улучшили базовый интерфейс с помощью различных, но несовместимых реализаций для кнопок, выпадающих меню и других активных элементов. V4 использовал для этой цели выделенный управляющий символ, встроенный в обычный текст, в отличие от System 3, которая расширила ядро , введя постоянные объекты. Оба расширения включают большой набор элементов пользовательского интерфейса.
Освоение пользовательского интерфейса Oberon, как чисто текстового, так и так называемой Gadgets System (в S3), нетривиально. Таким образом, после успешной установки Oberon System 3 рекомендуется изучить Oberon System 3 Tutorial Андре Фишера. Расширенная версия этого учебника была опубликована в виде книги [32] , которая сейчас не издается. Вся книга доступна в электронном виде по лицензии на одного пользователя в каждой установленной версии System 3 (Windows, Linux или Native, т. е. также с набором Gadgets от OLR [33] ). Более подробную информацию о том, как получить собственную копию Oberon Companion, можно найти в разделе Getting Started в Oberon Wikibook.
Похожие пользовательские интерфейсы еще не появлялись в более распространенных операционных системах. Система Acme Роба Пайка для Plan 9 из Bell Labs была во многом вдохновлена Oberon TUI. Сложно сказать, повлиял ли интерфейс рабочего листа Macintosh Programmer's Workshop на Oberon TUI или наоборот: Oberon System была основана на предыдущей компьютерной разработке Вирта, Lilith , и как Apple Macintosh (и его предшественник Lisa ), так и Oberon System (на Ceres и его предшественнике Lilith) имеют одни и те же корни: все они были вдохновлены Alto, разработанным в Xerox PARC .
V1 была первой пригодной к использованию версией незадолго до публикации трилогии Oberon [6] [7] [8] . Значительное изменение в текстовой модели вместе с редактором Write [28] дало V2. Как предвещала таблица в разделе История выше, в начале 1990-х годов произошло крупное ответвление: V4 против System 3: группа вокруг Юрга Гуткнехта представила постоянные объекты и объектные библиотеки, тем самым расширив ядро. Группа вокруг Ханспетера Мёссенбёка реализовала схожие функции, введя активные элементы, сопоставленные со специальным символом, тем самым расширив шрифты без изменения ядра. System 3 иногда также называли Spirit of Oberon и позже переименовали в ETH Oberon, тогда как V4 иногда также называли Linz Oberon.
По состоянию на 2017 год, Oberon OS доступна для нескольких аппаратных вычислительных платформ , как правило, в бесплатных версиях и из нескольких источников, что довольно запутанно. Oberon OS обычно чрезвычайно компактна. Даже с компилятором Oberon , различными утилитами, включая веб-браузер , сетевое взаимодействие TCP/IP и графический интерфейс, полный пакет можно сжать до одной 3,5- дюймовой дискеты . Существуют версии, которые эмулируют ОС Oberon в другой операционной системе, и версии, которые работают на голом оборудовании. Последние называются Native Oberon. Существуют собственные версии для платформ Ceres , Intel IA-32 и ARM . В 2013 году Никлаус Вирт адаптировал базовую систему, описанную в «Project Oberon» [7], к текущему дизайну ПЛИС . Согласно предисловию к изданию 2013 года, вся система компилируется менее чем за 10 секунд на плате Spartan-3. Эту версию иногда также называют V5, несмотря на то, что она гораздо более похожа функционально на оригинальную V1, работающую на Ceres, чем на любую из более поздних версий.
Версия Oberon System 3, [15] которая более интегрирована в ОС Microsoft Windows, чем другие реализации, была названа Plugin Oberon. [34] Plugin Oberon поддерживал OLE , Netscape Plugins и двоичный формат Oberon Module Interchange (OMI) или тонкие двоичные файлы , которые позволяли переносить объектный код между архитектурами Intel x86 , Motorola 68K и PowerPC . Тонкие двоичные файлы были изобретены Майклом Францем в начале 1990-х годов. Они были мотивированы и противопоставлены толстым двоичным файлам, изобретенным Apple во время перехода от архитектур 68k к PowerPC. [35] OMI предоставлял переносимый код, основанный на сжатой версии абстрактного синтаксического дерева. Подход сжатого абстрактного синтаксического дерева для переносимого представления кода возрождается в мире Java для GraalVM и Truffle .
Версия под названием Oberon V4 (см. также Историю) ближе к оригинальной операционной системе, разработанной Виртом и Гуткнехтом. Первоначально она была разработана в ETHZ, но когда HP Mössenböck перешел в Institut für Systemsoftware в Университете Иоганна Кеплера в Линце (JKU), разработка V4 также переместилась. Таким образом, V4 иногда также называют Linz-Oberon в отличие от ETH-Oberon. Самая последняя версия V4 и расширения доступны в JKU. Oberon V4, по-видимому, осиротела, с 2000 года почти не было изменений. Другим репозиторием V4 является Oberon V4 Клаудио Нидера, который также показывает разницу между различными реализациями V4. С 2013 года эта страница переехала/зеркалируется на SourceForge. V4 ближе к тому, что сейчас назвали бы интегрированной средой разработки, чем к собственной операционной системе. Для V4 было написано много расширений, которые до сих пор доступны на ftp-сервере SSW в JKU; некоторую документацию можно найти на их веб-страницах, дополнительная информация обычно включена в пакеты и представлена в специальном расширенном текстовом формате Oberon.
Около 2010 года кафедра компьютерных наук в ETH Zurich начала изучать активные объекты и параллелизм для операционных систем и выпустила раннюю версию нового языка Active Oberon и новую операционную систему для него, сначала названную Active Object System (AOS) в 2002 году, [5] затем из-за проблем с товарными знаками переименованную в Bluebottle в 2005 году, а затем переименованную в A2 в 2008 году. Она доступна в ETH Zurich с большей частью исходного кода через Интернет . Собственные версии A2 работают на одно- и многопроцессорном оборудовании IA-32 и x86-64 , как на голом железе, так и внутри виртуальных машин. Ранее она также была доступна для семейства процессоров StrongARM . Версии, которые выполняются как программы в других операционных системах, доступны в Windows (WinAos), Unix (UnixAos), Linux (LinuxAos) и macOS (DarwinAos). Более подробная информация об A2 находится на страницах русской Википедии об A2.
В рамках промышленного исследовательского проекта [36] группа Native Systems из ETH Zurich разработала операционную систему для конкретных приложений под названием stailaOS , которая основана на последней версии Oberon OS. Она предназначена для таких применений, как аналитика в реальном времени , финансовые приложения, планирование ресурсов предприятия (ERP) на основе основной памяти и т. д.
Native Oberon — это система Oberon, которая работает на голом оборудовании. [37] PC-Native Oberon — это версия, которая работает на оборудовании ПК IA-32 . V4 Native Oberon никогда не существовало, поэтому вся информация в этом разделе подразумевает, что это System 3. Native Oberon имеет небольшие требования к оборудованию: 133 МГц Pentium, 100 МБ жесткий диск, графическая карта VESA 2 с минимальным разрешением 1024x768 пикселей, дополнительная сетевая карта 3Com . Базовая система работает с одного жесткого диска, а большее количество программного обеспечения можно установить по сети. Полная установка включает в себя графический интерфейс Gadgets. Он полностью написан на языке Oberon. Последняя доступная версия — 2.3.7. Она датирована 5 января 2003 года и иногда также помечена как Update/Alpha, особенно на ftp-сервере ETHZ. Более поздние версии были включены в AOS/BlueBottle/A2 .
Версия под названием Linux Native Oberon (LNO) использует Linux в качестве уровня абстракции оборудования (HAL). Ее цель — быть максимально совместимой с PC-Native Oberon. Другие версии Oberon System, без Native в названии, имели частично измененные интерфейсы низкоуровневых модулей. В 2015 году Питер Маттиас возродил LNO под названием Oberon Linux Revival (OLR) [33] как многоплатформенный дистрибутив, работающий без проблем на Intel x86, ARM , MIPS и RISC-V . Он хорошо работает на Raspberry Pi и на недорогом (снятом с производства) компьютере CHIP ; с некоторыми настройками (настройка членства в группе и/или разрешений на некоторых устройствах) он хорошо работает на Tiny Core Linux . OLR взаимодействует с ядром Linux посредством прямых системных вызовов . По состоянию на июнь 2017 года [обновлять]в OLR отсутствует сетевой уровень.
В 2013 году Вирт и Пол Рид завершили повторную реализацию оригинальной системы Oberon для стартовой платы Digilent Xilinx Spartan 3 FPGA . Работа включает в себя пересмотр «Project Oberon», [7] обозначенного как Project Oberon (New Edition 2013). В 2015 году Рид сотрудничал с Виктором Юрковским для создания OberonStation, компьютера на базе Xilinx Spartan 3, разработанного специально для запуска Oberon. С тех пор система была портирована на плату разработки Xilinx Spartan 6 FPGA Pepino компанией Saanlima Electronics и на плату Digilent Nexys A7-100 FPGA Trainer на базе Xilinx Artix 7 компанией CFB Software. Петер де Вахтер реализовал эмулятор для него, который также был портирован на Java и JavaScript Михаэлем Ширлом, работает в современных браузерах, а также портирован на Free Pascal /Ultibo Маркусом Греймом и на Go. [22] [23] [24] [25] Андреас Пиркльбауэр поддерживает экспериментальную версию и расширения Project Oberon 2013 на GitHub .