System/360

IBM System/360 (S/360) — это семейство компьютеров класса мейнфреймов, которое было анонсировано 7 апреля 1964 года. Это был первый ряд компьютеров, в котором проводилось чёткое различие между архитектурой и реализацией.
В отличие от предыдущих серий, программное обеспечение. Для обеспечения совместимости, IBM впервые применила технологию микрокода, который применялся во всех моделях серии кроме самых старших.
Стоимость разработки
Затраты на разработку System/360 составили около 5 млрд. долларов США (что соответствует 30 млрд. в ценах 2005 г., если сравнивать с 1964). Таким образом, это был второй по стоимости проект НИОКР 1960-х годов после программы «Аполлон».
Наследие
Дальнейшим развитием IBM/360 стали системы 370, 390 и System z. В СССР IBM/360 была клонирована под названием ЕС ЭВМ.
Благодаря широкому распространению IBM/360, изобретённые для неё 8-битные символы и 8-битный байт как минимально адресуемая ячейка памяти стали стандартом для всей компьютерной техники. Также IBM/360 была первой 32-разрядной компьютерной системой.
Шестнадцатеричная система счисления, широко применявшаяся в документации IBM/360, практически вытеснила ранее доминировавшую восьмеричную.
Старшие модели семейства IBM/360 и последовавшее за ними семейство IBM/370 были одними из первых компьютеров с виртуальной памятью и первыми серийными компьютерами, поддерживающими реализацию виртуальных машин.
Литература
- К. Джермейн, Программирование на IBM/360. — М., «Мир», 1973.
Ссылки
Wikimedia Foundation . 2010 .
System/360: проект, едва не погубивший IBM
Если когда-то будет составлен шорт-лист самых выдающихся изобретений XIX-XX веков, в него, без сомнения, войдут первая электролампочка, Ford Model T и IBM System/360. Эта серия мэйнфреймов навсегда изменила компьютерную индустрию и произвела революцию в работе заводов, компаний и государственных учреждений.
Тем интереснее узнать, что перед выходом мейнфрейма на рынок (7 апреля 1964 года) S/360 казался создателям едва ли не самой драматичной ошибкой за всю историю предпринимательства. Чтобы создать программную и аппаратную начинку компьютера, сотрудникам IBM пришлось выложиться по полной. Колоссальные финансовые издержки, переработки и пивоты грозили разорить компанию. Позднее Кейт Павитт, эксперт по научной политике, сравнит эту ситуацию с «межплеменной войной»: молодая, быстрорастущая компания была вынуждена работать с новыми, практически не изученными технологиями, вызывавшими недопонимание и раздор внутри отделов.

Тогда IBM повезло. Она уже была достаточно велика, обеспечена финансово и полна талантами. То, что грозило крахом, обернулось победой. Но… давайте не будем забегать вперед.
К концу 1950-х годов пользователи компьютеров столкнулись с одной очень сложной проблемой. Практически неразрешимой. Организации приобретали огромное количество мейнфреймов. Автоматизировали классические процессы с перфокартами и обрабатывали большие потоки данных. Популярность одного только IBM 1401 — живое свидетельство того, как быстро вычисления на компьютере пришли на смену «крестьянскому арифмометру». С 1959 по 1971 IBM удалось продать порядка 12 000 таких систем.

А теперь переходим к фабуле проблемы. Эти машины оказались настолько полезны и универсальны, что на местах из них выжимали все соки. Но рано или поздно производительности и возможностей 1401 переставало хватать, и тогда у вас было три пути:
- перейти на более навороченный IBM, например, IBM 7000;
- купить подходящую машину у другой компании;
- выделить площади и расширить парк 1401-х.
Ни один из этих вариантов не выглядит приемлемо. Переход на новую систему привел бы к необходимости полностью переписать программное обеспечение — ни о какой портабельности или кроссплатформенности в те годы речи не было. Стоимость этого процесса в некоторых случаях могла полностью перекрыть потенциальную выгоду от перехода на более «крупную» машину. Кроме того, пришлось бы переобучить сотрудников, работающих с ЭВМ, или нанять новых.
Увеличение парка «слабых» машин — тоже плохой вариант. Новая ЭВМ требует увеличения штата — как операторов, так и обслуживающего персонала. Рынку требовались системы, которые по мере роста потребностей можно было бы расширить или улучшить, сохранив при этом совместимость со старыми ПО и периферией. В 1950-х и начале 1960-х такой машины не было.
Клиентские проблемы тогда казались IBM цветочками. Противоречия раздирали компанию изнутри. С одной стороны, требовалось создавать более мощные и продвинутые компьютеры. С другой, инженеры, разработавшие 1401, всячески противились инновациям. Популярность машины вскружила им головы. Как вспоминал один из тогдашних сотрудников IBM: «Страсти росли. Иногда казалось, что мы соперничаем не с собственными коллегами, а с внешним конкурентом, злым и бескомпромиссным».
Вражда привела к тому, что 7000-е компьютеры из Покипси (Poughkeepsie) были на 100% несовместимы с кодом, написанным для 1400-х. Заказчики, напротив, писали гневные письма в компанию и требовали совместимости. Высшему руководству IBM приходилось мириться со все растущими тратами на поддержку сразу нескольких несовместимых линеек мейнфреймов.
Единственный разумный выход из сложившейся ситуации — отмести весь этот зверинец и создать единую систему. Это одним махом снизило бы стоимость исследований и сделало бы продукты IBM гораздо более привлекательными в глазах корпоративных заказчиков. В те годы многие клиенты отказывались от 1400-х в пользу машин конкурентов, так как не имело значения, под какой новый компьютер переписывать ПО.
Красота и мощь совместимости раскрылись осенью 1960 года, когда IBM представила рынку машину 1410, пришедшую на смену 1401. И программное обеспечение, и периферийные устройства от 1401 подходили к 1410.
И покупатели, и промоутеры IBM по достоинству оценили новинку. А тем временем в Покипси были близки к завершению работы над комплектом из четырех компьютеров, известных как 8000-е. Они должны были заменить прошлое поколение 7000-х.
За разработку новых продуктов в компании отвечал вице-президент по производству и развитию Томас Винсент Лирсон. Он прекрасно понимал, что внутренние распри в IBM требуется прекратить как можно скорее. Вот, что позднее писал об этом генеральный директор IBM Томас Дж. Уотсон-младший: «Лирсон решил проблему, применив методику «абразивного взаимодействия». Суть в том, чтобы поменять людей из противоборствующих лагерей местами. Так, главный инженер из маленького подразделения был переброшен на руководство флагманским проектом».

