« Архитектура PlayStation 3 (index)

Архитектура PlayStation 3

Chapter 7: Операционная система


Содержание

  1. Привилегированная безопасность Cell
  2. Общие сведения
  3. Иерархия безопасности ОС
  4. Носители информации
    1. Cell BootROM
    2. Флэш-память NAND/NOR
    3. Жесткий диск
    4. eMMC
  5. Процесс загрузки
    1. Измененный процесс загрузки
  6. Визуальная оболочка
    1. Одолжи мне свою PS3
  7. Несколько ОС
  8. Обновляемость

Теперь, когда домашние консоли стали мощными мультимедийными центрами, потребуется более сложная операционная система (ОС), чтобы предоставить пользователям больше сервисов и игр с более толстым слоем абстракции. Все это при сохранении безопасности и производительности на должном уровне.

Следовательно, такие термины, как shell или BIOS больше не используются для описания этой области, не потому что они больше не существуют, а потому что они описывают небольшую часть новой системы. В настоящее время общим термином является "операционная система", которая включает в себя множество областей (загрузчик, ядро, пользовательский интерфейс), анализируемых отдельно. Как всегда, я рекомендую сначала ознакомиться с ОС PSP, поскольку её модульная конструкция - повторяющийся ингредиент PS3.

Привилегированная безопасность Cell

Прежде чем мы погрузимся в детали, я должен упомянуть о различных режимах работы Cell. Сначала я планировал описать это в разделе "Процессор", но поскольку он получился невероятно плотным, я расскажу об этом здесь, где вы сразу же увидите его на практике. Кроме того, режимы работы Cell также влияют на дизайн любой операционной системы, работающей в Cell - не только той, которую Sony разработала для этой консоли.

Тем не менее, для защиты от несанкционированного доступа к конфиденциальным данным и/или ресурсам, Cell реализует уровни привилегий, унаследованных от спецификации PowerPC. Другими словами, Cell выполняет программы в двух режимах:

Кроме того, блоки SPE содержат режим работы под названием изолированный режим. Этот режим защищает процесс выполнения внутри SPU, так что никакие внешние блоки (PPE или другие SPE) не смогут получить к нему доступ до завершения работы SPU. Эта функция может быть активирована после загрузки программы в любом SPE и гарантирует, что в процессор не вмешаются во время выполнения важного кода (процедуры шифрования).

Операционная система Sony, которую я собираюсь описать в следующих параграфах, использует все описанные режимы для обеспечения безопасности.

Общие сведения

Как я уже говорил ранее, ОС довольно сложная. Итак, чтобы без проблем следовать этому разделу, мы можем разделить типы файлов, которые мы найдем в ОС этой консоли, на различные уровни:

Иерархия безопасности ОС

В общем, ОС PS3 разработана с использованием того же модульного подхода, что и в PSP. Если вспомнить предыдущую статью, ОС состоит из множества модулей. Они могут обслуживать пользователей (игра или приложение) или находиться в памяти неопределенное время для обслуживания других модулей (в виде системных вызовов и/или драйверов). Некоторые модули имеют больше привилегий, чем другие (модуль ядра против модуля пользователя).

Image
Диаграмма показывает, как компоненты операционной системы PlayStation соответствуют уровням привилегий Cell.
Ссылки на 'OtherOS' объясняются в следующих разделах.

ОС на протяжении своего жизненного цикла будет обращаться ко многим модулям с различными привилегиями. Sony создала свою ОС таким образом, чтобы модули работали под тремя уровнями привилегий Cell:

Носители информации

С учетом всего сказанного, где хранятся все эти данные? С точки зрения обычного пользователя, есть только два видимых средства: диски Blu-ray для игр и жесткий диск для сохранений. Есть еще несколько, и сейчас мы рассмотрим каждый из них!

Cell BootROM

Оказывается, что производители спрятали внутри Cell маленький ROM, в котором хранится 'защищенный' загрузчик (boot-loader). IBM дает это пространство, чтобы избавить любую компанию (не только Sony) от необходимости вручную применять специальные методы обфускации для защиты своего загрузочного кода, поскольку готовые компоненты не всегда готовы к конкретным потребностям.

Поскольку эта часть уже физически защищена обфускацией, её не нужно шифровать. Таким образом, он идеально подходит для первоначального загрузчика (first-stage boot-loader) (который не может быть зашифрован), и PlayStation 3 хранит свой ранний этап загрузки именно там.

Флэш-память NAND/NOR

