Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Совместимость Time-Sharing System ( CTSS ) был один из первых по времени распространения операционных систем ; он был разработан в вычислительном центре Массачусетского технологического института . CTSS была впервые продемонстрирована на IBM 709 Массачусетского технологического института в ноябре 1961 года; обслуживание пользователей Массачусетского технологического института началось летом 1963 года и продолжалось до 1973 года. [1] В течение части этого времени влиятельный проект MAC Массачусетского технологического института также выполнял службу CTSS, но система не распространилась за пределы этих двух сайтов.

CTSS был описан в документе, представленном на Весенней совместной компьютерной конференции 1962 года , и сильно повлиял на разработку других ранних систем с разделением времени.

Экспериментальная система разделения времени [ править ]

Джон Бэкус сказал на летней сессии 1954 года в Массачусетском технологическом институте, что «при разделении времени большой компьютер можно использовать как несколько маленьких; для каждого пользователя должна быть станция чтения». [2] Компьютеры в то время, такие как IBM 704 , были недостаточно мощными для реализации такой системы, но в конце 1958 года вычислительный центр Массачусетского технологического института, тем не менее, добавил к своему 704 вход пишущей машинки с намерением, чтобы программист или оператор мог «получить дополнительные ответы от машины на основе разделения времени с другими программами, использующими машину одновременно ". [3]

В июне 1959 года Кристофер Стрейчи опубликовал на конференции ЮНЕСКО по обработке информации в Париже доклад «Разделение времени в больших быстрых компьютерах» , в котором он представлял, как программист отлаживает программу на консоли (например, телетайп ), подключенной к компьютеру, а другую программу одновременно работал на компьютере. [4] [5] Отладка программ была важной проблемой в то время, потому что при пакетной обработке часто уходил день от отправки измененного кода до получения результатов. Джон Маккартинаписал меморандум об этом в Массачусетском технологическом институте, после чего в Массачусетском технологическом институте были созданы комитет по предварительным исследованиям и рабочий комитет, чтобы разработать разделение времени. Комитеты предполагали, что многие пользователи будут использовать компьютер одновременно, определили детали внедрения такой системы в Массачусетском технологическом институте и начали разработку системы.

К июлю 1961 года [6] на вычислительном центре IBM 709 было введено в действие несколько команд разделения времени, а в ноябре 1961 года Фернандо Дж. Корбато продемонстрировал в Массачусетском технологическом институте так называемую «Экспериментальную систему разделения времени». 3 мая 1962 г. Ф. Дж. Корбато, М. М. Даггетт и Р. К. Дейли опубликовали доклад об этой системе на Весенней совместной компьютерной конференции . [7] Роберт С. Дейли, Питер Р. Бос и по крайней мере 6 других программистов реализовали операционную систему, частично основанную на системе мониторинга Fortran.

В системе использовался IBM 7090 , модифицированный Гербертом М. Тигером , с добавленными 3 Flexowriters для пользовательских консолей и, возможно, таймером . У каждого из трех пользователей было по два ленточных накопителя : один для файлового каталога пользователя, а другой для выгрузки ядра (программы в памяти). Также был один ленточный накопитель для системных команд, дисководов не было. Памяти были 27 K слов (36-битные слова) для пользователей, и 5 к словам для диспетчера (операционной системы). Входные данные с консолей записывались в буферы супервизора с помощью прерываний и когда возвращаемый символбыл получен, управление было отдано супервизору, который выгружал работающий код на ленту и решал, что запускать дальше. В то время были реализованы консольные команды login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump и xundump .

Это стало первой версией Совместимой системы разделения времени. Очевидно, это была первая публичная демонстрация разделения времени ; есть и другие утверждения, но они относятся к системам специального назначения или к не опубликованным известным статьям. «Совместимость» CTSS заключалась в том, что фоновые задания выполнялись на одном компьютере, который обычно использовал больше вычислительных ресурсов, чем функции разделения времени.

Особенности [ править ]

  • В CTSS была одна из первых компьютерных утилит форматирования текста под названием RUNOFF (преемница DITTO).
  • У CTSS была одна из первых реализаций межпользовательского обмена сообщениями, возможно, изобрела электронную почту . [8]
  • Сотрудник вычислительного центра Массачусетского технологического института Луи Пузен создал для CTSS команду RUNCOM , которая выполняла список команд, содержащихся в файле. (Позже он создал дизайн оболочки Multics, который был реализован Глендой Шредер, который, в свою очередь, вдохновил сценарии оболочки Unix .) RUNCOM также допускал замену параметров.
  • В CTSS был текстовый редактор QED , предшественник ed , vi и vim , с регулярными выражениями, добавленными Кеном Томпсоном .
  • CTSS была первой компьютерной системой, реализовавшей вход по паролю. [9] [10]

Реализация [ править ]

Ядро [ править ]

