OpenSolaris and its killer features. Coming to a GNU/Linux near you?
Autor original: Gary Richmond
Publicado originalmente no: freesoftwaremagazine.com
Tradução: Roberto Bechtlufft
Quando pensamos em sistemas operacionais livres, pensamos logo em grandes nomes (todos GNU/Linux) como Debian, Ubuntu, Fedora e Mandriva, e naquelas distros de nicho desenvolvidas para sistemas de baixo desempenho ou para especialistas em segurança e análise. Mas existem outras frutas além das laranjas… há uma região interiorana chamada Unixlândia, povoada por outros sistemas menos conhecidos, e cujas raízes também estão fincadas no Unix. O BSD, por exemplo, é famoso por sua fortíssima segurança. O OpenSolaris é outro, talvez menos conhecido, mas com recursos que valem a pena. Este artigo vai dar uma olhada nesses kernels e verificar se é tecnicamente possível e viável portá-los para as principais distros, segundo as espinhosas questões de licenciamento.
Um sistema operacional com pedigree
O OpenSolaris é um sistema operacional com raízes no Solaris da Sun (embora ela tenha sido adquirida pela Oracle). Essa simbiose é semelhante à relação entre o Fedora e o Redhat e entre o SUSE e o OpenSuse. A princípio, o software da Sun estava atado à plataforma SPARC, mas com o advento do OpenSolaris, o kernel foi disponibilizado para a arquitetura X86 também. Pense na Sun e você provavelmente vai pensar em servidores, mas ao contratar Ian Murdock (fundador do Debian) em 2007, ela deu indícios de estar falando sério com o OpenSolaris no desktop. Murdock diligentemente produziu um desktop amigável e muito familiar baseado no GNOME (e muitas outras versões comunitárias) e que podia ser carregado de um live CD, com a opção de instalação no disco rígido.
Eu experimentei, e posso dizer que o desktop é mesmo fácil de usar, mas não pode competir com um Ubuntu ou um Fedora na quantidade de software disponível. O Ubuntu e o Debian contam com mais de vinte mil pacotes à escolha do usuário. O OpenSolaris mal chega aos dois mil. Isso não é lá um recurso muito matador. Não há como o OpenSolaris se tornar um concorrente sério das grandes distros GNU/Linux no desktop. Então, porque desperdiçar energia com isso? Porque ele conta com recursos que que merecem, sim, esse rótulo clichê de “matadores”. Geralmente, quando uma distro aparece com um aplicativo ou recurso matador, começa logo uma corrida para adaptá-lo para outras plataformas populares.
Então, por que isso não aconteceu? Bom, na verdade aconteceu. Quero dizer, mais ou menos. Para responder plenamente a essa pergunta, vamos começar vendo quais são mais exatamente esses recursos matadores, e por que portá-los seria problemático – e por que essa questão revela a importância crítica do licenciamento de software e de sistemas operacionais. Na próxima vez em que se deparar com outro debate inútil e infundado (ou “flame war”) sobre a GPL, ou envolvendo as acusações de que a FSF teria visão muito restrita, você vai entender por que a FSF e Stallman assumem posturas tão fortes em defesa da pureza da GPL e de licenças parecidas.
E quais são os recursos matadores?
O que OpenSolaris tem que as distros GNU/Linux (ainda) não têm? Eis uma breve lista:
-
ZFS (o sistema de arquivos)
-
snapshots (ou “instantâneos”, usando copy-on-write, ou cópia ao escrever)
-
checksums de dados
-
clones incializáveis
-
“Timeslider” (snapshots integrados à interface gráfica do gerenciador de arquivos Nautilus)
-
pools de armazenamento (zpools)
Há vários sistemas de arquivos no GNU/Linux, e eles estão em constante evolução: Reiser FS, Reiser4, Ext3 e Ext4. O OpenSolaris tem o ZFS (Zettabyte File System). Um zettabyte é equivalente a um bilhão de terabytes, então não vai faltar espaço tão cedo no seu computador. O ZFS é um sistema de arquivos de 128 bits e também um gerenciador de volumes lógicos. Isso quer dizer que ele pode lidar com uma quantidade de dados 18 quintilhões de vezes maior do que um sistema de arquivos de 64 bits. O conjunto de recursos é amplo e tecnicamente complexo, indo além do escopo deste artigo, então recorra à Wikipédia para conhecer os detalhes. Você não precisa de permissão da Sun/Oracle para usar o ZFS. Isso já foi feito, e o StormOS é um bom exemplo (ele é um derivado do Nexenta): o ZFS foi portado e combinado ao Ubuntu e ao Apt para oferecer o melhor dos três mundos: o ZFS, amplos repositórios de software (13 mil pacotes) e um prático gerenciamento de pacotes através do Apt, do Getdebi e de algo chamado apt-clone.
ZSH: o que pega é a licença
O problema é que o ZFS não pode ser incorporado ao kernel do GNU/Linux, devido a uma incompatibilidade de licença. Enquanto o ZFS é licenciado sob a CCDL, o GNU/Linux obviamente é licenciado sob a GPL. A licença CCDL é derivada da MPL da Mozilla, que já é familiar aos usuários do Firefox. A propósito, essa licença também é incompatível com a GPL. A FSF as rotula como incompatíveis, mas nada impede a combinação das duas. Na verdade, a OSI (Open Source Initiative) deu sua bênção ao ZFS. A OSI é a outra defensora do software livre e de código aberto, ao lado da FSF, e só o nome de seus fundadores – Bruce Perens, Eric Raymond, Jon “maddog” Hall – já indica que ela era e continua sendo uma grande amiga desse tipo de software.
A FSF mantém uma grande lista de licenças compatíveis e não compatíveis em seu site, e descreve a CCDL como uma licença de software livre, porém não incentiva seu uso, já que ela tem o mesmo escopo de copyleft da MPL e usa o termo “propriedade intelectual”. A Sun sempre negou as afirmações de que o OpenSolaris havia sido lançado sob a CCDL justamente porque a licença era derivada da MPL, sendo, portanto, incompatível com a GPL. Se quiser saber mais sobre a CCDL, leia este FAQ. A Nexenta acha que não há problema em seu FAQ, e até convocou o defensor legal da FSF, Eben Moglen, a apoiar a união de software GPL ao núcleo CCDL do Solaris. Linus Torvalds está ciente das incompatibilidades, mas está mais preocupado com os problemas logísticos de adaptação do código, e acha melhor criar código do zero. Isso geralmente ofende aos puristas, que acham que pegar ideias emprestadas de outros projetos é uma má ideia.
A verdade é que esse pântano filosófico, legal e técnico que é o licenciamento de software sempre vai ficar em um estado de fluxo perpétuo. A enorme variedade de licenças é tanto um ponto forte como um calcanhar de Aquiles. Navegar em meio a essas licenças exige muita habilidade. Se você tentar aderir ao caminho mais ideologicamente puro da FSF, vai ficar doido. Então, o que há de tão interessante no ZFS a ponto de fazer você arriscar sua alma para usá-lo?
Apagou, tá apagado
O ZFS tem recursos que fariam um geek chorar de felicidade, mas o que mais chama a atenção nele, tanto pela simplicidade quanto pela transparência, é o “safe delete”, ou exclusão segura. O usuário médio do Windows tem muita dificuldade em entender que seu sistema operacional é o sonho erótico dos hackers. Explicar a ele que um arquivo excluído não foi realmente excluído o confunde bastante, e talvez a alguns usuários de software livre também. Quando você “exclui” um arquivo, só o que faz é removê-lo de um índice. Ele continua lá, assim como um livro continua na estante de uma biblioteca mesmo se você rasgar a ficha de registro dele. Qualquer bibliotecário competente (no caso, um administrador de sistemas) que conheça o sistema de classificação será capaz de localizar o arquivo e recuperá-lo. O ZFS encontra esse “livro” e o destrói. Isso é o que eu chamo de exclusão segura.
Snapshots
Este provavelmente é o recurso mais alardeado do ZFS. Estamos falando de snapshots, não de backups. O GNU/Linux tem software de sobra para backups, tanto com interfaces gráficas quanto pela linha de comando. Já faz algum tempo que os snapshots são um atrativo do OpenSolaris. Esse recurso era operado originalmente a partir da linha de comando (e ainda pode ser), mas agora conta com uma interface impressionante chamada Time Slider. As snapshots estão integradas ao gerenciador de arquivos padrão do Gnome, o Nautilus. Com isso, o usuário pode criar, excluir e gerenciar versões dos arquivos (e do sistema de arquivos). Resumindo, trata-se de um sistema de versão que não exige a instalação de software como o Subversion, o Git ou o CVS. Obviamente, o Time Slider não foi feito tendo em mente um sistema colaborativo de versões, e portanto não apresenta o grau de detalhismo desse tipo de software, mas para um único usuário de desktop ele é um recurso matador (tenha em mente que eu provavelmente não teria escolhido o Nautilus, mas como o desktop do OpenSolaris se baseia no Gnome, a escolha não é muito surpreendente). Talvez seja a hora de um projeto do Google Summer of Code desenvolver uma interface para o Time Slider para derivados do OpenSolaris, como o Nexenta ou o StormOS. Eles promete atualizações “inquebráveis”. Isso é o cálice sagrado da computação. Talvez a integração entre o ZFS e o apt-get venha num futuro próximo, mas eu só acredito vendo.
Para os puristas preocupados com licenças e patentes, a questão ainda é problemática. As duas distros podem usar ferramentas do Debian, amplos repositórios de software e o apt-get, mas o ZFS está no kernel do Solaris, e embora a maior parte dele seja livre e aberta, supostamente há seis patentes relacionadas a ele (aparentemente destinadas a impedir a engenharia reversa), além de um acordo de licenciamento cruzado com a Microsoft. O ZFS é um campo minado em termos de licenciamento. Diante da complexidade enlouquecedora do licenciamento e das patentes, eu costumo recorrer ao meu calmante – o Groklaw, que como de costume oferece aos cansados e confusos uma análise clara das questões envolvendo a CDDL da Oracle. Não fiquei exatamente surpreso ao constatar que a Microsoft também era mencionada, e possivelmente como raiz do problema.
Por meio do LVM, o Linux pode criar snapshots compatíveis com escrita (mas é preciso criar uma partição copy-on-write para fazer isso), e quando o Grub2 chegar, ele permitirá a inicialização desses snapshots (além da atual capacidade de inicializar kernels mais antigos), mas se o Xorg for corrompido após uma atualização você vai ter problemas, provavelmente indo parar num prompt de comandos, onde vai precisar de um conhecimento razoável para resolver o problema. Com o OpenSolaris, esse problema não existe. Se sua atualização quebrar o Xorg, é possível reverter para uma configuração anterior.
Btrfs, a resposta livre “de verdade” ao ZFS?
É irônico que a Sun, que nos deu o OpenSolaris, tenha sido comprada pela Oracle, e que o Btrfs, desenvolvido originalmente por ela e lançado sob a GPL, provavelmente seja o próximo sistema de arquivos do GNU/Linux, tirando do usuário o fardo de usar alternativas não compatíveis como o ZFS ou o desengonçado binário ZFS-fuse, que contorna o problema. Uma rápida visita ao wiki do kernel Btrfs revela o conjunto de recursos planejado. A impressão é a de uma recriação do ZFS. A boa notícia é que o Btrfs já foi integrado ao kernel principal, e está disponível para testes desde a versão 2.6.29. Na verdade, o Ext4 foi descrito por Theodore Ts’o como uma mera “escala” na viagem rumo ao Btrfs. O Btrfs (pronuncia-se “butter fs”, e a sigla significa “B-tree file system”) foi desenvolvido principalmente para atender à necessidade de expansão de grandes sistemas de armazenamento, mas os usuários finais de desktops certamente também vão se beneficiar dele.
Se seus ideais puristas não baterem com o não-tão-livre e aberto ZFS e você quiser experimentar plenamente o Btrfs, é bom saber que há um utilitário que converte o EXT3 para Btrfs. O Howtoforge tem um tutorial excelente sobre como inicializar o Debian com o Btrfs, e a seção final explica como fazer isso em um live CD do Ubuntu. Não é possível inicializar com o Btrfs, mas depois de inicializar você vai ter acesso aos seus recursos. Se o Grub 2 estiver instalado, talvez a opção do Btrfs seja exibida, com todas as suas opções, conforme descritas para o ZFS.
Enquanto eu escrevia este artigo, a Oracle anunciou que o Solaris só estaria disponível com uma licença para testes válida por noventa dias Depois desse período, quem quiser continuar usando o Solaris vai ter que comprar uma licença (embora seja bom destacar que os detalhes é que pegam e que, originalmente, a licença da Sun/Oracle só restringia o usuário a um período de testes de noventa dias caso o mesmo não registrasse o produto; os novos termos, por sua vez, significam explicitamente que trata-se de um período de testes de noventa dias apenas se você assinar na linha pontilhada). É difícil prever que efeito isso terá no OpenSolaris, mas é certo que terá um impacto negativo no desenvolvimento da plataforma.
O lado ruim é que a Oracle pode optar por não abrir o código fonte criado no futuro para abrir vantagem sobre os equivalentes não comerciais. O lado bom é que isso pode levar ao surgimento de derivados do OpenSolaris, como o Nexenta e o StormOS, mas isso dá indícios da mentalidade da empresa. Além do mais, você nem precisa estar usando o GNU/Linux para obter acesso ao melhor do Solaris. Se estiver de olho no Dtrace e no ZFS, dê uma espiada no FreeBSD ou no Mac da Apple (que não é livre, obviamente), ou no módulo FUSE (binário) do próprio GNU/Linux.
A questão das licenças
A Unixlândia é um lugar muito agradável, mas está coberto por uma espessa camada de vegetação – as licenças. Parafraseando Sir Thomas More de Robert Bolt, eu dou à GPL o benefício da dúvida – não para proteger a licença, mas para proteger a mim mesmo. Dá no mesmo. Há software excelente por aí: muitos são proprietários, e muitos são licenciados sob licenças semelhantes à GPL, nas quais nem todo o código é livre e aberto ou está vinculado a licenças mais restritivas. A internet está entupida de artigos que usam termos exagerados, como “cinquenta extensões do Firefox essenciais na sua vida”, dizendo que tudo é fantástico e matador, mas no caso do OpenSolaris o hype é justificado. Os recursos do ZFS quase tentam você a fingir que não viu as restrições da licença. Adaptá-los para o GNU/Linux, removendo o código patenteado e substituindo-o por código GPL equivalente seria uma proeza técnica, e estaríamos reinventando a roda (quadrada).
Além dos problemas técnicos, acho que você poderia usar código fonte do ZFS em sua própria versão do kernel, com código patenteado e tudo, fazer as alterações desejadas e contar com todos esses recursos de dar água na boca – com uma ressalva: só para uso pessoal. O problema está na redistribuição de sua obra-prima. Se redistribuir, pode esperar a ligação dos advogados da FSF e da Oracle. Obviamente, como o software livre e de código aberto vive em nome da capacidade de se reproduzir, isso iria contra um dos propósitos de se criar o código.
A verdadeira solução é esperar que o Btrfs substitua o Ext4, tornando-se o sistema de arquivos padrão, sem problemas com patentes ou licenças. Sem complicações. Vai ser interessante ver o impacto que isso terá sobre a atitude da Oracle de abrir plenamente o código do ZFS. De que adiantaria manter as restrições sem que isso trouxesse vantagens comerciais, já que o Btrfs estaria disponível sem restrições e com as vantagens das ferramentas do GNU/Linux e seus repositórios, que são bem maiores do que os do Solaris/OpenSolaris? Não haveria vantagem alguma nisso. É claro que o produto da Oracle é voltado ao mercado de servidores de alto desempenho e ao suporte técnico, então dificilmente ele será prejudicado, a não ser que o GNU/Linux com Btrfs comece a ganhar muito terreno. A verdadeira ameaça seriam às edições comunitárias, como o OpenSolaris. Quando todos os seus recursos “matadores” estiverem disponíveis em outros sistemas, por que continuar com uma distro atada a código fonte parcialmente fechado, patentes e à instável generosidade da Oracle? Não, a distro pela qual eu estou esperando é o Nexenta com apt-get, apt-clone, Btrfs e a promessa de atualizações “inquebráveis”. Taí uma distro que eu quero muito ver.
O Fedora é uma alternativa
Se você não consegue esperar e quer experimentar logo (mas não quer encarar o tutorial do Howtoforge que indiquei acima), dê uma olhada na versão em DVD do Fedora 13 beta (codinome Goddard). O sistema de arquivos padrão é o Ext4, mas o DVD de instalação (não a versão live) tem uma opção no menu do Grub para instalação do Btrfs na partição raiz (ou para converter Ext3 ou Ext4 para Btrfs). Com tudo isso, será possível fazer rollbacks (reversões) do sistema no Fedora, mas no atual estágio de desenvolvimento do sistema de arquivos, isso só será possível para o sistema de arquivos inteiro, e não para diretórios específicos, ou seja, o rollback incluiria o diretório Home também. Logo, é preciso colocar o diretório Home em uma partição Ext4 separada.
Após a instalação, é preciso instalar um software para habilitar plenamente o Btrfs, o yum-plugin-fs-snapshot
. Esse engenhoso software permite ao Yum
, a ferramenta de gerenciamento de pacotes do Fedora, criar um snapshot do sistema de arquivos ao instalar, atualizar ou remover pacotes RPM. No momento, isso é o limite do que se pode fazer com o Btrfs no GNU/Linux, mas há planos para se ampliar as possibilidades e reproduzir os recursos “babantes” do OpenSolaris: snapshots disponíveis via Grub2 e uma linha do tempo no Nautilus para gerenciar snapshots. Se esses recursos chegarem ao Fedora 14 de forma madura e estável, o Ubuntu vai encarar um sério concorrente.
Prevejo que nos próximos dois anos o Btrfs será o sistema de arquivos para a maioria, se não todas, as distros GNU/Linux. Conformidade total com a GPL, estabilidade, maturidade e um monte de recursos. Sua adoção vai demonstrar mais uma vez a força da diversidade, da criação de forks e da política de licenciamento de software. Por vezes, a complexidade técnica e legal do licenciamento de software pode afastar (e assustar) os novatos no mundo do software livre e de código aberto, mas volta e meia o licenciamento prova seu valor, protegendo liberdades e encorajando a inovação contra licenças e interesses proprietários e comerciais.
Créditos a Gary Richmond – freesoftwaremagazine.com
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>
Deixe seu comentário