Faz um certo tempo que venho tomando raiva de duas coisas: Comunidades de Software Livre (Ainda mais em minas) e do Linux (Quando referencio Linux, estou usando a definição de que Linux é só o kernel). Hoje senti necessiade de expor os motivos disto neste post.
Eu acho engraçado que o pessoal com quem normalmente digo isso me olha tão torto quanto olham um MS addict, o que me faz pensar que a idéia e ser um fanclub ou algo do tipo, e não buscar qualidade, sendo sequer capazes de ouvir ou pesquisar os fundamentos deste posicionamento. Acabam acontecendo coisas como “Nossa, agora começa a falar mal de Linux” como se eu tivesse fazendo um atentado a liberdade.
Os motivos que me levam a acreditar que Linux não é um bom código ainda são bastante superficiais no que tange ao “como”, pois meu conhecimento de C/C++ e aspectos técnicos internos do Linux é bem pequeno, mas na pratica tenho algumas coisas bem evidentes. Lembro também que os motivos são puramente técnicos, o que faz com que minha opinião possa mudar com o andar da carruagem. Aproveito este parágrafo para citar que tudo isso começou a partir do kernel 2.6.2x
Recordo-me quando comecei a implantar Xen nos meus servidores, que usava inicialmente o kernel 2.6.18, e ele tinha um suporte bem pobre no quesito hardware. Isso geralmente não era problema, até aparecer problemas no PCIBACK do Xen. Nem o Xen nem o Linux sabiam onde raios tinham os gargalos. vmstat, dstat, dmesg, xm dmesg e outras coisas que conheço não relatavam problema algum. Acabou que na época perdi meu emprego por isso (O email as vezes levava mais de 1 min pra autenticar, e nem usava dominio nem nada).
Depois “foi fondo” até o Xen com kernel 2.6.27, ainda experimental. Instabilidades, memory leaks (Causados também pelo tosco módulo da Nvidia e coisas como Flash) e no final estava reiniciando o server de 2 em 2 dias. Um outro server (Esse não tinha X) tinha um problema com o 2.6.18 que ele dava panic de 3 em 3 dias. Registrei o bug no lauchpad mas não deu em nada.
Para não falar que a culpa é de patches, o 2.6.29 do Arch (E do ubuntu também com o 2.6.28 e o .30rc6 do kernel-ppa) comeu o suporte a minha webcam (Que existia ate o .27), o iSCSI crasha com qualquer operação de escrita no disco e de quebra, essa semana lendo sobre gerenciamento de memória no Linux, descobri que o Linux elege processos pra matar quando da OOM somente pelo número de páginas abertas que ele tem na memória. Enquanto isso, num servidor (O iSCSI target da rede por sinal) rodando NetBSD…

Ou seja, os BSDs estão a cada dia que passa se mostrando mais estaveis e rápidos, e o Linux andando para trás, removendo suporte a discos (Alguém lembra do caso dos HDs sata que num kernel versão X reconhecia e no X+.1 não?), webcams, removendo suporte a plataformas legadas (Muitos drivers que iam bem em todos os kerneis até .27 perderam a habilidade de compilar por uma mudança no kernel que faz com que o código tenha q ser mudado), e ainda por cima quebrando coisas dele mesmo:
[371854.554210] connection1:0: Got CHECK_CONDITION but invalid data buffer size of 0
[371854.554245] sd 9:0:0:0: [sdf] Unhandled error code
[371854.554249] sd 9:0:0:0: [sdf] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[371854.554254] end_request: I/O error, dev sdf, sector 195365167
[371859.553208] connection1:0: detected conn error (1011)
[371862.353704] Aborting journal on device sdf5.
[371862.353745] EXT3-fs error (device sdf5) in ext3_reserve_inode_write: Journal has aborted
[371862.376988] EXT3-fs error (device sdf5) in ext3_dirty_inode: Journal has aborted
[371862.380332] ext3_abort called.
[371862.380338] EXT3-fs error (device sdf5): ext3_journal_start_sb: Detected aborted journal
[371862.380342] Remounting filesystem read-only
leleobhz@zorg:~$ sdparm -i /dev/sdf
/dev/sdf: NetBSD NetBSD iSCSI 0
Claro que muita coisa aqui não tem fundamento concreto – baseando-se somente na observação dos sintomas e da dificuldade extrema de diagnóstico de algumas coisas (Como no Xen). Eu acredito muito no Linux, acho mesmo que é um bom sistema (Mas acho os BSDs tecnicamente superiores), mas do jeito que as coisas andam está ficando dificil manter as coisas estaveis.
P.s: Este artigo está ligeiramente incompleto, portanto vale somente como observação. Se alguém tiver sugestões ao invés de vir com 30 pedras na mão, ótimo. A idéia e resolver os problemas, e não alimentar trolls.