Linux: primeiras impressões
Depois de um tempo como usuário Linux, resolvi falar sobre minhas impressões sobre este sistema operacional e sua relação com o resto do mundo.Quando comecei a aprender utilizar um computador, o mundo era mais simples. Os processadores eram simples e assim também seus sistemas operacionais. Comecei operando um CP-300 quando pequeno, mas só fui entender o que realmente eu estava fazendo quando ganhei um MSX. Não havia problemas, ninguém fora da sua sala poderia invadir seu computador, ele nunca exibia uma tela azul e sempre obedecia a seus comandos, mesmo se eles não fizessem sentido. Caso algo desse errado, era só apertar a tecla “break” e tudo ficava bem novamente. E eu tinha algo que adorava, o acesso direto a hardware, montar um gráfico era, literalmente, brincadeira de criança.
O fato é que eu cresci, e assim também minhas necessidades. Ainda me lembro da primeira transformada de Fourier que tentei implementar no MSX, depois de dois dias ininterruptos de cálculo, houve um pequeno “apagão” elétrico e tive que começar tudo outra vez. Mais três dias de ansiedade por uma resposta à minha série temporal. Estava claro para mim que eu precisava de mais.
Minha sorte é que eu sempre estive anos atrás dos topo-de-linha e quando este contratempo ocorreu, já havia gente se desfazendo de seus 80486.
Agora sim, eu tinha comigo uma máquina dezenas de vezes mais veloz, com processador de 32 bits, contra os 8 bits do Z80 do MSX, eu tinha ganho o mundo em minhas mãos. Doce ilusão. O sistema operacional que acompanhava o PC prometia multitarefa, tinha interface gráfica, gerenciava até o “kit multimídia” (alguém ainda lembra desse tempo?), mas tinha um único probleminha – ele não funcionava.
Mais de meia hora com o micro ligado e “bam”, sempre vinha aquela maldita frase e eu só viria a entender seu significado sórdido anos depois – falha geral de proteção – e aí era só no botão. Foi depois de algumas experiências traumáticas com este famigerado Windows 3.11 que eu entendi o motivo dos novos computadores necessitarem de um botão de “reset” na frente do gabinete.
Indignado, resolvi atualizar a máquina e instalar o mais moderno (e pesado) Windows 95. Agora sim, sistema operacional com nome de ano, multitarefa melhorada, mais brilho em seu monitor, essas coisas. Doce ilusão. Os problemas continuaram e a máquina simplesmente não era confiável para meus trabalhos. Então eu a utilizava apenas para pequenos programas e jogos. É, eu me diverti um bocado nessa máquina, admito.
Programar era outro suplício. Se eu conseguisse achar alguém que me fornecesse um compilador razoável, a documentação era escassa e eu não saía do lugar. Toda sorte de problemas surgiam, compiladores que não seguiam um padrão, diferenças entre versões – coisas que eu não podia compreender. Antes era só ligar o computador e escrever um programa em BASIC/Assembly para o MSX, totalmente documentado. O mundo tinha mudado e eu estava chateado.
Mas eu ainda o usava para pequenos trabalhos de faculdade quando ele faleceu. Acho que o laudo foi falência múltipla das placas, não me lembro bem. Minha família, sempre presente, me conseguiu um AMD K7. Pude então instalar o moderno e mais belo Windows 98 SE, com multitarefa melhorada, mais brilho em seu monitor, mais seguro (não me lembro bem contra quê), tudo o que o outro não tinha. Doce ilusão. Pelo menos dava para ouvir música nele, com um pouco de sorte ele não travaria.
Os outros problemas só se agravaram. Eu consegui uma linha telefônica, mas nunca me arrisquei a acessar a Internet. O principal motivo eram as informações desencontradas. Achei que não era possível ter um sistema estável e eu deveria conviver com isso. Ainda bem que isso também era uma ilusão.
Após choramingar para um monte de gente, um amigo (na época cunhado) sugeriu que eu instalasse um Linux no meu K7. Depois de sofrermos bastante, éramos novatos e inexperientes, conseguimos instalar o Suse 8. Achei feio e a maioria das coisas não funcionava. Mas ele tinha uma vantagem, eu conseguia informações sobre ele se eu precisasse. Quando fiquei um pouco mais esperto, instalei o Mandrake 10.0. Confesso, nem tudo funcionava como deveria, mas era robusto, ele simplesmente não travava. Só por esse motivo já teria valido a pena, mas havia outros.
Fui então percorrer um caminho que sugiro a todos os que me perguntam – qual é a melhor distribuição Linux? - usar as principais distribuições. Pode ser chato, pode ser demorado, mas assim você consegue achar aquela que mais lhe agrada. Cada pessoa tem um conjunto específico de necessidades e cada pessoa usa seu computador de modo diferente, com objetivos diferentes. Certamente uma distribuição irá agradar mais a uns que outros e cada um se dá melhor com uma distribuição ou outra. Isso eu já achei fantástico, eu não estava mais restrito ao sistema operacional da moda (que rodasse no meu computador) eu poderia escolher.
Na escalada por informações, aprendi a deixar o sistema de um jeito em que tudo funcionava (um Debian Sarge) e ele nunca travava. Programar não era mais um suplício, os compiladores seguem um padrão e são muito bem documentados e então eu pude me concentrar em estudar programação. Programação estruturada, orientada a objetos, assembly x86 e chamadas ao sistema, eu tinha multitarefa real, mais brilho em meu monitor, mais desempenho, segurança ao acessar a Internet, essas coisas que me prometiam e nunca cumpriam. E não era ilusão.
Apanhei muito dele, nunca consegui fazer meu soft-modem funcionar nele (mesmo usando um Kurumin – distribuição muito boa por sinal – o modem só não funcionava na minha máquina, nas outras sim), acesso a rede por um hard-modem, vídeo 3D só comprando uma placa, meu computador usava um vídeo integrado SIS e algumas coisas irritantes, como instalar softwares, me davam (e ainda dão) dor de cabeça.
Mas eu podia trabalhar nele. Meus programas, desde simples “scripts” a softwares mais elaborados, têm interface gráfica – coisa que meu dinheiro não poderia comprar se eu adotasse soluções proprietárias.
Melhorei meu computador, instalei nele o Windows XP e o Mandriva 2006 e as coisas começaram a ir bem. Com o C# eu podia fazer bons programas no meu Windows e o XP é um bom sistema para trabalho. Mas comecei a achar muito chato de mexer nele. Era ele quem estava no comando do meu computador, quando na realidade deveria ser eu. Isso eu nunca senti com o Linux. Optei então, agora com um laptop, a não usar o Windows XP (isso sai meio caro pois a licença do Windows está embutida no preço do laptop). Estou usando um Mandriva 2007.0, mas penso em voltar para o meu Debian. Estou com saudades.
O mais engraçado disso tudo é que o núcleo do Linux é construído com uma técnica de programação “ultrapassada”. Ao invés de se valer das modernas técnicas de programação orientada a objetos, ainda usa a linguagem reconhecidamente procedural C. Enquanto outros sistemas usam C++ (orientada a objetos) o núcleo do Linux é feito em C. O resultado desta postura é contrário ao que os adeptos das técnicas inovadoras a todo custo poderiam esperar, o sistema é mais robusto, seu código é legível, tem maior desempenho e estabilidade e usa a orientação a objetos onde é necessária, na implementação do sistema de arquivos virtual (com uma certa dificuldade, mas com muita elegância).
Um ponto a favor do Linux é que eu sei o que está sendo feito, como está sendo feito e onde procurar informações se eu precisar fazer diferente. Isso é impossível com sistemas proprietários.
É bonito saber como o escalonador de processos gerencia prioridades de execução dinamicamente, como é feita a sincronização de processos, o gerenciamento de memória e paginação, os caches de disco e todos os contextos de execução dos códigos. Assim, eu posso tomar um núcleo feito para ter melhor desempenho em uma máquina moderna e adaptá-lo para uma máquina antiga, sem que ela “sofra”. Toda essa versatilidade não tem preço. Literalmente.
Ao invés de ter milhares de chamadas ao sistema obscuras, tem uma interface com o usuário simples com apenas algumas centenas de chamadas, fazendo o mesmo serviço, mas de forma muito mais eficiente. Se alguém da Microsoft discordar, mostre o código e eu pensarei novamente em minhas palavras.
Os únicos problemas que eu tenho ao usar o Linux se referem ao fato de que algumas grandes empresas de hardware se recusam a fornecer suporte de drivers. Foi o caso do meu soft-modem e do meu vídeo integrado. Agora meu K7 ainda tem o problema de eu não poder atualizar o driver do barramento AGP, pois sabe-se lá o que a SIS fez nele (no controlador do barramento) que faz com que apresente comportamento estranho (é... meu Linux trava). Me recuso a abrir o driver e resolver o problema. Simplesmente não compro mais desta marca e não a recomendo a ninguém. Os problemas se estendem também aos softwares proprietários que preciso instalar, que não estão com código fonte disponível ou não estão nos repositórios da minha distribuição. É realmente cansativo. É preciso que haja a adoção de um padrão de instalação de binários (o padrão já existe, é só adotá-lo) e parar de achar que todo mundo tem que mostrar o código e/ou fornecer um binário para sua distribuição específica. Nem todos querem abrir o código fonte de seus softwares, apesar de que acho que lentamente a indústria perceberá o quão vantajoso isso é. Mas isso não pode ser colocado pela força, mas sim pelas vias naturais de adaptação do mercado. Um padrão de instalação de binários só ajudaria a disseminar o Linux como sistema operacional alternativo e torna-lo-ia competitivo em um setor em que ele engatinha, o usuário completamente leigo. A exceção da instalação de softwares de terceiros, o Linux é muito mais fácil de se lidar do que qualquer outro sistema operacional que já pude experimentar.
Em outra oportunidade comentarei sobre detalhes da programação do núcleo que achei interessantes, como a noção de tempo do núcleo e sua relação com o escalonador de processos. Até mais.


3 Comments:
E aí Luiz, beleza?
Bem, eu sei que o foco do texto é o Linux, mas me diz uma coisa: o seu MSX era o Expert ou o Hotbit?
Aproveitando o assunto, já que você participou um pouco da história da informática (não, eu não estou de chamando de velho, hehe), queria saber se você conhece o seguinte sítio:
http://www.mci.org.br/
É do Museu da Computação e Informática, que fica em Sorocaba. Eu acabei de descobri-lo e achei muito interessante!
Grande abraço!
Eita, nem parece que estou estudando HTML, ô carambola!
Taqui o link pro sítio do museu:
MCI
Ficou bonito agora, não?
Opa! Beleza? Pois é, meu MSX era o Expert, fabricado pela Gradiente (não sei se 1.0 ou 1.1).
Eu não conhecia o site, achei muito bom, tem uma excelente proposta. Acho importante, ao se estudar informática, conhecer sua história.
Grande abraço.
Postar um comentário
<< Home