quinta-feira, 24 de dezembro de 2009

O que é GNU/Linux?

        GNU/Linux é a forma mais correta, segundo a Free Software Foundation (FSF, Fundação Para o Software Livre), de chamar o conjunto Sistema Operacional mais o Kernel Linux. Isso porque a maior parte desse Sistema Operacional é composto por ferramentas, por softwares do Projeto GNU, da FSF. A Fundação pede que os usuários utilizem este nome, GNU/Linux, para se referirem a tais sistemas. Porém, Linus Torvalds, apesar de não se importar com esse nome, prefere utilizar o termo “Linux” simplesmente[1]. Sobre o uso desse nome, ele afirma no documentário Revolution OS: “Bem, eu acho que é justificado mas somente se você realmente fizer uma distribuição GNU do Linux. […] Porque se você realmente fizer sua própria distribuição Linux você pode nomeá-la como quiser. Mas chamar o Linux em geral de 'GNU Linux' eu acho que é ridículo”[2]. O fato é que pessoas que passam a conhecer a história do Software Livre e da criação do Kernel Linux aceitam mais facilmente essa reivindicação, pois o projeto GNU e a FSF fundaram, no início da década de 80, os pilares do Movimento Software Livre e criaram licenças para software livre, fundamentais para garantia das liberdades para os usuários, sendo uma delas, a GNU GPL, adotada por Linus Torvalds para licenciar seu Kernel Linux. Além do que, mesmo antes do Kernel Linux estar pronto o Projeto GNU já havia construído diversas ferramentas que, juntas, compunham um Sistema Operacional quase completo, que poderia ser utilizado por qualquer programador a partir do momento em que o Kernel foi disponibilizado[3]. O importante é saber que essa união do kernel Linux de Linus Torvalds com o Sistema Operacional do projeto GNU foi um marco histórico para a informática, que possibilitou que em poucos anos, com a colaboração de desenvolvedores de todo o mundo, tivéssemos a disposição um sistema operacional livre e, assim, a garantia da liberdade para usuários de softwares.

        Na próxima postagem saiba: Quem criou e o que é o Projeto GNU.

REFERÊNCIAS

[1] LINUX. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linux&oldid=16864069>. Acesso em: 22 set. 2009.
[2] REVOLUTION OS. Direção de : J.T.S. Moore. Produção: J. T. S. Moore. Intérpretes: Richard Stallman; Linus Torvalds; Eric S. Raymond; Bruce Perens; Michael Tiemann; Larry Augustin; Frank Hecker; Behlendorf Brian. Roteiro: J. T. S. Moore. United States: Wonderview Productions, 2001. 1 DVD (85 min).
[3] STALLMAN, Richard M. Linux e o projeto GNU. Boston: Free Software Foundation, 2009. Disponível em: <http://www.gnu.org/gnu/linux-and-gnu.pt-br.html>. Acesso em: 23 set. 2009.

sábado, 19 de dezembro de 2009

Como se deu o início do projeto do Kernel Linux?

        Linus Torvalds começou, em 1991, o projeto do que viria a ser o Kernel Linux como um objetivo pessoal, o qual descreve no documentário Revolution OS, de 2001:

        O objetivo inicial, era meu objetivo pessoal de ser capaz de rodar em meu computador um ambiente similar ao que eu cresci usando nos computadores da Universidade. Eu não consegui achar nada que me satisfizesse. Então, basicamente usando computadores por toda minha vida, naquele ponto eu decidi que faria sozinho. A maior parte de minha inspiração veio do SunOS que era o que eu usava na Universidade naquela época[1].

        O SunOS utilizado por Linus Torvalds na Universidade de Helsinki era um sistema operacional UNIX de código fonte fechado[2]. Na tentativa antes citada, de obter um ambiente similar, Torvalds, utilizando em seu PC 386 o sistema Minix, da família UNIX, desenvolvido por Andrew S. Tanenbaum e de código fonte aberto, passou a fazer alterações e adaptações no kernel desse sistema conforme seus anseios e utilizando alguns programas do projeto GNU[3]. Devido ao seu descontentamento com o emulador de terminal do Minix, Linus passou a desenvolver seu próprio emulador de terminal, o qual seria utilizado para acessar de sua casa o computador da Universidade[4]. Esse emulador de terminal não rodaria sobre o Minix, mas diretamente sobre o hardware de seu PC 386. Com isso, e após diversas modificações que foram sendo realizadas com o intuito de melhorar o Minix, o projeto de Torvalds foi se caracterizando como um sistema operacional independente do Minix, criando como ele afirmou "um Minix melhor que o Minix" ("a better Minix than Minix")[5]. Era um kernel monolítico compatível com UNIX; um kernel com arquitetura diferente do kernel Minix e do kernel Hurd (do projeto GNU), ambos com características de microkernel[6]. Após algum tempo desenvolvendo o projeto do Kernel Linux sozinho, Linus Torvalds, em 5 de outubro de 1991, anuncia o seu projeto, disponibiliza o kernel que estava em sua versão 0.02 e solicita colaboração, por meio de uma histórica mensagem enviada através da Usenet ao newsgroup comp.os.minix:

        Você suspira pelos bons tempos do Minix-1.1, quando os homens eram homens e escreviam seus próprios "device drivers"? Você está sem um bom projecto em mãos e deseja trabalhar num S.O. que possa modificar de acordo com as suas necessidades? Acha frustrante quando tudo funciona no Minix? Chega de noite ao computador para conseguir que os programas funcionem? Então esta mensagem pode ser exactamente para você. Como eu mencionei há um mês atrás, estou trabalhando numa versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo do estado em que poderá ser utilizado (embora possa não ser o que você espera), e eu estou disposto a disponibilizar o código-fonte para ampla distribuição. Ele está na versão 0.02... contudo eu tive sucesso ao executar bash, gcc, gnu-make, gnu-sed, compressão etc. nele.[7]