Лирсон заменил руководителя из Покипси, ответственного за проект 8000, на Боба О. Эванса, который работал менеджером по проектированию 1401 и 1410. Эванс выступал за совместимость всех будущих продуктов. Спустя три месяца на новой должности Эванс заявил о том, что разработка 8000-х машин — это тупик, вместо них компании следует сосредоточиться на создании единой линейки совместимых компьютеров. В качестве базы для всех новых систем он предложил новую экспериментальную технологию Solid Logic Technology (SLT). Это могло бы дать IBM массу конкурентных преимуществ.
Фредерик П. Брукс-младший, ранее возглавлявший команду разработчиков 8000, противился переменам. Эванс и Брукс стояли по разные стороны баррикад. Оба инженера имели многолетний опыт работы в сфере проектирования и разработки продуктов, пользовались большим уважением со стороны коллег и высшего руководства. Спустя какое-то время для оценки их перспективных предложений был приглашен другой специалист IBM, Джерриер А. Хаддад. Идею Эванса поддержали, и в мае 1961 года разработки 8000-х систем полностью прекратились.
Боб Эванс сразу же попросил Брукса подготовить план создания нового семейства совместимых между собой компьютеров. Лед был сломлен, и вместо непримиримой борьбы инженеры начали работать вместе.
Возглавить новую рабочую группу по системному программированию, проектированию и развитию Лирсон поручил Джону В. Хаанстре, президенту подразделения General Products, производившего модели 1400. Подразделение получило название SPREAD, а Боб Эванс стал её вице-председателем. Позднее к работе был привлечен и Брукс. Уже к декабрю 1961 года группа представила первые технические рекомендации.

Отчет содержал описание пяти совместимых между собой компьютеров, названных общим словом «процессор» (в совокупном значении «компьютер, память и порты подключения периферии»). ПО и внешние устройства, предназначенные для одного процессора, должны были работать со всеми остальными машинами семейства. Предусматривалось использование стандартных аппаратных и программных интерфейсов — например, для подключения дисковых и ленточных накопителей. Эти рекомендации заложили основу для разработки System/360.
Поскольку новые «процессоры» включали массу новых технических решений, обеспечить их совместимость с актуальными продуктами IBM не представлялось возможным. Это была серьезная проблема. Всеми силами компания пыталась объяснить клиентам, что для перехода на новую архитектуру им придется еще один раз переписать свое ПО, а затем встать на путь обновления только аппаратных компонентов.
Лишь в последний момент, летом 1963 года инженерам из Покипси и Эндикотта удалось решить эту проблему. IBM повезло. Оказалось, что путем добавления специального микрокода в контрольные хранилища компьютеров можно моделировать работу прошлых поколений IBM. Таким образом, ПО, написанное для 1401, могло работать сразу на двух моделях новой линейки — и даже быстрее, чем на оригинальных машинах.
Из мемуаров Томаса Уотсона-младшего, генерального директора IBM:
Изначально мы столкнулись сразу с двумя рискованными моментами. Даже одного из них было достаточно, чтобы не спать ночами. Во-первых, стояла задача координировать работы по проектированию аппаратного и программного обеспечения для новой линейки. У нас были команды инженеров по всей Америке и Европе, они одновременно работали над шестью новыми процессорами и десятками новых периферийных устройств . но в конце концов все это оборудование пришлось бы собрать воедино. Во-вторых, программное обеспечение. Чтобы поддержать System/360, сотни программистов написали миллионы строк программного кода. Беспрецедентно сложный проект. Еще никогда наши инженеры не испытывали столь сильного давления.
Еще один пласт проблем был связан с производством электронных компонентов для новых систем. Электронная промышленность только-только освоила изготовление интегральных схем, а новые компьютеры должны были быть наполнены ими под завязку. Чтобы ни от кого не зависеть, IBM пришлось организовать собственное производство ИС. Очень дорогой и очень рискованный шаг.
В конце концов, комитет корпоративного управления, куда входили Уотсон и совет директоров, скрепя сердце, одобрил предложения группы SPREAD. IBM предстояла самая безумная технологическая гонка в истории.
Скрывать происходящее уже не получалось. Понемногу слухи просачивались в прессу. Корпорации уже предвкушали новые, мощные и совместимые машины, а конкуренты — GE, Honeywell, Sperry Univac и прочие — гадали, что же получится у IBM.
Между тем, в самой компании зрело недовольство прогрессом разработки. Инженеры, сотрудники производств и сотрудники отдела продаж работали по 100 и более часов в неделю. Им приходилось фактически жить в офисе. Однажды Уотсон решил лично проверить, как идут дела, но получил нагоняй от какого-то инженера. Мол, иди отсюда и не мешай работать. Председатель правления IBM был вынужден ретироваться.
7 апреля 1964 года, ровно в полдень, IBM презентовала новую линейку компьютеров. Более 100 000 клиентов, репортеров и технических экспертов собрались на конференциях в 165 городах США. Это была самая важная презентация в истории компании.

