Traduções: Dutch - English - Español - Français - Italiano - Polish - Português (Brasil) - Русский - 简体中文


Por que Debian?

"Por que Debian?", você pode se perguntar. O Debian é outra distribuição GNU/Linux e é outro sistema operacional do tipo Unix. O que o faz melhor que o resto? Por que eu deveria usar o Linux mesmo? Bem, este documento explica tudo:

https://people.debian.org/~srivasta/talks/why_debian/talk.html (em inglês)

Para garantir que este documento fique disponível para todas as pessoas, ele foi arquivado aqui:

Por que Linux? Por que Debian?

Por Manoj Srivastava (srivasta at debian.org)

Eu talvez não seja a melhor pessoa para falar sobre uma comparação imparcial entre escolhas de sistemas operacionais, em parte porque eu não sou imparcial, e em parte devido a minha limitada experiência com qualquer SO que não seja minha primeira escolha. Eu também não sou um candidato exemplar para defender minhas escolhas, já que as razões para minhas escolhas provavelmente não são universais, e o ambiente em que originalmente eu tomei minha decisão (já que existe uma pequena inércia histórica que me mantém onde estou) não existe mais.

Contudo, eu tentei fazer desta apresentação uma perspectiva mais ampla que a minha própria, e solicitei as opiniões de outras pessoas que têm feito as mesmas escolhas que eu -- mas dada a subjetividade deste tópico, eu vou falar aqui da minha perspectiva principalmente, e da perspectiva de pessoas que já escolheram o Debian.

Dada a natureza da principal audiência para esta apresentação, eu não vou perder muito tempo desenvolvendo o porquê de alguém dever escolher um SO do tipo UNIX e não os sistemas operacionais da Microsoft. É suficiente dizer que os critérios a serem apresentados me levaram inequivocamente para longe do Windows: Segurança. Flexibilidade. Controle de funcionalidades. Filosofia. Custo. Velocidade. Eficiência. Confiabilidade. Disponibilidade e escolhas de aplicativos de software. Susceptibilidade a vermes e vírus. Abertura e velocidade de resolução de falhas conhecidas. Clusters. SO multiusuário(a). Não ter um GUI ou um navegador HTTP como parte integral do SO.

https://www.michaelhorowitz.com/Linux.vs.Windows.php (em inglês) fornece uma comparação relativamente imparcial do Linux e do Windows, e pode servir como uma introdução do Linux para usuários(as) do Windows. Ele realmente tem uma inclinação mais comercial do que seria o apropriado para esta apresentação (a preocupação com o sucesso de mercado de distribuições/companhias Linux, por exemplo).

Filosofia e comunidade

Em última instância, a filosofia é o critério diferenciador mais sólido entre os sistemas operacionais que nós estamos considerando. Números de performance mudam. Facilidade de uso, confiabilidade, disponibilidade de software -- todas essas características mudam com o tempo e temos que examiná-las e reavaliá-las ao longo do tempo.

Eu devo confessar que a filosofia e a comunidade foram as coisas que originalmente me levaram ao campo do Linux, e então ao Debian; e eu acho que esses são os mais importantes critérios, e são frequentemente subvalorizados.

Por que o software livre é uma boa coisa? Nas mais de duas décadas que eu tenho me envolvido com software livre, eu perguntei às pessoas (e frequentemente fiquei surpreso com as respostas). A resposta popular parece ser: porque é legal, ou porque tem custo zero. As motivações dos autores(as) também parecem variar, mas a moeda com a qual eles(as) são pagos é geralmente reconhecimento, aprovação pelo grupo ou experiência que pode ser aplicada no trabalho.

Meu eu acho que está faltando a raison d'être crítica para o software livre -- o aspecto de se colocar sobre os ombros de gigantes. Eu gosto de fazer uma analogia com a maneira como a pesquisa acadêmica é conduzida. Se os(as) pesquisadores(as) estivessem condenados(as) a reinventar a roda e descobrir por si mesmos(as) tudo o que existe além dos livros, então o progresso na comunidade de pesquisa ficaria comprometido. A maior parte dos meus pares iniciou na pesquisa realizando levantamentos bibliográficos, procurando por investigações interessantes, e talvez correlacionando artigos sem relação, construindo a partir de ideias e técnicas de outros(as) pesquisadores(as) da área. O mistério que envolve a pesquisa na maioria dos laboratórios existe somente até o momento da publicação -- e então as pessoas compartilham suas técnicas, e ideias, e resultados -- de fato, a reprodutibilidade é um importante critério de sucesso.

Contraponha isto ao software proprietário, no qual nós fazemos tudo desde o rascunho -- eu acredito que poderíamos melhorar somente se pudéssemos compartilhar e construir livremente a partir das ideias e dos trabalhos de outros(as). Isto diminuiria o tempo, o esforço e o custo da inovação, permitiria melhores práticas e padrões de projeto para desenvolver e consolidar, e reduziria a programação ruidosa que levanta barreiras contra o desenvolvimento de soluções internas.

Nós somente temos que garantir que o incentivo ao êxito ainda exista (e não precisa ser puramente um motivo para lucrar).

