Comentario#1:

Hola Urian, encantado de leerte como siempre, no se hasta que punto te interesa tratar este tema, pero para cambiar un poco la dinamica de hablar del hardware, me gustaria saber tu opinion de la actualizacion de la distro de linux que corre ahora en ps4 y ps4 pro, mejorando muchisimo en rendimiento en estas, y sobre todo sacando mas provecho a esa ultima.

Que por el factor forma, y precio/rendimiento mas ahora estos años con la subida de los componentes de pc, el increible uso que se le puede dar a una ps4 pro con linux.

Directamente un pc funcional con todas las letras, ya que han arreglado el problema del wifi y bluetooth, y la salida del audio ya sale por el mismo hdmi, por prestaciones y tirando incluso de segunda mano por 350 te encuentras un pc con wifi y bluetooth integrado, hdd de 1 tera, lector bluray /dvd / cd ,la fuente obviamente integrada, y solo con el extra de comprar si no se tiene, un raton y teclado, se que esto tiene truco, ya que por ahora se encuentra en un numero limitado de ps4 pro accesibles a instalarle linux, pero la cosa avanza y hay indicios de que a una version mas reciente se le podria aplicar ese metodo o uno similar, y eso por software, ya ni hablemos del hardware que tambien se van a ver cositas.

Te dejo tanto la descripcion de las mejoras de la version 2 como un canal de youtube mostrando lo que se puede hacer con ella hablando de emulacion de ps3, ps2, gamecube, wii, wii u y juegos de windows 10 y mas, lastima que se empeñe en emular los juegos a 1080p con bastantes filtros, algunos corren estupendamente, pero otros bajandole un poco los filtro mas ponerlo a 900p o su resolucion original, irian mas que perfectos.

No muestra cosas cotidianas como navegador web, reproducion de videl en vlc por ejemplo y otras cosas mas por que va de sobrada en eso, pero me gustaria saber que sabes del tema y si ves posible algo parecido en xbox one, por que si va bastante bien en una ps4 pro, con su limitacion a 8 gigas de ram gddr5 y 4.2 teraflos y su cpu a 2,1 a los 6 teras de xbox one x con mas ram y algo mejor en cpu seria un pc de mucho cuidado y mas a los precios que se a visto y se ve la xbox one x.
y de verdad no pueden piratear la xbox? no os equivoqueis no la quiero pirata, pero es la curiosidad de que en xbox 1, y 360 cayeron rapido y de diferentes formas y esta no hay nada de nada, si es que parece que si microsoft se empeña no hay manera de piratearla. eh windows jajaj como se nota que le interesa tenerla virgen para el game pass y demas jajaja, espero tu respuesta y gracias por el tiempo que dedicas al blog, un abrazo maquina.
https://www.elotrolado.net/hilo_psxitarch-linux-v2-linux-en-ps4_2321528

https://www.youtube.com/channel/UC-UupEBIX4XrS7pEiDQmDRA/videos

Me gustaria probarlo pero no tengo PS4 Pro, en todo caso es una pena que Sony haya suprimido por completo la funcionalidad del Other OS al hacer que PlayStation 4 ya no utilice un hypervisor como Sistema Operativo base y esto además nos va a llevar al motivo por el cual Xbox One no ha sido pirateada.

Para entender todo el escenario hemos de entender lo que es un hipervisor.

¿Qué son los Hipervisores?

El hipervisor, también llamado monitor de máquina virtual (VMM), es el núcleo central de algunas de las tecnologías de virtualización de hardware más populares y eficaces, entre las cuales se encuentran las de Microsoft: Microsoft Virtual PC, Windows Virtual PC, Microsoft Windows Server e Hyper-V.

Los hipervisores son aplicaciones que presentan a los sistemas operativos virtualizados (sistemas invitados) una plataforma operativa virtual (hardware virtual), a la vez que ocultan a dicho sistema operativo virtualizado las características físicas reales del equipo sobre el que operan.

Los hipervisores también son los encargados de monitorizar la ejecución de los sistemas operativos invitados.
Con el uso de hipervisores es posible conseguir que múltiples sistemas operativos compitan por el acceso simultáneo a los recursos hardware de una máquina virtual de manera eficaz y sin conflictos.

