Продолжение, предыдущие части: Путь в 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!

Эти машинки были компактнее и, помимо терминалов, имели графический дисплей - 1024x768, миллионы цветов - но 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е", об этом будет следующая часть.
Автор: Дмитрий EvilDBA