NotíciasSistemas operacionais

Linus Torvalds critica trecho de código do Kernel Linux com palavrões

Esse cara me diverte, sério, além de ter criando o núcleo de sistema mais popular do mundo, ter ganho uma boa grana, ele ainda parece revisar o código do Kernel Linux antes de uma release realmente, e isso bom… isso não é bom para quem faz “merdinha”.

Linus Torvalds não gosta de código arbitrário

O peso sobre os ombros da equipe do Kernel Linux é enorme, quantas empresas mundo à fora dependem da eficiência do núcleo criado por Linus Torvalds para operar diariamente? Com certeza muitas, por isso cada lançamento do Kernel Linux é algo que Linus dá uma grande importância, e ele não gosta de código ruim. Ele postou a seguinte resposta para um código que apareceu no Kernel 4.3.

Jesus Cristo, gente. Que m*rda é essa?

O conflito que eu vejo é devido a uma b*sta estúpida no novo arquivo cabeçalho gcc. Mas o que me deixa irritado é que isso tem motivos completamente ridículos.

Este é o código antigo em net/ipv6/ip6_output.c:

mtu -= hlen + sizeof(struct frag_hdr);

e este é o novo código “melhorado”, usando coisas que exigem suporte embutido e mágico no compilador, e tem funções wrapper [cujo principal propósito é chamar outra função] ridículas para quando ele não existir:

if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), &mtu) ||

mtu <= 7)

goto fail_toobig;

qualquer pessoa que achar que o código acima é (a) legível (b) eficiente (mesmo com o suporte mágico no compilador) (c) particularmente seguro é simplesmente louco e incompetente.

O código acima é uma m*rda, e gera código que é m*rda. É ruim e não tem nenhuma razão de ser.

O código poderia *facilmente* ter sido feito com apenas um condicional único e compreensível, e o compilador na verdade teria gerado código melhor, e o código ficaria melhor e mais compreensível. Por que isso não é:

if (mtu < hlen + sizeof(struct frag_hdr) + 8)

goto fail_toobig;

mtu -= hlen + sizeof(struct frag_hdr);

que tem o mesmo número de linhas, não usa funções auxiliares malucas que ninguém sabe o que fazem, e é muito mais óbvio sobre o que realmente faz? Eu garanto que a segunda versão é mais óbvia e mais fácil de ler e entender. Alguém realmente quer discordar disso?

Sério. Deem para mim *um* motivo pelo qual isso foi escrito dessa forma idiota com dois condicionais diferentes, e uma nova função fora do padrão que quer suporte especial no compilador para gerar um código pior? Uma função brilhante da qual jamais precisamos em qualquer outro lugar, e que é apenas masturbação de compilador.

E sim, você ainda poderia ter problemas de overflow com a expressão “hlen + xyz”, mas, francamente, o código “overflow_usub()” tinha isso também. Então, se você se preocupa com isso, você não fez a coisa certa para começo de conversa.

Então eu realmente não vejo nenhuma razão para este tipo de lixo completamente imbecil.

Diga-me porquê. Afinal, eu não vou autorizar este tipo de coisa completamente insana que gera conflitos no Release Candidate 7, e que parece não ter absolutamente nenhuma razão para ser uma bagunça ilegível e idiota.

O código parece *projetado* para usar esse novo “overflow_usub()”. Parece ser uma desculpa para usar essa função.

E é uma desculpa ruim para c*****o para essa lesão cerebral.

Sinto muito, mas nós não adicionamos novas interfaces idiotas como esta para código novo e idiota assim.

Sim, sim, se isso tivesse ficado dentro da camada de rede, eu nunca teria notado. Mas dado que eu *notei*, eu realmente não quero aprovar isso. Na verdade, eu quero deixar claro para *todo mundo* que um código como este é completamente inaceitável. Qualquer um que pensa que um código como este é “seguro” e “protegido” porque usa funções de detecção de overflow está tão maluco que não é nem engraçado. Tudo o que essa b*sta faz é tornar o código uma confusão ilegível, algo que nenhuma pessoa em sã consciência vai entender o que realmente faz.

Livrem-se disso. E eu *nunca* mais quero ver essa m*rda de novo.

Linus

Eis o controle de qualidade do Kernel Linux. xD

Veja também: 13  frases épicas de Linus Torvalds

Até a próxima!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!