Esta crença me levou a escolher a GPL e à perspectiva da Free Software Foundation, em oposição à licença BSD que também é uma licença de software livre, e me levou eventualmente a escolher o Debian. Na minha opinião pessoal, a licença BSD tem mais a ver com orgulho pessoal em desenvolver software livre, sem cuidado sobre para onde o software foi; eu quero mais do que isso. Eu quero que meus esforços ajudem a construir uma comunidade sinérgica; para retribuir para uma fonte de softwares úteis.

O Debian é um exercício de construção comunitária de um celeiro; juntos(as), nós podemos alcançar muito mais do que conseguiríamos sozinhos(as). O contrato social do Debian é um fator importante para minha escolha pelo Debian, com sua combinação de comprometimento ao software livre e reconhecimento pragmático sobre a existência de casos em que a usabilidade demanda software que não segue nossas diretrizes.

A comunidade é outra razão do porquê eu fui para o Linux em vez do BSD. Naquele momento, eu estava procurando por um SO livre do tipo UNIX para colocar em meu novo e recém lançado 386 da universidade, os BSDs eram muito mais robustos e tinham melhor desempenho, e eu tinha amigos(as) que juravam pelos BSDs. O que me desmotivou era o sistema de castas que permeava a comunidade BSD. Havia os desenvolvedores(as) centrais no topo e você ia para baixo até os(as) novos(as) "wannabe" contribuidores(as). A comunidade Linux, embora exageradamente exibicionista, parecia muito mais inclusiva -- sua procedência valia menos que o código que você produzia. E eu poderia contribuir imediatamente para desenvolver o SO que eu estaria executando. Eu acho que esta é uma outra razão do porquê eu gosto do Debian -- eu tenho participado tempo o suficiente para direcioná-lo a ser o SO que é definido da forma que eu penso.

Utilidade e usabilidade

Assumindo que eu não perdi totalmente os(as) pragmáticos(as) dentre vocês, os critérios que a vasta maioria das pessoas considera de maior valor quando escolhem um sistema operacional são, depois do custo, utilidade e usabilidade. Claro, a utilidade depende de quais são seus objetivos e demandas, mas existem interesses amplos que podemos considerar.

Existe mais em um sistema operacional do que o kernel com um emaranhado de software jogado em cima - a integração de sistemas é um tópico pouco abordado quando se discute os méritos de um sistema. Mas um sistema bem integrado - onde cada peça se encaixa e se acomoda a outras partes do sistema - aumenta em muito a utilidade em relação a alternativas.

O Debian, pela minha experiência e pela experiência de muitos(as) de meus(as) interlocutores(as), é o SO mais bem integrado que existe. Os pacotes do Debian rastreiam seus relacionamentos recíprocos não somente através de um mecanismo simples de dependência/conflito, mas por um rico conjunto de relacionamentos matizados - pré-dependências, dependências comuns, recomendações, sugestões, conflitos e relacionamentos fortes. Além disso, os pacotes são categorizados de acordo com a prioridade (de essencial a extra), e de acordo com suas funções. A riqueza de relacionamentos, da qual o sistema de empacotamento é consciente e atento, indica o nível de ajuste que os pacotes possuem entre si.

O Debian é desenvolvido por mais de 1000 voluntários(as). Isso significa que cada desenvolvedor(a) é livre para manter os programas que considera interessantes ou necessários para tarefas especiais na vida real. Esta é a razão do Debian ser capaz de cobrir diferentes campos de especialização - seus(uas) desenvolvedores(as) somente querem resolver seus próprios problemas. Esta ênfase abrangente é diferente de distribuições comerciais que somente tentam cobrir tarefas mais comuns.

Tenho percebido que as máquinas Debian no trabalho demandam menos suporte, são mais fáceis de atualizar e simplesmente não quebram tão frequentemente quanto as máquinas Red Hat e Mandrake que eu administro. Já me falaram que lidar com o SunOS, por exemplo, é muito mais, digamos, interessante.

Uma das razões para escolher o Debian em vez de outras distribuições é o grande tamanho do projeto, o que fortemente sugere que o Debian não desaparecerá subitamente e que as pessoas não serão deixadas sem suporte repentinamente. O Debian não vai falir. Seu contrato social não permite que o projeto abruptamente decida não suportar versões não comerciais da distribuição. Eu não quero que meu SO fique refém do plano de negócio de qualquer pessoa!

Você pode refinar o grau de risco que deseja lidar, já que o Debian tem três versões separadas: Estável (Stable), Teste (Testing) e Instável (Unstable). Em algumas de nossas máquinas (o servidor, máquinas de quiosque) nós rodamos a ‘estável’. Alguns outros sistemas (estações de trabalho individuais) rodam várias combinações de teste/instável (note que não há atualizações de segurança para a teste). Eu rodo algumas coisas da experimental em minha estação de trabalho. O que é fantástico é a capacidade de tomar essas decisões detalhadas para diferentes máquinas que servem a diferentes funções. Mas até mesmo as mais audaciosas escolhas são sólidas o suficiente para virtualmente nunca falharem. E a ‘estável’ simplesmente nunca quebra ;-).

