vak: (Улыбка)
[personal profile] vak
Сижу в центре кремниевой долины и программирую на фортране для БЭСМ-6. На дворе 2016 год, а вот поди ж ты, возникла настоятельная потребность. Нужно извлечь с диска некий бинарный образ и преобразовать в текстовый HEX файл. Надо сказать, Фортран-ГДР отличный инструмент для подобных задач. Мониторная система Дубна, симулятор ОС Диспак, книжки Мазного и Салтыкова-Макаренко под рукой. Решение выглядит так: hexdump.b6

История вопроса следующая. Есть процессор микро-БЭСМ, и для него есть тест системы команд. Тест написан на языке ассемблера, а сам ассемблер имеется в исходных текстах для БЭСМ-6. К ассебмлеру также прилагается линкер. Всё это запускается под мониторной системой "Дубна" на симуляторе ОС Диспак. На самом деле написана эта кросс-система была под ОС Дубна, и пользуется некоторыми её особенностями, поэтому пришлось на скорую руку привинтить несколько дубненских экстракодов к симулятору Диспака. Но это всё мелочи. В конце концов ассемблер с линкером заработали и на диске получился двоичный образ теста, размером около 24 килобайт. Как его извлечь оттуда? Тем более, что хранится он под управлением некой "библиотеки виртуальной памяти", и формат хранения не описан. Но есть API, набор фортрановских вызовов. Не вопрос: пишем програмулину и получаем нужный результат. Теперь можно смело запускать тест на симуляторе Verilog.

Date: 2016-11-27 20:47 (UTC)
From: [identity profile] qvb.livejournal.com
Честно говоря не помню попадались ли мне в те времена версии ДВК с сопроцессором. Может и попадались.

ДВК была вообще интересной машинкой. Если смотреть с высоты сегодняшнего дня и зная историю PC, то похоже что главной ошибкой DEC (которую повторили в союзе) - были попытки использовать архитектуру мини-компьютера в микро-компьютере. В том же ДВК была отдельная плата терминала (а то и две - если был КЦГД), вместо того чтобы просто поставить видеопамять с простым контроллером в адресное пространство машины.
Ну и естественно распад союза поставил крест на той линии, хотя в свое время ДВК были вполне ОК.

Date: 2016-11-28 04:06 (UTC)
From: [identity profile] avseyev.livejournal.com
У DEC'а много ошибок было. Я читал книгу "DEC is dead, long live DEC", где как раз бывший сотрудник пытался разложить по полочкам, что у них не получилось. С точки зрения продаж и маркетинга. Технология там мало затрагивалась. Наверное, самая большая проблема DEC'а была в том, что они всегда боялись выпускать новые продукты, потому что была опасность убить продажи предыдущих поколений. Поэтому они так скромно рекламировали серию Pro. Во-вторых, они никогда не представляли стратегическую значимость "бюджетных" компьютеров. Они планировали делать маржу на рабочих станциях, а PC для них были как бы придатком к основному бизнесу. У них не было "killer app", как у PC. Visicalc, 1-2-3, Word Perfect и.т.д. - это ради чего и покупали PC'юки. К тому же, DEC сам себя раздробил на многие части. Перспективные процессоры делали в Калифорнии, компьютеры все также разрабатывали в Массачусетсе, а новую ОС - в Сиэтле. Такая же фрагментация случилась у них и с компьютерной линейкой. Сделали сначала ставку на непонятную зверушку Rainbow. Ни то ни се, но удобная печатная машинка. Потом появились Pro. Немного поздно и дорого. Не вложили в начале достаточно ресурсов.
С архитектурой особых проблем не было. Если только не считать ограничения в адресации. Но это можно было обойти. В конце концов и Моторола сделала DEC'овский по духу процессор, под который можно и кросс компилировать софт и делать эмулятор. Можно было и самим сделать развитие PDP-11 архитектуры. Но не сделали. Нужно было продавать VAX'ы. Alpha вышли слишком поздно. При этом они сумели прокакать своих операционщиков. Команда, которая работала над RSX и VMS, сбежала в Microsoft. Дэйв Катлер и поныне работает над Осями в Microsoft. Ему за 70 лет, а он строчит код! :)

Date: 2016-11-28 15:08 (UTC)
From: [identity profile] qvb.livejournal.com
Да, я тоже читал о бизнес ошибках DEC - они безусловно были. И в первую очередь было непонимание перспектив PC, и было нежелание создавать конкуренцию бизнесу мини-компьютеров. Тот же DecPro был специально сделан так что он не мог запускать полноценную RSX11M и софт для нее, а вместо нее там использовалась некая упрощенная/адаптированная версия.

