воскресенье, 20 декабря 2020 г.

Microsoft и PDP-10

DEC PDP-6

Первым компьютером, который можно отнести к описываемому семейству, можно считать компьютер PDP-6, выпущенный в 1964 году. Его машинное слово имело ширину в 36 бит. Всего было продано 23 экземпляра этого компьютера - наименьший показатель за всю историю Digital Equipment Corporation.

DEC PDP-10 или DECsystem-10

Как и свой предшественник, компьютер PDP-10 имел длину машинного слова 36 бит. Позже компьютер был переименован в DECsystem-10.

Операционные системы

Для компьютеров этой архитектуры существовало несколько операционных систем:
  • TOPS-10 - операционная система, поставлявшаяся DEC в комплекте с компьютером. Первоначально называлась "Монитор", была основана на системе WAITS (West-coast Alternative to ITS - альтернатива ITS с западного побережья) Стэндфордского университета и системе CompuServe с разделением времени. Заказчикам компьютеров были доступны исходные тексты системы, поэтому некоторые заказчики заменяли в ней отдельные компоненты, например, планировщик задач или дисковую подсистему, на свои собственные.
  • TENEX - операционная система, разработанная компанией BBN (Bolt Beranek and Newman, в последующем - BBN Technologies). Главным разработчиком этой системы стал Дэниел Боброу. Кен Томпсон, автор операционной системы Unix, как-то заметил, что если бы Боброу разрабатывал операционную систему для PDP-11, а сам Томпсон для PDP-10, то повсеместное распространение получила бы именно система Боброу, а не Томпсона.
  • ITS (Incompatible Timesharing System - несовместимая система разделения времени) - операционная система, разработанная в Массачусетском технологическом институте (MIT - Massachusetts Institute Of Technology). Названа в противоположность CTSS (Compatible Time-Sharing System - совместимая система разделения времени) для компьютеров IBM 7094. CTSS тоже была разработана в Массачусетском технологическом институте, стала идейным вдохновителем многих других операционных систем с разделением времени, среди которых можно назвать не только ITS, но и MULTICS, а также потомка MULTICS - UNIX.
  • TOPS-20 - значительно улучшенная DEC операционная система TENEX. Поставлялась вместе с компьютерами серии DECSYSTEM-20, совместимых с серией DECSYSTEM-10.
Операционная система TOPS-10 поддерживала разделяемую память. Это позволило реализовать первую многопользовательскую компьютерную игру DECWAR и программу для общения между пользователями FORUM, на основе которой был создан CompuServe. В комплекте с операционной системой поставлялся ассемблер MACRO-10, а также компиляторы и интерпретаторы нескольких языков программирования: Алгол, APL, Бейсик, Кобол, Фортран.

Хронология выпусков TOPS-10:
  • 1964 - первый выпуск программы "Монитор" для PDP-6.
  • 1967 - выпуск 2.18, в котором была добавлена поддержка процессора KA10 для PDP-10.
  • 1970 - выпуск 5.01, впервые было использовано название TOPS-10.
  • Май 1974 - выпуск 6.01, впервые реализована виртуальная память, что позволило загружать программы, размер которых был больше размера физической памяти.
  • 1988 - выпуск 7.04, ставший последним. В версии 7.00, выпущенной до этого была добавлена поддержка симметричной многопроцессорности.
Операционная система TOPS-20 выпускалась с 1976 года по июнь 1988 года. Последний выпуск этой операционной системы имел номер 7.1.

CompuServe и Microsoft

Компания CompuServe была основана в 1967 году. Первоначально зарабатывала на предоставлении доступа по телефонной сети к своим компьютерам для организаций. В дальнейшем стала продавать доступ к своим компьютерам частным лицам. Видимо, в начале 1970-х годов компании, подобные AOL и CompuServe, предоставляющие платный доступ к большому компьютеру по телефонной сети, были распространены. В одной из таких компаний, называвшейся Computer Center Corporation, Билл Гейтс и Пол Аллен и познакомились с этим компьютером.

Первым персональным компьютером считается компьютер Altair-8800, разработанный инженером Эдом Робертсом. Этот компьютер имел модульную архитектуру: на материнской плате компьютера имелась шина S-100, к шине подключался процессорный модуль. В остальные разъёмы можно было вставлять платы сторонних производителей: терминальный модуль для подключения монитора и клавиатуры, платы дополнительной оперативной памяти, адаптеры портов ввода-вывода и т.п.

Чтобы компьютер был востребованным среди потенциальных покупателей, его нужно было снабдить программным обеспечением - не каждый покупатель горел желанием писать программное обеспечение в машинных кодах. Билл Гейтс вовремя обнаружил пустующую рыночную нишу и решил разработать и предложить Эду Робертсу интерпретатор языка программирования Basic за процент с продаж компьютеров.

Интерпретатор языка программирования Basic для компьютера Altair-8800 был разработан в Microsoft именно на компьютере PDP-10. Пол Аллен написал кросс-ассемблер и эмулятор процессора Intel 8080 для PDP-10, благодаря чему Билл Гейтс смог написать и отладить свой интерпретатор для компьютера Altair-8800, который они видели лишь на обложках журналов. Впервые воочию Altair-8800 увидел Пол Ален, когда привёз префоленту с готовым интерпретатором Basic Эду Робертсу.
До 1994 Microsoft общалась с пользователями через форумы CompuServe. С появлением компьютера Tandy Model 100 со встроенным модемом сервис CompuServe приобрёл популярность.

В конечном итоге CompuServe не выдержала конкуренции с America Online, поскольку её сервисы были текстовыми, а оплата - повременной. AOL же предоставляла доступ к графическим сервисам за фиксированную абонентскую плату.

