Compatible Time-Sharing System
Compatible Time-Sharing System (CTSS) — одна из первых операционных систем с разделением времени, разработанная в Массачусетском технологическом институте (MIT) в начале 1960-х годов. CTSS стала прототипом для многих последующих систем, включая Multics и Unix, и заложила основы для современных многопользовательских вычислительных сред. Система была создана для компьютера IBM 709, а затем адаптирована для IBM 7090 и IBM 7094.
История
Предпосылки создания
В конце 1950-х — начале 1960-х годов вычислительная техника была преимущественно пакетной: пользователи передавали задания на перфокартах или магнитных лентах, а результаты получали через несколько часов или дней. Это ограничивало интерактивность и эффективность работы. В MIT под руководством профессора Фернандо Корбато (Fernando J. Corbató) начались исследования по созданию системы, позволяющей нескольким пользователям одновременно работать с компьютером в режиме реального времени. Идея разделения времени (time-sharing) была предложена ещё в 1957 году Джоном Маккарти, который также участвовал в разработке CTSS.
Разработка и внедрение
Проект CTSS стартовал в 1961 году в рамках лаборатории компьютерных наук MIT. Первая версия системы заработала на IBM 709 в 1962 году. Основной целью было обеспечить интерактивный доступ для 30–40 пользователей одновременно. В 1963 году система была перенесена на более мощный IBM 7094, что позволило увеличить число пользователей до 30 (позднее до 40). CTSS использовалась для обучения, научных исследований и разработки программного обеспечения в MIT до середины 1970-х годов.
Влияние на последующие системы
Опыт CTSS непосредственно повлиял на проект Multics (1964–1969), который также разрабатывался в MIT совместно с Bell Labs и General Electric. Многие концепции CTSS, такие как динамическое распределение памяти, файловые системы с иерархической структурой и защита процессов, были усовершенствованы в Multics. В свою очередь, один из разработчиков Multics, Кен Томпсон, создал Unix, которая унаследовала идеи разделения времени. Таким образом, CTSS считается «дедушкой» современных операционных систем.
Архитектура и принципы работы
Разделение времени
CTSS работала по принципу квантования времени: центральный процессор (ЦП) делил своё время на короткие интервалы (кванты), обычно 0,1–0,2 секунды, и поочерёдно выделял их каждому активному пользователю. Переключение между задачами происходило с помощью аппаратного таймера и механизма прерываний. Это создавало иллюзию одновременной работы для каждого пользователя, хотя физически ЦП выполнял только одну задачу в каждый момент времени.
Управление памятью
CTSS использовала простую схему управления памятью: вся оперативная память делилась на фиксированные блоки (страницы), а каждый пользовательский процесс получал выделенный сегмент. Для защиты данных применялось аппаратное обеспечение IBM 7094, которое предотвращало доступ одного процесса к памяти другого. Однако в ранних версиях CTSS отсутствовала виртуальная память — все процессы должны были умещаться в физической памяти, что ограничивало число пользователей.
Файловая система
Файловая система CTSS была одной из первых, поддерживающих иерархическую структуру каталогов (директорий). Пользователи могли создавать, удалять и редактировать файлы, используя командный интерпретатор. Файлы хранились на магнитных дисках (например, IBM 1301) и магнитных лентах. Система поддерживала атрибуты файлов, такие как права доступа (чтение, запись, выполнение), что было новаторством для того времени.
Командный интерпретатор
CTSS имела текстовый командный интерпретатор (shell), который позволял пользователям вводить команды с телетайпов или терминалов. Основные команды включали login, logout, run, edit, list, delete и другие. Пользователи могли запускать программы на языках FORTRAN, LISP, MAD (Michigan Algorithm Decoder) и ассемблере. Система также поддерживала макросы и сценарии, что упрощало автоматизацию задач.
Аппаратное обеспечение
CTSS работала на компьютерах IBM 709, 7090 и 7094. Эти машины были транзисторными (начиная с 7090) и имели 32-битную архитектуру. Основные характеристики IBM 7094:
- Тактовая частота: около 0,5 МГц.
- Оперативная память: до 32 К слов (слово — 36 бит), что эквивалентно примерно 144 КБ.
- Внешняя память: магнитные диски (емкость до 8 МБ) и магнитные ленты.
- Периферия: телетайпы (например, IBM 1050), перфокарточные устройства, принтеры.
Для подключения терминалов использовались мультиплексоры, которые позволяли одновременно обслуживать до 40 пользователей. Терминалы были алфавитно-цифровыми и не имели графического интерфейса.
Применение
Образование и исследования
CTSS активно использовалась в MIT для обучения студентов программированию и компьютерным наукам. Студенты могли писать и отлаживать программы в интерактивном режиме, что значительно ускоряло процесс обучения. Система также применялась для научных расчётов, моделирования и обработки данных.
Разработка программного обеспечения
CTSS стала платформой для разработки многих ранних программных продуктов, включая компиляторы, редакторы и утилиты. Например, на CTSS был создан первый текстовый редактор с возможностью редактирования в реальном времени (TYPSET), а также система автоматического перевода текстов.
Влияние на индустрию
Успех CTSS продемонстрировал коммерческую жизнеспособность систем с разделением времени. В 1965 году компания IBM выпустила собственную систему TSS/360, основанную на идеях CTSS, хотя она не получила широкого распространения. Тем не менее, концепции CTSS легли в основу многих коммерческих систем, таких как DEC PDP-10 с операционной системой TOPS-10.
Критика и ограничения
CTSS имела ряд недостатков, характерных для ранних систем разделения времени:
- Ограниченная масштабируемость: из-за отсутствия виртуальной памяти число пользователей было жёстко ограничено физической памятью (до 40 пользователей на IBM 7094).
- Низкая надёжность: система часто давала сбои из-за аппаратных ошибок и несовершенства программного обеспечения. Перезагрузка требовала вмешательства оператора.
- Отсутствие защиты данных: в ранних версиях CTSS не было эффективных механизмов защиты пользовательских данных друг от друга, что приводило к случайным или намеренным нарушениям.
- Сложность использования: командный интерфейс был недружелюбным для неподготовленных пользователей, а документация — скудной.
Несмотря на эти недостатки, CTSS оставалась работоспособной системой, которая эксплуатировалась в MIT более десяти лет.
Интересные факты
- Название «Compatible» в CTSS отражало совместимость с пакетным режимом IBM: система могла выполнять как интерактивные, так и пакетные задания.
- В 1963 году на CTSS была реализована первая в мире система электронной почты в рамках проекта MAIL, хотя она использовалась только внутри MIT.
- Фернандо Корбато получил премию Тьюринга в 1990 году за вклад в создание систем с разделением времени, включая CTSS.
- Исходный код CTSS был утерян, но в 2010-х годах энтузиасты восстановили его по сохранившимся документам и магнитным лентам.
Источники
- Corbató, F. J., et al. «The Compatible Time-Sharing System: A Programmer’s Guide.» MIT Press, 1963.
- Levy, S. «Hackers: Heroes of the Computer Revolution.» Doubleday, 1984.
- McCarthy, J. «Time-Sharing Computer Systems.» MIT, 1962.
- Ritchie, D. M. «The Evolution of the Unix Time-Sharing System.» AT&T Bell Laboratories, 1979.
- Документация MIT по проекту CTSS (архивы лаборатории компьютерных наук).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →