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.