Привет! Меня зовут Павел Анохин, я сооснователь и один из кураторов музея Яндекса. Хочу поделиться историей, связанной с нашим экспонатом — редкой платой с Лисп-процессором Symbolics. История эта уходит корнями в далёкое прошлое компьютерной эры — 70-е, времена огромных ЭВМ и первого бума интереса к искусственному интеллекту, продолжается в 80-е, когда Ричард Столлман воевал с компанией Symbolics за право открытого доступа к софту, и заканчивается в 90-х, когда ниша для применения Лисп-машин стала совсем узкой, а небольшие производители компьютеров пали под натиском крупных корпораций. Надеюсь, вам будет интересно узнать обо всём этом больше, а также посмотреть, как работает главный интерфейс Лисп-машины — Listener. Специально для статьи я записал видео с примерами создания несложных программ.


Лисп-плата из музея Яндекса

Первый искусственный интеллект


Первый бум «искусственного интеллекта» пришёлся на 70-е. В то время из-за недостатка в мощностях и данных под этим термином понимали не то же самое, что сейчас. Однако люди уже интересовались такими вещами, как обработка естественного языка и понимание естественных команд. Реализовать качественное распознавание речи (то есть звука) было невозможно, но специалисты всерьёз работали над синтезом речи и распознаванием команд, набранных на естественном языке с клавиатуры. Среди ранних примеров можно выделить SHRDLU (демо, понимавшее команды вида «поставь синюю пирамиду на красный кубик»), Eliza (виртуальный собеседник), Zork (приключенческая игра с управлением на естественном языке: «Ударь тролля мечом», «Открой сундук и положи в него рюкзак»).

Одним из центров по искусственному интеллекту был MIT. Сегодня ИИ в первую очередь ассоциируется с машинным обучением, но тогда наибольшее внимание уделялось символьным вычислениям. Исторически сложилось, что основным языком разработки того, что тогда подразумевалось под искусственным интеллектом, был Лисп. Это первый относительно распространённый язык, который хорошо справлялся не только с вычислениями, но и с обработкой символьной информации.

Много внимания уделялось экспертным системам — программам, способным выполнять действия по созданным вручную правилам. Были и первые эксперименты с нейросетями, но далеко они не зашли.

Рядом с людьми, которые занимались самим ИИ, неизбежно появлялись люди, которые развивали сопутствующие инструменты: язык, компиляторы, средства разработки. Сейчас каждый программист привык к средствам разработки — они во многом являются развитием идей, заложенных тогда. Чтобы разрабатывать сложные по тем временам системы, нужны были ещё толком не существовавшие инструменты. Их придумывали, проводилось много экспериментов, как обустроить пользовательский интерфейс.

Возникло два больших конкурирующих диалекта со своими экосистемами. MIT считали важным, во-первых, развивать сам язык (например, они придумали макросы вполне современного вида), а во-вторых, улучшать качество его реализаций (так появился первый настоящий компилятор Лиспа в машинный код). Эти идеи стали основой диалекта MacLisp. В качестве редактора кода использовали Emacs. Реализацию Emacs того времени едва ли можно назвать ранней версией нынешнего всем известного редактора — скорее это был её идеологический предшественник.

В BBN, а позже в Xerox разрабатывали Interlisp. В языковом плане он оказался более архаичен, но много внимания уделялось инструментарию разработчика. Именно там впервые появились такие привычные сегодня вещи, как автодополнение в командной строке; интерактивный анализ программы на предмет того, в каких местах кода используется конкретная функция или переменная; встроенный в среду разработки специализированный редактор. Также у Interlisp очень рано появился оконный интерфейс. Но были и вещи очень странные по нынешним меркам. Например, исходники хранились не в файлах, а прямо внутри образа системы, который целиком сохранялся и загружался вместе со всем состоянием. А если интерпретатор обнаруживал, что кусок кода содержит ошибку, то пытался её самостоятельно исправить — скажем, меняя несуществующую переменную на существующую с похожим названием. Это порой приводило к непредсказуемым последствиям.


Плата памяти для Лисп-машины из музея Яндекса

Открытость и анархия