Но если смотреть только на технологический аспект, то что бросается в глаза - это упорные попытки тащить архитектуру мини-компьютера в микрокомпьютер. Они все еще не могли привыкнуть к идее что процессор стоит дешево, и его можно нагружать самыми разными вещами - нет необходимости в особо интеллектуальных контроллерах. Видеодисплей - это самый яркий пример, но и остальная периферия была сделана аналогично - очень сложные контроллеры по сравнению с PC.

Адресация была конечно проблемой, но не так чтобы гигантской. Как Вы сказали, вполне можно было обойти/развить процессор в том направлении (собственно - процессор VAX и был таким развитием, только уж очень переусложненным).

Но даже на старом процессоре можно было жить как минимум до начала 90х, когда ограничение в 4 мегабайта памяти машины стало слишком напряжным. А ограничение адресного пространства процесса обходилось - хоть и не элегантно но работало, была такая штука как "резидентные оверлеи". В каком-то смысле это было аналогично подходу сегментных регистров в 80286, но реализовано по-другому. Я когда-то пользовался оверлеями, ничего сложного там нет.

>>>Можно было и самим сделать развитие PDP-11 архитектуры. Но не сделали.

Если речь идет о совке - то там собственно развивали эту линию, и если бы совок не развалился то возможно это бы и продолжилось. Было довольно много игрушек и прочего написано под ДВК. Но совок почил в бозе, вместе со всем что там было.

>>>Alpha вышли слишком поздно. При этом они сумели прокакать своих операционщиков. Команда, которая работала над RSX и VMS, сбежала в Microsoft.

Там все было несколько сложней. Проблема была не с ОС, а с железом и бизнес-стратегией.
Пожалуй единственная существенная ошибка Катлера была в том что VMS была написана на ассемблере VAX, и ее перенос на другие архитектуры был крайне затруднен. Для Альфы они фактически компилировали ассемблер VAX как если бы он был языком высокого уровня, и адаптация для Альфы была весьма нетривиальна.

Если бы VMS была написана на C или чем-то подобном, и особенно если бы своевременно открыли его код, то у VMS были бы все шансы стать массовой workstation ОС вместо Unix. Долгое время VMS была на голову лучше чем Юниксы.

>>>Дэйв Катлер и поныне работает над Осями в Microsoft.

Дейв Катлер балду гоняет, уже лет 10, и вреда от него в последнее десятилетие было больше чем пользы.

Date: 2016-11-28 20:44 (UTC)
From: [identity profile] avseyev.livejournal.com
Согласен по поводу недоделанной Pro и усложного, т.е. еще и дорого VAX'а. Собственно, в этом и был весь маркетинг DEC'а. В той же книге как раз вспоминается, что компания с какого-то момента стала максимизировать прибыль, поэтому все прогнозы строились на то, что надо вкладывать больше денег в линейки с максимальной маржой. А там вдруг негаданно пришли на рынок дешевые PC и одновременно выросла конкуренция на рынке Workstations, убив мини-компьютеры.
По поводы архитектуры - я частично согласен. Согласен в плане того, что конструктив машин был опять же не оптимизирован под цену. Политика фирмы - делать все внутри компании, но вся внутренняя логистика не была ориентирована на оптимизацию по цене. Это не Commodore, а именно DEC. При этом, они не понимали, что рынок хочет. Младшие машины то у них делались либо как управляющие либо инженерные. Для массового потребителя не было софта, и никто не работал с разработчиками. RSX для своего времени была адекватной ОСью, но опять же, не для массовой культуры.
Я не думаю, что VMS мог захватить мир. Даже если бы они ее переписали на Сях. Для начала там надо было открыть сам проект для публики, как сделали Bell Labs и потом Berkeley. DEC зарабатывала деньги на продаже исходников. Раздавать бесплатно - не их конек.
Под развитием я понимал, что сама DEC могла сделать бюджетную серию процессоров на базе J11. Не сделали. В модульном подходе к архитектуре нет ничего страшного. Собственно, все машины были тогда модульными. И то, что видеоконтроллер, был отдельной платой, - в этом тоже ничего страшного. Также делались и большинство других машин, включая PC'юки. Контроллер только был ни то ни се. Он ведь медленный был, и софт для него не написали.

>Но даже на старом процессоре можно было жить как минимум до начала 90х
Не, процессор умер еще в 80-х. 80286 - та еще фигня была, толком ее никто так и не сумел использовать. В PDP-11 было сразу несколько проблем. Никак не решалась проблема с сегментацией исполняющего кода без оверлеев и извратов. 64К и все. Оверлей, может, и прост, но медленный. Усложняет компиляторы, к тому же. В защищенном режиме 80286 такого не было. MMU - это отдельная фиговина, приделанная к процессору и весьма примитивная. Нужно было простое решение, где адресация в процессоре жила вместе с MMU. Не Rocket Science, конечно. Но не сделали. Если бы они продолжали жить на PDP-11 дальше, то быстро бы сдались перед наступающей Моторолой (68x) и Интелом (80386 в первую очередь).
Если бы Ольсен знал прикуп в начале 90-х, то сделал бы что-то дешевое из железяк других компаний. Как это сделали Intel. Только у DEC это могло получиться более разумно. Инженерная машина - прородитель workstation еще в начале 80-х на 68000, граф адаптером, с поддержкой разные ОС'ей и поддержкой старого софта. На сайте Computer History Museum лежит интервью с разработчиками 68000. Они там говорили, что были вдохновлены PDP-11 и делали процессор по образу и подобию с ортогональной системой команд. Была надежда, что и DEC на них обратит внимание.
Edited Date: 2016-11-28 20:45 (UTC)

Date: 2016-11-29 01:42 (UTC)
From: [identity profile] qvb.livejournal.com
+1 насчет слишком дорогого железа и бизнес-стратегии которая не позволяла создавать персональные машины.

>>>Не, процессор умер еще в 80-х. 80286 - та еще фигня была, толком ее никто так и не сумел использовать.

Ну почему же?
Я помню как еще в конце 80х когда появились PC и была возможность сравнить напрямую CM1420, ДВК и PC - СМ1420 была вполне ОК, она была существенно быстрей XT, и приблизительно на уровне ранних PC AT (с 80286 процессором). ДВК теоретически была вполне ОК, там главная проблема была с мерзейшими винчестерами которые постоянно ломались, и вообще с низкой надежностью.

>>>В PDP-11 было сразу несколько проблем. Никак не решалась проблема с сегментацией исполняющего кода без оверлеев и извратов. 64К и все.

Оверлей - не такая уж большая проблема, это ненамного хуже чем сегментация памяти в 8086. И в принципе на основе этого же механизма (окон в память) можно было сделать схему вроде сегментов у 8086 - нужна была просто поддержка от компилятора. Но даже с простыми оверлеями все спокойно делалось.
Кстати, там поддерживалась такая штука как резидентный оверлей - это когда весь исполнимый код загружается в память, и переключение оверлеев происходит просто перенастройкой менеджера памяти. Работает это очень быстро.

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

>>>Если бы они продолжали жить на PDP-11 дальше, то быстро бы сдались перед наступающей Моторолой (68x) и Интелом (80386 в первую очередь).

Так о том и речь - PDP11 процессор был бы ОК пока память персоналок была в пределах пары мегабайт - как у типичных DOS машин. Когда речь пошла о большей памяти - тогда конечно нужна полноценная виртуальная память и 32бит адресация.

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

Для персоналок самой подходящей была RT11 - ее собственно на ДВК обычно и использовали. По идеологии она очень похожа на MS DOS, но только сделана на порядок лучше.

А RSX - это был скорее ранний аналог NT. Собственно - WinNT и является дальним потомком RSX - VAX VMS был развитием идей RSX, а WinNT стала развитием идей VMS.
Но для профессионального использования RSX, и потом VMS были очень гут - на порядок лучше чем BSD тех лет.

>>>Они там говорили, что были вдохновлены PDP-11 и делали процессор по образу и подобию с ортогональной системой команд.

Да, 68000 сделан на идеологии PDP11, но только нового поколения. ИМХО 68000 во многом лучше чем VAX - более стройная система команд, без излишеств вакса, и умещался в одном небольшом кристалле.

Кстати, был и микропроцессорный МикроVAX - он собственно и должен был быть (по мнению Dec) рабочей станцией. Но цена была совсем не гуманная.

>>>DEC зарабатывала деньги на продаже исходников. Раздавать бесплатно - не их конек.

А раздавать ОС бесплатно и не требуется - как доказала Микрософт, на продаже ОС вполне можно жить - и жить хорошо. Проблема Dec была в том что они зарабатывали не на ОС, а на очень дорогом железе - как Эппл. И разрешать использовать свою ОС на стороннем железе Dec отказывался категорически.

Если бы у них была ОС для массового чипа (для того же Интела), и если бы Dec начал продавать ОС - то они вполне могли бы стать Микрософтом.

...
Но все это теперь история, которая как известно не имеет сослагательного наклонения. Хотя поразмышлять о том как оно могло бы быть по-другому - бывает интересно :-)