Linux no Mac: uma introdução aos programadores POWER

01 Mar 2004, por David Mertz, Ph.D.

Mesmo que a maioria dos usuários do Linux o tratem como um sistema operacional para suas caixas brancas x86, o Linux roda igualmente bem em máquinas PowerPC. David lança um olhar para o Linux no PowerPC e na linha de máquinas PPC produzidas pela Apple, onde a opção de usar o Linux é de grande valor para muitos usuários.

Sobre o PowerPC

A arquitetura POWER descreve uma família de CPUs RISC que surgiu de um consórcio formado pela IBM, Apple e Motorola. Dentro desta família, os mais avançados chips POWER4 são usados em várias máquinas de médio porte da IBM (veja os links em MP.Serviço para mais informações sobre as linhas de hardware e software iSeries e pSeries da IBM); em computadores pessoais, estações de trabalho ou servidores de grupos de trabalho, a linha PowerPC dos chips POWER é usada em uma vasta linha de máquinas da Apple Computer para o consumidor final. Os chips da família PowerPC - especialmente os da Motorola - são usados também em vários sistemas embutidos e especializados, incluindo PCs compatíveis com o phoenix, a encarnação atual do Amiga, de pequenos fabricantes.

As inter-relações entre os diversos chips da arquitetura POWER são similares aquelas do mundo x86 - em sua grande parte, chips das últimas gerações provêm compatibilidade com as anteriores enquanto oferecem novas capacidades e avanços. Dentro das ramificações da família PowerPC, máquinas da Apple de cinco anos atrás usavam os modelos de chips 601, 603 e 604. Os modelos atuais defasaram o G3 mas continuam usando o similar G4, ambos chips de 32 bits, rodando em diversas velocidades de clock; O recém introduzido G5 é um chip da IBM de 64 bits que adicionou principalmente instruções multimídia especializadas aos modelos do chip POWER4.

A base de todos estes chips, da perspectiva do desenvolvedor Linux, é que todos eles rodam o Linux bem e felizes. Para a famíla de chips PowerPC, estão disponíveis excelentes distribuições amigáveis ao usuário e que oferecem suporte comercial. A IBM também instala o Linux para consumidores das máquinas POWER4 topo de linha.

Então você quer rodar Linux - Porquê comprar um PowerPC?

Os sistemas "padrão" para rodar o Linux são inquestionavelmente máquinas x86. Seja baseada em CPUs da Intel, AMD, Cyrix, Transmeta ou de pequenos fabricantes, a arquitura x86 e bem conhecida e forma a grande maioria dos computadores pessoais, estações de trabalho e pequenos servidores. Seguir a maioria é certamente seguro.

Para muitos usuários do Linux, a melhor razão para comprar um PowerPC será, simplesmente, a linha de máquinas bem projetadas e com preços razoáveis disponibilizadas pela Apple. Reconhecidamente, a linha G4 - da linha de base - não se mantém relativamente comparável em preço com máquinas x86 no que diz respeito ao poder de processamento. Os G4s não ficam tão atrás, mas ficam um pouco. Contudo, a Apple fabrica alguns dos melhores laptops disponíveis da perspectiva ergonômica, estética, do uso com bateria e do peso. Essas características são mais importantes para mim num laptop, do que a pura mastigação de números. No desktop, os modelos G4 diferenciam-se mais na perspectiva estética e ergonômica - por exemplo, na compactação da montagem cantiléver da Apple nos monitores tela plana dos iMacs. Todas as máquinas da Apple, além disso, têm uma boa reputação de durabilidade e confiabilidade - incluindo seus servidores para montagem em racks, que são bons para clusters e arranjos de servidores.