Помните о тех 256 МБ флэш-памяти NAND, о которых я кратко упоминал ранее? Здесь находится большая часть операционной системы. Так было до тех пор, пока в конце 2007 года Sony не выпустила модель CECHH, заменив 256 МБ NAND на ничтожные 16 МБ NOR. Как следствие, некоторые файлы пришлось перенести в другое место. Для простоты давайте сначала посмотрим, что хранят эти чипы :

Из-за большего объема модели с флэш-памятью NAND также хранят оставшуюся часть ОС (называемую GameOS или devflash). Сюда входит:

Как будто этого было мало, но консоли с NAND также содержат другие данные, такие как xRegistry (коллекция сетевых настроек, учетных записей PlayStation Network и список устройств Bluetooth), больше записей об отзыве и загрузчик для OtherOS (действительно интересная часть, о которой мы поговорим подробнее в следующих параграфах).

Жесткий диск

Дебютный 2,5-дюймовый жесткий диск объемом от 20 до 500 Гб (по мере выпуска новых версий) обеспечивает постоянное хранение данных:

Системы с NOR, однако, также хранят GameOS на жестком диске. Как следствие, каждый раз, когда пользователь меняет жесткий диск, консоль запрашивает файл обновления для переустановки GameOS на диск. Как бы то ни было, системы ни с NOR, ни с NAND не загружаются без жесткого диска.

Некоторые пользовательские данные можно сохранить с помощью USB-накопителя, а затем при необходимости перенести на другую консоль. Однако этот процесс переформатирует новую консоль перед копированием старых данных.

eMMC

В 2012 году Sony представила обновленную версию консоли под названием 'SuperSlim' (кодовое название CECH-4xxx). Они были доступны в трех вариантах: один с жестким диском на 250 ГБ, другой с жестким диском на 500 ГБ или третий вариант с внутренней флэш-памятью eMMC на 12 ГБ. Первые два варианта следуют схеме файловой системы, реализованной в моделях с NOR. Третий вариант хранит все в eMMC (включая данные пользователей) и следует схеме с NAND для хранения системных файлов.

Однако в модели с eMMC есть одна загвоздка. Вместо чипа NOR компания Sony установила чип Panasonic 'MN66840', который, согласно PS3 Dev Wiki , перенаправляет шину NOR на eMMC. Я предполагаю, что это просто трюк для экономии средств, так как он использует один и тот же южный мост из других вариантов.

Довольно любопытно, что если пользователь решит установить жесткий диск в модель eMMC, консоль перенесет все пользовательские данные с eMMC на новый жесткий диск. Как следствие, пользователь может полностью использовать жесткий диск, хотя пустое место в eMMC теперь остается незанятым.

Процесс загрузки

Итак, используя все предыдущие знания, вы узнаете, как загружается система - и, скажу я вам, это довольно сложно. Причина проста: Sony не хочет, чтобы вы возились с их железом или ПО. Поэтому они создали множество уровней обфускации и шифрования, чтобы помешать вам взломать систему и загрузить свой собственный код (и, надеясь, отказаться от него и продолжать покупать игры/фильмы/другое). Но, как покажет история, произошло совершенно обратное.

В следующем разделе я опишу, что делает эта консоль после нажатия кнопки питания. Обратите внимание, что этот процесс радикально изменился только один раз (после того, как хакеры взломали его). Итак, для простоты мы начнем с "оригинального" процесса загрузки (реализованного до версии системы 3.60) :

  1. Отдельный чип на материнской плате (Syscon) активируется и выполняет инструкции из внутреннего ROM. Потом он отправляет "кольцо конфигурации" в Cell через SPI (последовательное соединение), которое инициализирует Cell и деактивирует восемь SPU. Затем, он защемляет линию питания и дает жизнь Cell.
  2. Вектор сброса PPU в Cell указывает на его скрытый ROM, в котором хранятся процедуры поиска и расшифровки bootldr из флэш-памяти. Потом расшифрованный фрагмент загружается SPU в режиме изоляции.
  3. Теперь изолированный SPU, загрузив bootldr, инициализирует часть аппаратного обеспечения (память XDR и интерфейсы ввода-вывода), расшифровывает двоичный файл lv0 и дает команду PPU запустить его.
  4. PPU, теперь выполняющий lv0, расшифровывает metldr (загрузчик, специфичный для консоли) и посылает его третьему SPU, снова в режиме изоляции.
  5. Третий SPU, теперь выполняющий metldr, последовательно выполняет ещё пять загрузчиков:
    1. lv1ldr расшифровывает и загружает lv1, который содержит гипервизор, переходящий на первый уровень привилегий. Кроме того, lv1 настраивает жесткий диск, привод Blu-ray и RSX.
    2. lv2ldr расшифровывает и загружает lv2, который содержит ядро и работает поверх гипервизора. Также он завершает инициализацию RSX, эмуляции PS2, Bluetooth, контроллера USB и карт-ридер.
    3. appldr расшифровывает и загружает vsh ( визуальную оболочку) и другие зависимости. vsh позже позволит пользователю загрузить игру.
    4. isoldr расшифровывает и загружает модули, которые будут работать в третьем SPU в изолированном модуле. Эти модули критически важны для безопасности и выполняют множество криптографических функций на протяжении всего жизненного цикла консоли. Следовательно, третий SPU зарезервирован для функций безопасности, и игры не могут его использовать (для игр остается только шесть SPE).

