Ir para o conteúdo principal
Bethemesh
BiografiaHistória da informáticaIniciante

Ken Thompson: de Unix a Go, a simplicidade como método

Como Ken Thompson ligou Unix, a linguagem B e Go através da mesma procura de simplicidade, eficiência e ferramentas combináveis.

Publicado 24 de agosto de 2026Leitura : 5 minPor Yann Bastien
Ken Thompson à esquerda ao lado de Dennis Ritchie em 1973
Mostrar índice
  1. De Multics a Unix
  2. Quando as limitações favorecem a simplicidade
  3. De B ao nascimento de C
  4. Expressões regulares, Plan 9 e UTF-8
  5. «Reflections on Trusting Trust»
  6. Porque Thompson voltou às linguagens com Go
  7. Um legado baseado nas relações entre ferramentas
  8. Cronologia
  9. Perguntas frequentes
  10. Ken Thompson criou Unix sozinho?
  11. Qual a diferença entre as contribuições de Thompson e Ritchie?
  12. A linguagem B ainda é utilizada?
  13. Thompson inventou os pipes Unix?
  14. Qual é a ligação entre Unix e Go?

Grande parte da informática moderna assenta numa ideia que Ken Thompson pôs em prática no final dos anos 1960: um sistema poderoso não precisa de ser complicado se os seus elementos mais simples souberem trabalhar em conjunto. A ideia estrutura Unix, atravessa a linguagem B, prepara C e reaparece décadas depois em Go.

Thompson não seguiu um único programa teórico. Construiu ferramentas para resolver problemas concretos: utilizar interativamente um pequeno computador, escrever um sistema com pouca memória, processar texto ou compilar rapidamente software de grande dimensão. A continuidade está no método: mecanismos reduzidos, compreensíveis e combináveis.

De Multics a Unix

Kenneth Lane Thompson nasceu em 1943 em Nova Orleães. Estudou na University of California, Berkeley, e entrou nos Bell Labs em 1966, participando em Multics.

Multics pretendia oferecer um ambiente interativo a muitos utilizadores, mas tornou-se complexo e dispendioso. Quando Bell Labs abandonou o projeto em 1969, Thompson quis preservar as melhores características da interação numa máquina muito menor.

Num PDP-7, desenvolveu em 1969 um sistema de ficheiros, uma shell e as primeiras funções do que se tornaria Unix. Dennis Ritchie juntou-se rapidamente ao trabalho.

Quando as limitações favorecem a simplicidade

O PDP-7 tinha pouca memória. Cada abstração precisava de justificar o custo. Thompson preferiu pequenos programas especializados e a possibilidade de usar a saída de um como entrada de outro.

Doug McIlroy tinha defendido a ideia dos fluxos; Thompson implementou os pipes em Unix em 1973. O carácter | permitiu ligar comandos e construir pequenos programas a partir de elementos reutilizáveis. O princípio continua presente em sistemas Unix e pipelines de dados.

De B ao nascimento de C

As primeiras versões de Unix eram escritas em assembly e dependiam do processador. Thompson criou B, uma adaptação de BCPL suficientemente pequena para as máquinas disponíveis.

B mostrou limitações no PDP-11. Dennis Ritchie acrescentou tipos e melhorou o modelo de dados, chegando a C no início dos anos 1970. Thompson criou B e o contexto técnico; Ritchie foi o principal projetista de C.

A colaboração permitiu reescrever grande parte de Unix em C, tornando o sistema muito mais portátil. A biografia de Dennis Ritchie e a história de C aprofundam esta evolução.

Expressões regulares, Plan 9 e UTF-8

Thompson desenvolveu também o editor ed e ajudou a difundir as expressões regulares como notação prática para padrões de texto.

Mais tarde trabalhou em Plan 9, sistema distribuído experimental dos Bell Labs. Em 1992 concebeu com Rob Pike UTF-8, codificação Unicode compatível com ASCII que se tornaria dominante na Web.

Estes contributos respondem à mesma pergunta: como definir uma representação suficientemente simples para ser usada em todo o lado, sem impedir a sua extensão?

«Reflections on Trusting Trust»

Em 1983 Thompson e Ritchie receberam o Prémio Turing. Na conferência Reflections on Trusting Trust, Thompson descreveu um compilador modificado capaz de inserir secretamente uma backdoor num programa de login e reproduzir a alteração nas futuras versões do próprio compilador.

A demonstração revela um limite profundo da confiança em software: verificar o código-fonte não basta se a cadeia de ferramentas que o transforma estiver comprometida. Builds reproduzíveis e segurança da cadeia de fornecimento prolongam hoje esse problema.

Porque Thompson voltou às linguagens com Go

