Введение
Операционная система
Conversational Monitor System (CMS, первоначально Cambridge Monitor System) — это простая интерактивная операционная система для одного пользователя. CMS изначально была разработана как часть операционной системы IBM CP/CMS, которая поступила в эксплуатацию в 1967 году. CMS входит в семейство VM компании IBM, работающее на мейнфреймах IBM. VM была впервые анонсирована в 1972 году и до сих пор используется как z/VM. CMS работает как "гостевая" операционная система в частной виртуальной машине, созданной управляющей программой VM. Управляющая программа вместе с CMS образуют многопользовательскую операционную систему с разделением времени.
История
CMS первоначально был разработан как часть операционной системы CP/CMS компании IBM. В то время акроним означал «Кембриджская система мониторинга» (а также: «Консольная система мониторинга»). CMS впервые заработал под управлением CP 40 – экспериментальной исследовательской системы, использовавшей специализированное оборудование в Кембриджском научном центре IBM. Производственное использование в CSC началось в январе 1967 года. Пользовательский интерфейс CMS во многом опирался на опыт работы с влиятельной системой разделения времени первого поколения CTSS, некоторые разработчики которой участвовали в создании CP/CMS. (CTSS использовалась как ранняя платформа разработки CP/CMS.) Позднее, в 1967 году, CP/CMS стала общедоступной на IBM System/360 Model 67, где, хотя новая управляющая программа CP 67 представляла собой существенную переработку CP 40, CMS по сути оставалась прежней. IBM предоставляла CP/CMS «как есть» – без какой-либо поддержки, в виде исходного кода, как часть библиотеки IBM Type III. Таким образом, CP/CMS была системой с открытым исходным кодом. Несмотря на отсутствие поддержки со стороны IBM, CP/CMS добилась значительного успеха как платформа разделения времени; к 1972 году насчитывалось около 44 систем CP/CMS, включая коммерческие организации, которые перепродавали доступ к CP/CMS. В 1972 году IBM выпустила операционную систему VM/370 – переработку CP/CMS для System/370, в анонсе, который также добавил аппаратное обеспечение виртуальной памяти в серию System/370. В отличие от CP/CMS, VM/370 поддерживалась IBM. VM прошла через ряд версий и до сих пор используется сегодня как z/VM. На протяжении всех своих различных версий и выпусков платформа CMS оставалась достаточно узнаваемой как прямой потомок оригинальной версии CMS, работавшей под управлением CP 40. Многие ключевые решения, касающиеся пользовательского интерфейса, знакомые сегодняшним пользователям, были приняты еще в 1965 году в рамках проекта CP 40. См. раздел CMS под CP 40 для примеров. И VM, и CP/CMS имели непростую историю в IBM. VM не входила в число «стратегических» операционных систем IBM, которыми в основном были семейства OS и DOS, и она пострадала от внутренней политической борьбы в IBM относительно разделения времени и пакетной обработки. Этот конфликт стал причиной того, что CP/CMS изначально была выпущена как система без поддержки, и почему VM часто испытывала недостаток ресурсов для разработки и поддержки в IBM. Исключительно сильное сообщество пользователей, впервые сформировавшееся в эпоху самоподдержки CP/CMS, но остававшееся активным и после запуска VM, внесло значительный вклад в развитие операционной системы и смягчило трудности, связанные с использованием «другой операционной системы» IBM.
Особенности
CMS предоставляет пользователям среду для запуска приложений или пакетных заданий, управления файлами данных, создания и отладки приложений, разработки для различных платформ и обмена информацией с другими системами или пользователями. CMS продолжает разрабатываться и широко используется в настоящее время.
Основная среда
Пользователи входят в виртуальную машину, указывая идентификатор пользователя и пароль, а затем запускают свою собственную виртуальную машину. Это можно сделать, выполнив команду "IPL CMS" ("IPL" = initial program load, традиционный термин IBM для загрузки машины), хотя обычно это происходит автоматически для пользователя. Персонализация выполняется с помощью стандартного скрипта оболочки с именем "PROFILE EXEC", который задает пользовательские настройки среды, например, какие диски и библиотеки доступны.
Поддержка терминалов
CMS началась в эпоху бумажных терминалов в стиле телетайпа, а затем и "стеклянных телетайпов" – простых терминалов. Однако к концу 1970-х годов большинство пользователей VM подключались через полноэкранные терминалы, особенно IBM 3270 – повсеместный терминал для обработки транзакций на мейнфреймах IBM. 3270 играл стратегическую роль в продуктовой линейке IBM, что делало его естественным выбором для крупных центров обработки данных того времени. Многие другие производители в конечном итоге предложили бисинхронные терминалы, эмулировавшие протокол 3270. Терминалы 3270 имели локальное буферное хранилище, некоторые вычислительные возможности и обычно обрабатывали целый экран данных за один раз. Они выполняли задачи редактирования локально, а затем передавали набор полей (или всю страницу) целиком при нажатии клавиши ENTER или клавиши функции программы (PFK). Семейство 3270 включало "умные" блоки управления, концентраторы и другие сетевые элементы, взаимодействовавшие с мейнфреймом по выделенным каналам на относительно высокой скорости с использованием бисинхронного протокола синхронной связи. (Эти технологии связи, ориентированные на мейнфреймы, предоставляли некоторые возможности, которые сейчас воспринимаются как должное в современных сетях, такие как адресация устройств, маршрутизация, коррекция ошибок и поддержка различных конфигураций, таких как топологии "многоточка" и "многоввод".) Подход 3270 отличался от более дешевых простых терминалов того времени, которые работали по принципу "точка-точка" и использовали асинхронную связь. Пользователи коммерческого совместного использования времени, важный сегмент ранних установок CP/CMS и VM, полагались на такие устройства, поскольку они могли подключаться через модемы со скоростью 300 или 1200 бит/с по обычным телефонным линиям. Установка выделенного канала для 3270 часто была непрактичной, неэкономичной или занимала слишком много времени. Блок-ориентированный подход 3270 был более согласован с представлением IBM о вычислениях, основанном на пакетной обработке и перфокартах, и был особенно важен для мейнфреймов IBM того времени. В отличие от современных миникомпьютеров, большинство мейнфреймов IBM не были оснащены для обработки прерываний по символам. Поддержка простых терминалов опиралась на блоки управления терминалами, такие как IBM 270x (см. IBM 3705) или Memorex 1270. Эти асинхронные контроллеры терминалов собирали строку символов до фиксированной максимальной длины, пока не нажималась клавиша RETURN. Ввод слишком большого количества символов приводил к ошибке, что было хорошо знакомо пользователям того времени. (В большинстве центров обработки данных это оборудование отсутствовало, за исключением случаев, когда оно требовалось для доступа по коммутируемым линиям. Подход 3270 был предпочтительным.) Блок-ориентированные терминалы, такие как 3270, сделали практичным внедрение экранных редакторов на мейнфреймах, в отличие от строчных редакторов, которые были нормой ранее. Это было важным преимуществом современных миникомпьютеров и других систем, ориентированных на символы, и его доступность через 3270 была с энтузиазмом встречена. Произошел разрыв между миром 3270, ориентированным на обработку транзакций на мейнфреймах (особенно через CICS), и миром асинхронных терминалов, ориентированным на миникомпьютеры, работающие с символами, и совместное использование времени по коммутируемым линиям. Производители асинхронных терминалов постепенно улучшали свои продукты, добавляя различные функции "умных" терминалов, обычно доступные через управляющие последовательности. Однако эти устройства редко конкурировали с пользователями 3270; IBM сохраняла свое доминирование в решениях о закупке аппаратного обеспечения для центров обработки данных. Если посмотреть в ретроспективе, то можно увидеть существенное философское различие между блок-ориентированными и символьно-ориентированными вычислениями. Асинхронные контроллеры терминалов и 3270 предоставляли мейнфрейму блок-ориентированное взаимодействие – по сути, они заставляли ввод с терминала выглядеть как ввод с устройства чтения карт. Этот подход, предпочтительный для IBM, привел к разработке совершенно иных парадигм пользовательского интерфейса и стратегий программирования. Символьно-ориентированные системы развивались иначе. Разница становится очевидной при сравнении подхода к атомарным транзакциям в доминирующей CICS с интерактивным, потоко-ориентированным стилем UNIX. VM/CMS развивалась где-то между этими крайностями. CMS имеет управляемую командами, сохраняющую состояние, интерактивную среду, а не подход CICS к интерфейсу, ориентированному на транзакции без сохранения состояния. Однако CMS реагирует на взаимодействие, основанное на страницах или строках, а не на прерываниях по символам.
Выступление
CMS заслужил очень хорошую репутацию благодаря своей эффективности и удобству использования, особенно по меркам того времени (и, конечно, до широкого распространения графических пользовательских интерфейсов, привычных сегодня). На одном VM-мейнфрейме одновременно могли работать сотни (впоследствии тысячи) интерактивных пользователей CMS с временем отклика менее секунды для типовых, "несложных" операций. VM/CMS неизменно демонстрировал более высокую производительность, чем MVS и другие операционные системы IBM, в части поддержки одновременной работы интерактивных пользователей.
Программирование и основные приложения
Многие пользователи CMS программировали на таких языках, как COBOL, FORTRAN, PL/I, C/370, APL и скриптовом языке REXX. VM/CMS часто использовалась как платформа разработки для производственных систем, работавших под другими операционными системами IBM, такими как MVS. Другие пользователи CMS работали с коммерческими программными пакетами, такими как FOCUS, NOMAD, SPSS и SAS. В свое время CMS также была важной средой для электронной почты и повышения производительности работы с офисными приложениями; важным продуктом был PROFS от IBM (впоследствии переименованный в OfficeVision). Два широко используемых инструмента CMS — редактор XEDIT и язык программирования REXX. Оба этих продукта были портированы на другие платформы и сейчас широко используются вне среды мэйнфреймов.