Características do GNU/Linux

•13 13UTC Abril 13UTC 2009 • Deixe um comentário

Características gerais, usufruidas tanto pelos usuários técnicos e não-técnicos:

gnu-linux

  • Comunidade solidária: além do suporte comercial que pode ser adquirido, você também pode contar com uma comunidade GNU/Linux bastante solidária e numerosa. Em geral, você pode contar com a ajuda de milhares de pessoas que colaboram em listas de discussão. Duas das listas mais movimentadas nacionalmente são: http://www.dicas-l.unicamp.br (site de dicas fornecidas pela lista de usuários GNU/Linux mantida pela Unicamp) dentre outros

  • Vasta documentação: além da documentação padrão fornecida em cada software, existe um projeto dedicado para desenvolver e traduzir documentação gratuita classificadas como How-Tos (como fazer), livros e FAQs (perguntas frequentes) em http://www.tldp.org (The Linux Documentation Project) que é o principal repositório de documentação em GNU/Linux.

  • Segurança: Mesmo com muitos outros recursos de segurança, o GNU/Linux separa os usuários como comuns e super-usuário (veremos mais detalhes nos capítulos seguintes). Em geral, utiliza-se usuários comuns para executar as tarefas do dia-a-dia, evitando que o sistema seja comprometido por terceiros ou algo semelhante.

  • Multiprocessador, multitarefa e multiusuário: O kernel do Linux conta com os mais sofisticados recursos de S.O.s modernos, permitindo suporte à vários processadores (multiprocessador), várias tarefas por processador (multitarefa) e vários usuários utilizando o sistema ao mesmo tempo (multiusuário).

  • Melhoria contínua: em geral, um sistema tem a tendência de aumentar a lentidão a cada nova versão. Pelo contrário as distribuíções do GNU/Linux tem melhorado a cada versão, além de melhorar o seu desempenho, também aumentando o suporte à hardware e novas funcionalidades.

Características para servidores

servidores

Aqui apresentaremos algumas características para servidores, percebidas e implementadas por pessoal técnico:

  • Servidor Web (páginas Internet): o GNU/Linux é considerado uma das melhores plataformas para rodar o líder de mercado dos Servidores Web (que serve páginas Internet), o servidor Web Apache. Este é um software livre com desempenho imbatível, bastante versátil, modular e bem mais seguro que seus concorrentes. Quanto a questão funcionalidade, existem dezenas de módulos disponíveis, que quando habilitados, multiplicam o nível de funcionalidade do Apache, tudo dentro da sua necessidade.

  • Servidor de e-mail: existem diversas opções de servidores de correio eletrônico, na maioria software livre de excelente qualidade, desempenho e funcionalidades. Os servidores mais populares são: sendmail, qmail, postfix e exim.

  • Servidor FTP: São servidores de arquivos para Internet, através do protocolo FTP – File Transfer Protocol. O servidores mais populares são: proftp e wu-ftpd.

  • Servidor de arquivos: possui suporte à servidor de arquivos utilizando um protocolo denominado NFS, de excelente desempenho, estabilidade e que pode ser utilizado tanto em redes locais quanto na Internet. Também pode servir arquivos através de protocolos nativos de outros sistemas.

  • Compartilhamento de conexões internet: compartilha um acesso internet com outros da rede, através de um serviço denominado Proxy, permitindo autenticação e controle de acesso ao conteúdo. O proxy mais conhecido é o Squid.

  • Conectividade com várias redes: pode comunicar com vários outros protocolos de rede, inclusive com os protocolos utilizados pela Microsoft (SMB), Apple (Appletalk) e Novell (IPX/SPX). A conectividade com o Windows – é realizada através do software livre Samba – permite compartilhamento de impressoras e arquivos, além de fornecer autenticação para estações Windows 9X, ME, XP, 2000 e 2003.

  • Linguagens de programação: existem várias excelentes opções para programação no GNU/Linux. Dentre as opções livres estão ambientes de programação completos para as linguagens PHP (primariamente para Web), Perl e Python (programação geral, inclusive para Web), C e C++, Java, Pascal, além de linguagens novas como Lua e C#. Dentre as opções comercias destaca-se o Borland Kylix, ambiente integrado para desenvolvimento rápido em Object Pascal e C++.

Características para desktop

