vak: (Улыбка)
Serge Vakulenko ([personal profile] vak) wrote2016-11-23 10:44 pm

Фортран для БЭСМ-6 это сила

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

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

[identity profile] juan-gandhi.livejournal.com 2016-11-24 06:48 am (UTC)(link)
Восторг, конечно.

[identity profile] juan-gandhi.livejournal.com 2016-11-24 07:12 am (UTC)(link)
Вот меня тоже иной раз тянет тряхнуть, да зафигачить форт где-нибудь просто в джаваскрипте. Чо, делов-то.

[identity profile] kbb.livejournal.com 2016-11-24 08:40 am (UTC)(link)
Ну зафигачь например для:

10 a=a+1
goto 100

100 a=a-1
goto 10

[identity profile] juan-gandhi.livejournal.com 2016-11-24 10:05 pm (UTC)(link)
Это фортран; а я если зафигачу, то форт.

[identity profile] cross-join.livejournal.com 2016-11-24 08:44 am (UTC)(link)
Смысла нет. Форт - высокоуровневая замена ассемблера и альтернатива Си для программирования встроенных систем. Яваскрипт - программирование терминалов конечного пользователя и "клей" для интеграции системных компонентов.

[identity profile] nzeemin.livejournal.com 2016-11-24 09:10 am (UTC)(link)
Года два уже как есть такой:
https://github.com/eatonphil/jsforth

Сейчас наверное имеет смысл реализовать Форт под asm.js.
Edited 2016-11-24 09:12 (UTC)

[identity profile] Евгений Х. (from livejournal.com) 2016-11-24 01:41 pm (UTC)(link)
Так asm.js уже наверно каменный век.
Теперь эпоха WebAssembly (отгрузка официально в Q1 2017)
А внутри там очень даже тортфорт!

[identity profile] juan-gandhi.livejournal.com 2016-11-24 10:10 pm (UTC)(link)
Ну я б так не сказал. Там один стек, и запись постфиксная.

[identity profile] Евгений Х. (from livejournal.com) 2016-11-25 02:07 am (UTC)(link)
Я не спорю, говорю что видел (конечно не "чистый" форт, но близко)

https://cdn.rawgit.com/WebAssembly/wabt/e528a622caa77702209bf0c3654ca78456c41a52/demo/index.html

Исходник в виде AST:
(module
  (func $addTwo (param i32 i32) (result i32)
    (i32.add
      (get_local 0)
      (get_local 1)))
  (export "addTwo" (func $addTwo)))


Выхлоп:
0000000: 0061 736d                                 ; WASM_BINARY_MAGIC
0000004: 0d00 0000                                 ; WASM_BINARY_VERSION
; section "TYPE" (1)
0000008: 01                                        ; section code
0000009: 00                                        ; section size (guess)
000000a: 01                                        ; num types
; type 0
000000b: 60                                        ; func
000000c: 02                                        ; num params
000000d: 7f                                        ; i32
000000e: 7f                                        ; i32
000000f: 01                                        ; num results
0000010: 7f                                        ; i32
0000009: 07                                        ; FIXUP section size
; section "FUNCTION" (3)
0000011: 03                                        ; section code
0000012: 00                                        ; section size (guess)
0000013: 01                                        ; num functions
0000014: 00                                        ; function 0 signature index
0000012: 02                                        ; FIXUP section size
; section "EXPORT" (7)
0000015: 07                                        ; section code
0000016: 00                                        ; section size (guess)
0000017: 01                                        ; num exports
0000018: 06                                        ; string length
0000019: 6164 6454 776f                           addTwo  ; export name
000001f: 00                                        ; export kind
0000020: 00                                        ; export func index
0000016: 0a                                        ; FIXUP section size
; section "CODE" (10)
0000021: 0a                                        ; section code
0000022: 00                                        ; section size (guess)
0000023: 01                                        ; num functions
; function body 0
0000024: 00                                        ; func body size (guess)
0000025: 00                                        ; local decl count
0000026: 20                                        ; get_local
0000027: 00                                        ; local index
0000028: 20                                        ; get_local
0000029: 01                                        ; local index
000002a: 6a                                        ; i32.add
000002b: 0b                                        ; end
0000024: 07                                        ; FIXUP func body size
0000022: 09                                        ; FIXUP section size