DEC DECsystem-20

В 1977 году серию DECsystem-10 продолжила серия компьютеров DECsystem-20. Как уже было написано выше, эти компьютеры поставлялись с операционной системой TOPS-20 - наследнице системы TENEX Дэниэла Боброу. Одну из моделей линейного ряда этих компьютеров, DECSYSTEM-2020, можно увидеть на фотографиях в офисе Microsoft:

Тут можно увидеть внутренности этого компьютера:

XKL TOAD-1 и TOAD-2

В 1993 году фирмой XKL был выпущен компьютер TOAD-1, совместимый с компьютерами серий DECsystem-10 и DECsystem-20. Название системы является акронимом от Ten On A Desk, что можно перевести на русский язык как "настольная десятка". На фотографии ниже это синий ящик размерами со стол:

На фотографии справа от TOAD-1 можно увидеть компьютер TOAD-2 на подставке - это новая модель компьютера TOAD-1, реализованная в виде одной микросхемы. Насколько я понял, этот компьютер используется в качестве сетевого оборудования.

воскресенье, 13 декабря 2020 г.

Брайан Керниган. Время Unix. A History and a Memoir

Недавно в издательстве "Питер" вышел перевод книги "Время Unix" Брайана Кернигана, не нуждающегося в представлении. Керниган работал в исследовательских лабораториях Белла компании American Telephone & Telegraph - американского монополиста в области телефонной и телеграфной связи. При участии Брайана Кернигана было написано несколько книг, которые без преувеличения стали культовыми для программистов и поклонников операционной системы Unix.

Например, в моей домашней библиотеке есть такие книги, написанные специалистами Bell Labs, большинство из которых написано в соавторстве с Брайаном Керниганом:
Историю Unix в общих чертах и имена ключевых участников я знал и до этой книги. В основном мои знания были почерпнуты из книги "Unix: Программное окружение". Эту книгу я прочитал ещё в советском издании, взяв её в университетской библиотеке. Тот её перевод назывался "Unix: Универсальная среда программирования". В частности, я знал, что язык Си придумал Денис Ритчи, язык этот развивал идеи языка Би Кена Томпсона, а язык Би в свою очередь был основан на языке BCPL, автора которого я не знал. Кен Томпсон является автором операционной системы Unix. Автором идеи конвейеров был Дуг МакИлрой. Первая буква фамилии Брайана Кернигана фигурирует в названии языка AWK, наряду с Ахо и Вайнбергером.

Операционная система Unix была создана в качестве ответа на более раннюю и более сложную систему Multics, разработкой которой руководил Виктор Высоцкий. Система Multics разрабатывалась совместно в Bell Labs и General Electrics, писалась система на языке PL/1. AT & T решили выйти из проекта, т.к. разработка системы Multics затягивалась и перспективы её становились всё менее понятными.

Первые версии Unix были написаны на ассемблере для компьютера PDP-7 и использовались в Bell Labs для подготовки к печати патентных заявок. Под эти нужды руководство согласилось приобрести новый, более мощный компьютер PDP-11. Четвёртая редакция Unix была переписана для новых компьютеров уже на языке Си. Первой редакцией, вышедшей за пределы Bell Labs, стала шестая редакция. Официально AT & T не занималась разработкой программного обеспечения, поэтому исходные тексты передавались университетам за символическую плату, а индивидуальным покупателям - по договорной цене 20000 долларов.

В книге рассказано об истории возникновения многих известных инструментов: diff, grep, sed, awk, make, yacc, lex. Рассказано об одном из первых портирумых компиляторов Си - pcc, об инструменте проверки программ lint, о языках разметки roff, troff, nroff, eqn, pic, рассказано об истории появления в интерпретаторе shell условного оператора if, операторов цикла for и while, оператора выбора case.

Когда Unix приобрела популярность в университетах, недавние выпускники устраивались на работу и хотели продолжать пользоваться привычной системой. Так появился коммерческий спрос на Unix. После этого AT & T передала разработку Unix в отдельное подразделение и некоторое время в компании велась разработка сразу двух версий операционной системы. Одна из них разрабатывалась в Bell Labs и более известна как исследовательская Unix, вторая была коммерческой и разрабатывалась в специально созданном подразделении Unix System Laboratories. Последней редакцией исследовательской Unix стала 10.5, вышедшая в конце 80-х годов. После этого авторы Unix переключились на разработку новой операционной системы Plan 9, развивавшей идеи Unix.

Об этом не написано в книге, но мне кажется, что инициатива разработки Unix была перехвачена у их авторов задолго до коммерциализации Unix. Основные новации в Unix стали вноситься разработчиками из Калифорнийского Университета в Беркли, самым известным из которых был Билл Джой. В системе 3BSD появилась поддержка виртуальной памяти на компьютерах VAX. В 4.2BSD появилась поддержка сети TCP/IP, которую и сейчас часто называют сокетами BSD. Реализация сокетов BSD распространялась в исходных текстах отдельно от самой системы под названием Net/1, т.к. для использования всей операционной системы BSD по-прежнему требовалась лицензия от AT & T. Кейт Бостик организовал переписывание компонентов всей операционной системы, чтобы избежать необходимости приобретать лицензию у AT & T. Получившаяся система была выпущена под названием Net/2. Вильям Джолиц перенёс Net/2 на компьютеры с процессором Intel 386 и выпустил операционную систему 386BSD, внеся в неё ряд собственных доработок. На основе этой системы двумя независимыми группами была начата разработка систем NetBSD и FreeBSD. Последней системой, выпущенной в Беркли в 1994 году, стала 4.4BSD-Lite Release 2. От систем NetBSD и FreeBSD отделились проекты OpenBSD и DragonFly BSD соответственно.