1 pontos por GN⁺ 2024-02-13 | 1 comentários | Compartilhar no WhatsApp

A história do desenvolvimento do sistema operacional Multics

  • André Bensoussan, que desenvolveu o sistema operacional Multics, foi responsável pelo principal trabalho de alterações no sistema de arquivos.
  • O gerenciador VTOC é um subsistema que realiza a movimentação de informações de arquivos entre disco e memória, o gerenciamento do pool de buffers de memória compartilhada e a gestão do espaço de informações no disco.
  • André ficou encarregado do projeto, implementação e testes do gerenciador VTOC, conduzindo o trabalho de design com muitos diagramas.

Processo de desenvolvimento e sucesso

  • Tom Van Vleck, coordenador do projeto, estava preocupado com o cronograma, mas ficou tranquilo quando André começou a escrever o código.
  • André escrevia o código com lápis em vez de usar um terminal de computador, recusando até ajuda para digitar e fazendo todo o trabalho pessoalmente.
  • No fim, ele digitou no terminal o código limpo escrito a lápis e tentou compilá-lo; depois de corrigir alguns erros de digitação, a compilação foi bem-sucedida.
  • Quando foi integrado ao sistema e testado, o gerenciador VTOC funcionou perfeitamente desde o início.

O segredo do sucesso de André

  • André escreveu um programa perfeito usando apenas um lápis como ferramenta.
  • O único bug encontrado no gerenciador VTOC foi causado por um erro de Tom Van Vleck, que havia informado incorretamente a ordem de chamada do procedimento de tratamento de erros.
  • A forma de trabalho de André foi apresentada como uma história sobre engenharia de software na edição de abril de 1994 da IEEE Computer e atualizada em novembro de 2003.

Opinião do GN⁺

  • A história do desenvolvimento do sistema operacional Multics por André Bensoussan mostra como projeto rigoroso e concentração podem produzir um resultado perfeito.
  • Quando comparado às complexas ferramentas modernas de desenvolvimento de software, o método tradicional de usar apenas lápis e papel destaca a importância de uma abordagem fiel aos fundamentos.
  • Essa história é um bom exemplo que relembra a importância do trabalho preparatório minucioso e dos testes na área de engenharia de software, além de oferecer uma lição importante também para a formação em engenharia.

1 comentários

 
GN⁺ 2024-02-13
Comentários no Hacker News
  • Resumo do primeiro comentário:

    • Requisitos claros: o motivo de o software ter menos bugs e ser rápido é ter requisitos claramente definidos. O software atual é vago sobre o que deve ser construído e muda continuamente por causa da abordagem "ágil". Se você der aos desenvolvedores uma API clara e critérios bem definidos, a maioria consegue escrever código eficiente.
  • Resumo do segundo comentário:

    • A capacidade dos programadores soviéticos: pela experiência de trabalhar com desertores soviéticos, a razão de os programadores soviéticos serem excelentes era o acesso extremamente limitado a computadores. Como precisavam programar com papel e lápis, havia um esforço para fazer funcionar corretamente desde o início.
  • Resumo do terceiro comentário:

    • A importância de um espaço de trabalho pessoal: citando um comentário da conta jrd259 em um tópico anterior do Hacker News, destaca-se a importância de uma mesa grande e de um espaço de trabalho privado sem notificações.
  • Resumo do quarto comentário:

    • Experiência de programar no papel: quando criança, na casa do avô, escrevia programas em Turbo Pascal numa máquina de escrever sem ter um computador e depois os executava no PC. Também compartilha a experiência de passar para o papel a função de adição binária da linguagem de programação exótica Ziim que criou, encontrando e corrigindo bugs. Enfatiza que limitar os métodos "fáceis" pode levar a um código mais bem pensado.
  • Resumo do quinto comentário:

    • Programação no passado: no fim da era do "big iron", programadores eram pouco diferentes de operadores de entrada de dados. Os programas eram escritos no papel, e o tempo de computação era caro e valioso. Quando surgia um bug, não era possível corrigí-lo até agendar a próxima execução da CPU. Isso incentivava uma abordagem cuidadosa. Hoje, o desenvolvimento de software avança de forma iterativa com depuração em IDEs.
  • Resumo do sexto comentário:

    • Código escrito por André Bensoussan: fornece um link para um código escrito por André Bensoussan.
  • Resumo do sétimo comentário:

    • O tamanho do software no passado: naquela época, o software era muito menor do que hoje, e a maioria dos projetos tinha tamanho na faixa de megabytes, grande demais para ser "mantida na memória" como um único arquivo.
  • Resumo do oitavo comentário:

    • Tarefas de programação na escola: na experiência de um amigo, as tarefas de programação eram entregues em papel na escola e o resultado vinha uma semana depois. Uma "compilação" de uma semana era uma experiência educacional que fazia a pessoa revisar o trabalho duas vezes.
  • Resumo do nono comentário:

    • Ausência de ágil/scrum: como resposta a como André conseguia trabalhar daquela forma, a explicação é que metodologias de desenvolvimento ágil/scrum ainda não tinham sido concebidas.
  • Resumo do décimo comentário:

    • Experiência de codificar no papel: aos 14 anos, na aula de programação do ensino médio, a maior parte do código era escrita no papel. Como criança pobre em um país pobre, não havia PC em casa, e o clone de ZX Spectrum do laboratório da escola não conseguia executar o Turbo Pascal que usavam.