Artigos

2 de janeiro de 2016

Introdução ao FreeBSD

Mais artigos de »
Escrito por: Leonardo Souza
Tags:

Introdução ao FreeBSD

Nesta introdução ao FreeBSD veremos um histórico do projeto e principais características.

Introdução

FreeBSD é um sistema operacional descendente do BSD, originalmente desenvolvido pela universidade de Berkley, daí a sigla BSD (Berkeley Software Distribution). É a distribuição BSD de código aberto mais utilizada (existem diversas distribuições baseadas em BSD como: NetBSD, OpenBSD, PicoBSD, DesktopBSD, DragonFlyBSD). Como possui uma licença do tipo BSD, o FreeBSD não é nem Unix, nem Linux, ele é BSD.




Familia FreeBSD

Diferente das distribuições GNU/Linux, todo o projeto FreeBSD é desenvolvido pela mesma equipe, de engenheiros, ou seja, o kernel, comandos do sistema, bibliotecas e SHELL, são mantidos pela mesma equipe. Isso faz com que todo o projeto siga um padrão e se mantenha com a filosofia que possuía desde suas versões iniciais.

Por padrão a instalação básica do sistema não possui um ambiente gráfico, porém é possível instalar e configurar o sistema para que use uma das diversas interface disponíveis no mundo livre. Por ser estável, pode ser utilizado tanto para servidores de rede/internet e mesmo desktops, ou PC-BSDs, como a comunidade gosta de chamar.

Ele está disponível para as plataformas Intel x86, Sparc, PowerPC e PC98, assim como as arquiteturas baseadas em processadores de 64 bits como IA-64 e AMD64. O sistema de arquivos é o UFS2, versão melhorada do UFS, que foi amplamente utilizado nas versões iniciais.

Principais características

Segundo o Handbook oficial, documentação oficial do sistema, o FreeBSD possui as seguintes características:

Multitarefa preemptiva: com ajustes dinâmicos de prioridade que garantem compartilhamento claro e racional do computador entre as aplicações e usuários, mesmo sob a mais intensa demanda. Ou seja, o FreeBSD consegue gerenciar claramente as demandas de recursos entre as aplicações e usuários.

multi-usuario

Característica multi-usuário

Características multi-usuário: permite várias pessoas utilizarem um sistema FreeBSD de forma simultânea, para uma variedade de coisas. Sendo assim, é possível que determinado recurso seja compartilhado com todos os usuários no sistema e/ou rede, e mesmo assim consigamos proteger outros recursos críticos de forma individual, limitando os vários níveis de privilégios.

Forte interação com a pilha de protocolos de rede TCP/IP: com suporte a padrões industriais como SLIP, PPP, NFS, DHCP e NIS. Isto significa que sua estação FreeBSD pode interagir facilmente com outros sistemas da mesma forma que pode agir como um servidor corporativo, oferecendo funções vitais como NFS (acesso remoto à arquivos) e serviços de correio eletrônico, ou então colocando sua empresa na Internet com serviços de WWW, FTP, roteamento e firewall (segurança).

Proteção de memória: garante que aplicações (ou usuários) não interferiram entre si. A falha de uma aplicação não afetará outras de forma alguma.

Milhares de aplicações prontas:  estão disponíveis a partir da coleção de ports e packages, para imediata utilização (ready-to-run). Por quê procurar na rede quando é possível encontrar tudo bem aqui?

Conjunto completo de ferramentas de desenvolvimento: incluindo linguagem C, C++, Fortran, e Perl. Muitas linguagens adicionais para pesquisa e desenvolvimento avançado também estão disponíveis na coleção de ports e packages.

Compatibilidade Binária com GNU/Linux

A compatibilidade binária com linux permite que softwares desenvolvidos para linux possam ser utilizados, também, no FreeBSD. Em sua maioria são softwares comerciais que só são distribuídos em forma binária e por isso não podem ser portados para o FreeBSD por meio dos Ports, já que estes são disponibilizados por meio do código fonte.

Dessa forma, basta Alguns ajustes no seu sistema e logo qualquer aplicação distribuída por meio dos binário para GNU/Linux, serão, também, utilizados no FreeBSD. Entre os aplicativos portados para FreeBSD por meio deste recursos estão Adobe Acrobat, Skype, Firefox, etc. Geralmente este recurso não gera perda de desempenho na utilização dos programas.

Este recurso é muito útil, pois geralmente quem deseja conhecer o FreeBSD já é usuário de GNU/Linux e provavelmente deseja utilizar todos os recursos que já conhece nestes sistemas. Mas você já se perguntou quem surgiu primeiro? Por que o FreeBSD não é tão conhecido quanto o Gnu/Linux, por exemplo? Leia nossa próxima parte do artigo e descubra.

Histórico do Projeto

O projeto FreeBSD iniciou em 1993, como consequência da manutenção não oficial do 386BSD. O primeiro lançamento oficial foi o FreeBSD 1.0 em dezembro do mesmo ano e foi coordenado por Jordan Hubbard, Nate Williams e Rod Grimes.

O projeto 386BSD era um sistema operacional desenvolvido por Bill Jolitz, e que estava naquele momento passando por um período de negligência, ou seja, havia uma série de problemas que não estavam sendo resolvidos. Estes problemas estavam cada vez mais críticos, e isso foi o que motivou a criação do FreeBSD. Este era o principal objetivo, corrigir uma série de problemas detectados no 386BSD, e que a equipe de manutenção não havia conseguido.

Inicialmente o projeto possuía o apoio de Jollitz, porém depois de um tempo ele decidiu, repentinamente, retirar sua sanção ao projeto, sem indicação clara do que deveria ser feito. Neste momento o projeto FreeBDS já começava a ganhar corpo e era claro que valeria a pena continuá-lo mesmo sem o apoio de Bill. Foi então adotado o nome FreeBSD sugerido por David Greenman.

Distribuição inicial do projeto

Um dos primeiros passos a ser definido foi a forma de distribuição do FreeBSD. Neste momento da história a internet não era tão difundida e a forma mais utilizada para se distribuir softwares era o CDROM. Por este motivo a equipe entrou em contato com a Walnut Creek CDROM, para desta forma difundí-lo para pessoas que não tinham acesso à internet.

A Walnut Creek CDROM abraçou o projeto de tal forma que disponibilizou, ao projeto, uma máquina para trabalho dedicado e uma conexão rápida com a internet. Esta parceria foi fundamental para que o projeto, até então desconhecido, conseguisse uma divulgação inicial grande e alcançasse uma boa adesão.

A primeira distribuição em CDROM, e na internet em geral, foi o FreeBSD 1.0 e foi baseado na fita 4.3BSD-Lite (Net/2) da Universidade da Califórnia, Berkeley (U.C Berkeley). Claro que possuía muitos componentes originados no 386BSD e da Fundação do Software Livre (Free Software Foundation) e foi um sucesso razoável para a primeira versão que foi fundamental para a continuação do projeto. Em maio do ano posterior (1994) foi lançado a release FreeBSD 1.1.

Impasse judicial

Em meados de 1994, a Novell e U.C Berkeley entraram em um acordo sobre a situação legal da fita contendo o Net/2 de Berkeley. Segundo este acordo grande parte do NET/2 se tornavam códigos impedidos, pois pertenciam à Novell, que havia adquirido-os da AT&T algum tempo antes. Ainda segundo este acordo a Berkeley receberia a permissão para o lançamento da versão 4.4BSD-Lite que passaria a ser a versão oficial do sistema. Dessa forma o projeto foi diretamente afetado, e recebeu o prazo limite de julho de 1994 para parar o desenvolvimento e distribuição do sistema. Porém, os desenvolvedores ainda poderiam lançar versões antes deste limite e foi o que fez. Acabou, assim, lançando a versão FreeBSD 1.1.5.1.

Este acordo prejudicou totalmente o desenvolvimento do projeto, pois a partir deste momento todo o sistema precisaria ser reinventado, ou seja, produzido a partir de um sistema completamente novo, o 4.4BSD-Lite. Esta versão continha grandes blocos de códigos a menos removidos pelo CSRG de Berkeley, devido a várias decisões legais, resultantes do acordo já mencionado, por este motivo o sistema era considerado incompleto em relação às versões anteriores ao acordo.

Mesmo diante desta barreira o projeto conseguiu lançar o FreeBSD 2.0 em novembro de 1994, que apesar de ser um pouco bruta teve um sucesso razoável e logo deu lugar à release 2.0.5, em junho de 1995, esta versão era bem mais robusta e de fácil instalação. Não demorou muito para que outras versões surgissem e com elas as melhorias que fazem, hoje do FreeBSD o sinônimo de estabilidade e segurança.

