Воспоминания бумера — VAX/VMS

Продолжение, предыдущие части: Путь в IT — воспоминания бумера и Путь в IT, воспоминания бумера. Часть 2, институт, PDP-11

На третьем курсе института я вырос из PDP-11 (СМ ЭВМ). 64K адресного пространства жмут очень сильно, куда больше, чем 640K. К счастью, мне удалось зацепиться за два места, где я мог пользоваться машинным временем на VAX/VMS.

Полиграфмаш

В обоих случаях это были настоящие VAX из-за бугра, а не их советские аналоги. В Полиграфмаше машина выглядела примерно так:

3cd2a7cc4652602d2fae4ac7c7e58229.jpg

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

41ab5fb891221436089332b5342c7cfc.jpg

Я сидел за терминалом VT220. Он обладал приятной эргономикой и был очень приятен для глаз. В частности, там был smooth scroll — плавное движение текста, так что для глаз он был куда менее вреден, чем современные мониторы. Я продолжал дорабатывать свой интерпретатор языка PLANNER, наслаждаясь виртуальной памятью, 32 разрядным пространством и скоростью компиляции.

Да, а каким образом сам текст интерпретатора попал туда с PDP-11? Перенести можно было только на ленте, но на СМ ленты были такими:

9733c05eee49944c0993ef8a72d2b68e.png

на micro-VAX были ленты, но они были другие, в картриджах:

baf60085f8eb0942c935f3f9d8d08519.png

Так что единственным выходом для меня было перенабрать текст. Еще я чуть не довел своих родителей до инфаркта. Полиграфмаш располагался на берегу реки Карповки, недалеко от ЛЭТИ. Я ходил через проходную, показывая пропуск. Однажды пропуск и студенческий билет возле проходной вывалились у меня из кармана, но были подобраны каким то студентом ЛЭТИ и заботливо отнесены в деканат. Оттуда позвонили моим родителям и сказали:

— Документы вашего сына найдены в реке Карповке!

та самая проходная (слева)та самая проходная (слева)

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

Операционная система и архитектура 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. В нем же не было былой легкости. Огромное количество типов адресации, причем ортогональных, их можно было использовать везде. Вы извините, но я должен привести тут две странички:

0fd6c3831939724b601a8bd6ea7ff1af.pngb6e3d0ca323ba7e920dc74e46ff2f831.png

И все это способы адресации работали с разными типами данных, которые поддерживались нативно:

53c2af3e0753a5e0773d3665745457eb.png

Были команды «вычислить многочлен», «переместить область памяти». Так как такие команды могли занять длительное время, то в VAX команды могли быть прерваны в середине. Часть из 16 регистров использовались такими командами как счетчики циклов, и при возврате из прерывания и восстановлении значений регистром выполнение команды могло правильно продолжиться с нужного места. В общем, это было вершиной архитектуры CISC.

И вот вишенка на тортике — напоминаю, это 80е годы прошлого века!

a52c7e65d636c44a614c331eca7a2268.png

Аналитприбор

Больше мне нравилось «работать» (в кавычках, потому что оформления никакого не было) в Аналитприборе на проспекте Огородникова. Там были не просто microVAX, а VAXstation!

d6737a03b54dab70e60decc1c26f57c7.jpg

Эти машинки были компактнее и, помимо терминалов, имели графический дисплей — 1024×768, миллионы цветов -, но 256 одновременно (1 байт цвета на пиксель и LUT). Можно было загружать либо собственную поделку от DEC, либо X-windows (DEC windows). Я имел удовольствие попрограммировать на C на абсолютно голом X-11. То есть крутится бесконечный цикл обработки событий, и, когда приходит Expose Event (например, часть вашего окна вылезла из-под другого и стала видна), это пустое место надо снова прорисовать. В лоб. Уже позже мы догадались вести там список объектов.

18e238f5c2dff2ff8b952f013909f804.png

Все это походило на практику, но сейчас новичка бы загрузили какой-то реальной работой. Но какая реальная работа в советском НИИ? Мы (и еще несколько человек) программировали все, что хотели. Я доделывал PLANNER, ставший моей дипломной работой (и небольшой переводчик с французского на английский, написанный на PLANNER). Но было еще много разных интересных утилиток и даже знакомство с языком ADA.

Об атмосфере в этом НИИ говорил хотя бы такой эпизод — по описи помимо VAXstation числился еще один VAX, microVAX. Но где он? Его никто не видел. Потом мы его все же нашли — он работал кофейным столиком. Никто и не подозревал, что под скатертью дорогая машина!

В Аналитприборе я познакомился с IBM PC и играми _ Mortal combat и Larry. К PC я относился со смесью ревности и презрения. С одной стороны, уродливая примитивная архитектура, жалкое подобие ОС, но уже тогда чувствовалось, что примитивные задачи (с графикой) PC щелкает быстрее чисто за счет частоты процессора.

Сама атмосфера в аналитприборе мне напоминала рассказ 'Понедельник начинается в субботу'. Талантливая молодежь, дым в курилке, очередь в столовую с подносами на рельсах. Но постепенно народу становилось меньше. Закрылась столовая, остался только буфет, а в пустых коридорах было слышно эхо. Место стало много, и нам выделили отдельную комнату. Мы перенесли туда оба VAX и терминалы, все красиво расставили… И я там больше никогда не появился — это был конец 91 го года, и начиналась моя работа в «Лихие 90е», об этом будет следующая часть.

© Habrahabr.ru