CP-67¶
CP-67 — это операционная система с разделением времени (time-sharing), разработанная в конце 1960-х годов компанией IBM для мейнфреймов семейства System/360-67. Она стала первой коммерчески успешной системой, реализовавшей концепцию виртуальной машины, и послужила технологической основой для более известной системы VM/370, а также оказала значительное влияние на развитие операционных систем в целом.
¶История
¶Предпосылки создания
В середине 1960-х годов IBM активно развивала линейку мейнфреймов System/360. Одной из ключевых проблем того времени было эффективное использование вычислительных ресурсов. Пакетная обработка (batch processing) была доминирующим режимом, но она не обеспечивала интерактивного взаимодействия пользователя с машиной. Разделение времени (time-sharing) позволяло нескольким пользователям одновременно работать с системой через терминалы, создавая иллюзию монопольного использования каждого из них.
В 1964 году в Массачусетском технологическом институте (MIT) началась разработка системы Multics, которая ставила амбициозные цели по созданию универсальной интерактивной ОС. IBM, стремясь не отставать от конкурентов и удовлетворить запросы научного сообщества, начала собственные исследования в этой области.
¶Разработка
Проект CP-67 (Control Program-67) был начат в научно-исследовательском центре IBM в Кембридже (штат Массачусетс). Основной целью было создание системы, которая могла бы работать на модифицированной версии мейнфрейма System/360 — модели 67. Эта модель отличалась от стандартных System/360 наличием блока динамического преобразования адресов (DAT), что позволяло реализовать виртуальную память.
Разработка велась под руководством Роберта Крейтона (Robert Creasy) и Нормана Расмуссена (Norman Rasmussen). Первая версия CP-67 была продемонстрирована в 1967 году. Система изначально распространялась как программный продукт с открытым исходным кодом в рамках сообщества пользователей IBM (SHARE). Это было необычно для того времени, когда коммерческое программное обеспечение было преимущественно закрытым.
¶Влияние и преемственность
CP-67 не была коммерческим продуктом IBM в полном смысле слова. Она распространялась бесплатно, но требовала наличия специфического оборудования (System/360-67). Тем не менее, её успех в академической среде и среди корпоративных пользователей был очевиден. В 1972 году, когда IBM выпустила новое семейство мейнфреймов System/370, была создана система VM/370, которая стала прямым наследником CP-67. VM/370 объединила в себе управляющую программу (Control Program) и диалоговую систему (CMS — Cambridge Monitor System), которая также была разработана в рамках проекта CP-67.
¶Архитектура и принципы работы
¶Виртуальная машина
Ключевой инновацией CP-67 была концепция виртуальной машины. В отличие от большинства современных ей ОС, которые предоставляли каждому пользователю только часть ресурсов (процессорное время, память), CP-67 создавала для каждого пользователя полную, изолированную копию аппаратного обеспечения мейнфрейма. Пользователь мог загрузить в свою виртуальную машину любую операционную систему, поддерживаемую System/360, включая OS/360, DOS/360 или даже другую копию CP-67.
¶Компоненты системы
Система CP-67 состояла из двух основных компонентов:
- Control Program (CP) — управляющая программа, которая работала на реальном оборудовании и отвечала за создание, управление и планирование виртуальных машин. CP эмулировала все аппаратные инструкции, включая ввод-вывод, прерывания и управление памятью.
- Cambridge Monitor System (CMS) — однопользовательская интерактивная операционная система, которая работала внутри виртуальной машины. CMS предоставляла пользователю командную строку, файловую систему и базовые утилиты. Она была спроектирована так, чтобы быть максимально лёгкой и быстрой, так как работала в изолированной среде.
¶Планирование и управление памятью
CP-67 использовала вытесняющее многозадачное планирование. Каждой виртуальной машине выделялся квант времени (обычно 50-100 миллисекунд). Когда квант истекал, CP сохраняла состояние виртуальной машины (регистры, счётчик команд) и переключалась на следующую.
Управление памятью основывалось на страничной организации. Система использовала аппаратный блок DAT модели 67 для преобразования виртуальных адресов, используемых в виртуальных машинах, в физические адреса реальной памяти. Это позволяло эффективно распределять память между несколькими виртуальными машинами, даже если их суммарный запрос превышал объём физической памяти.
¶Применение
¶Академическая и научная среда
CP-67 получила наибольшее распространение в университетах и исследовательских центрах. Она позволяла студентам и исследователям получать доступ к вычислительным ресурсам с удалённых терминалов, что было революционно для конца 1960-х годов. Например, в Массачусетском технологическом институте, Стэнфордском университете и Калифорнийском университете в Беркли были развёрнуты крупные системы на базе CP-67.
¶Разработка и тестирование
Благодаря возможности запускать несколько копий разных операционных систем на одном физическом мейнфрейме, CP-67 стала идеальной платформой для разработки и тестирования программного обеспечения. Разработчики могли отлаживать новые версии OS/360 или DOS/360 в изолированной виртуальной среде, не рискуя нарушить работу основной системы. Это существенно ускорило процесс разработки и повысило надёжность.
¶Обучение
CP-67 использовалась для обучения студентов основам операционных систем и архитектуры компьютеров. Студенты могли загрузить в свою виртуальную машину упрощённую ОС и изучать её работу на низком уровне, не боясь повредить реальное оборудование.
¶Критика и ограничения
Несмотря на свою инновационность, CP-67 имела ряд недостатков:
- Производительность: Эмуляция аппаратных инструкций и управление виртуальными машинами приводили к значительным накладным расходам. CP-67 работала медленнее, чем нативная ОС, особенно при выполнении операций ввода-вывода.
- Зависимость от оборудования: Система была жёстко привязана к модели System/360-67. Она не могла работать на других мейнфреймах IBM, что ограничивало её распространение.
- Сложность настройки: Для эффективной работы CP-67 требовалась тщательная настройка параметров планирования и распределения памяти. Неопытные администраторы могли столкнуться с серьёзными проблемами производительности.
- Отсутствие коммерческой поддержки: IBM не предоставляла официальной поддержки для CP-67, полагаясь на сообщество пользователей. Это создавало трудности для организаций, не имевших квалифицированных специалистов.
¶Наследие
CP-67 стала важной вехой в истории вычислительной техники. Она доказала практическую реализуемость концепции виртуальной машины и заложила основы для последующих систем виртуализации, таких как VM/370, а затем и для современных гипервизоров (VMware, KVM, Hyper-V). Идеи, заложенные в CP-67, — изоляция, разделение ресурсов и эмуляция оборудования — остаются актуальными и сегодня.
Кроме того, CP-67 оказала влияние на развитие операционных систем с разделением времени. Её подход к планированию и управлению памятью был изучен и адаптирован в более поздних системах, включая Unix и её производные.
¶Источники
- Creasy, R. J. (1981). "The Origin of the VM/370 Time-Sharing System". IBM Journal of Research and Development.
- IBM Corporation. (1968). "CP-67/CMS User's Guide".
- Levy, H. M. (1984). "Capability-Based Computer Systems". Digital Press.
- Tanenbaum, A. S. (2001). "Modern Operating Systems". Prentice Hall.