В тот день IBM представила целых 150 наименований новых продуктов: 6 компьютеров, 44 периферийных устройства, включая ленточные накопители, дисководы, принтеры и блоки управления, а также огромное количество программного обеспечения для совместной работы. Один только каталог толщиной был в целый дюйм. Всевозможные руководства, содержащие описания машин, компонентов и программного обеспечения, если их сложить друг на друга, заняли бы более 15 метров.
Ключевой особенностью System/360, конечно же, была совместимость. В начале жизненного цикла компания могла установить «младший» компьютер из линейки 360, а затем обновить его без надобности переписывать программное обеспечение или заменять сопутствующие устройства. Кроме того, специалистам не требовалось полностью переобучаться для работы на «старших» моделях. Само название 360 было намеком на 360 градусов — максимальный «охват» новой линейки.

За первый месяц IBM удалось продать по предзаказу 100 000 новых машин. Для сравнения, в том же году в Великобритании, Западной Европе, США и Японии было установлено чуть более 20 000 любых компьютеров. Первые поставки «младших» машин обещались в третьем квартале 1965 года, а «старших» — в начале 1966-го. Временной лаг позволил клиентам точно определиться с приобретаемой моделью, спланировать бюджет, обучить персонал и скорректировать программное обеспечение.
С 7 апреля в IBM начались по-настоящему сложные времена. На разработку System/360 компания потратила 5 миллиардов долларов (порядка 40 миллиардов долларов по современному курсу), что в то время было больше её годового бюджета. Было нанято примерно 70 000 новых сотрудников. И каждый из них понимал: если компьютер провалится, IBM придет конец.
Позже Уотсон писал: «Не все оборудование, представленное [7 апреля], было настоящим. Что-то и вовсе было выстрогано из дерева. Обмана не было, мы честно рассказали, что это всего лишь макеты. Но это все равно было слишком опасно. Думаю, так нельзя вести бизнес… Слишком многое мы поставили на кон, еще до конца не зная, будет ли затея успешной».
Руководство проектированием и производством мейнфреймов Уотсон поручил своему брату Артуру. Лирсона перевели в управление продажами — его хватка нужна была, чтобы натренировать торговых представителей. Сама мысль о том, что клиенты могут в последний момент передумать и перейти на не-IBM машины, пугала Уотсона.
Но количество заказов постоянно росло. В 1965 году поступило предложение вдвое увеличить производственные мощности. Чтобы вы поняли всю серьезность момента — один из руководителей заявил, будто расширение невозможно, и его тут же уволили. Да, качество продукции снизилось. К концу 1965 года до четверти электронных схем были отбракованы отделом проверки качества.

После вынужденного простоя и решения проблем на линии производство возобновилось с новой силой. За 1966 год было выпущено 90 млн модулей SLT — почти втрое больше, чем в прошлом году. IBM открыла новый завод в Ист-Фишкилле, к югу от Покипси. Там за один год произвели больше полупроводниковых устройств, чем все другие заводы во всем мире вместе взятые. Позднее были открыты производственные линии в Берлингтоне, штат Вирджиния, и в Корбей-Эсон, Франция.

Расширение производственных мощностей за пределами США создало проблемы в координации деятельности и изготовлении компьютеров. Артур Уотсон ранее уже управлял небольшими заводами IBM за пределами США, но не имел опыта в решении инженерных проблем, не говоря уже о глобальных проблемах в разработке и производстве. Это была задача не его масштаба. А Лирсон и команда продажников просили о дополнительных улучшениях в линейке продуктов — вдобавок ко всем остальным проблемам. В октябре 1964 года IBM пришлось объявить о значительных задержках поставок.
Том отстранил Артура от работы и передал его обязанности Лирсону, который, в свою очередь, пригласил четырех инженеров-менеджеров для решения проблем с заводами. «Четыре всадника Лирсона» всего за пять месяцев усердной работы смогли вернуть прежние сроки поставок. В январе 1966 года Лирсон стал президентом IBM.

Артура перевели на роль заместителя председателя, но уже в 1970 году он предпочел выйти на пенсию. В своих мемуарах Томас Уотсон-младший признался, что с 1964 по 1966 год пребывал в состоянии паники и глубоко сожалеет о том, как обращался с Артуром. «Я не чувствовал ничего, кроме стыда и разочарования из-за моего отношения к нему . Да, мы устроили революцию в компьютерной индустрии, и объективно S/360 — это величайший триумф в моей деловой карьере. Но всякий раз, когда я вспоминаю об этом, я думаю о брате, который так из-за меня пострадал».
Проблемы с программным обеспечением также замедлили поставки S/360. Еще в 1963 году среди разработчиков царил хаос. Они, поначалу безуспешно, пытались заставить операционную систему OS/360 выполнять более одного задания одновременно. Проблемы возникали и с прикладным ПО.
Фред Брукс вызвался помочь компании, и IBM подключила к проекту операционной системы еще порядка 1000 человек, что нанесло огромный удар по бюджету. Но увеличение числа разработчиков почти не помогло. Этот опыт лег в основу книги Брукса «Мифический человекомесяц» (Addison-Wesley, 1975). До сих пор это одна из самых читаемых книг по вычислениям. Годы ушли на то, чтобы разработать, протестировать и отладить новую ОС, а задержка по поставкам сократилась всего до одного месяца.

В 1965 году IBM каким-то чудом удалось отгрузить клиентам первые несколько сотен компьютеров S/360. Да, их качество в некоторых аспектах уступало заявленному. Запчастей не хватало, периферия глючила и выходила из строя. В ПО обнаруживались критические ошибки, и почти каждый клиент так или иначе сталкивался с проблемами. Но начало было положено. Отдел продаж всячески умасливал заказчиков, а в недрах IBM тысячи человек трудились над тем, чтобы исправить ошибки в уже поставленных компьютерах и не допустить их в новых партиях.
Филиалы IBM нанимали сотни новых системных инженеров. В основном это были выпускники технических колледжей, умевшие отлаживать программное обеспечение. Разработчики героически решали программные проблемы S/360, в то время как полевые инженеры, устанавливающие оборудование, исправляли аппаратные баги.
И, несмотря на множество проблем, клиенты продолжали заказывать S/360 быстрее, чем в IBM успевали их собирать. К концу 1966 года заказчики получили девять различных моделей S/360, всего 7700 штук.
Конкуренты IBM тоже не дремали. Burroughs, GE, Honeywell, NCR и Sperry Rand, представили собственные системы, совместимые друг с другом, но не с IBM. Еще одна, меньшая когорта производителей, выпускала IBM-совместимые компьютеры по лицензии RCA.
Пять лет спустя стоимость всех установленных компьютеров IBM в мире выросла до 24 миллиардов долларов, а у конкурентов — до 9 миллиардов. Другими словами, IBM S/360 моментально увеличил популярность компьютеров до немыслимых высот. Годовой рост отрасли во второй половине 1960-х выражался двузначными числами по сравнению с прошлыми годами, поскольку многие тысячи организаций перешли на использование компьютеров. Спрос на вычисления вырос из-за технологических инноваций, разработанных IBM, а также потому что пользователи накопили достаточно опыта, чтобы осознать ценность компьютера.

IBM также выросла более чем вдвое с 127 000 сотрудников по всему миру в 1962-ом до 265 000 к концу 1971 года. Выручка увеличилась с 3,2 млрд в 1964 году до 8,2 млрд долларов в 1971-ом.
S/360 без преувеличения создал новую компьютерную «субкультуру». Тысячи программистов умели пользоваться только ПО от IBM. Еще несколько тысяч человек, занимавшихся обработкой данных, работали только с оборудованием S/360: это были машины для перфорации, принтеры, ленточные накопители, дисководы и отраслевое программное обеспечение. К началу 1970-х компьютерное пространство в значительной степени принадлежало IBM по обе стороны Атлантики, а также на развивающихся рынках Латинской Америки и Японии.

Спустя годы, когда у представителей IBM спросили, решится ли компания на что-то подобное снова, кто-то из руководства ответил: «Черт возьми, да больше никогда!». Уотсон придерживался такого же мнения. Комментируя ситуацию в 1966 году, он заявил: «При всех наших размерах мы больше никогда не решимся на проект такого же масштаба». Помня об уроке S/360, Уотсон ввел новое корпоративное правило: «никогда не объявлять о новой технологии, которая потребует от компании выделения более 25% производственных мощностей».
История разработки S/360 — это история целого поколения сотрудников IBM. Карьеры взлетали и рушились в одночасье, личная жизнь и семьи приносились в жертву великой идее. И никто, ни один человек в компании не мог знать, чем обернется вся эта затея. Насколько сильно S/360 перевернет компьютерный мир.
Зато теперь об этом знаем все мы.
IBM System/360 — История о провале, не оказавшимся таковым
Я продолжаю мой цикл статей про IBM System/360 (первая часть о системе «в целом», вторая часть про архитектуру). Не затронутыми осталось несколько интересных тем, и первая из них — это операционные системы System/360, особенно исторический аспект их развития.
До начала 60-х годов, «мощные» и «бюджетные» решения IBM были несовместимы. Перенос программ был затруднен, а порою и совсем невозможен. Это обуславливалось многими причинами, начиная с разницы в операционных системах, и заканчивая различиями периферии. То, что сейчас кажется само собой очевидным — совместимость различных программных и аппаратных компонентов, тогда было совсем не обязательным. Именно в ходе разработки System/360 инженеры компании решили, что такой подход сильно удорожает разработку и дальнейшее сопровождение, и решили стандартизировать новую систему, упростив портирование программ и сопровождение ЭВМ.
Изначально планировалось поставлять компьютеры System/360 с новой операционной системой с пакетной обработкой заданий. Проще говоря, каждая программа, которую надо запустить, описывается в виде «пакета» — самой программы и набора входных данных. Эти пакеты обрабатываются последовательно в зависимости от приоритета и наличия ресурсов. Такой подход позволял уменьшить человеческое участие в планировании работы мейнфрейма и оптимизировать его загрузку, снижая таким образом накладные расходы. Операционная система должна была называться OS/360.
Разработчики этой ОС поставили перед собой невероятно амбициозные задачи, которые не решались до этого. Данная операционная система должна была обеспечить поддержку «многопрограммности». С медленной периферией исполнение только одной программы за раз приводило к частым простоям, когда система ждала каких-то данных с внешнего устройства. Поэтому использовался подход, схожий с современным асинхронным программированием. В память загружалось несколько программ и первая из них запускалась на выполнение. При необходимости долгого ожидания, контекст текущей программы сохранялся, и управление передавалось следующей, которая могла работать, пока первая ждала данные. Операционная система в этом случае должна была держать все под постоянным контролем, защищая загруженные программы от сбоев других программ, и контролируя доступ к ресурсам. Все это усложнялось отсутствием концепции виртуальной памяти. Операционная система должна была работать на всех моделях линейки, поэтому конфигурации разнились от 16 КБ ОЗУ и до 1 МБ, а скорость работы — от нескольких тысяч операций в секунду, до полумиллиона. Так же операционная система должна была удовлетворять потребности всех программ, начиная со сложных математических расчётов, почти не использовавших внешние накопители, и заканчивая простыми аналогами СУБД, которые полностью строились на операциях ввода-вывода.

