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
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.