- Aos 82 anos, Ken Thompson relembra os primórdios do sistema operacional Unix e a cultura de experimentação livre nos tempos de Bell Labs
- Ele explica como, após o fracasso do projeto Multics, acabou construindo por acaso a estrutura central do Unix ao aproveitar um computador que havia sobrado
- A equipe de desenvolvimento do Unix conseguiu um PDP-11 e evoluiu o sistema operacional de forma não oficial, formando a “Unix Room”, cheia de humor e camaradagem interna
- O ambiente aberto do Bell Labs serviu de base para o crescimento da linguagem C e do Unix e, mais tarde, para a cultura de colaboração que levou ao desenvolvimento da linguagem Go
- Thompson destaca que o Unix foi um experimento comunitário que praticava a abertura antes do open source, e avalia que esse espírito ainda permanece na cultura tecnológica atual
O nascimento do Unix e a cultura experimental do Bell Labs
- Ken Thompson lembra que participou do projeto Multics no Bell Labs em meados dos anos 1960, mas descreve o sistema como “grande, lento, caro e um projeto fadado ao fracasso”
- Após o fim do Multics, ele continuou seus experimentos com o grande computador que restou e tentou melhorar o dispositivo de armazenamento de dados CRAM e a memória de tambor
- Durante experimentos para aumentar a velocidade de leitura da memória, acabou criando, sem perceber, um sistema que já tinha a forma de um sistema operacional
- Mesmo depois de o Bell Labs determinar que “a pesquisa em sistemas operacionais deveria ser interrompida”, ele concluiu de maneira não oficial as bases do Unix
- Assim nasceu o Unix inicial, com componentes essenciais como sistema de arquivos, driver de disco e dispositivos de I/O
A comunidade inicial do Unix e a chegada do PDP-11
- Os primeiros usuários do Unix incluíam Dennis Ritchie, Doug McIlroy, Robert Morris e Brian Kernighan, e o grupo era tão pequeno que os IDs de usuário tinham apenas um dígito
- Thompson projetou o sistema de arquivos com Rudd Canaday em um quadro-negro e usou o sistema de gravação telefônica do Bell Labs para documentar tudo
- Joe Ossanna contornou a burocracia do Bell Labs para conseguir um computador PDP-11, criando um ponto de virada para o desenvolvimento do Unix
- O PDP-11, comprado nominalmente “para processamento de texto”, acabou sendo usado na prática como equipamento central do desenvolvimento do Unix
- Quando secretárias do departamento de patentes passaram a redigir documentos no sistema Unix, formou-se a primeira base de usuários externos
A “Unix Room” e a comunidade livre
- O PDP-11 foi instalado em um espaço no sexto andar do Bell Labs, que logo se transformou no centro dos desenvolvedores conhecido como “Unix Room”
- Depois de remover um velho vending machine e itens de depósito, um segundo PDP-11 foi adicionado, e o local se tornou o centro das discussões sobre redes e composição tipográfica de documentos
- Com até um sistema PBX próprio ligado por linhas telefônicas, funcionava como um hub de pesquisa não oficial
- Thompson relembra “os tempos em que arrombávamos fechaduras e fazíamos pegadinhas na Unix Room”
- Ele descreve uma atmosfera experimental em que humor e rebeldia coexistiam, como no episódio em que esconderam um ‘boot’ usado para imobilizar carros por infração de estacionamento
- A história terminou em negociação, quando o responsável pela segurança propôs que, “se devolvessem o boot, ele deixaria de implicar com as secretárias”
- Dennis Ritchie descreveu o Unix como “um sistema em que uma comunidade podia se formar”, e os regulares ‘Unix Lunch’ viraram um espaço de troca de ideias
A abertura do Bell Labs e o crescimento do Unix
- Thompson avalia que um ambiente de pesquisa sem pressão e com autonomia foi o que levou ao sucesso do Unix e da linguagem C
- No Bell Labs, havia “um clima em que se podia tentar qualquer coisa”, com colaboração entre pessoas de diferentes formações
- O linguista Lee McMahon contribuiu para o desenvolvimento do Unix ao obter um dicionário legível por máquina e uma versão eletrônica dos Federalist Papers
- Quando o texto não cabia no editor ed, Thompson criou a ferramenta de busca por padrões grep
- O Unix se espalhou dentro do Bell Labs para tarefas administrativas e sistemas de comutação telefônica, tornando-se infraestrutura central em toda a organização
A filosofia de abertura antes do open source
- Thompson menciona que Richard Stallman desenvolveu a filosofia do open source, mas esse espírito já existia no Unix
- Na época, o Unix tinha recursos de proteção de arquivos, mas, na prática, todo o código-fonte permanecia aberto para que qualquer pessoa pudesse modificá-lo
- Sob a regra implícita de “se você mexeu, então é seu”, formou-se uma cultura de desenvolvimento em que criação coletiva e experimentação eram rotina
- O caso em que todos liam e deixavam comentários no rascunho de romance salvo no diretório do colega P. J. Plauger aparece como um episódio simbólico de colaboração e abertura
- Essa cultura acabou criando um modo comunitário de desenvolvimento, como escrever juntos em um quadro-negro
- Mais tarde, algumas ideias surgidas no projeto Plan 9 do Bell Labs evoluíram para o padrão UTF-8, base da web moderna
A trajetória depois do Bell Labs e a linguagem Go
- Thompson comenta que deixou o Bell Labs em 2000, após a desintegração do sistema Bell, e menciona a mudança na cultura organizacional
- Segundo ele, o ambiente havia se tornado um lugar em que era preciso “justificar o que se estava fazendo”, e a liberdade de pesquisa havia desaparecido
- Depois disso, trabalhou por seis anos na empresa de equipamentos de rede Entrisphere antes de ir para o Google
- Na época, seu chefe na Entrisphere foi para o Google e o convidou, e Eric Schmidt era um antigo colega dos tempos de Bell Labs
- No Google, participou da revisão de segurança do Android e depois montou a equipe de desenvolvimento da linguagem Go com Rob Pike
- O texto avalia isso como um caso em que a relação de colaboração do Bell Labs levou, 30 anos depois, à criação de uma nova linguagem de programação
Conclusão: um legado tecnológico criado por curiosidade e comunidade
- As lembranças de Ken Thompson mostram que o Unix não foi apenas uma tecnologia, mas o resultado de exploração livre e espírito comunitário
- O ambiente aberto do Bell Labs funcionou como um protótipo da cultura moderna de open source
- Sua experiência permanece como um exemplo que lembra que criatividade e colaboração são motores centrais da inovação tecnológica
1 comentários
Comentários do Hacker News
É impressionante o espírito de colaboração criativa e alta confiança compartilhado por vários projetos de software bem-sucedidos
Essa cultura vai na direção oposta ao pensamento estilo MBA ou ao ambiente burocrático de grandes corporações
Isso faz lembrar casos como Unix, GNU, Linux, o Python inicial e até os primeiros Rockstar Games
A burocracia acaba corroendo tudo, e os gestores erguem barreiras enquanto o sigilo vai minando a confiança
Para quem chega novo, é difícil até entender o sistema, e ideias novas morrem antes mesmo de começar
Organizações grandes até podem ganhar dinheiro, mas se você quer provocar mudança, confiança é essencial
O clima era parecido com o dos VCs de hoje espalhando dinheiro por aí
É interessante que os primeiros usuários do Unix eram secretárias de patentes e funcionários administrativos
Como era um sistema que as pessoas começaram a usar espontaneamente porque gostavam dele, surgiram pressões do mundo real, e isso acabou funcionando de forma saudável
Mesmo tentando ideias experimentais, não dava para quebrar um sistema que usuários reais usavam todos os dias
Assim como o Linux começou “só como hobby”, o Unix inicial também partiu menos de uma grande visão e mais de experimentos para criar ferramentas úteis
Claro que o ambiente da Bell Labs foi uma enorme vantagem
O caso das botas de segurança roubadas foi interessante
Chamou atenção o fato de isso ter sido resolvido não por um procedimento oficial, mas por negociação direta com o segurança
É ótima a história de Thompson desenhando o sistema de arquivos do Unix com Rudd Canaday num quadro-negro e usando o serviço telefônico de ditado da Bell Labs
Hoje qualquer pessoa pode usar facilmente serviços de reconhecimento de voz, mas naquela época isso era realmente inovador
Claro, talvez na época não fosse IA e sim uma secretária fazendo a transcrição, mas pensando na capacidade técnica da Bell Labs, também não parece algo totalmente impossível
Quando escrevo, fico querendo revisar o tempo todo, e isso mais atrapalha do que ajuda
É interessante que as ferramentas do começo, como mesg e talk, tenham sido projetadas pensando em formação de comunidade
Graças à estrutura meio aberta, também era possível entrar no diretório home de outra pessoa e olhar arquivos
O ITS não tinha restrições de permissões e incentivava a colaboração, mas a maioria dos servidores Unix trancava os diretórios home com 0700
Na legenda da foto de Ken e dmr juntos aparece a frase “queríamos criar um sistema em que uma comunidade pudesse se formar”
Isso lembra a citação de O Senhor dos Anéis no topo do arquivo-fonte do Perl
O código relacionado pode ser visto neste link do GitHub
Tudo o que Ken contribuiu para a linguagem Go pode ser visto no repositório Git
Sem spoilers, mas há uns trechos de código bem divertidos ali
Fiquei curioso com o título da música “Radio UNIX USA”, do álbum hardcore punk de 1981 This is Boston not LA
A letra não tem absolutamente nada a ver com Unix, mas como a banda era de Boston, pode haver alguma conexão com o MIT
O título também pode ser uma paródia da regra dos indicativos de chamada de quatro letras das rádios americanas
Se este texto lhe interessou, recomendo 《Hackers》, de Steven Levy
O livro aborda a história da cultura hacker, do MIT AI Lab ao Homebrew Computer Club e aos primeiros programadores de jogos
Eu também li quando era jovem, me apaixonei por programação e ainda hoje sinto em startups uma alegria parecida de colaboração
Link do Goodreads
《Unix: A History and a Memoir》, de Brian Kernighan, também é uma excelente leitura