Видно что в туловище: a b +

[identity profile] juan-gandhi.livejournal.com 2016-11-25 02:14 am (UTC)(link)
А! Действительно. Впрочем, без второго стека это все равно не форт. И, конечно, обратная польская должна быть прямо в сорсах. Позволяет частичную параметризацию, все такое.

[identity profile] juan-gandhi.livejournal.com 2016-11-25 01:59 am (UTC)(link)
Вот это очень хорошая идея, не фигачить на ассоциативных массивах, а прямо в asm.js вставить. Спасибо. Мне лень, конечно... но от лени можно и попробовать ужо.
(deleted comment)

[identity profile] juan-gandhi.livejournal.com 2016-11-24 10:11 pm (UTC)(link)
Ау, хозяин журнала! Мне прекратить сюда писать?

[identity profile] juan-gandhi.livejournal.com 2016-11-25 02:01 am (UTC)(link)
Окей, нет проблем.

[identity profile] Евгений Х. (from livejournal.com) 2016-11-24 01:43 pm (UTC)(link)
Это просто высший пилотаж!

[identity profile] andy-scott.livejournal.com 2016-11-25 05:52 pm (UTC)(link)
так возможность описывать структуры в виде common-блоков вроде ж во всех фортранах была? IBM FORTRAN-H, DEC F-77, не?

[identity profile] andy-scott.livejournal.com 2016-11-26 03:29 pm (UTC)(link)
Да, в классическом фортране таких штук не было. Мы писали подпрограммки на асмёблере для таких вещей. Одно радует, не сильно и не часто было нужно.

[identity profile] qvb.livejournal.com 2016-11-26 03:23 am (UTC)(link)
Да, компьютерная археология - очень интересная штука.

Лет пять назад меня почему-то торкнуло вспомнить незабвенную CM4/CM1420 и RSX11M. Поставил эмулятор, пару месяцев поигрался, вспомнил тот ассемблер, даже начал зачем-то портировать TCP стэк на RSX11M, но потом занялся другими хобби-проектами и охладел.

[identity profile] qvb.livejournal.com 2016-11-26 06:20 am (UTC)(link)
Да, это должно быть интересно.

Для RSX11M/M-PLUS я тоже собрал довольно полную коллекцию всяческого софта. К сожалению не смог найти все пакеты которыми когда-то пользовался, но процентов 80% нашел. Как ни странно не смог найти MIM (Микромир), а штука была очень неплохая. Но на западе MIM был не известен, а советских архивов очень мало.


P.S. Кстати, а не будет ли интересно сделать настоящий веб сайт о БЭСМ-6 работающий на Вашей микро-бэсм?

Я думал сделать нечто подобное под RSX11M (отсюда и идеи портировать TCP стэк), но гонять такую штуку внутри эмулятора как-то не айс, а собирать реальное железо было слишком муторно.

Edited 2016-11-26 07:08 (UTC)

[identity profile] avseyev.livejournal.com 2016-11-27 08:32 pm (UTC)(link)
Так Кушниренко и его дело до сих пор живет и здравствует. Есть современная имплементация Микромира и Кумира на PC'юках. Они его даже под Qt портировали. Можно собирать под разные Оси. :)
Edited 2016-11-27 20:32 (UTC)

[identity profile] qvb.livejournal.com 2016-11-27 08:38 pm (UTC)(link)
К сожалению Микромир для RSX11M я так и не нашел. В давние времена он у меня был, и это был неплохой редактор + простой файловый менеджер, но старые ленты не сохранились а в доступных архивах не нашел.

Микромир для PC - это все-таки совсем другая штука, да и не нужен он мне для PC.

[identity profile] qvb.livejournal.com 2016-11-27 09:21 pm (UTC)(link)
>>>Еще долгий путь предстоит: процессор, потом Си-компилятор, потом юникс, а дальше уже можно и веб сайт.

А можно и гораздо проще, без юникса и без С компилятора.

Можно сделать простой веб сервер для родной ОС бэсма, там обьем кода очень невелик. Можно и переписать его на любом нужном языке - хоть на фортране. Основная сложность - это TCP стэк, но тут есть несколько вариантов позволяющих слегка читнуть и упростить это дело :-)

Но юникс на бэсме это тоже интересная затея.
Edited 2016-11-27 21:21 (UTC)

[identity profile] Евгений Х. (from livejournal.com) 2016-11-28 10:28 am (UTC)(link)
Можно пойти аутентично - реализовать не стек TCP, а "аппаратуру сопряжения" в виде какого-гибудь микроконтролера, все-таки памяти маловато будет - только 8Мбайт официально.

[identity profile] qvb.livejournal.com 2016-11-28 03:23 pm (UTC)(link)
Для веб сервера который сервит статичные файлы памяти много не нужно - он собирается вообще в пару десятков килобайт, и производительность будет вполне хорошая. Понятно что он будет обслуживать один запрос за раз, но если юзеров немного - вполне ОК.

>>>Можно пойти аутентично - реализовать не стек TCP, а "аппаратуру сопряжения" в виде какого-гибудь микроконтролера, все-таки памяти маловато будет - только 8Мбайт официально.

Для TCP стека много памяти тоже не нужно - достаточно 32К под буферизацию + сам код. Т.е. все вместе будет меньше 100 килобайт.

Но да, есть возможность сделать нечто вроде "аппаратуры сопряжения" (это и есть тот чит о котором я говорил) - можно взять Ethernet контроллер от Ардуины, а там не просто контроллер сети а есть встроенный TCP стек. Интерфейс у этого контроллера - фактически сокеты, причем он поддерживает и TCP, и UDP, и одновременно может быть открыто 4 (или 8 - смотря какая версия) сокетов.

Именно на такой штуке спокойно делается WEB сервер на Ардуине - классика жанра.

Скорость у него кстати очень неплохая - веб сервер на ардуине выдает поток в пару сотен килобайт в секунду, для микробэсм должно получится нечто аналогичное.
Edited 2016-11-28 15:45 (UTC)

[identity profile] Евгений Х. (from livejournal.com) 2016-11-29 03:05 am (UTC)(link)
В начале програмерской карьеры как раз и делали сервер на wiznet 3000. Работало достаточно надежно. К атмеге цеплялось по uart. В шилде для ардуины, как вижу, используется W5100 по SPI, так что одна "сотона".

Интересно, в микро-БЭСМ как устройства подключались?

[identity profile] qvb.livejournal.com 2016-11-29 03:21 am (UTC)(link)
Да, в Ардуиновском шильде используется или W5100, или W5500 (более новый кристалл). W5100 поддерживает 4 одновременных сокета, W5500 - 8 сокетов, кроме того W5500 существенно быстрей и удобней в обмене данных - у него можно использовать блоковую SPI передачу.

Как были сделаны устройства в микро-БЭСМ к сожалению не знаю (думаю что хозяин блога знает), но в худшем случае наверное можно просто сделать библиотеку работающую напрямую с W5500. Для того чтобы гонять WEB сервер на БЭСМе этого достаточно.

В принципе поскольку W5500 предоставляет сокеты (у него и буферизация и все остальное внутри), то даже несколько процессов могут одновременно работать с сетью если договорятся кто какой сокет использует, только доступ к регистрам W5500 нужно будет как-то защищать от переключения процессов (может запрет прерываний использовать на время обмена или нечто подобное).

[identity profile] Евгений Х. (from livejournal.com) 2016-11-29 03:36 am (UTC)(link)
По диагонали почитав описание МКБ-8601 видно, что там используется общая асинхронно-синхронная шина, которую можно захватывать и писать прямо в память.
Если сделать КВУ для Arduino Ethernet, то можно "красиво" складывать и брать пакеты с данными прямо из памяти машины.
Я так понял что есть исходники ДИСПАКа для микро-БЭСМ, возможно придется сделать модуль для него для обработки сети, но это, конечно, если станет понятно как "генерировать ДИСПАК".
Так же смотрю, что есть достаточно недорогой модуль TFT cо слотом для microSD
А вообще напрашивается "толстая" атмега или pic, которая по аппаратному сбросу шьёт fpga прошивкой с sd карточки и потом выполняет роль КВУ.
Edited 2016-11-29 03:38 (UTC)