Existen dos tipos de hiper-visores pero el que nos interesa es el Tipo I.

Hipervisores de tipo 1 (También llamados nativos, unhosted o bare-metal): en ellos el hipervisor se ejecuta directamente sobre el hardware físico; el hipervisor se carga antes que ninguno de los sistemas operativos invitados, y todos los accesos directos a hardware son controlados por él.
Aunque esta es la aproximación clásica y más antigúa de la vitualización por hardware, actualmente las soluciones más potentes de la mayoría de fabricantes usa este enfoque. Es el caso de Microsoft Hyper-V, Citrix XEN Server y VMWare ESX-Server.

Este tipo de hipervisor era el utilizado por PlayStation 3, todos los accesos al hardware no los hacía el Game OS sino el hipervisor, esto además permitía la intalación de manera simultanea del Other OS para quien quisiera instalar Linux.

Desgraciadamente para Sony el Hypervisor fue pirateado por completo y por tanto su consola abierta de par en par. ¿Que han hecho con PlayStaton 4? Han decidido tomar por otro camino que no es otro que el de utilizar el «Southbridge» que es como normalmente se le llama al concentrador los perifericos de E/S como elemento para controlar que los programas estén firmados.

El Southbridge tiene su propia RAM y su propia memoria de almacenamiento, ejecuta una versión para ARM de FreeBSD en paralelo al Orbis OS, el usuario no tiene acceso a dicho hardware dado que es para seguridad y lo que hace es comprobar que el software este firmado y por tanto tenga el permiso para ejecutarse. Esto lo hace a través del núcleo ARM que existe en el Southbridge de PS4, al que Sony llama Aeolia.

En el caso de PS4 por lo tanto no tenemos un hipervisor sino que lo que tenemos es un portero al cual el SoC principal de PS4 (Liverpool) le tiene toda la confianza posible por lo que el hacking en PS4 consiste en jugar con Aeolia y desde el momento en que no se tiene acceso a él desde programa se tienen que tomar otros caminos distintos para el hacking.

Microsoft en cambio opto por utilizar el sistema DRM de la propia AMD en lo que a hardware se refiere… De esto hable hace unas entradas, os pido perdón por el Deja Vu pero no quiero volverlo a escribir.

En Xbox One es distinto, seguimo teniendo el núcleo ARM pero no parece estar en el Southbridge…

PSP es el Platform Security Processor de AMD, os cito algo más de información para poneros al corriente.

Esta es básicamente la versión de AMD de Intel Management Engine. Tiene todos los mismos problemas básicos de seguridad y libertad, aunque la implementación es muy diferente.


El procesador de seguridad de la plataforma (PSP) está integrado en todos los sistemas Family 16h + (básicamente cualquier cosa posterior a 2013) y controla el inicio principal del núcleo x86. El firmware de PSP está firmado criptográficamente con una clave fuerte similar al Intel ME. Si el firmware de la PSP no está presente, o si la clave de firma de AMD no está presente, los núcleos x86 no se liberarán en el inicio, lo que dejará el sistema inutilizable.

¿Que es la familia 16h? Pues la familia del AMD Jaguar y tanto Xbox One como PS4 utilizan núcleos Jaguar. Desconozco si PS4 lo lleva a nivel físico pero desde el momento en que el recorte de Linkedin solo hace referencia a Xbox One diría que esto en consolas es cosa de Xbox One ya que para la misma tarea Sony utiliza el “Southbridge”

El PSP es un núcleo ARM con tecnología TrustZone, integrado en el die de la CPU principal.

Lo que se traduce en que se encuentra conectado al Northbridge que en AMD desde el lanzamiento de lo Opteron se encuentra en la CPU principal, en los SoC el Northbridge es compartido por CPU y GPU (acceso coherente a memoria).