No topo, as torres G5 da Apple são comparáveis em velocidade ao mais rápido dos derivados das CPUS e sistemas x86; em outras palavras, o Intel Itanium e o AMD Athlon64. Testes de velocidade entre os três competidores são uma saco bagunçado, mas todos os três chips obtêm performance similar (todos são notavelmente rápidos e se encaixam em aplicações de mastigação de números). Além disso, no preço, as torres G5 da Apple parecem ser vendidas por menos do que configurações comparáveis de marcas x86 como Dell, Gateway, HP e outros renomados revendores de PC (cotradizendo a reputação da Apple de impôr um preço premium). Vale a pena dizer que a Apple contribuiu com otimizações para o GCC3+ gerar código objeto PPC de qualidade similar a dos compiladores x86 ICC da Intel ou VisualAge C++ da IBM (que são discutivelmente melhores que o GCC no x86).

No fim do dia, as diferencas entre o Linux/x86 e o Linux/PPC são notavelmente mínimas. Este artigo cobrirá com um pouco mais de detalhes as distribuições abaixo, mas geralmente, no Linux/PPC você pode usar os mesmos gerenciadores de janelas, rodar os mesmos utilitários, hospedar os mesmos servidores e assim por diante, como você faria em qualquer sistema x86. A menos que você olhe para o hardware físico - ou como um raro usuário que necessita de características de performance precisas em várias operações (por exemplo, sua aplicação é desenvolvida especialmente em torno de uma extensão de vetor particular) - você não precisará nem mesmo saber em qual arquitetura você está rodando o Linux. A tela será exatamente a mesma, muitos arquivos de configuração conterão os mesmos ajustes e os mesmos bytes sairão através dos cabos.

Então você tem um Mac - Porquê rodar o Linux?

Em um grau supreendente, sistemas operacionias (outros que não aqueles da altamente proprietária Microsoft) tornaram-se commodities. Isto significa que muitas aplicações verticais estão a uma mera recompilação de distância de rodar igualmente bem no Linux, FreeBSD, SunOS, Irix, AIX ou mesmo no Mac OS X; em alguns casos, mesmo este passo não é necessário, já que as ABIs (Application Binary Interfaces, Interfaces Binárias de Aplicações) suportam binários estrangeiros.

Se você comprou uma máquina da Apple nos últimos anos, ela veio com um sistema operacional pré-instalado de alta qualidade, derivado do Unix, chamado OS X. O OS X tem um kernel e uma coleção de utilitários de base chamado Darwin, que está sob a licença Free Software (Software Livre) e é derivado (em parte) do FreeBSD - os únicos elementos proprietários estão na GUI (Graphical User Interface, ou Interface Gráfica do Usuário, o Aqua) e na coleção de aplicações ao usuário final e de administração do sistemas que vêm embutidas no OS X. Mesmo o X11 (especificamente o XFree86, não importanto a implicação do nome) é suportado no no OS X, nos modos tela-cheia e rootless; "rootless" aqui significa que aplicações X11 rodam lado a lado com aplicações nativas do Aqua. Você pode rodar o Apache no OSX, você pode rodar o servidor NcFTP; você pode até mesmo rodar o GIMP ou o KOffice. Porquê se preocupar em instalar o Linux?

Há um número de cenários onde faz mais sentido rodar o Linux em sua máquina da Apple do que rodar o OS X. A primeira situação - uma que terá mais apelo aos entusiastas do que aos usuários corporativos - será quando o Mac em questão é uma máquina antiga. O OS X é totalmente não suportado, ou pelo menos verdadeiramente moroso, em Macs antigos: 603, 604 ou mesmo nos primeiros G3. O Linux pode ser bastaste ágil nestes sistemas mais velhos; e o Linux é muito mais útil como servidor, ou em muitos casos mesmo como um desktop, que o Mac OS 9 (ou anteriores) que vinham com estas máquinas antigas. Entretanto, o segmento dos entusiastas é completamente restrito, ou pelo menos não precisa procurar conselhos aqui.

Uma situação mais importante onde o Linux vale a pena como sistema operacional para as máquinas G3, G4 ou G5 da Apple é quando você quer assegurar uma interface de sistema/usuário uniforme entre diferentes máquinas. Muitas empresas, companhias de hospedagem, escolas ou instalações de pesquisa terão uma mistura de sistemas x86 e PPC para seus usuários. Enquanto você pode recompilar muitas aplicações específicas do Linux para o OS X, fazer isto não permite a todos os sistemas terem uma uniformização da GUI, dos arquivos de configuração, estruturas de diretórios e um ambiente de construção entre as várias máquinas mantidas. "Linux em todo lugar" assegura um grau muito elevado de consistência.

