terça-feira, 30 de maio de 2017

Verdades e mitos sobre o Linux

Há muitos mitos que envolvem o Linux e o software livre. A principal causa é a falta de informação sobre esse novo universo. Nesse artigo vou buscar mostrar alguns mitos e verdades que rodeiam o mundo Linux.

O barato não presta

É comum ouvir que o que é barato não presta. Sabendo disso algumas empresas cobram a mais por um produto para dar a impressão de que o produto é melhor. E quando se ouve que o sistema operacional é gratuíto logo se pensa que não deve ser bom. Frases do tipo “vem na caixa de ovo” não soam bem. Mas precisamos deixar as coisa bem claras: o foco o Linux não é a venda de licenças, mas a venda de serviços. E as empresas lutam para que o software seja tão bom que valha a pena contratar o suporte.

O Linux é livre e, geralmente, grátis. Mas isso não quer dizer que seja ruim. Muito pelo contrário. 95% dos 500 melhores supercomputadores do mundo rodam o Linux, os principais sites da internet e os sistemas críticos também rodam em cima do sistema operacional do pinguim. E a maioria dos dispositivos móveis rodam em cima de algumas versão do sistema Linux.

Linux é mais seguro

Há versões de Linux para os mais variados públicos, de usuários leigos até especialistas em segurança. Cada versão tem um foco. Mas de um modo geral, a instalação padrão do Linux é mais segura do que a do Windows. Mas a segurança depende muito de quem implantou o sistema e de quem está usando o computador. É possível deixar o Windows, e qualquer outro sistema operacional, tão seguro quanto necessário. Depende mais de quem vai usar o sistema, e para qual finalidade.

Se tenho acesso ao código fonte então é menos seguro

Parece até óbvio que se um hacker sabe como um programa funciona ele sabe quais as brechas de segurança que existem. Mas é justamente o contrário. Se há um código mal feito em um software livre vários desenvolvedores terão acesso a ele e poderão alertar a comunidade e corrigir a falha. O software proprietário, ao contrário, não terá tantas pessoas olhando o código e, achando-se uma falha, a correção ficará a cargo da empresa proprietária, e se ela tiver outras prioridades no momento a correção poderá levar meses. O código livre tende a ser mais seguro justamente por ter mais desenvolvedores olhando para ele e corrigindo suas falhas.

Milhares de pessoas desenvolvem o mesmo software livre

Na maioria das vezes essa informação é falsa. Apesar do código ser aberto somente os projetos grandes e famosos possuem um número alto de programadores e outros profissionais de TI envolvidos. Já vi muitos projetos livres morreram por falta de desenvolvedor. Mas é muito mais fácil que o teu projeto cresça se ele for livre. Mas não basta ser livre para ter sucesso; precisa ser bom.

Software livre não dá dinheiro

Como já mencionei, embora você possa vender o Linux (se conseguir quem compre!) o foco do software livre não é a venda de licenças, mas de serviços. Você, profissional de TI, ganha dando suporte, implementando, modificando, ajustando, corrigindo, etc.

Linuxers são xiitas

Há fanáticos em todas as áreas, inclusive no Linux. O que deixa um linuxer irritado é alguém fazer um comentário negativo do Linux sem ao menos conhecê-lo. É como alguém que não gosta de almôndegas sem nunca ter comido uma. Ou baseia a sua opinião em uma experiência negativa que teve há 15 anos atrás. É infantil. Para fazer um bom julgamento é necessário apontar parâmetros, fazer métricas, testar, comparar. Simplesmente dizer que o Windows é pior ou melhor não ajuda em nada. A pergunta que se deve fazer é: “melhor em quê?”, “melhor pra quem?”, “melhor em qual cenário?”.
Há bons profissionais que gostam da facilidade do Mac OSX. Então use-o. Já há outros bons profissionais que preferem a liberdade que o Linux dá. Outros preferem a comodidade de continuar usando o Windows. Cada um na sua. Mas para poder comparar os sistemas é necessário conhecê-los.

Há pessoas que dizem que o Linux não presta porque não tem jogos, como se o mundo de TI se resumisse aos games. Também há pessoas que dizem que o Windows é uma porcaria, mas continuam usando o notebook em dual boot. Todos precisam saber que há vantagens e desvantagens em cada sistema. Mas não julgue sem conhecer.

Linux não pega vírus

Como já mencionei, se levarmos em consideração o termo técnico, o Linux não pega vírus. Mas quando as pessoas falam de vírus na verdade estão querendo falar de malware, e isso existe no Linux, sim. Já vi pessoas que não tomam o menor cuidado só porque usam Linux. Isso é um erro! Os cuidados em segurança servem para qualquer ambiente. Portanto, os mesmos problemas envolvendo malwares no Windows também existem no Linux.

Linux roda em qualquer computador

É verdade. Porém não é qualquer distribuição que roda em qualquer computador. Não adianta querer colocar o Ubuntu em um 386. Ele não vai rodar. Se você precisar colocar um Linux em um computador muito antigo ou com poucos recursos você vai precisar de uma distribuição voltada para esse função. Por isso há tantas distrbuições Linux no mercado, pois cada uma é voltada para um objetivo bem específico, umas são para usuários domésticos, outras para segurança, outras para smartphone, outras para servidores, etc, e geralmente há mais de uma opção para cada tipo de tarefa. Cabe a você escolher qual a que melhor se adapta a tua necessidade.

segunda-feira, 8 de maio de 2017

Por que usar software livre?

Algumas perguntas que me fazem com frequência são:
  • Qual é melhor, Windows ou Linux?
  • Microsoft Office ou Libre Office?
  • Photoshop ou Gimp?

Todas estas perguntas estão relacionadas à seguinte questão principal: Qual tipo de software é melhor, proprietário ou livre?

Há argumentos favorecendo ambos os lados, e fanáticos defendem com unhas e dentes suas posições. Já vi analistas Linux rasgarem seus certificados Microsoft e profissionais Windows desprezarem o Linux sem nunca terem mexido em um. E o problema todo se resume a duas simples verdades: falta de conhecimento e preconceito.

Quando me perguntam qual sistema é melhor eu replico: Melhor pra quem? Melhor em qual situação? Dizer qual sistema é melhor depende mais do ambiente onde ele será operado do que do software em si. E esse artigo pretende mostrar as vantagens e desvantagens do uso de softwares livre, e do Linux, para as mais variadas situações, ambientes e pessoas, como por exemplo:
  • Governos
  • Empresas
  • Desenvolvedores
  • Gamers
  • Vendedores de softwares
  • Usuários comuns
Governos

O software livre abre as portas para que empreendedores nacionais cresçam dando suporte, treinamento, consultoria e personalização de sistemas abertos sem gastarem com licenças à empresas estrangeiras, gerando lucro e emprego. Temos vários exemplos no Brasil de empresas que foram criadas com base nesse modelo e hoje são referência na área tecnológica. Além disso, o investimento que o governo faz em software livre, quer seja com suporte a sistema, quer seja com desenvolvimento de funções, gera lucro para empresas nacionais, evitando a evasão de divisas. Além disso, o conhecimento tecnológico é disceminado na região. Ou seja, a população se beneficia pois aprende como os sistemas funcionam. O governo não fica à mercê de empresas estrangeiras que tem como objetivo o lucro e realmente não se importam com o país. O governo não fica dependente de uma empresa, como acontece com o software proprietário, pois se uma empresa não presta um bom serviço, outra poderá dar suporte ao sistema, se ele for livre.

Com software proprietário não é possível fazer auditoria de sistema. Como não temos acesso ao código fonte é necessário confiar na empresa fornecedora. Mas com o software livre você sabe o que extamente o programa faz, e como faz. Há algum tempo tivemos um escândalo envolvendo a NSA, a agência de segurança americana, onde ficou provado que ela espiona vários sistemas no mundo, e que várias empresas desenvolvem software já com brechas conhecidas pela agência. Com software livre você pode verificar todo o código do programa, e pode até modificá-lo para deixá-lo mais seguro ou para atender a um requisito. Com isso o governo pode ser mais transparente.

Com software livre o governo pode instalar os programas em qualquer situação, instituição e equipamento sem se preocupar com licitações e outras burocracias. Não é necessário autorização (do ponto de vista do licenciamento), nem contratos ou outras formalidades. O governo ganha em agilidade.

Empresas

A primeira e óbvia vantagem para empresas é a economia com licenças. São poucas empresas no Brasil que conseguem manter seus softwares todos legalizados. Atualizá-los a cada 1 ou 2 anos é muito caro, sem contar as dificuldades técnicas. As pessoas em geral não têm noção dos custos. Uma licença do Microsoft Office pode chegar a R$1.200,00 (preço de 2017). Uma empresa de porte médio com 100 desktops gastaria R$120.000,00, só com licenças do Office. Junte-se a isso o Antivírus, algumas licenças de CRM e ERP, Exchange, SQL, software de editoração, etc. Um micro usual tem cerca de R$5.000,00 só de licenças, e sem contar o contrato de suporte.

Com software livre isso não acontece. Você não precisa pagar por licenças de uso, nem dar safistação a ninguém sobre como o programa está sendo usado.

