Skip to topic | Skip to bottom
www.postcogito.org
          ...sine propero notiones
Kiko
Você está aqui: Kiko > PostsEmPortugues > PtBrBlogEntry2007Mar08A Imprimível | fim do tópico


Start of topic | Skip to actions
English Version

O Legado do DJB Dando Frutos

Rec 08-mar-2007 23:00

O Daniel Bernstein (também conhecido como "DJB") inaugurou um novo estilo na programação para Unix: cirar programas muito pequenos e simples que realizam apenas uma tarefa simples, com atenção particular quanto à confiabilidade, condições de falhas e em não criar buffer overflows que possam ser usados para subverter o programa. Encadeando vários desses programas, tem-se sistemas confiáveis, rápidos e muito seguros -- muito mais do que quando usamos abordagens monolíticas.

Os exemplos mais proeminentes dessa filosofia são o qmail e o tinydns -- eles nos livraram de centenas de vulnerabilidades advindo do sendmail e do bind. Esses programas trouxeram considerável paz de espírito para muitos administradores de sistemas: eles têm garantias fortes de que seus servidores publicamente acessíveis não serão invadidos através desses programas.

Mais importante ainda, o DJB refutou a idéia que "programação segura é difícil demais", que o nível de atenção aos detalhes que ela requer "não é prática", bem como argumentos espúrios similares. Parodiando o estilo um tanto rude do DJB, as vulnerabilidades são em grande medida uma expressão da incompetência dos programadores.

Ainda assim, muito das idéias e técnicas do DJB ainda são desconhecidas. Eu não vejo muitos cursos de programação em Unix usando a abordagem do DJB; a maioria deles apenas repetem os mesmos métodos arcaicos e se baiseiam em livros de mais de uma década atrás. Apesar do qmail já ser o segundo mais popular servidor de correio na Internet, ele ainda não é o número um -- segurança, ao que parece, não está muito alto na lista de prioridades de muita gente.

Entretanto, é com alegria que eu noto que tudo isso está finalmente mudando. Agora temos vários outros programadores seguindo o estilo DJB:

  • Laurent Bercot organizou e melhorou várias das bibliotecas do DJB, criando a skalibs, além de vários outros utilitários. Suas páginas inclsuivem seguem o estilo HTML classico minimalista do DJB.
  • O pessoal do site SuperScript criaram clientes e servidores SSL aderentes à especificação UCSPI criada pelo DJB. Coisa semelhante também foi feita para o caso de IPC. Há muitas outras coisas interessantes no site deles.
  • Paul Jarc também oferece vários programas interessantes, tal como utilitários para manipulação de descritores de arquivos, o runwhen como alternativa para o cron, várias ferramentas para gerenciamento de pacotes usando a convenção /package e muito mais.
  • Felix von Leitner é famoso pelos seus embutils, substitutos para os utilitários ls, mv, cp, dd, etc., clássicos do Unix, mas usando a muitíssimo mais leve e não menos famosa diet libc. Na página do seu projeto libowfat (visando a reimplementar as bibliotecas do DJB sob a GPL), ele sumariza o trabalho do DJB de forma bem legal:
Uma das melhores maneiras de aprender boas práticas de programação é ler o código dos outros. Eu li o código fonte de um monte de gente. Um dos momentos mais inspiradores da minha carreira enquanto programador em C foi olhar o código do Dan Bernstein. Enquanto a maioria dos programadores tropeça em APIs ruins durante suas vidas, Dan não apenas começou a questioná-las, mas também definiu novas e melhroes APIs e as implementou.
  • Há um site chamado thedjbway.org que mostra como criar o "servidor perfeito" usando exclusivamente software do DJB e similares.

O trabalho desse e muitos outros programadores nos permite sonhar com um futuro onde os sistemas computacionais serão muito mais confiáveis e difíceis de invadir do que o software nojento de hoje em dia. O futuro começa agora: se você é um administrador de sistemas, recomendo fortemente que teste esses utilitários, leia suas documentações a fundo e passe a usá-los nos seus sitema -- eles se tornarão melhores, rápidos e mais seguros. Se você for um programador, eu recomendo fortemente estudar o código que esses caras escreveram -- você se tornará um programador muitíssimo melhor.

Mas se você é um desses programadores que só sabe Java e que acredita que pode continuar vivendo sem esse conhecimento -- é por sua causa que esse futuro ainda está tão distante. Lembre-se: Java é escrita em C. Faça um favor a si mesmo: aprenda C e estude esse material.
topo


Você está aqui: Kiko > PostsEmPortugues > PtBrBlogEntry2007Mar08A

topo

Creative Commons License   O conteúdo deste site está disponibilizado nos termos de uma Licença Creative Commons, exceto onde dito em contrário.
  The content of this site is made available under the terms of a Creative Commons License, except where otherwise noted.