PPU, загрузив vsh, предоставляет пользователю управление через графический интерфейс пользователя, который проявляется знаковым оркестровым звуком запуска, за которым следует меню XMB.

Измененный процесс загрузки

В марте 2011 года хакер "GeoHot" взломал защиту metldr, тем самым нарушив подлинность последующих загрузчиков. После этого Sony нанесла ответный удар, выпустив обновления безопасности в своем оборудовании и ПО. Эти исправления более подробно описаны в разделе "Борьба с пиратством".

Визуальная оболочка

Вы устали от всей этой теории? Позвольте мне переключиться на то, что на самом деле может увидеть каждый: Визуальная оболочка.

XrossMediaBar (XMB) - это новый пользовательский интерфейс, получивший международное признание за два года до этого. Он был слегка адаптирован, чтобы с ним можно было взаимодействовать с дивана (так называемый "10-футовый интерфейс"), и расширен, чтобы использовать преимущества разрешения "Full HD" (1920х1080 пикселей).

Image
XMB в PSP (2004).
Разрешение 480×272.

Image
XMB в PS3 (2006).
Разрешение 1920×1080.

Хотя пользователи PSP найдут много знакомого, Sony добавила новый набор приложений, использующих потенциал Cell, RSX и привода Blu-ray. Многие из них связаны с мультимедиа (видеоплеер и слайд-шоу изображений), телевидением (приложения для телевидения, такие как BBC iPlayer), социальным профилем (онлайн-аватары) и онлайн-покупками (PlayStation Now, PlayStation Store и другие).

Кроме того, поскольку это домашняя консоль, которая может быть общей для нескольких пользователей, XMB поддерживает множество пользователей, где каждый может использовать свою учетную запись PlayStation Network и хранить отдельные пользовательские данные (купленные игры и сохранения).

Image
Как и в PSP, выбор игры в меню может стилизовать фон, чтобы привлечь ваше внимание!

Image
XMB предоставляет огромное количество настроек. Это особенно полезно тогда, когда вам нужно настроить новый блестящий 1080p ТВ с объёмным 3.1-аудио.

Image
Различные мультимедиа-возможности.

Image
XMB может устанавливать игры, обновления и дополнения (DLC) с помощью встроенного инсталлятора.

Интерфейс XrossMediaBar (XMB) PlayStation 3

Наконец, добавление жесткого диска - это облегчение для ветеранов, которые в прошлом были вынуждены покупать дорогие проприетарные накопители (Memory Stick Pro Duo), когда у них заканчивалось место.

Одолжи мне свою PS3

Впечатляет то, что не все приложения, поставляемые в комплекте с этой консолью, преследовали корыстные цели. С появлением распределенных вычислений и возможностей Cell для проектов по изучению данных Стэнфордский университет объединил усилия с Sony, чтобы владельцы PlayStation 3 могли внести свой вклад в медицинские исследования. Результатом стало приложение Folding@home.

Folding@home - это приложение, установленное на каждой PlayStation 3, которое, будучи открытым для пользователей, подключалось к центральному серверу и выполняло моделирование белков. Кроме того, приложению было разрешено работать в фоновом режиме в непиковое время.

Image
Folding@Home отображает работу, выполненную с момента запуска приложения .

В течение всего времени работы Folding@home объединенные вычислительные мощности 15 миллионов пользователей PS3 по всему миру помогали в исследованиях, направленных на лечение болезни Альцгеймера . В конце концов, Folding@home и Sony убрали приложение в 2012 году, а первое продолжает жить на других платформах.

Это мое личное мнение, но мне нравится читать о проектах, которые вносят глобальный вклад, используя возможности распределенных вычислений, в отличие от бесконечных сенсационных статей о майнинге криптовалюты. Думаю, не стоит забывать, что с каждой новой мощной технологией всегда будут разрабатываться бескорыстные приложения для неё.