Uma coisa em partigular que pode confundir os desenvolvedores Linux sobre o OS X é sua sobreposição de duas organizações de diretório distintas - os tradicionais /etc/, /usr/local/, /sbin/ e outros presentes em sistemas Linux/Unix e os /Applications/, /Library/, /System/ do Mac OS 9. A hierarquia /sw/ criada pelo Fink, adicionalmente, é quase uma terceira camada. Além disso, ainda que o OS X tenha um servidor X11 embutido, eu já encontrei uma variedade de pequenos problemas (atualizações de tela, associação de teclas etc.) usando aplicações X11 nele - o Linux e um bom gerenciador de janelas, como o KDE ou GNOME, constitui um ambiente muito mais uniforme neste caso.

Independente dos desenvolvedores que queiram usar seus desktops ou laptops PPC, companhias de hospedagem Web podem querer apresentar um sistema previsível aos seus clientes que mantenham sites via SSH, FTP ou interfaces baseadas na Web - desconsiderando que um domínio esteja hospedado em um chip PPC ou x86. Ainda em torno dos servidores, o Linux oferece várias vantagens sobre o OS X, mesmo sobre a versão servidor do OS X. Uma das maiores forças do Linux é a variedade de sistemas de arquivos que foram desenvolvidos ou portados para ele: ext2, ext3, ReiserFS, JFS da IBM, XFS da SGI etc. Cada um destes possuem suas próprias qualidades, muitas vezes específicas a cenários de uso particulares (hospedagem Web, servidor de streaming multimídia, RDBMS etc.) Enquanto a versão servidor do OS X suporta uma versão avançada do HFS+, com journaling e sensibilidade à caixa opcional nos nomes de arquivos, ele não se compara à gama de opções de sistemas de arquivos do Linux. Devo mencionar também - sem super enfatizar - uma pequena questão de custo: uma versão para clientes ilimitados do Mac OS X Server custará a você US$ 1.000,00 por máquina, enquanto o Linux será livre de custos (e mesmo um contrato de suporte de um dos fornecedores das distribuições é muito mais barato que isto). A advertência aqui é que se as ferramentas de administração do OS X Server livram sua equipe de IS (Information Services, ou Serviços da Informação) de ao menos um pouco de trabalho por dia, a despesa de mil dólares pode se pagar rapidamente.

Distribuições

Para este artigo, eu instalei e avaliei quatro distribuições do Linux para máquinas PowerPC: Debian, Knoppix, Yellow Dog e Mandrake. Todas foram instaladas e testadas em um iMac G4. Eu percebi que duas das distribuições são bem polidas e fáceis de usar, comparáveis às melhores distribuições do Linux para x86; as outras duas eu descreveria como "ainda não estão prontas". Existem também algumas outras distribuições - e outras certamente surgirão com o tempo. Eu prcurei prover uma comparação completa de cada distruibuição que os leitores possam escolher, mas simplesmente obter um senso do "estado da arte" - não é minha intenção desprezar as distribuições que eu não testei.

As duas distribuições que achei menos atrativas foram o Debian (Woody) e a Knoppix. A última é uma criatura interessante que eu achei útil em máquinas x86. O Knoppix usa um CD "live boot" - isto é, a inicialização a partir do CD do Knoppix dará a você um ambiente Linux funcionando com o KDE, OpenOffice e uma boa coleção de utilitrários. Usando o Knoppix, não há a necessidade de criar qualquer partição ou ajustes de boot em um PC, e você pode levar o CD do Knoppix para várias máquinas para ter uma configuração uniforme em cada uma delas. Infelizmente, testando em três sistemas distintos, o Knoppix/PPC não gerenciou bem o boot: o KDE não carregou e caiu num crú ambiente TWM que não obtém o modo de vídeo de forma adequada (problemas de mapas de cores e tamanho). A rede, incluíndo a sem fio, contudo, foi reconhecida corretamente; dai você pode usar as ferramentas da linha de comando. Conforme o Knoppix/PPC recebe mais polimento - ou algo parecido - ele será uma maneira útil de rodar o Linux de forma não destrutiva em máquinas com o Mac OS X já instalado (veja os links em MP.Serviço para artigos completos sobre o Knoppix).

Os problemas que eu tive com o Debian/PPC são provavelmente similares aqueles que os usuários dedicados do Debian mais amam em sua distribuição na hora de começar. A instalação é restrita a uma ocupação em modo texto, com nenhuma opção para mudança de configuração caso um "Y" ou "N" (sim ou não) fatal seja pressionado. Conforme você vai cometendo enganos e lê cada tela de configuração atentamente, a instalação segue bem. Ela até mesmo encontra automaticamente na rede quaisquer módulos que possam não estar nos CDs de instalação. Muitos utilitários e aplicativos instalados - GCC, Python, o kernel, Open Office etc, estarão com suas versões um pouco atrás das mais recentes, mas as ferramentas mais usadas estão disponíveis em pacotes Debian (e assim alcançáveis usando o maravilhoso apt-get). Contudo, o problema matador que eu encontrei no Debian/PPC foi a inabilidade de fazer o X11 funcionar nele - a instalação pareceu completamente desatenta a qualquer modelo de placa de vídeo remotamente relevante, e quaisquer tentativas pós instalação provaram-se também infrutíferas. Estou certo que existam usuários do Debian/PPC que conseguiram contornar essas questões de configuração mas, comparada à facilidade de instalação das outras distribuições, tenho problemas em recomendar o Debian aos usuários.

O Yellow Dog (Sirius/3.0.1) e o Mandrake (Bamboo/9.1) têm distruibuições muito agradáveis para o PowerPC. Em geral, eu recomendo o Yellow Dog sobre o Mandrake para a maioria dos usuários, mas cada tem suas vantagens e fraquezas. O fato do fabricante do Yellow Dog, a Terra Soft Solutions, se especializar em sistemas PowerPC provavelmente o leva a ter um pouco mais de atenção com pequenos detalhes do ajuste do Linux para o PPC. Por outro lado, para usuários corporativos visanto uma completa consistência podem preferir o Mandrake para máquinas x86 e PPC.

O Yellow Dog e o Mandrake usam uma atrativa e amigável instalação com GUIs; talvez uma leve vantagem vá para o Mandrake pela sua lista de passos pendentes e completados à esquerda da área de diálogo, mas eu, contudo, prefiro a estética das telas do Yellow Dog. Os dois sistemas vêm com uma ampla coleção de aplicativos e utilitários: Gnome/KDE, OpenOffice, XFree86 4.3, Mozilla, Mac-on-Linux, vários servidores. Para muitos aplicativos e utilitários (e o kernel), o Yellow Dog vem com versões um pouco mais recentes, geralmente apenas uma diferença de micro versão, não uma versão menor inteira. Em qualquer caso, nem o Yellow Dog e nem o Mandrake tiveram qualquer dificuldade em reconhecer minha rede, placa gráfica, partições, mouse, teclado, e assim por diante. Contudo, experimentei uma falha com a primeira tentativa do Yellow Dog em reiniciar o X11 - precisei rodar o /usr/X11R6/bin/Xautoconfig uma vez para resolver o problema.

Algumas diferenças entre o Mandrake e o Yellow Dog sobressaem. A organização do menu e o tema são um pouco diferentes no gerenciador de janelas KDE que eu selecionei (padrão para os dois), mas os dois sistemas foram bastante razoáveis (e configuráveis uma vez que o sistema esteja instalado, em qualquer caso). A seleção de pacotes contêm opções similares para "personal", "server" e "workstation" (com personalização permitida). Eu realmente gostei da ferramenta DiskDrake do Mandrake para o gerenciamento de partições. Este utilitário gráfico permite que você adicione, apague, redimensione sem destruir, formate e manipule partições de outros modos (mas não há redimensionamento sem destruição no HFS+). Dentre outras coisas, o DiskDrake me permitiu escolher o formato da(s) minha(s) partição(ões) do Mandrake durante a instalação, ao invés de simplesmente padronizar para o ext3 como o Yellow Dog fez (mas eu pude adicionar ainda uma partição ReiserFS extra depois, facilmente, no Yellow Dog). E eu estou, de maneira geral, bastante impressionado com o Control Center (Centro de Controle) do Mandrake, em ambos x86 e PPC, não porque ele faça qualquer coisa única, mas porque ele unifica tarefas de configuração numa mesma interface.

Apesar das vantages do Mandrake, minha razão final para preferir o Yellow Dog é seu sistema de gerenciamento de pacotes. O Yellow Dog parece ser algo como um sistema híbrido: ele usa RPMs durante a instalação, mas também instala o apt-get para atualizações posteriores do sistema. Eu não olhei nas entranhas da instalação, mas eu pude digitar apt-get install OpenOffice em uma linha e ter cada dependência resolvida corretamente, todos os 350 megabytes de arquivos baixados e os links adicionaos ao meu menu KDE sem ter que reiniciar o X11. Depois de gastar muitas horas brigando com dependências RPM, este foi um prodígio para se anotar. E claro, eu fui mimado pelo uso do Fink no Mac OS X, que faz exatamente a mesma coisa (e é baseado no apt-get).

Particionamento, gerenciamento multi-boot e emulação

O Linux/PPC tem uma desvantagem importante em relação ao Linux/x86: na época da criação deste artigo, não haviam ainda ferramentas para reparticionamento não destrutivo de partições HFS+ (ao menos nenhuma que seja pós alpha e pode rodar do OS X ou Linux). Infelizmente, isto significa que você não pode configurar facilmente um sistema multi-boot a partir de um sistema Mac OS X existente; distribuições Linux/x86 mais recentes provêm uma capacidade análoga de adicionar o Linux a um sistema Windows pré existente. É simples particionar destrutivamente um drive e então instalar o OS X em uma das novas partições; só que fazer isto significa perder seus dados e configurações do sistema (backup/restauração pode funcionar, mas fazer isto pode ser complicado). E claro, se você quer simplesmente uma máquina Linux dedicada, isto não é algo que você deva se preocupar.

Particionar e preparar o bootstrap funciona um pouco diferente em máquinas da Apple se comparado às x86. Específicamente, o Open Firmware da Apple (uma versão avançada do BIOS que os usuários do Linux conhecem dos PCs x86) vive em uma pequena partição "Apple Bootstrap" (hda2) para carregar o sistema operacional subsequente de uma das partições regulares. O mapa de partições também ocupa a hda1, daí, a primeira partição na qual você instalará qualquer sistema operacional ocupará pelo menos a hda3. Durante a inicialização da máquina - usando a ferramenta de multi-boot yaboot - seu processo de boot seguirá através de dois estágios, ao invés de uma camada nos boot loaders na MBR dos x86, como o lilo e o grub o fazem. No primeiro estágio, você terá a escolha de inicializar, por exemplo, do HD, CD-ROM ou do Open Firmware; assumindo que você inicialize do HD, você pode ter a opção de inicializar de vários sistemas operacionais/versões que vivem em suas partições normais.

Configurar o yaboot geralmente é similar a trabalhar com o lilo. Um arquivo chamado /etc/yaboot.conf contém opções para vários sistemas, kerneis, partições e assim por diante; o formato é muito similar ao lilo.conf. Quando você tiver configurado propriamente o yaboot.conf, você carregará o yaboot na partição bootstrap usando o comando ybin (como root, claro). Para saber informações de partição, você deve usar a ferramenta pdisk ao invés do tradicional fdisk dos sistemas Linux/x86. Denovo, a interface é similar, mas não completamente a mesma, nestas ferramentas. Para usuários do Mandrake, a ferramenta baseada em GUI DiskDrake é muito mais amigável e mais flexível para fazer a mesma coisa. Usando o yaboot, você pode escolher entre múltiplas distribuições Linux e/ou versões do Mac OS na hora do boot.

Uma coisa legal de rodar o Linux em máquinas PPC é que, desta forma, você pode rodar a ferramenta Software Livre Mac-on-Linux. Ela funciona de maneira parecida ao que o comercial VMWare faz em máquinas x86. Um sistema Mac OS completo (que pode ser o OS X ou uma versão anterior, como o Mac OS 9) roda dentro de uma janela em uma tela do Linux/X11. De fato, você pode rodar múltiplas versões do Mac OS simultaneamente, cada uma delas com sua própria janela virtual. O Mac OS viverá em uma espécia de "caixa" onde ele não poderá ver seu ambiente Linux, mas instruções PPC rodarão todavia em velocidade nativa total. Assumindo que você tenha memória suficiente para rodar tal caixa, o Mac-on-Linux dará a você um bom meio de continuar usando suas aplicações Mac OS enquanto estiver no Linux - mesmo aplicações proprietárias para as quais você não possui o código fonte. Nenhuma necessidade de recompilação como seria necessário se você tivesse que mover aplicações do Linux para o ambiente do OS X.

MP.Serviço

  • Leia o resumo da história da arquitetura POWER.
  • Saiba mais detalhes específicos da história do PowerPC.
  • Veja algumas informações genéricas sobre distribuições Linux/PPC, além de dicas de instalação adicionais.
  • Para saber os últimos avanços do Linux em PowerPCs de 32 e 64 bits, visite o penguinppc.org.
  • A Terra Soft Solutions é o fabricante do Yellow Dog Linux e também oferece sistemas PowerPC sob medida - como revenda Apple e sistemas próprios - com versões do Yellow Dog pré instaladas.
  • O Mandrake.com oferece mais informações sobre a distribuição PowerPC Linux do Mandrake.
  • Mais informações sobre o Debian Linux podem ser encontradas no debian.org.
  • O site oficial do Knoppix é mantido pelo autor da distribuição, Klaus Knopper.
  • Saiba o estado atual do Mac-on-Linux.
  • Os servidores iSeries e pSeries da IBM podem rodar o Linux em seus processadores POWER. Para mais informações sobre estes sistemas, visite as páginas do Linux nos IBM eServer iSeries e pSeries.
  • Você encontrará uma grande variedade de softwares de avaliação disponíveis para os iSeries e pSeries rodando Linux, bem como documentação e recursos de aprendizado, no centro de download do Linux dos iSeries e pSeries.
  • "PowerPC assembly" (developerWorks, julho de 2002) é uma introdução ao uso da linguagem assembly no PPC sob o Linux.
  • "Porting IA32 Applications to Linux PowerPC" e "Porting Intel Applications to 64 bit Linux PowerPC" são excelentes recursos para aqueles que procuram mudar suas aplicações para a plataforma PPC.
  • Para uma visão geral completa sobre a arquitetura PowerPC, leia os três fascículos do "PowerPC Architecture Book".
  • Ainda no domínio de desenvolvimento nos eServer encontra-se o "POWER4 and shared memory synchronization".
  • Encontre mais recursos para desenvolvedores Linux na seção Linux do developerWorks.
  • Sobre o Autor

    David Mertz é proprietário e consultor chefe da Gnosis Software, Inc., cujo slogan corporativo é "Nós Sabemos das Coisas!" (e sabemos mesmo). Você pode encontrar o David pelo email mertz@gnosis.cx; você pode saber aspectos de sua vida em sua página pessoal. Conheça seu livro, "Text Processing in Python".

    Traduzido por Deny Dias.
    "Linux on Mac: a POWER programmer's primer", em 20/01/2004, IBM developerWorks.
    Direitos de tradução e publicação para a língua portuguesa gentilmente cedidos ao MacPress pelo autor.