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

Операционная система Symbolics на основе Lisp
Операционная система
Генера
РазработчикСимволика
Написано вЛисп
Семейство ОСОС машины Lisp
Рабочее состояниеТекущий
Исходная модельИсходный код доступен
Первоначальный выпуск1982 ; 42 года назад ( 1982 )
Окончательный релизPortable Genera 2.0.6 / 17 августа 2024 г. ; 2 месяца назад ( 2024-08-17 )
Доступно вАнглийский
Платформыразличные машины Symbolics Lisp , DEC Alpha , x86-64 , Arm64 , Apple Silicon M Series



Тип ядраОбъектно-ориентированный

Пользовательский интерфейс по умолчанию
Динамический графический интерфейс Windows
ЛицензияЗапатентованный
Официальный сайтsymbolics-dks.com

Genera — это коммерческая операционная система и интегрированная среда разработки для машин Lisp , созданная Symbolics . По сути, это ответвление более ранней операционной системы, возникшей на машинах Lisp лаборатории искусственного интеллекта Массачусетского технологического института (MIT) , которые Symbolics использовала совместно с Lisp Machines , Inc. (LMI) и Texas Instruments (TI). Genera также продавалась Symbolics как Open Genera , которая запускает Genera на компьютерах на базе процессора Alpha компании Digital Equipment Corporation (DEC) с использованием Tru64 UNIX . В 2021 году была выпущена новая версия как Portable Genera , которая работает на Tru64 UNIX на Alpha, Linux на x86-64 и Arm64 Linux , а также macOS на x86-64 и Arm64 ( Apple Silicon M Series ). Она выпускается и лицензируется как проприетарное программное обеспечение .

Genera — пример объектно-ориентированной операционной системы, основанной на языке программирования Lisp .

Genera поддерживает пошаговую и интерактивную разработку сложного программного обеспечения, используя сочетание стилей программирования с расширенной поддержкой объектно-ориентированного программирования .

Операционная система Lisp Machine Массачусетского технологического института

Операционная система Lisp Machine была написана на языке Lisp Machine Lisp . Это была однопользовательская рабочая станция, изначально ориентированная на разработчиков программного обеспечения для проектов искусственного интеллекта (ИИ). [1] Система имела большой растровый экран, мышь, клавиатуру, сетевой интерфейс, дисковод и слоты для расширения. Операционная система поддерживала это оборудование и предоставляла (среди прочего):

Это уже была полноценная однопользовательская операционная система на базе Lisp и среда разработки.

Операционная система MIT Lisp Machine разрабатывалась с середины 1970-х до начала 1980-х годов.

В 2006 году исходный код этой операционной системы Lisp-машины от Массачусетского технологического института был выпущен как бесплатное программное обеспечение с открытым исходным кодом . [2]

Операционная система общего назначения

Symbolics разработала новые машины Lisp и опубликовала операционную систему под названием Genera . Последняя версия — 8.5. Symbolics Genera была разработана в начале 1980-х и начале 1990-х годов. В последние годы разработка в основном заключалась в патчах с очень небольшим количеством новых функций.

Symbolics разработала Genera на основе этой основы операционной системы машины MIT Lisp. Она продает операционную систему и многоуровневое программное обеспечение . Часть многоуровневого программного обеспечения была интегрирована в Genera в более поздних выпусках. Symbolics улучшила программное обеспечение операционной системы из оригинальной машины MIT Lisp и расширила его. Операционная система Genera была доступна только для машин Symbolics Lisp и виртуальной машины Open Genera .

Symbolics Genera имеет множество функций и поддерживает все версии различного оборудования, которое Symbolics создавала за свою жизнь. Ее исходный код состоит из более чем миллиона строк; число зависит от выпуска и количества установленного программного обеспечения. Symbolics Genera была опубликована на магнитной ленте и CD-ROM . Выпуск операционной системы также предоставил большую часть исходного кода операционной системы и ее приложений. Пользователь имеет свободный доступ ко всем частям работающей операционной системы и может записывать изменения и расширения. Исходный код операционной системы разделен на системы . Эти системы объединяют исходные коды, двоичные файлы и другие файлы. Набор инструментов для построения системы (SCT) поддерживает зависимости, компоненты и версии всех систем. Система имеет два числа: основной и дополнительный номер версии. Основной номер версии подсчитывает количество полных построений системы. Дополнительный номер версии подсчитывает количество исправлений для этой системы. Патч — это файл, который можно загрузить для исправления проблем или предоставления расширений для определенной версии системы.

Symbolics разработала версию под названием Open Genera , которая включала виртуальную машину, которая позволяла выполнять Genera на рабочих станциях на базе DEC Alpha, а также несколько расширений и приложений Genera, которые продавались отдельно (например, набор Symbolics S-Graphics ). Кроме того, они создали новую операционную систему под названием Minima для встроенных приложений на Common Lisp . Последняя версия — Portable Genera , в которой виртуальная машина перенесена на процессоры x86-64 , Arm64 и Apple M1 — в дополнение к процессору DEC Alpha . Затем виртуальная машина работает под управлением Linux и macOS , а также Tru64 UNIX .

Первоначальная операционная система Lisp machine была разработана на Lisp Machine Lisp с использованием объектно-ориентированного расширения Flavors к этому Lisp. Symbolics предоставила преемника Flavors под названием New Flavors . Позже Symbolics также поддерживала Common Lisp и Common Lisp Object System (CLOS). Затем Symbolics Common Lisp стал диалектом Lisp по умолчанию для написания программного обеспечения с помощью Genera. Программное обеспечение операционной системы было написано в основном на Lisp Machine Lisp (названном ZetaLisp ) и Symbolics Common Lisp. Оба эти диалекта Lisp предоставляются Genera. Также части программного обеспечения использовали либо Flavors, либо New Flavors, либо Common Lisp Object System. Некоторые из старых частей операционной системы Genera были переписаны на Symbolics Common Lisp и Common Lisp Object system. Многие части операционных систем остались написанными на ZetaLisp и Flavors (или New Flavors).

Пользовательский интерфейс

Ранние версии Symbolics Genera были построены с использованием оригинальной графической системы управления окнами (GUI) операционной системы Lisp Machine. Затем Symbolics разработала радикально новую систему управления окнами под названием Dynamic Windows с пользовательским интерфейсом на основе презентаций . [3] Эта оконная система была представлена ​​в Genera 7 в 1986 году. [4] Многие приложения Genera затем использовали Dynamic Windows для своего пользовательского интерфейса . В конечном итоге был сделан шаг к переносу частей оконной системы для работы на других реализациях Common Lisp другими поставщиками в качестве Common Lisp Interface Manager (CLIM). Версии CLIM были доступны (среди прочих) для Allegro Common Lisp , LispWorks и Macintosh Common Lisp . Доступна версия с открытым исходным кодом ( McCLIM ).

Динамическая Windows использует типизированные объекты для всего вывода на экран. Вся отображаемая информация сохраняет свою связь с отображаемыми объектами ( запись вывода ). Это работает как для текстового, так и для графического вывода. Во время выполнения применимые к этим объектам операции вычисляются на основе иерархии классов и доступных операций ( команд ). Команды организованы в иерархические таблицы команд с типизированными параметрами. Команды можно вводить с помощью мыши (широко используя аккорды мыши ), нажатий клавиш и с помощью интерфейса командной строки. Все приложения совместно используют одну реализацию интерпретатора командной строки, которая адаптируется к различным типам использования. Графические возможности оконной системы основаны на графической модели PostScript .

Пользовательский интерфейс в основном монохромный ( черно-белый ), поскольку это то, что обычно предоставляла аппаратная консоль. Но существует обширная поддержка цвета, использующая буферы цветных кадров или серверы X Window System (X11) с поддержкой цвета. Действия (приложения) используют весь экран с несколькими панелями, хотя окна также могут быть меньше. Макет этих окон действий адаптируется к разным размерам экрана. Действия также могут переключаться между различными макетами панелей.