Несколько ОС

Когда IBM описывала Cell на уровне ПО, они упомянули, что Cell способен работать с несколькими ОС одновременно, благодаря множеству исполняющих ядер Cell . Таким образом, Sony взяла эту идею на вооружение и добавила в XMB опцию, позволяющую установить вторую ОС . Эта функция получила название OtherOS, и она, в двух словах, предоставляла собой менеджер разделов (XMB просто направляет пользователя для изменения размера раздела GameOS и выделения нового места для второй ОС) и кнопку для загрузки со второй ОС (благодаря загрузочным файлам OtherOS, уже установленным во флэш-памяти). Таким образом, пользователю просто нужно заполнить новый раздел системой. Следовательно, многие дистрибутивы Linux (например, Ubuntu и Fedora) добавили PS3 в качестве еще одной возможной платформы для установки. Вы можете считать это духовным преемником Linux for PS2.

Image
Red Ribbon GNU/Linux - это дистрибутив, предназначенный исключительно для PS3/Cell и скомпилированный с использованием PPC64 .

Благодаря OtherOS опытные пользователи имели возможность разрабатывать хоумбрю-приложения, работающие на Cell без лицензионных ограничений. Это было особенно интересно для исследовательских/научных целей , так как эта консоль имела более доступную цену, чем мейнфрейм. Для мультимедийных целей привод Blu-ray и карт-ридер также были доступны в OtherOS.

С другой стороны, хоть привилегии OtherOS и могут превосходить привилегии GameOS (на уровне ядра), они не превосходят гипервизор, который все ещё находится в памяти. Таким образом, любой аппаратный доступ из OtherOS по-прежнему зависит от воли гипервизора Sony. Так получилось, что последний блокирует доступ к командным буферам RSX (препятствуя использованию шейдерных блоков и прочих компонентов для ускорения графических операций). Следовательно, в результате дистрибутив Linux прибегает к программному рендерингу (вся графика рисуется через Cell), а затем передает кадровый буфер в RSX для отображения. Разочаровывает, что OtherOS не может использовать все возможности этой консоли. Вероятно, это было сделано для уменьшения поверхности атаки. По иронии судьбы, использование Cell в OtherOS похоже на то, как IBM/Toshiba/Sony, возможно, изначально представляли себе PS3!

Разделив судьбу Folding@home, OtherOS в конечном итоге была удалена в последующем обновлении, но по другим причинам (в основном связанным с безопасностью). Вскоре после этого OtherOS была неофициально восстановлена благодаря программным эксплойтам и усилиям по обратной разработке. В настоящее время OtherOS доступна, если пользователь устанавливает кастомную прошивку. Подробнее об этом я рассказываю в разделе "Борьба с пиратством и хоумбрю".

На момент написания этой статьи разработчик Рене Ребе реализует надлежащие драйверы xf86, которые используют преимущества ускорения, обеспечиваемого RSX и его 256 МБ памяти . Его работа сочетается с другими разработками, которые устранили ограничения, наложенные гипервизором (первоначально благодаря обнаружению программных эксплойтов, а затем с использованием кастомной прошивки, последняя более подробно описана в разделе "Борьба с пиратством и хоумбрю"). Г-н Ребе публикует свои успехи на своем YouTube-канале и полагается на добровольные пожертвования для продолжения своей работы .

Обновляемость

В заключительной части этого длинного раздела поговорим о возможностях обновления GameOS.

В двух словах, как и в случае с PSP, Sony распространяла файлы PS3UPDAT.PUP, в которые упакованы все новые двоичные файлы ОС. Из-за системы безопасности консоли, только те файлы, которые не защищены уникальными ключами консоли и хранятся на перезаписываемых носителях (флэш-память, жесткий диск, eMMC), могут быть обновлены. Остальные файлы должны оставаться как есть.

Файлы PUP распространялись через официальный сайт Sony, помощника по обновлению XMB или находились в содержимом диска с игрой (все игры содержат файл PUP, отражающий версию SDK, для которой они разработаны). Поскольку модели с флэш-памятью NAND содержат всего 256 МБ и хранят там всю ОС, Sony никогда не выпускала файлы обновлений размером более 256 МБ.


Previous: 6. Ввод/вывод и обратная совместимость

Next: 8. Игры


Rodrigo Copetti © 2026 RSS Feed

Переключиться на современную версию

Домашняя страница · Статьи · Поддержка · Об авторе · О сайте