penguindesktop

  • Suporte à vários hardwares: com o aumento de usuários de GNU/Linux, os fabricantes de hardware aumentam seu interesse em desenvolver drivers. Isto é perceptível a cada nova versão do GNU/Linux, onde existe um aumento significativo de drivers, melhorando o suporte à impressoras, scanners, placas de vídeo, fax-modems, dispositivos USB, web-cams, placas multimídia, placas de rede, etc.

  • Reconhecimento automático de hardware: um dos recursos mais importantes para os usuários leigos é o reconhecimento automático de hardware. Um dos recursos mais utilizados nas distros é o kudzu – http://sourceforge.net/projects/kudzu/. Ele pode ser rodado na inicialização do sistema, ou até durante o funcionamento total.

  • Várias interfaces gráficas: no GNU/Linux, não existe somente uma interface gráfica (gerenciadores de janela), mas dezenas delas; algumas são tão pequenas e leves que cabem em disquetes e outras bastante complexas e com muitas funcionalidades. As mais populares são: Blackbox, Enlightment, Fvwm95, Gnome, Icewm, Qvwm, KDE, WindowMaker, etc. No endereço: http://www.plig.org/xwinman/ há uma boa lista e análise de cada um destas interfaces gráficas e outras.

  • Vários pacotes de escritório: existem vários pacotes de escritório disponíveis como software livre. Em geral, são bastante completos, com editores de texto, planilha de cálculo, apresentação, desenho vetorial, etc. Os mais conhecidos são: Koffice, Openoffice, Gnome-Office, etc.

  • Execução de binários Windows e DOS: é possível rodar aplicativos Windows e DOS no GNU/Linux através de emuladores. Os mais populares são: Wine (aplicativos Windows) e dosemu (aplicativos DOS).

Creative Commons License
Características do GNU/Linux by Características do GNU/Linux is licensed under a Creative Commons Atribuição-Uso Não-Comercial 2.5 Brasil License.
Based on a work at wiki.sintectus.com.

Projeto GNU

•13 13UTC Abril 13UTC 2009 • Deixe um comentário

gnu

Animal-símbolo do projeto GNU

Desde 1971, quando trabalhava nos laboratórios de inteligência artificial do MIT, Richard Stallman fez parte de uma comunidade de programadores que distibuíam livremente seus códigos-fonte de programas. Mesmo em 1984, quando terminou seus trabalhos na instituição,Stallman continuou seu trabalho no próprio MIT por vários anos, graças ao consenso com as autoridades da instituição.

stallman

Stallman, criador do projeto GNU, O ambiente colaborativo que existia desde esta época entre diversos programadores em compartilhar seus códigos foi ideal para que Stallman idealizasse um movimento que apoiasse a liberdade de uso de software.

Assim, Stallman resolveu lançar as bases filosóficas do software livre, que fornecia liberdade dos usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software.

Além da manutenção da base ideológica do software livre, Stallman também se empenhou em colocar a idéia em prática. Neste sentido, ele tinha como projeto, criar um sistema operacional todo composto por código-fonte livre, visando abandonar todo software proprietário.

Surgiu assim, o projeto GNU, ou o início do movimento de software livre. Ele decidiu também que o S.O. seria compatível com Unix, de forma que fosse fácil de portar aplicativos e obter adeptos. Ele próprio desenvolveu dois grandes componentes que auxiliaram no projeto GNU: O emacs, 1979, escrito (quase que exclusivamente em LISP) foi a ambiente usado por Stallman para o desenvolvimento dos outros componentes; e o gcc, que é atualmente o mais popular compilador C.

No sentido de preservar legalmente o status de liberdade de software, Stallman, assistido por vários advogados, criou uma licença de uso de software denominada GNU GPL – (Licença Pública Geral GNU), ou simplesmente GPL. Assim, desenvolvedores que resolveram liberar seus códigos-fonte, puderam utilizar a licença GPL.

O kernel Linux, por exemplo, foi um dos que se licenciou sob a GPL.  No sentido de promover o software livre de forma mais eficiente, Stallman criou a Fundação do Software Livre  em 1985. A partir de então, várias pessoas (usuários e desenvolvedores) e instituições (empresas e governo) puderam se beneficiar e colaborar com o projeto: doando recursos financeiros, utilizando software GNU, hospedando e divulgando o seu projeto de software GNU, mantendo-se informado da filosofia e aspectos legais, etc.

Iniciativas que promovem o uso do Código Aberto

opensource_logo os3

Há também outras iniciativas que promovem o uso do código aberto, com a idéia de um melhor ambiente de desenvolvimento. Elas surgiram depois da FSF, algumas com atuação mais local e outras de nível internacional.

A OSI, Open Source Initiative - http://www.opensource.org – liderada por Eric Raymond, é um exemplo de instituição sem fins lucrativos que promove a abertura do código. Aqui no Brasil temos o Projeto Software Livre Brasil – http://www.softwarelivre.org – liderada pelo Governo Estadual do Rio Grande do Sul, já realizou vários eventos internacionais anuais, divulgando internamente os projetos nacionais e internacionais de Software Livre.