Genera предоставляет системное меню для управления окнами, переключения приложений и работы с оконной системой. Многие функции пользовательского интерфейса (переключение между действиями, создание действий, остановка и запуск процессов и многое другое) также могут управляться с помощью команд клавиатуры.

Dynamic Lisp Listener — пример интерфейса командной строки с полными графическими возможностями и поддержкой взаимодействия с помощью мыши. Он принимает выражения и команды Lisp в качестве входных данных. Выходные данные чувствительны к мыши. Lisp listener может отображать формы для ввода данных для различных встроенных команд.

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

Документация

Genera поддерживает полностью гиперссылочную онлайн-документацию. Документация читается с помощью Document Examiner , раннего гипертекстового браузера. Документация основана на небольших повторно используемых записях документации, которые также могут отображаться в различных контекстах с помощью Editor и Lisp Listener. Документация организована в книги и разделы. Книги также были предоставлены в печатных версиях с тем же содержанием, что и онлайн-документация. Информация базы данных документации поставляется с Genera и может быть изменена с помощью инкрементных патчей.

Документация была создана с помощью отдельного приложения, которое не поставлялось с Genera: Symbolics Concordia . Concordia предоставляет расширение для редактора Zmacs для редактирования записей документации, графический редактор и средство предварительного просмотра страниц.

Документация содержит руководства пользователя, инструкции по установке и ссылки на различные конструкции и библиотеки Lisp.

Язык разметки основан на языке разметки Scribe и также может использоваться разработчиком.

Genera поддерживает печать на PostScript-принтерах, предоставляет очередь печати, а также интерпретатор PostScript (написанный на Lisp).

Функции

Genera также поддерживает различные сетевые протоколы и приложения, использующие их. Он имеет обширную поддержку TCP/IP .

Genera поддерживает однопроцессорные машины с несколькими потоками (называемыми процессами ).

Genera поддерживает несколько различных типов сборки мусора (GC): полная сборка мусора, сборка мусора на месте, инкрементальная сборка мусора и эфемерная сборка мусора. Эфемерный сборщик использует только физическую память и использует блок управления памятью для получения информации об измененных страницах в физической памяти. Сборщик использует поколения, а виртуальная память делится на области. Области могут содержать объекты определенных типов (строки, битовые карты, имена путей, ...), и каждая область может использовать различные механизмы управления памятью.

Genera реализует две файловые системы : файловую систему FEP для больших файлов и файловую систему Lisp Machine File System (LMFS), оптимизированную для множества маленьких файлов. Эти системы также поддерживают разные версии файлов. Если файл изменен, Genera по-прежнему сохраняет старые версии. Genera также обеспечивает доступ, может читать и записывать в другие, локальные и удаленные, файловые системы, включая: NFS, FTP, HFS, CD-ROM, ленточные накопители .

Genera поддерживает сетевую загрузку.

Genera предоставляет клиент для базы данных объектов Statice от Symbolics.

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

Genera имеет обширные инструменты отладки.

Genera может сохранять версии работающей системы в мирах . Эти миры могут быть загружены и затем будут содержать все сохраненные данные и код.

Языки программирования

Symbolics предоставила несколько языков программирования для использования с Genera:

  • ZetaLisp , символическая версия Lisp Machine Lisp
  • Common Lisp в нескольких версиях: Symbolics Common Lisp, Future Common Lisp (ANSI Common Lisp), CLtL1
  • Symbolics Pascal, версия Pascal , написанная на Lisp (исходный код Lisp включен в дистрибутив Genera)
  • Symbolics C, версия C, написанная на Lisp (исходный код Lisp включен в дистрибутив Genera)
  • Symbolics Fortran, версия Fortran , написанная на Lisp (исходный код Lisp включен в дистрибутив Genera)

Символика Common Lisp обеспечивает большую часть стандарта Common Lisp с большим количеством расширений, многие из которых происходят из ZetaLisp.

Другие языки из Symbolics

  • Символический Пролог , версия Пролога, написанная и интегрированная в Лисп
  • Символика Ada , версия Ada, написанная на Lisp

Примечательно, что эти реализации языка программирования унаследовали некоторые динамические функции системы Lisp (например, сборку мусора и проверку доступа к данным) и поддерживали постепенную разработку программного обеспечения.

Сторонние разработчики предоставили больше языков программирования, таких как OPS5 , и инструментов разработки, таких как среда разработки знаний (KEE) от IntelliCorp).

Приложения

Symbolics Genera поставляется с несколькими приложениями. Приложения называются действиями . Некоторые из действий:

  • Zmacs — текстовый редактор , подобный Emacs
  • Zmail — программа для чтения электронной почты, также имеющая календарь
  • Браузер файловой системы с инструментами для обслуживания файловой системы
  • Lisp Listener с интерфейсом командной строки
  • Document Examiner для просмотра документации
  • Восстановите дистрибутив для установки программного обеспечения.
  • Distribute Systems, для создания дистрибутивов программного обеспечения
  • Загляните, чтобы изучить системную информацию (процессы, окна, сетевые подключения, ...)
  • Отладчик
  • Редактор пространства имен для доступа к информации об объектах в сети (пользователях, компьютерах, файловых системах, ...)
  • Converse, чат-клиент
  • Терминал
  • Inspector, для просмотра структур данных Lisp
  • Уведомления
  • Frame-Up, для проектирования пользовательских интерфейсов
  • Flavor Examiner, для изучения классов и методов объектно-ориентированного расширения Flavor для Lisp

Другие приложения от Symbolics

Компания Symbolics продала несколько приложений, работающих на платформе Symbolics Genera.

  • Symbolics Concordia, пакет для создания документов
  • Symbolics Joshua, оболочка экспертной системы
  • Символика Macsyma , система компьютерной алгебры
  • Symbolics NS, инструмент для проектирования микросхем
  • Symbolics Plexi, инструмент разработки нейронных сетей
  • Символика S-Graphics, набор инструментов: S-Paint, S-Geometry, S-Dynamics, S-Render
  • Символические S-утилиты: S-Record, S-Compositor, S-Colorize, S-Convert
  • Symbolics Scope, цифровая обработка изображений с помощью Pixar Image Computer
  • Symbolics Statice, объектная база данных

Сторонние приложения

Несколько компаний разработали и продали приложения для Symbolics Genera. Некоторые примеры:

  • Ascent Technology Gatekeeper — основанный на правилах менеджер ресурсов для аэропортов и авиакомпаний
  • Automated Reasoning Tool (ART), оболочка экспертной системы от Inference Corporation
  • ICAD , 3D параметрическая САПР-система
  • Иллюстратор, графический редактор
  • Среда инженерии знаний (KEE), оболочка экспертной системы от IntelliCorp
  • Knowledge Craft, оболочка экспертной системы от Carnegie Group
  • Металл, система машинного перевода от Siemens

Основные моменты

  • Genera полностью написана на Lisp с использованием ZetaLisp и Symbolics Common Lisp, включая весь низкоуровневый системный код, такой как драйверы устройств, сборщик мусора, планировщик процессов, сетевые стеки и т. д.
  • Исходный код содержит более миллиона строк Lisp, но относительно компактен по сравнению с предоставленными функциями из-за обширного повторного использования. Он также доступен пользователям для проверки и изменения.
  • Операционная система в основном написана в объектно-ориентированном стиле с использованием Flavors, New Flavors и CLOS.
  • Он содержит обширную онлайн-документацию, которую можно прочитать с помощью Document Examiner.
  • Dynamic Windows предоставляет пользовательский интерфейс на основе презентаций
  • Пользовательский интерфейс можно использовать локально (на Lisp Machines и MacIvory) и удаленно (используя X11).
  • Группы разработчиков могут работать вместе в сетевой среде.
  • Центральный сервер пространства имен предоставляет каталог машин, пользователей, служб, сетей, файловых систем, баз данных и т. д.
  • Защита от изменения операционной системы слабая. Вся система полностью доступна и изменяема.