Usando software livre a empresa não fica presa a fornecedores. Um exemplo típico é o que acontece com softwares de ERP, como a SAP. Uma vêz implantado fica difícil trocar a empresa de suporte pois geralmente somente uma empresa presta suporte ao programa em uma região. Trocar o software acaba sendo extremamente complicado, custoso e demorado. Se o software for livre qualquer empresa pode prestar suporte ao programa. Se um fornecedor não presta em bom atendimento podemos trocar por outro, mantendo ou não o software.

Outra grande vantagem para empresas é a liberdade para testar o programa exaustivamente antes de colocá-lo em produção. Não é necessário licenças trial, nem prazos para testes. Tudo pode ser testado e, se a empresa tiver pessoal capacitado, pode fazer os ajustes que forem necessários.

Sempre vejo a correria do pessoal da área de TI quando uma auditoria questiona sobre uma licença para um programa em especial. Levantamentos sobre quantidades de licenças e total de instalações feitas quase sempre geram informações inconsistentes. Esse problema não ocorre com o programa livre.

Mas nem tudo são flores. A mudança pode gerar desconforto para teus usuários. Por exemplo, a migração de Windows para Linux vai sofrer grande resistência por parte dos funcionários. O usuário está acostumado com aquele sistema e isso gera problemas. Embora o usuário também vai precisar de treinamento para aquela nova versão do Windows (algo que aconteceu quando viemos do Windows 3.11 para o 95, do 98 para o XP e do Windows 7 para o 10) o usuário sente que está aprendendo “uma nova versão melhorada” do sistema. Aprender um novo sistema soa como “esse sistema sempre funcionou, porque mudar?”. Não só os usuários são preguiçosos para aprender, mas nós também somos. Não gostamos da idéia de mudar para aquela outra linguagem de programação. Dominamos a antiga, por que mudar para outra?

E não é por ser geralmente grátis que não há custos. Há sim um gasto com treinamento. Treinamento das equipes de TI, de suporte e de desenvolvimento, além dos próprios usuários. Esses treinamentos podem ser feitos por empresas especializadas ou pelos próprios funcionários da área de informática. Mas sempre vai haver um custo, quer seja financeito, quer seja de tempo, preparação de sala, separação de equipamentos, confecção de apostilas, etc.

Essas são questões importantes a serem levadas em conta quando o assunto é software livre. Podemos usar a questão financeira (cada centro de custo deve arcar com o custo do software) e a questão da ideologia, mas cada empresa deverá avaliar onde e como o software livre deverá ser implantado.

Desenvolvedores

Embora eu não seja a melhor pessoa para falar sobre desenvolvimento de software, durante uma época da minha carreira eu fui programador e sempre me via às voltas com programas fabulosos e eu pensava: “como o cara conseguiu desenvolver isso?”. Às vezes passava dias, semanas desenvolvendo uma rotina que fizesse algo parecido com o que eu tinha visto, e geralmente o resultado não era tão bom. Se o software fosse livre, ou pelo menos de código aberto, eu poderia olhar o código e saber como o programador desenvolvera aquela função. Semanas de trabalho poderiam ser poupadas em poucas horas. Essa é a grande vantagem para o desenvolvedor. Ao invés de reinventar a roda pode-se investir o tempo melhorando-a.

Se existe um programa ou função que só funciona em um sistema operacional, se o programa for fechado você vai depender que desenvolvedor (diga-se dono) para lançar uma versão compatível com outro sistema. Caso o programa seja livre, você mesmo poderá adaptá-lo ao sistema operacional que você usa. Com código proprietário isso não é possível.

Gamers

É uma verdade que jogos são lançados primeiro em Windows. A base instalada é maior. Portanto, se você é um jogador que sempre quer a última versão dos jogos, o Linux pode não ser para você. Geralmente as versões para Linux demoram mais para serem lançadas, ou às vezes nem saem, caso do GTA.

Outro problema é que a Nvidia não possui módulos para Linux. Isso dificulta, e até impede que jogos mais pesados funcinem no Linux.

Embora a Valve, através da Steam, tenha diminuído esse problema, o fato é que muitos jogos simplesmente não vão rodar no Linux, alguns vão rodar com desempenho inferior. Portanto, se você é um gamer, o Linux pode não ser pra você. Pelo menos por enquanto.

Vendedores de softwares

Se você tem uma empresa que revende software, então o Linux pode não ser para você. Embora o Linux possa ser vendido, o forte dele é a consultoria e suporte. Se você quer trabalhar com Linux então o foco precisa ser mudado. Consultoria, suporte, migração de ambientes e implantações são apenas alguns pontos que podem ser levados em conta. Simplesmente vender Linux não vai te dar o retorno esperado.

