CP / CMS - CP/CMS

CP / CMS
IBM logo.svg
Desenvolvedor IBM Cambridge Scientific Center
Escrito em Montador (F)
Família de sistema operacional VM
Estado de trabalho Histórico
Modelo fonte Código-fonte (ver texto para detalhes)
lançamento inicial Maio de 1968 ; 53 anos atrás ( 1968-05 )
Último lançamento 3.2 / 1972 ; 49 anos atrás ( 1972 )
Disponível em inglês
Plataformas IBM System / 360-67 ; também System / 370 com hardware de memória virtual (não presente nos modelos S / 370 originais); também usado em hardware experimental
Interface de usuário padrão Interface da Linha de comando
Licença Biblioteca IBM Type-III (gratuita na forma de código-fonte sem nenhum custo para clientes IBM, sem suporte)

CP / CMS ( Control Program / Cambridge Monitor System ) é um sistema operacional de compartilhamento de tempo descontinuado do final dos anos 60 e início dos anos 70, conhecido por seu excelente desempenho e recursos avançados. Ele tinha três versões distintas:

  • CP-40 / CMS, um importante sistema de pesquisa "único" que estabeleceu a arquitetura de máquina virtual CP / CMS
  • CP-67 / CMS, uma reimplementação do CP-40 / CMS para o IBM System / 360-67 , e o foco principal deste artigo
  • CP-370 / CMS, uma reimplementação do CP-67 / CMS para o System / 370 - nunca lançado como tal, mas se tornou a base do sistema operacional VM / 370 da IBM , anunciado em 1972.

Cada implementação foi um redesenho substancial de seu antecessor e um passo evolutivo à frente. CP-67 / CMS foi a primeira arquitetura de máquina virtual amplamente disponível. A IBM foi pioneira nessa ideia com seus sistemas de pesquisa M44 / 44X (que usava virtualização parcial ) e CP-40 (que usava virtualização total ).

Além de seu papel como o predecessor da família VM, o CP / CMS desempenhou um papel importante no desenvolvimento da teoria do sistema operacional (SO), no design do System / 370 da IBM, na indústria de compartilhamento de tempo e na criação de um comunidade de usuários autossuficiente que antecipou o movimento atual do software livre .

História

Parâmetros arquitetônicos e estratégicos fundamentais do CP / CMS foram estabelecidos no CP-40, que começou a ser usado em produção no Cambridge Scientific Center da IBM no início de 1967. Esse esforço ocorreu em um ambiente político e técnico complexo , discutido longamente e apoiado por citações de primeira mão no artigo da Wikipedia History of CP / CMS .

Resumindo:

  • No início dos anos 1960, a IBM procurou manter o domínio sobre a computação científica, onde os esforços de compartilhamento de tempo, como o CTSS e o Projeto MAC do MIT, ganharam foco. Mas a IBM havia se comprometido com um grande projeto, o System / 360 , que levou a empresa em uma direção diferente.
  • A comunidade de compartilhamento de tempo ficou desapontada com a falta de recursos de compartilhamento de tempo do S / 360. Isso levou a importantes perdas de vendas da IBM no Project MAC e Bell Laboratories . O Cambridge Scientific Center (CSC) da IBM, originalmente estabelecido para apoiar o Projeto MAC, começou um esforço para recuperar a credibilidade da IBM em time-sharing, construindo um sistema operacional time-sharing para o S / 360. Esse sistema eventualmente se tornaria CP / CMS. No mesmo espírito, a IBM projetou e lançou um modelo S / 360 com recursos de compartilhamento de tempo, o IBM System / 360-67, e um sistema operacional de compartilhamento de tempo, TSS / 360 . TSS falhou; mas o 360-67 e o CP / CMS tiveram sucesso, apesar das batalhas políticas internas sobre o compartilhamento de tempo e dos esforços conjuntos da IBM para descartar o esforço do CP / CMS.
  • Em 1967, o uso de produção do CP / CMS começou, primeiro no CP-40 do CSC, depois no CP-67 nos Laboratórios Lincoln e em outros locais. Ele foi disponibilizado por meio da Biblioteca IBM Type-III em 1968. Em 1972, o CP / CMS havia passado por vários lançamentos; era um sistema robusto e estável rodando em 44 sistemas; poderia suportar 60 usuários de compartilhamento de tempo em um S / 360-67; e pelo menos dois fornecedores comerciais de compartilhamento de tempo ( National CSS e IDC ) estavam revendendo S / 360-67 usando a tecnologia CP / CMS.
  • Em 1972, a IBM anunciou a adição de memória virtual à série S / 370, junto com o sistema operacional VM / 370, uma reimplementação do CP / CMS para o S / 370. Isso marcou o fim dos lançamentos de CP / CMS, embora o sistema tenha continuado sua existência independente por algum tempo. Os lançamentos de VM continuaram a incluir código-fonte por algum tempo e os membros da comunidade VM permaneceram contribuintes ativos por muito tempo.

