Разработчик | Символика |
---|---|
Написано в | Лисп |
Семейство ОС | ОС машины Лисп |
Рабочее состояние | Снято с производства |
Исходная модель | Собственный , с открытым исходным кодом |
изначальный выпуск | 1982 |
Окончательный релиз | Open Genera 2.0 / 1998 |
Доступно в | английский |
Платформы | различные машины Symbolics Lisp , DEC Alpha |
Тип ядра | Объектно-ориентированный |
Пользовательский интерфейс по умолчанию | Динамический графический интерфейс Windows |
Лицензия | Проприетарный |
Официальный веб-сайт | symbolics-dks |
Genera - это коммерческая операционная система и интегрированная среда разработки для машин Lisp, разработанная Symbolics . По сути, это ответвление более ранней операционной системы, созданной на Lisp-машинах Лаборатории искусственного интеллекта Массачусетского технологического института (MIT) , которые Symbolics использовала совместно с Lisp Machines , Inc. (LMI) и Texas Instruments (TI). Genera также продается компанией Symbolics как Open Genera , которая запускает Genera на компьютерах на базе Digital Equipment Corporation (DEC) Alpha.процессор с использованием Tru64 UNIX . Он выпущен и лицензирован как проприетарное программное обеспечение .
Genera - это пример объектно-ориентированной операционной системы, основанной на языке программирования Lisp .
Genera поддерживает инкрементную и интерактивную разработку сложного программного обеспечения с использованием сочетания стилей программирования с обширной поддержкой объектно-ориентированного программирования .
Операционная система машины Lisp MIT [ править ]
Операционная система Lisp Machine была написана на Lisp Machine Lisp . Это была однопользовательская рабочая станция, изначально предназначенная для разработчиков программного обеспечения для проектов искусственного интеллекта (ИИ). [1] В системе был большой растровый экран, мышь, клавиатура, сетевой интерфейс, дисковод и слоты для расширения. Операционная система поддерживала это оборудование и обеспечивала (среди прочего):
- код для внешнего процессора
- означает загрузку операционной системы
- управление виртуальной памятью
- вывоз мусора
- интерфейс для различного оборудования: мышь, клавиатура, буфер кадра растрового изображения, диск, принтер, сетевой интерфейс
- интерпретатор и компилятор машинного кода для Lisp Machine Lisp
- объектная система: ароматы
- графический пользовательский интерфейс (GUI) , система окна и оконный менеджер
- локальная файловая система
- поддержка сети Chaosnet (CHAOS)
- Emacs -как редактор по имени Zmacs
- почтовая программа под названием Zmail
- слушатель Lisp
- отладчик
Это уже была полноценная однопользовательская операционная система и среда разработки на основе Lisp.
Машинная операционная система MIT Lisp разрабатывалась с середины 1970-х до начала 1980-х годов.
В 2006 году исходный код этой операционной системы Lisp-машины от MIT был выпущен как бесплатное программное обеспечение с открытым исходным кодом . [2]
Операционная система Genera [ править ]
Компания Symbolics разработала новые машины на Лиспе и опубликовала операционную систему под названием Genera . Последняя версия - 8.5. Symbolics Genera была разработана в начале 1980-х - начале 1990-х годов. В последние годы разработка включала в себя в основном исправления и очень мало новых функций.
Компания Symbolics разработала Genera на основе этой основы операционной системы машины Lisp MIT. Он продает операционную систему и многоуровневое программное обеспечение . Некоторое многоуровневое программное обеспечение было интегрировано в 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 .
Исходная операционная система машины Lisp была разработана на Lisp Machine Lisp с использованием объектно-ориентированного расширения Flavors для этого Lisp. Symbolics предоставила преемника Flavors под названием New Flavors . Более поздняя символика также поддерживала Common Lisp и объектную систему Common Lisp (CLOS). Затем Symbolics Common Lisp стал диалектом Lisp по умолчанию для написания программного обеспечения с помощью Genera. Программное обеспечение операционной системы было написано в основном на Lisp Machine Lisp (названном ZetaLisp) и символики Common Lisp. Оба эти диалекта Lisp предоставлены Genera. Также в некоторых частях программного обеспечения использовались разновидности, новые разновидности и объектная система Common Lisp. Некоторые из старых частей операционной системы Genera были переписаны на Symbolics Common Lisp и систему Common Lisp Object. Многие части операционных систем остались написанными на ZetaLisp и Flavors (или New Flavors).
Пользовательский интерфейс [ править ]
Ранние версии Symbolics Genera были построены с использованием исходной оконной системы графического пользовательского интерфейса (GUI) операционной системы Lisp-машины. Затем компания Symbolics разработала радикально новую оконную систему под названием Dynamic Windows с пользовательским интерфейсом на основе презентаций . [3] Эта оконная система была представлена в Genera 7 в 1986 году. [4] Многие приложения Genera тогда использовали динамическую Windows для своего пользовательского интерфейса . В конце концов, был переход к портированию частей оконной системы для работы на других реализациях Common Lisp от других поставщиков в качестве диспетчера интерфейсов Common Lisp.(КЛИМ). Версии CLIM были доступны (среди прочего) для Allegro Common Lisp , LispWorks и Macintosh Common Lisp . Доступна версия с открытым исходным кодом ( McCLIM ).
Dynamic Windows использует типизированные объекты для всего вывода на экран. Вся отображаемая информация сохраняет связь с отображаемыми объектами ( выходная запись ). Это работает как для текстового, так и для графического вывода. Во время выполнения операции, применимые к этим объектам, вычисляются на основе иерархии классов и доступных операций ( команд ). Команды организованы в иерархические таблицы команд с типизированными параметрами. Команды можно вводить с помощью мыши (широко используя аккорды мыши), нажатия клавиш и интерфейс командной строки. Все приложения используют одну реализацию интерпретатора командной строки, которая адаптируется к различным типам использования. Графические возможности оконной системы основаны на графической модели PostScript .
Пользовательский интерфейс в основном монохромный ( черно-белый ), поскольку это обычно предусмотрено аппаратной консолью. Но существует обширная поддержка цвета с использованием буферов цветовой рамки или серверов X Window System (X11) с поддержкой цвета. В деятельности (приложения) использует весь экран с несколькими стеклами, хотя окна также могут быть меньше. Расположение этих окон действий адаптируется к разным размерам экрана. Действия также могут переключаться между разными макетами панелей.
Genera предоставляет системное меню для управления окнами, переключения приложений и управления оконной системой. Многие функции пользовательского интерфейса (переключение между действиями, создание действий, остановка и запуск процессов и многое другое) также можно контролировать с помощью команд с клавиатуры.
Dynamic Lisp Слушатель является примером интерфейса командной строки с полными графическими возможностями и поддержкой взаимодействия мыши основе. Он принимает в качестве входных данных выражения и команды Лиспа. Вывод чувствителен к мыши. Слушатель Lisp может отображать формы для ввода данных для различных встроенных команд.
Пользовательский интерфейс предоставляет обширную интерактивную справку и контекстно-зависимую справку , а также возможность выбора в различных контекстах.
Документация [ править ]
Genera поддерживает интерактивную документацию с гиперссылками . Документация читается с помощью Document Examiner , раннего гипертекстового браузера. Документация основана на небольших многократно используемых записях документации, которые также могут отображаться в различных контекстах с помощью редактора и прослушивателя Lisp. Документация разбита на книги и разделы. Книги были также представлены в печатном виде с тем же содержанием, что и онлайн-документация. Информация о базе данных документации поставляется с Genera и может быть изменена с помощью дополнительных исправлений.
Документация была создана с помощью отдельного приложения, которое не поставлялось с Genera: Symbolics Concordia . Concordia предоставляет расширение для редактора Zmacs для редактирования записей документации, графический редактор и средство предварительного просмотра страниц.
В документации представлены руководства пользователя, инструкции по установке и ссылки на различные конструкции и библиотеки Lisp.
Язык разметки основан на языке разметки Scribe и также может использоваться разработчиком.
Genera поддерживает печать на принтерах PostScript, предоставляет очередь печати, а также интерпретатор PostScript (написанный на Lisp).
Особенности [ править ]
Genera также поддерживает различные сетевые протоколы и приложения, использующие их. Он имеет обширную поддержку TCP / IP .
Genera поддерживает однопроцессорные машины с несколькими потоками (называемыми процессами ).
Genera поддерживает несколько различных типов сборки мусора (GC): полный сборщик мусора, сборщик мусора на месте, инкрементный сборщик мусора и эфемерный сборщик мусора . Сборщик эфемерных данных использует только физическую память и использует блок управления памятью для получения информации об измененных страницах в физической памяти. Коллектор использует поколения, а виртуальная память разделена на области. Области могут содержать объекты определенных типов (строки, растровые изображения, пути и т. Д.), И каждая область может использовать разные механизмы управления памятью.
Genera реализует две файловые системы : файловую систему FEP для больших файлов и файловую систему машины Lisp (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)
- Символика Fortran, версия Fortran, написанная на Lisp (исходный код Lisp включен в дистрибутив Genera)
Символика Common Lisp предоставляет большую часть стандарта Common Lisp с очень большим количеством расширений, многие из которых происходят от ZetaLisp.
Другие языки от Symbolics [ править ]
- Symbolics Prolog , версия Prolog, написанная и интегрированная в Lisp
- Символика Ада , версия Ады, написанная на Лиспе
Примечательно, что эти реализации языка программирования унаследовали некоторые динамические функции системы Lisp (такие как сборка мусора и проверенный доступ к данным) и поддерживали инкрементную разработку программного обеспечения.
Сторонние разработчики предоставили больше языков программирования, таких как OPS5 , и инструментов разработки, таких как Knowledge Engineering Environment (KEE) от IntelliCorp).
Приложения [ править ]
Symbolics Genera поставляется с несколькими приложениями. Приложения называются действиями . Некоторые из мероприятий:
- Zmacs , давал Emacs -как текстовый редактор
- Zmail, программа для чтения почты, также предоставляющая календарь
- Браузер файловой системы с инструментами для обслуживания файловой системы
- Lisp Listener с интерфейсом командной строки
- Document Examiner для просмотра документации
- Восстановите распространение, чтобы установить программное обеспечение.
- Распространять системы, чтобы создавать дистрибутивы программного обеспечения.
- Просматривайте, чтобы изучить системную информацию (процессы, окна, сетевые соединения, ...)
- Отладчик
- Редактор пространства имен для доступа к информации об объектах в сети (пользователи, компьютеры, файловые системы, ...)
- Converse, чат-клиент
- Терминал
- Инспектор для просмотра структур данных Лиспа
- Уведомления
- Frame-Up, для разработки пользовательских интерфейсов
- Flavor Examiner, чтобы изучить классы и методы объектно-ориентированного расширения Flavor для Lisp.
Музей символики от Ральфа Мёллера предоставляет скриншоты этих мероприятий.
Другие приложения от Symbolics [ править ]
Symbolics продала несколько приложений, работающих на Symbolics Genera.
- Symbolics Concordia, пакет для производства документов
- Symbolics Joshua, оболочка экспертной системы
- Symbolics Macsyma , система компьютерной алгебры
- Symbolics NS, инструмент для проектирования микросхем
- Symbolics Plexi, инструмент для разработки нейронных сетей
- Symbolics S-Graphics, набор инструментов: S-Paint, S-Geometry, S-Dynamics, S-Render
- Symbolics S-Utilities: S-Record, S-Compositor, S-Colorize, S-Convert
- Symbolics Scope, цифровая обработка изображений с помощью компьютера Pixar Image
- Symbolics Statice, объектная база данных
Сторонние приложения [ править ]
Несколько компаний разработали и продали приложения для Symbolics Genera. Некоторые примеры:
- Automated Reasoning Tool (ART), оболочка экспертной системы от Inference Corporation
- ICAD , трехмерная параметрическая САПР
- Illustrate, графический редактор
- Knowledge Engineering Environment (KEE), оболочка экспертной системы от IntelliCorp
- Knowledge Craft, оболочка экспертной системы, от Carnegie Group
- Металл, система машинного перевода от Сименс
Основные моменты [ править ]
- Genera полностью написан на Лиспе с использованием ZetaLisp и Symbolics Common Lisp, включая весь системный код низкого уровня, такой как драйверы устройств, сборка мусора, планировщик процессов, сетевые стеки и т. Д.
- Исходный код - это более миллиона строк Лиспа, но относительно компактен по сравнению с предоставленными функциями из-за частого повторного использования. Он также доступен для проверки и изменения пользователями.
- Операционная система в основном написана в объектно-ориентированном стиле с использованием Flavors, New Flavors и CLOS.
- Он имеет обширную онлайн-документацию, которую можно прочитать с помощью Document Examiner.
- Dynamic Windows предоставляет пользовательский интерфейс на основе презентаций
- Пользовательский интерфейс можно использовать локально (на Lisp-машинах и MacIvories) и удаленно (с использованием X11).
- Группы разработчиков могут работать вместе в сетевой среде.
- Центральный сервер пространства имен предоставляет каталог машин, пользователей, служб, сетей, файловых систем, баз данных и т. Д.
- Защита от смены операционной системы слабая. Вся система полностью доступна и изменяема.
Ограничения [ править ]
Ограничения Genera включают:
- Работает только на машинах Symbolics Lisp или эмуляторе Open Genera.
- Одновременно может быть авторизован только один пользователь.
- Одновременно может работать только одна система Lisp. Данные и код совместно используются приложениями и операционной системой. Однако несколько экземпляров Open Genera могут работать на одной альфа-версии DEC.
- Развитие фактически остановилось в середине 1990-х годов.
Релизы [ править ]
- 1982 - Выпуск 78
- 1982 - Выпуск 210
- 1983 - Выпуск 4.0
- 1984 - выпуск 5.0
- 1985 - Выпуск 6.0, введение Symbolics Common Lisp, сборщика мусора эфемерных объектов и средства проверки документов
- 1986 - Genera 7.0, внедрение динамических окон
- 1990 - Genera 8.0, выпуск CLOS
- 1991 - Genera 8.1, выпуск CLIM
- 1992 - Genera 8.2
- 1993 - Genera 8.3
- 1993 - Open Genera 1.0
- 1998 - Open Genera 2.0
Существует экспериментальная версия Open Genera, которая может работать в Linux x86-64 . [5] [6]
Ссылки [ править ]
- ^ "Лисп-машина". Материалы пятого семинара по архитектуре компьютеров для нечисловой обработки . Ассоциация вычислительной техники - Специальная группа по поиску информации. 1980. DOI : 10,1145 / 800083,802703 .
- ^ "Retrocomputing - машины MIT CADR Lisp" . Unlambda.com . Проверено 1 декабря 2018 .
- ^ Ciccarelli, Евгений С. (1 августа 1984). «Пользовательский интерфейс на основе презентаций» . DSpace @ MIT.
- ^ "Брошюра Genera 7" (PDF) . Битцеверы .
- ^ Wiegley, Джон (23 октября 2007). «Машина Symbolics Lisp в Linux» . Advogato. Архивировано из оригинала на 30 июня 2017 года . Проверено 22 ноября 2011 года .
- ^ Коллисон, Патрик (апрель 2008 г.). "Лисп-машины" . Архивировано из оригинала на 2009-08-27 . Проверено 31 августа 2009 .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Интегрированная среда разработки Symbolics Genera
- "Техническое резюме Symbolics"
- Веб-копия "Genera Concepts" из введения Symbolics в Genera
- Документы по программному обеспечению Symbolics на сайте bitsavers.org
- Страница скриншотов Genera
- Скриншоты удостоенного наград Symbolics Document Examiner
- "Виртуальная лисп-машина Symbolics или использование Dec Alpha в качестве программируемого микродвигателя"
- «Видеодемонстрация 2013 года программиста Symbolics Калмана Рети»