Analecto

27 de novembro de 2013

The Unix-Haters Handbook.

Hoje de madrugada passei um bom tempo acordado e rindo de um livro chamado The Unix-Haters Handbook, que é o que diz no título. Eu costumava achar, ingenuamente, que Unix era o deus dos sistemas operacionais, mas eu assumia isso sem olhar a história do sistema, o que é um equívoco gravíssimo. Mas é bom ler a história fora do ponto de vista do vencedor. O livro me mostrou como Unix era o que Windows é hoje: um sistema enorme, lotado de falhas épicas e relativamente simples, as quais podiam ser facilmente usadas para levar o sistema abaixo. O capítulo de segurança foi o que mais manteve minha atenção, porque eu costumava achar que a segurança do Unix era perfeita. Talvez seja hoje ou talvez a Wikipédia não seja mesmo uma fonte reliável de informação, ha! Eu preciso olhar as coisas do ponto de vista dos perdedores também, porque você não pode assumir conhecer a história tendo acesso apenas à um lado dela.

O livro (em inglês) foi liberado para download gratuito pela editora, então qualquer um pode ler.

Antes de comentar o livro, digo de passagem que o estilo de escrita me lembra o livro Cliente Nunca Mais, que é um manual com quinhentas dicas que garantirão a fuga dos clientes da sua loja.

Na capa, um homem segura uma arma ao lado de um computador com o comando rm -rf / que significa, em linguagem de gente, “remova o diretório / e todo o seu conteúdo”. Bom, o diretório / é o diretório mais alto e removê-lo quase equivale a uma formatação, visto que todos os programas e arquivos pessoais ficam nele. Quer acabar com seu sistema neste instante? Tem comando pra isso: sudo rm -R /. Válido em terminais Linux em Mac OS também.

A foreword diz uma coisa que faz muito sentido: o problema do Unix é (ou foi) popularidade. O mesmo vale para Windows hoje, quase. Boa parte dos problemas do Windows vem da atenção que ele recebe, embora se processem de forma diferente. Cada vez mais programas são feitos para Windows enquanto que o sistema em si já é gigante. Regular isso não é fácil. Além do mais, quando você quer atingir alguém com código malicioso você mira o sistema mais popular; é garantido que atingirá muita gente. Por isso que junto com o Windows deve também ser instalado um antivírus; a própria Microsoft admite que Windows simplesmente não é seguro e delegar a responsabilidade de lutar contra as falhas do sistema sem ao mesmo tempo consertá-las (tratar o efeito sem tratar exatamente a causa) é muitas vezes o mais viável. O conserto das causas depende exclusivamente da boa vontade da Microsoft, porque ela detém o código-fonte…

O prefácio me lembra do meu colega de escola. Ele detestava Linux e acho que agora consigo entender por que e por que Linux é tão difícil de ser engolido por gente que usa Windows há muito tempo: é difícil e ainda faz uso de tecnologias bem antigas, mesmo que elas funcionem. Linux é completamente alienígena pra esse grupo, com seus scripts shell, linhas de comando e incompatibilidade com certas peças com drivers proprietários. Na visão de um usuário de Windows, Linux é ou muito avançado ou completamente retrógrado, coisa de programador que gosta de dificuldade ou que não tem fundos pra uma licença do Windows. E o que é mais estranho pra usuários de Windows é que usuários de Linux não raro persistem em usar Linux… como se tivessem se “acostumado” e não mais percebessem que tem coisa “melhor”. Se você estiver lendo, colega, recomendo esse livro pra você. Mesmo que ele não seja mais tão atual, pode ser bom para quando você estiver solitário em casa, especialmente se ainda estiver solteiro.

O leitor casual pode se perguntar por que eu falo de Linux numa entrada que deveria ser sobre um livro que fala de Unix. Linux não é Unix, mas o imita, eis sua resposta.

A anti-foreword, escrita por Dennis Ritchie (é, o criador da linguagem C), revela um cara que leva as coisas muito a sério… O livro foi organizado por trolls, Ritchie, você não deveria alimentá-los; eles podem fazer uma caricatura sua. Deus o tenha, contudo. Ele morreu uma semana ou duas, eu acho, depois do Steve Jobs. Quase ninguém ficou sabendo, a mídia não lhe deu a cobertura devida…

Sabe, se escrevessem um livro desses sobre meu sistema de RPG, por exemplo, eu tentaria levar de uma maneira construtiva. Toda a crítica pode ser aproveitada, especialmente se a crítica for muito bem detalhada. Mas até entendo a raiva do senhor Ritchie; o livro é perveso.

O capítulo seis é dedicado ao terminal. Eu sorri agora; lembrei do meu colega de novo. Ele tentou me desencorajar a usar Linux me dizendo que Linux equivale ao terminal e vice-versa. Ou seja, Linux é pura linha de comando. Ele chegou ao cúmulo de me dizer que Linux não tem interface gráfica e oportunamente escondeu de mim qualquer informação relativa ao X. Ele tem problemas muito sérios com terminais. Quer ver uma coisa legal, usuário de Ubuntu? Ctrl+Alt+F1 (agora não, besta!). Pra sair, aperte Ctrl+Alt+F7 (pronto, agora pode). O terminal é muita coisa. As melhores ferramentas são de linha de comando. Isso contribui para uma série de esteriótipos que pessoas têm em relação a Linux e sua praticidade: você tem que estar acostumado com o terminal, que é difícil de se acostumar, num mundo em que a maior parte dos indivíduos acostumados a interfaces gráficas acha que o uso de linhas de comando é coisa do século passado. É um ótimo capítulo pra quem quer que queira melhorar suas críticas ao terminal do Unix (ou Linux ou Mac OS).