Demais usuários

Se você é um usuários digamos “normal”, que faz pesquisas no Google, acessa redes sociais, faz documentos, apresentações e planilhas e usa uns joguinhos de vêz em quando, então o Linux pode te atender plenamente. É verdade que os programas são diferentes. Afinal, se você quer um programa que seja idêntico ao Microsoft Office use o Microsoft Office! O preconceito, o medo de tentar e a preguiça em aprender o novo são os maiores inimigos do software livre.

No caso de ferramentas do tipo “Office”, o Libre Office é a melhor opção para o mercado brasileiro. As telas são muito parecidas com o Office da Microsoft, mas algumas opções não estarão nos mesmos lugares, embora com um pouquinho de pesquisa você encontrará o que precisa.

Uma das maiores alegações dos defensores do Microsoft Office é que o formato DOC não é totalmente compatível com o Libre Office. Isso em partes é verdade; alguns documentos podem não abrir exatamente como deveria. Mas isso também ocorre com as inúmeras versões do Microsoft Office. Um documento, apresentação ou planilha feito numa versão do Microsoft Office não vai abrir exatamente como deveria em outra versão. Se nem a Microsoft mantém a compatibilidade porque esperar que o Libre Office ou qualquer outra solução seja compatível?

Outra ferramenta que sofre com o preconceito é o Gimp. Não sou especialista em software de editoração, mas as poucas pessoas que conhecem bem Photoshop e buscaram aprender o Gimp dizem que o programa é tão bom quanto o Photoshop, mas que é preciso gastar um tempo aprendendo a mexer na ferramenta. E é essa “perda” de tempo que impede que o Gimp seja usado no lugar do Photoshop. Já vi gente exigindo o Photoshop para apenas criar um Wordart no Microsoft Office, copiar para o Photoshop, mudar alguns tons de cor e salvar no padrão “Photoshop” só para dizer que foi feito numa plataforma de editoração especializada. O Gimp poderia muito bem ter sido usado.

Uma das vantagens do Linux em relação ao Windows é que ele não contém vírus. Alguns críticos dirão que todo sistema operacional contém vírus, mas se formos buscar o termo técnico que define vírus você verá que ele não existe no Linux. O que existe são malware. Vírus é um tipo de malware. Para um sistema ser classificado como vírus ele precisa se replicar sem qualquer interação com o usuário. Se o usuário precisa clicar em algo, abrir um documento ou fazer qualquer outra ação, então isso não é virus. Pode ser worm, backdoor, etc. Mas isso é outra questão. O que acontece na prática é que o número de malware para Linux ainda é muito pequeno, e seu alcance é limitado. Geralmente a instalação padrão do Linux é mais segura do que a instalação padrão do Windows. Não quero dizer com isso que o Linux é mais seguro do que o Windows. A segurança depende de quem configura e/ou usa o sistema.

Agora que você viu as vantagens e desvantagens do Linux, vamos falar um pouco sobre os mitos e verdades do sistema nos próximos artigos.



quarta-feira, 3 de maio de 2017

O que é Linux?

O primeiro programa a ser instalado em um computador é o sistema operacional. Há vários sistemas operacionais, como o Windows, o Mac OSX e o Android. Esse sistema é o responsável por todos os processos de entrada e saída do computador. Ele é o gerente do sistema. Quando você manda algum documento para a impressora, quem na verdade controla esse processo é o sistema operacional. É esse sistema que faz a comunicação entre as aplicações (editores de texto, planilhas, navegadores, players de música e vídeo, etc) e o hardware (impressora, teclado, drive de dvd, placa de som, rede,etc). Portanto, as aplicações precisam ser escritas para o sistema operacional, e o hardware tem que ser compatível com ele.

Linux é um sistema operacional compatível com o Unix, amigável e completo. Ele é multiplataforma, ou seja, roda em muitos tipos de hardware, como Intel, Risc, Spark, Arm e até em relógios de pulso. Ele está presente tanto nos computadores mais rápidos do mundo como em pequenos smartphones. Você o encontra tanto em grandes servidores de internet quanto em desktops domésticos. Ele é encontrando tanto na estação espacial quanto em submarinos nucleares, usinas atômicas e hidroelétricas. Ele está por trás de grandes sites como o Google e a Amazon, bem como em sistemas internos de pequenas empresas.

O Linux, assim como outros sistemas operacionais modernos, é multitarefa, ou seja, consegue administrar vários programas ao mesmo tempo. Também é multiusuário, conseguindo manter várias pessoas conectadas ao sistema sem que seus processos e arquivos entrem em conflito. 

Mas o grande diferencial do Linux é que ele é um software livre.


Sofware livre

O grande diferencial do Linux é que ele não é proprietário. Ele é um software livre. O conceito por trás do software livre está baseado em 4 liberdades que o software proprietário não tem.
  1. Pode ser instalado em qualquer equipamento, para qualquer finalidade. Você não precisa pedir permissão para instalar o programa, nem dizer em quantos equipamentos ele será instalado. Não importa para que ele será usado. Um software livre não pode ter nenhum tipo de restrição ou limitação baseada no tipo de hardware, local ou propósito de sua utilização. O mesmo programa pode ser instalado tanto em um super servidor de uma multinacional como em um smartphone de um estudante.
  2. Pode ser estudado por qualquer pessoa. Para ser livre o programa precisa ser fornecido junto com o seu código fonte para que seja possível saber como ele é feito.
  3. Pode ser modificado por qualquer pessoa. Qualquer pessoa que entenda de programação tem autorização para modificar o programa a seu gosto, quer seja para adicionar uma nova funcionalidade, quer seja para alterar uma função existente. Todas as alterações também deverão ser livres.
  4. Pode ser copiado e distribuído livremente. Todo software livre pode ser copiado, transferido e distribuído livremente sem que isso seja considerado pirataria. 
As únicas restrições são que os créditos precisam ser mantidos, ou seja, o nome do autor original do programa não pode ser retirado do código fonte, bem como o tipo de licença que precisa ser mantido em todas as alterações feitas. Não é permitido pegar um programa livre, alterá-lo e disponibilizar a versão alterada como um software fechado. 


Mas o que é Código Fonte?

Talvêz você esteja se perguntando o que é Código Fonte. Para exemplificar isso vamos imaginar um bolo. Aquele bolo que só a sua avó faz e que ninguém consegue fazer igual. Só ela tem a receita de quanto vai de farinha, quanto de açúcar, quanto leite, e qual o igrediente secreto que ninguém sabe. Se esse bolo for um “Bolo Livre”, então a sua avó disponibiliza a receita do bolo. Essa receita contém todos os igredientes e suas respectivas quantidades, quais procedimentoe deverão ser feitos e qual a sequência correta, por quanto tempo o bolo deverá ficar no forno, etc. Assim qualquer pessoa poderá não só fazer o bolo como alterá-lo para deixá-lo mais doce se assim desejar. Mas se o bolo for “Proprietário” então a receita vai morrer junto com sua avó. 

Todo software é escrito em linguagem humana inteligível (pelo menos para os programadores!). Mas o computador não entende essa linguagem. Por isso, todo programa precisa ser traduzido para uma linguagem que o equipamento entenda. A esse processo chamamos de “Compilação”. Abaixo um trecho de um programa escrito em linguagem C.

void desenha_campo() //desenha as paredes
{
int z; // variavel auxiliar para desenhar
for(z=0;z<j;z++) // desenha parede de cima horizontal
{
irparaxy(z,0);
printf("%c",16);
Sleep(10);
}
for(z=0;z<i;z++) // desenha parede da direita vertical
{
irparaxy(j,z);
printf("%c",31);
Sleep(10);
}

Agora um trecho do programa já compilado.

uޅ��#\�B#n�B#"�B#
�J�B#"tD��#�##��uˍ�&�#"�B#��[^_Ív��#�O������&�#\��#뒐��&��닃�#h�#h'#j#��\��#�ǍP#�"뫹#�#����UWVS��0�l$L�\$He�#�D$ 1��L$D�|$T��)؃�#�L$#h�#h'#P��\�\$$��#9݉#�L$
��1ۉ���'�B#��#�D$#�##�D#��T$#9�����##p���t.�#h���u\��#Vh�Sj#�������#���##�#���#�v�>����������|$#e3=#����,[^_]Í��D$#��D$ PV�������#�źM#�D$#����T$
��6���U�T$#R�t$\Ph#j#�A�����#h�#h'#U��\��#�M�������#�D$#PSV�#�����
��h##h'#V�l\��#��t5�D$#����9������&�O]�r��������#���1�1��������
��������f�f���#RP�������#��t�8t
��
���#h##h3P��[��
h$#h3j#��Z�.��#f�#��

É por isso que um programa precisa ser livre, para poder ser alterado por qualquer pessoa. Somente quem tem o código fonte original poderá alterar o programa. O Windows, o Microsoft Office, o teu antivírus e a maioria dos programas que você usa no Windows são softwares proprietários. 

Mas qual é melhor, Linux ou Windows? Essa e outras perguntas eu vou responder nas próximas postagens.