Введение

Компьютерная операционная система CTSS была разработана в вычислительном центре MIT ("Comp Center"). CTSS впервые был продемонстрирован на модифицированном IBM 709 в ноябре 1961 года. Аппаратное обеспечение было заменено на модифицированный IBM 7090 в 1962 году, а затем на модифицированный IBM 7094, получивший название "голубая машина", чтобы отличать его от IBM 7094, используемого в проекте MAC. Регулярное обслуживание пользователей вычислительного центра MIT началось летом 1963 года и продолжалось до 1968 года. Второе развертывание CTSS на отдельном IBM 7094, полученном в октябре 1963 года ("красная машина"), использовалось на ранних этапах проекта MAC до 1969 года, когда "красная машина" была переведена в Центр обработки информации и работала до 20 июля 1973 года. CTSS работал только на этих двух машинах, однако существовали удаленные пользователи CTSS за пределами MIT, в том числе в Калифорнии, Южной Америке, Эдинбургском университете и Оксфордском университете.

История

Джон Бэкус сказал в летней сессии 1954 года в MIT, что "благодаря разделению времени большой компьютер можно использовать как несколько маленьких; для каждого пользователя потребуется станция ввода-вывода". Компьютеры того времени, такие как IBM 704, были недостаточно мощными для реализации такой системы, но в конце 1958 года вычислительный центр MIT тем не менее добавил ввод с клавиатуры пишущей машинки к своей 704 с намерением, чтобы программист или оператор могли "получать дополнительные результаты от машины в режиме разделения времени с другими программами, одновременно использующими машину". В июне 1959 года Кристофер Стречи опубликовал статью "Разделение времени в больших быстрых компьютерах" на конференции ЮНЕСКО по обработке информации в Париже, где он представил программиста, отлаживающего программу на консоли (например, телетайпе), подключенной к компьютеру, в то время как в компьютере одновременно выполнялась другая программа. Отладка программ была важной проблемой в то время, поскольку при пакетной обработке часто требовался целый день от подачи измененного кода до получения результатов. Джон Маккарти написал об этом служебную записку в MIT, после чего в MIT были созданы предварительное исследовательское и рабочее комитеты для разработки системы разделения времени. Комитеты предполагали, что компьютер будут использовать многие пользователи одновременно, определили детали реализации такой системы в MIT и приступили к разработке системы.

Экспериментальная система совместного использования времени

К июлю 1961 года несколько команд для организации совместного использования времени начали функционировать на IBM 709 вычислительного центра, а в ноябре 1961 года Фернандо Корбато продемонстрировал в MIT то, что называлось Экспериментальной системой совместного использования времени. 3 мая 1962 года Ф. Дж. Корбато, М. М. Даггет и Р. С. Дейли опубликовали статью об этой системе на Весенней объединенной компьютерной конференции. Роберт С. Дейли, Питер Р. Бос и как минимум 6 других программистов разработали операционную систему, частично основанную на системе Fortran Monitor. В системе использовался IBM 7090, модифицированный Гербертом М. Тигером, с добавлением 3 Flexowriter в качестве пользовательских консолей и, возможно, таймера. У каждого из 3 пользователей было два магнитных ленточных устройства: одно для файловой директории пользователя, а другое для сброса содержимого памяти (программы в памяти). Также было одно ленточное устройство для системных команд, дисковых накопителей не было. Объем памяти составлял 27 тысяч слов (36-битных слов) для пользователей и 5 тысяч слов для супервизора (операционной системы). Ввод данных с консолей записывался в буферы супервизора посредством прерываний, и когда получался символ возврата каретки, управление передавалось супервизору, который сбрасывал выполняющийся код на ленту и определял, что запускать следующим. В то время в консолях были реализованы команды login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump и xundump. Это стало исходной версией Совместимой системы совместного использования времени. По-видимому, это была первая публичная демонстрация организации совместного использования времени; существуют и другие заявления, но они относятся к специализированным системам или не имеют известных опубликованных работ. "Совместимость" CTSS обеспечивалась с фоновыми заданиями, выполняемыми на том же компьютере, которые обычно использовали больше вычислительных ресурсов, чем функции совместного использования времени.

DOTSYS и Брайлэмбосс

