Компьютерные системы Оберон
Начало
[править]"... как можно проще, но не проще". А.Эйнштейн. |
"Компьютерная система Оберон" включает в себя множество аспектов[1]. Для ее обзора начните со статьи в Википедии. Документацию см. в разделе библиографии и ссылок. Другие варианты использования названия Oberon см. на странице разграничения.
Целевая аудитория
[править]Новичок, желающий изучить вычислительную технику с самых основ, оценит свободу от чрезмерной и ненужной сложности, навязанной другими системами.
Более продвинутый пользователь найдет эффективный инструмент с полным набором исходников, позволяющих углубленно изучать систему.
Системный инженер может адаптировать Oberon к специфическим требованиям, таким как интенсивные вычисления, вычисления больших данных и автоматизация.
Типичное использование проходит через этапы:
- Установка
- Конфигурация
- Представление
- Исправление ошибок
- Настройка и разработка
Читатель должен установить и использовать хотя бы одну систему Oberon. В качестве подготовки, вводный курс по основам программирования будет полезен, но не обязателен.
Системные характеристики
[править]Система Oberon была разработана как автономная персональная рабочая станция и остается жизнеспособной в этом качестве. Она была разработана для достижения компактности, понятности, эффективности, надежности, отзывчивости[2], безопасности и простоты. Чрезвычайная компактность сразу же бросается в глаза новичку, устанавливающему ETH Oberon на пустой ПК. Вся система, включая приложения, документацию, графический интерфейс, шрифты и исходные тексты, была установлена с десяти HD-дискет. См. раздел Примеры использования.
Этот викиучебник
[править]Система Oberon состоит из набора модулей. В этом документе представлено по одному модулю на странице. Система Oberon содержит сотни, а в некоторых случаях и тысячи модулей. Здесь представлена лишь небольшая выборка модулей. Тем не менее, даже это может способствовать пониманию, а одно небольшое исправление ошибки может быть существенным для успешного выполнения задачи. Примером является Sort.Mod от ETH Oberon. Кроме того, существуют страницы Tool, каждая из которых представляет собой шаблон исполняемых команд. Например: Sort.Tool. Инструмент для сборки системы - это шаблон для сборки всей системы, включая инсталлятор системы и пакеты модулей.
Специалисты, внесший наибольший вклад в разработку системы, перечислены на данной странице.
Историческая перспектива
[править]После разработки языков программирования Euler, Algol W, Pascal, Modula и Modula-2, Никлаус Вирт приступил к созданию языка Oberon (сообщение о языке), первоначальный выпуск которого состоялся в 1986 году. Дизайн языка был обусловлен желанием создать операционную систему, похожую на ОС Alto, и пониманием того, что в Modula-2 не было необходимой языковой конструкции, которую мы бы сейчас назвали наследованием типов. Вирт выбрал другую точку зрения и назвал ее расширением типов. Помимо других синтаксических различий, которые были в основном упрощениями, расширение типов является основным различием между Modula-2 и Oberon. Познакомившись в Xerox PARC, Вирт в сотрудничестве с Юргом Гуткнехтом создал полноценную операционную систему, написанную на языке Oberon. Эта система также была названа Oberon. Различие между языком и системой обычно очевидно из контекста, в котором встречается этот термин.
В последующих разработках небольшие синтаксические изменения создали различные диалекты языка (Oberon-2, Компонентный Паскаль, Active Oberon и Oberon-07), с совместимостью или ее отсутствием. Разновидности операционной системы также развивались, что опять же влекло за собой небольшие несовместимости. Наиболее известны следующие четыре варианта ОС:
- ETH Oberon (бывшая System 3, S3) написана на Oberon-2[4].
- V4 Oberon (он же Linz-Oberon) в основном написана на Oberon, но со многими расширениями в Oberon-2.
- AOS (она же Bluebottle и A2), написана на Active Oberon.
- Oberon V5, описана в Project Oberon, 2013 Edition написана на Oberon-07.
При разумных усилиях, несовместимости всегда можно устранить, чтобы обеспечить перенос исходного текста из одной системы в другую.
Помимо самостоятельной операционной системы, Oberon была реализована как эмулированная операционная система поверх других систем, за десятилетия до того, как виртуализация стала популярным словом.
Наиболее известной из этих эмулированных систем была реализована Oberon V4, поверх SunOS 1 и 2, Ultrix, Irix, AIX, MacOS 7,8,9 (как 68K, так и Power PC), AmigaOS, TOS (Atari), OS/2, Microsoft Windows, HPUX и (конечно же) Linux[5]. Oberon V4 иногда также называли Linz-Oberon, в связи с тем, что он поддерживался группой вокруг Ханспетера Мёссенбёка, который присоединился к факультету JKU Linz в 1994 году. Но также System 3 была реализована поверх другой операционной системы для MacOS (68K и PowerPC), SunOS (SPARC и x86) и Microsft Windows. A2 работает как эмулированная ОС на Microsoft Windows, Linux и Solaris (x86). В 2015 году Питер Маттиас возродил System 3 под названием "Oberon Linux Revival" (OLR) как многоплатформенную концепцию, работающую как в режиме framebuffer-mode, так и в режиме X-Window System на оборудовании X86, Mips и ARM под Linux. Более подробную информацию и ссылки на обширную литературу см. в статьях об языке и об ОС.
Варианты системы
[править]Система Oberon работает непосредственно на разных архитектурах и как подсистема в операционных системах (хостах). Порядок следования строк таблицы, хронологический. Для каждого варианта строки, ссылка во втором столбце ведет к дополнительной информации.
Примеры использования
[править]Oberon используется в качестве ОС для рабочих станций на курсе по построению систем в ETHZ.
Встроенные системы
В настоящее время большой интерес к разработке Oberon проявляют встраиваемые системы. Astrobe предоставляет интегрированную среду разработки на базе MS Windows для редактирования исходного текста и создания исполняемых файлов для промышленных систем управления. Компания Radiar использует промышленный контроллер A2 Swiss в системе смешивания пигментов.
Персональная рабочая станция
Из всех систем ETH Oberon, V4 и A2 имеют самый широкий диапазон разработки на уровне приложений для персональной рабочей станции. Тем не менее, возможности ограничены по сравнению с привычными коммерческими системами и Unix-подобными системами. При использовании подсистемы Oberon в одной из этих привычных систем, преимущества объединяются. Подсистема может быть установлена как приложение, например, UnixA2. В качестве альтернативы подсистема может быть гостем гипервизора, как в случае, когда ETH Oberon размещается в QEMU. Подсистема также может быть эмулирована; ярким примером является эмулятор RISC Oberon. См. таблицу Варианты системы.
В настоящее время ведущие разработки машин для рабочих станций ведутся в компании SkuTek Instrumentation. Машины RiskZero и RiskFive перечислены в разделе Компьютеры
Установка
[править]Выбирается система и используя ссылку в таблице Варианты системы берется установочный архив. Инструкции по установке и настройке системы приведены в последнем столбце таблицы. Для некоторых систем инструкции также доступны на странице, посвященной конкретной системе, ссылка на которую находится во втором столбце.
ETH Oberon
[править]ETH Oberon может быть установлена и запущена на пустом ПК и аналогично подсистеме Oberon в A2 - на платформе-хосте Windows. По сравнению с V5, ETH Oberon имеет относительно продвинутые возможности на уровне приложений, включая графический интерфейс Gadgets. Списанные настольные и портативные ПК, способные работать с ETH Oberon, широко доступны и как правило, бесплатны.
A2 и UnixAOS
[править]A2 может быть установлена и запущена на "голом" ПК и как эмулированная ОС на различных платформах. A2 содержит подсистему Oberon, очень похожую на ETH Oberon. Компактность и скорость выполнения задач пользовательского уровня, таких как электронная почта, разительно отличается от аналогов в хост-системе. A2 также хорошо работает на многих настольных компьютерах и ноутбуках, которые считаются устаревшими для коммерческих операционных систем.
V4
[править]Архивы доступны на JKU Linz и на Sourceforge. Установочные инструкции для Linux и для MS Windows. Это также полезно для Amiga, HPUX, Macintosh, MIPS, PowerMac, Sparc и UV4.
V5
[править]Для установки на машины с FPGA обратитесь к документации Н. Вирта и Пола Рида. Эмуляторы Oberon RISC работают на современных MS Windows, Unix-подобных системах и macOS. Обратитесь к инструкциям автора интересующего вас эмулятора. Для Android имеются дополнительные примечания. На некоторых машинах размер блочной памяти с произвольным доступом (BRAM) может ограничивать цели разработки.
Начало работы
[править]Пользовательский интерфейс системы Oberon удивляет с первого взгляда.[20] Это так называемый интерфейс пользователя (TUI), который сочетает в себе удобство графического интерфейса пользователя (GUI) с лингвистической силой интерфейса командной строки (CLI). Он тесно связан с соглашениями об именовании языка Oberon. Любой текст, появляющийся (почти) в любом месте экрана, можно редактировать и использовать в качестве ввода/активации команд. Команды активируются нажатием средней кнопки мыши СКМ на текстовый фрагмент вида:
Модуль.Процедура
то есть, модуль и процедура разделены символом точка ".", далее следуют, через пробел, параметры, которые завершаются символом ~ (тильда). Команда также может определятся с процедурой, которая не имеет параметров. Параметры команды должны быть определены перед нажатием СКМ и должны быть явно отсканированы и получены процедурой. Во время выполнения команды не проводится никаких проверок и не задается никаких вопросов. Это иногда называют "немодальным" пользовательским интерфейсом (UI). Ничего похожего на командную строку не требуется. Хотя TUI радикально отличается от командной строки, он является очень эффективным и мощным. В тексты Oberon могут быть встроены активные элементы: часы, кнопки или графические элементы, визуализирующие данные. Большинство элементов пользовательского интерфейса реализуется с помощью документов. Крутой подъем с начала обучения может оказаться несколько сложным, но затем идет головокружительный скат. Это намеренное дизайнерское решение, к которому нужно привыкнуть. Например, большинство привычных редакторов спрашивают пользователя при закрытии измененного текста: в системе Oberon это не так. Ради простоты и прозрачности системы, многие проверки исключены чтобы не угождать невнимательному и порой ленивому пользователю. Система готова к редактированию, но за все действия пользователь отвечает сам. Выскакивающие TRAP-вьюверы с сообщением об ошибке и с некоторой информацией (трассировка стека вызовов процедур), лучше помогут понять как работает система, нежели принятые меры, для уменьшения количества этих сообщений. Использование пользовательского интерфейса и программирования полностью описано в книге Мартина Райзера "The Oberon System".[21] Краткое введение в пользовательский интерфейс можно найти на домашней странице Никлауса Вирта [22]. Более поздние версии системы Oberon, Oberon V4 (или сокращенно V4, иногда также называемый Linz-Oberon) и ETH-Oberon (иногда также называемый Oberon System 3, S3 или Spirit of Oberon), улучшили базовый интерфейс с помощью различных, но несовместимых реализаций для кнопок, выпадающих меню и других активных элементов. V4 использовал для этих целей специальный управляющий символ, встроенный в обычный текст, в отличие от System 3, которая расширила ядро путем введения постоянных объектов. Оба расширения включают большой набор элементов пользовательского интерфейса. Освоение пользовательского интерфейса Oberon, чисто текстового и так называемой системы гаджетов (в ETH Oberon), абсолютно нетривиально. Поэтому после успешной установки Oberon System 3 рекомендуется перейти к книге Андре Фишера Oberon System 3 (ETH Oberon) Главный учебник. Расширенная версия этого руководства опубликована в виде книги,[23][24] которая в настоящее время вышла из печати. Хотя книга имеет стандартное авторское право, она доступна в электронной форме по однопользовательской лицензии в каждой установленной версии System 3 (Windows, Linux или Native, т.е. также с набором инструментов Gadgets от OLR [25]). Если вы попытаетесь прочитать его в System 3, вы столкнетесь с классической проблемой курицы и яйца: вы должны освоить пользовательский интерфейс, чтобы получить доступ к документации по пользовательскому интерфейсу. Поэтому некоторые подробные инструкции по чтению "The Oberon Companion" - после успешной установки системы Oberon - можно найти, открыв файл Book.Tool командой Desktops.OpenDoc. Если этой команды нет ни в одном из окон, которые открываются по умолчанию при запуске системы Oberon, вы можете щелкнуть левой кнопкой мыши в любом окне просмотра и ввести команду:
Desktops.OpenDoc Book.Tool ~
Затем наведите курсор мыши на
Desktops.OpenDoc
и сделайте щелчок средней кнопкой мыши. В результате откроется новое окно просмотра с оглавлением книги "The Oberon Companion". Все строки с синим текстом являются гиперссылками на главы книги, которые, в свою очередь, можно щелкнуть СКМ, чтобы глава открылась в новом окне просмотра. Лицензия в Book.Tool дает пользователю право на печать одной копии для личного пользования. У меня были хорошие результаты при печати с помощью бесплатного PDF-конвертера на основе GhostScript. Если вы хотите распечатать открытый документ в Oberon, т.е. содержимое окна (или программы просмотра в терминологии Oberon), вы должны установить звездообразную метку, нажав клавишу F1. (смотрите Учебник) а затем выполнить команду:
Desktops.PrintDoc Default * ~
В команде Oberon символ * не является подстановочным знаком, а символизирует отмеченный вьювер.
Текст в системе Оберон
[править]Как ни странно для новичка, в текстовых файлах современных компьютерных систем можно встретить три формы окончания строки.
В Oberon и некоторых других системах строка текста заканчивается символом возврата каретки, обозначаемым CR.
В Unix-подобных и некоторых других системах строка текста заканчивается символом перевода строки, обозначаемым LF.
В DOS, Microsoft Windows и некоторых других системах строка текста заканчивается двумя символами, CR и LF.
Эта множественность не представляет трудностей в Oberon; большинство систем Oberon позволяют удобно редактировать текст с любым из этих окончаний строки.[26].
Также новичка может смутить текст в виде Oberon Text[27], который может показаться не более чем обычным текстом, состоящим из последовательности символов ASCII. Тем не менее, Текст в Oberon - это тип определенный в модуле Текст. Текст этого типа представляет собой последовательность символов, включая непечатные символы. Символ в типе Текст, может иметь атрибуты, включая шрифт, размер и цвет. Кроме того, текст может включать несимвольные объекты, например, изображение или гиперссылку. Следовательно, два отображаемых документа, один из которых является текстом Oberon, а другой - текстом HTML, могут иметь одинаковый внешний вид и одинаковое поведение ссылок.
Редактирование текста
[править]В каждой системе Oberon есть модуль Edit.
Если напечататьEdit.Open Example.Text
почти в любом месте экрана, то при нажатии СКМ на Edit.Open
откроется программа просмотра. Если файл с именем Example.Text существует, его содержимое появится в программе просмотра. Если файла с таким именем не существует, окно просмотра будет пустым. Каретка может быть установлена с помощью ЛКМ , а символы могут быть вставлены с клавиатуры. В дополнение к Edit, ETH Oberon имеет ET и подсистему Gadgets. Доступны команды ET.Open <aFile>
и Desktops.OpenDoc <aFile>
. ETH Oberon также имеет модуль Hex, предоставляющий шестнадцатеричный редактор с командой Hex.Open <aFile>
.
Программный доступ к тексту
[править]В дополнение к только что описанному интерактивному редактированию, Текстом можно манипулировать с помощью процедур в модуле Texts; это актуально для ETH Oberon и для V5. Также кратко описано для ETH Oberon в разделе ОПРЕДЕЛЕНИЕ Texts. Чтобы программно прочитать Текст в любой системе Oberon, первым шагом будет открытие записи, называемой Reader (Читатель), на тексте, с заданным смещением. (Reader - это структура RECORD, а не указатель или процедура). При открытом Читателе процедура Read(reader, ch) извлекает символ каждый раз, когда выполняется.
VAR T: Texts.Text; R: Texts.Reader; ch: CHAR; BEGIN NEW(T); Texts.Open(T, “Texts.Mod“); Texts.OpenReader(R, T, 0); Texts.Read(R, ch); WHILE ~R.eot DO Out.Char(ch); Texts.Read(R, ch) END END
В ETH Oberon ссылка на шрифт символа содержится в Objects.Library Читателя. Это предполагает, что считанный объект был символом, о чем свидетельствует то, что (reader.lib IS Fonts.Font) был TRUE. В V2, V4 и V5 на шрифт символа ссылается поле "fnt" Читателя. Читатель также имеет поля "col" (цвет символа) и "voff" (вертикальное смещение символа). После выполнения Read(reader, ch) только что прочитанный символ доступен в ch, а атрибуты находятся в компонентах reader. Каждое выполнение Read() продвигает Читателя по тексту на один символ, пока не будет достигнут конец и reader.eot не станет TRUE. Как видно все подвержено простой человеческой логике.
Дополнительная информация
[править]Типы, относящиеся к Тексту в различных системах, можно сравнить на странице Текст.
- Модуль Texts в Oberon V2.
- Текст в ETH Oberon.
- Модуль Texts в подсистеме Oberon для A2. Открыть Oberon.Texts.Mod.
- Модуль Texts в Oberon V5. Открыть Texts.Mod.
Загрузка системы
[править]Краткие замечания здесь предназначены для того, чтобы направить читателя на изучение авторитетных документов.
Загрузка и мультизагрузка
[править]ETH Oberon, A2 и другие системы, работающие непосредственно на аппаратном обеспечении x86, предоставляют дополнительную возможность мультизагрузки операционных систем и управления загрузкой. Boot Manager был написан Андре Фишером в соответствии с принципами Oberon и в настоящее время поддерживается в SVN-репозитории в ETH. На этих страницах есть дополнительная информация.
- Использование менеджера загрузки, с применением к ETH Oberon, предшествующее Boot Manager.
- В современных ПК GPT и UEFI еще больше усложнили тему. Вклад в документацию приветствуется.
V2
[править]Для V2, работающего на машине Ceres, запуск системы и ядро описаны в разделах 14.1 и 14.2 Project Oberon, 1992 (PDF).
ETH Oberon
[править]В ETH Oberon внутреннее ядро включает в себя основные функции операционной системы, включая управление хранением данных, файловую систему, загрузчик, компилятор и т.д. Внешнее ядро включает в себя управление дисплеем, клавиатурой и мышью. Внутреннее и внешнее ядра вместе можно сравнить с ядром Unix-подобной системы. Структура системы может быть понятна из инструмента построения системы, Native.Tool.
V5
[править]От Joerg Straube в http://lists.inf.ethz.ch/pipermail/oberon/2021/015938.html, "Функциональность UEFI в некоторой степени сравнима с BootLoad.Mod в FPGA Oberon. BootLoad находится в ПЗУ и является первым кодом, выполняемым процессором RISC-5 после включения питания. Он загружает внутреннее ядро с диска по адресу 0000 и переходит на 0000.
Затем внутреннее ядро загружает внешнее ядро. А внешнее ядро загружает систему Oberon".
В V5, проекте Oberon, внутреннее ядро состоит только из модулей Kernel (управление памятью, управление дисковым хранилищем, ловушки, таймер), FileDir (работа с каталогами), Files (работа с файлами) и Modules (загрузка модулей). Авторитетное изложение находится в разделах 14.1 и 14.2 книги Project Oberon, 1992(PDF).
Внесение модуля или инструмента, отсутствующего в книге
[править]- Инициализируйте страницу модуля или инструмента из опубликованного релиза. Предпочтительно из последнего. Oberon.Sort.Mod, например, взят из подсистемы Oberon в UnixA2. Указывайте источник в теме редактирования вики.
- Используйте соглашения об именовании Oberon.
- Избегайте дублирования страниц. Если две системы используют один исходный модуль, перенаправление страниц может быть предпочтительнее, чем дублирование страниц.
Добавление текста - это первые два шага приведенной выше диаграммы потока данных. Первый шаг выполняется автором. Второй выполняется автоматически сервером MediaWiki. Извлеките модуль MediaWiki (ETH Oberon, подсистема Oberon из A2) в вашу систему Oberon и скомпилируйте его. Откройте программу просмотра с модулем, который будет внесен, и звездочкой * отметьте Текст. Переведите в разметку MediaWiki с помощью "MediaWiki.Markup *" и сохраните <Module>.Mod.mw с помощью Edit.StoreAscii или ET.StoreAscii.
Редактирование этого учебника
[править]Приветствуется любой прогресс. Исправляйте ошибки в грамматике и в алгоритмах. Представляйте недоработанные идеи на страницах обсуждения.
Редактирование исходного текста модуля
[править]Исходный текст может быть отредактирован напрямую с помощью браузера, поддерживающего HTTPS. В качестве альтернативы он может быть отредактирован в системе Oberon, переведен с помощью MediaWiki.Markup и применен для замены существующей версии, как при добавлении нового модуля. При замене следите за тем, чтобы не переписать предыдущую правку. Последняя версия страницы должна быть получена в работающей системе Oberon и сравнена с помощью Diff.Do. В качестве альтернативы зарегистрированный пользователь может поместить новую версию в пользовательскую песочницу и сравнить, как описано в следующем разделе. Помните, что ненулевой промежуток времени между извлечением из книги и установкой новой версии допускает конфликт правок.
- Если случайно возник конфликт правок, исправьте его, пожалуйста.
- Избегайте нарушения компиляции.
- Избегайте нарушения интерфейсов. Если интерфейс изменен, исправьте все модули, которые к нему подключаются. Идея, ясно выраженная на странице обсуждения, предпочтительнее сломанных интерфейсов.
- Избегайте нарушения функциональности.
- Избегайте внесения ошибки. Если вносится ошибка, изменение может быть отменено, каким бы блестящим ни было задуманное улучшение.
- Предпочитайте более современный синтаксис более старому. Удалите LOOP. По возможности удалите RETURN.
- По желанию, выделите измененный текст зеленым цветом, а текст, отключенный комментарием, красным.
Форматирование исходного текста
[править]Существуют различные соглашения и предпочтения по форматированию. Обратитесь к списку рассылок Oberon, с 2017-07-22 по 2017-07-26, и найдите "отступ?". Никакой конкретный формат здесь не является обязательным. Любой разумный формат, предпочитаемый автором, приветствуется.
Сравнение версий и страниц
[править]В Oberon есть модуль Diff. Например, две страницы могут быть получены в файлы TextFile1 и TextFile2. Затем СКМ на Diff.Do TextFile1 TextFile2 .
Чтобы сравнить версии страницы внутри книги, откройте историю с помощью кнопки в верхней части страницы. Выберите две версии и "Сравнить выбранные версии".
Чтобы сравнить разные страницы, идентификационные номера указываются в URL. В истории страниц ETH_Oberon/2003-01-05/HTML.Mod при наведении указателя мыши на дату в записи для оригинальной версии браузер сообщает ID 3702511. Оригинальная версия A2/Oberon.HTML.Mod имеет идентификатор 3504568. Адрес
https://en.wikibooks.org/wiki/?diff=3504568&oldid=3702511&diffonly=1
производит сравнение бок о бок. Функция "Сравнить" хорошо работает, когда различаются лишь некоторые строки. Если большинство или все строки сравниваемых страниц различаются, сравнение практически не имеет смысла.
Компьютеры
[править]Машина,
Вариант Оберона |
Изображение | Процессор | Хранилище
Загрузки |
Память | Постоянное
хранилище |
Приблизительная стоимость, US$ |
Заметки |
---|---|---|---|---|---|---|---|
Ceres, V2 |
NS320xx | 32 kB ROM | 2 MB DRAM | 40 MB Hard disk drive | Редкие и коллекционные; цена не определена | [28] [29] | |
Intel 80386 PC и потомки,
ETH Oberon |
i386[30], i486, P5 и различные преемники | Hard disk drive | SDRAM | Hard disk drive | Незначительна для устаревшей машины | ETH Oberon устанавливается и используется регулярно. | |
A2 Swiss отраслевой контроллер [de], [en] | FPGA на базе A2CPU | 16 MB flash | 1 MB battery-buffered RAM, 128 MB DDR3 |
Oberon список рассылки на 2021-11-11 | |||
Digilent Xilinx Spartan 3 Starter Board, Oberon V5 |
Xilinx Spartan 3 | SD[31] | 1 MB SRAM | SD | 100 | Подержанные и NOS платы на рынке | |
Pepino LX9, Oberon V5 |
Xilinx Spartan-6 FPGA | 128 MB SPI | 1 MB SRAM | 100 | Снято с производства | ||
OberonStation, Oberon V5 |
Xilinx XC3S700AN FPGA | microSD | 1 MB SRAM | microSD | Веб-сайт недоступен с Сентября 2018. | ||
RiskZero | Spartan-6 FPGA | full size SD, microSD | 4 MB ZBT | full size SD, microSD | ссылаться на Проектные файлы и стоимость. | Прототипирование. | |
RiskFive | Xilinx Artix-7 FPGA | 16-32 MB SPI Flash | 4 MB ZBT | microSD | "дорогой" | Материнская плата плюс модуль FPGA. Доступны. | |
Radiona ULX3S, Oberon V5 |
Lattice ECP5 LFE5U-85F-6BG381C (85K LUT) FPGA | 4–16 MB Quad-SPI Flash | 32 MB SDRAM 166 MHz | microSD | 60-140 | Boards с 12K LUT также доступны. [32] |
Часто задаваемые вопросы
[править]В. Почему некоторые системы Oberon имеют плоскую файловую систему? Разве древовидная структурированная файловая система не является незаменимой в высокопроизводительных современных средах?
О. Древовидная файловая система получила широкое распространение в 1950-х и 60-х годах, когда память компьютеров была мизерной по сравнению с той, что имеется сейчас. Древовидная структура тех ранних файловых систем помогала в организации операционной системы. Обычный доступ к памяти намного быстрее, чем доступ к файлам. При современном аппаратном обеспечении структура данных может быть составлена и использована в памяти с гораздо более высокой производительностью, чем структура данных в файловой системе. Если уделить некоторое внимание выбору значимых имен для файлов, большинство пользователей найдут плоскую файловую систему вполне адекватной. Кроме того, большинство подсистем Oberon имеют доступ к древовидной структурированной файловой системе хоста. Кроме того, ETH Oberon, запущенный на пустом ПК, поддерживает файловые системы FAT16, FAT32 и ISO 9660:1988, все из которых имеют древовидную структуру. В действительности плоская файловая система в Oberon является скорее преимуществом, чем недостатком.
В. В ETH Oberon (или A2O) СКМ+ПКМ открывает просмотрщик с Edit, тогда как я предпочитаю ET. Как это можно исправить?
О. В ETH Oberon откройте TextFrames.Mod. Нажмите СКМ на Edit.Open.
Edit.Open TextFrames.Mod
В подсистеме Oberon в А2
Edit.Open Oberon.TextFrames.Mod
Измените
OpenCmd = "Edit.Open"
На
OpenCmd = "ET.Open"
Нажмите СКМ на Edit.Store, перекомпилируйте модуль (TextFrames.Mod или Oberon.TextFrames.Mod) и перезапустите систему. TextFrames и все модули, которые его импортируют, могут быть перезагружены, но перезапуск проще.
Глоссарий
[править]См. также глоссарий в статье Википедии.
Active Oberon, мультипоточный диалект языка Oberon в операционной системе A2.
BRAM, Block Addressable Random Access Memory, используется в машине FPGA[33].
Columbus, программный инструмент в ETH Oberon, используемый для проверки и изменения атрибутов гаджета, а также для добавления нового атрибута к гаджету. Использование описано в учебнике
Definition, (или Module Definition), краткое описание модуля, представляющее объявления констант, типов, переменных и заголовки процедур.
fixup, преобразование адреса, относительного к базовому адресу модуля, в абсолютный адрес.
fold, функциональность текста в документах V4 и BlackBox, аналогичная сворачиваемости в HTML. Несколько складок в файле могут быть сгруппированы по имени и их состояние может переключаться вместе; это позволяет поддерживать различные исходные версии в одном файле.
Gadgets, программная инфраструктура в ETH Oberon, предоставляющая графические сущности и графический интерфейс пользователя. Использование описано на страницах учебника по гаджетам.
гаджет, объект конечного пользователя в системе гаджетов. Кнопка - это простой экземпляр гаджета. Текстовый гаджет - это более сложный экземпляр.
Внутреннее ядро, важный архитектурный объект в системе Oberon. См. раздел "Запуск системы".
INTEGER - целочисленный тип в каждой системе Oberon.
Интерклик - нажатие кнопки мыши при удержании другой кнопки. Например: СКМ+ПКМ. Дополнительные сведения приведены в руководстве по работе с мышью. При редактировании текста имеет смысл использовать не менее шести комбинаций интеркликов.
Lola-2, язык описания аппаратуры, разработанный Никлаусом Виртом.
Juice, альтернатива Java, основанная на переносимом представлении абстрактного синтаксического дерева и компиляции "на лету", также известной как OMI (см. ниже). Исходный код можно найти на Github и в трех форках (по состоянию на 11.Авг.2021).
LDPSR, Load Processor Status Register, позволяет программному обеспечению определить, может ли процессор обрабатывать прерывания. См. RISC-Arch.pdf , раздел 5, Прерывания. Обсуждение в списке рассылок начало от 2021-03-30
LinzOberon, реализация V4. См. список рассылок, 2020-11-28
LONGINT, целочисленный тип в ETH Oberon. Синонимизирован с INTEGER в текущей версии V5.
LUT, таблица просмотра ПЛИС. Упоминается при количественном определении размера устройства ПЛИС.
MT, в ETH Oberon, строка конфигурации типа мыши.
MT, в V5 - постоянный адрес таблицы модулей[34].
Native, дополнение к названию системы Oberon, чтобы указать, что она устанавливается на пустом оборудовании и отличается от подсистемы, установленной на хост-системе, например, такой как UnixA2.
A2O, Подсистема Oberon в A2.
Oberon.Text, файл в ETH Oberon и в A2O, определяющий конфигурацию системы.
Oberon Trilogy, три книги "Программирование в Oberon", "Система Oberon" и "Проект Oberon"; первые три книги в библиографии.
OMI/Slim binary (Oberon Module Interchange), механизм, созданный Майклом Францем и Томасом Кистлером, позволяющий эффективно переносить любой модуль между различными системами. Язык, созданный в результате этой работы, был назван Juice. Сравните с бинарными файлами Apple Fat. Двоичные файлы Slim упоминаются на странице компиляторов на странице компиляторов в разделе "Развертывание компилятора в портах больше не обновляется".
Внешнее ядро, важный архитектурный объект в системе Oberon. См. раздел "Запуск системы".
.odc, условное расширение имени файла для файла BlackBox/Oberon-F (сокращение от Oberon DoCument), внутренне похожего на формат Oberon Text.
(** любой комментарий *), появляется в некоторых источниках модулей. Это означает, что "любой комментарий" является экспортируемым комментарием. Инструмент под названием Def создает файл интерфейса модуля с включенным этим комментарием, таким образом улучшая внутреннюю документацию.
PICL, язык программирования для микроконтроллеров PIC.
(** portable *), этот комментарий в ETH Oberon отмечал модуль, в котором двоичный код OMI/Slim был переносимым между платформами. В более общем смысле это означает отсутствие зависимостей от SYSTEM или специфики машины. Этот экспортированный комментарий появляется в документации, созданной вышеупомянутым браузером Def, который был интегрирован в инструмент под названием Watson в ETH Oberon.
Registry, содержимое Oberon.Text, определяющее псевдонимы файловой системы, параметры звукового адаптера, LinkSchemes, MIME-типы и т.д.
SB, в V5 - статический базовый адрес. Базовый адрес для переменных в текущем модуле.[40]
SHORTINT, целочисленный тип в ETH Oberon. В V5 отсутствует.
SIZE, знаковый целочисленный тип, относящийся к адресу памяти в A2. Разность двух адресов может быть отрицательной. Новые числовые типы появились в ревизии rev.9475.[35].
SP, в V5 - адрес указателя стека.[40]
Файл символов, линеаризованный фрагмент таблицы символов компилятора. Файл содержит описания всех экспортируемых объектов. См. раздел 12.6.2 в Project Oberon, 2013 Edition.
Watson, инструмент, способный извлекать определение модуля из файла определения, файла модуля, модуля Text или файла объекта. Использование описано в учебнике.
WTS, Write To Script, относится к вариантам Write и Script текстового документа и преобразованию текста Write в текст Script. Write есть в V4, а Script есть в ETH Oberon.
Поддержка
[править]- Трекер ошибок, документация по языку и т.д. в основном для A2: http://cas.inf.ethz.ch/projects/a2/
- Список рассылки Oberon: https://lists.inf.ethz.ch/mailman/listinfo/oberon
- Платформа сообщества Oberoncore, https://oberoncore.ru/
Разработка
[править]Несколько потенциальных проектов.
- Для любой системы скомпилируйте свежий релиз с исправлениями и улучшениями и разместите на публичном сервере.
- Сделайте TUI текстовый пользовательский интерфейс для A2.
- Используя в качестве основы модули криптографии в ETH Oberon и A2, создайте реализацию SSL для ETH Oberon.
- Улучшите поддержку Unicode.
- Используя HTTPS, автоматизируйте процессы загрузки и выгрузки. Разрешение
MediaWiki.Get Oberon.Sort.Mod ... ~
иMediaWiki.Put Oberon.Sort.Mod ... ~
для примера. - Улучшите HTMLDocs в ETH Oberon and in A2O.
- Сделайте поддержку HTTPS в браузере A2.
Лицензии
[править]Лицензия ETH Oberon
[править]Для совместимости с Викиучебником откройте Архив вопросов по авторскому праву и найдите "ETH-Oberon".
ETH Oberon Copyright (c) 1990-2003, Computer Systems Institute, ETH Zurich Все права защищены.
- Распространение и использование в исходном и двоичном виде, с изменениями или без них, разрешено при соблюдении следующих условий:
- Распространение исходного кода должно содержать вышеуказанное уведомление об авторских правах, данный список условий и следующий отказ от ответственности.
- Перераспределение в двоичной форме должно воспроизводить вышеуказанное уведомление об авторских правах, данный список условий и следующий отказ от ответственности в документации и/или других материалах, поставляемых вместе с дистрибутивом.
- Ни имя ETH Zurich, ни имена авторов не могут быть использованы для поддержки или продвижения продуктов, созданных на основе данного программного обеспечения, без специального предварительного письменного разрешения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПРАВООБЛАДАТЕЛЯМИ И УЧАСТНИКАМИ "КАК ЕСТЬ", И ОТ ЛЮБЫХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ ТОВАРНОГО СОСТОЯНИЯ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, ОТКАЗЫВАЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ЭТ ИЛИ СОАВТОРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПРИОБРЕТЕНИЕ ЗАПАСНЫХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕРЫВАНИЕ ДЕЛОВОЙ АКТИВНОСТИ), ЧЕМ БЫ ОНИ НИ БЫЛИ ВЫЗВАНЫ И НА ОСНОВАНИИ ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО КОНТРАКТ, СТРОГАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ПРАВОНАРУШЕНИЕ (ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ИНОЕ), ВОЗНИКШИЕ КАКИМ-ЛИБО ОБРАЗОМ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ ОНИ БЫЛИ ПРЕДУПРЕЖДЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.
Лицензия ETH Bluebottle
[править]Для совместимости с Викиучебником откройте Архив вопросов по авторскому праву и найдите "ETH-Oberon".
https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk/source/License.Text
Лицензия
ETH Bluebottle (ранее Aos) Авторское право (c) 2008, Институт компьютерных систем, ETH Цюрих Все права защищены.
Распространение и использование в исходном и двоичном виде, с изменениями или без них, разрешено при соблюдении следующих условий:
- Распространение исходного кода должно содержать вышеуказанное уведомление об авторских правах, данный список условий и следующий отказ от ответственности.
- Перераспределение в двоичной форме должно воспроизводить вышеуказанное уведомление об авторских правах, данный список условий и следующий отказ от ответственности в документации и/или других материалах, поставляемых вместе с дистрибутивом.
- Ни имя ETH Zurich, ни имена авторов не могут быть использованы для поддержки или продвижения продуктов, созданных на основе данного программного обеспечения, без специального предварительного письменного разрешения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПРАВООБЛАДАТЕЛЯМИ И СОАВТОРАМИ "КАК ЕСТЬ", И ОТ ЛЮБЫХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, ОТКАЗЫВАЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ СОАВТОРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, В ЧАСТНОСТИ, ПРИОБРЕТЕНИЕ ЗАПАСНЫХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕРЫВАНИЕ ДЕЛОВОЙ АКТИВНОСТИ), ЧЕМ БЫ ОНИ НИ БЫЛИ ВЫЗВАНЫ И НА ОСНОВАНИИ ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО КОНТРАКТ, СТРОГАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ПРАВОНАРУШЕНИЕ (ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ИНОЕ), ВОЗНИКШИЕ КАКИМ-ЛИБО ОБРАЗОМ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ ОНИ БЫЛИ ПРЕДУПРЕЖДЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.
Project Oberon, ревизия 2013
[править]http://www.projectoberon.net/wirth/ProjectOberon/license.txt
Авторские права на книгу (C)2013 Никлаус Вирт и Юрг Гуткнехт; авторские права на программное обеспечение (C)2013 Никлаус Вирт (NW), Юрг Гуткнехт (JG), Пол Рид (PR[/PDR]).
Лицензия
Настоящим предоставляется разрешение на использование, копирование, изменение и/или распространение данного программного обеспечения и сопроводительной документации к нему ("Программное обеспечение") для любых целей с оплатой или без оплаты при условии, что вышеуказанное уведомление об авторских правах и данное разрешение будут присутствовать во всех копиях.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", И АВТОРЫ ОТКАЗЫВАЮТСЯ ОТ ВСЕХ ГАРАНТИЙ В ОТНОШЕНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВКЛЮЧАЯ ВСЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ, ПРИГОДНОСТИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, СПЕЦИАЛЬНЫЕ, ПРЯМЫЕ, КОСВЕННЫЕ ИЛИ ПОСЛЕДУЮЩИЕ УБЫТКИ ИЛИ ЛЮБОЙ УЩЕРБ ИЛИ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В РАМКАХ ДОГОВОРНОГО ИСКА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, В РЕЗУЛЬТАТЕ ИЛИ В СВЯЗИ СО СДЕЛКАМИ, ИСПОЛЬЗОВАНИЕМ ИЛИ ИСПОЛНЕНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
Ссылки
[править]Примерный хронологический порядок. Также см.библиографию Oberon от ETHZ.
- Русифицированная версия системы ETH Oberon for Windows.
- N. Wirth, J. Gutknecht, Проект Oberon, 1992(PDF).
- P.J. Muller, The Active Object System - Design and Multiprocessor Implementation (PDF), докторская диссертация, Институт компьютерных систем, ETH Zurich, 2002. Содержит оригинальное описание A2.
- Н.Вирт, Проект Oberon, издание 2013 года. Первоначально опубликовано с соавтором Й. Гуткнехтом, 1992.
- Возрождение компьютерной системы 25-летней давности, лекция профессора Н. Вирта, 2014 г.
- П.Рид, Проект Oberon, с 2015 года - по настоящее время.
- Каталог Oberon ресурсов: Ru, Uk, En, De.
- ETH Зал славы и последующие вкладчики.
- Oberon Карта сайта. Бывший хостинг в ETHZ и в первую очередь адресованный ETH Oberon и предшествующим системам.
- Oberon System 3 - Учебник.
- Ревизии языка Oberon начало 1990-10-01. Слева под "romiras Create README.md" нажмите на "Oberon07.Report.pdf.txt". На свежей странице в крайнем правом углу синей панели нажмите на История.
Примечания
[править]- ↑ Oberon - язык программирования с множеством диалектов, различные операционные системы Oberon, вычислительное оборудование в котором использовались эти системы и язык описания аппаратуры, Lola-2, используемый для конфигурирования FPGA.
- ↑ В предисловии к книге "Система Oberon" (издательство Addison-Wesley, 1991) Мартин Райзер отметил: "Это самая отзывчивая система из всех известных автору. Эта отзывчивость существенно повышает производительность пользователя;".
- ↑ Рецензионный центр, Клаузиусштрассе 55/59, находится примерно в 500 м к северо-северо западу или справа от купола Хауптгебауде на этом виде. См. также http://lists.inf.ethz.ch/pipermail/oberon/2021/015854.html. Еще информация и фото есть на https://www.tg.ethz.ch/en/contact/contact/.
- ↑ Поскольку язык Oberon-2 является надмножеством языка Oberon, большая часть исходного текста, это язык Oberon.
- ↑ Исходники Oberon V4 на SourceForge
- ↑ В некоторых случаях среда хост - это пустая машина. В противном случае это машина под управлением операционной системы.
- ↑ Информация есть на NS32xx сайте. Смотрите FPGA пример и wire wrap пример. Модули отсутствующие в оригинальной книге, также должны быть получены или написаны, исходники должны быть собраны. Система V5 будет полезным предшественником.
- ↑ включая Transmeta Crusoe 5400 и StrongARM SA 110 и SA 1110.
- ↑ PC может быть запущен с дискеты Oberon0 с последующей установкой на HDD. В этом случае установка ETH Oberon может проходить напрямую, без участия DOS. Часть 2 Учебника Oberon включает полезное объяснение пользовательского интерфейса.
- ↑ Исходники для Release 2.0 доступны. ASCII текст можно читать с помощью любого современного редактора. Текстовые источники следует читать в системе Oberon; в противном случае отображение в Linux gedit может быть терпимым.
- ↑ "Текущий статус ... сеть не работает."
- ↑ а б V4 может также исполнена на устаревших системах 680x0 MacIntosh и PowerMac с MacOS до версии 9 включительно, Amiga, Atari ST, DECstation, HP-UX, IBM RS/6000, SGI IRIS и SPARC с Solaris. Смотрите https://sourceforge.net/p/oberon/oberonv4/ci/master/tree/ и ftp://ftp.ssw.uni-linz.ac.at/pub/Oberon/. Нативная версия не была выпущена.
- ↑ olymp.idle.at has verion 1.7.02. Последняя версия на JKU Linz является 1.5.
- ↑ а б GPCP предоставляет компилятор для Компонентного Паскаля; не полная Oberon подсистема.
- ↑ В течение лета 2019 года в ETHZ велась работа по улучшению переносимости и других аспектов. Пока работа не завершена, пользователь может столкнуться с трудностями при работе с нативным вариантом A2. Подсистема Oberon остается доступной в Unix и Win. Соответствующее уведомление находится в архиве списков рассылки на 2019-07-03. Рекомендуется набраться терпения.
- ↑ Требуется библиотека SDL2 и компилятор языка Си (C99). Для компиляции эмулятора достаточно GCC или Clang.
- ↑ Компилятор Oberon, может быть запущен из командной строки Unix.
- ↑ EO не изменяет RISC-процессор; он изменяет только систему Oberon, которая работает на нем.
- ↑ Документ Правила типа заслуживает внимания. Конкретные аспекты по типам обсуждаются в списке рассылок начинающийся с 2019-12-07.
- ↑ Видеоучебник 2, созданный Андресом Рамосом, иллюстрирует основные особенности интерфейса в легко усваиваемой манере..
- ↑ Reiser, Martin: "The Oberon System - User Guide and Programmer's Manual" - Out-of-print - Addison-Wesley/ACM Press (1991) Шаблон:ISBN
- ↑ Wirth, Niklaus How to use the Oberon System
- ↑ André Fischer & Hannes Marais: The Oberon Companion. A Guide to Using and Programming Oberon System 3. vdf Hochschulverlag AG (1997). Шаблон:ISBN, out of print, for a personal copy, see notes in text
- ↑ [in the ETH Oberon publications page.]
- ↑ Matthias, Peter Oberon Linux Revival
- ↑ В качестве примера, каждый случай легко отображается в явном виде. В системе Oberon в шестнадцатеричном редакторе Hex, нажмите СКМ на
Hex.Open <aFile>
. В ETH Oberon файл со строками, заканчивающимися CR LF, редактируется ET.OpenAscii <aFile> - ↑ Поскольку текст является основным типом в системе Oberon, "Oberon Text" считается именем собственным. Отсюда капитализация "Текст".
- ↑ Фото в ETHZ и Oberon system.
- ↑ Ceres-1 и Ceres-3 в Музее компьютерной истории
- ↑ ETH Oberon включает вычисления с плавающей запятой в программное обеспечение, обеспечивая полную функциональность при отсутствии 80387 coprocessor
- ↑ Видим в вертикальной ориентации рядом с зеленым PS/2 адаптером, на фото на стр. 5 в Project Oberon
- ↑ Установочные данные и инструкции
- ↑ Дополнительное объяснение в списке рассылок Oberon mailing list на 2019-02-09.
- ↑ См. раздел 8.1, страница 104 в Project Oberon, 2013.
- ↑ Переименование числовых типов в A2