Software Livre e Linux

Definição

De acordo com a Wikipedia, software de computador (ou simplesmente software) é aquela parte do sistema do computador que codifica informação (ou instruções de computação). O termo software é geralmente utilizado para um programa de computador e vice versa. O Software pode consistir de um único programa de computador, especialmente na ciência recente de micro-computador, quando a performance bruta do processador e a capacidade da memória permitem executar grandes programas. Sobre tudo, o software é composto de um ou mais programas, mas também de informações que o permite funcionar. Esses programas podem tomar diferentes formas: executáveis, bibliotecas dinâmicas ('dll' no Windows ou 'so' no GNU/Linux), ou apenas arquivos-fonte para um interpretador (v.g. Perl ou scripts PHP). A informação vem também em diferentes formatos: arquivos clássicos, banco de dados (relacional, hierárquico etc)... Na ciência de microcomputadores, imagens, especialmente ícones, são geralmente integrados no executável.

Definição geral de "Software"

O software contém instruções que são executadas por um computador, como oposto ao dispositivo físico pelo qual ele funciona (o 'hardware'). Um 'programa' é uma lista de instruções, escrito por um programador, em linguagem de programação (v.g. linguagem C, linguagem C++, linguagem Java, linguagem Python). Geralmente eles são guardados em um simples arquivo. 'Software', no entanto, é usado para indicar uma série de instruções consistentes de vários programas. Uma pessoa com um certo conhecimento pode ler o programa; isso é chamado 'código fonte' e é a receita do programa. Os desenvolvedores de software de 'fonte fechada' guardam muito bem esses segredos. Apenas software de 'código aberto' tem seu código fonte disponível ao público. As características do software são claramente descritas no código fonte (traduções dos binários 0 e 1, os quais são apenas instruções da máquina lógica). Os compiladores são usados para traduzir o código fonte para a linguagem da máquina. Depois dessa transformação, tem-se o que chamamos 'binários' que podem ser interpretados pela máquina. Nós ainda precisamos, no entanto, adaptá-los ao sistema de software (MS Windows, Mac OS, GNU/Linux, BSD etc) para fazê-lo funcionar. Uma vez adaptado para o sistema nativo, o software está pronto para ser instalado e executado.

O Software pode ser classificado assim:

Apresentação do software livre

As origens do software livre

A história começa no início dos anos oitenta, quando Richard Stallman, um pesquisador do MIT (Instituto de Tecnologia de Massachusetts, nos Estados Unidos), enfrentou um dilema ético. Sua seção de pesquisa de TI foi fechada; por anos ele compartilhou seu conhecimento com seus colegas. Agora, ele deveria vender seus conhecimentos pelo maior preço ou ele deveria tomar a ocasião para compartilhar o conhecimento com o mundo? Para apaziguar sua consciência, ele criou o princípio do "software livre". Esse conceito é definido por quatro princípios:

  1. A liberdade de executar o programa, sem restrições quanto ao seu uso.
  2. A liberdade para estudar o funcionamento interno do programa e adaptá-lo às suas necessidades. Para isso, o acesso ao código fonte é um pré-requisito.
  3. A liberdade para redistribuir as cópias.
  4. A liberdade para melhorar o programa e publicar novas melhorias para que toda a comuidade possa se beneficar disso. Para isso também, o acesso ao código fonte é um pré-requisito.

O Projeto GNU

Depois de escrever esses princípios, Stallman criou a Fundação de Software Livre (Free Software Foundation - FSF). O objetivo dessa fundação é promover e desenvolver o software livre. Para sua fundação, Stallman começou escrevendo aplicações. Seu último objetivo: criar um sistema totalmente livre. Para proteger o software GNU de corporações comerciais, Stallman criou uma licença: a Licença Pública GNU (GPL em inglês). A licença reincorpora os quatro princípios elementares mencionados acima, juntamente com um sólido fundo judicial. O primeiro teste real da GPL foi um julgamento alemão em 2004, onde um juiz condenou uma companhia por violar a licença. GNU, como muitos acrônimos do mundo *nix, é uma abreviação - GNU's not Unix - GNU não é Unix (a primeira palavra GNU não significa nada). Nos anos oitenta, quando a Microsoft e o Windows ainda eram mediocres, o Unix era o sistema proprietário número um.

A iniciativa Open Source

Outro movimento se deu por volta dos anos noventa do século passado. Eles se consideravam mais flexíveis que a FSF. A nova corrente tomou forma quando, em 1998, a Netscape se tornou software livre - naquele tempo, um grupo de pessoas decidiram acompanhar o caminho da Netscape. Eles seguiram o conceito de software livre do Debian. Você pode encontrar os dez critérios deles aqui: a versão original da licença OSI (versão 1.9).

Entendendo o software livre

De onde o "software livre" vem?

O primeiro software livre foi desenvolvido pelo próprio Stallman. Para começar construindo um sistema operacional, você precisa de um software básico (como a coleção de compiladores GNU). Mas após a FSF escrever toda a base de um novo SO, ainda alguma coisa faltava: um kernel. Stallman escolheu um extremamente ambicioso conceito para o novo kernel: ele deveria se tornar um micro-kernel (o Windows, por exemplo, usa um macro-kernel; o Linux, por sua vez, usa um micro-kernel). No entanto, o desenvolvimento do seu kernel não foi tão bom quanto o esperado. Esse sistema (chamado GNU/Hurd) ainda não funcionava. É nesse ponto que aparece o Linus Torvalds. Esse estudante da Finlândia estava estudando o funcionamento interno das CPUs x386 e escreveu um programa POSIX compatível para entender a funcionalidade dessa geração de processadores. Apenas por diversão, ele escreveu um kernel usando software GNU. Por fim, ele distribuiu o kernel sob a Licença Pública GNU. O novo "combo" GNU/Linux pareciam o par perfeito; os desenvolvedores o aperfeiçoaram incrivelmente rápido, graças às contribuições da comunidade hacker (o termo 'hacker' significa uma apaixonado por TI e é o oposto de 'cracker' que é uma pessoa que tenta destruir - ou burlar - outros sistemas; entretanto, o termo 'hacker' foi generalizado e tratado pelo público como sinônimo de 'craker', dando-lhe uma conotação negativa). Quando anunciado oficialmente (a versão 1.0 nasceu em 14 de março de 1994), o sistema GNU/Linux já tinha uma ólida reputação. Apesar de ter sido usado somente por uma elite de hackers, parecia ser muito promissor. Muitos 'kernéis' se seguiram: kernel 2.0 surgiu em 1999 e o 2.2 o seguiu. Enquanto o 2.2 tinha muitos problemas, com o 2.2.13 o kernel seguiu seu rumo no mundo corporativo graças aos patches do mainframe da IBM. Em 2001, o kernel 2.4 saiu. No final de 2006, veio o kernel 2.6. Enquanto o 2.6 é o único ativamente mantido, o 2.4 ainda recebe atualizações de segurança. O ponto focal do desenvolvimento do Linux é a internet; é o sangue da vida da comunidade de software livre. O sistema GNU/Linux sendo uma das suas maiores conquistas poderia ter sido nada sem a troca de informações entre desenvolvedores espalhados pelo mundo. O software livre oferece muitos aplicativos de qualidade - de fato, a maioria da worldwide web roda em servidores Linux usando softwares como Apache e PHP... Muitos aplicativos não são apenas disponíveis para Linux, mas também foram portados para BSD's, Windows e até o Mac OS X. Um breve sumário de alguns dos mais conhecidos aplicativos: