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 →