Sem dúvidas, estes problemas fizeram com que o FreeBSD perdesse muito em sua divulgação inicial, mas outras questões podem ter influenciado. Embora de fácil uso, a instalação de programas possui uma diferença enorme em se tratando das mais populares distros GNU/Linux, ou seja, para muitos é como se estivesse aprendendo tudo novo.  É exatamente sobre isso que trata a próxima parte deste artigo.

Instalação de Aplicativos

O FreeBSD utiliza seu próprio esquema para instalação de aplicativos, isso pode ser feito por meio da coleção de ports ou dos pacotes binários. A coleção de ports é um conjunto de arquivos de configuração responsáveis por baixar, compilar e instalar aplicativos, tudo isso de forma automática. Por outro lado, os pacotes binários são arquivos já compilados e que podem ser instalados a partir de comando específicos.

Os Ports

A coleção de ports instala uma série de diretórios que representam categorias de softwares com seus respectivos subdiretórios. Por exemplo, o aplicativo apache fica dentro do subdiretório /usr/ports/www/apache24. Isso significa que ele utiliza makefiles que são disponibilizados por meio de uma hierarquia de diretórios, devidamente organizados, e permite que estes aplicativos sejam instalados através do comando make. Cada diretório possui um conjunto de arquivos que informam ao FreeBSD como, e onde, baixar, compilar e instalar o programa desejado. Ou seja, basta acessar o diretório desejado, executar o comando “make install” e o sistema vai procurar nestes arquivos o procedimento que precisa realizar para instalar o software, tudo de forma automática.

Quando o usuário utiliza o sistema de ports tudo é feito pelo sistema, a aplicação é baixada da internet, compilada, instalada, adaptada e registrada na base de registros de pacotes. Mesmo que existam dependências de outras aplicações e/ou bibliotecas estas são devidamente instaladas.

Cada Port é desenvolvido por um “mantenedor de port”, pessoa responsável por manter o port atualizado em relação ao desenvolvimento original do software. Qualquer é bem-vindo a se tornar um mantenedor pela contribuição com seu software favorito ou escolher um que não possui mais um mantenedor e adotá-lo. Atualmente existem mais de 24.000 pacotes disponíveis na lista de coleções de ports.

Cada port possui basicamente os seguintes arquivos:

Makefile: arquivo que declara como o aplicativo deve ser compilado e onde seus componentes devem ser instalados.

Distiinfo: contem os nomes e meios para verificação dos arquivos que precisam ser obtidos para construir o port.

files/: diretórios que contem todos os patches necessários para o programa ser compilado e instalado.

pkg-descr: possui uma descrição detalhada do programa.

pkg-plist: lista de todos os arquivos que serão instalados pelo port.

Alguns ports podem possuir arquivos específicos para situações especiais. Para mais detalhes consulte o manual dos Ports (em inglês).

Instalação via “Packages”

Outra forma de instalação de aplicativos no FreeBSD são os “packages” ou pacotes, que consiste em um único arquivo contendo uma cópia pré-compilada de todos os comandos do aplicativo, assim como cópia dos arquivos de configuração e documentação. Estes pacotes podem ser gerenciados através de comandos específicos como, por exemplo, pkg install, pkg info entre outros. Porém a instalação de um novo aplicativos pode ser realizado através da execução de um único comando.

Semelhante aos ports, os packages também tratam as dependências do aplicativo. Logo, quando tentamos instalar um pacote ou port que dependem de uma biblioteca específica e esta não está instalada no sistema, o FreeBSD vai informar que a biblioteca necessária para o funcionamento do aplicativo não está instalada corretamente e vai instalar automaticamente a biblioteca. Isso independentemente da forma que o aplicativo foi instalado, ou seja, por meio da coleção de ports ou pacotes.

Para mais detalhes sobre a instalação de aplicativos no FreeBSD acesse o artigo Instalação de Aplicativos no FreeBSD. Todo o projeto é muito bem documentado, aliás isso está na raiz dos objetivos do projeto. Este é, a propósito, o foco da próxima parte do artigo, explicar os objetivos do projeto FreeBSD.

Objetivos do Projeto