Как видите, планы были амбициозными, но поджимало время. Аппаратная часть была готова поступить в продажу, конкуренты атаковали сегменты рынка, в которых IBM была наиболее уязвима, а стабильная и надежная версия OS/360 никак не рождалась. Кроме того, получающееся решение никак не хотело вмещаться в память младших моделей. Было принято соломоново решение выпускать операционную систему в более простом виде с обещанием дальнейших апгрейдов.
Были разработаны несколько промежуточных вариантов.
BOS/360 (Basic OS) — система для самых простых младших моделей.
TOS/360 (Tape OS) — система для модификаций с загрузкой с магнитной ленты.
DOS/360 (несмотря на название, не имела ничего общего со знакомыми нам DOS эпохи x86) — «основная» версия для большинства средних и мощных конфигураций.
PCP (Primary Control Program) — то, что в наше время назвали бы «бета-версией» полной OS/360, не поддерживавшая многопрограммность.

К выходу Series/360-67 (если вы читали первую часть статьи, то должны помнить, что в этой системе появилась концепция виртуальной памяти) планировался релиз TSS/360 (Time Sharing System). Как понятно из названия, эта версия должна была поддерживать режим с разделением времени. Пробные версии этой операционной системы были отданы на тестирование крупным корпоративным клиентам, но отзывы были негативными, да и ОС уже «опоздала» с учетом ситуации на рынке, поэтому выход TSS/360 был отменен. К этому времени уже была достаточно отлажена ОС CP-67, которую разрабатывали в Кембриджском Исследовательском Центре IBM. CP-67 была стабильна настолько, что IBM стала ее предоставлять клиентам, правда на условиях «отказа от гарантии», как ОС с поддержкой разделения времени. Дальнейшее развитие этой операционной системы привело к тому, что она легла в основу VM/370 и потом z/VM.

«
Проблемы, с которыми IBM столкнулись при разработке OS/360, были настолько велики, что дали толчок становлению «software engineering», в том виде, в котором мы его знаем. Именно тогда стало понятно, что разработка ПО и управление этим процессов — это ресурсоемкие дисциплины, к которым нужно применять научный подход для получения контролируемого результата.
Старший менеджер проекта разработки OS/360, на которого была возложена личная ответственность за все, написал книгу, ставшую практически библией для менеджеров разработки ПО (как говорил автор — «все ее читали, но никто ей не следует»). Да, речь о Фредерике Бруксе и его книге «Мифический человеко-месяц».
Из всех принципов, которые Брукс сформулировал, наиболее четко характеризуют суть проекта по разработке OS/360 следующие два.
Добавление ресурсов (в том числе и человеческих) на проект не всегда приводит к сокращению его сроков, часто эффект может быть даже обратным. Как сказано в книге, разработка компилятора Алгол — всегда занимает полгода, независимо от числа задействованных программистов.
Новая версия успешной системы зачастую обречена на провал, так как разработчики будут пытаться реализовать все пожелания пользователей. Брукс называл это «эффектом второй системы».

Как видите, с одной стороны разработка основной версии OS/360 если и не стала полным провалом, то весьма к нему приблизилась. С другой стороны, в IBM сумели, несмотря на это, сделать System/360 успешной, а уроки, полученные в ходе этого, стали фундаментом современных подходов в разработке ПО.
Продолжение следует
История электронной вычислительной техники в СССР

Если бы только Джон фон Нейман в 40-х годах XX века знал, насколько по-другому будет выглядеть мир через семьдесят лет. В том числе благодаря его значимому вкладу в создание и развитие теории ЭВМ. А без этой техники было бы невозможно запустить человека в космос, относительно достоверно предсказать погоду, анализировать рынки и проводить другие сложнейшие вычисления, на которые у обычных людей раньше уходили целые месяцы, если не годы.
Да, сейчас у любого из нас в кармане лежит мобильный телефон с невероятной скоростью и объёмом вычислений, но раньше для всего этого были необходимы громоздкие шкафы с дорогой и очень ненадёжной техникой. О том, как учёные развивали вычислительную технику и каких успехов смог добиться СССР в этой сфере, я постараюсь кратко рассказать в этой статье.
Думаю, никто из читателей не сомневается в том, что самыми первыми заказчиками ЭВМ являлись государство и армия, у которых были деньги на создание и запуск в серийное производство огромных вычислительных машин. Самые первые из них использовались американцами при разработке термоядерной бомбы уже после уничтожения Хиросимы и Нагасаки. Но эти машины были лишь единичными разработками, а нас здесь прежде всего интересуют самые заметные серийные модели, поскольку только при помощи массовости они могли принести наибольшую пользу для общества. Подчёркиваю, именно массовости. Вы можете создать мощнейший в мире суперкомпьютер, но абстрактному инженеру Анатолию на каком-нибудь провинциальном заводе она особой пользы не принесёт. Как он в лучшем случае считал на примитивных вычислительных машинах, так он до пенсии и будет за ними сидеть. И это в лучшем случае, когда эта самая вычислительная машина у него есть. Поэтому для более равномерного развития производств необходима пусть и не самая мощная, но зато простая и надёжная техника, чтобы даже баба Клава из бухгалтерии, которая начала свой карьерный путь ещё при Николае II, смогла её использовать с благими целями.
А теперь от просто к немного сложному. Технической основой автоматизации вычислений для первого поколения ЭВМ стали вакуумные лампы (да, те самые, именно с их помощью ценители музыки добиваются «лампового» звучания), у которых при помощи работы с напряжением можно было создать двоичную систему исчисления (то есть в ней существуют только 0 и 1, а остальные буквы, цифры и т.п. представляют собой их комбинации разной длины, что продолжает быть стандартом и в наше время), являвшуюся одним из основных элементов архитектуры фон Неймана. Однако у них были три явные проблемы: большой размер, большое энергопотребление и низкая надёжность. Причём последнее создавало дополнительные проблемы, поскольку не всегда было возможно определить, насколько правильные данные выдаёт машина, ведь в каждой было по несколько тысяч ламп, а поломка одной уже давала ошибку в вычислениях. И если в вопросе сельского хозяйства плюс минус десяток килограмм удобрений погоды не делали, то вот при разговоре о ядерной сфере, медицине и исследовании космоса об отклонении не может идти и речи, потому что цена ошибки вырастает в миллионы раз. Но работали с тем, что есть, поскольку возможность широкомасштабного использования значительно более прогрессивных транзисторов в ЭВМ ещё лишь прорабатывалась.


Самой первой советской ЭВМ стала разработка киевского Института электротехники Академии наук УССР под руководством академика Сергея Лебедева под названием МЭСМ — малая счётная электронная машина. Да, она выполняла лишь 50 операций в секунду при 25 кВт потребления (6 000 вакуумных ламп), но для самой первой ЭВМ в стране это было вполне неплохо. Параллельно с Киевом шла разработка в Москве, а позже и в Ленинграде, Минске, Ереване, Пензе. После перевода академика Лебедева в Москву к 1953 была завершена БЭСМ — большая электронная счётная машина, которая уже могла выполнять уже до 10 000 операций в секунду при энергопотреблении в 35 кВт на 5 000 вакуумных ламп, что было невероятным достижением по тем временам, а её дочка, которая пошла в серию, БЭСМ-2 и все 20 000 операций в секунду. Эта модель положила начало для целой серии ЭВМ, которая продолжилась уже в транзисторную эру в гражданской и военной сферах.
Если уж я говорю о транзисторах, то для начала необходимо пояснить, в чём был смысл в переходе на них. По сравнению со старыми-добрыми лампами они были дороже, но при этом потребляли меньше энергии, имели большую производительность и меньшие габариты при повышенной надёжности. А что означает уменьшение габаритов? Правильно, в тот же самый объём можно поместить ещё больше оборудования, повысив его эффективность. Однако для этого оборудования понадобится и новое охлаждение, потому что одной проточной вентиляции здесь уже не хватит. Если у вас техника выполняет миллион операций в секунду, то тут даже открытая форточка и махание дверью не помогут, поэтому стали появляться системы водяного, а на западе и фреонового охлаждения, которые было проще монтировать, чем громоздкие вентиляции, прокачивающие сотни кубометров воздуха в час.

Возвращаясь к транзисторной части серии БЭСМ. На гражданке это были БЭСМ-3 — БЭСМ-6, в последней из которых производительность взлетела до одного миллиона операций в секунду, 50 кВт потребляемой энергии и занимаемой площади всего лишь 225 квадратных метров. В армии же её модификации использовались в войсках ПВО и ПРО, а самая последняя версия в 1975 даже стала частью зенитно-ракетного комплекса С-300.
Вот вроде бы всё так хорошо складывается: растёт производительность техники, внедряются новые технологии. Но где-то же должен быть подвох. Правильно, он был. И был он в размерах серий, которыми выпускались отечественные ЭВМ. Из всех гражданских машин серии БЭСМ за сотню перевалила только серия БЭСМ-6, которых за 19 лет выпуска создали 355 штук. Да, были ещё серии пензенские «Урал», белорусские «Весна», «Минск», «Снег», ереванские «Наири», киевские «Мир» и ряд других моделей, но они всё ещё не могли обеспечить огромную страну достаточными вычислительными мощностями. Кроме малого числа самих станций ещё существовала проблема с их моделью распространения: их невозможно было просто купить: в СССР все ЭВМ распределялись по согласованию с высшими структурами.
А вот, что можно было наблюдать в США: первый же коммерческий компьютер UNIVAC I (1950 год) был выпущен серией в 46 экземпляров. Дальше — больше. IBM-704 (1954 год) разошлась в количестве 140 экземпляров при приблизительной производительности в 40 000 операций в секунду в 1954 году (против советских 20 000 на БЭСМ-2 того же периода). И это лишь отдельные представители американских линеек ЭВМ. А были же ещё английские. Кроме численного превосходства существовало и мощностное: про первый в мире американский серийный суперкомпьютер CDC 6600 (1963 год, то есть на 5 лет раньше пуска в серию невероятно удачной БЭСМ-6), с ноги вынесший дверь на рынок транзисторных ЭВМ, даже говорить немного грустно. Да, на ранних версиях при желании можно было без труда жарить стейк, а форма расстановки шкафов с оборудованием заставила меня пройтись по родословной и политическим мировоззрениям его создателей (да, да, это вполне рабочая форма расстановки шкафов с оборудованием), но эта машина наголову превосходила БЭСМ-6. Отечественные ЭВМ могла тягаться лишь с более бюджетными CDC 6400/6500/6700, представляющими из себя урезанные по мощности CDC 6600. При этом стоит отметить, что компания IBM, до этого безраздельно лидировавшая на рынке компьютеров в США, была искренне обескуражена мощностью машины конкурентов, поскольку их лучшая ЭВМ IBM Stretch давала в три раза меньше вычислительных мощностей при значительно больших размерах и возможностях отдела разработки, так что это был настоящий прорыв.

