Ken Thompson relembra as origens barulhentas do Unix e como abriam fechaduras
Há meio século, Ken Thompson e Dennis Ritchie apresentaram pela primeira vez o sistema operacional Unix em um artigo histórico. Mas em uma recente palestra, Thompson contou uma história anterior — sobre os dias “barulhentos” em que o projeto Unix começou, quando ele e seus colegas engenheiros na Bell Labs tinham o hábito de abrir fechaduras.
“O prédio era antigo. As fechaduras eram antigas”, lembrou Thompson durante uma entrevista no palco. “Era muito fácil abri-las.”
Thompson falou no evento Systems@50, uma conferência em outubro comemorando o 50º aniversário do artigo de Thompson e Ritchie de 1974 no ACM que apresentou o Unix ao mundo. (O evento foi organizado pelo Instituto de Pesquisa de Software da Clemson University.)
A palestra de Thompson, “Evolução do Unix - Antes e Depois”, focou nos primeiros dias do projeto. Ele descreveu um grupo unido de colegas trabalhando em um prédio antigo — o terceiro andar da Bell Labs em Murray Hill, Nova Jersey — onde os banheiros eram “imensos” e “de mármore”. Mas o prédio também tinha uma característica peculiar: “Todas as portas tinham fechaduras, e todas as fechaduras eram do mesmo tipo”, recordou Thompson. “E se você perdesse a chave, teria um grande problema… então, aprendemos a abrir fechaduras.”
Thompson então descreveu como ele e seus colegas engenheiros se tornaram tão proficientes em abrir fechaduras que podiam fazê-lo discretamente usando apenas um clipe de papel. “Se você estivesse esperando, ouvisse um ‘clique’ quando a fechadura abrisse.”
Mas essa não era a única maneira de entrar. Havia também uma técnica mais barulhenta, que envolvia bater com a mão no lado da porta, perto da fechadura. “Isso fazia com que o ferrolho se retraísse”, explicou Thompson, “e a porta abria.”
“Então, se você estivesse andando pelo corredor e visse alguém batendo em uma porta, você sabia que eles haviam perdido a chave… Era uma coisa comum.”
A Estrutura Social
Essa história de abertura de fechaduras levou a uma observação mais profunda. “Isso meio que descreve a estrutura social daquele lugar”, refletiu Thompson. “Éramos todos amigos. Éramos uma equipe muito coesa.”
Thompson também compartilhou sua perspectiva sobre a natureza da pesquisa na Bell Labs, que ele chamou de “o melhor lugar do mundo para se fazer pesquisa”. Ele descreveu uma cultura que priorizava a busca por grandes ideias, em vez de simplesmente atender às demandas corporativas. “A pesquisa era sobre o desconhecido. Você não sabia o que estava fazendo — você estava tentando fazer algo.”
E isso significava que a administração dava aos pesquisadores um grau notável de liberdade. “Eles nos deixavam em paz. Eles não nos incomodavam. Nós nos autodirigíamos… A administração nos protegia.”
Era um ambiente que permitia a Thompson e Ritchie a liberdade de criar o Unix.
O Nascimento do Unix
O Unix começou com um projeto anterior, o Sistema Operacional Multics, no qual a Bell Labs participou junto com o MIT e a General Electric. Thompson chamou o Multics de “um sistema operacional enorme e impressionante”, mas a Bell Labs eventualmente se retirou do projeto. “Eles nos tiraram do Multics”, disse Thompson, “e isso nos deixou muito tristes.”
Sem um sistema operacional grande e interessante para trabalhar, Thompson e seus colegas se sentiram desmotivados. “Nós meio que sentamos e reclamamos por cerca de um ano”, lembrou ele. “Não tínhamos um bom ambiente de computação.”
Eventualmente, Thompson decidiu criar seu próprio sistema operacional, essencialmente recriando o que ele mais gostava no Multics. Ele começou a trabalhar sozinho, mas logo outros se juntaram a ele. “As pessoas começaram a seguir meus rastros e se interessaram”, disse Thompson. “E então, lentamente, as pessoas se juntaram.”
Dennis Ritchie também se envolveu, e o projeto ganhou vida própria. “Foi muito orgânico”, observou Thompson. “Não havia planejamento. Não havia orçamento. Era apenas um grupo de pessoas fazendo coisas porque eram divertidas.”
‘Um Computador Muito, Muito Pequeno’
Thompson também descreveu o humilde hardware no qual o Unix foi originalmente desenvolvido: um computador PDP-7 da Digital Equipment Corporation, que havia sido relegado a um canto. “Era um computador muito, muito pequeno”, disse Thompson. “Era basicamente uma CPU e algum tipo de display de vetor… Não tinha disco. Não tinha nada.”
Para programar nesta máquina limitada, Thompson usou um computador GECOS (semelhante a um IBM 7094) para cross-compilar seus programas, escrevendo os resultados em fita paper tape. Então, ele carregava a fita no PDP-7. “Eu carregava a fita, e ela era executada. E se não funcionasse, eu tinha que voltar ao GECOS.”
O projeto começou com a criação de um sistema de arquivos, seguido por um kernel de sistema operacional. “Uma vez que tivemos um sistema de arquivos e um kernel de sistema operacional, começamos a adicionar utilitários”, disse Thompson. Um dos primeiros foi um editor de texto, e outro foi um assembler. “E então escrevemos um shell, que era basicamente um interpretador de comandos.”
Eventualmente, o projeto ganhou um PDP-11, que vinha com um disco RP03 de 10 megabytes. “Parecia infinito”, disse Thompson sobre o espaço em disco. “Era enorme. Nós o compartilhamos entre três sistemas operacionais.”
‘Era Muito Mais Fácil Naquela Época’
Thompson também refletiu sobre as diferenças entre a programação daquela era e a de hoje. “Era muito mais fácil naquela época”, disse ele. “Você podia entender o sistema inteiro… Você podia entender o hardware, você podia entender o software, você podia entender o sistema operacional, os aplicativos. Tudo.”
Ele contrastou isso com a complexidade dos sistemas modernos. “Hoje em dia, é impossível entender tudo. Você tem que se especializar.”
Mas Thompson também reconheceu as vantagens dos computadores atuais. “Eles são incríveis”, disse ele. “Eles são muito, muito mais rápidos. Eles têm muito, muito mais memória. Eles têm muito, muito mais disco. Tudo é melhor… exceto a complexidade.”
No final, Thompson parecia aceitar essa troca. “A complexidade é o preço que pagamos pelos recursos que temos.”
A palestra terminou com Thompson sendo questionado se ele ainda programa. “Não”, respondeu ele. “Eu basicamente desisti quando surgiram os sistemas orientados a objetos… Passei a vida toda programando em linguagens de procedimentos, e a programação orientada a objetos não fez sentido para mim.”
Ele então brincou: “Eu me aposentei efetivamente quando isso aconteceu.”
Via: https://thenewstack.io/ken-thompson-recalls-unixs-rowdy-lock-picking-origins/