REFERÊNCIAS

[1] REVOLUTION OS. Direção de : J.T.S. Moore. Produção: J. T. S. Moore. Intérpretes: Richard Stallman; Linus Torvalds; Eric S. Raymond; Bruce Perens; Michael Tiemann; Larry Augustin; Frank Hecker; Behlendorf Brian. Roteiro: J. T. S. Moore. United States: Wonderview Productions, 2001. 1 DVD (85 min).
[2] SunOS. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://en.wikipedia.org/w/index.php?title=SunOS&oldid=312632087>. Acesso em: 21 set. 2009.
[3] LINUS TORVALDS. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linus_Torvalds&oldid=16413874>. Acesso em: 21 set. 2009.
[4] SÓ POR PRAZER. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=S%C3%B3_por_Prazer&oldid=16192587>. Acesso em: 21 set. 2009.
[5] LINUX. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linux&oldid=16864069>. Acesso em: 21 set. 2009.
[6] KERNEL. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Kernel&oldid=16799300>. Acesso em: 21 set. 2009.
[7] LINUX. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linux&oldid=16864069>. Acesso em: 22 set. 2009.

domingo, 13 de dezembro de 2009

Quem criou o Linux?

        O criador do Kernel Linux é Linus Benedict Torvalds, que nasceu na cidade de Helsinque, na Finlândia, em 28 de dezembro de 1969. Torvalds foi desde cedo estimulado a lidar com cálculos e com computadores pelo avô, Leo Waldemar Tornqvist, um matemático e estatístico da Universidade de Helsinque, sempre demonstrando possuir habilidades notáveis nas atividades em que se envolvia. Como era de se esperar, em 1988 Torvalds ingressou na Universidade de Helsinque para cursar Ciências da Computação. Ao longo de sua adolescência e juventude teve contato com diversos computadores, como o Commodore VIC-20, o Commodore 64, o Amiga, o Sinclair QL, o IBM PC e o Intel 80386 (PC 386). Ao longo desse tempo, também programou em diversas linguagens, como BASIC, Forth, Assembly e C.[1] Tudo isso lhe forneceu uma boa carga de conhecimento sobre hardware e programação, que certamente lhe foi útil no momento que passou a construir o Kernel Linux, em 1991. Na próxima postagem mais detalhes sobre o inicio do desenvolvimento do kernel de Linus Torvalds, sua inspiração e algumas de suas características.



FIGURA 1 - Linus Torvalds, criador e
principal mantenedor do Kernel Linux.
Fonte: Wikipédia

REFERÊNCIAS

[1] LINUS TORVALDS. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linus_Torvalds&oldid=16413874>. Acesso em: 20 set. 2009.

terça-feira, 8 de dezembro de 2009

O que é Linux?

        Comumente o termo Linux é utilizado por usuários e pelos meios de comunicação para designar um sistema operacional que utiliza o kernel Linux[1]. Um Sistema Operacional “é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário”[2]. O kernel é o núcleo, o cerne do sistema operacional, representando “a camada de software mais próxima do hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo”[3]. Portanto, muitos chamam, por conveniência e genericamente, o conjunto sistema operacional mais o Kernel Linux, de Linux. O importante neste momento é entender e guardar a informação que Linux é o nome de um kernel. Nas próximas postagens serão apresentadas mais informações sobre o autor do Kernel Linux, a história de seu desenvolvimento e suas características.

FIGURA 1 - O Pinguim Tux, mascote do Linux.

REFERÊNCIAS