Пределы

Ограничения Genera включают в себя:

  • Работает только на Symbolics Lisp Machines или эмуляторе Open Genera.
  • Одновременно в системе может находиться только один пользователь.
  • Одновременно может работать только одна система Lisp. Данные и код совместно используются приложениями и операционной системой. Однако на одном DEC Alpha могут работать несколько экземпляров Open Genera.
  • Развитие фактически прекратилось в середине 1990-х годов.

Релизы

  • 1982 – Выпуск 78
  • 1982 – Выпуск 210
  • 1983 – Выпуск 4.0
  • 1984 – Выпуск 5.0
  • 1985 г. — выпуск 6.0, представляет Symbolics Common Lisp, сборщик мусора для эфемерных объектов и обозреватель документов
  • 1986 – Genera 7.0, представляет Dynamic Windows
  • 1990 – Genera 8.0, представляет CLOS
  • 1991 – Genera 8.1, представляет CLIM
  • 1992 – Генера 8.2
  • 1993 – Генера 8.3
  • 1993 – Open Genera 1.0, представляет Virtual Lisp Machine
  • 1998 – Открытый Генератор 2.0
  • 2021 – Portable Genera 2.0, виртуальная машина Lisp, перенесенная на дополнительные платформы

Стабильная версия Open Genera, которая может работать на x86-64 или arm64 Linux , а также Apple M1 MacOS, была выпущена [5] и переименована в Portable Genera.

Существует взломанная версия Open Genera, которая может работать на x86-64 Linux . [6] [7]

Ссылки

  1. ^ Гринблатт, Ричард Д.; Найт, Томас Ф.; Холлоуэй, Джон Т.; Мун, Дэвид А. (1980). «Машина Lisp». Труды Пятого семинара по архитектуре компьютеров для нечисловой обработки . Ассоциация вычислительной техники – Специальная группа по поиску информации: 137–138. doi :10.1145/800083.802703. S2CID  10081363.
  2. ^ "Retrocomputing – MIT CADR Lisp Machines". Unlambda.com . Получено 2018-12-01 .
  3. ^ Ciccarelli, Eugene C. (1 августа 1984 г.). «Презентационный пользовательский интерфейс». DSpace@MIT. hdl :1721.1/6946.
  4. ^ "Брошюра Genera 7" (PDF) . Bitsavers .
  5. Полтер, Гэри (17 февраля 2021 г.). «И вот оно!». twitter . Получено 9 января 2022 г. .
  6. Wiegley, John (23 октября 2007 г.). «The Symbolics Lisp Machine on Linux». Advogato. Архивировано из оригинала 30 июня 2017 г. Получено 22 ноября 2011 г.
  7. Коллисон, Патрик (апрель 2008 г.). «Lisp Machines». Архивировано из оригинала 27-08-2009 . Получено 31-08-2009 .
  • Официальный сайт
    • Интегрированная среда разработки Symbolics Genera
    • «Техническое резюме символики»
    • "Genera Concepts" - веб-копия введения в Genera от Symbolics
  • Документация по программному обеспечению Symbolics на bitsavers.org
  • Страница скриншотов Genera
  • Скриншоты отмеченного наградами инструмента Symbolics Document Examiner
  • «Виртуальная машина LISP Symbolics, или использование Dec Alpha в качестве программируемого микродвижка»
  • «Видеодемонстрация 2013 года от программиста Symbolics Калмана Рети»
Взято с "https://en.wikipedia.org/w/index.php?title=Genera_(operating_system)&oldid=1249589967"