O Debian fornece uma grande quantidade de feedback para os(as) autores(as) de software. Por exemplo, o projeto XFree por si mesmo não mantém ou depura o X em todas as arquiteturas que o Debian suporta - ele confia no Debian para isso. Houve uma quantidade de correções importantes no libc (ocorreu uma conferência recente sobre a contabilidade de falhas no glibc quando dlopening um objeto compartilhado com certas dependências ELF, falhas descobertas por desenvolvedores(as) Debian). Esta atenção ao detalhe é difícil para qualquer distribuição Linux equiparar. O nível de ajuda qualificada, rápida e amistosa disponível para usuários(as) finais é simplesmente extraordinária -- e nada que tenha sido capaz de igualar com as clássicas companhias comerciais como a DEC -- a menos que você pague uma grana alta. Isto pode fornecer suporte por terceiros(as) sem especialização local, para negócios que se formem a partir do Debian.

Para sistemas derivados, a DFSG e a "main" simplifica a construção de sistemas com licenciamento previsível.

Qualidade de implementação

Algumas pessoas frequentemente dizem que chegam ao Debian por causa do apt-get, ou porque o apt é o aplicativo incrível do Debian. Mas o apt-get não é o que faz a experiência ser tão boa: o apt-get é uma funcionalidade disponível e reproduzida (e, em minha opinião, nunca igualada) por outras distribuições -- chame-a de urpmi, apt4rpm, yum ou o que for. O fator diferenciador é a política do Debian e o rigoroso processo de garantia de qualidade para formato de pacotes (observe coisas como apt-listchanges, apt-list-bugs, dpkg-builddeps, pbuilder, pbuilder-uml -- nenhuma poderia ser implementada tão prontamente se uma política estivesse ausente (imagine listchangelog sem um formato de changelog robusto)). É realmente muito muito fácil instalar software em uma máquina Debian.