Creative Commons License
Projeto GNU by Projeto GNU is licensed under a Creative Commons Atribuição-Uso Não-Comercial 2.5 Brasil License.
Based on a work at wiki.sintectus.com.

História do Linux

•13 13UTC Abril 13UTC 2009 • Deixe um comentário

O Linux foi criado pelo estudante finlandês de Ciências da Computação da Universidade de Helsinque, chamado Linus Torvalds, que inspirou-se em um sistema operacional compatível com o Unix desenvolvido por Andrew Tanembaum, chamado Minix

mask-linus_torvalds
Fig-  Linus Torvarlds – criador do Linux

Linus começou a interessar-se por computadores quando digitava programas à pedido de seu avô, que possuía um VIC-20, o qual foi, mais tarde, herdado por Linus. Depois desses primeiros contatos, surgiu no finlandês uma interminável vontade de sempre conhecer mais sobre os computadores. Desde então, a maior parte de seu tempo é dedicada a estudos na área de computação. Ele mesmo se considera um “geek”, que é um termo que designa especialistas na área de informática (algo como “nerd” aqui no Brasil). Na fria Finlândia, como dizia a própria mãe, bastavam um quarto e um computador para que Linus se sentisse satisfeito.

A priori, o desenvolvimento do Linux não tinha um projeto definido. A idéia de Linus era fazer um Minix melhor do que o Minix, uma vez que o professor Andrew Tanembaum havia desenvolvido o Minix como uma ferramenta acadêmica, sem intenções de uso cotidiano, e não fazia mudanças sugeridas pelos seus usuários.

Em 5 outubro de 1991, Linus disponibilizou a versão 0.02  do núcleo do Linux, através de uma mensagem de news convocando programadores interessados a participar do processo de desenvolvimento do sistema. Esta versão era bem mínima conseguindo rodar as ferramentas como: interpretador de comandos (bash), compilador C (gcc), compressor (compress). Na época, era ainda dependente do minix para ser compilado e era dependente da plataforma i386 (Intel 386).

tux.gif
Fig. 1.4 – Tux: mascote do linux

Esta versão não tinha nenhuma restrição de uso, assim como outros sistemas da época, tais como: Hurd, que ainda não estava utilizável; e 386BSD, que deu origem ao atual FreeBSD, liberado em 1993 com diversos problemas no desenvolvimento de projetos na época.

Vários fatores ajudaram a rápida expansão do Linux depois de seu lançamento: Popularização dos computadores pessoais: o Unix era o S.O. padrão para estudos em universidades, porém, utilizam plataformas proprietárias relativamente caras. O Linux se tornou uma opção para resolver este problema, permitindo o uso dos baratos computadores pessoais. Projeto GNU: o projeto GNU, criado por Richard Stallman em 1984, surgiu com o intuito de apoiar a liberdade de software (veja seção mais adiante sobre Software Livre). Na época do surgimento do Linux, Stallman apoiava e pretendia adotar o kernel Hurd, porém este não estava utilizável; então o Linux acabou sendo o kernel preferido para rodar as centenas de programas livres disponiblizados pelo projeto, porém o Hurd continua sendo o kernel oficial do sistema operacional GNU.

Distribuições Linux: no sentido de tornar o Linux o mais utilizável possível, surgiram instituições comerciais e não-comerciais que se dedicaram a criar uma combinação ideal de aplicativos (livres ou não) que rodam no kernel Linux. As instituições com objetivos comerciais mantiveram o licenciamento livre, porém mantendo-se através de serviços agregados, tais como: suporte, treinamento e desenvolvimento customizado. Veja seção mais adiante sobre distribuições Linux.

Software Livre

Uma das principais razões do sucesso do Linux foi a sua adoção como kernel preferido para rodar os aplicativos do projeto GNU pré-existentes na época. O projeto GNU teve como objetivo inicial juntar software livre para formar um sistema todo completo. Desta forma, no intuito de reconhecer o mérito destes dois grandes projetos, a partir deste ponto trataremos o S.O. como “GNU/Linux” e não simplesmente “Linux”.

Creative Commons License
História do Linux by História do Linux is licensed under a Creative Commons Atribuição-Uso Não-Comercial 2.5 Brasil License.
Based on a work at wiki.sintectus.com.

História do Unix

•13 13UTC Abril 13UTC 2009 • 3 Comentários

Para entender como foi criado o Linux é necessário entender o sistema operacional[1] em que ele foi espelhado, o Unix. O Unix tem suas raízes no projeto MULTICS (Multiplexed Information and Computing Service), iniciado em 1965 e desenvolvido por grandes instituições da época: AT&T, GE (General Eletric) e o MIT (Massachusetts Institute of Technology).

