Linux em 25 anos: IEEE Spectrum entrevista Linus Torvalds

O criador do Kernel Linux fala sobre o seu passado, presente e futuro

Linus Torvalds criou o núcleo original do sistema operacional Linux em 1991 como um estudante de ciência da computação na Universidade de Helsinki, na Finlândia. Linux cresceu rapidamente em um sistema operacional completo que agora pode ser encontrado correndo smartphones, servidores e todos os tipos de gadgets. Nesta entrevista por e-mail, Torvalds reflete no último quarto de século e que os próximos 25 anos poderia trazer.

Stephen Cass: Você é um programador muito mais experiente agora contra 25 anos atrás. O que é uma coisa que você sabe agora que você deseja que seu eu mais jovem deveria saber?

Linus Torvalds: Na verdade, eu credito o fato de que eu não sabia o que diabos eu estava me preparando, é uma grande parte do sucesso do Linux. Se eu soubesse o que sei hoje, quando eu comecei, eu nunca teria tido a ousadia de começar a escrever o meu próprio sistema operacional: Você precisa de uma certa quantidade de ingenuidade; pensar que você pode fazê-lo. Eu realmente acho que foi necessário para o projeto começar e ter sucesso. A falta de entendimento sobre o eventual âmbito do projeto ajudou, assim o fez entrar nele sem um monte de noções preconcebidas de onde ele deveria ir.

O fato de que eu realmente não sabia onde ele iria acabar significava que eu era talvez mais aberto a sugestões externas e influência do que eu teria sido se eu tivesse uma boa idéia do que eu queria realizar. Que a abertura às influências externas que eu acho que fez muito mais fácil, e muito mais interessante, para que outros possam participar do projeto. As pessoas não tem que assinar a visão de outra pessoa, mas poderia juntar-se com a sua própria visão de onde as coisas devem ir. Eu acho que ajudou a motivar muita gente.

S.C.: Existe uma decisão técnica anterior, feita durante o desenvolvimento do Linux que agora você gostaria que tivesse ido de uma maneira diferente?

L.T.: A coisa sobre decisões técnicas ruim é que você sempre pode desfazê-las. Sim, ele pode ser muito frustrante, e, obviamente, há todo o tempo e esforço desperdiçado, mas, ao mesmo tempo, mesmo que geralmente não é realmente desperdiçado no final. Houve algum motivo você tomou um rumo errado, e percebendo que era errado ensinou-lhe algo. Eu não estou dizendo que é realmente uma coisa boa, é obviamente melhor fazer sempre a decisão certa de cada vez, mas ao mesmo tempo não estou particularmente preocupado fazer uma escolha. Eu prefiro tomar uma decisão que acaba por ser errado mais tarde sobre possíveis alternativas para muito tempo.

Tivemos uma situação notoriamente ruim no subsistema de memória virtual do Linux em 2001 ou algo assim. Era uma dor enorme, e havia discordância violenta sobre qual direção tomar, e tivemos grandes problemas com certas configurações de memória. Grandes amostras do sistema foi totalmente arrancado no meio do que era suposto ser um período "estável", e as pessoas não estavam felizes.

Mas olhando para trás, tudo deu certo no final. Foi doloroso como o inferno na época, e que teria sido muito mais agradável se não tive que fazer esse tipo de grande mudança já meados o desenvolvimento, mas não foi catastrófico.

S.C.: Como Linux cresceu rapidamente, o que foi a transição de um esforço só, para um esforço conjunto a nível pessoal?

L.T.: Não há, realmente eram duas transições notáveis ​​para mim: Uma bastante cedo (1992), que foi quando eu comecei a tomar os patches de outros desenvolvedores sem sempre reescrevê-los eu mesmo. E um muito mais tarde, quando [aplicar todos os patches] estava começando a ser um grande ponto de dor, e eu tive que aprender a realmente confiar todas as várias manutenções dos subdesenvolvedores.

O primeiro passo foi muito mais fácil, uma vez que aproximadamente os primeiros seis meses de programação do kernel Linux tinha sido um exercício inteiramente sozinho, quando as pessoas começaram a enviar-me remendos eu não estava realmente utilizando-os apenas para aplicá-las. Então, o que aconteceu é que eu iria olhar para o patch para ver o que a pessoa estava apontando para, em seguida, gostaria apenas de fazer isso sozinha, às vezes de forma muito semelhante, por vezes, de uma forma totalmente diferente.

Mas que rapidamente tornou-se insustentável. Depois de um relativamente curto tempo, comecei a confiar apenas certas pessoas o suficiente para que em vez de escrever a minha própria versão da sua ideia, eu tinha acabado de aplicar o seu patch. Eu ainda acabei fazendo mudanças frequentemente, e ao longo dos anos eu tenho realmente feito uma boa leitura e edição de patches para o ponto onde eu poderia muito bem fazer isso sozinho. E esse modelo funcionou muito bem durante muitos anos.

Mas exatamente porque o modelo de "aplicar patches de outras pessoas" funcionou tão bem por anos, e eu fiquei muito acostumado com isso, foi muito mais dolorosa para mudar. Por volta de 2000, tivemos um crescimento enorme no desenvolvimento do kernel (nesse ponto o Linux estava começando a ser um jogador comercial perceptível). As pessoas realmente começaram a reclamar sobre o meu trabalho ser um obstáculo para o desenvolvimento, e reclamando que "Linus não escala." Mas não tínhamos boas ferramentas para lidar com gerenciamento de origem.

Isso tudo acabou por conduzir à adoção de BitKeeper como uma ferramenta de manutenção do código fonte. As pessoas se lembram BitKeeper pelo bafafá do licenciamento alguns anos mais tarde, mas foi definitivamente a ferramenta certa para o trabalho, e ele me ensinou (e pelo menos partes da comunidade do kernel) sobre como controle de origem poderia funcionar, e como poderíamos trabalhar juntos com um modelo de desenvolvimento mais distribuída onde eu não era o ponto de sincronização solitário.

Claro, o que eu aprendi sobre como fazer a gestão de código-controle distribuído é como Git surgiu em 2005. E Git tem, obviamente, tornar-se uma das grandes histórias de sucesso no controle de origem, mas levou um monte de tempo ensinar aos outros sobre as vantagens ao controle de origem distribuída. A dor que o kernel passou em torno de 2000 foi, finalmente, uma lição grande, mas foi sem dúvida doloroso.

S.C.: Existem outros projetos, com controle de fonte distribuído, que estão lhe dando uma coceira que você gostaria de riscar?

L.T.: Não. E eu realmente espero que não haverá qualquer. Todos os meus grandes projetos têm vindo de "Maldição, ninguém fez isso por mim" em alguns momentos. Na verdade eu sou muito mais feliz quando alguém resolve um problema para mim, para que eu não tenho que gastar muito esforço fazê-lo eu mesmo. Eu prefiro sentar em uma praia, bebendo alguma bebida frou-frou com um guarda-chuva, que ter que resolver meus próprios problemas.

Ok, eu estou mentindo. Eu ficaria entediado depois de alguns dias. Eu estou realmente feliz que eu tenho Linux porque é ainda interessante e intelectualmente estimulante. Mas, ao mesmo tempo que definitivamente é verdade que iniciar novos projetos é um esforço muito frustrante.

S.C.: Por que você acha Linux nunca se tornou uma presença significativa em desktops tradicionais?

L.T.: Hey, ainda estamos trabalhando nisso. E eu acho que Chromebooks estão realmente fazendo razoavelmente bem o papel, mesmo que seja um ambiente de trabalho bastante limitado, e não o modelo de estação de trabalho Linux completo tradicional.

Quanto ao porquê de o ambiente de trabalho é uma porta mais duro de roer, existem várias razões, mas uma das grandes é simplesmente inércia do usuário. O desktop é simplesmente único no mundo da computação na medida em que é ao mesmo tempo muito pessoal, você interagir com ele toda vez intimamente, a cada dia se você trabalha com computadores, mas também complicado de maneiras que muitos outros ambientes de computação não são.

Olhe para o seu smartphone. Isso também é uma peça bastante íntimo da tecnologia de computação, e que as pessoas ficam muito ligado (é onde o Linux, graças ao Android, está fazendo difundido muito bem). O ambiente de trabalho é em muitos aspectos mais complexo, com muito mais bagagem legado. É um mercado difícil de entrar. Ainda mais do que com um telefone celular, as pessoas realmente têm um certo conjunto de aplicações e fluxos de trabalho que eles são usados, e a maioria das pessoas nunca vai instalar um sistema operativo diferente do que veio pré-instalado com a máquina, o número de pessoas que fazem isso é muito baixo.

Ao mesmo tempo, eu acho que é um mercado importante, mesmo se em algum grau toda a "área de trabalho de uso geral" parece estar a desvanecer-se, com mais especializado e, portanto, mais simples, plataformas assumindo muitas tarefas- smartphones, tablets e Chromebooks todos sendo exemplos de coisas que não são realmente concebido para ser ambientes de uso geral de pleno direito.

S.C.: O maior uso de Linux surpreendeu você?

L.T.: Atualmente? Não muito, desde que eu acho que o Linux tornou-se quase o ambiente padrão para prototipagem de novo hardware ou serviços. Se você tiver algum dispositivo estranho, especializada ou se você estiver criando uma nova infra-estrutura de Internet ou qualquer outra coisa, estou quase surpreso quando ele não é executado Linux.

Mas as "excêntricas" áreas de uso costumava me surpreender, quando eu ainda pensava em Linux como um sistema operacional de servidor e estação de trabalho. Alguns dos primeiros conferências comerciais do Linux quando as pessoas começaram mostrando coisas como bombas de gás ou frigoríficos que corriam Linux - Eu fui supreendido. Quando o primeiro TiVo saiu, o fato de que ele estava correndo Linux foi tão interessante como a coisa toda ", você poder rebobinar TV ao vivo" foi sem palavras.

S.C.: Qual é o maior desafio que enfrentam atualmente no Linux?

