domingo, 5 de julho de 2009

Migrando do Linux para o FreeBSD

Introdução

Todo mundo que conhece ou já ouviu falar de um sistema operacional UNIX-Like gratuito, pensa no Linux, e na maioria das vezes já o usou também, nem que seja para matar a curiosidade. Entretanto, o GNU/Linux não é o único sistema operacional UNIX-Like gratuito existente. O FreeBSD http://www.freebsd.org> e seus parentes, NetBSD , e OpenBSD , são todos ramificações do BSD UNIX, uma versão comercial do UNIX, também conhecida como Berkeley Software Distribution. Este artigo vai ajudá-lo a aprender um pouco mais sobre o FreeBSD, suas principais diferenças do Linux, e vai orientá-lo num possível processo de migração.

Não como o Linux, que usa a licença GPL, a família BSD usa uma licença própria. Para resumir as diferenças entre as duas licenças em uma sentença, a licença GPL requer que qualquer mudança feita no código se torne pública e licenciada na própria GPL. A licença BSD não precisa deste requerimento, qualquer mudança feita no código, o proprietário pode deter a licença.
Existem muitas outras grandes diferenças no funcionamento do FreeBSD e outras grandes distribuições de Linux. Este artigo vai mostrar-lhe as grandes diferenças que encontrei quando troquei meu Linux pelo FreeBSD.
Apesar de que algumas pessoas discordem neste ponto, o termo Linux apenas se refere ao kernel do sistema, nada mais. As aplicações que você utiliza na sua distribuição Red Hat ou Debian, são utilitários adicionados pela respectiva distribuição. FreeBSD, de outro modo, refere-se ao sistema operacional como um todo. FreeBSD é o kernel, assim como as aplicações básicas necessárias para o uso do computador, assim como os comandos "mv" ou "cp". Essa diferença resulta na existência de várias distribuições de Linux, como Mandrake, SuSE, Debian e Slackware. Qualquer um que tenha usado tanto o Mandrake quanto o Debian pode dizer que existem muitas diferenças entre os dois. Só existe um FreeBSD. O meu FreeBSD é o mesmo FreeBSD que você tem - exceto por diferenças entre as versões, FreeBSD é FreeBSD.
Três grandes distribuições de Linux, Red Hat, Mandrake e SuSE usam o gerenciador de pacotes RPM. O RPM faz a instalação, upgrade, desinstalação, e checa as dependências para programas instalados nessas distribuições. Apesar de que o RPM cheque por erros de dependência antes de instalar um programa, o RPM deixa muito a desejar. Por exemplo, o RPM não pode buscar outros RPMs que serão necessários para solucionar os erros de dependência. Eu conheço no mínimo três projetos que tentam resolver isso, o urpmi, o apt-get do Debian, que de qualquer jeito não é relacionado ao RPM, e é uma função somente do Debian, e uma junção entre o RPM e o apt-get. Se você está disposto a usar algum dos três métodos citados acima, você terá que encontrar e baixar manualmente os RPMs requeridos. Parece fácil? Muito fácil até que você tente instalar manualmente o gnome ou fazer um upgrade do XFree através de RPMs. Depois de você encontrar os RPMs corretos, eles podem ser para o SuSE, e se você está rodando um Red Hat, existem possibilidades dos RPMs não funcionarem.
Cada distribuição de Linux é diferente, e onde elas mais se diferem é no layout do sistema. Estou certo que a maioria das pessoas já ouviram falar que o SuSE põe o KDE no /opt enquanto o Red Hat põe o KDE no diretório /usr. Para piorar ainda mais, o RPM não reconhece programas que foram compilados pelo código fonte. Se você tiver o último e melhor Qt compilado pelo código fonte, o RPM nem vai desconfiar que ele existe se você tentar instalar o KDE pelos RPMs.
O FreeBSD usa o que é conhecido como "packages" para instalar, desinstalar, e atualizar aplicações. O comando pkg_add é usado para instalar um pacote que você baixou manualmente para o seu computador. Você ainda pode rodar o pkg_add com a opção "-r" seguida do nome do pacote, que ele será baixado automaticamente da internet, e tudo mais o que ele necessita para rodar. Mas o mais impressionante nos pacotes do FreeBSD é o ports. O ports é uma árvore hierarquica de aplicações portadas para o FreeBSD. Cada diretório contém um Makefile e todas as informações necessárias para baixar, compilar e rodar um aplicativo portado para o FreeBSD. Por exemplo, se eu quero instalar o Apache Web Server, tudo o que eu tenho que fazer é entrar no diretório /usr/ports/www/apache, digitar make install, e dar uma volta pra tomar um cafezinho.
Levando em conta que eu tenha um bom computador com uma conexão à internet rápida, quando eu voltar o ports terá baixando o código fonte do Apache, compilado e instalado para mim! O ports também baixa, compila e instala todas as dependências que o Apache precisa para rodar. Não interessa se eu já havia instalado alguma dependência do Apache pelo ports, se eu já havia compilado manualmente essa dependência, ou instalado por um pacote binário. O ports acha essa dependência desde que ela esteja no seu $PATH, e funcionando corretamente.
Outra diferença entre o Linux e o FreeBSD, é que com o FreeBSD, 99% do que você instala via ports ou pkg_add, por padrão vai para o /usr/local, enquanto no Linux, na maioria das vezes vai para o /usr, e algumas vezes para o /opt. É uma diferença pequena, mas é bom saber que tudo o que você instala está no /usr/local e não espalhado pelo sistema todo.
O FreeBSD usa um programa chamado cvsup para manter-se atualizado. Uma vez que você criou um arquivo de configuração, o cvsup compara os arquivos locais do seu sistema, com os arquivos que estão no servidor cvs, e atualiza automaticamente todo o sistema. Você pode usar o cvsup para manter sua árvore do ports atualizada, e também para manter o seu código do FreeBSD estável e atualizado.
Não como o Linux, que normalmente apenas o kernel é baixado e compilado em um período regular, você pode facilmente baixar todo o código do sistema operacional com o cvsup. A principal vantagem de usar o cvsup é que o FreeBSD estará sempre atualizado de uma maneira extraordinariamente simples. Depois de baixar o novo código fonte, você compila o novo kernel, e em seguida, compila o resto do sistema operacional, usando um simples comando: make buildworld. Depois você muda para o modo single user e instala tudo com outro comando também muito simples: make installworld. É muito fácil!
O modo como as partições são vistas pelo Linux e pelo FreeBSD é muito diferente.
O Linux vê um disco rígido como se ele fosse dividido em diferentes partições. O que nós normalmente conhecemos como partição, o FreeBSD chama de slice. Dentro de cada slice, existem uma ou mais partições do BSD. Essas partições do BSD são o que aparecem no /etc/fstab.
Talvez a próxima grande diferença entre o Linux e o FreeBSD é a filosofia de como os dois sistemas operacionais são projetados. O Linux tende a ter novos drivers e recursos muito antes que o FreeBSD. Os desenvolvedores do FreeBSD são muito mais conservadores. Eles preferem códigos testados e aprovados a novos recursos fúteis, preferindo esperar os maiores bugs serem descobertos e consertados. Caso o FreeBSD seja usado em um desktop e você deseja utilizar os últimos recursos de hardware e drivers, isto pode ser um problema. Mas caso o FreeBSD seja usado em um servidor, você terá códigos testados e aprovados. Porém, quem vai querer utilizar uma placa de vídeo com recursos 3d e mais um monte de coisas fúteis em um servidor?
Outra diferença é no que é instalado por padrão. Se você rodar a instalação padrão de um SuSE, você vai ter no mínimo um gigabyte de software instalado. O FreeBSD, ao contrário, instala somente o básico. Ele instala somente o que é essencial para o funcionamento do sistema, sendo que você ainda pode instalar mais de quatro mil aplicações via ports. A maioria dos programas que rodam no Linux já estão portados e rodando no FreeBSD, a única diferença, é que no Linux eles são instalados por padrão, a menos que você use um Debian, essas aplicações terão que ser baixadas manualmente da internet. No FreeBSD, essas aplicações são opcionais. Outra diferença é a shell, no Linux, a shell padrão é o bash, e no FreeBSD é o tcsh.
Para aplicações comerciais, como Oracle ou HP Openmail, o FreeBSD oferece uma compatibilidade com o Linux. Esta compatibilidade permite que o FreeBSD rode arquivos binários do Linux quase na velocidade que eles rodariam no próprio Linux. Dependendo da aplicação, ela pode ser rodada na velocidade nativa do Linux, como se estivesse mesmo no Linux. Esta compatibilidade é um passo acima da emulação. As bibliotecas requeridas pelo Linux são instaladas no FreeBSD em forma binária. Quando você tenta rodar uma aplicação do Linux no FreeBSD, o sistema entende que é um arquivo binário do Linux, e simplesmente aponta o arquivo binário para as bibliotecas que ele precisa para rodar.
Depois da grande explosão dos "ponto-com´s" pelo mundo inteiro, em 98/99, o Linux era o grande comentário. Todos os usuários de computador já haviam ouvido falar sobre um sistema operacional gratuito que estava competindo com a Microsoft, tanto em estações de trabalho como em servidores. Atualmente, os usuários de Linux estão cada vez aumentando mais. Mesmo assim, muitas pessoas estão começando a ouvir falar do FreeBSD. Espero que este artigo tenha ajudado você a entender um pouco mais sobre o FreeBSD como uma possível solução para o que você precisa. No final das contas, Linux e FreeBSD são gratuitos, então por que não comparar os dois e chegar a uma conclusão de qual dos dois é melhor sistema operacional para você?

Fonte:
http://under-linux.org/wiki/index.php/Artigos/Linux-para-FreeBSD

Nenhum comentário: