[freebsd-am] Explicando o BSD

Flávio Barros flaviobarros_us em yahoo.com.br
Quarta Janeiro 31 20:37:23 BRST 2007


Texto interessante publico pela Openit.

                      Explicando o BSD No mundo do open source, a palavra "Linux" é quase um sinônimo de "Sistema Operacional", mas esse não é o único sistema operacional UNIX de código aberto. De acordo com o Contador de Sistemas Operacionais da Internet (http://www.leb.net/hzo/ioscount/data/r.9904.txt), em Abril de 1999 31.3% das máquinas conectadas na rede rodam Linux. 14.6% rodam BSD UNIX. Alguns dos responsáveis pelas maiores operações da rede no mundo, como o Yahoo!, rodam BSD. O servidor FTP mais requisitado do mundo, ftp.cdrom.com, usa BSD pra transferir 1.4 TB de dados por dia. É claro, que não se trata de um nicho de mercado: O BSD é um segredo muito bem guardado.
 Então, qual é o segredo? Por que o BSD não é melhor difundido, mais conhecido? Esse documento abordará essas e outras questões.  
 Ao longo desse documento, as diferenças entre o BSD e o Linux serão denotadas dessa forma.  
 1. O que é BSD? BSD significa "Distribuição do Sistema de Berkeley". É o nome da distribuição de códigos fonte proveniente da Universidade da Califórnia, Berkeley, as quais foram originalmente extensões para o sistema operacional UNIX do departamento de Pesquisas da AT&T. Vários projetos de sistemas operacionais de código aberto são baseados em uma distribuição desse código fonte, conhecido como 4.4BSD-Lite. Em adição, tais sistemas constituem-se de várias porções de outros projetos de Código Aberto, incluindo o notável projeto GNU. A constituição total do sistema operacional inclui:
 
   O kernel BSD, que cuida do agendamento de  processos, gerenciamento de memória, multi-processamento  simétrico (SMP), dispositivos de controle, etc.   
  Ao contrário do kernel do Linux,  existem vários kernels distintos de sistemas BSD com  diferentes características e recursos.
  
   A biblioteca C, a API base do sistema.   
  A biblioteca C do BSD é baseada em  código proveniente de Berkeley, e não do projeto GNU.
  
   Programas utilitários como shells,  utilitários de manuseio de arquivos, compiladores,  linkadores.   
  Alguns desses programas são derivados  do projeto GNU, outros não.
  
   O sistema X Window, que provê uma  interface gráfica.   
  O sistema X Window usado na maioria das versões  do BSD é mantido por um projeto separado, o Projeto  Xfree86 (http://www.xfree86.org/). Trata-se do mesmo código  usado por sistemas Linux. O BSD normalmente não especifica  nenhum "desktop gráfico" como o GNOME ou o  KDE,contudo, tais ambientes estão sempre disponíveis.
  
   Muitos outros programas e utilitários.
 
 2. O que é um UNIX de verdade? Os sistemas operacionais BSD não são clones, mas sim, código livre derivado diretamente do sistema operacional UNIX da AT&T, que também é o ancestral dos modernos UNIX System V. Talvez isso lhe surpreenda. Como pode ser isso, se a AT&T nunca disponibilizou seus fontes como código aberto?
 É verdade que o UNIX da AT&T não é Open Source, e do ponto de vista da licença de direitos legais, o BSD definitivamente não é UNIX, mas por outro lado, a AT&T importou muito código de outros projetos, especialmente do Grupo de Pesquisas de Ciências Computacionais da Universidade da Califórnia, em Berkeley, CA. Desde 1976 o CSRG lançava fitas magnéticas com cópias de seu software, o qual era chamado de Distribuição do Software de Berkeley ou BSD.
 As versões iniciais do BSD consistiam-se fundamentalmente de programas à nível de usuário, mas essa realidade mudou dramaticamente assim que o CSRG fechou um contrato com a Agência de Pesquisas e Projetos de Avançados de Defesa (a DARPA) para atualizar os protocolos de comunicação que eram usados em sua rede, a ARPANET. Os novos protocolos passaram a ser conhecidos como Protocolos de Internet, e mais tarde como TCP/IP se tornando os mais importantes protocolos de todos os tempos. A primeira implementação amplamente distribuída desses protocolos eram parte do 4.2BSD, em 1982.
 Ao longo da década de 80, várias empresas que produziam estações de trabalho começaram a se espalhar. Muitas delas preferiam licenciar o UNIX ao invés de desenvolverem sistemas operacionais por si mesmas. A Sun Microsystems em particular, licenciou o UNIX e implementou uma versão do 4.2BSD, a qual eles chamaram de SunOS. Quando a AT&T se deu permissão para vender o UNIX comercialmente, começaram a desenvolver uma implementação “na unha” chamada de System III, que seria rapidamente sucedida pelo System V. A base do código do System V não incluia o suporte a networking, então todas as implementações passaram a incluir software adicional do BSD, incluindo o TCP/IP, e também programas utilitários como o interpretador de linha de comandos csh e o editor vi. Em sua coletividade, estas aprimorações foram conhecidas como Extensões de Berkeley.
 As fitas magnéticas do BSD continham código fonte da AT&T e por isso precisavam de uma licença de fontes do UNIX. Por volta de 1990, os fundos do CSRG estavam acabando. Alguns membros do grupo decidiram lançar o código BSD, que era Open Source, sem o código proprietário da AT&T. Finalmente isso aconteceu com o Networking Tape 2, normalmente conhecido como Net/2. O Net/2 não era um sistema operacional completo: aproximadamente 20% do código do kernel estava faltando. Um dos membros do CSRG, William F. Jolitz, escreveu o código que faltava e o lançou em 1992, como o 386BSD. Ao mesmo tempo, um outro grupo de membros do extinto CSRG formou uma empresa comercial chamada de Berkeley Software Design Inc (http://www.bsdi.com/). e lançou uma versão beta de seu sistema operacional, chamada de BSD/386 (http://www.bsdi.com/), baseado nos mesmos fontes. Depois o nome do sistema operacional mudou para BSD/OS.
 O 386BSD nunca se tornou um sistema operacional estável. Ao invés disso, outros dois projetos nasceram à partir dele, em 1993: O NetBSD e o FreeBSD. Originalmente os dois projetos divergiram devido à diferenças quanto à paciência na espera de novas melhorias no 386BSD: o pessoal do NetBSD começou o projeto no início do ano, e a primeira versão do FreeBSD não ficou pronta até o final do ano. No meio tempo, a base do código se modificou o suficiente para tornar difícil uma união. Em adição, os projetos tinham objetivos diferentes, como veremos a seguir. Em 1996, um projeto posterior, o OpenBSD, originou-se à partir do NetBSD.
 3. Por quê o BSD não é mais conhecido? Por algumas razões, o BSD é relativamente desconhecido:
 1. Os desenvolvedores do BSD estão frequentemente mais interessados em aprimorar seu código do que fazer propaganda dele. 2. A maior parte da popularidade do Linux se deve a fatores externos ao projeto Linux, como a imprensa, e companias criadas para oferecer serviços em Linux. Até recentemente, os BSDs open source não contavam com tais proponentes. 3. Os desenvolvedores BSD tendem a ser mais experientes do que desenvolvedores Linux, e tem menos interesse em tornar o sistema fácil de utilizar. Novatos tendem a se sentir mais confortáveis com Linux. 4. Em 1992, a AT&T processou a BSDI (http://www.bsdi.com/), vendedora do BSD/386, alegando que o produto continha código proprietário da AT&T. O caso foi resolvido na corte, em 1994, mas os aspectos da litiginação continuam perseguindo as pessoas. Em Março de 2000 um artigo publicado na rede afirmou que o caso havia sido "resolvido recentemente". Um detalhe que o processo judicial carificou foi sobre a denominação: nos anos 80,
 os BSD eram conhecidos como "BSD UNIX". Com a eliminação do último vestígio de código da AT&T no BSD, ele também perdeu o direito de ser chamado de UNIX. Contudo ainda podem ser vistas referências em títulos de livros como "the 4.3BSD UNIX operating system" e "the 4.4BSD operating system". 

 
 
   Existe uma idéia  que os projetos BSD sejam fragmentados e beligerantes. O Wall  Street Journal falou de "balkanização"  nos projetos BSD. Assim como o processo judicial, essas idéias  se baseiam fundamentalmente em história antiga.
  
 
 4. Comparando BSD e Linux Então qual é realmente a diferença entre, digamos, o Debian Linux e o FreeBSD? Pra maioria dos usuários, as diferenças são surpreendentemente pequenas: Ambos são sistemas operacionais UNIX-like. Ambos são desenvolvidos por projetos não comerciais (é claro que isso não se aplica a muitas outros distribuições Linux). Na próxima seção, vamos dar uma olhada no BSD e compará-lo com o Linux. As descrições se aplicam mais ao FreeBSD, que somatiza uma média estimada de 80% das instalações de sistemas BSD, mas as diferenças pro NetBSD e pro OpenBSD são pequenas.
 4.1. Quem é dono do BSD? Nenhuma pessoa ou corporação é dona do BSD. Ele é criado e distribuído por uma comunidade de contribuidores altamente técnicos em todo o mundo. Alguns dos componentes do BSD são projetos Open Source gerenciados por mantenedores de projetos distintos.
 4.2. Como o BSD é desenvolvido e atualizado? Os kernels do BSD são desenvolvidos e mantidos seguindo o modelo de desenvolvimento do Open Source. Cada projeto mantém uma "árvore de código fonte" publicamente acessível sob o Sistema de Versões Concorrentes (CVS), que contém todos os arquivos fontes do projeto, incluindo documentação e outros arquivos acidentais. O CVS permite que usuários façam "check out" (em outras palavras, extrair uma cópia) de qualquer versão desejada do sistema.
 Um grande número de desenvolvedores ao redor do mundo contribuem para as melhorias do BSD. Eles são divididos em 3 tipos:
 
   Contribuidores escrevem código  e documentação. Eles não tem permissão  de commit (adicionar código) diretamente na árvore de  código fonte. Para que seu código seja incluso no  sistema, é necessário que seja revisado e aprovado por  um desenvolvedor registrado, os quais são conhecidos como  committer.   
  
   Committers são desenvolvedores  com acesso de escrita na árvore do código fonte. Para  se tornar um commiter, o indivíduo deve mostrar habilidade na  área em que ele é ativo.   
  Faz parte da responsabilidade individual de cada  desenvolvedor considerar quando devem obter autorização  antes de fazer um commit na árvore. No geral, desenvolvedores  experientes podem fazer modificações que são  óbviamente corretas sem precisar de consenso. Por exemplo, um  commiter do projeto de documentação pode corrigir  erros tipográficos ou gramáticais sem a necessidade de  uma revisão. Por outro lado, espera-se que desenvolvedores  que fazem alterações muito abrangentes ou complicadas  enviem suas mudanças para revisão antes de  adicioná-las. Em casos extremos, um membro do Grupo Central  (Core Team) cuja função seja, o Arquiteto Principal  pode ordenar que as modificações sejam retiradas da  árvore do código fonte, em um processo conhecido como  backing out. Todos os desenvolvedores recebem mensagens de  correio eletrônico sobre cada alteração  individual, portanto é impossível fazer alguma  modificação secretamente.   
  
   O Grupo Central. O FreeBSD e o NetBSD  cada qual, tem um grupo central que gerencia o projeto. Tais grupos  centrais foram criados no decorrer dos projetos e seu papel não  é sempre bem definido. Não é preciso ser um  desenvolvedor para se tornar membro do grupo central, apesar de que,  normalmente esse é o caso. As regras para o grupo central  variam de um projeto para o outro, mas no geral eles tem mais voz na  hora de dizer as direções que o projeto deve seguir,  do que outros membros fora do grupo.   
 
 Esse modelo se diferencia do Linux em inúmeras maneiras:
 1. Não existe uma pessoa em especial que controla o conteúdo do sistema. Na prática, essa diferença é sobretaxada, considerando que o Arquiteto Chefe pode solicitar que códigos sejam retirados do sistema, e que até mesmo o projeto Linux tem várias pessoas autorizadas a fazer modificações. 2. Por outro lado, existe um repositório central, um lugar único onde os fontes inteiros do sistema operacional podem ser encontrados, incluindo todas as versões anteriores. 3. Os projetos BSD mantém um "Sistema Operacional" completo, não apenas o kernel. Essa distinção é marginalmente proveitosa: nem o BSD nem o Linux são úteis sem aplicações. As aplicações usados sob BSD são frequentemente as mesmas aplicações usadas sob Linux. 4. Como resultado da manutenção formalizada de uma única árvore CVS do código fonte, o desenvolvimento do BSD é limpo, e é possível acessar qualquer versão do sistema por seu número de lançamento (release) ou por data. O CVS ainda oferece manutenção incremental
 ao sistema: por exemplo, o repositório do FreeBSD é atualizado em média 100 vezes por dia. A maioria dessas alterações são de pequena ordem. 4.3 Releases BSD Cada projeto BSD oferece o sistema em três "versões (releases)" diferentes. Como no Linux, os releases são identificados por um número, como 1.4.1 ou 3.5. Em adição, o número da versão tem um sufixo, indicando seu propósito:
 1. A versão de desenvolvimento do sistema é chamada de CURRENT. O FreeBSD relaciona um número ao CURRENT, por exemplo FreeBSD 5.0-CURRENT. O NetBSD usa um esquema de denominação um pouco diferente, adicionando um sufixo com uma letra única que indica modificações nas interfaces internas, por exemplo NetBSD 1.4.3G. O OpenBSD não adiciona números ("OpenBSD-current"). Todo novo desenvolvimento no sistema vai nesse branch. 2. Em intervalos regulares, entre duas a quatro vezes por ano, os projetos lançam uma nova versão de RELEASE do sistema, que é disponibilizado em CD-ROM e por download gratuíto em sítios de FTP, por exemplo OpenBSD 2.6-RELEASE ou NetBSD 1.4-RELEASE. A versão do RELEASE é destinada a usuários finais e é a versão normal do sistema. O NetBSD oferece ainda patch releases (releases de correções) com um terceiro dígito, por exemplo, NetBSD 1.4.2. 3. Conforme os problemas são encontrados em uma versão RELEASE, eles são corrigidos, e as correções são adicionadas à
 árvore CVS. No FreeBSD a versão resultante é chamada de STABLE, enquanto que no NetBSD e no OpenBSD elas continuam sendo chamadas de versão RELEASE. Novas características menores também podem ser adicionadas nesse branch depois do período de testes no CURRENT. Em contraste, o Linux mantém duas árvores de código separadas: a versão estável e a versão de desenvolvimento. A versão estável tem ainda um número menor de versão, como 2.0, 2.2 ou 2.4. Versões em desenvolvimento tem o número menor ímpar, como 2.1, 2.4 e 2.5. Em cada caso, a versão é ainda seguida de um número posterior designando o release exato. Em adição, cada vendedor de Linux coloca suas próprias aplicações e utilitários à nível de usuário, portanto o nome de sua distribuição também é importante. Cada distribuição do vendedor ainda é acrescida de seu próprio número, então a descrição completa seria algo parecido com "TurboLinux 6.0 com kernel 2.2.14"
 4.4. Quais são as versões disponíveis do BSD? Em contraste com as numerosas distribuições Linux, existe apenas três BSDs de código livre. Cada projeto BSD mantém sua própria árvore de código fonte e seu próprio kernel. Na prática, as divergências entre o código à nível de usuário parece ser ainda menor entre os projetos BSD do que entre os vários Linux.
 É difícil categorizar os objetivos de cada projeto: as diferenças são bastante subjetivas. Basicamente,
 
   O FreeBSD clama por alta performance e  facilidade de uso para usuários finais, e é o favorito  de provedores de conteúdo da rede mundial de computadores.  Ele pode ser usado em PCs e Compaqs com processadores Alpha. O  projeto FreeBSD possui significativamente mais usuários do  que os outros projetos.   
  
   O NetBSD clama pelo máximo de  portabilidade: "é lógico que roda NetBSD".  Ele roda de máquinas palmtop à grandes servidores, e  vem sendo usado até em missões espaciais da NASA. É  particularmente uma boa escolha para rodar em equipamentos antigos  que não sejam Intel.   
  
   O OpenBSD clama por segurança e pureza  de código: ele usa uma combinação dos conceitos  de código livre com rigorosas revisões de seu código  para criar um sistema demonstravelmente correto, tornando-o a  escolha de organizações conscientes com a segurança  como bancos e departamentos do governo. Como o NetBSD, ele roda em  várias plataformas.   
 
 Existem ainda dois sistemas operacionais BSD adicionais que não são de código livre, o BSD/OS e o Mac OS X da Apple:
 
   O BSD/OS é o mais velho dos derivados  do 4.4BSD. Ele não é de código livre, apesar  que as licenças de seu código fonte é  disponível a um preço relativamente baixo. Ele  assemelha-se ao FreeBSD de diversas formas.   
  
   O  Mac OS X (http://www.apple.com/macosx/server/)  é a mais recente versão do sistema operacional da  linha Macintosh da Apple Computers  Inc. Ao contrário do resto do sistema operacional, o  kernel é código livre. Como parte desse  desenvolvimento, desenvolvedores chave da Apple tem acesso de  modificações na árvore do FreeBSD.
 
 4.5. Como a licença BSD se diferencia da licença Pública GNU? O Linux está disponível sob a Licença Pública Geral GPL (GPL) (http://www.fsf.org/copyleft/gpl.html), que foi planejada para eliminar o software proprietário (de fonte fechada). Em particular, qualquer trabalho derivado de um produto lançado sob a GPL também deve oferecer seu código fonte, caso seja requerido. Em contraste, a licença BSD (http://www.opensource.org/licenses/bsd-license.html) é menos restritiva: distribuições apenas binárias são permitidas. Isso é particularmente atrativo para aplicações acopladas (embedded).
 4.6. O que mais eu deveria saber? Considerando que um número menor de aplicações estão disponíveis para o BSD do que para o Linux, os desenvolvedores do BSD criaram um pacote de compatibilidade Linux, que permite que programas Linux sejam executados sob BSD. O pacote inclui modificações no kernel, de forma a possibilitar as corretas chamadas de sistemas Linux, e arquivos de compatibilidade Linux, como a biblioteca C. Não existe diferença notável na velocidade de execução entre aplicações Linux rodando em uma máquina Linux e aplicações Linux rodando em uma máquina BSD de mesma velocidade.
 A natureza "tudo do mesmo fornecedor" dos sistemas BSD implica na maior facilidade de atualização do que frequentemente acontece no caso do Linux. Os BSD oferecem atualizações de versões de bibliotecas oferecendo módulos de compatibilidade com versões mais antigas de bibliotecas, dessa forma é possível rodar binários que existem há vários anos sem o menor problema.
 4.7. Qual eu devo usar, BSD ou Linux? O que isso tudo significa na prática? Quem deve usar BSD? Quem deve usar Linux?
 Essa é uma pergunta muito difícil para se responder. Aqui estão algumas considerações:
 
   "Se não está quebrado, não  conserte": Se você já usa algum sistema  operacional de código livre, e está feliz com ele,  provavelmente não existe uma boa razão para mudar.   
  
   Sistemas BSD, em particular o FreeBSD, podem  ter performance notávelmente superior ao Linux. Mas isso não  é uma regra. Em muitos casos a diferença pode ser  pouca ou até mesmo nem existir. Em alguns casos o Linux pode  funcionar melhor que o FreeBSD.   
  
   No geral, sistemas BSD tem melhor reputação  por sua confiabilidade, principalmente por ser resultado de uma base  de códigos mais madura.   
  
   A licença BSD pode ser mais atrativa  do que a GPL.   
  
   BSD pode executar código de Linux,  enquanto o Linux não pode executar código de BSD. Como  resultado, existe uma maior disponibilidade de software para BSD do  que para Linux.   
 
 4.8. Quem oferece suporte, serviços e treinamento para o BSD? A BSDi sempre ofereceu suporte ao BSD/OS e recentemente anunciaram contratos de suporte para o FreeBSD.
 Em adição, cada um dos projetos tem uma lista de consultores que podem ser contratados: FreeBSD, NetBSD, e OpenBSD.
 
 
 


Desde já agradeço,
*********************************************************************
Flávio de Oliveira Barros 
Manaus - Amazonas - Brasil
Linux Registered User# 278223                 LPI ID:   LPI000056610
Amsn flaviobarros_us em hotmail.com  ICQ 3649766 Skype: flaviobarros_us
 ...	   
 ºvº       
/(_)\              
 ^ ^       
Powered by FreeBSD® 6.0  GNU/Linux & GNU/Slackware® 10.2
"Linux is for people who hate Windows,
 BSD is for people who love UNIX"
*********************************************************************
 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://www.fug.com.br/historico/html/freebsd-am/attachments/20070131/d3f04f5b/attachment-0001.html 


Mais detalhes sobre a lista de discussão freebsd-am