[identity profile] qvb.livejournal.com 2016-11-29 03:44 am (UTC)(link)
>>>А вообще напрашивается "толстая" атмега или pic, которая по аппаратному сбросу шьёт fpga прошивкой с sd карточки и потом выполняет роль КВУ.


+100
Я бы так и делал.

Вроде есть даже готовые платы где кроме FPGA стоит АРМ или еще какой-нибудь процессор.
Этот же процессор может эмулировать жесткие диски на основе файлов на SD карточке. И он же может эмулировать терминал.

Или если FPGA достаточно большая - то этот вспомогательный процессор можно засунуть в саму FPGA, вместе с микро-БЭСМ.

[identity profile] Евгений Х. (from livejournal.com) 2016-12-14 03:11 am (UTC)(link)
Получить удовольствие от процесса в виде подобия raspbery pi.

А вот что делать с компилятором для unix'а непонятно... Все примеры заточены под современные процессоры где 2-3-х адресная система команд.

[identity profile] archaicos.livejournal.com 2016-11-24 07:54 am (UTC)(link)
Маньячно! :)

[identity profile] Евгений Х. (from livejournal.com) 2016-11-24 01:54 pm (UTC)(link)
А вот получается, что полноценной МС Дубна/ДИСПАК под симулятор нету?
Или так было быстрее просто?

[identity profile] Евгений Х. (from livejournal.com) 2016-11-25 02:09 am (UTC)(link)
Я имел ввиду под симулятор на базе SIMH который.

[identity profile] andy-scott.livejournal.com 2016-11-25 05:54 pm (UTC)(link)
я сражен наповал этой аналогией (с БЭСМ не сталкивался в реале никогда, но красиво)

[identity profile] qvb.livejournal.com 2016-11-26 03:26 am (UTC)(link)
Интересный проект.

А как микро-бэсм по производительности, если например сравнить с ДВК3 или подобными аппаратами?

[identity profile] qvb.livejournal.com 2016-11-26 06:29 am (UTC)(link)
Да, трудно сравнивать из-за разницы в разрядности и системе команд.

У старших моделей ДВК производительность была вполне ОК - где-то до 1 mips (на 16-битных операциях). Но в 4 раза большая разрядность - это существенно.

А операции с плавающей точкой на ДВК были очень медленные, там по-моему вообще только эмуляция была.

[identity profile] avseyev.livejournal.com 2016-11-27 08:38 pm (UTC)(link)
Сопроцессор был. На ДВК-3 их ставили не так часто, но на поздних Квантах их ставили. Сопроцессор, правда, не самый быстрый. Археологи собирались реверснуть 1801ВМ3 со временем. Интересно, если кто-нибудь за ВМ4 возьмется. В итоге же может получиться полноценная железная реплика ДВК-3. Вот тогда и можно будет сравнивать. :)

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

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

[identity profile] avseyev.livejournal.com 2016-11-28 04:06 am (UTC)(link)
У 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 лет, а он строчит код! :)

[identity profile] qvb.livejournal.com 2016-11-28 03:08 pm (UTC)(link)
Да, я тоже читал о бизнес ошибках 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, и вреда от него в последнее десятилетие было больше чем пользы.

[identity profile] avseyev.livejournal.com 2016-11-28 08:44 pm (UTC)(link)
Согласен по поводу недоделанной 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 2016-11-28 20:45 (UTC)

[identity profile] qvb.livejournal.com 2016-11-29 01:42 am (UTC)(link)
+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 начал продавать ОС - то они вполне могли бы стать Микрософтом.

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

[identity profile] avseyev.livejournal.com 2016-11-27 08:33 pm (UTC)(link)
"Всяко мощнее" только с плавучкой, очевидно.