Первая версия программного обеспечения для перевода шрифтом Брайля DOTSYS работала в системе CTSS и могла выводить данные на печатное устройство BRAILLEMBOSS. DOTSYS в системе CTSS был впервые продемонстрирован 18 августа 1966 года в ходе исследования осуществимости, в рамках которого лента телетайпного набора, содержащая новости, была преобразована в шрифт Брайля 2-го уровня. В следующем месяце была успешно продемонстрирована возможность преобразования учебной информации с телетайпной ленты в шрифт Брайля 2-го уровня без ошибок. Поскольку MIT CTSS была академической системой, предназначенной для исследований, а не для коммерческих вычислений, через два года версия DOTSYS, освобожденная от зависимостей CTSS для обеспечения переносимости программного обеспечения, была использована на IBM 709 в Американском доме для слепых для печати первого издания книги шрифтом Брайля, созданного на основе телетайпного ввода, всего через несколько недель после выхода печатной версии. В следующем году в системе CTSS была продемонстрирована печать математических таблиц шрифтом Брайля. Для создания таблицы преобразования из дюймов в миллиметры шрифтом Брайля через печатное устройство BRAILLEMBOSS была написана короткая программа на FORTRAN II.

Интрекс

Система поиска Intrex работала на CTSS. Intrex представлял собой экспериментальную пилотную систему машинного хранения и поиска библиографической информации с базой данных, содержащей каталог примерно 15 000 журнальных статей. Он использовался для разработки и тестирования концепций автоматизации библиотечного дела. В ходе тестирования в инженерной библиотеке MIT было установлено, что три консоли BRISC CRT предпочтительнее двух других систем – ARDS и DATEL.

Особенности

Оригинальная ELIZA работала на CTSS. CTSS обладал одной из первых компьютеризированных утилит для редактирования и форматирования текста, называвшихся TYPSET и RUNOFF (последователями MEMO, MODIFY и DITTO). CTSS был одной из первых реализаций межпользовательских сообщений, положив начало электронной почте. CTSS включал одну из первых систем мгновенного обмена сообщениями, аналогичную программе write. Сотрудник вычислительного центра MIT Луи Пузин разработал для CTSS команду RUNCOM, которая выполняла список команд, содержащийся в файле. В CTSS была реализована текстовая редактор QED, предшественник ed, vi и vim, с регулярными выражениями, добавленными Кеном Томпсоном.

Ядра

CTSS использовал модифицированный мейнфрейм IBM 7090, который имел два банка основной памяти объемом 32 768 (32K) 36-битных слов вместо стандартной конфигурации, предусматривающей только один банк. Один банк был зарезервирован для надзорной программы совместного использования времени, а другой – для пользовательских программ. CTSS имело ядро с защищенным режимом; функции супервизора в банке памяти A (ядре A) могли вызываться только программными прерываниями, как в современных операционных системах. Прерывания защиты памяти использовались для программных прерываний, а также для обработки прерываний по таймеру и перехвата определенных инструкций. Система поддерживала до 112 телетайпных терминалов, подключенных через управляющий блок передачи IBM 7750, включая IBM 1050 Selectric и Model 35. Часть терминалов находилась удаленно, и к системе можно было получить доступ по общедоступным сетям Telex и TWX.

Влияния

CTSS был описан в докладе, представленном на Весенней совместной компьютерной конференции 1962 года, и оказал значительное влияние на разработку других ранних систем разделения времени. Морис Уилкс был свидетелем работы CTSS, и дизайн Titan Supervisor был вдохновлен ею. Деннис Ричи писал в 1977 году, что UNIX можно рассматривать как «современную реализацию» CTSS. Multics, также разработанный Project MAC, был начат в 1960-х годах как преемник CTSS и, в свою очередь, вдохновил на разработку Unix в 1969 году. Один из технических терминов, унаследованных этими системами от CTSS, – демон. Система совместного использования времени (ITS), другая ранняя, революционная и влиятельная система разделения времени MIT, была создана людьми, не согласными с направлением развития CTSS, а затем и Multics; название было пародией на "CTSS", как впоследствии название "Unix" стало пародией на "Multics". Файловые системы CTSS и ITS имеют ряд общих конструктивных элементов. Обе имеют M.F.D. (главный каталог файлов) и один или несколько U.F.D. (пользовательские каталоги файлов). Ни одна из них не поддерживает вложенные каталоги (подкаталоги). В обеих файловые имена состоят из двух имен, каждое из которых не превышает шести символов. Обе поддерживают связанные файлы.