O capítulo seguinte, contudo, fala do X. Por muito tempo, foi o meio pelo qual sistemas Unix produziam janelas. Na época era devagar e desajeitado, mas hoje é muitíssimo usável. Porém, já existem outros meios para se obter os mesmos efeitos ou mesmos melhores (Mir, Wayland e outros servidores como esses pretendem substituir o X na tarefa de embasar interfaces gráficas). Eu, pelo menos, prefiro o X… Boa parte dos problemas do X relatados no livro não são experimentos por mim. O X só me pregou uma peça que foi facilmente revertida.

O capítulo dez eu queria mostrar pra duas pessoas: Ame (que odeia C++) e meu chefe (que ama C++). Fala de todas as falhas fundamentais de C++, do quão difícil é de ler, das diferenças entre os efeitos produzidos por diferentes compiladores (o que não deveria ocorrer…).

Até agora jogamos com usuários de Windows, gente que usa terminais, gente que usa X e programadores de C++. Mas o capítulo onze é o que me atingiu pessoalmente, dedicado a administradores de sistemas Unix. Eu devo admitir que ser administrador de Windows é uma tarefa mais fácil do que administrar um sistema Unix (ou Linux): você sempre pode baixar ferramentas que automatizam manutenção e remoção de uma virose, por exemplo. Mesmo que Windows quebre sozinho, consertar os danos que ele causa a si mesmo, diminuindo sua performance, só requer uma agenda, com horários para remover programas desusados, limpar o diretório (ops, “pasta”) de arquivos temporários, desfragmentar disco… Linux não quebra sozinho, ele praticamente faz sua própria manutenção, só requerindo que você instale atualizações. Mas Linux deixa você livre pra fazer o que você quiser, logo a chance de você fazer burrice é muito maior. Linux não é exatamente “à prova de idiotas”, especialmente de idiotas que, como eu, têm a senha do administrador… Infectar uma máquina com Linux usando um vírus requer muita engenharia pessoal, você precisa ludibriar o administrador a instalar o vírus, praticamente. Como não é possível instalar um programa sem a senha do administrador, o administrador é normalmente a causa de um funcionamento anormal do sistema e as burradas que uma pessoa faz simplesmente por ter a senha na hora certa (ou errada) podem ter proporções devastadoras. Windows pelo menos tem barras de progresso muito sexy.

Ligar um sistema Linux hoje em dia pode ser feito por qualquer usuário. Não sei à quantas anda o Unix, visto que nunca usei o negócio puro. A instalação de software novo é meio frustrante; eu tenho que pessoalmente aprovar qualquer programa que meu sobrinho, irmão ou minha mãe quiserem instalar (salvo por programas de Windows, pois as modificações feitas através do Wine normalmente afetam apenas o usuário que chamou o processo). Admito que isso chega a ser desgastante demais… e fico com preguiça de avaliar o programa a ser instalado. Mas é necessário. Windows é capaz da mesma coisa, mas eu notei que, no país, as pessoas têm o péssimo hábito de deixar todos os usuários entrarem na mesma conta, o que deixa o controle do sistema muito difícil. Um programa malicioso num arquivo .EXE (que você achou que fosse um filme) não poderia ser instalado a partir da conta de um usuário comum.

É muito tentador para o administrador moldar o sistema à sua imagem e semelhança. Se este computador fosse só meu, já teria roteado todos os navegadores para passar pelo Tor, por exemplo, o que não é de interesse de todos os usuários. Tenho que pensar neles e isso significa constranger minha vontade mais íntima, muito difícil quando se tem o poder.

Devo ser um péssimo administrador também, porque quase nunca faço qualquer tipo de backup preventivo. Mas tenha paciência, né? Não tenho dispositivos de armazenamento, meu drive de DVD morreu e só tenho 5GB de espaço na nuvem. Quando eu resolvo formatar o sistema, nem sempre faço backup dos arquivos dos meus parentes. Faço dos meus. Sou muito preguiçoso…

Pelo menos resolver problemas de usuários comuns é fácil. Difícil é você, administrador novato, resolver os seus. Uso Linux há três anos e posso dizer que ainda sou jovem demais nisso. Quando me meto num problema de difícil solução, normalmente tenho de recorrer ao terminal para digitar um ou dois (ou dez) ações que não conheço. Alguns são fáceis de resolver, mas outros requerem um conhecimento tão obscuro que você se pergunta como aquilo foi acontecer com você em primeiro lugar. Enquanto você estiver aprendendo, é importante andar na linha. Você ainda pode ser curioso e fazer testes, mas antes de fazer qualquer coisa no terminal que comece com `sudo`, faça uma pesquisa antes para saber o que você está fazendo, o que pode dar errado, o que fazer se der errado, os efeitos esperados e um método de reversão.

Mas chega de falar do livro e relacioná-lo com minha experiência. Leia-o e faça bom uso do inglês que você aprendeu.

Older Posts »

Crie um website ou blog gratuito no WordPress.com.

%d blogueiros gostam disto: