« Arquitetura do PlayStation 3 (index)

Arquitetura do PlayStation 3

Chapter 7: Sistema Operacional


Índice

  1. Níveis de privilégio do Cell
  2. Visão geral
  3. Hierarquia de segurança do sistema operacional
  4. Mídia de armazenamento
    1. BootROM do Cell
    2. Memória Flash NAND/NOR
    3. Disco rígido
    4. Memória eMMC
  5. Processo de inicialização
    1. Processo de inicialização revisado
  6. Visual Shell
    1. Empreste-me o seu PS3
  7. Uma proposta de múltiplos sistemas operacionais
  8. Atualização

Agora que os consoles domésticos se tornaram poderosas centrais multimídias, foi necessário ter um sistema operacional mais complicado para fornecer aos usuários mais serviços e jogos com uma camada maior de abstração. Tudo isso, mantendo a segurança e o desempenho adequado.

Consequentemente, termos como shell ou BIOS não são mais usados para descrever esta área, não porque não existem mais, mas devido descreverem apenas uma pequena fração do novo sistema. O termo genérico agora é "sistema operacional", que compreende muitas áreas (carregador de inicialização, kernel, interface do usuário) analisadas separadamente. Como sempre, recomendo verificar o sistema operacional do PSP primeiro, já que seu projeto modular é um ingrediente recorrente no PS3.

Níveis de privilégio do Cell

Antes de entrarmos em detalhes, preciso mencionar os diferentes modos de operação no Cell. Eu originalmente planejava descrever isso na seção "CPU", mas como aquela seção ficou incrivelmente densa, vou apresentá-lo aqui onde você verá seu uso prático imediatamente. Além disso, seus modos também afetam o projeto de qualquer sistema operacional que execute dentro do Cell — não apenas o que a Sony desenvolveu para o console.

Dito isso, para proteger contra o acesso não autorizado aos dados e/ou recursos sensíveis, o Cell implementa um conjunto de níveis de privilégio herdado da especificação PowerPC. Em outras palavras, o Cell executa os programas em dois modos:

Além disso, os SPEs contêm um modus operandi chamado modo isolado e ele protege o processo a execução dentro da SPU, de modo que nenhuma unidade externa (o PPE ou outros SPEs) possa acessá-la até que a SPU termine. O modo isolado pode ser ativado após o envio de um programa para qualquer SPE e garante que o processador não seja alterado enquanto um código sensível (ou seja, uma rotina de criptografia) está executado.

O sistema operacional da Sony, que descreverei nos parágrafos a seguir, usa todos os modos descritos para lidar com sua segurança.

Visão geral

Como eu disse antes, o sistema operacional é bastante complexo. Portanto, para podermos seguir esta seção sem muita dificuldade, podemos dividir o tipo de arquivos que encontraremos no sistema operacional do console em camadas diferentes:

Hierarquia de segurança do sistema operacional

Em termos gerais, o sistema operacional do PS3 é projetado com a mesma abordagem modular do PSP. Relembrando do artigo anterior, o sistema operacional é composto de vários módulos. Esses podem servir ao usuário (como um jogo ou aplicativo) ou residir na memória indefinidamente para servir outros módulos (na forma de chamadas de sistema e/ou drivers). Alguns módulos têm mais acesso privilegiado do que outros (módulo do Kernel versus módulo do usuário).

Image
Diagrama mostrando como os componentes do sistema operacional do PlayStation se encaixam nos níveis de privilégio do Cell.
Referência ao "OtherOS" são explicadas com mais detalhes nas próximas seções.

O sistema operacional, durante seu ciclo de vida, chamará muitos módulos com diferentes privilégios. A Sony construiu seu sistema operacional para que os módulos rodem nos três níveis de privilégio do Cell:

Mídia de armazenamento

Com tudo isso dito, onde todos esses dados são armazenados? Do ponto de vista do usuário comum, existem apenas dois meios visíveis: os discos Blu-ray para jogos e um disco rígido para saves. Bem, existem mais alguns, então vamos dar uma olhada em cada um deles agora!

BootROM do Cell

Acontece que dentro do Cell há uma pequena ROM escondida em algum lugar que os fabricantes podem usar para armazenar um boot-loader (carregador de inicialização) "protegido". A IBM fornece esse espaço para poupar as empresas (não apenas a Sony) de terem que implementar manualmente seus próprios métodos de ofuscação de código para proteger seu código de inicialização, já que os componentes disponíveis comercialmente nem sempre estão preparados para suas necessidades específicas.

Como essa memória já está fisicamente protegida com ofuscação de código, ela não precisa ser criptografada. Desta forma, ela é ideal para um boot-loader de primeiro estágio (que não pode ser criptografado) e o PlayStation 3 armazena seu estágio inicial de inicialização nela.

Memória Flash NAND/NOR

Lembre-se daquelas 256 MB de memória flash NAND que mencionei brevemente antes? Bem, é aqui que fica a maior parte do sistema operacional. Isto é, era até que a Sony lançou o modelo CHECHH no final de 2007, substituindo as NANDs de 256MB por uma NOR de apenas 16 MB. Como consequência, alguns arquivos tiveram que ser movidos para outro lugar. Para fins de simplicidade, vamos primeiro ver o que esses chips armazenam :

Devido ao seu tamanho maior, os modelos com memória Flash NAND também armazenam a parte restante do sistema operacional (chamada de GameOS ou devflash). Isso inclui:

Como se não bastasse, os consoles com NAND também armazenam outros dados, como o xRegistry (coleção de configurações de rede, contas da PlayStation Network e uma lista de dispositivos Blutooth emparelhados), mas registros de revogação e um Carregador para o OtherOS (uma peça realmente interessante que discutiremos mais nos próximos parágrafos).

Disco rígido

O estreante disco de 2,5 polegadas, com capacidade de armazenamento que variou de 20 GB a 500GB (conforme mais revisões foram lançadas), fornecia armazenamento persistente de dados para:

No entanto, os sistemas NOR também armazenam o GameOS no HDD. Como consequência, sempre que o usuário troca o disco rígido, o console solicita um arquivo de atualização para reinstalar o GameOS no disco. Seja como for, nenhum dos sistemas NOR ou NAND será inicializado sem o disco rígido.

Certos dados do usuário podem ser salvos em um pendrive USB e depois transferidos para outro console, se necessário, embora esse processo reformate o console mais novo antes de copiar os dados antigos.

Memória eMMC

Em 2012, a Sony lançou uma revisão redesenhada do console chamada "SuperSlim" (codinome CECH-4xxx). Estes estavam disponíveis em três versões: uma com um disco rígido de 250 GB, outra com um disco rígido de 500 GB ou uma terceira opção com apenas uma memória flash eMMC interna de 12 GB. As duas primeiras opções seguem o projeto de sistema de arquivos implementado em modelos com memória NOR, enquanto a terceira armazena tudo na memória eMMC (incluindo dados do usuário) e segue o projeto com memória NAND para armazenar os arquivos do sistema.

Contudo, há uma pegadinha no modelo com memória eMMC. Em vez do chip de memória NOR, a Sony encaixou um chip Panasonic "MN66840", que, segundo o PS3 Dev Wiki , parece redirecionar o barramento da memória NOR para a memória eMMC. Presume-se que isso seja apenas um truque para economizar custos, já que recicla a mesma Southbridge das outras versões.

Curiosamente, se o usuário decidir colocar um disco rígido no modelo com memória eMMC, o console move todos os dados do usuário da memória eMMC para o novo disco rígido. Como consequência, o usuário pode usar totalmente o disco rígido, embora o espaço vazio deixado na memória eMMC fique sem uso.

Processo de inicialização

Certo, utilizando todo o conhecimento anterior, você vai aprender como o sistema inicia — e antecipo: é bastante complicado. A motivo é simples: a Sony não quer que você mexa no hardware ou software deles, então eles construíram várias camadas de ofuscação e criptografia para impedir que você invada e carregue seu próprio código (e esperançosamente desista e continue comprando jogos/filmes/o que for), porém, como a história nos conta, o oposto aconteceu.

Nas próximas linhas, detalho o que este console faz assim que você pressiona o botão de ligar. Note que este processo só mudou drasticamente uma vez (depois que hackers o quebraram). Então, para fins de simplicidade, começamos com o processo de inicialização "original" (implementado antes da versão de sistema 3.60) :

  1. Um chip separado na placa-mãe (chamado de Syscon) é ligado e executa instruções de sua ROM interna. Em seguida, envia um "Anel de Configuração" para o Cell via SPI (uma conexão serial), isso inicializa o Cell e desativa o oitavo SPU. Por fim, ele liga a linha de energia e dá vida ao Cell.
  2. O vetor de reinicialização da PPU do Cell aponta para a sua ROM oculta, que armazena as rotinas para localizar e descriptografar o bootldr na memória Flash. A parte descriptografada é então carregada pela primeira SPU em modo de isolamento.
  3. Após carregar o bootldr, a SPU, já isolada, inicia parte do hardware (a memória XDR e as interfaces de E/S), descriptografa um binário chamado lv0 e instrui a PPU a executá-lo.
  4. A PPU, agora executando lv0, descriptografa o metldr (um carregador específico do console) e o envia para a terceira SPU, novamente em modo de isolamento.
  5. A SPU2, agora executando o metldr, executa mais cinco carregadores sequencialmente:
    1. O lv1ldr descriptografa e carrega o lv1, que contém o Hypervisor que assume o primeiro nível de privilégio. Além disso, lv1 configura o disco rígido, a unidade de Blu-ray e o RSX.
    2. O lv2ldr descriptografa e carrega o lv2, que contém o Kernel e é executado em cima do hypervisor. Ele também finaliza a inicialização do RSX, a emulação de PS2, o controlador Bluetooth, o controlador USB e o leitor Multi-card.
    3. O appldrdescriptografa e carrega o vsh ( o Visual Shell) e outras dependências. Depois, o vsh permite que o usuário carregue um jogo.
    4. O isoldr descriptografa e carrega módulos que serão executados na terceira SPU em modo de isolamento. Esses módulos são críticos para a segurança e realizam muitas funções criptográficas ao longo do ciclo de vida do console. Consequentemente, a terceira SPU é reservado para funções de segurança e os jogos não podem usá-lo (deixando apenas seis SPEs disponíveis para os jogos).

A PPU, após carregar o vsh, concede o controle ao usuário através de uma interface gráfica de usuário, que se manifesta com um som de orquestra icônico seguido do menu XMB.

Processo de inicialização revisado

Em março de 2011, um hacker conhecido pelo nome "GeoHot" quebrou a segurança do metldr, comprometendo assim a autenticidade dos carregadores subsequentes. Portanto, a Sony revidou emitindo atualizações de segurança em seu hardware e software. Essas correções são discutidas em maiores detalhes mais a frente na seção "Antipirataria e Homebrew".

Visual Shell

Você está ficando cansado de toda essa teoria? Deixe-me mudar para algo que todos possam realmente ver: A Visual Shell.

A XrossMediaBar (XMB), uma nova interface de usuário que ganhou reconhecimento internacional dois anos antes, foi ligeiramente adaptada para que possa ser interagida do sofá (chamada de "10-foot user interface" - "interface de usuário de 10 pés, ou 3 metros", em tradução livre) e expandida para aproveitar a resolução "full HD" (1920x1080 píxeis).

Image
XMB no PSP (2004).
Renderizado em 480×272 píxeis.

Image
XMB no PS3 (2006).
Renderizado em 1920x1080 píxeis.

Embora os usuários do PSP encontrem muitas semelhanças, a Sony adicionou um novo conjunto de aplicativos que usam o potencial do Cell, do RSX e da unidade de Blu-ray. Muitos deles relacionados a multimídia (como o reprodutor de vídeo e a apresentação de slides de imagens), televisão (como aplicativos de TV sob demanda, como o iPlayer da BBC), perfil social (avatares online) e compras online (PlayStation Now e PlayStation Store, só para citar alguns).

Além disso, como este é um console doméstico que pode ser compartilhado por várias pessoas, a XMB suporta múltiplos usuários, onde cada um pode usar uma conta diferente da PlayStation Network e armazenar seus dados de usuários separados (jogo comprados e saves).

Image
Assim como no PSP, destacar um jogo pode estilizar o plano de fundo para chamar sua atenção!.

Image
O XMB fornece uma imensa quantidade de configurações, especialmente úteis quando você precisa configurar sua novíssima TV 1080p com áudio surround 3.1.

Image
Várias opções multimídia.

Image
O XMB pode instalar jogos, atualizações e expansões (DLCs) usando um instalador de pacotes nativo.

A interface XrossMediaBar (XMB) do PlayStation 3

Por fim, a inclusão de um disco rígido é um alívio para os jogadores veteranos que, no passado, eram obrigados a comprar armazenamento proprietário caro (Memory Stick Pro Duo) sempre que ficavam sem espaço.

Empreste-me o seu PS3

De maneira impressionante, nem todos os aplicativos incluídos no console tinham objetivos egoístas. Com o advento da computação distribuída e as capacidades do Cell para projetos de ciências de dados, a Universidade de Stanford se uniu à Sony para permitir que os proprietários do PlayStation 3 contribuíssem para pesquisas médicas. O resultado disso foi a Folding@home.

A Folding@home consistia em um aplicativo instalado em todos os PlayStation 3 que, uma vez aberto pelo usuário, se conectava a um servidor central e executava simulações de proteínas. Além disso, o aplicativo também podia ser executado em segundo plano durante os horários de menor uso.

Image
O Folding@Home exibe o trabalho realizado desde que o usuário iniciou o aplicativo .

Ao longo de sua vida útil, o poder de computação combinado de 15 milhões de usuários do PS3 em todo o mundo ajudou o Folding@home em suas pesquisas para a cura de doença de Alzheimer . No final, a Folding@home e a Sony aposentaram o aplicativo em 2012 e o projeto continua em outras plataformas.

Pessoalmente, gosto de ler sobre projetos que fazem contribuições globais usando as capacidades da computação distribuída, ao invés dos artigos sensacionalistas intermináveis sobre mineração de criptomoedas. Creio que não podemos esquecer que, com cada nova tecnologia poderosa, sempre teremos aplicativos altruístas desenvolvidos para ela.

Uma proposta de múltiplos sistemas operacionais

Quando a IBM definiu o Cell no nível de software, eles mencionaram que o Cell seria capaz de executar vários sistemas operacionais (SO) ao mesmo tempo, devido aos vários núcleos de execução do Cell . Assim, a Sony levou essa ideia adiante e adicionou uma opção no XMB para instalar um sistema operacional secundário . Essa funcionalidade foi chamada de OtherOS e, em resumo, fornece um gerenciador de partição (o XMB apenas guia o usuário para redimensionar a partição do GameOS e alocar novo espaço para o segundo SO) e um botão para iniciar a partir do segundo SO (graças aos arquivos de inicialização do OtherOS já configurados na memória Flash). Então, o usuário só precisa preencher a nova partição com um SO. Consequentemente, várias distribuições Linux (por exemplo, Ubuntu e Fedora) adicionaram o PS3 como outro possível alvo para instalação. Você pode considerar isso como um sucessor espiritual do Linux para PS2.

Image
Red Ribbon GNU/Linux é uma distribuição exclusiva para o PS3/Cell e compilada para arquitetura PPC64 .

Graças ao OtherOS, usuários experientes tiveram a oportunidade de desenvolver aplicativos homebrew que rodavam no Cell sem restrições de licença, o que foi particularmente interessante para fins de pesquisa/científicos , uma vez que este console tinha um preço mais acessível do que um mainframe. Para fins de multimídia, a unidade de Blu-ray e o leitor Multi-card também eram acessíveis a partir do OtherOS.

Por outro lado, embora os privilégios do OtherOS possam superar os do GameOS (no nível de Kernel), eles não ultrapassam o hypervisor, que ainda reside na memória. Portanto, qualquer acesso de hardware do OtherOS ainda depende da vontade do hypervisor da Sony, e acontece que este último bloqueia o acesso aos buffers de comando do RSX (impedindo o uso das unidades de sombreamento, entre outros componentes usados para acelerar as operações gráficas). Consequentemente, as distribuições Linux recorrem à renderização de software (todos os gráficos são desenhados pelo Cell) e, em seguida, o buffer de imagem é transmitido para o RSX para exibição. Embora seja decepcionante que o OtherOS não possa aproveitar todas as capacidades do console, isso provavelmente foi feito para reduzir as superfícies de ataque. Ironicamente, o uso do Cell pelo OtherOS é semelhante ao que a IBM/Toshiba/Sony podem ter originalmente previsto para o PS3!

Compartilhando o mesmo destino do aplicativo Folding@home, o OtherOS foi eventualmente removido em uma atualização subsequente, mas devido a causas diferentes (principalmente relacionadas à segurança). Pouco depois, o OtherOS foi restaurado de forma não oficial graças a exploits de software e de engenharia reversa. No momento, o OtherOS está disponível se o usuário instalar um firmware personalizado. Eu explico isso mais detalhadamente na seção "Antipirataria e homebrew".

No momento em que este texto foi escrito, o desenvolvedor René Rebe está implementando drivers xf86 próprios que aproveitam a aceleração fornecida pelo RSX e seus 256 MB de memória . Seu trabalho é combinado com outros desenvolvimentos que removeram as restrições impostas pelo hipervisor (inicialmente graças à descoberta de exploits de software e posteriormente com o uso de um firmware personalizado, este último é explicado mais detalhadamente na seção "Antipirataria e homebrew") O Sr. Rebe publica seu progresso em seu canal no YouTube e conta com doações voluntárias para continuar seu trabalho .

Atualização

Para a parte final desta longa seção, falaremos sobre as capacidades de atualização do GameOS.

Em resumo, assim como o PSP, a Sony distribuiu arquivos PS3UPDAT.PUP que empacotam todos os novos binários do sistema operacional. Devido ao sistema de segurança do console, apenas os arquivos que não estão protegidos com chaves exclusivas do console e que são armazenados em memória regraváveis (Flash, disco rígido, eMMC) são atualizáveis, o restante deve permanecer como está.

Os arquivos PUP foram distribuídos através do site oficial da Sony, do assistente de atualização da XMB ou encontrados nos conteúdos de um disco de jogo (todos os jogos incorporam um arquivo PUP, refletindo a versão SDK que ele foi desenvolvido). Como os modelos com memória Flash NAND contêm apenas 256 MB de espaço e armazenam todo o sistema operacional, a Sony nunca lançou arquivos de atualização com tamanhos maiores que 256 MB.


Previous: 6. Entrada/Saída e a retrocompartibilidade.

Next: 8. Jogos


Rodrigo Copetti © 2026 RSS Feed

Mudar para a edição moderna

Início · Artigos · Suporte · Sobre o autor · Sobre o site