Visão geral

 CTSS 
> IBM M44 / 44X
>> CP-40 / CMSCP [-67] / CMS  VM / 370 → Versões VM / SE → Versões VM / SP → Versões VM / XA → VM / ESAz / VM
VP / CSS
> TSS / 360
> TSO para MVT → para OS / VS2 → para MVS → ... → para z / OS
>> MULTICS e a maioria das outras plataformas de compartilhamento de tempo

CP / CMS foi construído pela IBM 's Cambridge Scientific Center (CSC), a pesquisa e desenvolvimento de laboratório com laços com MIT , sob a liderança de Robert Creasy . Os objetivos do sistema, processo de desenvolvimento, lançamento e legado de tecnologia inovadora, diferenciam este sistema de outros sistemas operacionais de sua época e de outros grandes projetos IBM. Era um sistema de código-fonte aberto , disponibilizado na forma de código-fonte para todos os clientes IBM sem nenhum custo - como parte da Biblioteca IBM Type-III sem suporte . Os usuários de CP / CMS suportavam a si próprios e uns aos outros. Circunstâncias incomuns, descritas na seção História abaixo, levaram a essa situação.

CP / CMS consistia em dois componentes principais:

  • CP , o Programa de Controle , criou o ambiente de máquina virtual. A versão mais usada foi o CP-67, executado no S / 360-67. (O sistema de pesquisa CP-40 estabeleceu a arquitetura. Uma terceira versão, CP-370, tornou-se VM / 370.) Em vez de dividir explicitamente a memória e outros recursos entre os usuários, o que era a abordagem tradicional, o CP forneceu a cada usuário um simulado computador autônomo System / 360 . Cada sistema era capaz de executar qualquer software S / 360 executado na máquina vazia e, na verdade, fornecia a cada usuário um sistema de computador privado.
  • CMS , Cambridge Monitor System (e também Console Monitor System - mas renomeado Conversational Monitor System em VM) era um sistema operacional leve de usuário único, para uso de compartilhamento de tempo interativo. Ao executar muitas cópias do CMS nas máquinas virtuais da CP - em vez de várias cópias de um grande sistema operacional multitarefa tradicional - a sobrecarga por usuário foi menor. Isso permitiu que um grande número de usuários simultâneos compartilhassem um único S / 360.

O conceito de máquina virtual CP / CMS foi um passo importante no design do sistema operacional.

  • Ao isolar os usuários uns dos outros, o CP / CMS melhorou muito a confiabilidade e a segurança do sistema.
  • Simulando um computador autônomo completo para cada usuário, o CP / CMS pode executar qualquer software S / 360 em um ambiente de compartilhamento de tempo, não apenas aplicativos projetados especificamente para compartilhamento de tempo.
  • Usando o CMS leve como a interface de usuário principal, o CP / CMS alcançou um desempenho de compartilhamento de tempo sem precedentes. Além disso, a simplicidade do CMS facilitou a implementação de melhorias na interface do usuário do que no sistema operacional tradicional.

