Кеннет Олсен был несколько удивлён, когда «представитель инвестора» Джон Смит рассказал ему о «развлечениях» студентов MIT с распечаткой текстов. До 1957 г Олсен сам работал в MIT, и сохранил добрые воспоминания об этом периоде.
— В МIT собрались умные ребята, немудрено, что они до такого додумались. А вы-то откуда об этом узнали?
— Сын моего знакомого там учится, — ответил Смит. — По-моему, это довольно перспективное направление. Нам стоило бы тоже этим заняться.
— Перспективное? Печатать тексты на компьютере? Дороговатое удовольствие, вы не находите? — криво усмехнулся Олсен.
— Первые автомобили тоже стоили очень дорого и были игрушками для богатых, — ответил Смит. — Пока не появился Генри Форд и его «жестянка Лиззи».
Олсен тут же понял намёк:
— Вы хотите сказать, что наш PDP-1 сможет стать «жестянкой Лиззи» в мире компьютеров?
— PDP-1 — вряд ли. 100 тысяч — это всё же дорого, — ответил Смит. — Но его дальнейшие потомки — смогли бы. И вот тут чем больше применений для него мы сможем придумать, тем больше будут продажи. Тем более, у студентов есть свободное время и много энтузиазма. У них нет только достаточно свободного доступа к компьютеру. Но если им его дать, и заплатить немного денег за разработку программ...
Недосказанная фраза повисла в воздухе, но Олсен уже всё понял:
— Думаю, мне стоит отблагодарить свою бывшую контору.
Осенью 1959 г Кеннет Олсен передал в подарок MIT один из первых собранных PDP-1. (АИ, в реальной истории этот подарок был сделан осенью 1961 г). Через несколько дней Джон Смит через одного из советских нелегалов, обучавшихся в MIT, (АИ) вышел на студента 2 курса Стивена Пайнера (Stephen D. Piner):
— Я представляю Digital Equipment Corporation, — сказал он Пайнеру. — Наш босс, Кен Олсен, подарил вашему институту компьютер. Вы знаете об этом?
— Да, я уже видел его, — кивнул Пайнер. — Интересно было бы с ним поработать.
— Есть деловое предложение, — продолжал Смит. — Надо разработать программу для редактирования и печати текстов. Если программа понравится руководству DEC, мы могли бы затем взять вас на работу.
Пайнер немедленно согласился. Время, отпущенное студентам для работы с PDP-1, было настолько ценным, что Пайнер и его товарищи при подготовке черновых вариантов своих работ довольствовались флексорайтером. «Мы еще как-то могли оправдать то, что пользовались компьютером для исправления уже подготовленных текстов или программ, вспоминал позже Алан Коток, сокурсник Пайнера, — но пользоваться компьютером для написания исходного текста считалось уже неприличным и предосудительным». Через месяц Пайнер позвонил Смиту и сообщил, что у него есть рабочая альфа-версия программы-редактора текстов.
(АИ, в реальной истории Стив Пайнер разработал эту программу осенью 1961 г. http://chernykh.net/content/view/83/138/ Поскольку для печати текстов использовался компьютер стоимостью 120 тыс долларов, Пайнер назвал свою программу «Expensive Typewriter» — «Дорогая пишущая машинка». Описание программы на английском: http://archive.computerhistory.org/resources/text/DEC/pdp-1/DEC.pdp_1.1972.102650079.pdf)
Смит предложил ему приехать, и договорился о предоставлении машинного времени на одном из PDP-1 в отделе разработок. Пайнер приехал с перфолентой, на которой была записана программа. В момент демонстрации в отдел зашёл Харлан Андерсон. Увидев программу, которая позволяла редактировать текст, он тут же позвонил Олсену.
Кен Олсен несколько минут сам тестировал программу, затем повернулся к Пайнеру:
— Хочешь работать у нас, парень?
— Конечно! Но я ещё учусь на втором курсе MIT...
— Это решаемо. Пиши заявление, ты принят.
По совету Джона Смита, Олсен и Андерсон оборудовали подаренный институту компьютер модемом, и теперь Пайнер, продолжая обучение в MIT, мог одновременно поддерживать связь со своим непосредственным начальником в DEC, и отсылать ему результаты работы. (АИ)
Присутствие собственного сотрудника в MIT позволяло Смиту быть в курсе событий, происходящих в лабораториях института. О самых интересных из них он сообщал Олсену и Андерсону, разумеется, не забывая информировать и непосредственное руководство в резидентуре.
В MIT в те годы (1958-1963) действительно подобралась компания талантливых программистов. Они не только увлекались программированием, но и просто общались, обсуждали новинки фантастики. Комната, где стоял подаренный Олсеном PDP-1, стала чем-то вроде неофициального клуба для встреч единомышленников. Во время одного из обсуждений студентам Стиву Расселу, Вэйну Витанену, и Марти Краетцу пришла в голову идея сделать программу, имитирующую бой двух космических кораблей. Идея захватила всех присутствующих.
Стив Рассел возглавил проект. Алан Коток написал утилиту для обработки геометрических данных — синусов и косинусов. Питер Самсон разработал подпрограмму реалистического звездного неба, на фоне которого должны были происходить баталии, по аналогии с «Дорогой пишущей машинкой» Пайнера названную Expensive Planitarium. Гравитационные эффекты в игре разрабатывал Дэн Эдвардс, он расположил посреди экрана Солнце. К нему, с различной силой, в зависимости от удалённости, притягивались корабли и снаряды. Мартин Граетц придумал и реализовал в программе прыжок через гиперпространство. Он позволял кораблям уходить из-под зоны обстрела в случайную область экрана. В игре было два корабля, каждым из которых управлял отдельный игрок. Управляя с клавиатуры, можно было поворачивать корабль налево и направо, лететь вперед, и стрелять ракетами, количество которых было ограничено. Каждый из кораблей имел определенное количество топлива на борту и показатель «здоровья». Задачей каждого игрока являлось уничтожение корабля противника. К проекту подключились Стив Пайнер и Роберт Сандерс. Игру назвали Spacewar.
(Источник http://www.comprice.ru/articles/detail.php?ID=42491&print=true
В реальной истории игру разрабатывали, начиная с 1961 г, но единственным условием разработки было наличие доступа к PDP-1, других реальных препятствий для создания её в 1959 г не было. Её создатели были сокурсниками.
Фото: игра Spacewar на экране монитора PDP-1 https://en.wikipedia.org/wiki/File:Spacewar!-PDP-1-20070512.jpg
Симулятор игры прямо в браузере, со ссылками на исходники и различные версии http://www.masswerk.at/spacewar/index.html
Ссылка на проект эмуляторов различных моделей ранних компьютеров https://github.com/simh/simh)
На разработку игры ушло примерно полгода. В апреле 1960 г появилась первая рабочая версия (АИ, в реальной истории — с осени 1961 по апрель 1962 г). Среди членов немногочисленного тогда компьютерного сообщества игра произвела фурор. Копии программы, занимавшей 9 килобайт в памяти, (исходники Spacewar занимали более чем 40 печатных страниц), были отправлены всем владельцам компьютеров PDP-1. Копия игры была передана в DEC, после чего корпорация стала использовать её как демонстрационную программу для своего детища, и включать бесплатно в поставку системы. Такая оригинальная демка в то время неизменно привлекала всеобщее внимание.
Смит рекомендовал Олсену взять на работу весь коллектив создателей Spacewar. Её исходники уже распространились, и позднее вызвали массу подражаний в виде реализаций на других компьютерах. Стив Рассел понимал, что его игра пока что может быть запущена лишь на относительно редких компьютерах стоимостью 120 тысяч долларов, поэтому он не стал отстаивать копирайт и патентовать программу. В то время в культуре MIT преобладали «хакеры» первого поколения, мыслившие категориями свободного доступа к программному обеспечению. Компьютеры были редкостью, программы к ним обычно распространялись в комплекте, совместимость между различными компьютерами отсутствовала как таковая.
В этой ситуации Джон Смит предложил Расселу и остальным участникам проекта Spacewar выпустить игру под свободной лицензией. Понятие «лицензия на программное обеспечение» тогда ещё тоже не сформировалось, и в первый момент студенты его не сразу поняли.
— По мере распространения компьютеров и программ коммерческие фирмы будут всё больше ограничивать свободный обмен программами, исходя из корыстных интересов, — пояснил Смит. — Чтобы сразу поставить этому заслон, есть предложение разработать общую типовую публичную лицензию, которая давала бы пользователям программы четыре основных права:
1. свободу запуска программы с любой целью;
2. свободу изучения того, как программа работает, и её модификации;
3. свободу распространения копий как исходного, так и исполняемого кода;
4. свободу улучшения программы, и выпуска улучшений в публичный доступ
— Предварительным условием для 2 и 4 пунктов будет свободный доступ к исходному коду, — продолжил Смит. — Основное условие — если пользователь внёс модификации в программу, выпущенную под свободной лицензией, он обязан открыть исходный код своих улучшений также под свободной лицензией. Такую программу нельзя будет продать — её никто не купит, но можно будет оказывать платные услуги по технической поддержке и сопровождению сложных программных комплексов.
Студенты согласились с аргументацией Смита. Его предложение заинтересовало и Олсена. Глава DEC понимал, что чем доступнее будут программы, тем больше компьютеров он сможет продать. Поэтому Олсен поддержал Смита, и все программы, которыми комплектовались компьютеры DEC, с самого начала выпускались под свободной лицензией, текст которой якобы разработал Смит. (АИ) Реально он использовал текст лицензии GNU GPL. (Русский перевод полного текста лицензии GNU GPL https://jxself.org/translations/gpl-2.ru.shtml)
Игра и её исходники попали и в СССР. Модернизированные PDP-1 одним из первых приобрёл Главкосмос и ОКБ-1. SpaceWar разошлась по всем PDP-1 страны в считанные дни. Она попалась на глаза и Сергею Павловичу Королёву. Не без любопытства понаблюдав за процессом пару минут, Главный конструктор распорядился:
— Так! Вот что, субчики-голубчики... Исходники изучить, понять, как оно работает, и разработать тренажёр для стыковки космических кораблей. Времени даю год. Застану в рабочее время за игрой — отправлю в Москву по шпалам!
Заказанные «All-American» компьютеры действительно использовались ею для оптимизации логистики перевозок. Деятельность корпорации приносила немалый доход Советскому Союзу, а также позволяла добывать средства для инвестиций в различные перспективные проекты. Чтобы не вступать в конфликт с антимонопольным законодательством, компания имела официально независимые друг от друга фирмы-представительства в каждом штате, но они работали в постоянном контакте друг с другом, используя общую базу данных.
Вот с этой базой данных и пришлось решать больше всего проблем.
Разрабатывали её во Всесоюзном НИИ Железнодорожного транспорта (ВНИИЖТ) под руководством академика Петрова (АИ, см. гл. 02-25), на основе базы данных, предназначенной для функционирования системы «Киберсин» — первой очереди ОГАС. В ходе работы разработчиков консультировал Виктор Михайлович Глушков. Сама по себе база данных представляла собой массив, записываемый прямо на диск или другой носитель информации.
В ОГАС использовались многодисковые массивы на основе накопителей на жёстких дисках, скопированных с американских IBM-305 (АИ, см. гл. 02-32) и несколько улучшенных в процессе доводки. Один накопитель IBM-305 весил почти тонну, имел ёмкость 3,5 МБ, размеры двухстворчатого холодильника и стоил 50 тысяч долларов. Советский усовершенствованный клон стоил 50 тысяч рублей — вчетверо меньше по тогдашнему курсу, имел несколько большую ёмкость — 5 МБ, и за счёт электронного монтажа на микросборках был меньше по размерам — примерно с холодильник «Саратов» (АИ). Но вывозить его в США категорически запрещалось из-за используемой секретной технологии микросхем.
До появления дисковых накопителей база данных ОГАС работала на виртуальном диске в памяти «БЭСМ-1М» — компьютера, собранного из деталей, присланных в посылке. Её периодически записывали на ленточный накопитель, для резервирования.
Этот же принцип применил и Александр Петрович Петров, только виртуальный диск инженеры ВНИИЖТ разместили в шкафах, наполненных пластинами тонкоплёночной памяти, общей ёмкостью 10 мегабайт. По мере необходимости память можно было добавлять. Резервирование производилось на высокоскоростные накопители на магнитной ленте, утром и вечером. Использовались одни и те же ленты, перезаписываемые по несколько раз с периодом 1 раз в 10 дней. Освоение промышленностью магнитной ленты на лавсановой основе решило проблему с её ломкостью. (АИ) После нескольких циклов перезаписи ленты ложились в архив и заменялись новыми.
Такой накопитель в 1959 году смонтировали в здании ВНИИЖТ в Москве, построив логистическую систему на основе ЭВМ БЭСМ-3М12 конструкции академика Лебедева. В качестве системы резервного энергоснабжения использовались кинетические аккумуляторы на маховиках. Их задачей было продержаться несколько минут, пока автоматика не запустит аварийные дизель-генераторы. В подвале ВНИИЖТ поставили ещё одну резервную систему питания — РИТЭГ. За океан его не повезли — слишком велик был риск. (АИ)
Второй аналогичный накопитель и такой же сервер установили в «теневой» штаб-квартире «All-American Truck Co» в Гватемале. По мере прогресса технологии жёстких дисков предполагалось заменять ими накопители на тонкоплёночной памяти.
Программа, обращавшаяся к базе данных, была написана на ассемблере. (Первая версия СУБД Oracle, написанная в 1979 г, была написана на ассемблере и работала на PDP-11, имевшем 128 кБ памяти, более слабом, чем описанный БЭСМ-3М12, хотя и менее габаритном). Оперативная память сервера не позволяла считать в неё всю базу, поэтому подгрузка информации осуществлялась порциями. Впрочем, скорость обращения к виртуальному диску была практически такой же, как к оперативной памяти, пользователи не чувствовали разницы. Тем более — при тогдашних линиях связи. Программа работала на сервере, а пользователи обращались к ней удалённо, с телетайпов.
Каждое отделение компании оснащалось сначала телетайпами для удалённого доступа, а затем, начиная с конца 1959 года, компания начала закупать компьютеры PDP-1. Для отслеживания контейнеров использовались буквенно-цифровые коды. Их наносили на контейнеры вручную, по трафарету. В базе данных каждому коду ставилась в соответствие запись — где находится контейнер в данный момент, его пункт назначения, дата отбытия, дата прибытия, номер описи груза. Работать с описями поначалу приходилось с помощью бумажной картотеки. Но в поставку PDP-1 был включён текстовый редактор, написанный Стивом Пайнером.
Вскоре кто-то из служащих компании догадался заполнять карточку для картотеки с помощью входящего в комплект поставки флексорайтера IBM Selectric. В результате получалась аккуратно заполненная карточка, к которой прикладывался кусок перфоленты с её же текстом. При необходимости можно было запросить текст любой карточки из любого филиала по телетайпу, и получить его по модемному подключению на компьютер своего филиала. Полученную в электронном виде карточку можно было точно так же распечатать на флексорайтере и заодно получить перфоленту. (АИ)