Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Май 2019 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчик | Вычислительный центр Массачусетского технологического института |
---|---|
Написано в | Сборка FAP, MAD |
Рабочее состояние | Снято с производства, доступен симулятор |
Исходная модель | Открытый источник |
Первый выпуск | 1961 |
Маркетинговая цель | Только MIT |
Доступно в | английский |
Платформы | IBM 7090 , IBM 7094 |
Тип ядра | Монолитный , защищенный |
Пользовательский интерфейс по умолчанию | Интерфейс командной строки |
Лицензия | ? |
Официальный веб-сайт | www |
История операционных систем мэйнфреймов IBM |
---|
Совместимость 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]
См. Также [ править ]
- Хронология операционных систем
- Развитие системы разделения времени
Ссылки [ править ]
- ^ Совместимая система разделения времени (1961-1973): Обзор памятной даты пятидесятилетия , Дэвид Уолден и Том Ван Флек (редакторы), IEEE Computer Society, 2011
- ^ Backus, Джон, Компьютер Advanced Coding методы Архивировано 2018-09-29 в Wayback Machine , MIT 1954, стр 16-2. Первое известное описание компьютерного разделения времени.
- ^ Отчет о ходе Номер 4 из научной и образовательной деятельности машиноведения вычислений сотрудничающих колледжами Новой Англии , декабрь 1958 года,
- ^ a b Ф. Дж. Корбато и др., Совместимая система разделения времени Руководство программиста (MIT Press, 1963) ISBN 978-0-262-03008-3 . Опишите систему и ее команды
- ^ Джон Маккарти, Воспоминания об истории разделения времени, заархивированные 2007-10-20 в Wayback Machine (Стэнфордский университет, 1983).
- ^ Отчет о прогрессе номер 9 исследований и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии , июль 1961 г.
- ^ FJ Corbató, MM Дэггет, RC Daley, Экспериментальный Time-Sharing System архивации 2009-09-06 в Wayback Machine (IFIPS 1962).
- ^ Том Ван Флек мемуар «е годы История электронной почты
- ↑ Макмиллан, Роберт (27 января 2012 г.). «Первый в мире компьютерный пароль? Он тоже был бесполезен» . Проводной журнал . Проверено 22 марта 2019 . CS1 maint: обескураженный параметр ( ссылка )
- ↑ Хант, Трой (26 июля 2017 г.). «Эволюция паролей: руководство по аутентификации в современную эпоху» . Проверено 22 марта 2019 . CS1 maint: обескураженный параметр ( ссылка )
- ^ а б Зильбершатц, Авраам; Петерсон, Джеймс Л. (июнь 1988 г.). «13: Историческая перспектива». Понятия операционной системы . п. 514. ISBN 0-201-18760-4.
- ^ Леви, Стивен (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 полностью работает на симуляторе.