A IBM reimplementou o CP / CMS como sua linha de produtos VM / 370, lançado em 1972 quando a memória virtual foi adicionada à série S / 370 . Os sucessores do VM / 370 (como z / VM ) ainda são amplamente usados ​​hoje. (É importante notar que a IBM reimplementou o CP-67, como tinha o CP-40, e não simplesmente o renomeou e reembalou. O VM coexistiu com o CP / CMS e seus sucessores por muitos anos. Portanto, é apropriado visualizar o CP / CMS como um sistema operacional independente, distinto da família VM.)

CP / CMS como software livre

O CP / CMS foi distribuído na forma de código-fonte e muitos usuários do CP / CMS estiveram ativamente envolvidos no estudo e modificação desse código-fonte. Esse envolvimento direto do usuário com um sistema operacional fornecido pelo fornecedor era incomum.

Na era CP / CMS, muitos fornecedores distribuíam sistemas operacionais em código-fonte legível por máquina. A IBM forneceu código-fonte opcional para, por exemplo, OS / 360 , DOS / 360 e para vários sistemas operacionais IBM convencionais posteriores. Com todos esses sistemas, alguma consciência do código-fonte do sistema também estava envolvida no processo SYSGEN , comparável a uma construção de kernel em sistemas modernos também na instalação de um Starter Set . (Quarenta anos depois, o emulador Hercules pode ser usado para executar versões fossilizadas desses sistemas, com base no código-fonte que agora é tratado como parte do domínio público .)

A importância do código-fonte do sistema operacional mudou com o tempo. Antes de a IBM separar o software do hardware em 1969, o sistema operacional (e a maioria dos outros softwares) estava incluído no custo do hardware. Cada fornecedor tinha total responsabilidade por todo o sistema, hardware e software. Isso tornou o meio de distribuição relativamente sem importância. Após a separação da IBM, o software OS foi entregue como software IBM System Control Program (SCP) , eventualmente na forma de código de objeto (OCO).

Por razões complicadas, o CP / CMS não foi lançado da maneira normal. Não era suportado pela IBM, mas fazia parte da Biblioteca IBM Type-III sem suporte , uma coleção de software cedido por pessoal da IBM (da mesma forma, software cedido por clientes formava a Biblioteca Type-IV). A IBM distribuiu esta biblioteca a seus clientes para uso 'no estado em que se encontra'. A falta de suporte direto da IBM para tais produtos forçou os usuários ativos a se auto-oferecerem e encorajou modificações e suporte mútuo. CP / CMS e outros produtos do Tipo III foram as primeiras formas de software livre .

A distribuição do código-fonte de outros sistemas operacionais IBM pode ter continuado por algum tempo (por exemplo, OS / 360 , DOS / 360 , DOS / VSE , MVS e até mesmo TSS / 370 , que hoje são geralmente considerados de domínio público ) desde então eles foram provavelmente publicados sem um aviso de copyright antes de 1978. No entanto, o status sem suporte do CP / CMS colocou diferentes pressões sobre sua comunidade de usuários e criou a necessidade de distribuição do código-fonte.

Curiosamente, o CP / CMS foi contribuído para a Biblioteca Type-III pelo Lincoln Laboratory do MIT e não pela IBM, apesar de o sistema ter sido construído pelo Cambridge Scientific Center da IBM . Essa decisão surpreendente foi descrita como uma forma de conluio para superar as forças políticas da IBM que se opõem ao compartilhamento de tempo. Também pode refletir a quantidade de contribuições formais e informais do MIT e da Union Carbide que contribuíram para o projeto e implementação do CP-40, S / 360-67, CP-67 e CMS. Consulte History of CP / CMS (notas históricas) para obter mais informações e referências sobre este tópico.

Muitos usuários de CP / CMS fizeram modificações extensas em suas próprias cópias do código-fonte. Muito desse trabalho foi compartilhado entre os sites e mudanças importantes retornaram ao sistema central. Outros usuários, como National CSS e alguns sites acadêmicos, continuaram o desenvolvimento independente de CP / CMS, em vez de mudar para VM / 370 quando ele se tornou disponível. Esses esforços divergiram da comunidade, no que hoje seria chamado de bifurcação de software .

