Система обработки данных IBM 1401
Перевод статьи оригинала на английском: The IBM 1401
Система обработки данных IBM 1401 – транзисторно-логический компьютер с хранимыми программами, анонсированный в октябре 1959 года. При минимальной конфигурации стоимостью 2500 долл. в месяц это был первый доступный компьютер общего назначения компании IBM, и он должен был занять место всех бухгалтерских машин и калькуляторов, которые все еще являлись более дешевой альтернативой компьютерам IBM 650 и 70х. Тысячи компьютеров 1401 были проданы или взяты в аренду; фактически, это был первый компьютер, который разошелся тиражом 10000 единиц. 1401 был десятичным (а не двоичным) компьютером, слова переменной длины состояли из 8-разрядных байтов, содержащих 6-разрядные BCD (двоично-десятичная кодировка) символы (плюс биты четности и знаки слов), и предназначался в основном для бизнес-приложений (его научным аналогом был 1620). Модель 1401 стала первой в серии компьютеров IBM 1400, в которую впоследствии вошли модели 1410, 1440 и 1460. Первоначально он программировался только на машинном языке, языке ассемблера или (чуть позже) автокодере, что оказалось сложным для многих людей, но вскоре на 1401 был установлен один из первых высокоуровневых языков программирования, ориентированных на бизнес, – RPG (Report Program Generator), что повысило удобство его использования и популярность [4]. Позже для научного программирования был добавлен FORTRAN.
По словам Хью Т. Хоскинса, до появления Autocoder существовал ассемблер под названием SOPAT, поставляемый компанией IBM. Это было в школе бизнеса Университета Южной Калифорнии в 1962 году. Также см. более поздние комментарии Кита Уильямса ниже.
1401 был настолько популярен, что (по легенде) приложения для 1401 все еще работали в 2000 году на симуляторах 1401 (которые сами могли быть приложениями 70×0, а значит, работали на собственных симуляторах), и это создавало особую проблему при конвертации >=2000 годов. Можно быть уверенным, что программисты 1960-х годов, имевшие в своем распоряжении всего несколько тысяч байт памяти, не стали “тратить ядро” на четырехзначные годы!
На рисунке (слева направо; для получения более крупных изображений перейдите по ссылкам):
- Модель 1402 Считыватель карт/ перфоратор
- 7330 Блок магнитной ленты
- 1407 Console Inquiry Station
- Сам компьютер 1401 с его панелью контроля вверху слева
- 1405 Дисковое устройство хранения данных
- 1403 принтер.
Принтер 1403 мог печатать до 1400 132-колоночных строк в минуту, а иногда и больше. Считывающее/пробивающее устройство 1402 вмещало в свой бункер 1000 карт (полкоробки), считывало 800 карт в минуту и пробивало 250 карт в минуту. Лорен Уилтон (Loren Wilton) из компании Burroughs/Unisys, который работал с 1401 во время учебы в колледже, отметил (31 декабря 2003 г.), что:
…Если вы позволите горстке карт упасть в лоток для считывания (что обычно происходило при загрузке лотка и в любом случае происходило, как только вы запускали считыватель), то лоток плюс лоток для считывания легко вместит целую коробку карт, или 2000 с лишним карт.
Это было очень удобно, так как сокращало время загрузки карт в считыватель, и можно было посвятить его управлению перфоратором, который имел гораздо меньший бункер, и укладчиками для чтения и перфорации, которые вмещали не более 800-1000 карт в каждом укладчике. Как правило, для считывания использовался только правый укладчик, а для перфорации – левый, поэтому наличие нескольких укладчиков не слишком помогало.
Если вы выполняли работу по печати данных на предварительно отпечатанных формах (особенно на многослойной или жесткой бумаге), вам приходилось уделять достаточно много времени контролю за работой укладчика 1403, чтобы убедиться, что формы не рассыпаются по полу, а не укладываются аккуратно в укладчик. Толстые формы, как правило, плохо укладываются, особенно если принтер совершает много высокоскоростных поворотов, что типично для форм.
Не показан блок памяти 1406, содержащий основную память. Модель 1401 оснащалась основной памятью объемом до 4К 8-битных символов; в модели 1406 объем памяти увеличивался до 8К, 12К или 16К (таким образом, в модели 1401, показанной выше, 4К).
Дисковый накопитель 1405 модели 1 имел емкость “10 млн. алфавитно-цифровых символов, хранящихся на 25 дисках” (platters). Модель 2 вмещала 20 млн. символов на 50 пластинах. Для доступа к каждой пластине используется свой манипулятор (головка чтения/записи). Это один из самых ранних серийных дисковых накопителей, прямой наследник оригинального дискового файла IBM 305, представленного вместе с компьютером RAMAC (RAndoM ACcess) в 1956 году. “Поточный метод обработки данных постоянно поддерживает записи предприятия в актуальном состоянии. Любая операция, затрагивающая бизнес, может быть обработана в момент ее совершения, и все записи и счета, которые она затрагивает, немедленно обновляются. Руководители организации в любой момент времени имеют доступ к информации, отражающей состояние любого счета на данный момент”.
Отдел анекдотов
От Боба Резникоффа, возможно, единственного человека, работающего здесь дольше меня*:
Кажется, я помню (хотя и не могу быть уверен), что мы использовали 1401 для обработки лент с печатающими устройствами 7090 (или 7094). Поскольку 7090 был “таким быстрым”, считалось, что использовать его для вывода на печать – пустая трата ресурсов. Поэтому печатный и перфорационный вывод записывался на ленту (четная четность для текста, нечетная для двоичного кода), которая затем обрабатывалась на 1401. Мне всегда нравился 1401; я помню, что он был довольно элегантным и экономным в использовании памяти (слов было столько, сколько нужно).
Это я…
Когда я служил в армии в Германии в середине 1960-х годов, в штабе 7-й армии в Штутгарте, в казармах Патч, у нас была передвижная установка 1401. Он находился в большом грузовом прицепе. Когда мы выезжали на маневры, он ехал с нами. Прицеп был прицеплен к полуторке, а к прицепу был прицеплен гигантский бензиновый генератор. Когда мы размещались в лесу или где-либо еще, борта прицепа раздвигались, и получался довольно большой машинный зал, заполненный перфораторами, верификаторами, 1401, ленточными накопителями, столами и т.д. Может быть, перфораторы и верификаторы находились в отдельном прицепе, сейчас это уже неясно. Я не был настолько возвышен, чтобы иметь непосредственное отношение к компьютеру, я занимался перфораторами и EAM (407, сортировщик и т.д.). Я понятия не имел, для чего все это используется, кроме того, что это называется информационно-командной системой управления (CCIS). В любом случае он выполнял свою работу, какой бы она ни была, неделями напролет в глубине Шварцвальда, в какой бы грязи мы ни копались.
В июле 2006 г. я услышал от Уэйда Харпера (Wade Harper), который в то же время работал в CCIS, следующие размышления:
Трудно поверить, что у нас было 12 E6 и 12 E7, 3 лейтенанта (Lt’s в оригинале) и 2 или 3 прапорщика (WO – Warrant Officer в оригинале) для программирования компьютера с памятью всего 8 Кбайт.
Да. Кстати, E6 и E7 – это разряды оплаты труда рядового состава. LT – лейтенант. WO – прапорщик, что находится между только что зачисленными на службу и офицерами. Уорент-офицеры обычно являются пилотами вертолетов. Военнослужащие (а это действительно были все мужчины), за одним исключением, были специалистами, а не NCO (noncommissioned officers, т.е. сержанты), т.е. они имели ту же зарплату, что и сержанты, но при этом им не нужно было командовать людьми. Я считаю, что это хорошая идея: продвигать людей по службе в зависимости от их навыков и результатов работы, позволяя им продолжать делать то, что они хорошо умеют, не заставляя их заниматься управлением. (По-видимому, армия отказалась от этой практики несколько лет назад.) Позже Уэйд объяснил, чем на самом деле занимался 1401-й в CCIS:
В полевых условиях 1041 был запрограммирован на систему MRS (Military Report System). Это была простая последовательная база данных на ленте. Один блок для каждого отчета. Каждое управление штаба представляло информацию в формате карточек, которые записывались на ленту и вводились в MRS. Мы практически ничего не могли запрограммировать, имея всего 8 Кбайт оперативной памяти. Каждый отчет должен был иметь одинаковый формат. Никаких индивидуальных расчетов. Однажды мы были в гостях, и Джоди Пауэрс подумал, нельзя ли как-то поместить на ленту 1 или 2 Кбайт кода с каждым блоком данных. Тогда мы могли бы индивидуализировать каждый отчет. В итоге мне удалось запрограммировать эту систему, и она работала очень хорошо. Мы также программировали вещи для работы в гарнизонах. У меня были все обычные боеприпасы в Европе. Сперлинг (поскольку он говорил по-немецки) и, по-моему, Джерри Кук разработали программу походных приказов (на случай войны). Других проектов я не помню. Мы обошли множество штабов батальонов, умоляя о работе. Я прослужил в армии 20 лет. Затем работал системным программистом на IBM 360/370 и других компьютерах, пока в 1996 году не ушел на пенсию. Мне повезло, что я научился программированию в армии.
_____________________________
- Написано до 2011 года, когда меня уволили. В течение еще нескольких лет Боб тоже после примерно 50 лет. Уходим со старым и приходим с новым!
Уроки джунглей
написано Гэри Х. Антес
30 марта 2005 года Гэри Антес прислал следующее сообщение: “Мой небольшой вклад в работу Общества почитателей 1401 и Ассоциации выпускников программистов-автокодеров – это прикрепленная колонка, которую я написал для Computerworld несколько лет назад. Наслаждайтесь”. [Computerworld, 20 августа 1990 г., Журнал менеджера, с.60. BYLINE: By Gary H. Anthes. Антес, корреспондент Computerworld в Вашингтоне, бывший лейтенант ВМС США, занимал должность помощника директора по обработке данных на складе снабжения ВМС в Да Нанге, Вьетнам].
Вражеские ракеты всегда прилетали ночью, но они не были хорошо нацелены и редко наносили большой ущерб. А когда моего приятеля укусила ядовитая змея, когда он укрывался в бункере во время “красной тревоги”, я решил оставаться в постели, когда появятся ракеты.
Но перед самым рассветом 24 февраля 1970 г. вьетконговцам повезло, и я узнал, что такое ликвидация последствий катастрофы.
Ракета, выпущенная откуда-то из вьетнамских джунглей, попала в склад снабжения ВМС США под Да Нангом, чудом не угодив в штабель из 6000 противотанковых мин. Взорвавшиеся мины пронеслись ударной волной по территории склада и сравняли с землей центр обработки данных, где я работал. Вторичные взрывы продолжались в течение 13 часов.
Когда я услышал грохот взрыва в своем лагере, расположенном в нескольких милях от меня, я сразу же подумал о сером кейсе, в котором хранились пять кассет, обновляемых каждый день и увозимых на случай, если компьютерную обработку придется перенести на аварийный объект ВМС на Филиппинах. Но кейса с резервными копиями данных не было на привычном месте у кровати – я забыл взять его с собой накануне вечером. С мыслями о военном трибунале я поехал на склад снабжения, чтобы помочь в уборке и восстановлении.
Хотя здание, в котором располагался вычислительный центр, обрушилось, компьютер IBM 1401 и целый ряд электромеханических перфокарт выглядели более или менее целыми, хотя и были покрыты тоннами пыли и обломков. А кейс с магнитными лентами лежал там, где я его оставил, и, судя по всему, не пострадал.
Вскоре на место происшествия прибыли два гражданских инженера IBM, и если они вообще спали в течение следующих нескольких дней, то этого не было заметно. Компьютер перевезли на неповрежденный склад, расположенный неподалеку, где Морские Пчелы (в оригинале Navy Sea Bees) круглосуточно работали над установкой фальшпола и кондиционера. Благодаря этим героическим усилиям и промышленным пылесосам IBM оборудование было очищено и вновь заработало в течение недели.
IBM 1401 – предшественник System 360 – обладал вычислительной мощностью и памятью, сравнимыми с современными аркадными играми, но при этом работал в три смены семь дней в неделю, отслеживая инвентаризацию 105 тыс. наименований товаров, поддерживая заявки на сумму 32 млн. долл. в месяц. Хотя компьютер и его приложения для контроля запасов были критически важны для выполнения задачи снабжения боевых подразделений ВМС, восстановление после аварии происходило настолько быстро, что руководство ВМС решило не отправлять меня на Филиппины с резервными лентами. Таким образом, я избежал военного трибунала и так и не узнал, превратились ли в результате взрывов биты на лентах в алфавитный суп.
Во всем этом есть несколько уроков для современного менеджера центра обработки данных, но ни один из них не имеет отношения к ракетам Вьетконга, противотанковым минам или ядовитым змеям. Во-первых, ожидайте неожиданностей. Во-вторых, иметь позолоченный контракт на обслуживание, подкрепленный преданными, компетентными людьми. И, наконец, если вам доверили ящик с резервными копиями, не уходите с работы без них.
Department of Corrections
Следующее сообщение было получено от Билла Ньюджента в марте 2005 года:
Говоря об объеме памяти, большинство людей понимают 4K, 12K, 16K как 4096, 12288 и 16384 слова. У IBM 1401 объем памяти составлял 4000, 8000, 12000 и 16000 слов. Возможно, стоит объяснить разницу. Кроме того, каждая ячейка памяти представляла собой слово, а не 8-битный символ. Один из битов был недоступен, так как являлся битом четности, а другой бит был Word Mark (WM), который отмечал начало инструкции (чтение вверх) и конец поля данных (чтение вниз через память).
Пятивыводные бункеры (укладчики) 1402 были очень полезной функцией. По умолчанию перфоратор сбрасывает карту в левый укладчик и, по выбору, во второй слева или средний укладчик. Считыватель по умолчанию сбрасывал карту в правый укладчик и, по желанию, во второй справа или средний укладчик. Я использовал множество программ и написал пару программ, которые по умолчанию считывали карты данных в центральный укладчик, если только карта не собиралась быть замененной, в этом случае она опускалась во второй справа укладчик, а перфоратор пробивал замену и опускал ее в центральный укладчик.
Одна из странностей 1401 заключалась в том, что считыватель карт считывал информацию по адресам с 001 по 080. При нажатии кнопки Load кардридер считывал первую карту, регистр I-Addr устанавливался в значение 001, поэтому выполнение начиналось с адреса 001 и, соответственно, начинался загрузчик (если вы хотите получить более подробное описание загрузчика, дайте мне знать). Перфоратор пробивал карты с адреса 101 по 180, а принтер печатал с 201 по 132, причем адрес 200 использовался для управления каналом (правая фраза).
Поскольку компьютер имел переменную длину слова, было легко написать программу, использующую арифметику переменной длины. Компьютер 1401 с дополнительной опцией умножения/деления мог умножать два десятичных числа 80 за 15 минут с помощью одной инструкции.
От Кита Уильямса, 1 мая 2006 г:
Я только что нашел ваши страницы о машине 1401 на сайте http://www.columbia.edu/cu/computinghistory/1401.html.
Это доставило мне большое удовольствие, поскольку я начал работать в IBM в октябре 1959 года, как раз во время анонса этой машины. 1401 был первым компьютером, который я знал, и, вероятно, единственным, который я глубоко понимал. Я научился программировать эту машину в 1960 году, а к 1961 году обучал этому других сотрудников IBM и программистов клиентов.
Считаю своим долгом исправить один небольшой факт, приведенный на Вашей странице. Автокодер не был первым языком программирования для 1401. Репертуар инструкций и система адресации памяти были достаточно просты, чтобы можно было кодировать простые процедуры на машинном языке, но первая программа на ассемблере была известна под названием SPS (Symbolic Programming System). Эта система программирования была анонсирована компанией IBM вместе с машиной.
Многие из ранних моделей 1401 (заменивших перфокарточные системы учета) состояли из процессора 1401, устройства чтения/перфорации карт 1402 и принтера 1403. В них не было ни ленточных, ни дисковых устройств, и, собственно говоря, эти устройства не фигурировали в первом анонсе. Автокодеру требовался ленточный или дисковый блок для обработки символьной программы с целью получения объектного кода. Автокодер был доступен сначала на модели 1410, а версия для 1401 появилась только в конце 1961 года.
До этого времени мы программировали 1401 на языке SPS (Symbolic Programming System). Ассемблерная программа SPS хранилась в стопке перфокарт. Символьная программа программиста также была напечатана на картах и размещалась за ассемблером SPS в стопке чтения 1402. При нажатии кнопки “Load” ассемблер SPS загружался в память ядра 1401 и сразу же считывал и обрабатывал символьную программу пользователя. Перевод осуществлялся в два этапа – сначала на перфораторе 1402 выбивалась частично переведенная программа. Затем эта частично переведенная программа снова подавалась на считывающую сторону 1402, и во время этого второго прохода на перфорированной стороне выбивалась полностью переведенная объектная программа.
Модель 1401 поставлялась с 5 различными объемами памяти ядра. Для практических “автономных” вычислений минимальный объем памяти составлял 4К символов, но можно было использовать конфигурации с 8, 12 или 16К памяти. Для систем, предназначенных для использования в качестве автономных принтеров для гораздо более мощных систем IBM 700/7000, минимальный объем памяти составлял 1,4К.
Чтобы уточнить слова Билла Ньюджента, следует отметить, что наименьшая адресуемая единица памяти в машинах серии 1400 называлась “символ” и состояла из восьми двоичных битов (физически – восьми ферритовых сердечников). Это был эквивалент того, что мы сейчас называем “байтом”, но этот термин вошел в обиход только после анонса машин третьего поколения (System /360). Как объясняет Билл, шесть битов использовались для кодирования символов в системе, известной как BCD, основанной на коде, использовавшемся в перфокартах IBM. Седьмой бит использовался как бит четности, а восьмой – как “знак слова”. Слово” в серии 1400 состояло из переменного числа последовательных позиций символов, в последней из которых был включен бит “Word Mark”. Поэтому эта машина называлась машиной с переменной длиной слова, в отличие от предшествующих ей моделей 709 и 650 с фиксированной длиной слова. Каждая инструкция машинного языка представляла собой “слово”, длина которого могла варьироваться в пределах 1, 4, 7 и 8 символов, причем последний из них имел метку слова. Слова данных, разумеется, имели совершенно разную длину и обрабатывались последовательно символ за символом до тех пор, пока не встречался знак слова.
More Stories…
От Карен Б. Маклафлин, 24 августа 2006 г:
Я была одним из первых программистов SPS, начав работать в Радиационной лаборатории Лоуренса (LRL) в 1961 году, только что окончив Калифорнийский университет в Беркли. Кит Уильямс прояснил много специфических моментов, которые я не смог распознать в других воспоминаниях, предшествовавших его вкладу. Его описания навеяли воспоминания о том, через что нам, программистам, приходилось проходить при тестировании и отладке, включая загрузку/выгрузку перфокарт и проверку правильности укладки бумаги. Никто не упомянул про перфорацию клавиш, а ведь это был еще один навык, который нам всем пришлось приобрести, поскольку персонал перфоратора был постоянно занят перфорацией карт данных, так как у нас не было ленточных накопителей. Важной особенностью 1401-го (и других компьютеров его эпохи) было то, что из-за отсутствия операционной системы любая ошибка могла быть отнесена к основной программе, что превращало отладку в относительно простой случай решения проблемы. С появлением операционных систем исправление ошибок становилось гораздо более сложным и трудоемким.
Еще один момент, связанный с 1401: консоль имела битовые переключатели, которые позволяли программисту динамически менять ядро, что давало возможность отладки “на лету” – при условии, что вы знаете Холлерита. Поскольку у программистов был всего один час в день для практического тестирования, это было очень полезно.
Дизайн программ должен был быть элегантным и экономным, использовать наложения и структуру еще до изобретения этого термина. Сегодня многие люди носят с собой КПК и сотовые телефоны, каждый из которых имеет больше памяти, чем первый компьютер, который мы использовали для обработки платежных ведомостей для более чем 5000 сотрудников LRL в Беркли и Ливерморе в 1968 году.
Я продолжал работать в области вычислительной техники, сталкиваясь с различными машинами, языками, проектами и названиями должностей, и в конце концов в 1999 г. вышел на пенсию после 25 лет работы в Лаборатории реактивного движения. С ликующим чувством избыточности, возможно, вызванным моим ранним опытом работы с 1401, я только что закончил сборку персонального компьютера с объемом памяти почти 500 Гбайт, что гораздо больше, чем я когда-либо смогу использовать.
За эти годы мне довелось побывать в удивительном и интересном месте, но я всегда считал, что программирование и работа с 1401 доставляют мне наибольшее удовольствие.
Роберт Н. Саммер, 21 мая 2007 г:
Прочитав статьи на вашем сайте, я хотел бы добавить следующее.
В 1962 году я поступил на работу в отдел компьютерных операций нью-йоркского здания Time/Life компании IBM в качестве оператора компьютера 1401.
В мои обязанности входило переносить все поступающие в центр компьютерные задания программистов на ленту с помощью спутника 1401. Это позволяло основным компьютерам (7090, 7040/44) обрабатывать задания без трудоемких функций ввода-вывода.
Нью-йоркский вычислительный центр был спутником главного вычислительного центра в Покипси (штат Нью-Йорк), поэтому вторая смена в Нью-Йорке отправляла в Покипси по телефонным линиям, называемым телеобработкой, переполненные задания, которые не могли быть обработаны в Нью-Йорке.
Поскольку нам нужно было уложиться в срок, а в Покипси необходимо было передать множество заданий, я складывал их в лоток для считывания карт, вмещавший до 3000 карт, нажимал кнопку “Пуск” на компьютере, и процесс перевода карт на ленту начинался. Когда происходила проверка считывающего устройства (считывающее устройство обнаруживало ошибку между щетками считывания и проверки), оператор должен был аккуратно удалить карты из бункера для считывания, чтобы сохранить целостность последовательности карт; удалить карты из верхней части лотка подачи считывающих устройств, чтобы оставшиеся на лотке карты можно было поднять вверх и промыть их в считывающем устройстве. Теперь оператор проверяет карту, на которой произошла ошибка, на предмет наличия веской причины для проверки считывателя. Если таковых не обнаруживалось, оператор заменял все карты в нужном порядке и запускал считыватель. Если ничего не произошло, то обработка карты на ленте продолжается. Если же на той же карте происходила повторная проверка считывающего устройства, то задание исключалось из потока заданий, о чем уведомлялся программист.
Однажды ночью считыватель, которому было поручено это задание, постоянно давал ложные проверки. Считыватель считывал пять или шесть карт и проверял следующую. После выполнения описанной выше процедуры считыватель считывал девять или десять карт и проверял следующую карту.
Я попросил своего руководителя пригласить инженера по работе с клиентами (CE) для проверки считывателя. Мне ответили, что CE несколько раз проверяли считыватель во время первой смены, но не смогли найти причину проверки считывателя. Примерно после двадцатой проверки считывателя, когда время поджимало, я поступил так, как поступил бы любой хороший американский мастер по ремонту “сделай сам”.
(Чтобы облегчить нагрузку от восьмичасовой смены на ноги, я купил пару ботинок с резиновой подошвой. Дизайн подошвы напомнил мне только что вспаханное поле с небольшими впадинами и острыми пиками, переходящими из стороны в сторону на каждом ботинке).
Если после проверки и обнаружения неисправностей он не работает, выбейте его! Именно так я и поступил. Отпечаток моего ботинка остался на двери комнаты 1401 из-за обычной пыли на белом кафельном полу в операционном зале.
Считыватель не давал сбоев до конца моей смены, считывая данные безупречно. Он работал и в третью смену, и в первую, а когда я вернулся на работу, мой отпечаток обуви все еще был на месте и получил множество благодарностей от моих коллег-операторов за починку считывателя.
Специалисты по работе с клиентами даже удивились моему решению. Печать оставалась несколько дней, но была удалена перед тем, как руководитель отдела по работе с клиентами и гости приехали на экскурсию в операционный отдел. Благодаря статьям на Вашем сайте и интересуясь, что будет сделано к 50-летию появления 1401, я переквалифицировался в программиста и написал небольшую утилиту для 1401 и на 95% уверен, что она будет работать, если ее ввести в 1401. Да, я играл на компьютере 1401, чтобы проверить программу, и да, было трудно перевести кодировку SPS в объектную таблицу, как мы называли ее в 1962 году, но я получил удовольствие. И это после 38-летней карьеры в области проектирования компьютерных систем IBM Main Frame, написания спецификаций, кодирования, отладки, тестирования и т.д.4
Комментарий…
4 июля 2007 г:
Эдвард Г. Нилгес
13A 6F 1F Wang Long Village
Юнг Шу Ван
Остров Ламма
ГОНКОНГ
Уважаемый Фрэнк:
Как бывший программист IBM 1401, отлаживавший компилятор объектного кода для Фортрана после того, как IBM прекратила поддержку 1401 в январе 1971 года, и самостоятельно открывший математику повышенной точности и новые формы арифметики с “модифицированным адресом”, я очень возмущен, читая о том, что армия имела средства для создания в лесу Германии “центра данных 1401”, а мой университет просил средства для обучения своих студентов.
Это связано с тем, что ЦОД 1401, скорее всего, ничего особенного не сделал и оказался пустышкой.
Я восхищаюсь трудолюбием и героизмом техников по обработке данных, которые восстановили 1401 в Да Нанге после ракетного обстрела вьетконговцами. Однако в то время, когда я изучал 1401, я маршировал против этой безумной войны, такой же безумной, как и война в Ираке сегодня, где, без сомнения, героизм, самопожертвование и тяжелая работа низких и негламурных военных специалистов тратятся впустую, чтобы офицеры в звании флагмана могли получить повышение, а худший президент в истории Америки мог притвориться мужчиной.
Мой непосредственный опыт работы в качестве специалиста по обработке данных в течение последующих тридцати лет заключался в том, что в Америке гражданский сектор систематически лишался времени и ресурсов на разработку эффективных и надежных систем для нужд человека, чтобы наш военно-промышленный комплекс мог тратить деньги на идиотские авантюры – от перевозки мейнфрейма в грузовике до “звездных войн”.
В январе 1972 г. я узнал о последствиях мачистских речей инженеров-клиентов IBM, которые учились мачистским речам, будучи призывниками, потому что один из них предъявил счет моему университету, университету, испытывавшему недостаток средств, поскольку Университет Рузвельта имел дурной вкус обучать людей из рабочего класса и цветного населения, за “исправление” компилятора IBM 1401 Fortran для работы на минимальной конфигурации памяти Рузвельта… путем использования недоступной памяти для перехода к подпрограмме, которая накладывалась на интерпретатор времени выполнения.
Это “исправление” никогда не тестировалось, но было с презрением брошено в адрес моего профессора математики, который всего лишь пытался дать студентам из рабочего класса и цветным студентам первое образование в области информатики, чтобы они могли конкурировать с богатыми детьми в Чикагском университете.
Инженер-заказчик даже не знал и, видимо, был не в курсе, что Университет Рузвельта оплачивал и имел дополнительное оборудование для выполнения умножения и деления в памяти. Я удалил его “исправление” и вставил правильную инструкцию умножения, и компилятор заработал и впоследствии использовался на занятиях.
Интеллектуальная любознательность и сексистские разговоры инженеров-заказчиков (которым, по их словам, нравилось работать в Рузвельт, потому что он уже тогда был старомодным, со стеклянным окном на Мичиган-авеню, пригодным для наблюдения за девушками) были частью и частью военной и корпоративной квазиэлиты, которая тогда и сейчас упорно “ведет” Америку к постоянной войне в Ираке (которая стала результатом провала интеллектуального любопытства по поводу того, есть ли у Саддама Хусейна ОМУ) и все большему числу американцев, мучающихся на работе и вне ее от информационных систем, созданных невежественными людьми, которые не обеспечивают их медицинским страхованием, которые не предоставляют ветеранам заслуженные ими льготы, которые не ведут точный учет их кредитной истории и делают их кредитную историю добычей криминального класса.
К 1972 году “Великое общество” Линдона Бейнса Джонсона и его проблеск надежды уже исчезли, в результате чего Университет Рузвельта и его студенты уже тогда были лишены возможности получать средства на образование и любые истинно человеческие нужды, поскольку в 1972 году на первый план вышла безумная кампания Никсона по бомбардировкам и дестабилизации правительства Чили.
Поэтому я участвовал в работе, работая по 12 часов в сутки, поддерживая систему IBM 1401 университета Рузвельта до тех пор, пока не появилась возможность ее модернизации. Я разработал набор программ и процедур для надежных вычислений, которые позволяли регистратору точно оценивать студентов, а казначею – платить сотрудникам, в эпоху, когда это означало кодирование на языке ассемблера SPS в основном, а компилятор Fortran был доступен для отчетов.
По этой причине я с ужасом наблюдаю, как военно-промышленный комплекс и отвергнутые им стареющие мужчины празднуют использование 1401 для убийства четырех миллионов человек во Вьетнаме. Я также официально (на сайте comp.risks) выражаю сомнение в том, что Музей компьютеров в Маунтин-Вью захвачен “железячниками” (и политическими консерваторами, которые неуместно вставляют пробушевские разглагольствования в технические сообщения), которые реконструируют 1401-й в аппаратной части, тратя тем самым дефицитные ресурсы и, возможно, восстанавливая токсичные технологии, тогда как Музей компьютеров мог бы представить гораздо больше “глубоких” технологий прошлого в программном моделировании.
Более подробно о моих первых приключениях с компиляцией на 1401 можно прочитать в моей книге о современной технологии. Это “Build Your Own Net Language and Compiler” (Apress 2004). Я по-прежнему убежден, что большинство программных и аппаратных усилий в Америке и тогда, и сейчас – это не серьезные технические и интеллектуальные начинания, а частные и государственные авантюры, призванные показать, что “все под контролем”… тогда как инциденты на Манхэттене в сентябре 2001 года и в Глазго на прошлой неделе показывают, что это совсем не так, и что извращение технологий для демонстрации силы (если не для прямого убийства, как в случае использования систем данных для отслеживания нашего уничтожения целей с воздуха) породило антиамериканизм, который сегодня является нормой в других странах.
Искренне
Эдвард Г. Нилгес
Ваш редактор отвечает с запозданием (2015 г.):
Армия США в Германии 1960-х годов была относительно безвредной. Конечно, это была большая трата денег и ресурсов, как и сама “холодная война”, но вреда от нее было не больше, чем от перебегающей дорогу случайной курицы. Как я ответил Эдварду в 2007 г. (у нас была длительная переписка), в 1965 г. “американское вторжение в Доминиканскую Республику стало для меня (еще подростка, но уже служившего в армии) настоящим открытием, и это произошло как раз тогда, когда Джонсон начал призывать во Вьетнам по 50 тыс. ребят в месяц. Я задумался: “В какой армии я служу?”. Я подал заявление об увольнении по собственному желанию и провел последний год службы в армии, ожидая, пока они решат, что делать с этим заявлением. В конце концов, мне было отказано, но к тому времени у меня оставалось всего несколько дней, и когда я вернулся в Штаты, я уже был готов к антивоенному движению (и следующему антивоенному движению, и следующему, и следующему…).
Сегодня мы видим результат послевоенных приоритетов Америки: большая часть Ближнего Востока в полном коллапсе, Мексика и Центральная Америка превратились в поля для убийств; экономика США в руинах, за исключением тех, кто находится на самом верху; наша политическая система стремится перечеркнуть все хорошее, что было достигнуто после прихода к власти Рузвельта; сама планета стремительно превращается в свалку токсичных отходов, тонущую в мертвом море. И это только короткий список. Так что я на стороне Эдварда, но это же сайт компьютерной ностальгии 🙂 Тем не менее, всегда полезно посмотреть на вещи в перспективе. (2021 дополнение: Если вы хотите узнать все о моей славной армейской карьере, вы можете прочитать об этом здесь).
Еще больше историй…
От Дэйва Брауна, 6 августа 2015 г:
Я с удовольствием прочитал вашу страницу о компьютере IBM 1401. Она навеяла воспоминания. Я помню, что инструкция автокодировщика “Store B-register”, кодируемая как “SBR”, заставляла процессор излучать очень короткий радиовсплеск, который мог быть принят транзисторным FM-радиоприемником, установленным на верхней части корпуса процессора. Поэтому существовали программы, которые воспроизводили рождественские гимны, выдавая SBR с частотой в секунду для каждой ноты. Принтер 1403 имел цепной привод букв, похожий на велосипедный, с 132 молоточками, которые ударяли по символам, когда они пролетали мимо. Одна из программ для проверки целостности цепи называлась “Chain Breaker”. Она печатала строку букв, в результате чего все 132 молоточка срабатывали одновременно, что создавало значительную нагрузку на цепь. Помню, что на принтере была ручка, позволявшая ускорять или замедлять синхронизацию молоточков в зависимости от количества печатаемых копий, иначе левая или правая сторона каждой буквы могла отсутствовать. Как и в случае с инструкцией SBR, существовали программы, которые использовали стрельбу молоточков для создания нот для исполнения рождественских песен. Моей любимой была “Маленький барабанщик”.
Фотографии и цитируемый текст в первом разделе: Из справочного руководства по системе обработки данных IBM 1401 A24-1403-x, любезно предоставленного Brent Radbourne, февраль 2003 г.
Ссылки на сайте оригинале:
Внешние ссылки (все валидно на 26 марта 2021):
- IBM 1401: The Mainframe, IBM 100th anniversary website (ibm.com/ibm/history/ibm100/), 1911-2011.
- 1401 Data Processing System (IBM)
- 1401s I Have Known (Tom Van Vleck).
- IBM 1401 Programming – Gutenberg eBook (2011)