Interessante

UNIX: construindo o sistema operacional mais importante do mundo

UNIX: construindo o sistema operacional mais importante do mundo

Se você já usou um smartphone, perdeu a noção do tempo navegando em um site após o outro, ou jogou um videogame em um console Next-Gen, você usou o sistema operacional Unix ou um de seus derivados.

O Linux é o sucessor espiritual do sistema Unix original e o Mac OSX é construído a partir do Unix. Sistemas baseados em Unix ou derivados são usados ​​em gigantescos farms de servidores, processando quase todo o tráfego mundial da Internet. A Internet das Coisas e outros sistemas embarcados usam Unix ou seus sucessores e o Linux baseado em Unix foi usado até mesmo na Estação Espacial Internacional para operar equipamentos essenciais.

Tudo isso é possível porque Kenneth Thompson, Dennis Ritchie e seus colegas não puderam assistir um projeto amado ser vítima de cortes de custos corporativos.

Começo humilde do Unix

Acontece que o sistema operacional mais popular do mundo teve sua origem em um fracasso comercial.

Os primeiros anos da computação foram difíceis para os programadores. Embora os programadores hoje tenham todos os tipos de ferramentas para ajudá-los a escrever, testar e executar software, os primeiros computadores eram sistemas de unidade de lote de cartão perfurado, em que um programador tinha que elaborar um programa manualmente, convertê-lo em cartões perfurados, solicitar um bloco de tempo em uma única máquina de mainframe compartilhada para executar seu programa e, em seguida, afaste-se quando terminar para deixar o próximo programador ter sua vez.

Não foi até John McCarthy, professor do Massachusetts Institute of Technology, conceituar uma maneira melhor em um memorando para seus colegas em 1959. Sua proposta, conhecida como Timesharing, foi revolucionária e tornou possível toda a computação moderna.

Antes de McCarthy, os programas eram lidos no processador, uma instrução por vez, do início ao fim, sem interrupção. Ele lidaria com as instruções de um único programa de usuário inteiramente antes de passar para o próximo programa, mesmo que isso significasse que o processador do computador estava ocioso enquanto o usuário entrava dados ou o computador estava enviando dados para uma impressora.

O que McCarthy propôs foi recapturar esses ciclos de computador obsoletos e não controlados, alocando memória para armazenar o estado do programa em execução, uma vez que ele atinge um ponto em que alguma função de entrada ou saída é necessária. Ele então mudaria para outro programa de usuário, esperando para ser processado até que também exigisse um ciclo de entrada ou saída, onde repetiria o processo.

Desta forma, vários usuários poderiam usar esses sistemas de mainframe antigos com a aparência de que estão usando mais ou menos ao mesmo tempo. Na época, McCarthy e outros perceberam que o potencial de compartilhamento de tempo iria além dos ciclos de entrada e saída, mas levaria quase uma década para que essa ideia amadurecesse.

Multics: o malfadado e mal compreendido progenitor do sistema operacional Unix

Em 1969, a American Telephone & Telegraph Co. (AT&T), havia investido milhões de dólares tentando construir um sistema que aproveitasse o princípio de tempo compartilhado de McCarthy.

O Multiplexed Information and Computing Service (Multics), como era conhecido, foi produto de alguns dos principais cientistas da computação do setor. Trabalhando nos lendários Bell Telephone Laboratories da AT&T, esses pesquisadores, liderados por Kenneth Thompson e Dennis Ritchie, levaram a ideia de compartilhamento de tempo a novos níveis de complexidade e sofisticação.

Os pesquisadores do Bell Lab buscaram combinar o compartilhamento de tempo com todos os tipos de tecnologia emergente em um ambiente operacional completo onde os usuários pudessem executar programas, escrever programas, editar documentos e até mesmo enviar e receber e-mail por meio de uma conexão telefônica.

No que se tornou um dos exemplos mais famosos de aumento de recursos na história da ciência da computação, Multics falhou em cumprir qualquer um de seus objetivos originais estabelecidos pela AT&T porque os desenvolvedores do sistema estavam tentando incorporar todas as inovações que podiam pensar em um sistema que realmente não o exigia.

Frustrada com a falta de progresso no sistema que lhes foi prometido originalmente, a AT&T cortou suas perdas e abandonou o projeto Multics por completo. Incapaz de justificar a permissão de seus pesquisadores trabalharem em um sistema que não tinha nenhum valor comercial aparente, Bell Labs instruiu Thompson, Ritchie e o resto da equipe Multics a interromper qualquer trabalho posterior no sistema.

Isso foi devastador para a equipe do Bell Labs. Poucas pessoas, se é que alguma, fora de sua equipe entenderam o que eles realmente criaram: um sistema operacional multiusuário, funcional e de uso geral, o primeiro desse tipo no mundo.

História do Desenvolvimento Clandestino do Unix

Para a equipe da Bell Labs, abandonar um sistema operacional moderno e retornar aos dias de processamento em lote de cartão perfurado era impossível.