O projeto MULTICS era muito grandioso e complicado desde o início, seu nome se origina das várias funcionalidades complexas para a época, tais como: multi-usuário, multi-processador, multi-níveis de diretórios, além de outros “multi”.

Depois de vários anos, como seus objetivos não foram alcançados em 1969, a AT&T resolveu abandonar o projeto, adotando o sistema GECOS como seu S.O. padrão, porém era muito mais modesto em termos de tecnologia. Segundo declarações da época, cada instituição do consórcio tinha objetivos divergentes, o que levou ao atraso do projeto.

dennis_ritchie.jpg thompson.jpeg

Ken Thompson e Dennis Ritchie- criadores do Unix e da linguagem C

No entanto, Ken Thompson e Dennis Ritchie, que trabalhavam na Bell Labs – na época subsidiária de pesquisa da AT&T- haviam criado um jogo chamado “Space War”.


Com o fim do projeto e motivados a continuar a utilização do jogo, eles tiveram que reescrever todo o sistema operacional para um computador disponível bem menos potente, um DEC PDP-7, de 4 kbytes de memória.


Criando um trocadilho bem humorado, eles resolveram dar o nome UNIX, acrônimo de UNiplexed Information and Computing Service, e que poderia ter sido escrito UNICS, mas resolveram utilizar UNIX, por ter a mesma pronúncia.

Thompson concluiu o trabalho de criar todo o Unix no verão de 1969, utilizando a linguagem BCPL (também chamada de B), e que contava com as funções básicas: editor de texto, montador (ou assembler, que transforma linguagem assembly em linguagem de máquina) e interpretador de comandos (ou shell, este será visto mais a frente com maiores detalhes).


O sistema foi continuado dentro da Bell Labs, chegando a poucas dezenas de instalações, porém só obteve grande crescimento após ter sido totalmente reescrito na linguagem C, permitindo uma portabilidade melhor para outras plataformas. A linguagem C foi derivada da linguagem B e criada por Dennis Ritchie e Brian Kernighan.


Nesta época, o sistema já contava com mais de 60 comandos, muitos deles ainda utilizados, tais como: cd – trocar de diretórios, chmod – trocar permissões, wc – contar palavras em arquivos, roff – processar texto, etc. O seu crescimento e reconhecimento culminou com a publicação na renomada revista “Communications of the ACM”


Com sua filosofia de simplicidade, padrões abertos e seu licenciamento facilitado pela AT&T, o Unix se espalhou e se desenvolveu rapidamente pelas universidades. Várias versões de Unix foram surgindo – a principal delas foi desenvolvida na Universidade de Berkeley – denominado BSD (Berkeley Software Distribution), liberado publicamente em 1977, predecessor dos atuais e bem-sucedidos BSD’s (FreeBSD, OpenBSD e NetBSD).

Outras versões comerciais também foram surgindo, tais como: Irix pela SGI em 1982, XENIX pela SCO em 1983, HP-UX pela HP em 1986, SunOS pela Sun em 1987 e AIX pela IBM em 1990


Com tantos variedades de Unix surgindo, todos com a mesma arquitetura e filosofia de sistema, porém com tendências a se divergirem, surgiu o POSIX (Portable Operating System Interface for UniX) em 1985, um conjunto de padrões definidos pelo IEEE e pela ISO que define características essenciais de sistemas Unix


O POSIX não permitiu compatibilidade de rodar programas binários entre os vários Unix, mas sim facilidade de portar um programa de um Unix para outros, através de compilação de código-fontes em C.


O POSIX contiua mantido até hoje, através de um comitê do IEEE, denominado PASC (Portable Application Standards Committee) e além dele, também surgiu um consórcio de empresas denominado Open Group, que realiza um trabalho semelhante, através do padrão “Single Unix Specification”. Devido à esta variedade de sistemas operacionais seguindo os mesmos padrões é que o Unix atualmente é considerado não mais um sistema operacional, mas sim uma família de sistemas operacionais.

[1] – Nota: Um sistema operacional (S.O.) é o software que faz a interface entre os aplicativos de usuário com os recursos de hardware do computador (processador, memória, discos rígidos, CD-ROMs, etc). Desta forma, o S.O. visa gerenciar eficazmente os recursos do computador, fornecendo facilidades para os aplicativos, como: segurança, multi-tarefa, multi-usuário, etc.

Creative Commons License
História do Unix by História do Unix is licensed under a Creative Commons Atribuição-Uso Não-Comercial 2.5 Brasil License.
Based on a work at wiki.sintectus.com.

Bill Gates x Steve Jobs

•13 13UTC Abril 13UTC 2009 • Deixe um comentário