L.T.: O kernel está realmente fazendo muito bem. As pessoas continuam a se preocupar com as coisas ficando muito complicado para as pessoas a entender e corrigir erros. É, certamente, uma preocupação compreensível. Mas, ao mesmo tempo, temos um monte de pessoas inteligentes envolvidas. O fato de que o sistema tem crescido tão grandes e complicadas e muitas pessoas dependem dele obrigou-nos a ter um monte de processos no lugar. Ele pode ser muito desafiador para ficar grande e ter aceite as alterações invasivas, então eu não diria que é um grande lugar feliz, mas acho que o desenvolvimento do kernel está funcionando. Muitos outros projetos de código aberto matariam para ter os tipos de recursos que temos.

Dito isto, um desafio contínuo que sempre tivemos no kernel é a multiplicidade de hardware lá fora. Apoiamos um monte de hardware diferente, quase certamente mais do que qualquer outro sistema operacional lá fora, mas há um novo hardware que sai diariamente. A área incorporada, em particular, tende a ter prazos de hardware, plataforma de desenvolvimento que são frequentemente muito curta (você pode muito bem virar-se e criar uma nova plataforma de telefonia na China em um mês ou dois), e tentando trabalhar juntos nesse tipo de ambiente é difícil. A boa notícia é que um monte de fabricantes de hardware estão ajudando. Isso não costumava ser verdade.

S.C.: A atual tendência técnica te deixa entusiasmado? Há algo que te gera desânimo?

L.T.: Eu sempre fui interessado em um novo hardware core, particularmente CPUs. É por isso que eu comecei a fazer o meu próprio sistema operacional, em primeiro lugar, e eu ainda estou animado para ver novas plataformas. Claro que, na maioria das vezes é bastante pequenos ajustes no hardware existente (e eu acredito muito que essa é a forma como o desenvolvimento técnico deve acontecer), mas ainda é o tipo de coisa que eu tenho tentado acompanhar.

Em uma imagem maior, mas não uma área que eu, pessoalmente, vá me envolver é com Inteligência Artificial (AI); é muito interessante ver como AI está finalmente começando a realmente acontecer. AI costumava ser um daquelas coisas "que é duas décadas de distância" de acontecer, e que iria ficar duas décadas à frente sempre. E eu fiquei muito impressionado com todos os modelos baseados em regras que as pessoas costumavam fazer.

Agora, finalmente, redes neurais estão começando a realmente entrar em seu próprio país. Acho isso muito interessante. Não é uma área que eu trabalho, e não é realmente algo que eu prevejo a trabalhar, mas ainda é emocionante. E ao contrário dos LISP e linguagem Prolog abordagens loucas, as redes neurais recorrentes sabemos trabalhar da natureza. E não, eu não estou desanimado com o fato de que a verdadeira AI pode finalmente começar a acontecer, como claramente algumas pessoas são. De modo nenhum.

S.C.: Você acha que o Linux ainda estará sob desenvolvimento ativo em seu 50º aniversário? Qual é o sonho para o que esse sistema operacional seria semelhante?

L.T.: Eu não sou um grande visionário. Eu sou um engenheiro minusioso, muito minusioso, e eu tento manter meus olhos firmemente no chão. Vou deixar para outros fazerem grandes previsões sobre onde estaremos em 5, 10 ou 25 anos, eu acho que vai fazer muito bem, contanto que manter o controle de todos os pequenos detalhes do dia-a-dia, e tentar fazer o melhor que pudermos.

Pode ser mais interessante se o mundo estava prestes a grandes revoluções e como as coisas ficaria radicalmente diferente de 25 anos a partir de agora. Mas muitas das questões básicas com sistemas operacionais são as mesmas hoje como eram na década de sessenta, quando as pessoas começaram a ter sistemas operacionais reais, muito antes do Linux. Eu suspeito que temos visto muito mais mudanças na forma como computadores de trabalho nos últimos 50 anos do que nós estamos necessariamente vamos ver no futuro. Hardware pessoal, como desenvolvedores de software, simplesmente têm aprendido o que funciona e o que não funciona.

Claro, redes neurais, eticetera, vai mudar o mundo, mas parte do ponto com eles, é que você não vai "programa-los". Eles aprendem. Eles são nebulosos. Eu posso praticamente garantir que eles não vão substituir o modelo de computação tradicional para isso mesmo. As pessoas vão querer máquinas mais inteligentes, mas as pessoas também vão querer máquinas que fazem exatamente o que eles disseram. Assim, o nosso estilo atual da computação "old-fashioned" não vai desaparecer; ele só vai ser aumentada.

Veja a entrevista original em inglês aqui.

Fonte: IEEE Spectrum

Comentários

Mais vistas da semana

GnuCash, programa para contabilidade gratuito!

Planejamento e Portabilis divulgam novas funcionalidades do software público i-Educar

Melhore seu Python com um shell interativo

Alferes Linux - A Plataforma Tecnológica Corporativa da Polícia Militar de Minas Gerais

Linux Educacional será distribuído em novos computadores da rede pública do Estado do Paraná