Продолжение, предыдущие части: Путь в IT — воспоминания бумера и Путь в IT, воспоминания бумера. Часть 2, институт, PDP-11
На третьем курсе института я вырос из PDP-11 (СМ ЭВМ). 64K адресного пространства жмут очень сильно, куда больше, чем 640K. К счастью, мне удалось зацепиться за два места, где я мог пользоваться машинным временем на VAX/VMS.
Полиграфмаш
В обоих случаях это были настоящие VAX из-за бугра, а не их советские аналоги. В Полиграфмаше машина выглядела примерно так:
![](https://habrastorage.org/getpro/habr/upload_files/3cd/2a7/cc4/3cd2a7cc4652602d2fae4ac7c7e58229.jpg)
Машины обладали совершенно фантастической надежностью, я не видел, чтобы в них что-то ломалось или их как либо обслуживали. И, кстати, было непонятно, что бы стали делать при поломке - заказ запчастей из запада занял бы многие месяцы.
![](https://habrastorage.org/getpro/habr/upload_files/41a/b5f/b89/41ab5fb891221436089332b5342c7cfc.jpg)
Я сидел за терминалом VT220. Он обладал приятной эргономикой и был очень приятен для глаз. В частности, там был smooth scroll - плавное движение текста, так что для глаз он был куда менее вреден, чем современные мониторы. Я продолжал дорабатывать свой интерпретатор языка PLANNER, наслаждаясь виртуальной памятью, 32 разрядным пространством и скоростью компиляции.
Да, а каким образом сам текст интерпретатора попал туда с PDP-11? Перенести можно было только на ленте, но на СМ ленты были такими:
![](https://habrastorage.org/getpro/habr/upload_files/973/3c0/5ee/9733c05eee49944c0993ef8a72d2b68e.png)
на micro-VAX были ленты, но они были другие, в картриджах:
![](https://habrastorage.org/getpro/habr/upload_files/baf/600/85f/baf60085f8eb0942c935f3f9d8d08519.png)
Так что единственным выходом для меня было перенабрать текст. Еще я чуть не довел своих родителей до инфаркта. Полиграфмаш располагался на берегу реки Карповки, недалеко от ЛЭТИ. Я ходил через проходную, показывая пропуск. Однажды пропуск и студенческий билет возле проходной вывалились у меня из кармана, но были подобраны каким то студентом ЛЭТИ и заботливо отнесены в деканат. Оттуда позвонили моим родителям и сказали:
- Документы вашего сына найдены в реке Карповке!
![та самая проходная (слева) та самая проходная (слева)](https://habrastorage.org/getpro/habr/upload_files/dfe/a5c/a49/dfea5ca49f380c2ba87591f6a5351c80.jpg)
Сотовых тогда не было, время уже летнее, я поехал не домой, а на дачу, причем не сразу. Родители в ужасе поехали на дачу... Меня нет и там... Мысленно меня уже хоронили, а я как раз только приехал и даже не заметил отсутствия документов.
Операционная система и архитектура VAX/VMS
Операционная система поражала своим совершенством. Помимо вытесняющей многозадачности и защите процессов была виртуальная память, кластеры из машин, файловая система с каталогами произвольной вложенности и именами произвольной длины и, как всегда у digital, версионностью файлов.
Все компиляторы были написаны в самой фирме DEC и были идеально совместимы друг с другом - то есть, из Pascal вы могли вызвать подпрограммы на C, PL/1, ADA, чем угодно. Более того, получившаяся программа была крошечной - любой "Hello world" компилировался в 4-6 блоков (стандартные для DEC 512-байтные блоки). Почему? Потому что все runtimes от языков были отмаплены в часть памяти ос (по моему выше 2Gb) так что могли шариться всеми процессами.
К сожалению, именно это стремление к минимизации расхода памяти и погубило, на мой взгляд, фирму digital. В VAX была выбрана CISC система инструкций, а мы знаем, что победила RISC. CISC компактна, но сложна, и совсем не подходит для каких то трюков - конвееры, speculative execution, branch prediction etc. По скорости выполнения команд VAX были довольно медленными машинами, а вот память стремительно дешевела. Когда в digital это поняли, они выпустили Alpha, но время было уже упущено. Ну хотя бы в Windows NT живет искра гения digital...
Ассемблер VAX был доведен до совершенства, но уже не был столь красив, как ассемблер PDP-11. В нем же не было былой легкости. Огромное количество типов адресации, причем ортогональных, их можно было использовать везде. Вы извините, но я должен привести тут две странички:
![](https://habrastorage.org/getpro/habr/upload_files/0fd/6c3/831/0fd6c3831939724b601a8bd6ea7ff1af.png)
![](https://habrastorage.org/getpro/habr/upload_files/b6e/3d0/ca3/b6e3d0ca323ba7e920dc74e46ff2f831.png)
И все это способы адресации работали с разными типами данных, которые поддерживались нативно:
![](https://habrastorage.org/getpro/habr/upload_files/53c/2af/3e0/53c2af3e0753a5e0773d3665745457eb.png)
Были команды "вычислить многочлен", "переместить область памяти". Так как такие команды могли занять длительное время, то в VAX команды могли быть прерваны в середине. Часть из 16 регистров использовались такими командами как счетчики циклов, и при возврате из прерывания и восстановлении значений регистром выполнение команды могло правильно продолжиться с нужного места. В общем, это было вершиной архитектуры CISC.
И вот вишенка на тортике - напоминаю, это 80е годы прошлого века!
![](https://habrastorage.org/getpro/habr/upload_files/a52/c7e/65d/a52c7e65d636c44a614c331eca7a2268.png)
Аналитприбор
Больше мне нравилось "работать" (в кавычках, потому что оформления никакого не было) в Аналитприборе на проспекте Огородникова. Там были не просто microVAX, а VAXstation!
![](https://habrastorage.org/getpro/habr/upload_files/d67/37a/03b/d6737a03b54dab70e60decc1c26f57c7.jpg)
Эти машинки были компактнее и, помимо терминалов, имели графический дисплей - 1024x768, миллионы цветов - но 256 одновременно (1 байт цвета на пиксель и LUT). Можно было загружать либо собственную поделку от DEC, либо X-windows (DEC windows). Я имел удовольствие попрограммировать на C на абсолютно голом X-11. То есть крутится бесконечный цикл обработки событий, и, когда приходит Expose Event (например, часть вашего окна вылезла из-под другого и стала видна), это пустое место надо снова прорисовать. В лоб. Уже позже мы догадались вести там список объектов.
![](https://habrastorage.org/getpro/habr/upload_files/18e/238/f5c/18e238f5c2dff2ff8b952f013909f804.png)
Все это походило на практику, но сейчас новичка бы загрузили какой-то реальной работой. Но какая реальная работа в советском НИИ? Мы (и еще несколько человек) программировали все, что хотели. Я доделывал PLANNER, ставший моей дипломной работой (и небольшой переводчик с французского на английский, написанный на PLANNER). Но было еще много разных интересных утилиток и даже знакомство с языком ADA.
Об атмосфере в этом НИИ говорил хотя бы такой эпизод - по описи помимо VAXstation числился еще один VAX, microVAX. Но где он? Его никто не видел. Потом мы его все же нашли - он работал кофейным столиком. Никто и не подозревал, что под скатертью дорогая машина!
В Аналитприборе я познакомился с IBM PC и играми _ Mortal combat и Larry. К PC я относился со смесью ревности и презрения. С одной стороны, уродливая примитивная архитектура, жалкое подобие ОС, но уже тогда чувствовалось, что примитивные задачи (с графикой) PC щелкает быстрее чисто за счет частоты процессора.
Сама атмосфера в аналитприборе мне напоминала рассказ 'Понедельник начинается в субботу'. Талантливая молодежь, дым в курилке, очередь в столовую с подносами на рельсах. Но постепенно народу становилось меньше. Закрылась столовая, остался только буфет, а в пустых коридорах было слышно эхо. Место стало много, и нам выделили отдельную комнату. Мы перенесли туда оба VAX и терминалы, все красиво расставили... И я там больше никогда не появился - это был конец 91го года, и начиналась моя работа в "Лихие 90е", об этом будет следующая часть.
ipswitch
Добро пишешь… Удачи, друг, и пиши ещё!