→ Часть 1: Cell
→ Часть 2: RSX
→ Часть 3: Три "ОС"
→ Часть 4: Борьба с пиратством
Примечание переводчика:
В данной части описывается устройство обратной совместимости от PlayStation 2, операционной системой самой PS3, а также возможность OtherOS для установки второй операционной системы. Из-за этого в названии и появилось три "ОС" :)
Приятного чтения!
5. Ввод/вывод и обратная совместимость
Все операции ввода/вывода делегированы другому большому чипу, южному мосту (Southbridge) [36]. Это очень похоже на архитектуру, принятую в своё время ещё в первом Xbox. Похоже, что разрыв в архитектурах между консолями становится все ýже, или, может быть, этот подход оказался очень надежным, и он не зависит от архитектуры. Как говорится, решайте сами.
Как и IOP в PS2, южный мост полностью проприетарный, и на этот раз он изготовлен Toshiba (они назвали его “Super Companion Chip” [37]). Хоть он и по-прежнему остается малоизвестным куском кремния, но он выполняет превосходную работу по объединению множества интерфейсов и протоколов, как внешних (будь то USB, Ethernet и прочее), так и внутренних (SATA).
Для справки, в прошлом низкая тактовая частота IOP создавала узкое место для быстрых интерфейсов, таких как ATA и Ethernet, значительно снижая их полную пропускную способность. Кроме того, в южный мост добавили алгоритмы шифрования, чтобы беспрепятственно защитить между стандартными протоколами обмен данными, такими как данные жесткого диска.
В целом, Southbridge встраивает огромное количество интерфейсов. Это связано с тем, что эта консоль была разработана во время тренда на "мультимедийные комбайны". Недостаточно, чтобы игровые консоли запускали только игры. Они также должны быть плеерами DVD и Blu-ray, ресиверами ТВ (частично), средствами для просмотра фотографий (импортируя фото с камеры через карт-ридер) и, возможно, ещё большим по мере развития потребностей (благодаря своей обновляемой ОС).
5.1. Внешние интерфейсы
В случае с доступными портами для пользователя, к южному мосту подключены:
Хаб USB 2.0: обеспечивает четыре передних порта USB A. Они могут быть использованы для аксессуаров и для соединения или зарядки контроллеров.
Интерфейс Serial ATA (SATA): соединяет привод Blu-ray и жесткий диск 2.5".
До 2008 года приводы Blu-ray взаимодействовали с Parallel АТА [38], поэтому был установлен промежуточный чип для преобразования из SATA в PATA.
Контроллер Gigabit Ethernet 1000/100/10: в виде разъема RJ45 сзади. К контроллеру была подключена плата для Wi-Fi 802.11 b/g и Bluetooth 2.0.
Карт-ридеры: имелись порты для карт Memory Stick, SD, MultiMediaCard (MMC), Microdrive и Compact Flash.
5.1.1. Беспроводное оборудование
Благодаря широкому внедрению технологии Bluetooth проводное управление теперь ушло в прошлое. Новая форма контроллера Dualshock 2 от PS2 теперь называется Sixaxis.
Хоть это и не радикальное изменение, на которое решились другие, но в нём есть гироскоп для новых типов человеческого ввода. Однако это произошло за счет отказа от тактильной обратной связи (вибрации). Год спустя Sony удивила игроков контроллером Dualshock 3, в который вернулся тактильный мотор.
Также теперь вы можете включить консоль с помощью беспроводного контроллера.
5.2. Внутренние интерфейсы
Что касается внутренних компонентов, то южный мост соединяет:
Starship 2: адаптер для двух чипов флэш-памяти NAND объемом в 128 МБ. За кулисами Starship соединяет локальную шину южного моста со стандартизированным протоколом “Common Flash Interface Protocol” (широко распространенным для взаимодействия с флэш-памятью) [39]. Помимо прочего, в чипах хранится операционная система PS3.
Чипсет PlayStation 2: в углу материнской платы находится привлекающий внимание чип, в котором объединены и Emotion Engine, и Graphics Synthesizer. Комбо EE+GS подключается к 32 МБ памяти RDRAM и мосту ввода-вывода, ("мост PS2”). Всё это вместе составляет примерно 90% оригинальной PlayStation 2.
Чип EE+GS посылает видеосигнал непосредственно в RSX.
Эти чипы недоступны разработчикам, они используются только для обратной совместимости!
5.2.1. Обратная совместимость
Упомянув чипы PS2, полагаю, что это мой намек на то, чтобы надо поговорить об обратной совместимости PlayStation 3 раз и навсегда. Для начала, позвольте мне рассказать то, как обычно работает обратная совместимость: консоли могут либо играть в игры своих предшественников с помощью программного или аппаратного обеспечения:
Программный путь | Аппаратный путь |
ПО инструктирует существующему оборудованию консоли вести себя так, как ожидала бы старая игра на предыдущей консоли. | Существующее в консоли оборудование обеспечивает полную или частичную обратную совместимость |
Были добавлены дополнительные чипы для воссоздания старой системы на новой материнской плате |
При той вычислительной мощности, которую демонстрирует PS3, можно было бы ожидать, что Sony выпустит эмулятор PS2, работающий в Cell и ускоренный RSX. Ну, по какой-то причине этого не произошло. Вместо этого Sony установила чипсет PS2 в одном углу материнской платы.
С другой стороны, отсутствующие, но не столь критичные чипы (IOP, SPU и прочее) эмулируются с помощью Cell. В случае игровых сохранений изначально пользователям приходилось приобретать адаптер карты памяти. Но после выхода нового обновления ПО карты памяти теперь эмулируются как образы дисков, хранящиеся на жестком диске, а Magic Gate (система шифрования) обрабатывается одним SPU.
Поскольку Cell и RSX все ещё “включены” во время игры на PS2, то система предлагает два метода масштабирования для увеличения площади экрана во время геймплея: метод “ближайших соседей” и “антиалиасинг” (antialiasing).
В общем, благодаря данным решениям, PS3 запускает игры PS2 с впечатляющей совместимостью. Вдобавок ко всему, вы можете воспользоваться новыми функциями консоли (беспроводное управление, интерфейс HDMI, отсутствие карт памяти).
Как будто этого было мало, игры от PS1 также могут запускаться. Для этого не требуется встроенного SoC или GPU (всё работает через чистую программную эмуляцию), будь то с помощью версии из онлайн-магазина или оригинального диска (отсюда можно сделать вывод, что оптический привод PS3, помимо Blu-ray, поддерживает также чтение CD и DVD дисков. - прим. переводчика).
5.2.2. Странная смена курса
Sony на протяжении всего жизненного цикла консоли медленно убирала чипы для PS2 из материнской платы PS3. В итоге обратная совместимость была реализована только через программную эмуляцию (со многими ограничениями, такими как запуск PS2 игр, купленных только через их онлайн-магазин).
Поскольку Sony так и не заменила чипсет PS2 (как это было раньше с железом PS1 в PS2), то это заставляет задуматься о техническом и исполнительном обосновании этого. Что ж, в качестве примера, вот мое краткое мнение о причинах этого:
Сроки: Sony, скорее всего, рассчитывала, что владельцы PS2 приобретут новинку в качестве замены своей консоли, так как это более доступно для потребителей (они могут продать свою старую систему). Однако по какой-то причине у Sony не было готового программного эмулятора к дню выпуска, поэтому вначале они прибегли к добавлению дополнительных чипов. Позже, по мере того как программная эмуляция удовлетворительно развивалась, они постепенно удаляли чипы в последующих ревизиях.
В дополнение к этому разработчик ‘M4j0r’ прокомментировал:
Интересным моментом может быть то, что Sony разработала одновременно две ревизии аппаратной эмуляции (EE/GS и только GS). Полагаю, это потому что некоторые игры работают лучше в зависимости от того, какую из ревизий вы используете [40].
Стоимость: Начальная цена первой ревизии консоли, которая была совместима с PS2 (CECHA, только в Японии и США), в 2006 году составляла без налогов $599,99 или ¥60,000 соответственно (£425 с учётом инфляции 2020 года) [41]. В следующей модели (CECHC, поставлялась в 2007 году по всему миру) были удалены Emotion Engine и чипы RDRAM (эти задачи были переложены на программную эмуляцию). Она была выпущена в Великобритании по цене £425 (£603 в деньгах 2020 года). Позже в том же году Sony выпустила новую модель (CECHG) без каких-либо чипов от PS2 дешевле на £126 [42]. Все это доказывает, что обратная совместимость, в конечном счете, является дорогой функцией.
Простаивающее оборудование и нерациональное использование энергии: хоть Cell и RSX по-прежнему выполняют некоторые задачи по воссозданию оригинальной среды, но эти задачи минимальны по сравнению с их полным потенциалом. В сочетании с тем, что суммарное энергопотребление моделей CECHA составляет 399 Вт [43], это заставляет задуматься, стоит ли эта конструкция такого энергопотребления, не говоря уже об эффективности (для сравнения, новый блок питания CECHG потребляет 285 Вт).
Я понимаю, что в снижении энергопотребления участвуют и другие факторы, например, новые ревизии Cell и RSX. Однако я по-прежнему считаю, что чипсет PS2 играет здесь важную роль.
Негибкость: Чип EE+GS нельзя перепрограммировать, означая, что конечный результат всегда будет одинаковым, независимо от наличия глюков или возможных улучшений. Если сравнивать с графическими улучшениями эмулятора PCSX2 [44] и его возможностями моддинга [45], то это показывает нам, что такие улучшения не только возможны, но и приветствуются.
Лично я считаю, что чистая программная эмуляция является наиболее приемлемым вариантом в долгосрочной перспективе благодаря её масштабируемости, настройке и независимости от проприетарного оборудования. Но как показывает текущая разработка PCSX2 сообществом добровольцев, это требует больше усилий для точной реализации (обратите внимание, что вышеупомянутый эмулятор работает только на ПК с x86).
5.2.3. Поздняя совместимость
Мы ещё не закончили говорить о совместимости! Возможно, вас удивит тот факт, что Sony также позволила пользователям запускать подмножество игр от Playstation Portable. Но эмуляция осуществлялась полностью с помощью ПО, как и совместимость PS2 в более поздних моделях.
Поскольку PS3 не может читать UMD диски, то пользователи должны получить доступ к каталогу игр из интернет-магазина Sony, чтобы загрузить и установить любую игру для PSP.
6. Операционная система
Теперь, когда домашние консоли стали мощными мультимедийными центрами, то нужна более сложная операционная система (ОС), чтобы предоставить пользователям с более толстым слоем абстракции больше сервисов и игр при сохранении безопасности и производительности на должном уровне.
Следовательно, такие термины, как shell (оболочка) или BIOS больше не используются для описания этой области, не потому что они больше не существуют, а потому что они описывают небольшую часть новой системы. В настоящее время общим термином является “операционная система”, которая включает в себя множество областей (загрузчик, ядро, пользовательский интерфейс), анализируемых отдельно. Как всегда, я рекомендую сначала ознакомиться с ОС PSP, поскольку её модульная конструкция - повторяющийся ингредиент PS3.
6.1. Привилегированная безопасность Cell
Прежде чем мы погрузимся в детали, я должен упомянуть о различных режимах работы Cell. Сначала я планировал описать это в разделе “Процессор” (часть 1), но он получился невероятно плотным. Поэтому я расскажу об режимах работы здесь, где вы сразу же увидите их на практике. Кроме того, они влияют на дизайн любой операционной системы, работающей на Cell - не только той, которую Sony разработала для своей консоли.
Тем не менее, для защиты от несанкционированного доступа к конфиденциальным данным и/или ресурсам, Cell реализует уровни привилегий, унаследованных от спецификации PowerPC. Другими словами, Cell выполняет программы в двух режимах:
Привилегированный режим: Cell предоставляет полный доступ к своим внутренностям (регистры, адреса памяти, опкоды и прочее) [46]. По соображениям безопасности этот режим должен использоваться только ядром ОС.
Более того, Cell также был подготовлен к одновременному запуску нескольких ОС. Для достижения этого на аппаратном уровне “режим привилегий” может быть дополнительно разделен на Привилегию 1 и 2.
"Привилегия 1" используется гипервизором, который осуществляет арбитраж ресурсов между различными ядрами, работающими одновременно.
"Привилегия 2" предназначена для использования ядром.
Функциональность “гипервизора” также превратилась в область исследований в штаб-квартире IBM [47] [48].
Пользовательский режим: Как понятно из названия, Cell предоставляет только ограниченный набор ресурсов [49]. Этот режим предназначен для обычных приложений, работающих в ОС. Если по какой-либо причине программа запрашивает доступ к защищенному месту, то выполнение переходит к ядру или гипервизору, чтобы запросить, следует ли предоставлять доступ или нет.
Кроме того, блоки SPE содержат специальный режим работы - изолированный режим. Этот режим защищает процесс выполнения внутри SPU, так что никакие внешние блоки (PPE или другие SPE) не смогут получить к нему доступ до завершения работы SPU. Эта функция может быть активирована после загрузки программы в любом SPE и гарантирует, что в процессор не вмешаются во время выполнения важного кода (например, процедуры шифрования).
Операционная система Sony, которую я собираюсь описать в следующих параграфах, использует все описанные режимы для обеспечения безопасности.
6.2. Общие сведения
Как я уже говорил ранее, ОС довольно комплексная. Чтобы без проблем следовать этому разделу, мы можем разделить типы файлов, которые мы найдем в ОС этой консоли, на различные уровни:
Загрузчики (loaders): короче говоря, программы или бинарные файлы в этой консоли систематически шифруются. Поэтому “загрузчики” - это программы, которые выполняют “настоящие” программы. Говоря иначе, загрузчики получают двоичные файлы, расшифровывают их, проверяют их подлинность и, наконец, отправляют их в соответствующий процессор (PPE или SPE) на выполнение. Если это не показалось сложным, то загрузчики соединяются в цепочку, чтобы ещё больше защитить ПО. Наконец, загрузчики встречаются на многих носителях.
Некоторые загрузчики обновляются Sony (через обновления ПО), в то время как другие не могут быть изменены. Это не зависит от того, установлены ли они в перезаписываемое хранилище или нет. Поскольку некоторые загрузчики зашифрованы специфическими для каждой консоли ключами, то их нельзя изменить после того, как консоль покинет завод (по крайней мере, традиционными средствами).
Системные файлы: они содержат низкоуровневые двоичные файлы (выполняемые через загрузчики), метаданные для организации аппаратного обеспечения, утилиты и другие ассеты (assets) (шрифты и изображения). Как и загрузчики, для каждой консоли есть свои системные файлы, которые не могут быть заменены или сгенерированы автоматически.
Некоторые двоичные файлы заимствовали код из проектов FreeBSD и NetBSD [50].
Контент пользователей: это файлы конфигурации, данные, используемые играми, и данные, автоматически генерируемые консолью (это могут быть настройки Интернета, файлы установки игр, сохранения, информация о жестком диске).
В отличие от других слоев, уничтожение этих данных не приводит к катастрофическим последствиям.
6.3. Иерархия безопасности ОС
В целом, ОС для PS3 разработана с использованием того же модульного подхода, что и в PSP. Если вспомнить предыдущую статью, то ОС состоит из множества модулей. Они могут обслуживать пользователей (игра или приложение) или находиться в памяти неопределенное время для обслуживания других модулей (в виде системных вызовов и/или драйверов). Некоторые модули имеют больше привилегий, чем другие (модуль ядра против модуля пользователя).
ОС на протяжении своего жизненного цикла будет обращаться ко многим модулям, некоторые из них будут обладать большими привилегиями, чем другие. Sony создала свою ОС таким образом, чтобы модули работали под тремя уровнями привилегий Cell:
Уровень 1: там находится гипервизор, запрограммированный Sony. Эта программа, также известная как
lv1
, - дверь к каждому биту этой консоли, и она связана с исключениями, вызываемыми MMU. При этом гипервизор принимает запросы только от программ, авторизованных Sony (находящихся на следующем уровне привилегий). Хоть и гипервизор находится в памяти, он также обеспечивает низкоуровневые системные вызовы и поддержку файловой системы FAT16.Уровень 2: естественно, зарезервирован для ядра, привилегированной программы, также известной как
lv2
или “супервизор”. Ядро абстрагирует гипервизор, поэтому программы третьего уровня не имеют прямого доступа с нему. Ядро предоставляет функции многопоточности для PPU и SPU. В конечном счете, ядро загружает модули из пользовательского пространства.Уровень 3: на это уровне работают остальные программы, включая игры и визуальная оболочка (пространство пользователя). Эти плебеи подчиняются воле ядра для связи с железом консоли, и они не могут породить новый процесс или программу в одностороннем порядке.
6.4. Носители информации
С учетом всего сказанного выше, где хранятся все эти данные? С точки зрения обычного пользователя, есть только два видимых средства: диски Blu-ray для игр и жесткий диск для сохранений. Есть еще несколько, и сейчас мы рассмотрим каждый из них!
6.4.1. Cell BootROM
Оказывается, что производители спрятали внутри Cell маленький ROM, в котором хранится “защищенный” загрузчик (boot-loader). IBM дает это пространство, чтобы избавить любую компанию (не только Sony) от необходимости вручную применять обфускацию для защиты своего загрузочного кода, поскольку готовые компоненты не всегда готовы к конкретным потребностям.
Поскольку эта часть уже физически защищена обфускацией, её не нужно шифровать. Таким образом, он идеально подходит для первоначального загрузчика (first-stage boot-loader) (который не может быть зашифрован), и PlayStation 3 хранит свой ранний этап загрузки именно там.
6.4.2. Флеш-память NAND или NOR
Помните о тех 256 МБ флэш-памяти NAND, о которых я кратко упоминал ранее? Здесь находится бóльшая часть операционной системы. Так было до тех пор, пока в конце 2007 года Sony не выпустила модель CECHH, заменив 256 МБ NAND на ничтожные 16 МБ NOR. Как следствие, некоторые файлы пришлось перенести в другое место. Для простоты давайте сначала посмотрим, что хранят эти чипы [51]:
Загрузчики, специфичные для консоли: в частности, два загрузчика
bootldr
иmetldr
. Эти файлы зашифрованы ключом, зашитым во время производства, и поэтому их невозможно заменить!Как бы то ни было, в гипервизоре Sony есть скрытые функции, позволяющие обновить их. Однако, по какой-то причине они никогда не использовались [52].
CoreOS: первая половина операционной системы. В основном она состоит из дополнительных загрузчиков, которые продолжат процесс загрузки и в конечном итоге загрузят вторую половину ОС (GameOS). CoreOS дает доступ к меню восстановления (Recovery Menu), альтернативной оболочке, содержащую утилиты обслуживания, которые пользователи могут использовать для (попытки) ремонта своей консоли.
Уникальные ID: подобно IDStorage в PSP, они используются консолью для управления защищенным оборудованием, таким как привод Blu-ray; или компанией Sony для аутентификации консоли на своих онлайн-серверах (ключ IDPS).
Элементы безопасности: некоторые программы зависят от них для выполнения операций безопасности. Например, фильмы Blu-ray с DRM проверяют блок под названием Virtual Table Rights Management (VTRM). Sony также хранит специальные инструменты и записи для внесения в черный список сертификатов безопасности, которые были скомпрометированы в прошлом.
Из-за большего объема флэш-памяти NAND такие модели также хранят оставшуюся часть ОС (GameOS или devflash
). Сюда входит:
Визуальная оболочка (Visual Shell, VSH): продолжение фирменного интерфейса PSP, которое также включает в себя кучу модулей (плагинов) и ассетов.
Эмуляторы: вышеупомянутые программы, позволяющие PS3 запускать игры от PS1, PS2 или PSP. Конкретный загружаемый эмулятор PS2 зависит от ревизии консоли (имеет ли она полное железо PS2, частичное или вообще не использует железо предыдущей консоли).
Библиотеки среды выполнения: программы, разработанные с помощью SDK от Sony, динамически связываются с набором библиотек, которые хранятся в этой части.
Проигрыватель Blu-ray: программы, обеспечивающие взаимодействие с приводом Blu-ray и декодирование фильмов.
Системные ассеты: например, это шрифты и сертификаты, от которых зависит работа двоичных программ.
Как будто этого было мало, но консоли с NAND также содержат другие данные, такие как xRegistry (коллекция сетевых настроек, учетных записей PlayStation Network и список устройств Bluetooth), ещё больше инструментов и записей для возврата сертификатов; и загрузчик для OtherOS (действительно интересная часть, о которой мы поговорим подробнее в следующих параграфах).
6.4.3. Жесткий диск
Дебютный 2,5-дюймовый жесткий диск объемом от 20 до 500 Гб (по мере выпуска новых версий) обеспечивает постоянное хранение следующих данных:
Пользовательский контент: включая сохранения игр, трофеи и другие данные, связанные с пользователями.
Игровые ассеты: игры могут копировать файлы с оптического диска на жесткий диск, чтобы улучшить время загрузки. ОС рассматривает их как “игровые данные”.
Кэш: отдельный раздел размером 2 ГБ доступен для игр для временного хранения (в случае, если им недостаточно объема основной оперативной памяти).
Системы с NOR, однако, также хранят GameOS на жестком диске. Как следствие, каждый раз, когда пользователь меняет жесткий диск, консоль запрашивает файл обновления для переустановки GameOS на диск. Как бы то ни было, системы ни с NOR, ни с NAND не загружаются без жесткого диска.
Некоторые пользовательские данные можно сохранить с помощью USB-накопителя, а затем при необходимости перенести на другую консоль. Однако этот процесс переформатирует новую консоль перед копированием старых данных.
6.4.4. eMMC
В 2012 году Sony представила обновленную версию консоли под названием “SuperSlim” (кодовое название CECH-4xxx). Они были доступны в трех вариантах: один с жестким диском на 250 ГБ, другой - на 500 ГБ или третий вариант с внутренней флэш-памятью eMMC на 12 ГБ. Первые два варианта следуют схеме файловой системы, реализованной в моделях с NOR. Третий вариант хранит все в eMMC (включая данные пользователей) и следует схеме с NAND для хранения системных файлов.
Однако в моделях с eMMC есть одна загвоздка. Вместо чипа NOR компания Sony установила чип Panasonic "MN66840", который, согласно PS3 Dev Wiki [53], перенаправляет шину NOR на eMMC. Я предполагаю, что это просто трюк для экономии средств, так как он использует один и тот же южный мост из других вариантов.
Довольно любопытно, что если пользователь решит установить жесткий диск в модель eMMC, консоль перенесет все пользовательские данные с памяти eMMC на новый жесткий диск. Как следствие, пользователь может полностью использовать жесткий диск, хотя пустое место в eMMC теперь остается незанятым.
6.5. Процесс загрузки
Итак, используя все предыдущие знания, вы узнаете, как загружается система. И это довольно сложный процесс, скажу я вам. Причина проста: Sony не хочет, чтобы вы возились с их железом или ПО. Поэтому они создали множество уровней обфускации и шифрования, чтобы помешать вам взломать систему и загрузить свой собственный код (и, возможно, отказаться от этой затеи и продолжать покупать игры / фильмы / прочее медиа). Но, как покажет история, произошло совершенно обратное.
В следующем разделе я опишу, что делает эта консоль после нажатия кнопки питания. Обратите внимание, что этот процесс радикально изменился только один раз (после того, как хакеры взломали его). Итак, для простоты мы начнем с “оригинального” процесса загрузки (реализованного до версии системы 3.60
)[54][55][56]:
Отдельный чип на материнской плате (Syscon) активируется и выполняет инструкции из внутреннего ROM. Потом он отправляет “кольцо конфигурации” в Cell через SPI (последовательное соединение), которое инициализирует процессор и деактивирует восемь SPU. Затем, он переключает линию питания и дает жизнь Cell.
Вектор сброса PPU в Cell указывает на его скрытый ROM, в котором хранятся процедуры поиска и расшифровки
bootldr
из флэш-памяти. Потом расшифрованный фрагмент загружается блок SPU в режиме изоляции.Теперь изолированный SPU, загрузив
bootldr
, инициализирует часть аппаратного обеспечения (память XDR и интерфейсы ввода-вывода), расшифровывает двоичный файлlv0
и дает команду PPU запустить его.PPU, теперь выполняющий
lv0
, расшифровываетmetldr
(загрузчик, специфичный для консоли) и посылает его SPU2, снова в режиме изоляции (счёт блоков начинается с "0", следовательно, SPU2 - третий SPU).SPU2, теперь выполняющий
metldr
, последовательно выполняет ещё пять загрузчиков:lvl1dr
расшифровывает и загружаетlv1
, который содержит гипервизор, занимающий первый уровень привилегий. Кроме того,lv1
настраивает жесткий диск, привод Blu-ray и RSX.lv2ldr
расшифровывает и загружаетlv2
, который содержит ядро и работает поверх гипервизора. Также он завершает инициализацию RSX, эмуляции PS2, Bluetooth, контроллера USB и карт-ридер.appldr
расшифровывает и загружаетvsh
(визуальную оболочку) и другие зависимости.vsh
позже позволит пользователю загрузить игру.isoldr
расшифровывает и загружает модули, которые будут работать в третьем SPU в изолированном модуле. Эти модули критически важны для безопасности и выполняют множество криптографических функций на протяжении всего жизненного цикла консоли. Следовательно, третий SPU зарезервирован для функций безопасности, и игры не могут его использовать (для игр остается только шесть SPU).
PPU, загрузив vsh
, предоставляет пользователю управление через графический интерфейс пользователя, который проявляется знаковым оркестровым звуком запуска, за которым следует меню XMB.
6.5.1. Измененный процесс загрузки
В марте 2011 года хакер "GeoHot" взломал защиту metldr
, тем самым нарушив подлинность последующих загрузчиков. После этого Sony нанесла ответный удар, выпустив обновления безопасности в своем оборудовании и ПО. Эти исправления более подробно описаны в разделе "Борьба с пиратством" (часть 4).
6.6. Визуальная оболочка
Успели устать от всей этой теории? Что-ж, позвольте мне переключиться на то, что на самом деле может увидеть каждый: Визуальная оболочка.
XrossMediaBar (XMB) - это новый пользовательский интерфейс, получивший международное признание за два года до этого. Он был слегка адаптирован, чтобы с ним можно было взаимодействовать с дивана (так называемый "10-футовый интерфейс"), и был расширен, чтобы использовать преимущества разрешения "Full HD" (1920х1080 пикселей).
Хоть пользователи PSP и найдут много что знакомого, но Sony добавила новый набор приложений, использующих потенциал Cell, RSX и привода Blu-ray.
Многие из них связаны с мультимедиа (видеоплеер и слайд-шоу изображений), телевидением (приложения для телевидения, такие как BBC iPlayer), социальным профилем (онлайн-аватары) и онлайн-покупками (PlayStation Now, PlayStation Store и другие).
Кроме того, поскольку это домашняя консоль, которая может быть общей для нескольких пользователей, XMB поддерживает множество пользователей, где каждый может использовать свою учетную запись PlayStation Network и хранить отдельные пользовательские данные (купленные игры и сохранения).
Скриншоты интерфейса XMB
Наконец, добавление жесткого диска - это облегчение для ветеранов, которые в прошлом были вынуждены покупать дорогие проприетарные накопители (Memory Stick Pro Duo), когда у них заканчивалось место.
6.6.1. Одолжи мне свою PS3
Впечатляет то, что не все приложения, поставляемые в комплекте с этой консолью, преследовали потребительские цели. С появлением распределенных вычислений и возможностей Cell для проектов по изучению данных Стэнфордский университет объединил усилия с Sony, чтобы владельцы PlayStation 3 могли внести свой вклад в медицинские исследования. Результатом стало приложение Folding@home.
Folding@home - это приложение, установленное на каждой Playstation 3, которое, будучи открытым для пользователей, подключалось к центральному серверу и выполняло моделирование белков [57]. Кроме того, приложению было разрешено работать в фоновом режиме в непиковое время.
В течение всего времени работы Folding@home объединенные вычислительные мощности 15 миллионов пользователей PS3 по всему миру помогали в исследованиях, направленных на лечение болезни Альцгеймера [58]. Однако, Folding@home и Sony убрали приложение в 2012 году, а само приложение продолжает жить на других платформах.
Это мое личное мнение, но мне нравится читать о проектах, которые вносят глобальный вклад, используя возможности распределенных вычислений, в отличие от бесконечных сенсационных статей о майнинге криптовалюты. Думаю, не стоит забывать, что с каждой новой мощной технологией всегда будут разрабатываться бескорыстные приложения для неё.
6.7. Несколько ОС
Когда IBM описывала Cell на уровне ПО, они упомянули, что процессор способен работать с несколькими ОС одновременно, благодаря множеству исполняющих ядер [59]. Таким образом, Sony взяла эту идею на вооружение и добавила в XMB опцию, позволяющую установить вторую ОС [60]. Эта функция получила название OtherOS.
Функция, в двух словах, предоставляет собой менеджер разделов (XMB просто направляет пользователя для изменения размера раздела GameOS и выделения нового места для второй ОС) и кнопку для загрузки со второй ОС (благодаря загрузочным файлам OtherOS, уже установленным во флэш-памяти). Таким образом, пользователю просто нужно заполнить новый раздел системой. Многие дистрибутивы Linux (например, Ubuntu и Fedora) добавили PS3 в качестве еще одной возможной платформы для установки. Считайте это духовным преемником Linux for PS2.
Благодаря OtherOS опытные пользователи имели возможность разрабатывать хоумбрю-приложения (самодельные энтузиастами приложения), работающие на Cell без лицензионных ограничений. Это было особенно интересно для исследовательских и научных целей [62][63], так как эта консоль имела более доступную цену, чем мейнфрейм. Для мультимедийных целей в OtherOS также были доступны привод Blu-ray и карт-ридер.
С другой стороны, хоть привилегии OtherOS и могут превосходить привилегии GameOS (на уровне ядра), они не превосходят гипервизор, который все ещё находится в памяти. Таким образом, любой аппаратный доступ из OtherOS по-прежнему зависит от воли гипервизора Sony.
Так получилось, что гипервизор блокирует доступ к командным буферам RSX (препятствуя использованию шейдерных блоков и прочих компонентов для ускорения графических операций). Следовательно, в результате дистрибутив Linux прибегает к программному рендерингу (вся графика рисуется через Cell), а затем передает кадровый буфер в RSX для отображения. Разочаровывает то, что OtherOS не может использовать все возможности этой консоли. Вероятно, это было сделано для уменьшения поверхности атаки. По иронии судьбы, использование Cell в OtherOS похоже на то, как IBM/Toshiba/Sony, возможно, изначально представляли себе PS3!
Разделив судьбу Folding@home, OtherOS в конечном итоге была удалена в последующем обновлении, но по другим причинам (в основном, связанных с безопасностью). Вскоре после этого OtherOS была неофициально восстановлена благодаря программным эксплойтам и усилиям по обратной разработке.
В настоящее время OtherOS доступна, если пользователь устанавливает кастомную прошивку. Подробнее об этом я рассказываю в разделе "Борьба с пиратством и хоумбрю" (часть 4).
На момент написания этой статьи разработчик Ренé Ребе реализует надлежащие драйверы xf86, которые используют преимущества ускорения, обеспечиваемого RSX и его 256 МБ памяти [64]. Его работа сочетается с другими разработками, которые устранили ограничения, наложенные гипервизором (первоначально благодаря обнаружению программных эксплойтов, а затем с использованием кастомной прошивки). Мистер Ребе публикует свои успехи на своем YouTube-канале и полагается на добровольные пожертвования для продолжения своей работы [65].
6.8. Обновляемость
В заключительной части этого длинного раздела поговорим о возможностях обновления GameOS.
В двух словах, как и в случае с PSP, Sony распространяла файлы PS3UPDAT.PUP
, в которые упакованы все новые двоичные файлы ОС. Из-за системы безопасности консоли могут быть обновлены только те файлы, которые не были защищены уникальными ключами консоли и хранятся на перезаписываемых носителях (флэш-память, жесткий диск, eMMC). Остальные файлы должны оставаться как есть.
Файлы PUP распространялись через официальный сайт Sony, помощника по обновлению XMB или находились в содержимом диска с игрой (все игры содержат файл PUP, отражающий версию SDK, для которой они разработаны). Поскольку модели с флэш-памятью NAND содержат всего 256 МБ и хранят там всю ОС, Sony никогда не выпускала файлы обновлений размером более 256 МБ.
Источники
Ввод / вывод:
Euss et al., South Bridge. PS3 Developer Wiki. ↩︎
Toshiba, Toshiba Announces Cell Chip Set and Cell Reference Set. ↩︎
PS3 Developer Wiki Contributors, Starship2. PS3 Developer Wiki. ↩︎
Euss, Bluray Drive Revisions. PS3 Developer Wiki. ↩︎
Steve Boxer, PS3 launch price is no fun for UK gamers. The Guardian. ↩︎
Rob Burman, Official: 40GB PS3 and UK Price Cut. IGN. ↩︎
Euss and Sandungas, PSU Model @ SKU compatiblity. PS3 Developer Wiki. ↩︎
P3FES Modding Community, Persona 3 FES - Mods & Resources. ↩︎
Asmodean, PCSX2 - Widescreen Game Patches. ↩︎
Sandungas Et al., PS2 Emulation. PS3 Developer Wiki. ↩︎
Операционная система:
playstation.com, Open Platform for PLAYSTATION 3. Archived. ↩︎
Barcelona Supercomputing Center, Linux on Cell BE-based Systems. Archived. ↩︎
IBM TJ Watson Research Center, The Research Hypervisor - A Multi-Platform, Multi-Purpose Research Hypervisor. Archived. ↩︎
IBM Research, sHype - Secure Hypervisor. ↩︎
dodgykebaab, Folding at Home PS3 - A Final Look. Youtube. ↩︎
Sony Interactive Entertainment Inc., Open Source Software used in PlayStation®3. ↩︎
Warren Levin, PS3 Hacking (Part 1) - Exploitation. ↩︎
Euss et al., Boot Order. PS3 Developer Wiki. ↩︎
Folding@Home, Folding on the Sony Playstation 3 (PS3). ↩︎
r04drunner, Red Ribbon GNU/Linux for PS3. ↩︎
Bits inside by René Rebe, The next PS3 NVidia RSX accelerated X.org steps. Youtube. ↩︎
René Rebe, Improving PS3 Linux OtherOS⁺⁺ support. GoFundMe. ↩︎
naehrwert, The Exploit. ↩︎
DonKeballs, bguerville, bucanero, sandungas, M4j0r, PlayStation 3 Architecture - A Practical Analysis by Rodrigo Copetti (discussion thread). PSX-Place. ↩︎