[1] LINUX. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Linux&oldid=16864069>. Acesso em: 22 set. 2009.
[2] SISTEMA OPERATIVO. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Sistema_operativo&oldid=16957043>. Acesso em: 22 set. 2009.
[3] KERNEL. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Kernel&oldid=16799300>. Acesso em: 22 set. 2009.

sábado, 5 de dezembro de 2009

O que é Software Código Aberto (Open Source Software)?

        Em 1998 o termo “Código Aberto”, ou “Open Source” em inglês, foi criado pela OSI (Open Source Initiative) como uma outra forma de falar sobre o “Software Livre”, uma forma diferente do proposto pela Free Software Foundation. O termo refere-se a softwares que respeitem as quatro liberdades fundamentais definidas pela Free Software Foundation. Portanto, Software Livre (Free Software) e Software Código Aberto (Open Source Software) são um mesmo tipo de software, porém o primeiro termo, é utilizado e recomendado pela Free Software Foundation e pelo Movimento Software Livre, como uma forma de salientar aspectos éticos, políticos, filosóficos e de liberdade que tangem o uso de tal software, enquanto que o segundo termo é utilizado pela Open Source Initiative e pelo Movimento Open Source como uma forma de abordar questões puramente técnicas e econômicas acerca desses softwares. Todd Anderson, Chris Peterson, Jon "Maddog" Hall, Larry Augustin, Sam Ockman e Eric Raymond, são personalidades que são referências para o Movimento Open Source, e estavam presentes na reunião ocorrida em fevereiro de 1998, na qual surgiu o termo Open Source.[1]

 
FIGURA 1 - Selo Open Source Initiative.
Fonte: Wikipédia

        Para um software ser distribuído como Open Source, para que ele possa ser assim chamado, os termos da licença que o acompanha devem cumprir, devem estar de acordo com os critérios definidos pela Open Source Initiative no chamado “Open Source Definition”, ou OSD[2]. Na página da organização, no endereço eletrônico www.opensource.org, encontra-se a definição (em inglês) de Open Source, e ainda uma lista de licenças aprovadas pela OSI. A definição de Open Source, criada pela OSI a partir do texto original da Debian Free Software Guidelines (DFSG), segue abaixo traduzida para o português e retirada do Wikipédia.

1. Distribuição livre
A licença não deve restringir de nenhuma maneira a venda ou distribuição do programa gratuitamente, como componente de outro programa ou não.
2. Código fonte
O programa deve incluir seu código fonte e deve permitir a sua distribuição também na forma compilada. Se o programa não for distribuído com seu código fonte, deve haver algum meio de se obter o mesmo seja via rede ou com custo apenas de reprodução. O código deve ser legível e inteligível por qualquer programador.
3. Trabalhos Derivados
A licença deve permitir modificações e trabalhos derivados, e deve permitir que eles sejam distribuídos sobre os mesmos termos da licença original.
4. Integridade do autor do código fonte
A licença pode restringir o código fonte de ser distribuído em uma forma modificada apenas se a licença permitir a distribuição de arquivos patch (de atualização) com o código fonte para o propósito de modificar o programa no momento de sua construção. A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original.
5. Não discriminação contra pessoas ou grupos
A licença não pode ser discriminatória contra qualquer pessoa ou grupo de pessoas.
6. Não discriminação contra áreas de atuação
A licença não deve restringir qualquer pessoa de usar o programa em um ramo específico de atuação. Por exemplo, ela não deve proibir que o programa seja usado em um empresa, ou de ser usado para pesquisa genética.
7. Distribuição da Licença
Os direitos associados ao programa devem ser aplicáveis para todos aqueles cujo o programa é redistribuído, sem a necessidade da execução de uma licença adicional para estas partes.
8. Licença não específica a um produto
Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original.
9. Licença não restrinja outros programas
A licença não pode colocar restrições em outros programas que são distribuídos juntos com o programa licenciado. Isto é, a licença não pode especificar que todos os programas distribuídos na mesma mídia de armazenamento sejam programas de código aberto.
10. Licença neutra em relação a tecnologia
Nenhuma cláusula da licença pode estabelecer uma tecnologia individual, estilo ou interface a ser aplicada no programa.[3]

REFERÊNCIAS

[1] CÓDIGO ABERTO. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=C%C3%B3digo_aberto&oldid=17076633>. Acesso em: 18 out. 2009.
[2] THE OPEN SOURCE INITIATIVE. The Open Source Definition. San Francisco: OSI, 2009. Disponível em: <http://www.opensource.org/docs/osd>. Acesso em: 26 set. 2009.
[3] CÓDIGO ABERTO. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2009. Disponível em: <http://pt.wikipedia.org/w/index.php?title=C%C3%B3digo_aberto&oldid=17076633>. Acesso em: 18 out. 2009.