PlayStation 5 roda sob FreeBSD

Utilizando uma API gráfica própria e diversos softwares OpenSource, o PlayStation 5 roda sob um kernel FreeBSD customizado chamado Prospero!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

Em 8 de outubro de 2019, a Sony confirmou oficialmente a nomenclatura que manteria o padrão numérico do novo console seguindo a sequência dos últimos lançamentos: Playstation 5.

O console foi lançado em 12 de novembro de 2020 na Austrália, Japão, Coréia, América do Norte e Nova Zelândia, sendo oficialmente lançado mundialmente vários dias depois, em 19 de novembro.

Mas longe da parte financeira ou anúncios de games, o que nos interessa hoje é o hardware e, principalmente, o software dele!

2. Hardware

Diferente do antecessor PlayStation 4, o PlayStation 5 trouxe uma arquitetura que se compara ao do SteamDeck conforme explicamos anteriormente:

  • Processador: AMD de arquitetura Zen 2 octa-core @ 3,5 GHz;
  • Memória RAM: 16 GB GDDR6
  • Placa de vídeo: RDNA 2 com 36 unidades computacionais, clock de até 2,23 GHz e capacidade de até 10,28 Tflop/s
  • Armazenamento: 750 Gb Custom NVME SSD

Mas e seu sistema, o que pulsa por baixo dessas especificações?

3. Sistema Operacional

Conforme o padrão seguido pela Sony desde o lançamento do PlayStation 3, o PlayStation 5 também utiliza um sistema operacional baseado no FreeBSD.

De acordo com os códigos explorados por modders, o Kernel do PlayStation 5 é especificamente o FreeBSD 11.0 na versão 1100122 denominado Prospero, inspirado no personagem homônimo da peça A Tempestade, de Shakespeare!

Curiosamente há mais referencias shakespearianas no console: Ariel é a parte GPU da APU, também de A Tempestade; Oberon, parte CPU da APU, Titania que é o controlador do SSD e Azalia, também parte da GPU da APU, estes de Sonho de Uma Noite de Verão.

Dentre as mudanças que o kernel sofreu comparado ao FreeBSD original, eu gostaria de destacar 2 sysvec structs, utilizadas na realização de interrupção de software, que foram adicionadas pela Sony.

Essas sysvec structs são basicamente:

  • FreeBSD ELF64
    A original, permitem a execução de código padrão FreeBSD porém é classicado como “não utilizado” para os propósitos do equipamento.
  • PS4 SELF
    Permite a retrocompatibilidade com os games do PlayStation 4.
  • Native SELF
    São para os processos do próprio PlayStation 5, sejam do firmware que executa por cima, sejam os games.

Algumas syscalls são as mesmas do PlayStation 4, como sys_getgid; porém outras foram alteradas, como a sys_compat.chroot que passou a ser sys_chroot. Portanto pode-se afirmar que o FreeBSD do PlayStation 5 herdou muito código que havia sido usado no desenvolvimento do PlayStation 4.

3.1 API’s

Quanto a software, a Sony desenvolveu 3 APIs proprietárias:

  • GNM: low-level
  • GNMX: high-level
  • PlayStation Shader Language (PSSL)

De acordo com os desenvolvedores, as API’s combinadas agora possuem uma sintaxe semelhante ao DirectX 12 porém com a vantagem curiosa de terem acesso a baixo nível, conversando com o hardware, o que facilita o desenvolvimento dos games, especialmente desenvolvidas para o FreeBSD. – Imagina a loucura se isso vazasse… FreeBSD seria melhor que Linux para qualquer jogo!

3.2 DualSense

Cabe uma observação interessante sobre o controle do PlayStation 5: ele possui uma firmware que precisa ser atualizada com frequência, firmware esta que se chama Cadence XOS!

Essencialmente o microprocessador do controle é um Cadence Xtensa, que roda instruções escritas em linguagem C e funciona de forma muito semelhante ao ESP32.

O microprocessador é como um computador completo, com 1 ou 2 núcleos de processamento, incluindo a RAM e uma ROM aonde o firmware é gravado, porém em um mesmo invólucro, objetivando tarefas simples operando a um clock baixo, na faixa de poucas dezenas de mhz. Dessa forma o controle pode ser atualizado e aperfeiçoado com o tempo, a latência pode ser ajustada, entre outros.

4. Análise Opinativa

Mas por quê a Sony não usa Linux igual a Valve fez com as Steam Machines ou mesmo o SteamDeck?

Os motivos para usar FreeBSD como sistema base são diversos mas, em essência, porque é um sistema de código aberto, gratuito e cuja licença permite que seu código fonte não precise ser publicado.

Assim, se a Sony utilizasse algum outro sistema como o WindowsCE – do Xbox One – ela teria que pagar royallties para a concorrência e, se usasse Linux, ela teria que liberar o código fonte mesmo que só do kernel, o que de acordo com ela, poderia culminar em um caminho facilitador de pirataria.

Não é novidade que a empresa sempre objetivou proteger suas propriedades intelectuais e fará o possível para isso, como o fez quando removeu o suporte a Linux no PlayStation 3.

Fontes:
VirtualBase
PSDevWiki
PlayStationNET
NXP

Deixe um comentário