Como tal, tiene la capacidad de ocultar su propio código de programa, memoria RAM inicial y cualquier información que pueda haber tomado y almacenado de la memoria RAM del sistema x86 con privilegios menores (claves de cifrado del kernel, datos de inicio de sesión, historial de navegación, pulsaciones de teclas, ¡quién sabe! ). Para empeorar las cosas, el PSP teóricamente tiene acceso a todo el espacio de la memoria del sistema (AMD no lo negará o no podrá hacerlo, y parece que se requiere que las “características” de DRM funcionen según lo previsto), lo que significa que tiene como mínimo acceso basado en MMIO a los controladores de red y cualquier otro periférico PCI / PCIe instalado en el sistema.

Esto significa que Microsoft necesita mecanismos de seguridad adicionales con tal de evitar el pirateo de su consola y ahí entra el hipervisor que es el que controla el acceso al hardware de los dos sistemas operativos que se ejecutan simultáneamente en Xbox One siempre:

El primer sistema operativo toma es llamado Shared OS, se basa en lo que Microsoft ha ido cambiando de nombre continuamente y que en el fondo no es más que el nuevo entorno con el que Microsoft pretende reemplazar a Win32, el llamado WinRT pero hasta ahora no lo ha conseguido.

A partir de Windows 8 empezarón a convivir ambas APIs generales…

De cara a Windows 10 lo renombraron a UWP (Universal Windows Platform)…

Y como bien sabréis Win32 sigue en Windows 10, pero digamos que WinRT tiene una serie de diferencias cruciales respecto a Win32…

  • WinRT es agnóstico de plataforma de hardware, esto significa que no solo puede ejecutarse para x86 sino también para otras familias de procesadores como ARM. Esto es lo que permite la existencia de una versión reducida de Windows 10 (sin el Win32) en dispositivos diferentes al PC.
  • En WinRT las aplicaciones no se consiguen ni se instalan de manera habitual sino que adopta el modelo estándar de los smartphones donde todas las aplicaciones se ejecutan.
  • WinRT aplica el aislamiento de procesos a cada aplicación, esto significa que cada aplicación tiene una cantidad de recursos fijos por un lado y por el otro desaparecen los recursos compartidos fuera del kernel (núcleo) de tal manera que se hacen imposibles las librerias enlazadas maliciosas (dll) que eran uno de los problemas de seguridad de Windows.
  • Las aplicaciones no pueden acceder al espacio de memoria (leer y escribir) de otra aplicación. La comunicación se hace con llamadas privadas a ciertos servicios en el kernel que es el encargado de monitorizar dichas comunicaciones y dichos servicios no se encuentran controlados por ninguna aplicación a nivel de usuario.

La idea de Microsoft es que todo convergiera a WinR/UWP llegado un momento…

Es decir, al contrario de lo que ocurría con Apple…

… la idea de Microsoft es que hubiese un unico Windows completamente agnóstico del tipo de software en el que se ejecute.

Xbox One utiliza WinRT/UWP para la parte no-gaming, se ejecuta simultáneamente al otro SO, que es el SO en el que se ejecutan los juegos dado que el acceso a los recursos de hardware es llevada a cabo por el Host OS/Hipervisor. Y aquí viene algo curioso, tanto el WinRT/UWP como el Exclusive OS para los juegos corren realmente cada uno de ellos es una sandbox/aislamiento de procesos controlada por el Host OS/Hypervisor.

¿Que significa esto? Significa que si tu pirateas una de las dos máquinas virtuales no tienes acceso a la otra de manera directa porque la forma en la que se comunican es a través del Host OS y hay servicios de Xbox One que utilizan los juegos que no es que se encuentren en el Host OS sino que forman parte del Shared OS, por ejemplo cuando la consola utiliza la Store para actualizar le envia la petición el Host OS sin saber que existe un Shared OS y el Host OS envía la petición al Shared OS. No hay comunicación explicita entre ambos sistema operativos y ninguno de ellos tiene acceso al hardware tampoco, si los sacáramos y lo hiciesemos funcionar aparte como un SO normal no funcionarían bien porque hacen llamadas continuas al hipervisor de Xbox. Bueno, en realidad esto es una verdad a medias ya que el Shared OS no tendría problemas sino que el que tendria problemas sería el Exclusive OS.

Luego tenemos que hackear Xbox tiene que ver con la motivación de hacerlo para ejecutar otro tipo de aplicaciones o sistemas operativos. En el caso de un Linux para Xbox One este debería ejecutarse en modo Dev Mode en el Shared OS (WinRT/UWP) ejecutandose encima de una máquina virtual y con una cantidad de recursos muy limitados que serían los de las aplicaciones UWP.

La otra opción sería re-tocar el enorme conglomerado del Host OS+Shared OS+Exclusive OS para añadir un tercer sistema operativo encima, el cual debería robarle recursos a uno de los dos. No es el caso de PS3 donde solo se ejecutaba un SO en cada momento realmente. Es más, los recursos están fijos para cada SO por lo que Linux tendría disponibles 0 recursos en cuanto al hardware.

Pero lo que mato a todo homebrew en Xbox One fue el anuncio oficial del Dev Mode.

Xbox One tiene dos modos, el modo comercial (1) y el modo de desarrollador (2). En el modo comercial, la consola está en el estado que cualquier cliente o usuario de una consola Xbox One usaría: puedes jugar a juegos y ejecutar aplicaciones como un usuario. En el modo de desarrollador, puedes desarrollar software para la consola, pero no puedes jugar a juegos comerciales ni ejecutar aplicaciones comerciales.

Dicho modo desarrollador no funciona en el Exclusive OS sino en el Shared OS y corta por completo el acceso al Exclusive OS y sus recursos….

Ya decía yo que me dejaba algo y tiene que ver con el «PSP» que os he comentado al citar la entrada de hace unas semanas. Me refiero al núcleo ARM situado en el Northbridge en el caso de Xbox One que os he comentado antes. Pues bien, por muy universales que supuestamente sean las aplicaciones en Xbox One estas han de ir firmadas siempre, si no van firmada entonces el Platform Security Processor no les da acceso al hardware, desde el momento en que el Host OS es el que tiene el acceso al hardware es el Host OS el que se comunica con el PSP.

Basicamente el PSP es el que le informa al Host OS si la aplicación esta firmada y por tanto tiene permiso para ejecutarse o no, a partir de eso es el Host OS el que decide si dejar ejecutar la aplicación o cortarle todos los procesos. En el modo Dev Mode lo que ocurre es que el Host OS solo permite procesos no-firmados y no deja ejecutar los procesos firmados incluido el Exclusive OS por lo que hay una conmutación de los accesos.

En todo caso se ha de tener en cuenta que el Exclusive OS podría ejecutarse en cualquier sistema realmente ya que es agnóstico de plataforma realmente. El Exclusive OS no sabe si los juegos están firmados o no, realmente no sabe ni sobre que hardware se esta ejecutando… Esto nos lleva a un segundo tema y de nuevo gracias a Vito por el aviso porque se me hubiese pasado de largo.

Según la gente de Thurrot.com… Pronto vamos a poder ejecutar juegos de Xbox One en PC…

Antes de empezar a comentar el video, esto significaría el hecho de poder ejecutar el «Exclusive OS» directamente en Windows 10 y posteriores y dado que el Exclusive OS es una máquina virtual haría falta una «Xbox App» aislada que le diese los recursos necesarios y al mismo tiempo hiciese de puente entre el «Exclusive OS» y Windows 10 al no existir por debajo el hipervisor.

La hipotesis de Brad Sams viene que Microsoft esta ofreciendo State of Decay para Windows gratís pero dicha versión no es la estándar de Windows, la hipotesis se basa en que normalmente cuando te descargas un juego de la Store de Microsoft incluido si es un «Play Anywhere» si es la versión de Windows proviene de unos servers distintos que los de la versión de Xbox, pero resulta que lo que supuestamente se esta descargando es la versión de Xbox. Es más, el formato de la aplicación es el .xvc de Xbox One por lo que estamos bajando una aplicación de Xbox One.