Isto é semelhante às religiões de culto à carga (https://pt.wikipedia.org/wiki/Culto_%C3%A0_carga): o apt-get é o aspecto visível do sistema e das políticas do Debian, de modo semelhante às práticas de culto à carga que viam pistas de pouso e outras características como a fonte de mercadorias ocidentais (a "carga"), e construíam suas próprias réplicas, completas com fones de ouvido de madeira e torres de controle. Do mesmo modo, outras distribuições criaram aspectos visíveis e simples da infraestrutura de empacotamento do Debian, sem endereçar os importantes temas das políticas. Pior: os conflitos entre requerimentos técnicos e imperativos de marketing/econômicos frequentemente se cruzam sem se entenderem. Menos perverso para a maioria das distribuições GNU/Linux do que software proprietário, mas ainda assim claramente presente.

Red Hat, Mandrake e outras distribuições por aí realmente têm bases massivas de instalações. Por quê? Eu realmente acredito que é um saco instalar o software. Até mesmo com o RPM é um procedimento gambiarra, impossível de codificar. Com o Debian, é moleza.

Então, o aplicativo incrível é, na verdade, a política Debian, o time de segurança, os mecanismos formais de prioridade de bugs e a política sobre bugs (nomeadamente: qualquer binário sem uma página man é um relatório de bug automático. Qualquer interação com o(a) usuário(a) sem usar o debconf é um bug). Como a página wiki Why Debian Rock (http://twiki.iwethey.org/Main/WhyDebianRocks - indisponível) coloca:

Esta é a cruz, o nártex, o coração pulsante do Debian e que o faz tão superior a todos os outros sistemas operacionais. A política é definida. Ela é clara. Ela é implementada através de ferramentas que você utiliza todo dia. Quando você executa apt-get install foo, você não está somente instalando um software. Você está implementando a política - e o objetivo daquela política é dar a você o melhor sistema possível.

O que a Política define é os limites do Debian, não suas próprias ações no sistema. A política apresenta quais partes do sistema o sistema de gerenciamento de pacotes pode mudar e o que não pode, como lidar com arquivos de configuração, etc. Ao limitar o escopo da distribuição deste modo, é possível para o(a) administrador(a) do sistema fazer modificações fora da área sem medo de que os pacotes do Debian sejam afetados por essas mudanças. Em essência, a Política introduz uma nova classe de bugs, os bugs de políticas. Bugs de políticas são release-critical (críticos para o lançamento) -- um pacote que viola a política não será incluído na versão estável oficial do Debian.

Permita-me reiterar, porque este é todo o segredo: um pacote que viola as políticas não será incluído na versão estável oficial do Debian.

Adicione a isso o time de garantia de qualidade (Quality Assurance - QA) do Debian que faz uploads não mantenedores (NMUs), ajuda com a limpeza de bugs, realiza atualizações de segurança e garante que alguém esteja olhando para o sistema de forma holística e trabalhando para criar um SO integrado, contrariamente a meramente consertar pacotes individuais e isolados. É isto que faz as pessoas serem fiéis ao Debian. Existem muitas ferramentas no subsistema QA para ajudar os(as) desenvolvedores(as) a cuidarem de seus pacotes -- olhe em https://qa.debian.org/developer.php?login=srivasta.

O processo de avaliação que cada pacote tem que passar na versão instável (unstable) antes de chegar à versão teste (testing) agrega qualidade ao produto final. Uma vez que um pacote não demonstrou qualquer problema importante por um certo período de tempo, ele vai para a versão teste (testing). A versão é a candidata ao lançamento para a futura versão estável que é lançada somente quando todos os bugs críticos ao lançamento (release-critical) são resolvidos. Este processo de teste cuidadoso é a razão do Debian ter um ciclo de lançamento maior do que outras distribuições. Contudo, em termos de estabilidade, isto é uma vantagem. (Nota: a RH Enterprise Linux está aparentemente adotando ciclos de lançamento de 12 - 24 meses. Perto do que o Debian historicamente tinha).

O fato do Debian suportar tantas arquiteturas também alimenta a qualidade dos pacotes: a portabilidade de software frequentemente revela falhas no código. Adicione o fato de que todo software no Debian passa por 10 ou mais daemons de construção automáticos e que precisa ser livre de bugs quando construir nesses diferentes ambientes, demandando que os scripts de construção e instalação sejam muito robustos, e demandando um monitoramento muito rigoroso das dependências em tempo de construção. Adicione espelhos de repositórios-fonte e acompanhamento de versão, e você tem um sistema bem robusto (snapshot.debian.org fornece versões anteriores com facilidade).

O sistema de rastreamento de bugs do Debian é a chave para a qualidade da distribuição. Já que os lançamentos são vinculados ao número de bugs críticos ao lançamento (release critical), ele garante que a qualidade do lançamento seja melhor que qualquer UNIX proprietário que eu já rodei. O(A) administrador(a) de lançamento é implacável sobre se livrar de qualquer pacote não essencial com bugs RC (release-critical) se eles não são corrigidos -- ou sobre atrasar o lançamento se é um pacote crítico com o bug.

Comparado a distribuições Linux comerciais, o Debian tem uma proporção maior entre desenvolvedores(as) e pacotes. Além da ausência de prazos por ciclos comerciais, o Debian tenta fazer as coisas direito em vez de fazer as coisas para obter uma nova versão em tempo para o Natal.

De acordo com uma história recente no Slashdot, existem mais distribuições baseadas em Debian agora do que baseadas na líder de mercado, a RedHat (63 e contando, incluindo Ubuntu, Xandros, Knoppix, Lycoris, Lindows (Lind--s ?), Libranet, mophix ...).

A recuperação de falhas é absolutamente a melhor, sem exceções (veja http://www.linuxworld.com/story/32607.htm - indisponível). Veja também o script (http://linuxmafia.com/faq/Debian/package-database-rebuild.html) sobre recuperar um sistema Debian sem precisar de uma cópia de segurança de /var/lib/dpkg.

Conjunto de funcionalidades e seleção de software

O Debian tem mais de 29.000 pacotes agora. Há grandes chances de que qualquer coisa que você precise já estar empacotada e integrada no sistema, e com uma pessoa dedicada a mantê-la (e um pequeno número de outros pacotes) atualizada, integrada e livre de bugs.

O Debian tem uma imensa atividade de internacionalização traduzindo não somente a documentação (tenho pessoas que me mandam páginas de manual traduzidas para os pacotes que eu mantenho), mas também scripts de configuração e instalação (toda interação no debconf pode ser totalmente internacionalizada). Ter uma comunidade distribuída massivamente em termos geográficos é de grande ajuda -- nós temos falantes nativos(as) em inúmeras línguas. Eu acredito que o esforço de internacionalização no Debian se equipara ao do Gnome e do KDE.

Alguns notáveis, os quais eu tenho muito pouco tempo para adequadamente prestar atenção, são: o projeto de documentação do Debian, Alioth, o instalador do Debian, Debian CD, Lintian e o sistema de rastreamento de pacotes.

Algumas coisas que me manterão usando o Debian até que sejam suportados por outras coisas mais:

  1. debconf e a capacidade de pré-alimentar (pre-seed) o banco de dados
  2. make-kpkg com todos os prompts em tempo de instalação desligados
  3. /usr/share/doc/{Changelog.Debian,changelog,copyright,README.Debian}

O Debian também tem um ótimo conjunto de ferramentas para kernel ou para hackers de distribuições e integradores de sistema debbootstrap, chroots, Linux em modo de usuário(a), Xen. Todos os tipos de ferramentas ajustadas para ajudar a hackear mecanismos de instalação, kernels e drivers.

Existe um número de comunidades de nicho que encontraram seu lugar com o Debian. Elas são subprojetos; Debian-Jr, Debian-med, Debian-Edu, Debian-non-profit (sem fins lucrativos) e Debian-lex. Uma quantidade de desenvolvedores(as) Debian têm deficiência visual, e como resultado, o Debian é muito muito amigável às pessoas cegas. Existe material adicional em Debian Pure Blends (indisponível) [nota da tradução: https://www.debian.org/blends/].

Kernels

Os kernels BSD, de todos os modos, parecem ser mais estáveis e de melhor qualidade do que os kernels Linux. Os kernels BSD são muito mais fáceis de ler e de entender. De outro lado, os kernels Linux são mais ricos em funcionalidades e a qualidade tem melhorado significativamente, parecem ter uma performance muito melhor e melhor suporte a hardware que os kernels BSD. De fato, eu ouvi comentários que, quando se fala de suporte a drivers, os kernels BSD estão onde o Linux estava há 5 anos. Eu falarei sobre o suporte a hardware abaixo. Pessoalmente, os supostos bugs que vêm com os kernels Linux não ultrapassam o limite da aceitabilidade. E, no fim das contas, eu não acredito que uma máquina Debian sinta-se menos robusta e estável que, digamos, uma máquina FreeBSD. Claro, a recente série de buracos nos kernels Linux estão começando a tensionar isso. (Contudo, nós devemos ter em mente que ter mais funcionalidades é um fator contribuidor: os últimos dois buracos estavam em uma chamada mremap(2) que não está disponível em qualquer um dos *BSD).

Claro, o Debian Gnu/FreeBSD pode fornecer o melhor de ambos os mundos.

Espaço de usuário(a)

O espaço de usuário(a) BSD é diferente do espaço de usuário(a) GNU. Eu cresci com o espaço de usuário(a) GNU instalado em máquinas Ultrix/Aix/HP-UX para consistência, e para mim o espaço de usuário(a) GNU parece muito mais confortável.

Deve-se notar que você pode instalar o espaço de usuário(a) GNU em uma máquina BSD, e muitas pessoas fazem isso (/usr/local/gnu/*, por exemplo). Das instalações que possuem ambos os conjuntos de utilitários instalados, os relatos dizem que a esmagadora maioria da base de usuários(as) usa os utilitários GNU, até mesmo quando não são o padrão. No geral, os utilitários FreeBSD parecem ser mais leves, mas mais pobres em funcionalidades, e em hardwares modernos a pequena quantidade de economia de memória simplesmente não importa.

Também não ajuda o fato de não fornecerem uma boa ajuda na linha de comando; é muito mais fácil dizer a um(a) principiante que se eles(as) digitarem foo --help, obterão alguma coisa que poderá ser útil.

O espaço de usuário(a) base do OpenBSD é bastante completo. Eu prefiro o espaço de usuário(a) GNU porque estou acostumado, mas o sistema base do OBSD é bastante funcional. O FBSD é uma história bem diferente - no FBSD luta-se por produzir um sistema base mínimo e não se espera que as pessoas usem somente ele - espera-se que as pessoas instalem muitos portes. O FreeBSD torna-se o sistema mais parecido com o Debian na família BSD - você tem um sistema base e constrói a partir dele. Seu espaço de usuário(a) é qualquer coisa que você escolha.

Manutenção e administração

As atualizações são consideradas a incrível vantagem do Debian. Mais que a maioria dos outros SOs, a rede é o mecanismo de distribuição e atualização para o Debian. A política, o pensamento que se introjetou nos scripts do(a) mantenedor(a), e os modos pelos quais eles são chamados, a completa ordenação topográfica realizada sobre a trama de dependências pelo apt e semelhantes, todo o trabalho conjunto para garantir que atualizações adequadas ocorram suavemente (eu nunca tive que reinstalar minhas máquinas, embora algumas tenham sido atualizadas nos últimos 5 anos). São conhecidas as reinstalações nos caminhos recomendados de atualização do BSD (desde 2.8 ou 2.9, o OpenBSD disse ao menos duas vezes para usuários(as) do i386 "atualização não suportada / não recomendada, faça uma nova instalação").

Esta facilidade de atualizações também acrescenta à segurança do sistema; atualizações de segurança são muito mais convenientes no Debian que em outros sistemas, graças ao time de segurança. Para nós, meros mortais que não vendemos segurança, ter security.debian.org em nossas listas de fontes garante que nossas máquinas sejam atualizadas convenientemente, e rapidamente, após qualquer vulnerabilidade ser exposta publicamente -- desde que o time de segurança já tenha trabalhando em uma correção antes dos detalhes virem a público. Isto significa que os sistemas são atualizados em minutos, quando o caminho recomendado para fazer uma atualização no SO BSD envolve recompilar o sistema inteiro (ao menos, o "world").

O Debian tenta garantir atualizações tranquilas evitando um lançamento maior - o que não é algo que eu tenho visto ser suportado por aí. Continuo me referindo sempre à qualidade do empacotamento.

A administração do Debian é a principal razão da maioria das pessoas continuarem com ele. Eu não conheço outra distribuição na qual você possa digitar apt-get install sendmail e sair com um servidor de e-mail totalmente funcional, completo com SASL e TLS, totalmente configurado, completo com certificados. Toda a administração pode ser feita via SSH em velocidades de conexão discada.

O Debian assegura que modificações feitas por usuários(as) nos arquivos de configuração permaneçam preservadas, e que todos os arquivos de configuração vivam em /etc (contrariamente a ficarem espalhados por todo o sistema de arquivos) facilitando cópias de segurança (eu tenho meu /etc sob um controle de versionamento).

O Debian está em conformidade com FHS e a conformidade com LSB é um objetivo da distribuição.

A natureza distribuída do desenvolvimento e da distribuição do Debian facilita a configuração de um repositório separado de pacotes personalizados que podem, desse modo, serem distribuídos localmente; e os mecanismos de políticas e de construção garantem que terceiros possam construir o sistema com a mesma facilidade de uma maneira reproduzível.

Portabilidade e suporte de hardware

O Linux tende a suportar mais hardwares esotéricos que o BSD. Se isso é um problema vai depender de suas necessidades. O suporte ao hardware de alta qualidade é praticamente o mesmo. Uma exceção notável é para hardware RAID; as placas RAID 3ware agora estão sendo suportadas no BSD, mas já têm suporte no Linux faz um tempo. A garantia da IBM de suporte ao Linux, bem como da HP, também é uma vantagem do Linux. Eu também gosto dos múltiplos sistemas de arquivos com journaling que vêm junto ao kernel do Linux recentemente. Para o desktop, o fator incrível são os drivers. E o Linux deixa todos os outros Unixes X86 para trás com muita vantagem.

Em relação à portabilidade, o NetBSD é suposto ser o ideal. Contudo, eu fui e fiz um bom e profundo exame naquilo que é suportado pelo NetBSD e pelo Debian: eu descobri que o Debian suporta ibm s/390 e ia64, enquanto o NetBSD tem suporte para sun2 (m68010), PC532 (seja lá o que for [aparentemente uma máquina customizada da qual somente 200 modelos foram produzidos]) e VAX. Eu estou certo de qual conjunto eu estou mais interessado (embora eu acredite que seria legal ter um VAX sobrando no porão). Note que o que o NetBSD chama de arquiteturas são frequentemente chamadas de subarquiteturas no Debian e portanto não contabilizam nas 11 arquiteturas suportadas.

Construções a partir das fontes

Eu já ouvi muita coisa a respeito do mecanismo de portes do BSD e dos sistemas de portabilidade do Gentoo. Eu também já fiquei sabendo sobre problemas que as pessoas têm para conseguir que algumas coisas compilem no sistemas de portes. Além do fato de que compilar tudo se torna rapidamente antiquado (eu estive lá e fiz isso quando eu usava a distribuição Soft Landing Systems (SLS) em 1993).

Não é que você não possa fazer um porte como autoconstrução no Debian -- nós temos muitos autoconstrutores em 11 arquiteturas que fazem isso, continuamente, todo dia -- a questão é por que alguém ia querer isso? Eu ainda tenho que ver um único e replicável teste demonstrando qualquer melhora de performance, palpável, via compilações locais e ajustadas para serem otimizadas -- e certamente nenhuma que justifique, para mim, o tempo dispendido em mexer e construir o software inteiro.

Alguém disse que quando eram mais jovens e queriam fazer uma brincadeira, ajustavam algum parâmetro sem sentido no computador de outra pessoa e diziam que "isto o fará rodar uns 5% mais rápido, mas você provavelmente não vai perceber". Com tal desafio, eles(as) geralmente reagiam tornando-se totalmente convencidos(as) de que suas máquinas tinham melhorado consideravelmente e que podiam sentir a diferença de 5%!

A sabedoria convencional parece indicar que uma performance geral no sistema aumenta menos de 1%. Entretanto, programas específicos podem se beneficiar enormemente e você sempre pode mexer em um app crítico para seu ambiente no Debian. Eu acredito que qualquer quantidade de tempo que seja ganha ao executar um sistema otimizado é mais do que compensado pelo tempo gasto construindo-se o sistema e construindo-se as atualizações do sistema. (Eu fiquei sabendo de pessoas realizando suas atualizações diárias de fundo enquanto faziam outras coisas em primeiro plano).

Sem mencionar quanto a integração sofre por não ter um local central onde a interoperabilidade das peças pode sequer ser bem testada, já que cada sistema diferiria radicalmente da referência.

Um sistema construído a partir da fonte é também muito mais problemático quando se trata de grandes atualizações -- eu tenho uma evidência incidental das atualizações não serem tão seguras e saudáveis como os mecanismos de atualização do Debian.

De qualquer forma, se eu quiser construir pacotes a partir da fonte no Debian, eu posso usar apt-get source -b, apt-src ou qualquer outra ferramenta. E ao fazer construções locais, eu realmente confio que debs construídos localmente serão instalados de um modo seguro e saudável, substituindo adequadamente as coisas antigas. As dependências de construção puxam quaisquer dependências requeridas para as construções e eu rotineiramente construo em pbuilder-user-mode-linux para garantir construções uniformes.

O ponto real aqui é que o Gentoo é uma distro para hobistas e übergeeks / usuários(as) hardcore do Linux, que podem gastar tempo construindo seus aplicativos. Eu sei que o Gentoo também fornece binários pré-compilados -- mas isso não frustra sua suposta vantagem? Para um ambiente empresarial onde períodos de inatividade custam dinheiro isto é simplesmente inadmissível, e o Debian fornece a melhor solução. Para quem, como nós que administramos mais que um punhado de máquinas, pode realmente apreciar quão conveniente é ser capaz de realizar um apt-get update && apt-get upgrade imediatamente em vez ter que baixar, configurar, compilar e instalar software máquina por máquina sem qualquer tipo de ajuda automatizada (eu não estou sendo completamente justo com emerge / portage aqui, mas o ponto está claro, eu espero). Posso enfatizar isto: para um uso "sério/em produção", distros binárias são a melhor e única solução viável; entre elas, o Debian (não somente devido ao APT, mas também devido a todo o trabalho difícil feito por DDs para assegurar a correção do empacotamento) é a melhor [eu já tentei SuSE, RedHat e Mandrake, e não voltaria para elas mesmos se me oferecessem muito dinheiro; o Gentoo não é uma opção também].

Segurança e confiabilidade

Sempre existe uma troca entre segurança e conveniência -- o computador mais seguro é aquele que nunca é ligado. Seguro, mas não muito útil. Você tem que decidir onde está sua zona de conforto.

O que se imagina quando alguém refere-se à segurança e SO tipo Unix? No OpenBSD, com algumas justificativas. Ele é auditado e tem tamanho pequeno, poucos requerimentos de sistema E instalação baseada em texto puro. Se você só ficar com a instalação central, você obtém um sistema auditado com nenhum serviço ligado por padrão e a garantia de que não há falhas na instalação padrão que possam levar a um comprometimento remoto do root. Contudo, você acaba terminando com software antigo e a instalação padrão realmente faz pouca coisa. W^X e proteção contra estouro de pilha (?ProPolice) no OpenBSD https://www.openbsd.org/33.html, e correções exec-shield e Adamantix (PaX) para Linux (você pode ter que recompilar seu kernel no Debian para eles). A maior parte das pessoas concorda que a parte segura e auditada do OpenBSD não fornece todo o software que elas requerem. Além disso, os números de performance do OpenBSD são, hmmm, pobres, comparados ao SELinux em um kernel 2.6.3.

A reputação de segurança do OpenBSD é justificada - mas somente se você conhecer o projeto, quando você está familiarizado(a) com o que ele realmente cobre. O OpenBSD pode ser um ótimo firewall, talvez até um servidor de e-mail ou de web estático - desde que você se mantenha fora da árvore de portes, você realmente tem um sistema auditado e voltado à segurança. Eu conheço poucas aplicações, entretanto, para tal sistema. Os portes do espaço de usuário(a) do OpenBSD quebram mais frequentemente que o Debian estável -- mas, no OpenBSD, os portes não são oficialmente parte do sistema e se um problema de segurança aparecer em um deles, você terá que resolver sozinho(a).

Provavelmente o Debian estável se equipara ou supera essas mesmas expectativas -- e parece existir pouca ou nenhuma diferença real entre o Debian e o OpenBSD neste momento. Precisa-se trabalhar um pouco para proteger a instalação do Debian com somente pacotes de prioridade Standard, mas isso toma apenas alguns minutos de administradores(as) experientes. Auditoria de código está em um estágio mais avançado para o OpenBSD; embora alguém possa lembrar que, apesar de todas as auditorias, ocorreram bugs importantes no OpenSSH recentemente -- então use o rótulo de auditado com alguma precaução.

A distribuição Debian GNU/Linux tem um forte foco em segurança e estabilidade. Nós temos um time de segurança, sistemas automatizados de construção para ajudar o time de segurança a rapidamente construir versões para todas as arquiteturas que são suportadas, e políticas voltadas para esses objetivos. Aqui está uma comparação mais orientada à segurança (https://lists.debian.org/debian-user/2003/debian-user-200308/msg00541.html - em inglês) entre OpenBSD e Debian.

Mesmo que você não precise realmente de uma cadeia base de ferramentas em cada sistema-alvo BSD para lançar atualizações de segurança ("make release" ou "make package" para construir em uma máquina e instalar em outra), é um pouco mais inconveniente que o sistema de empacotamento do Debian. O Debian lida com a distribuição de pacotes binários muito melhor. Uma pessoa pode ter seu próprio repositório do apt e alimentar todos os servidores em produção a partir dele, usando os mecanismos nativos do Debian.

Em matéria de segurança real, contudo, sem controle de acesso mandatório você tem poucas garantias. Então o SELinux (e o ainda nascente TrustedBSD) seriam, de longe, melhores escolhas que o OpenBSD ou o Debian estável básico.

Mesmo sem o SELinux, eu acho muito persuasivo a forte e sólida estabilidade do Debian estável, e fico com a mente tranquila com as correções de segurança do time de segurança. É fácil para um destinatário(a) não treinado(a) se manter atualizado(a) com a segurança; e reduz a probabilidade de comprometimento. Isto é muito importante em ambientes comerciais com um grande número de computadores, onde é importante que o software NÃO seja atualizado a cada poucos meses.

Existe um outro benefício do time de segurança do Debian quando nos referimos à distribuição estável. Existe, contudo somente uma versão da árvore de portes. Enquanto no Debian você tem múltiplas versões de, por exemplo, apache, KDE e X11 - um para cada suíte com atualizações de segurança para a suíte estável - não existe tal coisa no FreeBSD. Embora, claro, o makefile do porte será atualizado se uma vulnerabilidade for encontrada em um dado pacote, a única forma de fechar a falha em seu sistema em tal situação é instalar uma nova versão do pacote, com todos os possíveis problemas que isso pode causar. Compare com o Debian, onde você tem a possibilidade de instalar a mesma versão do software com a correção de segurança inserida. Além disso, se você está trabalhando com uma versão de porte instalada de um pacote vulnerável, você ficará vulnerável pelo período em que a compilação for executada, o que pode ou não ser um período considerável.

Eu tenho alguns dados comparando distribuições Linux e o tempo de correção de vulnerabilidades de segurança conhecidas, mas nenhum dado de BSDs. Está disponível em https://people.debian.org/~jfs/debconf3/security/data/.

Escalabilidade e performance

Eu inicialmente não iria de modo algum falar sobre performance e quantidades já que isso era pouco importante para mim pessoalmente e números de performance mudam de lançamento para lançamento. Contudo, eu percebi que elas são critérios importantes de decisão para algumas pessoas e eu tentei dar uma nova olhada nesses números.

O conjunto completo de avaliações de desempenho, completas com código, está disponível aqui http://bulk.fefe.de/scalability/ (em inglês). Aqui está a opinião dele, da seção de conclusão, atualizada para refletir os últimos testes de desempenho.

O Linux 2.6 escala O(1) em todos os benchmarks. Me faltam palavras para expressar o quão impressionante isso é. Se você está usando o Linux 2.4 neste momento, troque para o Linux 2.6 agora!

O NetBSD tem melhor escalabilidade que o FreeBSD.

O FreeBSD 5.1 tem performance e escalabilidade muito impressionante. (Note que ele ainda não foi lançado). Eu inocentemente assumi que todos os BSDs jogavam no mesmo time de performance porque todos compartilhavam muito código e podem incorporar código do outro livremente. Eu estava errado. O FreeBSD tem a segunda melhor performance dos BSDs e até mesmo chega perto do Linux 2.6.

O Linux 2.4 não é tão ruim, mas escala mal para mmap e fork.

O OpenBSD 3.4 performou realmente mal nesses testes. A performance de disco é uma droga, o kernel estava instável e no departamento de escalabilidade de rede ele foi superado pelo seu pai, o NetBSD. O OpenBSD também teve pontos retirados devido à sabotagem que fez com sua pilha IPv6. Se você está usando o OpenBSD, você deveria trocar agora.

Conclusão

Não existe outro SO ou distribuição que eu conheça que possua esta mistura de propriedades (fácil manutenção, acessibilidade de custo, estabilidade, tamanho, personalização, ótimo suporte). Em grande parte das vezes eu não quero mexer ou depurar minha estação de trabalho, eu quero terminar meu trabalho, facilmente, de modo seguro e com preocupações mínimas sobre a infraestrutura que eu utilizo. O Debian me ajuda a conseguir isso.

E essa é a razão principal porque eu o uso hoje, de uma perspectiva técnica. Instalação de software e atualização. Os pacotes são de primeira linha, como regra eles instalam e atualizam perfeitamente. A manutenção de software ainda é uma grande parte do trabalho de administradores(as) de sistema e com o Debian isto é simplesmente trivial. É um não-problema. Nem mesmo levante essa questão quando falar sobre qualquer problema com o Debian, não vale o esforço. A fronteira da perfeição.

Créditos

  1. Wouter Verhelst <wouter@grep.be>

  2. José Luis Tallón <jltallon@adv-solutions.net>

  3. Andrew Suffield <asuffield@debian.org>

  4. Javier Fernández-Sanguino Peña <jfs@computer.org>

  5. Russell Coker <russell@coker.com.au>

  6. Andreas Metzler <ametzler@downhill.at.eu.org>

  7. Steve <sgbirch@imsmail.org>

  8. Toni Mueller <toni@debian.org>

  9. Marc Haber <mh+debian-devel@zugschlus.de>

  1. George Danchev <danchev@spnet.net>

  2. Lionel Elie Mamane <lionel@mamane.lu>

  3. Greg Folkert <greg@gregfolkert.net>

  4. Rudy Godoy <rudy@kernel-panik.org>

  5. Andreas Tille <tillea@rki.de>

  6. Nathanael Nerode <neroden@twcny.rr.com>

  7. Mark Ferlatte <ferlatte@cryptio.net>

  8. Gunnar Wolf <gwolf@gwolf.cx>

  9. Jim ?McCloskey <mcclosk@ucsc.edu>

  10. Bill Wohler <wohler@newt.com>

  11. Bill Richardson <bill@bothan.net>

  12. Alex Perry <alex.perry@qm.com>

  13. Woodrow Kirton <wkirton@surfwayx.net>

  14. David B Harris <dbharris@eelf.ddts.net>

  15. Joost van Baal <joostvb@mdcc.cx>

  16. Bill Allombert <allomber@math.u-bordeaux.fr>

  17. <root.man@earthlink.net>

  18. Viktor Rosenfeld <rosenfel@informatik.hu-berlin.de>

  19. "Adrian 'Dagurashibanipal' von Bidder <avbidder@fortytwo.ch>

  20. Razvan Petrescu <rpetrescu@montran.ro>

  21. s. keeling <keeling@spots.ab.ca>

  22. Karsten M. Self <kmself@ix.netcom.com>

Grato também a todos(as) os(as) participantes da discussão (http://lists.debian.org//debian-devel/2004/02/thrd2.html#00594 - em inglês) na lista de discussão de desenvolvedores(as) por suas opiniões.

Outros recursos