CTSS использовали модифицированный IBM 7090 ЭВМ , что было два 32768 (32K) 36-битового слова банки оперативной памяти вместо нормальной. [11] Один банк был зарезервирован для программы надзора за разделением времени, другой - для пользовательских программ. У CTSS было ядро ​​защищенного режима, функции супервизора в A-ядре (банк памяти A) могли вызываться только программными прерываниями, как в современных операционных системах. Вызывающие прерывания защиты памяти использовались для программных прерываний. [4] Планирование распределения процессоров с квантовой единицей времени 200 мс контролировалось многоуровневой очередью обратной связи . [11] У него также было специальное оборудование для управления памятью, прерывание часов и способность перехватывать определенные инструкции.

Подпрограммы супервизора [ править ]

  • RDFLXA - считывает строку ввода с консоли
  • WRFLX - записать строку вывода в консоль
  • DEAD - перевод пользователя в мертвый статус, без программы в памяти
  • DORMNT - перевод пользователя в неактивный статус, с программой в памяти
  • GETMEM - получить размер выделенной памяти
  • SETMEM - установить размер выделения памяти
  • TSSFIL - получить доступ к системным файлам CTSS на диске
  • USRFIL - вернуться в собственный каталог пользователя
  • GETBRK - Получить счетчик расположения инструкций при выходе

Языки программирования [ править ]

В CTSS сначала были только ассемблер FAP и компилятор MAD . Кроме того, код Fortran II можно было преобразовать в код MAD. Позже половина системы была написана на MAD. Позже появились другие языки программирования, такие как LISP и версия ALGOL .

Файловая система [ править ]

У каждого пользователя был свой собственный каталог , а также были общие каталоги для групп людей с одним и тем же «номером проблемы». У каждого файла было два имени, второе указывало его тип, как и расширение в более поздней системе. Сначала каждый файл мог иметь один из четырех режимов: временный, постоянный, только для чтения, класс 1 и только для чтения, класс 2. Доступный только для чтения класс 1 позволял пользователю изменять режим файла. Файлы также могут быть символически связаны между каталогами. Список каталогов по listf :

10 ФАЙЛОВ 20 ИСПОЛЬЗОВАННЫХ ТРЕКОВДАТА НАЗВАНИЕ № РЕЖИМА. ДОРОЖКИ20.05.63 MAIN MAD P 1517.05.63 DPFA SYMTB P 117.05.63 DPFA BSS P 117.05.63 ДПФА ФАП П 2

Подпрограммы управления диском [ править ]

  • .DUMP - Выгрузить непрерывный блок в файл
  • .LOAD - загрузить непрерывный блок из файла
  • .ASIGN - Подготавливает файл к записи.
  • .APEND - подготавливает файл к добавлению.
  • .SEEK - Подготавливает файл к чтению.
  • .RELRW - Подготавливает файл к чтению и записи.
  • .WRITE - записывать данные в относительное место в файле.
  • .READK - читать данные из относительного места в файле
  • .FILE - Прекратить запись файла
  • .ENDRD - Прекратить чтение файла
  • .DLETE - Удалить файл
  • .RENAM - переименовать файл и изменить его режим.
  • .FILDR - Получить копию каталога пользовательских файлов.
  • .FSTAT - получить информацию о файле

Консольные команды [ править ]

  • логин - Авторизация в системе
  • logout - выйти из системы
  • listf - Список файлов в каталоге
  • input - входной исходный код, строки фиксированного размера
  • edit - редактировать исходный код в стиле BASIC с номерами строк
  • printf - Распечатать файл, начиная с номера строки
  • fap - ассемблер FAP
  • mad - MAD компилятор
  • madtrn - Переводчик Fortran II в MAD
  • load - Загрузить двоичные файлы (связывание в памяти)
  • use - Загрузить недостающие двоичные файлы
  • start - запустить программу, загруженную в память.
  • save - Сохранить программу в памяти в файл
  • возобновить - загрузить сохраненную программу и возобновить ее выполнение
  • pm - Получить посмертную информацию о программе в памяти
  • патч - Редактировать память
  • tra - Создать перенос в относительное место в программе
  • stopat - Создать передачу, чтобы остановить программу в определенном месте
  • rename - переименовать файл
  • chmode - изменить режим файла
  • delete - Удалить файл с подстановочными знаками *
  • split - Разделить файл
  • combin - Объединение файлов, а также двоичных файлов, создание библиотек
  • cpu - Получить текущее состояние машины
  • octlk - Печать памяти
  • памятка - входные текстовые файлы, строки переменного размера
  • изменить - редактировать текстовые файлы, аналогично редактированию
  • то же самое - печатать текстовые файлы с форматированием (сноски, страницы)

Периферийные устройства [ править ]

Аппаратные средства ввода-вывода были в основном стандартными периферийными устройствами IBM . К ним относятся шесть каналов данных, подключенных к:

  • Принтеры, устройства для чтения перфокарт и перфораторы
  • Ленточные накопители IBM 729 , дисковое хранилище IBM 1301 , позже модернизированное до IBM 1302 с емкостью 38 миллионов слов
  • IBM 7320 барабан памяти с 186K слов , которые могли бы загрузить банк памяти в 32K слов в одну секунду (позже повышен до 0,25 секунд)
  • Два настраиваемых дисплея с высокоскоростной векторной графикой
  • Блок управления передачей IBM 7750, способный поддерживать до 112 терминалов телетайпа , включая IBM 1050 Selectrics и Teletype Model 35s. Некоторые терминалы были расположены удаленно, и доступ к системе можно было получить через общедоступные сети Telex и TWX .