Depois que a IBM lançou o VM / 370, a distribuição do código-fonte do VM continuou por vários releases. (O projeto VM não adotou o uso de PL / S , uma linguagem de programação de sistemas internos obrigatória para uso dentro da IBM em muitos projetos comparáveis. O uso de PL / S tornaria a distribuição do código-fonte impossível. A IBM tentou se afastar da montagem idioma para idiomas de nível superior já em 1965, e estava fazendo uso substancial de PL / S em 1969, por exemplo, em MVS. PL / S era considerado um segredo comercial na época e não estava disponível para os clientes. A IBM aparentemente fez exceções a isso muito mais tarde.) A comunidade de usuários de VM continuou a fazer contribuições importantes para o software, como havia feito durante o período CP / CMS Tipo III. Poucos sites de SO ou DOS exibiram envolvimento ativo do usuário em detalhes internos do sistema operacional, mas isso foi encontrado em muitos sites de VM. Esse suporte reverso ajudou os conceitos de CP / CMS a sobreviver e evoluir, apesar do status de cidadão de segunda classe da VM na IBM.

Arquitetura

A arquitetura CP / CMS foi revolucionária para sua época. O sistema consistia em um programa de controle de virtualização (CP) que criava várias máquinas virtuais independentes (VMs). A virtualização da plataforma foi possível devido a dois elementos do IBM System / 360-67:

  • Segregação de instruções privilegiadas de 'estado de supervisor' das instruções normais de 'estado de problema'
  • Hardware de tradução de endereços

Quando um programa estava sendo executado em 'estado de problema', o uso de uma instrução privilegiada ou um endereço de memória inválido faria com que o hardware gerasse uma condição de exceção. Ao capturar essas condições, o CP pode simular o comportamento apropriado, por exemplo, executando operações de E / S ou paging. Um sistema operacional convidado, que seria executado em 'estado de supervisor' em uma máquina vazia, foi executado em 'estado de problema' no CP.

O resultado foi um ambiente totalmente virtualizado. Cada máquina virtual tinha seu próprio conjunto de dispositivos virtuais, mapeados a partir do ambiente de hardware real do sistema. Assim, um determinado teletipo dial-up foi apresentado à sua instância VM como seu console virtual .

Observe que, no CP-67, certas instruções dependentes do modelo e de diagnóstico não foram virtualizadas, principalmente a instrução DIAG. Por fim, em um desenvolvimento posterior na IBM e em outros lugares, as instruções DIAG foram usadas para criar uma interface não virtualizada, para o que se tornou chamado de hipervisor . Os sistemas operacionais do cliente podem usar esse mecanismo para se comunicar diretamente com o programa de controle; isso ofereceu melhorias dramáticas de desempenho.

Qualquer sistema operacional S / 360 poderia de fato ser executado sob CP, mas usuários normais executavam Cambridge Monitor System (CMS), um sistema operacional simples de usuário único. O CMS permitia aos usuários executar programas e gerenciar seus dispositivos virtuais. CP-67 versões 1 e 2 não suportam memória virtual dentro de uma máquina virtual. Isso foi adicionado na versão 3. Nesse ponto, o teste e o desenvolvimento do próprio CP poderiam ser feitos executando uma cópia completa do CP / CMS dentro de uma única máquina virtual. Alguns sistemas operacionais CP / CMS funcionam, como o desenvolvimento do CP-370 e os testes MVS, rodaram pilhas profundas de quatro ou cinco níveis de hardware e simulações de sistema operacional.

O projeto CP / CMS é diferente dos sistemas operacionais monolíticos anteriores da IBM , ele separa o "grande sistema" complexo (despacho, gerenciamento de hardware, armazenamento em massa) do "pequeno sistema" (execução do programa de aplicativo, E / S de arquivo, entrada / saída do console) . A recategorização de ambos os sistemas em suas próprias entidades evita que um bug no sistema de um usuário afete ambos. Este é um recurso de modelo em sistemas operacionais microkernel .