Подразделение MIT, сделавшее MacLisp, называлось лабораторией искусственного интеллекта — MIT AI Lab. В лаборатории и вокруг неё сформировалась особая этика совместного пользования ограниченными ресурсами — культура максимальной открытости и, я бы сказал, анархии.

Разработчики тех лет начинали на железе, которое можно было купить: главным Лисп-компьютером 60-х – 70-х служил PDP-10. Это были большие и дорогие машины, которые использовались сразу несколькими людьми в режиме разделения времени. В AI Lab сделали ОС для PDP-10, она так и называлась — «несовместимая система c разделением времени» (Incompatible Timesharing System, ITS).

ITS не предусматривала никакой защиты пользователей друг от друга, никакого разграничения доступа — и это не от бедности, а сознательно. Например, считалось совершенно нормальным читать электронную почту другого человека — вдруг ему задали вопрос, на который лучше ответишь ты? Авторизация происходила без пароля, а логин был нужен только для уведомления соседей по машине о том, кто сейчас за ней работает. Сначала даже для подключения по сети не требовались пароли. Однажды их всё-таки ввели — оставив доступ открытым для тех, кто заходил в систему из здания лаборатории.

Первые специализированные Лисп-компьютеры


К середине 70-х стало понятно, что на покупных PDP-10 далеко не уедешь. Сказывалась недостаточная производительность и особенно ограничения адресного пространства. В MIT начали разрабатывать свой компьютер. А поскольку многие процессы в институте были связаны с Лиспом, то они делали компьютер, заточенный под исполнение Лисп-программ. Первое экспериментальное устройство называлось CADR, сейчас его можно увидеть в музее MIT. CADR был громоздким, их сделали примерно 25, не дойдя до серийного производства.

В лаборатории искусственного интеллекта разные версии CADR хоть и с проблемами, но прижились. И как часто бывает, когда нечто крутое придумывается в университете, разработчики решили: давайте зарабатывать на этом деньги. Из-за разногласий компаний получилось две, их создали с разницей в год: в 1979-м и 1980-м. Первую назвали просто Lisp Machines Inc. (LMI), а вторую Symbolics — напоминаю, что речь шла про обработку символьной информации, а не просто про вычисления.

Война Symbolics со Столлманом как важнейшая глава в истории компьютерных лицензий


Одним из сотрудников лаборатории — в том числе главным мейнтейнером редактора Emacs — был Ричард Столлман. Когда образовались две компании, они наняли почти всех коллег Ричарда по AI Lab — интересно, что сам он не вошёл ни в ту, ни в другую команду.

Столлман, судя по всему, остро переживал то, что считал распадом сообщества, и особенно невзлюбил как раз Symbolics, в которую ушло больше народа и которая была агрессивнее в коммерческом смысле.


Ричард Столлман в MIT. Источник: Марк Шпаковский в Твиттере

Поскольку на ранних этапах обе фирмы фактически продавали клоны CADR, а их софт был основан на разработках времён AI Lab, то между ними и MIT действовало хитрое лицензионное соглашение. Оно позволяло лаборатории пользоваться всеми разработками фирм — без права распространения. Это тоже шло вразрез с привычной Столлману прежней практикой свободного обмена софтом. Он стал «помогать» отстающей LMI, воспроизводя для неё новые фичи от Symbolics, сначала — глядя в исходники Symbolics и переписывая код по-своему, а потом не глядя, по документации. В конце концов Symbolics это надоело, они устроили скандал с MIT, и Ричарду Столлману закрыли доступ к системам. «Война» длилась примерно с 1981 по 1983 год.

Разумеется, стороны по-разному описывают те события. Версия Столлмана изложена в книге Сэма Уильямса «Free as in Freedom. Richard Stallman’s Crusade for Free Software» и вкратце в этой лекции. Взгляд сотрудника Symbolics изложен здесь — если совсем коротко, Столлман никак не повлиял на работу Symbolics, а конкуренции между компаниями как таковой не было.

Сейчас, спустя 40 лет, эта история выглядит как буря в стакане. Но у неё был важный побочный эффект: Столлман решил сохранить культуру и этику, подобные тем, которые он знал по AI Lab и которых лишился. Так он придумал лицензию GPL — и вот она уже оказала большое влияние на мир, в котором мы сейчас живём.

Common Lisp и своё железо


Но вернёмся к LMI и Symbolics. Чуть позже к ним в области символьных вычислений присоединились большие и успешные хардварные компании: Texas Instruments и Xerox. LMI, Symbolics и TI продолжали семейство диалектов, основанных на MacLisp, а Xerox развивал Interlisp.

Со временем диалектов накопилось столько, что лисперы собрались и придумали стандарт Common Lisp: основная работа над ним шла с 1981 по 1984 год. Common Lisp, популярность которого быстро росла, в значительной степени базируется на версии Symbolics. Так парни из Xerox оказались немного на периферии, а Symbolics — наоборот, в самом центре этой тусовки.

Тогда уже было принято работать на однопользовательских машинах. Однако первые компьютеры Symbolics по-прежнему были размером с холодильник и страшно дорогими (35-125 тысяч долларов в 1988-м). Их, тем не менее, покупали организации, занимающиеся сложной обработкой данных. Например, планированием железнодорожных или авиарейсов, экспертными медицинскими системами (вводишь симптомы, и машина даёт оценку, что это может быть за диагноз). Есть сведения о применении в NASA для решения задачи об оптимальном расположении грузов в шаттле. American Express через фирму-партнёра использовала систему Symbolics, чтобы советовать сотрудникам колл-центра, в каких случаях считать звонящего мошенником. Повторюсь, компьютеры стоили дорого — в то же время внутренняя статистика American Express показывала, что окупаемость от их покупки составляет 45-67% (это очень много).

Но в основном технику Symbolics покупали не столько для того, чтобы запускать сложные программы, а чтобы их разрабатывать. Лисп-хакеры как начали ещё в 70-х делать компьютеры для себя и своей тусовски, так и продолжили.

Кстати, если вы не знали, вот вам интересный факт: symbolics.com — самый первый домен в зоне .com:

Creation Date: 1985-03-15T05:00:00Z

AI winter. Почему небольшие группы проиграли корпорациям


Затем наступил период, который принято вспоминать как AI winter. С одной стороны, всеобщий энтузиазм по поводу экспертных систем поугас. С другой, оказалось, что очень большой сегмент покупателей Лисп-машин — подрядчики министерства обороны США. В 1987-м управление перспективных исследовательских проектов в министерстве (Defense Advanced Research Projects Agency, DARPA) сократило расходы на проекты, и развитие всей этой сферы серьёзно замедлилось.

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

В том же 1987-м оказалось, что Лисп-программа работает быстрее на неспециализированном компьютере. Сначала такой софт запускали на рабочих станциях c UNIX, особенно производства Sun, а к началу 90-х — и на обычных ПК.

Переход к процессорам и софту


Symbolics начали думать, на чём сэкономить, чтобы остаться минимально конкурентоспособными. Сразу же родилась очевидная идея — перестать производить компьютеры, а делать только специализированные Лисп-процессоры без периферии (клавиатур, памяти, жёстких дисков и так далее). Чип размещался на плате расширения — можно было вставить её в Macintosh и запустить на нём Лисп-среду. В то же время Лисп-процессор умел справляться с гораздо более сложными задачами, чем железо самого Macintosh. Это немного похоже на то, как сейчас пишут программы для внешних GPU.

Интерфейс софта, который поставлялся вместе с Лисп-процессором, представлял собой нечто похожее на CLI, но с некоторыми возможностями из GUI. CLI-образный «текст» мог быть интерактивным объектом: по нему можно было кликнуть правой кнопкой, вывести контекстное меню, относящееся именно к этому объекту, и так далее. Ниже вы найдёте гифки и скринкаст с примерами интерфейса.

К середине 90-х ниша стала совсем узкой, и даже за счёт плат расширения Symbolics уже не могла угнаться за меняющимся миром. Прежде чем обанкротиться в 1996-м, компания успела выпустить эмулятор Лисп-процессора для первых в мире 64-битных чипов Alpha. Сегодня подобный эмулятор можно запустить на обычном ноутбуке.

Лисп-машина в музее Яндекса


Заинтересовавшись этой тематикой, я стал то и дело заходить на eBay — но за годы ни разу не видел плат расширения с Лисп-процессорами. Возможно, какие-нибудь лоты, быстро ушедшие за фиксированную цену, я пропустил — такие платы появляются в продаже раз в несколько лет. Это старая техника, множество плат находятся в нерабочем состоянии, ещё какие-то хранятся у коллекционеров на Западе. Если уж они что-то продают, то среди своих.

Но однажды я зашёл на reddit и в сабреддите Lisp увидел сообщение от участника — что-то вроде «наигрался, продаю». Речь шла о плате, целиком разработанной в Symbolics и произведённой в 1988 году. Я написал ему, что мы хотим купить плату для музея. Он ответил — раз вы музей, то ставлю вас повыше в очереди. В итоге плата досталась нам.

Любопытный факт: огромные раритетные компьютеры сложнее упаковать и доставить, они требуют большого количества электроэнергии, ухода — и поэтому стоят дешевле, чем платы. Для музея проблемы доставки и эксплуатации чуть менее актуальны, но всё равно принимаются во внимание.

На eBay появляются и другие вещи производства Symbolics: мануалы, книжки, компакт-диски с образами софта. Большим успехом пользуются клавиатуры; люди делают переходники, чтобы подключать их к современным компьютерам. Symbolics любили размещать на клавиатуре множество клавиш-модификаторов — не только Shift, Alt и Control.

Демонстрация работы


Мы посмотрим, как работает главный интерфейс Лисп-машины — Listener. Как я уже говорил, это CLI с некоторыми возможностями из GUI. Для просмотра гифок-скринкастов не нужны специальные знания и умение программировать — мы будем пробовать очень простые команды. Все гифки записаны на реальной Лисп-машине без использования эмулятора.

Начнём с очевидного — в Listener можно вводить Лисп-выражения:



Напишем вариацию Hello world на Лиспе. Для этого необязательно открывать редактор.

Теперь попробуем CLI-образную команду — Show Directory.

Show Directory — очень многословная команда по меркам UNIX и Windows. В Listener все команды такие. Но благодаря автодополнению необязательно вводить команду целиком — достаточно ввести префиксы слов в команде.

Например, вместо Show Directory можно ввести s dir, а sys>ex автоматически превращается в sys>examples, если такая директория есть.

Но где же тут элементы GUI? Дело в том, что содержимое окна Listener кликабельно — например, можно провести курсором по списку (элементы будут подсвечиваться), кликнуть на объект и вывести контекстное меню, относящееся именно к этому объекту:



Клик по объекту подставляет название этого объекта во вводимую команду.

От того, что уже введено в командной строке, зависит, какие объекты кликабельны, а какие нет. Если ввести не Show File, а Show Documentation, то Listener будет ждать, что затем вы введёте не название файла, а название команды, для которой нужно показать документацию. Поэтому файлы будут уже некликабельны. Зато внезапно кликабельной станет предыдущая выполненная команда.

Кликабельностью обладают многие интерфейсы внутри Listener. Например, если вы находитесь в документации и видите там ссылку на другой раздел, можно просто кликнуть на эту ссылку, и раздел откроется.

Но всё перечисленное было бы просто косметикой, если бы нельзя было реализовать автодополнение и кликабельность для своих команд и структур данных.

Напишем на Лиспе небольшую демку. Поскольку мы с вами на Хабре, создадим простой интерфейс работы со списком хабралюдей, у каждого из которых есть карма, и её можно увеличивать.

На этой гифке видно, как Listener автодополняет вводимую нами команду De a k до полного названия: Demo Add Karma. Это не системная команда — мы определили её сами.

Затем нужно указать, какому пользователю мы хотим увеличить карму: выведенный ранее список пользователей становится кликабельным. После того, как мы кликнули на нужного пользователя, остаётся ввести число, на которое мы хотим увеличить карму.

Обратите внимание, что строка с пользователем Bob некликабельна. Дело в том, что мы удалили этого пользователя командой, идущей сразу после списка. Listener даёт выбрать только тех пользователей, которые существуют в базе.

Я записал на видео более детальный скринкаст со своими комментариями. В нём я прохожу все перечисленные шаги, начиная с Hello world, но останавливаюсь подробнее на программировании и деталях интерфейса. Если хотите заглянуть в код и пошагово узнать, как устроена демка, то садитесь поудобнее:

Если вы читаете статью с компьютера, пользуйтесь «оглавлением» в таймлайне плеера YouTube — можно переходить между фрагментами, смотреть на разные возможности интерфейса и блоки программы.

Заключение


Для всех компаний, упомянутых в посте, идея Лисп-машин была временным решением. Texas Instruments, Xerox и все остальные постепенно переключились на другие направления. Symbolics были наиболее успешны на этом поприще в коммерческом смысле, продали больше всего устройств и, пожалуй, построили самую развитую среду.

Мы рады, что редкая плата с Лисп-процессором Symbolics теперь хранится в московском музее Яндекса. Вы можете прийти и увидеть её своими глазами — она установлена в один из наших «Макинтошей». К сожалению, уже после записи демо для статьи плата сломалась, поэтому попробовать её в работе пока не получится, но мы надеемся, что скоро проблему удастся решить. А пока можно прийти поэкспериментировать с другими экспонатами — наш музей полностью интерактивный.

Комментарии (41)


  1. Limows
    05.08.2021 12:34
    +3

    Оо да, я помню PDP 10, мой дед на таком работал. Скупую мужскую слезу уронил. Спасибо автору.


  1. FForth
    05.08.2021 13:10
    +4

    Близко затронутой теме аппаратных машин при исследовании АИ - был и проект железа реализующего - клеточные автоматы - CAM-8

    http://www.ai.mit.edu/projects/im/cam8/


  1. PereslavlFoto
    05.08.2021 13:39
    +9

    Может быть, раз вы музей, вы разрешите свободно использовать ваши фотографии при помощи лицензии Creative Commons Share-Alike?

    Спасибо.


  1. MZjr
    05.08.2021 14:52
    +3

    Весьма интересная тема, а не подскажете, есть ли толковые материалы по архитектуре "символьных" процессоров?


    1. Museum-Yandex Автор
      05.08.2021 14:56
      +1

      На Bitsavers есть некоторое количество документов. Например, процессор Ivory, как на нашей плате, описан в поддиректории I_Machine. И про софт там много интересного.


      1. Rigidus
        05.08.2021 19:34

        Есть ли эмуляторы, чтобы попробовать Ivory самостоятельно?


        1. Museum-Yandex Автор
          05.08.2021 20:19

          Я вскользь упоминал это в статье: да, эмулятор существует. Больше того, он написан в самом Symbolics, когда там поняли, что совсем не успевают за commodity-железом. Изначально он был написан под DEC Alpha, но впоследствии его удалось запустить и на x86-64. Эмулятор назывался VLM (Virtual Lisp Machine), вся конструкция вместе - OpenGenera.

          Но никто сейчас по-настоящему не понимает, что с правами на всю эту интеллектуальную собственность.


          1. Rigidus
            05.08.2021 20:29

            Черт с ними с правами, эти идеи не должны быть забыты :)

            Пожалуйста расскажите про свой путь в изучении (желательно со ссылками): что и в каком порядке стоит просмотреть, чтобы быть способным написать подобные команды для Ivory или OpenGenera. Начальный уровень - лисп знаю, емаксом пользуюсь.


            1. Museum-Yandex Автор
              05.08.2021 20:40

              У Symbolics превосходная документация, как в виде книг, на сканы которых я ссылался выше, так и гипертекстовая встроенная в систему (Show Documentation). В основном я все почерпнул оттуда.

              Но самым полезным было смотреть в исходники, которые поставляются вместе с системой. Какая-то команда реализует интересное поведение, и я не знаю, как его воспроизвести? Перейдем к ее определению и посмотрим там. После этого обычно ясно, что искать в документации.


              1. Rigidus
                05.08.2021 20:42

                Для перехода к определению нужно сделать Meta-. на команде, как в emacs?


                1. Museum-Yandex Автор
                  05.08.2021 20:50

                  Внутри Zmacs - да, Meta-.

                  В Listener текстовый курсор нельзя поставить в произвольное место окна, там Meta+левая кнопка мыши на представлении функции. Команда Find Command Symbol находит функцию по имени команды.


          1. PereslavlFoto
            05.08.2021 22:14

            «Никто сейчас по-настоящему не понимает, что с правами на всю эту интеллектуальную собственность».

            То есть никто не продаёт этих прав, да?


            1. Museum-Yandex Автор
              06.08.2021 11:31
              +1

              Там все сложно. Есть фирма, которой достались контракты Symbolics на поддержку.

              Есть человек, которому вроде как достались права, и он вроде как работает над тем, чтобы сделать все это доступным.

              Последние несколько лет ни от одних, ни от других ничего не слышно.


              1. Filipp42
                08.08.2021 17:36

                А если он просто выложит всё под свободной лицензией, кто ему хоть слово скажет? Кому вообще какое дело до этих программ?!


                1. PereslavlFoto
                  08.08.2021 23:40
                  +1

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

                  Нет, они не продают. Нет, рынка не существует. Нет, никто не предлагает им сделку. Нет, они никогда не встречали клиентов на такой ресурс.

                  Они просто не понимают, как можно отдать бесплатно ресурс, в который были вложены деньги.


      1. MZjr
        06.08.2021 22:19

        Спасибо! Надо непременно почитать


  1. Rigidus
    05.08.2021 19:52

    В видео показано написание команд для объектного интерфейса, а как я могу создать команду которая выведет графическое представление, например, конечного автомата?


    1. Museum-Yandex Автор
      05.08.2021 20:31

      Извините, промахнулся и ответил ниже.


    1. Museum-Yandex Автор
      06.08.2021 11:27

      Хочу дополнить, что это, на самом деле, не взаимоисключающие вещи. Представлениями объектов вполне могут быть не текстовые строки, а графические элементы. Грубо говоря, когда вы заводите тип-представление и определяете, как его показывать пользователю, вместо вывода строки вы можете отрисовать что-то. С точки зрения среды это почти ничем не будет отличаться. Почти - потому что местами есть парсинг из текстового представления.


  1. Museum-Yandex Автор
    05.08.2021 20:30
    +1

    В Dynamic Windows есть некоторое количество функций для рисования графических примитивов. Подробно об этом (как и о системе представлений, которую я описывал) можно прочитать в документе Programming the User Interface на Bitsavers.

    Можно как завести свое окно и делать в нем что угодно, так и, действительно, написать команду для Listener и рисовать прямо в его окне. Пример вывода графики есть в видео на 6:45.


    1. Rigidus
      05.08.2021 20:37
      +1

      Для будущих читателей этих комментариев оставлю прямую ссылку на файл: http://bitsavers.org/pdf/symbolics/software/genera_8/Programming_the_User_Interface.pdf

      Может быть существует развивающийся opensource-проект по "переизобретению" Genera?


      1. Museum-Yandex Автор
        05.08.2021 20:53
        +1

        Вообще утверждается, что CLIM вобрал в себя некоторые идеи DW, но я всерьез не разбирался. Есть CLIM-LISTENER, но он был очень сырой, когда я смотрел на него несколько лет назад.


  1. usa_habro_user
    05.08.2021 21:32
    +6

    Мое фото LISP машины из музея MIT


    1. Museum-Yandex Автор
      05.08.2021 21:42
      +1

      Вот это как раз CADR, общий предок машин и LMI, и Symbolics.

      Для нее тоже существует эмулятор и ее софт легально доступен, но представляет собой намного более ранние этапы развития.


  1. Paskin
    06.08.2021 08:29
    +4

    исходники хранились не в файлах, а прямо внутри образа системы, который целиком сохранялся и загружался вместе со всем состоянием

    Как минимум в Смоллтоке идея такая же - поскольку язык предназначался для симуляции (моделирования) процессов, вместо классического императивного подхода вам предлагается насоздавать сущностей, определить их реакции на разные события (в том числе неизвестные в момент создания) - и дать им взаимодействовать, наблюдая за состоянием. Именно поэтому "методы" обьектов и классов - это не процедуры, а на самом деле обработчики сообщений (оттуда эта идеология и перекочевала в Objective C).


    1. Museum-Yandex Автор
      06.08.2021 10:52
      +1

      Вы совершенно правы. И это не совпадение. Над Smalltalk работали в том же Xerox, что и над InterLisp. А в 80-е Lisp-машины Xerox могли быть переконфигурированы в Smalltalk-машины.


  1. Filipp42
    06.08.2021 14:36
    +1

    Так что стало с платой? Удастся ли её починить?


    1. Museum-Yandex Автор
      06.08.2021 14:40
      +2

      Мы еще не поняли. Она перестала нормально инициализироваться.

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

      Удастся ли починить? Я пока не теряю надежду.


      1. Filipp42
        07.08.2021 11:02

        А саму программу вы уже проверили? Вдруг на диске погибла парочка байт, и теперь вся программа работает неправильно? Есть ли резервная копия?


        1. Museum-Yandex Автор
          07.08.2021 13:01

          Разумеется! Вообще, чтобы было легче обращаться с резервными копиями, эта машина загружается со SCSI2SD, так что проверка с чистой инсталляцией - вопрос десяти минут.


          1. Filipp42
            08.08.2021 17:13

            А есть ли спецификация на интерфейсы, эмулятор платы и исходники программы загрузчика и прочее? Если да, можно попробовать написать программу, которая посылает запросы плате и слушает ответы, после чего опробовать её на плате и на эмуляторе (если эмулятор позволяет) и сравнить ответы с ожидаемыми (их полагаю можно глянуть в спецификации).


      1. fx32
        07.08.2021 12:57

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


        1. Museum-Yandex Автор
          07.08.2021 13:00

          Чистую наливку пробовали, конечно, это проще всего. Не помогло, так что дело где-то в железе.

          А на другом маке — еще нет. У нас есть некоторое количество 68k-маков, но все это добро совместимо только с одним из имеющихся.


          1. Filipp42
            08.08.2021 17:27

            А каков критерий совместимости? Может, если есть подходящий разъем можно спаять аппаратный переходник, такой, чтобы подсоединить плату к современному компьютеру?


  1. Anansy
    08.08.2021 00:09

    Вот эти вот своеобразные кликабельные интерфейсы прям очень сильно (до начертаний шрифтов) напоминают более поздние проекты -- среды программирования Никлауса Вирта -- BlackBox и другие, даже полностью нативные загружаемые макеты ОС. Только не на LISP, а на Oberon. https://oberon.org/ru

    И не случайно -- маэстро в упомянутых в статье конторах не чужой человек, достаточно много там работал и перенял многие полезные идеи. К сожалению, планета где-то "наскочила где-то на земную ось" и уковыляла в направлении усложнения и запутывания всего и вся в IT.


    1. kx13
      03.11.2021 18:47

      А мне такой кликообразный интерфейс сразу напомнил редактор acme из Plan9

      https://habr.com/ru/post/208482/

      Возможно Роб Пайк тоже работал с подобными лисп машинами.

      Я в нем как раз впервые увидел подобный подход. Кстати этот редактор можно скачать и запустить под современными системами.


  1. potan
    08.08.2021 00:36
    +1

    <a href="https://sillyhatsonly0.livejournal.com/3754.html">Еще интересное о Lisp-машинах</a>


  1. zuek
    19.08.2021 14:07

    Каждый раз, встречая упоминания языка Lisp, вспоминаю курсач, для которого я "написал чертёж редуктора" на AutoLISP, т.к. чертить в AutoCAD не умел, а кульманом было пользоваться сильно менее интересно, чем кодить.

    Зря я пошёл на "механическую" специальность - была бы возможность пойти на АСУ (не прошёл по зрению), образование больше бы пригодилось.


    1. Filipp42
      21.08.2021 12:51

      АСУ — автоматическая система управления? Как на неё не пройти по зрению? Или я неправильно расшифровал?


      1. zuek
        24.08.2021 15:49

        Вот такой был парадокс в предэкзаменационной медкомиссии - с диагнозом "цветоаномалия" на "автоматизированные системы управления" не допускали - возможно, считая, что я не смогу расшить на лабораторке кабель с цветной маркировкой жил. Именно из-за этой злосчастной "цветоаномалии" (неспособность различать некоторые оттенки, в моём случае, в зеленовато-голубоватой части) я стал "айтишником" с дипломом инженера-эколога (по специальности работал только год, пока писал диплом, всё остальное время, и до, и после - ИТ и "околоИТ").


  1. Yoel
    21.10.2021 05:59

    Для простых смертных, кто про эту знаменитую плату только читал, есть эмулятор под Линуксом:

    https://archives.loomcom.com/genera/genera-install.html