Влияния [ править ]

Multics , который также был разработан Project MAC, был начат в 1960-х годах как преемник CTSS - и, в свою очередь, вдохновил разработку Unix в 1969 году. Одним из технических терминов, унаследованных этими системами от CTSS, является демон .

Несовместимая система разделения времени (ITS), еще одна ранняя, революционная и влиятельная система разделения времени MIT, была создана людьми, которые не соглашались с направлением, принятым CTSS, а затем Multics; название было пародией на "CTSS", так как позже название "Unix" было пародией на "Multics". [12]

См. Также [ править ]

  • Хронология операционных систем
  • Развитие системы разделения времени

Ссылки [ править ]

  1. ^ Совместимая система разделения времени (1961-1973): Обзор памятной даты пятидесятилетия , Дэвид Уолден и Том Ван Флек (редакторы), IEEE Computer Society, 2011
  2. ^ Backus, Джон, Компьютер Advanced Coding методы Архивировано 2018-09-29 в Wayback Machine , MIT 1954, стр 16-2. Первое известное описание компьютерного разделения времени.
  3. ^ Отчет о ходе Номер 4 из научной и образовательной деятельности машиноведения вычислений сотрудничающих колледжами Новой Англии , декабрь 1958 года,
  4. ^ a b Ф. Дж. Корбато и др., Совместимая система разделения времени Руководство программиста (MIT Press, 1963) ISBN  978-0-262-03008-3 . Опишите систему и ее команды
  5. ^ Джон Маккарти, Воспоминания об истории разделения времени, заархивированные 2007-10-20 в Wayback Machine (Стэнфордский университет, 1983).
  6. ^ Отчет о прогрессе номер 9 исследований и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии , июль 1961 г.
  7. ^ FJ Corbató, MM Дэггет, RC Daley, Экспериментальный Time-Sharing System архивации 2009-09-06 в Wayback Machine (IFIPS 1962).
  8. ^ Том Ван Флек мемуар «е годы История электронной почты
  9. Макмиллан, Роберт (27 января 2012 г.). «Первый в мире компьютерный пароль? Он тоже был бесполезен» . Проводной журнал . Проверено 22 марта 2019 . CS1 maint: обескураженный параметр ( ссылка )
  10. Хант, Трой (26 июля 2017 г.). «Эволюция паролей: руководство по аутентификации в современную эпоху» . Проверено 22 марта 2019 . CS1 maint: обескураженный параметр ( ссылка )
  11. ^ а б Зильбершатц, Авраам; Петерсон, Джеймс Л. (июнь 1988 г.). «13: Историческая перспектива». Понятия операционной системы . п. 514. ISBN 0-201-18760-4.
  12. ^ Леви, Стивен (2010). «Победители и проигравшие». Хакеры: Герои компьютерной революции - 25-летие издания (1-е изд.). Севастополь, Калифорния: O'Reilly Media. С. 85–102. ISBN 978-1449388393.

Дальнейшее чтение [ править ]

  • Фано, Роберт М. (1964). «Система MAC: отчет о проделанной работе» (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . MIT Project MAC.
  • Зальцер, Джером Х. (1965). «Технические комментарии CTSS» (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . MIT Project MAC.
  • Зальцер, Джером Х. (1964). «Набор и редактирование рукописей» . Web.MIT.edu . Вычислительный центр Массачусетского технологического института.

Внешние ссылки [ править ]

  • Экспериментальная система разделения времени , Фернандо Дж. Корбато, Марджори Мервин Даггетт, Роберт С. Дейли, вычислительный центр, Массачусетский технологический институт, Кембридж, Массачусетс
  • Совместимая система с разделением времени (1961-1973): обзор памятной даты пятидесятилетия
  • Устное историческое интервью с Джоном Маккарти , Институт Чарльза Бэббиджа , Университет Миннесоты. Обсуждает компьютерные разработки в Массачусетском технологическом институте, включая разделение времени.
  • IBM 7094 и CTSS : личные воспоминания Тома Ван Влека , системного программиста по CTSS
  • The Origin of the Shell описывает эволюцию RUNCOM в современную оболочку.
  • Источник CTSS в коллекции Пола Пирса.
  • ИТ-директор: 40 лет Multics, 1969–2009 : Интервью с разработчиком CTSS и Multics Фернандо Дж. Корбато.
  • Устное историческое интервью с Фернандо Дж. Корбато , Институт Чарльза Бэббиджа , Университет Миннесоты. Обсуждает многие компьютерные разработки Массачусетского технологического института, включая CTSS.
  • Устное интервью истории с Робертом М. Фано , Институт Чарльза Бэббиджа , Университет Миннесоты. Обсуждает компьютерные разработки Массачусетского технологического института, включая CTSS.
  • Поддержка IBM 7094 Дэйва Питтса - включает симулятор, кросс-ассемблер и компоновщик, которые можно использовать для сборки и запуска CTSS. Сайт также содержит исходный код CTSS. CTSS полностью работает на симуляторе.