К сожалению, на стороне американцев действительно были производительность и большие экономические ресурсы, но у СССР на руках всё ещё оставался один козырь — архитектура. Вот только с ней была ещё одна проблема: каждая команда инженеров считала своим долгом при создании ЭВМ сделать под неё внутреннюю архитектуру с нуля, часть технических решений тоже с нуля, а иногда даже и свой собственный язык программирования с трансляторами.
Минутка лирического отступления, если позволите. Если компьютерную архитектуру можно связать аналогией с обычной архитектурой (физическая и программная часть компьютера соотносятся с тем, как сделано само здание и в чём заключается его функционал), то языки программирования — это смесь языков в понимании лингвистов и математиков. Каждый язык программирования отличается от другого, как и самые настоящие языки, но отличается функционалом (поэтому для сильно отличающихся сфер разработки принято использовать разные ЯП), который в него заложен, или на крайний случай самым обычным синтаксисом. Для примера можно взять трёх долгожителей мира IT: языки COBOL (с 1959 года), Fortran (c 1957 года) и Assembler (с 1949 года). COBOL создавался в первую очередь для нужд бизнеса, поэтому хорошо умеет работать с файлами. Fortran был разработан IBM для работы со сложной формульной математикой, где было необходимо максимально оптимизировать расчёты, не потеряв при этом их точность. Assembler же был создан для ускорения операций в тех местах, где могли найтись те или иные «бутылочные горлышки» (будь то ограничения в техническом плане или необходимость провести вычисления за короткий промежуток времени). Ещё в СССР был очень популярен ALGOL 68, созданный под эгидой ЮНЕСКО, для которого всегда было важно быстро и правильно обрабатывать большие объёмы информации. Думаю, на этом короткое лирическое отступление можно завершить, поэтому давайте вернёмся к проблеме очень широкого технического разнообразия в сфере советских ЭВМ 60-х.
А если у вас все машины работают по-разному, к ним не то что периферию одинаковую не подключишь, даже одну программу не факт, что сможешь запустить. Поэтому уже в 1966 году при переходе от обычных транзисторов к микросхемам (от второго поколения ЭВМ к третьему) наверху решили, что пора бы уже и меру знать, создав заказ по опытно-конструкторской работе «Ряд», которая подразумевала всеобщую стандартизацию компьютерной техники путём вольного заимствования элементов из IMB 360. Однако:
«В 1984 году в Москве состоялась выставка «ЭВМ в Советской армии». Я, естественно, приехал. Там было представлено более 200 типов ЭВМ, не считая мелких брызгов. А что такое 200 ЭВМ? Это 200 операционных систем, 200 комплектов ЗИП — запасных изделий и приборов. Я несколько раз выступал в оборонном отделе ЦК КПСС в Москве: «Давайте сделаем одну машину». «Андрей, не лезь», — отвечали мне вежливо, но твердо. Была «Броня» — базовая телефонная станция Советской армии. В ней три машины разных. Одна для коммутации, другая для управления сетью, третья для работы с оператором. С разными системами команд, с разными операционными системами, три комплекта офицеров надо, чтобы обслуживали. Тысяча номеров всего-то — маленькая станция! Три ЭВМ — куда это годится? И когда я пытался ругаться, мне снова говорили: не лезь.»
Из интервью завкафедрой системного программирования Матмеха СПбГУ, профессора, доктора физмат наук Андрея Николаевича Терехова компании DataArt, 2019 г.
Да, в промежутке с 1966 по 1984 в армии с унификацией что-то не задалось, поэтому у них сохранился ровно тот же зоопарк (и это ведь только образцы, доступные для гражданских) техники, что и до принятия «Ряда». Видимо, на армию она не распространялась. Зато в жизни гражданской всё начало меняться после начала копирования IBM 360. Когда я впервые прочитал об этом заимствовании, у меня возник вопрос: «А как тогда американцы не засудили советскую сторону за полное копирование архитектуры?» Всё просто: тогда традиция регистрации патентных прав на всё в этой вселенной ещё не была так распространена.
«Выноси всё, что не прибито, а всё, что прибито, выламывай и тоже уноси.»