Thompson entrou na Google em 2006 e encontrou outro problema de escala: repositórios enormes, compilações demoradas e concorrência difícil de dominar.

Em 2007, Thompson, Rob Pike e Robert Griesemer começaram a definir Go. A linguagem procura compilações rápidas, formatação padrão, gestão automática de memória e mecanismos integrados de concorrência. A sintaxe permanece deliberadamente reduzida para manter legível o código de grandes equipas.

Go não copia C nem substitui Unix. Transfere um método para outro contexto. Publicado como open source em 2009, tornou-se importante em serviços de rede, infraestrutura e sistemas distribuídos.

Um legado baseado nas relações entre ferramentas

Unix continua em Linux, macOS, BSD, Android e infraestruturas de servidores. C permanece essencial nos sistemas. UTF-8 permite trocar texto globalmente. Go equipa software de rede e cloud.

O elo comum não é uma lista de invenções, mas uma maneira de construir: componentes que fazem poucas coisas, permanecem compreensíveis e podem ser combinados através de interfaces claras.

Cronologia

  • 1943: nascimento de Kenneth Lane Thompson em Nova Orleães.
  • 1966: entrada nos Bell Labs e participação em Multics.
  • 1969: primeira versão de Unix no PDP-7.
  • 1969–1970: desenvolvimento de B a partir de BCPL.
  • 1973: pipes em Unix e reescrita do sistema em C com Dennis Ritchie.
  • 1983: Prémio Turing com Ritchie e Reflections on Trusting Trust.
  • 1992: criação de UTF-8 com Rob Pike.
  • 2006: entrada na Google.
  • 2007: início de Go com Robert Griesemer e Rob Pike.
  • 2009: publicação de Go como projeto open source.

Perguntas frequentes

Ken Thompson criou Unix sozinho?

Escreveu a primeira versão em 1969 e foi o principal impulsionador inicial. Dennis Ritchie e outros investigadores dos Bell Labs contribuíram depois para uma obra coletiva.

Qual a diferença entre as contribuições de Thompson e Ritchie?

Thompson criou Unix e B; Ritchie foi o principal projetista de C e teve papel central na reescrita de Unix em C.

A linguagem B ainda é utilizada?

Não de forma corrente. A sua importância é histórica como predecessora direta de C.

Thompson inventou os pipes Unix?

Doug McIlroy formulou e promoveu a ideia; Thompson implementou-a em Unix em 1973.

Qual é a ligação entre Unix e Go?

Não existe uma descendência técnica direta. Ambos refletem, porém, a preferência de Thompson por conceitos simples e combináveis.

Este artigo foi útil?

Fontes e referências

Coleção

Linguagens de programação

17 / 26

  1. 01Grace Hopper: dos primeiros compiladores ao COBOL
  2. 02John Backus: FORTRAN, a notação BNF e a recusa do código de máquina
  3. 03Dennis Ritchie: a linguagem C no coração do Unix
  4. 04FORTRAN: provar que um compilador pode competir com assembly
  5. 05A linguagem C: tornar os sistemas portáteis sem esconder a máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, conceber pela simplicidade
  7. 07Bjarne Stroustrup: conceber C++ sem abdicar do desempenho
  8. 08Pascal: aprender a programar tornando a estrutura visível
  9. 09C++: de C with Classes ao C++ moderno
  10. 10Programação orientada a objetos: objetos, mensagens e abstrações reutilizáveis
  11. 11Guido van Rossum: criar Python para tornar o código legível
  12. 12Brendan Eich: JavaScript, do protótipo da Netscape ao padrão da Web
  13. 13James Gosling: o engenheiro na origem de Java
  14. 14Python: legibilidade, baterias incluídas e um ecossistema global
  15. 15Java: escrever uma vez, executar em qualquer lugar
  16. 16JavaScript: a linguagem que tornou a Web interativa
  17. 17Ken Thompson: de Unix a Go, a simplicidade como método
  18. 18John McCarthy: Lisp e a ideia de programar com símbolos
  19. 19Alan Kay: Smalltalk e o computador como meio pessoal
  20. 20Barbara Liskov: a abstração que tornou o software modular
  21. 21Robin Milner: ML, prova assistida e linguagens da interação
  22. 22Brian Kernighan: AWK, Unix e a arte de explicar código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, a linguagem que ligou as ferramentas da Internet
  25. 25Yukihiro Matsumoto: Ruby e a felicidade do programador
  26. 26Rasmus Lerdorf: PHP e a democratização da Web dinâmica
BiografiaHistória da informáticaIniciante

Dennis Ritchie: a linguagem C no coração do Unix

Como Dennis Ritchie concebeu a linguagem C e contribuiu para o Unix, duas bases que tornaram o software de sistema mais portável.

3 de agosto de 20267 min