A decisão da IBM de implementar virtualização e recursos de memória virtual no design S / 370 subsequente (embora ausente na série S / 370 inicial) reflete, pelo menos em parte, o sucesso da abordagem CP / CMS. Por sua vez, a sobrevivência e o sucesso da família de sistemas operacionais VM da IBM e da tecnologia de virtualização em geral devem muito ao S / 360-67.

Em muitos aspectos, os produtos CP-67 e CP / CMS da IBM anteciparam (e influenciaram fortemente) o software de virtualização contemporâneo , como VMware Workstation, Xen e Microsoft Virtual PC .

Terminologia relacionada

  • CP : Programa de Controle . CP-40 e CP-67 foram implementações para o S / 360-40 personalizado do CSC e o S / 360-67 padrão, respectivamente.
  • CMS : Cambridge Monitor System . Esta parte do sistema CP / CMS foi renomeada como Conversational Monitor System quando a IBM lançou o VM / 370. Ao contrário da transição de CP para VM, no entanto, que foi uma reimplementação, muito do CMS foi movido sem modificação de CP / CMS para VM / 370.
  • VM : Máquina Virtual , inicialmente o termo pseudo-máquina foi usado, mas logo a máquina virtual foi emprestada do projeto IBM M44 / 44X . Ele estava bem estabelecido em CP / CMS quando a IBM introduziu o VM / 370.
  • hipervisor : um mecanismo para paravirtualização . Este termo foi cunhado na reimplementação da IBM do CP-67 como VM / 370.

Veja também

Notas de rodapé

Citações

Fontes primárias de CP / CMS

Fontes adicionais de CP / CMS

  • RJ Adair, RU Bayles, LW Comeau e RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320-2007 (maio de 1966)
    - um artigo seminal que descreve a implementação do conceito de máquina virtual, com descrições do CSC S / 360-40 personalizado e do design do CP-40
  • International Business Machines Corporation, CP-67 / CMS , Programa 360D-05.2.005, IBM Program Information Department (junho de 1969)
    - manual de referência da IBM
  • RA Meyer e LH Seawright, "A virtual machine time-sharing system," IBM Systems Journal, Vol. 9, No. 3, pp. 199-218 (setembro de 1970)
    - descreve o sistema CP-67 / CMS, destacando recursos e aplicações
  • RP Parmelee, TI Peterson, CC Tillman e DJ Hatfield, "Virtual storage and virtual machine concepts," IBM Systems Journal, Vol. 11, No. 2 (junho de 1972)

Fontes CP / CMS de fundo

  • FJ Corbató, et al., The Compatible Time-Sharing System, A Programmer's Guide, MIT Press, 1963
  • FJ Corbató, M. Merwin-Daggett e RC Daley, "An Experimental Time-sharing System," Proc. Spring Joint Computer Conference (AFIPS) 21, pp. 335-44 (1962) - descrição do CTSS
  • FJ Corbató e VA Vyssotsky, "Introdução e Visão Geral do Sistema MULTICS", Proc. Fall Joint Computer Conference (AFIPS) 27, pp. 185–96 (1965)
  • PJ Denning, "Virtual Memory", Computing Surveys Vol. 2, pp. 153-89 (1970)
  • JB Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems," JACM Vol. 12, pp. 589-602 (1965)
    - requisitos de memória virtual para o Projeto MAC, destinado para GE 645
  • CAR Hoare e RH Perrott, Eds., Operating Systems Techniques , Academic Press, Inc., Nova York (1972)
  • T. Kilburn, DBG Edwards, MJ Lanigan e FH Sumner, "One-Level Storage System", IRE Trans. Elétron. Computadores EC-11, pp. 223–35 (1962)
    - Manchester / Ferranti Atlas
  • RA Nelson, "Mapping Devices and the M44 Data Processing System," Research Report RC 1303 , IBM Thomas J. Watson Research Center (1964)
    - sobre o IBM M44 / 44X
  • RP Parmelee, TI Peterson, CC Tillman e DJ Hatfield, "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal , Vol. 11, pp. 99-130 (1972)

Recursos adicionais de CP / CMS on-line

As citações detalhadas dos pontos feitos neste artigo podem ser encontradas em History of CP / CMS .

links externos