Pular para o conteúdo principal

Multics


       O Multics ou Multiplexed Information and Computing Service, era um conceito muito adiante do seu tempo - ou do nosso e foi o primeiro sistema operacional de tempo compartilhado (CTSS - Compatible Time-Sharing System). Criado em 1964, quando seu projeto teve ínicio, a última instalação operacional do Multics foi desligada apenas em 31 de outubro do ano de 2000.

       Originalmente foi o resultado do projeto MAC cooperativo liderado pelo MIT (com Fernando Corbató), junto da divisão de produtos para grandes computadores da companhia General Electric e dos Laboratórios Bell de telefonia. Os laboratórios Bell abandonaram o projeto em 1969, e em 1970 a empresa GE, incluindo o Multics, foram comprados pela Honeywell.

       Multics foi concebido como um produto comercial para GE, e foi isto que ele foi para Honeywell, apesar de não ter sido bem sucedido. Contudo, ele teve um poderoso impacto no ramo da computação, devido as suas novas e valiosas idéias. Apesar de ter sido bastante criticado na sua época, a história provou que essas reclamações eram sem fundamento.

       Ele tinha inúmeros recursos visando a obter uma alta acessibilidade, para que fosse produzido uma utilidade computacional, similar a aquela usada pelos serviços telefônicos e elétricos. Para conseguir isto, além de ser modular em sua estrutura programacional, o seu hardware também o era, e o sistema poderia crescer em tamanho simplesmente adicionando mais recursos da fonte apropriada, poder computacional, memória principal, espaço em disco, etc. Listas de controle de acesso separadas em cada arquivo provinham o compartilhamento das informações de forma flexível, mas também provinham privacidade quando esta era necessária. Continha também uma quantidade de mecanismos padrão que permitiam que engenheiros analizassem a performance do sistema, assim como o número de mecanismos adaptativos de otmização de performance.

       Segundo a visão dos seus criadores, haveria imensos computadores, poderosos e inderrubáveis, rodando Multics, sendo acessados por milhares de pessoas em terminais burros espalhadas por todo o planeta. Esses usuários pagariam suas "contas de computador" como hoje pagamos luz, água e TV a cabo.

       O Multics foi distribuido e licenciado de 1975 a 2000 pelo Groupe Bull na Europa, e nos E.U.A pela Bull HN Information Systems Inc. Em 2006, Bull SAS tornou aberto o codigo fonte para as versoes MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 e MR12.5 do Multics.

Objetivos

       Como descrito no artigo científico de 1965 Introduction and Overview of the Multics System por Corbató e Vyssotsky, os nove principais objetivos do Multics eram:
  1. Uso remoto e conveniente de terminais.
  2. Operação contínua e análoga aos serviços elétricos e telefônicos.
  3. Uma grande variedade de configurações do sistema, cambiáveis transparentemente.
  4. Um sistema de arquivos de alta confiança.
  5. Suporte para informação compartilhada selecionada.
  6. Estruturas hierárquicas de informação.
  7. Suporte a vários tipo de aplicações
  8. Suporte para vários ambientes de programação e interfaces para o usuário.
  9. A habilidade de evoluir o sistema com mudanças em sua tecnologia e aspirações do usuário.
Características do Multics
  • Memória segmentada
       A arquitetura de memória do Multics divide a memória em segmentos. Cada segmento tem endereços de 0 ate 256K palavras(1 MB). O sistema de arquivos é integrado com o acesso a memória do sistema para que o acesso de arquivos pelos programas possa ser feito através de referências na memória.

  • Memória virtual
       O Multics usa memória mapeada da maneira que foi inaugurada pelo sistema operacional Atlas. Endereços gerados pela CPU são traduzidos pelo hardware de um endereço virtual para um endereço real. O acesso a memória virtual e feito de maneira transparente usando um esquema de três níveis: disco, armazenamento principal e dispositivo de mapeamento.

  • Implementação de linguagem de alto nível
       Multics foi escrito em na linguagem PL/I, que foi proposta em 1965 pela IBM. Apenas uma pequena parte do sistema operacional foi implementada em Assembler. Escrever um sistema operacional usando uma linguagem de alto nivele era uma idéia bastante radical para a sua época.

  • Processamento de memória multiprocessado
       O hardware do Multics suporta várias CPUs compartilhando a mesma memória física. Todos os processadores são equivalentes.

  • Suporte a várias linguagens
       Além de PL/I, Multics provê suporte as linguagens BCPL, BASIC, APL, FORTRAN, LISP, SNOBOL, C, COBOL, ALGOL 68 e Pascal. Rotinas em quaisquer uma dessas linguagens podem chamar as outras.

  • Banco de dados relacional
       Multics proveio o primeiro banco de dados relacional da época, o Multics Relational Data Store (MRDS) em 1978.

  • Segurança
       Multics foi desenvolvido para ser seguro desde o seu início. Em 1980s, o sistema foi premiado com qualidade B2 de segurança pelo governo americano NCSC, o primeiro(e durante anos) sistema a ter uma qualificação B2.

  • Reconfiguração on-line
       Multics foi desenvolvido de rodar 7 dias por semana, 24 horas por dia. CPUs, memória, controladores de I/O, e drives de disco podem ser adicionados e removidos da configuração do sistema enquanto o sistema esta funcionando, sem precisarmos reiniciar o sistema.

  • Engenharia de software
       O time de desenvolvimento pôs muito esforço em encontrar formas de construir um sistema de maneira organizada. O manual do programador para o sistema Multics(The Multics System Programmer's Manual - MSPM) foi escrito antes da implementação começar. Tinhas mais de 3000 paginas e ocupava varias prateleiras. (Clingen e Corbató mencionam que não seria possível construir o sistema, sem a invenção da máquina de fotocópia). Linguagem de alto nível, design e revisão de código, programação estruturada, modularidade e criação de camadas foram todas empregadas intensivamente para gerenciar a complexidade do sistema, que foi um dos maiores esforços para desenvolvimento de software em sua época.


Influências do Unix

       Ken Thompson e Dennis Ritchie, os desenvolvedores do Unix, trabalharam no Multics até que os laboratórios da Bell abandonaram o esforço no desenvolvimento do Multics em 1969. O nome do sistema Unix (originalmente Unics) é uma brincadeira com o Multics feita por Brian Kernighan. Algumas idéias do Multics foram desenvolvidas mais tarde no Unix.

Comentários

Postagens mais visitadas deste blog

Ken Thompson

Ao lado de Dennis Ritchie , Ken Thompson recebe destaque pelo desenvolvimento do Unix. Ken Thompson        Kenneth Thompson é um cientista computacional conhecido pela sua influência no sistema operacional UNIX. Nasceu no ano 1943, em Nova Orleans, Louisiana, EUA. Ele tirou o grau de Bachelor e Master, ambos em engenharia electrotécnica, na UC Berkeley. Em 1969, enquanto trabalhava nos laboratórios Bell, Thompson e Dennis Ritchie foram os principais criadores do sistema operacional UNIX. Thompson também criou a linguagem de programação B, uma precursora da linguagem C de Dennis Ritchie, uma das linguagens de programação mais utilizadas. Mais tarde, enquanto se encontrava ao serviço dos laboratórios Bell, ele e Rob Pike foram os principais criadores do sistema operacional Plan 9. Durante o seu trabalho, ele também criou a codificação de caracteres UTF-8 para uso no sistema operacional Plan 9. Ele também escreveu programas para a enumeração completa de finalizações de xadrez, para toda

Projeto Minix

       O seu desenvolvimento começou como um projeto particular, inspirado pelo interesse de Linus no Minix, um pequeno sistema UNIX desenvolvido por Andrew S. Tanenbaum. Ele limitou-se a criar, nas suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). E depois de algum tempo de trabalho no projeto enviou a seguinte mensagem (adaptada) para a lista de discussão do minix:         “Você suspira por melhores dias do Minix-1.1, quando os homens eram homens e escreviam seus próprios “device drivers”? Você está sem um bom projeto em mãos e está desejando trabalhar num S.O. que possa ser modificado de acordo com suas necessidades? Está a achar frustrante quando tudo funciona no Minix? Chega de noites ao computador para conseguir que os programas funcionem? Então esta mensagem pode ser exatamente para você. Como eu mencionei há um mês, estou trabalhando numa versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, f