Унификация даёт нам что? Правильно, единый набор программ, средство от геморроя и совместимые со всем периферийные устройства (клавиатуры, наушники, а потом и мыши, и всё остальное, что мы сейчас можем воткнуть в порты наших компьютеров, телефонов, телевизоров и холодильников).
А что она у нас отбирает? В первую очередь при заимствовании иностранного мы теряем то преимущество в архитектуре, которое удалось создать ранее благодаря разработке техники с нуля, в то время как на западе некоторые не самые удачные старые наработки ложились в базу для новых. Ещё мы лишаемся полёта мысли и пространства для интеллектуального творчества, которое было важно для многих инженеров. Ведь когда у вас идёт стандартизация, то кроме небольшого улучшения уже имеющихся возможностей техники вы можете сделать приблизительно ничего. Ну, или ищите армейские заказы. Сам академик Лебедев называл полное копирование технологических наработок США путём для догоняющих, однако, как мне кажется, тут всё же стоило пойти на подобные жертвы, что будет объяснено чуть позже.
Хотя и находились смельчаки, разрабатывавшие технику не с архитектурой IBM. Взять, к примеру серию СМ ЭВМ (система малых ЭВМ, 70-80-е годы), основанную на отечественных разработках. Благодаря разделению на четыре подсерии данная линейка была совместима с техникой трёх других американских гигантов IT-индустрии тех времён: HP, DEC (в двух разных линейках) и Intel. А совместимость с западными ЭВМ позволяла продавать советскую технику через одно из подразделений Внешторга в капстраны, что повышало шансы создателей на увеличение бюджета на разработку новых машин и доводку тех, что уже готовились или были недавно пущены в серию.
Что же можно сказать о том, как повлияла ЕС ЭВМ, производство которой велось с начала семидесятых до конца девяностых, на отечественную разработку? Пусть лучше на это ответит приведённая ниже цитата.
«Пять лет назад на конференции в Казани разгорелся спор по поводу копирования ЕС ЭВМ. Хорошо или плохо? Естественно, мы все сказали, что это была огромная стратегическая ошибка. Встает дядька, бывший директор какого-то завода: «Вы все дураки. ЕС ЭВМ разных было выпущено 17 тысяч штук. Мы сделали китайский скачок и помогли сдвинуться с мертвой точки. Да, своровали огромное количество программного обеспечения. <. >«У нас была БЭСМ-6», — говорим. — «Да, с тремя операционными системами говенными».
Из интервью завкафедрой системного программирования Матмеха СПбГУ, профессора, доктора физмат наук Андрея Николаевича Терехова компании DataArt, 2019

Только задумайтесь, силами стран ОВД (СССР, ГДР, Чехословакия, Польша, Болгария), а потом и отдельно в РФ было создано 17 тысяч компьютеров, что как минимум на порядок превосходит то количество ЭВМ, что были произведены в стране до этого. Вся линейка насчитывала в себе больше 20 разных моделей и подразделялась на четыре ряда:
— первый ряд состоял из стандартных машин с производительностью от 2 750 до 700 000 операций в секунду (1971-1978);
— второй ряд представлял собой техническое развитие предыдущих разработок. Здесь уже можно было получить от 150 000 до 4 000 000 операций в секунду (1977-1984);
— третий ряд был во многом аналогичен второму, но после производства он ещё должен был пройти военную приёмку, показав, что способен защитить от несанкционированного доступа данные (1983-1988);
— и последний четвёртый ряд был готов к выпуску уже после распада СССР и отличался от предыдущих моделей в первую очередь объёмом оперативной памяти и рядом на тот момент современных наработок.
На базе ЕС ЭВМ даже хотели сделать суперкомпьютер… Однако стоит помнить, что западная компьютерная архитектура наследовала свои старые проблемы, из-за чего они перекочевали и к нам, создавая ещё больше проблем для совместимости старых и новых моделей советских ЭВМ. К тому же одни США за это время наштамповали ещё больше и частично даже мощнее, что вполне компенсировало программные недостатки. С каждым новым техническим поколением разрыв по суммарным мощностям между странами социалистического блока и США только рос. А ведь нельзя забывать про Великобританию, ФРГ и Японию.
Ну, а потом случился 1991. Финансирование почти всех разработок накрылось медным тазом, похоронив под собой и проект суперкомпьютера на базе ЕС ЭВМ. В живых остался только армейский суперкомпьютер «Эльбрус» (часть из которых работает в гос. организациях и по сей день, а наработки по нему до сих пор используются для создания отечественных процессоров одноимённой линейки для новых суперкомпьютеров), хотя его третья модификация тоже скончалась в безденежье девяностых. А что до организаций, занимавшихся созданием советских ЭВМ, то многие из них как раз тогда и сгинули (поскольку в прямом смысле народных ЭВМ, доступных в больших объёмах для обычного потребителя, у нас в больших сериях не было, в то время как мировой рынок уже начал переход к персональным компьютерам), а если и смогли удержаться на плаву, то только за счёт частных заказов с запада, а в нулевых и из Китая, который, к примеру, закупал у нас вычислительное оборудование для своих АЭС.

Развал СССР безусловно лишил его бывших участников шансов на конкуренцию с западом, поскольку предприятия, раньше находившееся в одних границах, теперь должны были бороться не только с рынком, но и со множеством границ, которые приходилось преодолевать в ходе сотрудничества. Да и про резкий отток многих технических специалистов в Европу и США тоже не стоит забывать. Сейчас ведутся попытки вернуть на прежний уровень эту некогда огромную сферу, но особых перспектив, тем более в сравнении с США и Китаем, тут не видно.
Автор: Андрей Лебедев