Воспоминания бумера — VAX/VMS
Продолжение, предыдущие части: Путь в IT — воспоминания бумера и Путь в IT, воспоминания бумера. Часть 2, институт, PDP-11
На третьем курсе института я вырос из PDP-11 (СМ ЭВМ). 64K адресного пространства жмут очень сильно, куда больше, чем 640K. К счастью, мне удалось зацепиться за два места, где я мог пользоваться машинным временем на VAX/VMS.
Полиграфмаш
В обоих случаях это были настоящие VAX из-за бугра, а не их советские аналоги. В Полиграфмаше машина выглядела примерно так:
Машины обладали совершенно фантастической надежностью, я не видел, чтобы в них что-то ломалось или их как либо обслуживали. И, кстати, было непонятно, что бы стали делать при поломке — заказ запчастей из запада занял бы многие месяцы.
Я сидел за терминалом VT220. Он обладал приятной эргономикой и был очень приятен для глаз. В частности, там был smooth scroll — плавное движение текста, так что для глаз он был куда менее вреден, чем современные мониторы. Я продолжал дорабатывать свой интерпретатор языка PLANNER, наслаждаясь виртуальной памятью, 32 разрядным пространством и скоростью компиляции.
Да, а каким образом сам текст интерпретатора попал туда с PDP-11? Перенести можно было только на ленте, но на СМ ленты были такими:
на micro-VAX были ленты, но они были другие, в картриджах:
Так что единственным выходом для меня было перенабрать текст. Еще я чуть не довел своих родителей до инфаркта. Полиграфмаш располагался на берегу реки Карповки, недалеко от ЛЭТИ. Я ходил через проходную, показывая пропуск. Однажды пропуск и студенческий билет возле проходной вывалились у меня из кармана, но были подобраны каким то студентом ЛЭТИ и заботливо отнесены в деканат. Оттуда позвонили моим родителям и сказали:
— Документы вашего сына найдены в реке Карповке!
та самая проходная (слева)Сотовых тогда не было, время уже летнее, я поехал не домой, а на дачу, причем не сразу. Родители в ужасе поехали на дачу… Меня нет и там… Мысленно меня уже хоронили, а я как раз только приехал и даже не заметил отсутствия документов.
Операционная система и архитектура VAX/VMS
Операционная система поражала своим совершенством. Помимо вытесняющей многозадачности и защите процессов была виртуальная память, кластеры из машин, файловая система с каталогами произвольной вложенности и именами произвольной длины и, как всегда у digital, версионностью файлов.
Все компиляторы были написаны в самой фирме DEC и были идеально совместимы друг с другом — то есть, из Pascal вы могли вызвать подпрограммы на C, PL/1, ADA, чем угодно. Более того, получившаяся программа была крошечной — любой «Hello world» компилировался в 4–6 блоков (стандартные для DEC 512-байтные блоки). Почему? Потому что все runtimes от языков были отмаплены в часть памяти ос (по моему выше 2Gb) так что могли шариться всеми процессами.
К сожалению, именно это стремление к минимизации расхода памяти и погубило, на мой взгляд, фирму digital. В VAX была выбрана CISC система инструкций, а мы знаем, что победила MISC. CISC компактна, но сложна, и совсем не подходит для каких то трюков — конвееры, speculative execution, branch prediction etc. По скорости выполнения команд VAX были довольно медленными машинами, а вот память стремительно дешевела. Когда в digital это поняли, они выпустили Alpha, но время было уже упущено. Ну хотя бы в Windows NT живет искра гения digital…
Ассемблер VAX был доведен до совершенства, но уже не был столь красив, как ассемблер PDP-11. В нем же не было былой легкости. Огромное количество типов адресации, причем ортогональных, их можно было использовать везде. Вы извините, но я должен привести тут две странички:
И все это способы адресации работали с разными типами данных, которые поддерживались нативно:
Были команды «вычислить многочлен», «переместить область памяти». Так как такие команды могли занять длительное время, то в VAX команды могли быть прерваны в середине. Часть из 16 регистров использовались такими командами как счетчики циклов, и при возврате из прерывания и восстановлении значений регистром выполнение команды могло правильно продолжиться с нужного места. В общем, это было вершиной архитектуры CISC.
И вот вишенка на тортике — напоминаю, это 80е годы прошлого века!
Аналитприбор
Больше мне нравилось «работать» (в кавычках, потому что оформления никакого не было) в Аналитприборе на проспекте Огородникова. Там были не просто microVAX, а VAXstation!
Эти машинки были компактнее и, помимо терминалов, имели графический дисплей — 1024×768, миллионы цветов -, но 256 одновременно (1 байт цвета на пиксель и LUT). Можно было загружать либо собственную поделку от DEC, либо X-windows (DEC windows). Я имел удовольствие попрограммировать на C на абсолютно голом X-11. То есть крутится бесконечный цикл обработки событий, и, когда приходит Expose Event (например, часть вашего окна вылезла из-под другого и стала видна), это пустое место надо снова прорисовать. В лоб. Уже позже мы догадались вести там список объектов.
Все это походило на практику, но сейчас новичка бы загрузили какой-то реальной работой. Но какая реальная работа в советском НИИ? Мы (и еще несколько человек) программировали все, что хотели. Я доделывал PLANNER, ставший моей дипломной работой (и небольшой переводчик с французского на английский, написанный на PLANNER). Но было еще много разных интересных утилиток и даже знакомство с языком ADA.
Об атмосфере в этом НИИ говорил хотя бы такой эпизод — по описи помимо VAXstation числился еще один VAX, microVAX. Но где он? Его никто не видел. Потом мы его все же нашли — он работал кофейным столиком. Никто и не подозревал, что под скатертью дорогая машина!
В Аналитприборе я познакомился с IBM PC и играми _ Mortal combat и Larry. К PC я относился со смесью ревности и презрения. С одной стороны, уродливая примитивная архитектура, жалкое подобие ОС, но уже тогда чувствовалось, что примитивные задачи (с графикой) PC щелкает быстрее чисто за счет частоты процессора.
Сама атмосфера в аналитприборе мне напоминала рассказ 'Понедельник начинается в субботу'. Талантливая молодежь, дым в курилке, очередь в столовую с подносами на рельсах. Но постепенно народу становилось меньше. Закрылась столовая, остался только буфет, а в пустых коридорах было слышно эхо. Место стало много, и нам выделили отдельную комнату. Мы перенесли туда оба VAX и терминалы, все красиво расставили… И я там больше никогда не появился — это был конец 91 го года, и начиналась моя работа в «Лихие 90е», об этом будет следующая часть.