Thompson, Ritchie e Rudd Canaday, outro pesquisador do Bell Labs, logo deram o primeiro passo histórico de colocar no papel os contornos de um tipo inteiramente novo de sistema de arquivos para um computador. Eles imaginaram como os arquivos poderiam ser categorizados e colocados em contêineres que poderiam ser colocados em outros contêineres, criando um diretório de arquivos navegável - o mesmo sistema usado por todos os computadores modernos no mundo hoje.

Thompson então começou a formalizar o sistema Multics que eles haviam criado. Inspirado por um jogo que escreveu para o Multics, ele encontrou um antigo sistema PDP-7 no laboratório que todos consideravam lixo. Um sistema mais antigo e menos robusto do que o mainframe GE-645, Thompson começou a reescrever seu jogo para rodar nele, reduzindo o código para caber no espaço menor.

Thompson logo percebeu que poderia fazer o mesmo para o sistema Multics como um todo e, ao longo de um único mês no verão de 1969, ele reescreveu uma grande parte do Multics para rodar no PDP-7. Colegas divertidos brincaram que os esforços de Thompson bloqueados em casa com o sistema haviam transformado o Sistema de Informação e Computação Multiplexado no Sistema de Informação e Computação Não Multiplexado.

Multics tornou-se Unics e, eventualmente, simplesmente Unix.

O PDP-7, que já era um clunker na época, não foi suficiente para o desenvolvimento ilícito do novo sistema operacional Unix. Então, em 1970, Thompson e seus colegas enganaram a gerência da Bell Labs para que comprasse um sistema PDP-11 mais recente que serviria a um propósito comercial legítimo para a empresa, mas também forneceria secretamente a primeira grande prova de conceito para seu novo sistema.

O projeto foi um sucesso espetacular, fornecendo à equipe a vantagem necessária para solicitar equipamentos adicionais que pudessem usar para desenvolver secretamente o sistema operacional Unix.

Desenvolvimento comunitário do sistema operacional Unix

Por fim, a AT&T tomou conhecimento do que Thompson e os pesquisadores da Bell estavam fazendo. Reconhecendo a genuína utilidade do sistema operacional Unix, eles estavam em uma situação difícil.

Um acordo legal com o governo dos EUA proibia a AT&T de vender ou oferecer suporte a produtos ou serviços que não fossem explicitamente sistemas de telefone e telégrafo, o que o Unix definitivamente não era. Sendo incapazes de vendê-lo como um produto, e sendo incapazes de fornecer qualquer suporte de software para ele em uma capacidade oficial, tudo que eles podiam legalmente fazer era licenciar o sistema operacional Unix para as partes interessadas por uma taxa nominal.

Thompson e companhia pegaram essa oportunidade e correram com ela. Participando de eventos comerciais, eles promoveriam o Unix para desenvolvedores que rapidamente se apaixonaram por ele.

A portabilidade do sistema significava que ele podia ser executado em uma ampla gama de hardware, seu agnosticismo de linguagem significava que várias linguagens eram capazes de rodar em seu ambiente e sua simplicidade básica combinada com recursos de compartilhamento de tempo tornou possível para equipes inteiras de pesquisadores trabalharem sistema com investimento mínimo.

A suposta “pegadinha” do acordo com a AT&T, de que não poderia haver suporte oficial, acabou sendo um enorme benefício orgânico para o sistema operacional Unix no final. Se houvesse um bug no sistema operacional, os usuários teriam que desmontar o código e consertá-lo por conta própria e, se não conseguissem descobrir o que havia de errado, teriam que pedir ajuda a outros usuários Unix.

Logo, os devotos do Unix em todo o país estavam fisicamente enviando uns aos outros fitas de armazenamento de atualizações de código-fonte para consertar bugs, melhorar recursos e compartilhar seu conhecimento entre si apenas no momento em que a computação moderna estava chegando à maturidade.

Não apenas o sistema operacional era genuinamente excelente, mas também tinha um timing impecável. Os programadores que aprenderam a programar em um sistema Unix iriam então desenvolver sistemas proprietários para outras máquinas, usando o Unix como inspiração para seus sistemas, se não construindo completamente seu sistema operacional em cima do próprio Unix.

As lutas legais eventualmente eclodiram enquanto a AT&T tentava fazer valer sua reivindicação do sistema operacional Unix, mas como todas as boas tentativas de eliminar o compartilhamento de arquivos, os esforços da AT&T apenas aceleraram a disseminação clandestina e rebelde do sistema proto-open source Unix, especialmente desde vários as recriações da versão do Unix da AT&T há muito estavam à solta. Isso permitiu o desenvolvimento contínuo de sistemas baseados em Unix fora do alcance dos advogados da AT&T, cimentando firmemente seu status como o sistema operacional ideal para profissionais de informática e amadores.

Hoje, o Unix e seus derivados constituem a maioria dos sistemas operacionais em uso e sua popularidade continua a se espalhar à medida que a popularidade do software de código aberto cresce. Todos os agradecimentos a Kenneth Thompson, Dennis Ritchie e seus colegas rebeldes do Bell Labs, que - ao se recusarem a assistir à morte de seu amado Multics - garantiram que seu sistema operacional Unix continuasse rodando o mundo.


Assista o vídeo: Sistema operacional Unix (Novembro 2021).