Segundo o Handbook oficial o objetivo do projeto é “oferecer software que pode ser utilizado para qualquer propósito, sem restrições impeditivas.” Isso lembra um pouco a história do projeto que teve o código no qual trabalhavam a algum tempo declarado como “impedido”. Isso torna mais importante ainda esta filosofia de projeto. Embora alguns acabem recebendo pelo muito esforço no desenvolvimento, a verdade é que o projeto não possui esta finalidade.

A missão do projeto continua desde o início a mesma “oferecer código para qualquer usuário, e para qualquer propósito, de forma que o código em questão chegue o mais longe que puder e que traga os maiores benefícios que forem possíveis”. Sem dúvidas este é o principal fundamento do projeto de software livre, e uma base apoiada pelos desenvolvedores do FreeBSD.

Licença BSD

O FreeBSD e distribuído sob a licença BSD, apesar dela ter sido criada para os sistemas BSD, atualmente vários outros sistemas são distribuídos sob esta licença. A licença BSD possui poucas restrições quando comparadas a outras licenças, como a GNU General Public License, entre outras, o que a coloca relativamente próxima do domínio público. Este fato tem feito com que a licença BSD seja chamada de “centro de cópias”, referencia expressão “faça quantas cópias quiser”.

O texto da licença é considerado como de domínio público, e pode ser incorporado a produtos proprietários. Isso permite que o material possa ser liberado com licença proprietária. Um exemplo disso são produtos da microsoft específicos para rede, e o uso de componentes do FreeBSD no sistema Mac OS X da Apple Computer.

GNU General Public License

Licença com maior utilização por parte de projetos de software livre, originalmente idealizada por Richard Matthew Stallman em 1989, no âmbito do projeto GNU da Free Software Foundation (FSF). Em parte sua grande adoção se deve a adesão do projeto GNU e o sistema operacional GNU/Linux.

Em termos gerais, a GPL baseia-se em 4 liberdades:

Primeira liberdade: executar o programa para qualquer propósito (liberdade nº 0)

Segunda liberdade: estudar como o programa funciona e adaptá-lo para as suas necessidades (liberdade nº 1). O acesso ao código-fonte é um pré-requisito para esta liberdade.

Terceira liberdade: redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2).

Quarta liberdade: aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie deles (liberdade nº 3). O acesso ao código-fonte é um pré-requisito para esta liberdade.

Em tese a GPL permite que os códigos sejam distribuídos e reaproveitados, mantendo, porém os direitos do autor não permitindo que essa informação seja usada de maneira que limite as liberdades originais.

Licença BSD X Licença GPL

A grande diferença entre as licenças é que a BSD é mais livre que a licença GPL, porque ela garante quase a mesma liberdade que o domínio público. A GPL impõe restrições que fazem com que ela seja incompatível com muitos outros software livres, inclusive aqueles com licenças similares a GPL como o Eclipse (EPL), OpenSolaris (CDDL), Sun Public License (SPL) e a CC-by-SA. Dessa forma usuários do OpenSolaris, por exemplo, não podem se beneficiar diretamente de melhorias feitas no Linux e vice-versa. Por outro lado os desenvolvedores do Linux podem se beneficiar diretamente do código fonte usado no FreeBSD, apesar da recíproca não ser verdadeira.

Como a GPL é mais restritiva, ela acaba forçando desenvolvedores a reescreverem softwares que já estão disponíveis sob a licença GPL, para que dessa forma possam redistribuí-los sob outra licença. Isso gera uma grande perda de tempo, e dinheiro, em alguns casos, recursos estes que poderiam ser utilizados para aprimorar produtos já existentes. Em contra partida os desenvolvedores sob a licença BSD encorajam a existência dos mais diversos softwares, livres ou não, baseados nesta licença.

O desenvolvimento do FreeBSD é muito aberto e flexível, e conta com a contribuição de centenas de pessoas ao redor do mundo. O projeto procura e incentiva colaboradores a fazer parte da árvore de desenvolvimento do FreeBSD, bastando apenas que entre em contato através da lista de discussões técnicas disponíveis no FreeBSD.org.

Sendo assim, venha você também e contribua com este projeto.






Sobre o Autor

Foto de perfil de Leonardo Souza
Leonardo Souza
Bacharel em Informática, pós graduado em Segurança de Redes de Computadores e analista de Segurança da Informação. Entusiasta de Segurança da Informação e usuário FreeBSD, porém sem xiismo.




0 Comments


Seja o Primeiro a Comentar!


You must be logged in to post a comment.