El tercer elemento del que habla Brad Sams es que la aplicación instala DirectX dentro del Sandbox, lo cual es raro porque las aplicaciones de la Store no suelen hacerlo dado que el DirectX en el caso de las aplicaciones UWP lo que hacen son llamadas al servicio DirectX que se ejecuta en el espacio del kernel del SO y por tanto fuera de la Sandbox. Pero la particularidad de los juegos comerciales Xbox One es que su DirectX no es el de Windows sino que es una versión a medida y por tanto las librerías no son 100% iguales y hemos de tener en cuenta que el entorno estandar del UWP no soporta DX12 (ver más arriba).

Esto significa que dentro del entorno Sandbox lo que hace es instalar el mismo DirectX que en Xbox One con tal de que la aplicación se pueda comunicar. Pero no solo eso sino que la aplicación lleva consigo el xvd que son las siglas del Xbox Virtual Disk, por lo que podemos suponer que es el SO Virtualizado de Xbox One para los juegos comerciales de Xbox One, el Exclusive OS, el que se esta ejecutando en dicha sandbox y tiene todas las herramientas necesarias para que el juego de Xbox One se ejecute en el PC pero de manera auto-contenida. Es decir, Microsoft lo que hace es hacerte descargar una App del tipo UWP que es el State of Decay de Xbox One corriendo en la maquina virtual de Xbox One que a su vez esta contenido dentro de dicha aplicación UWP de manera completamente encapsulada. Este es el motivo por el cual Brad Sams dice que hay referencias a Durango/Xbox One en las DLL porque son las mismas que en Xbox One.

Todo esto es sumamente importante porque durante muchos años he estado repitiendo que Microsoft quiere cargarse el Exclusive OS de Xbox One de cara al futuro para que todo suceda en UWP y esto significaba romper la compatibiidad hacía atrás pero al mismo tiempo Microsoft tenía un mensaje contradictorio de todo esto. ¿Que significa? Dado que Xbox «Scarlett» va a utilizar una versión de Windows Core OS llamada Game Core OS pensada para consolas esto se traduce en algo muy sencillo. Vamos a ser capaces de ejecutar los juegos de Xbox One sin necesidad del Exclusive OS como una App más en Core Game OS y por tanto sin que exista la configuración de Xbox One en Scarlett al desaparecer el Hipervisor por completo.

Y esto nos lleva a un último punto… ¿Si el hipervisor desaparece? ¿Entonces no desaparecería por completo el sistema de seguridad de Xbox One? El tema esta en que el hipervisor no tiene porque desaparecer sino el Exclusive OS quedando solo la parte UWP/Shared OS que pasaría a ser la que ejecutaría las Xbox App donde estarian autocontenidos los juegos comerciales de Xbox One. No sería tan sencillo como coger un juego de Xbox One y ejecutarlo tal cual sino que se ha de distribuir empaquetado en dicha App con todos los componentes.

¿Que significa esto?

  • Tus juegos comerciales en formato disco óptico no los podrías ejecutar.
  • No puedes ejecutar los juegos de Xbox One instalados en un Disco Duro externo.

Es decir, tus juegos tienes que volvertelos a bajar y dado que están asociados a tu cuenta de Xbox Live pues no existe problema en el usufructo de los mismos en otro sistema. Gracias a todo esto que os he explicado Scarlett no se difiere de lo que os comente hace unas semanas (consola basada en Game Core OS) pero no pierde la compatibilidad hacía atrás y al mismo tiempo el PC se beneficia de poder ejecutar los juegos de Xbox One, lo que le va a permitir a Microsoft lanzar el Xbox Game Pass en PC y esperad a verlo anunciado durante este E3 o en la GDC.

Pe… pero Urian… ¿Y los juegos de Xbox 360 y Xbox original?

Estos en Xbox One se ejecutan en un emulador/interprete en el Exclusive OS, a partir de ahí atar cabos en este caso.

Una vez explicadas las premisas la pregunta es… ¿Que es lo que motiva a Microsoft hacer esto? Pues simple y llanamente que la mayor piedra en el camino para el traslado de Win32 a WinRT/UWP de manera definitiva son los juegos. El objetivo es que el binario de los juego de Windows y Xbox sea al mismo y por tanto los juegos se ejecuten en el entorno UWP.

Y con esto termino, tenéis los comentarios del blog y del Discord para comentarla como siempre.