Открыть сервис

CTSS

CTSS (Compatible Time-Sharing System) — одна из первых в мире операционных систем с разделением времени (time-sharing), разработанная в Массачусетском технологическом институте (MIT) в начале 1960-х годов. CTSS стала прототипом для множества последующих систем и оказала фундаментальное влияние на развитие вычислительной техники, заложив принципы многопользовательской работы и интерактивного взаимодействия с компьютером.

История создания

В конце 1950-х годов вычислительные машины работали в пакетном режиме: пользователь передавал задание на перфокартах или магнитных лентах, после чего оператор запускал его, а результат выдавался через несколько часов или даже дней. Такой подход был крайне неэффективным для отладки программ и научных расчётов. В 1959 году профессор MIT Джон Маккарти, один из пионеров искусственного интеллекта, предложил концепцию разделения времени — одновременного обслуживания нескольких пользователей за счёт быстрого переключения процессора между задачами.

Разработка CTSS началась в 1961 году в Лаборатории электроники MIT под руководством Фернандо Корбато и Роберта Дэлримпла. Первая рабочая версия была запущена в 1962 году на компьютере IBM 7090 с модифицированной памятью. Система была написана на ассемблере FAP (Fortran Assembly Program) и частично на машинном коде. К 1963 году CTSS уже обслуживала до 30 одновременных пользователей, что для того времени было революционным достижением.

Архитектура и принципы работы

Аппаратная платформа

CTSS работала на мейнфреймах серии IBM 7090/7094. Для поддержки многозадачности потребовались серьёзные аппаратные доработки:

  • Установка дополнительного блока памяти объёмом 32 768 36-битных слов (около 144 КБ).
  • Добавление таймера прерываний для принудительного переключения задач.
  • Использование барабанной памяти (IBM 7320) для хранения образов процессов.

Ядро системы

Основу CTSS составляло резидентное ядро, которое управляло распределением процессорного времени, памятью и вводом-выводом. Ключевые механизмы:

  • Квантование времени: каждому пользователю выделялся фиксированный квант (обычно 0,1 секунды), по истечении которого управление передавалось следующей задаче.
  • Свопинг: при нехватке оперативной памяти образы неактивных процессов выгружались на барабанную память.
  • Приоритеты: короткие интерактивные задачи получали более высокий приоритет, чем длительные вычислительные задания.

Пользовательский интерфейс

Взаимодействие происходило через телетайпы (модели IBM 1050, Flexowriter) и ранние дисплейные терминалы (например, IBM 2250). Пользователь вводил команды построчно, получая ответы в реальном времени. Стандартный набор команд включал:

  • LOGIN — вход в систему с паролем.
  • RUN — запуск программы.
  • LISTF — просмотр каталога файлов.
  • SAVE — сохранение текущего состояния.
  • LOGOUT — завершение сеанса.

Файловая система

CTSS имела иерархическую файловую систему, организованную в виде каталогов. Файлы хранились на магнитных дисках IBM 1301 и барабанах. Основные характеристики:

  • Максимальный размер файла — 256 36-битных слов (около 1 КБ).
  • Поддержка разделяемых файлов для обмена данными между пользователями.
  • Атрибуты защиты: владелец, группа, прочие (аналогично современным Unix-правам).

Значение и влияние

Вклад в развитие операционных систем

CTSS стала первой системой, реализовавшей многие концепции, ставшие стандартом для современных ОС:

Проект MAC и Multics

Успех CTSS стимулировал создание более амбициозного проекта — Multics (Multiplexed Information and Computing Service), который разрабатывался MIT, Bell Labs и General Electric. Хотя Multics не получил широкого распространения, его идеи были переосмыслены при создании операционной системы Unix в Bell Labs. Кен Томпсон и Деннис Ритчи, работавшие над CTSS, позже создали Unix, который стал основой для Linux, macOS и других современных систем.

Образовательное значение

CTSS использовалась в MIT для обучения студентов программированию и вычислительным методам. Система позволяла десяткам пользователей одновременно работать с одними и теми же данными, что было принципиально новым для учебного процесса.

Критика и ограничения

Несмотря на новаторство, CTSS имела существенные недостатки:

  • Ограниченная масштабируемость: система могла обслуживать не более 30 одновременных пользователей из-за аппаратных ограничений IBM 7094.
  • Сложность администрирования: требовались постоянные ручные настройки для балансировки нагрузки.
  • Уязвимости безопасности: пароли хранились в открытом виде, отсутствовала изоляция процессов.
  • Зависимость от конкретного оборудования: CTSS была жёстко привязана к архитектуре IBM 7090/7094 и не подлежала переносу на другие платформы.

Интересные факты

  • CTSS стала первой системой, в которой была реализована команда LOGIN с запросом пароля — прообраз современных аутентификационных механизмов.
  • В 1963 году на CTSS была запущена первая в мире компьютерная игра с разделением времени — «Spacewar!», созданная сотрудниками MIT.
  • Система работала в MIT до 1973 года, после чего была заменена на более современные решения.
  • Исходные тексты CTSS были опубликованы в 1965 году в отчёте MIT и доступны для изучения историками вычислительной техники.

Источники

  • Corbato, F. J., et al. «The Compatible Time-Sharing System: A Programmer's Guide». MIT Press, 1963.
  • Corbato, F. J., & Vyssotsky, V. A. «Introduction and Overview of the Multics System». AFIPS Conference Proceedings, 1965.
  • Levy, S. «Hackers: Heroes of the Computer Revolution». Anchor Press, 1984.
  • Ritchie, D. M. «The Evolution of the Unix Time-sharing System». Bell Laboratories, 1979.
  • Отчёт MIT MAC-TR-1 «The Compatible Time-Sharing System», 1965.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →