Эра Unix — это дата, которая жёстко закодирована в компьютерах повсеместно. Возможно, это самая известная дата в вычислительной технике, и она будет существовать до тех пор, пока у нас есть системы, основанные на Unix.
Эра определяется как начало определённого отрезка в истории чего-либо. К сожалению, эра Unix по факту — просто произвольная дата. Конечно, она близка к дате начала разработки Unix, но, как позже стало известно, выбрана она была не поэтому.
Хотя исторически эра Unix — дата произвольная, так получилось, что она совпала со знаменательной датой для компьютерной индустрии. Это невероятное совпадение, учитывая, какое значение эта дата имела для индустрии ПО. Она особенно важна для инженеров-программистов, потому что именно в этот день,1 января 1970, ИТ-рынок и индустрия в их современном виде были узаконены.
Когда я впервые узнал об эре Unix, то подумал, что 1 января 1970 года во вселенной Unix произошло нечто грандиозное и вдохновляющее. Например, в эту дату Деннис Ритчи или Кен Томпсон завершили прототип Unix на своем PDP-7. Возможно, они чувствовали себя настолько близкими к впечатляющему результату, что не стали праздновать Новый год и засиделись за программированием до глубокой ночи.
Однако все было не так. Фархад Манджу определил истинные истоки даты и написал об этом в Wired 8 сентября 2001 года, как раз перед тем, как временная метка Unix достигла 1 000 000 000 секунд (сейчас, когда я это пишу, текущее время Unix составляет 1 674 540 529).
Он написал:
По словам Денниса Ритчи, одного из инженеров, работавших над Unix в Bell Labs в период её зарождения:
«В то время у нас не было лент, но у нас было несколько работающих файловых систем, и мы постоянно меняли начало времяисчисления. В итоге сказали: «Давайте выберем одну конкретную дату, с учётом запаса времени до переполнения системы».1970 год оказался весьма кстати».
Если из этого и можно что-то вынести, так это то, что решение было, по крайней мере, практичным и имело смысл. Забавно, но именно так я бы описал Unix и все производные от нее операционные системы: практично и логично.
Однако изначально выбранная дата отличалась от 1 января 1970 года. Unix-время стартовало 1 января 1971 года и вместо секунд измеряло 1/60 секунды, согласно ранней справочной странице 1971 года. Это означало, что 2^32 переполнилось бы через 2,26 года, что не слишком хорошо.
Чуть позже дата была изменена на 1 января 1972 года, а затем, в 1973 году она была изменена на дату, которую мы имеем по сей день.
Мне очень хотелось, чтобы эта дата имела какое-то значение, но, к сожалению, его просто не было.
Однажды, читая о компьютерной истории, я наткнулся на интересное событие, которое в точности совпадает с датой начала эпохи Unix, оказавшей огромное влияние на индустрию ПО.
Лучшая книга по истории ПО, которую мне удалось найти, — это невероятно подробный труд Мартина Кэмпбелла-Келли под названием From Airline Reservations to Sonic the Hedgehog.
Программное обеспечение до эры Unix
1950-е годы
В начале 1950-х годов компьютерная индустрия была совсем другой. Одна из её отличительных черт: дефицит компьютерного оборудования. В 1960-х годах в США была проведена перепись населения, согласно которой количество компьютеров составило около 14 000.
Аренда компьютеров обходилась очень дорого, например, IBM 701 стоил 15 000 долларов в месяц. Кроме того, наблюдался дефицит компьютерного ПО. Компаниям, арендовавшим эти гигантские машины, приходилось писать собственное ПО и справляться со всеми сопутствующими проблемами. Количество компьютеров в сочетании со сложностью их программирования не позволяло сформировать какой-либо рынок ПО — экономика была просто нецелесообразной. Когда компания брала компьютер в аренду, предполагалось, что производитель поможет ей с поддержкой и обучением, но не более того.
На раннем рынке ПО происходило несколько интересных событий, но они не были связаны с деньгами. Речь о группе под названием SHARE, создававшей нечто очень похожее на современную экосистему открытого кода, только гораздо меньше и гораздо примитивнее. По словам участников группы, название — «это не аббревиатура, а то, чем мы занимаемся». Всё было основано на доброй воле и товариществе.
Программистов в то время тоже было не так много. Известная некоммерческая организация RAND, занимающаяся исследованиями и разработками, провела несколько оценок количества программистов. Из книги Кэмпбелла-Келли:
В декабре 1955 года корпорация RAND создала автономное подразделение по разработке систем для выполнения работ по программированию. В то время корпорация считала, что в ней работает около 10 процентов лучших программистов в США, но это было всего 25 человек. По оценкам, в корпорации было не более 200 программистов «journey-man» — тех, кто способен выполнять разработки самого высокого класса, — хотя профессиональных программистов, работающих над относительно простыми коммерческими приложениями, было, вероятно, в 6 раз больше.
К 1959 году, спустя 5 лет, самая многочисленная группа программистов работала в компании по разработке ПО под названием System Development Corporation (SDC), которая была выделена из RAND. В ней работало 700 программистов, все они трудились над системой под названием Semi-Automatic Ground Environment, которая представляла собой оборонную систему для защиты страны. По оценкам, речь примерно о половине программистов в США в то время.
Еще один интересный аспект: SDC была оборонным подрядчиком, а Соединенные Штаты — их клиентом. Большая часть раннего финансирования индустрии ПО (как и индустрии аппаратного обеспечения) осуществлялась Министерством обороны. SAGE — первый и крупнейший пример такого финансирования в то время. Господдержка финансировала множество проектов, это продолжалось на протяжении 1950-х годов и далее. Это была уникальная черта Соединенных Штатов: количество денег, которые США вкладывали в вычислительную технику, помогло им стать лидером этой области во всем мире.
За исключением оборонных проектов, которые финансировались правительством, на частном рынке программные проекты часто создавались для очень специфических целей. Крупнейшим частным программным проектом в это время была система SABRE, предназначенная для бронирования авиабилетов и созданная компанией American Airlines. У Bank of America также был крупный финансовый проект, который они программировали. В общем, ситуация была довольно распространённой: крупные компании лучше всего подходили для программирования под конкретный рынок.
1960-е годы
В те годы термин «индустрия ПО» еще не существовал. Только в конце десятилетия он начал приобретать значение, которое мы подразумеваем под ним сегодня.
Индустрия ПО была настолько мала, что анализ этой зарождающейся отрасли практически не проводился. Многое из того, что мы знаем об этой эпохе, несколько неполно в силу молодости данной отрасли.
Однако с аппаратным обеспечением дело обстояло иначе. Индустрия начала развиваться в начале 1960-х годов, и в ней доминировала IBM. Компания настолько превосходила конкурентов, что для её обозначения было придумано милое прозвище: «IBM и семь гномов», поскольку существовало 7 конкурентов, которые занимали большую часть оставшейся доли рынка.
Компании, арендовавшие мейнфреймы у IBM и «семерки», должны были сами выполнять большую часть программирования. Если какую-то задачу можно было автоматизировать, компании старались написать ПО для мейнфреймов, которыми владели. Обычно компании не держали программистов в штате, так как это не имело смысла с экономической точки зрения. Вместо этого они нанимали подрядчиков для написания ПО под свои нужды. Созданная программа была лишь разовой, предназначенной для выполнения конкретной задачи, а не для продвижения на рынке или продажи этой компанией — это было просто нецелесообразно в данный момент.
Итак, индустрия ПО развивалась медленно, поскольку спрос на программистов был невелик. В качестве примера того, как медленно она развивалась: компания SDC (создавшая систему противовоздушной обороны) в конце концов была превзойдена в качестве крупнейшего подрядчика по программированию. Ее обошла компания под названием Computer Sciences Corporation, и обошла она SDC только в 1969 году — почти через 15 лет после основания SDC.
Начало 1960-х годов было временем, когда компании начали понимать, что такое ПО и как оно может быть для них полезно. Ситуация стала меняться, когда наступили поздние 1960-е годы.
Поздние 1960-е годы
IBM и «Семь гномов» продолжали внедрять инновации и совершенствовать аппаратное обеспечение. Совершенствовалось оно гораздо быстрее, чем ПО. Это стало напоминать экономику предложения, поскольку давало возможность ПО развиваться и выполнять больше вычислений. Программистам больше не нужно было тратить столько времени на оптимизацию и доработку под недостаточно мощное оборудование.
Это также было время, когда несколько ранних программных продуктов стали прорывными, первыми реальными достижениями в новой отрасли. К ним относится Autoflow компании ADR — программа для составления блок-схем; первый большой коммерческий успех в индустрии ПО. Другой пример — программа Informatic Mark IV, предназначенная для управления файлами. Эти программы вряд ли можно назвать прорывными по нынешним меркам, но среди систем, на которые могла надеяться только-только зарождающаяся индустрия, они были весьма прорывными.
IBM продолжала лидировать на протяжении 60-х годов и по-прежнему оставалась гигантом компьютерной индустрии. Размах и масштаб их господства был невероятным. Конкуренты делали все возможное, чтобы замедлить развитие IBM, включая судебные иски. В моей любимой книге всех времен The Soul of a New Machine Трейси Киддер хорошо это раскрывает:
Фирмы боролись за патенты, маркетинговые практики и сотрудников. Время от времени кого-то ловили на краже чертежей или других документов, и по этим и другим причинам компьютерные компании часто обращались в суд. IBM практически жила там. Казалось, все судились с IBM.
В IBM понимали, что ПО — растущая отрасль, и, владея аппаратным обеспечением, они могли сделать его более привлекательным с помощью хорошего ПО. Когда компания покупала продукцию IBM (никто никогда не был уволен за покупку IBM), она получала не только оборудование, но и доступ ко всему каталогу ПО IBM, без дополнительной платы. Цена на аппаратное и программное обеспечение была комбинированной. ПО от IBM было качественным и дорогим. Оно считалось одной из главных причин, по которой IBM выбирали в первую очередь. Многие из этих пользовательских программ были более универсальными, чем те, что мы видели ранее, работавшие с очень специфическими задачами.
Из-за этого конкурентам IBM было сложно как на программном, так и на аппаратном фронте. У других производителей аппаратного обеспечения не было такого каталога ПО, как у IBM, поэтому если клиент не покупал IBM, ему приходилось решать проблему с ПО. Иными словами, компании предпочитали покупать у IBM пакет из аппаратного и программного обеспечения.
Великое разделение
Преимущество IBM в области аппаратного и программного обеспечения стало крайне очевидным. Власть, которую IBM имела над рынком, была лишь одной из вещей, с которыми не соглашался CDC, один из Семи Гномов. По словам Мартина Кэмпбелла-Келли, IBM также была известна преждевременными анонсами продуктов и хищническим ценообразованием. Всего этого было достаточно, чтобы CDC подала иск против IBM в декабре 1968 года.
За несколько дней до подачи иска компания IBM чудесным образом объявила о том, что собирается разделить аппаратное и программное обеспечение. Однако это был только тизер, подробности пока отсутствовали. IBM назначили полный анонс на июнь 1969 года. Считается, что IBM сделала это полусерьёзное объявление в попытке показать, что они активно участвуют в самоуправлении и, возможно, предотвратить новые антимонопольные действия.
IBM организовала целевую группу для определения логистики и деталей этого разделения, и у неё было 6 месяцев, чтобы разработать план.
Далее последовало официальное расследование антимонопольных претензий со стороны Министерства юстиции, о котором было объявлено спустя чуть больше месяца, в январе 1969 года. На IBM надвигались стены как в федеральном суде, так и в суде общественного мнения.
Когда наступил июль, IBM оказалась верна своему слову и официально оформила разделение и порядок ценообразования.
IBM объявила дату вступления в силу новой схемы разделения и ценообразования: 1 января 1970 года.
Создание индустрии программного обеспечения
Эта дата, эра Unix, стала поворотным моментом в индустрии ПО. После неё IBM установила цену на ПО, которое она предоставляла клиентам вместе с аппаратным обеспечением.
Мартин А. Гётц, менеджер по продуктам компании ADR, работавший над Autoflow (первым крупным успешным коммерческим приложением), дал интервью в рамках серии устных историй Музея компьютерной истории. Он сказал:
IBM была важной частью этой истории, потому что сформировала рынок, и одна из проблем заключалась в том, чтобы убедить рынок покупать. Одно дело — иметь продукты для продажи, но самая большая проблема заключалась в ментальном настрое людей, которые покупали. «Так что же это за вещь, которую я покупаю?»
Прошли годы, прежде чем компании начали осознавать, что ПО — это то, что они могут купить. Ли Китс работал инженером в IBM на протяжении большей части 60-х годов и ушел в 1967 году, чтобы основать собственную компанию. Он утверждал, что разделение было легитимизирующей силой для рынка:
Легитимизация — правильное слово. IBM дала клиенту понять, что покупать ПО не только можно, но и нужно. А еще она поставила перед покупателем флаг, означающий, что если вы собираетесь тратить деньги, то должны обосновать свои расходы. И это произошло не за одну ночь.
Немногочисленные компании, занимавшиеся разработкой ПО, вдруг увидели ценность программ IBM, и теперь они могли конкурировать только с ними, а не с аппаратным обеспечением. Программисты, работавшие в качестве подрядчиков, теперь могли начать продавать собственное ПО. Это привело к расцвету инноваций в 1970-х годах.
Именно в это десятилетие индустрия ПО стала чем-то само собой разумеющимся. В это время было создано бесчисленное множество компаний, которые начали продавать свои продукты. Это привлекло новых программистов и значительно расширило возможности индустрии.
Мартин Кэмпбелл-Келли утверждает, что именно эта дата стала датой создания индустрии ПО. ДжоАнна Йейтс, другой историк вычислительной техники, утверждала, что это была «точка перегиба».
Мы должны помнить эру Unix как дату создания индустрии ПО.
Комментарии (3)
SysManOne
01.01.2025 14:35Странная писанина, юних видите ли есть, бледно голубой АйБиМэ жив ... Но PDP 7 прям как-то из воздуха, и вовсе как то без DEC. А где же незабвенное про "змеиное масло" от большого Кена? Или это укороченная история, для поколения ЕГЭ на НГ?
netch80
01.01.2025 14:35Дайте тогда, пожалуйста, ссылки или хотя бы ключевые слова на всё упомянутое...
saipr
Фактически это дата начала новой эры. И через год после этой даты я ступлю на стезю программирования, по которой шагаю вот уже более 50 (пятидесяти) лет :-).