Бокс тронулся, господа присяжные заседатели!

На сайте www.xbox365.com имели наглость выложить страничку с нарезкой из утекшей каким-то образом документации к XDK. Что я могу еще сказать — браво! Небольшая страничка проливает свет на многие вещи. Итак:

Ядро, как и предполагалось, основано на ядре W2k (NT5). Все упрощено до предела — множество процессов не поддерживается, только многопоточность, все загружаемые программы, в том числе и игры, исполняются на 0 (системном) уровне привилегий. Одновременно может выполняться только одна программа (процесс). Не будет какого-либо единого пользовательского интерфейса, его предоставляет загруженное в данный момент приложение (игра). Системное программное обеспечение ящика разбито на три уровня:

1. Зашитое в ROM

1.1 HAL (Hardware Abstraction Layer) ядра NT5. Грубо говоря, та часть ядра, которую необходимо переписать с учетом конкретных особенностей железа (платформы).

1.2 Поддержка драйверной модели (driver model). Вероятно, для XBox используется собственная, упрощенная модель. С такими изрядными упрощениями (только один процесс и фиксированная конфигурация) можно позволить себе более компактные и простые драйверы.

1.3 Драйверы:

1.3.1 HDD

1.3.2 DVD

1.4 Файловые системы:

1.4.1 FAT32

1.4.2 UDFS

1.5 Некая поддержка защиты от копирования (copy-protection support).

1.6 Система проверки подлинности сертификатов и подписей (certificate/signature validation).

1.7 Основные сервисы для запуска и исполнения приложений

1.7.1 Загрузчик приложений.

1.7.2 Выделение и освобождение памяти.

1.7.3 Работа с нитями (потоками)

1.7.4 Прочее…

2. Записанная на HDD программа под названием «XBox Dashboard»

Программа хранится на жестком диске и запускается в случае отсутствия в приводе какого-либо диска с программным обеспечением для ящика. Например, в случае наличия там Audio CD или DVD Video, а также при отсутствии диска в приводе вообще. Какие возможности она предоставляет:

2.1 Проигрыватель DVD

2.2 Проигрыватель CD

2.3 Утилиты системной конфигурации ящика

2.4 Утилиты для «онлайн активности» — например мультиплеера и просто серфинга.

2.5 Управление записанными сэйвами игр.

2.6 Обработка ошибок.

2.7 Попадая в Dashboard, пользователь выбирает один из следующих пунктов:

2.7.1 Play

2.7.2 Configure

Можно настроить автоматическое проигрывание Audio CD или DVD Video.

2.7.2.1 Video configuration

2.7.2.2 Audio configuration

2.7.2.3 Parental control

2.7.2.4 Date and time

2.7.3 Go online

2.7.3.1 Lobby browser

2.7.3.2 Lobby favorites

2.7.3.3 High score browser

2.7.3.4 Xbox Zone browser

2.7.3.5 Online sign-up and configuration

2.7.4 Manage games

Можно удалять и просматривать сэйвы, перемещать их между вашим HDD и XBox Zone (специальный интернет-ресурс для владельцев XBox).

3. Поставляемые создателям игр и прочего программного обеспечения библиотеки «XBox Title Libraries»

Собственно говоря, большая часть API и находится в этих библиотеках. Они имеют модульную структуру, и к каждой конкретной программе будут присоединены только необходимые части API. В том числе, там присутствует:

  • Подмножество (!) Microsoft Win32 API
  • Подмножество (!!!) Microsoft DirectX 8.0 API
  • Видеодрайвер
  • Аудиодрайвер
  • USB-драйвер
  • Драйвер модема
  • Драйвер карточки памяти
  • Стек сетевых протоколов: MAC, NDIS, TCP/IP, Winsock

3.1 Win32 API.

Тут создатели ящика еще не определились до конца. Ясно одно, это будет некая выжимка, часть user, часть GDI (только действительно необходимые вещи, причем отмечается, что все, что понадобится, позже добавить недолго), известно также, что там НЕ будет следующих вещей:

3.1.1 Services (в понимании NT)

3.1.2 Plug and play

3.1.3 Проверки на наличие дополнительного оборудования.

3.1.4 Горячего подключения

3.1.5 Всех ненужных драйверов

3.1.6 Управления питанием

3.1.7 Виртуальной памяти (упс… а вот это печально!)

3.1.8 Поддержки многих процессов и многопроцессорности

3.1.9 Файловой системы NTFS



3.2 Графика.

3.2.1 Direct3D будет основным графическим API. Он будет основан на DX8.

3.2.2 Поддерживаются PAL и NTSC стандарты (разрешения то бишь).

3.2.3 Есть поддержка воспроизведения видео (MPEG 1 и 2) но это НЕ DirectShow, а собственный специальный API для XBox.



3.3 Ввод.

3.3.1 Используется USB с собственным конектором.

3.3.2 Реализация поддерживает только устройства, работающие на полной скорости.

3.3.3 Модифицированный DirectInput из DX8 в качестве API. Предполагается, что все устройства управления, производимые MS и третьими фирмами, будут работать только в уже определенных для этого API осях. Все новые оси потребуют от производителей оборудования собственного API.



3.4 Аудио.

3.4.1 Подмножество DirectSound из DX8

3.4.2 Подмножество DirectMusic из DX8

3.4.3 Собственный Streaming API (вместо DirectShow)

3.4.4 Проигрываются следующие форматы:

3.4.4.1 WAV

3.4.4.2 MIDI

3.4.4.3 WMA (умри MP3 :-))

3.4.5 Интерактивная музыка для игр

3.4.6 3D звук (подмножество DirectSound 3D)



3.5 Сеть.

3.5.1 Подмножество DirectPlay из DX8

3.5.2 Поддержка встроенного Ethernet, в том числе работа с xDSL, кабельными модемами и стандартными сетевыми подключениями.

3.5.3 Поддержка дополнительного модема (56 кбит), он подключается через USB.



3.6 Новые, специфичные для XBox API и возможности.

3.6.1 API для публикации рекордов (результатов игр), включая определение общего формата для подобного рода данных и публикации их онлайн

3.6.2 Виртуальная клавиатура для упрощенного ввода текста и параметров

3.6.3 Идентификация пользователей, для сохранения и публикации имени, настроек, статистики и результатов в сети.

3.6.4 Менеджер HDD, для определения параметров использования оного (размеры пространств кэширования и пр.), сохранения данных и управления записанными данными.



Итак, лед тронулся. Очертания айсберга проступают сквозь туман. На повестке дня вопрос, не поздно ли свернуть? И куда?

И чем больше проходит времени, тем меньше шансов успеть сманеврировать. Но, вспомнив Титаник, задаешься вопросом, а надо ли было пытаться повернуть? Лобовое столкновение удержало бы корабль на плаву.

Level 2 complete!

Продолжение следует…




18 января 2001 Г.

, !

, !

www.xbox365.com - XDK. — ! . :

, , W2k (NT5). — , , , , 0 () . (). - , (). :

1. ROM

1.1 HAL (Hardware Abstraction Layer) NT5. , , ().

1.2 (driver model). , XBox , . ( ) .

1.3 :

1.3.1 HDD

1.3.2 DVD

1.4 :

1.4.1 FAT32

1.4.2 UDFS

1.5 (copy-protection support).

1.6 (certificate/signature validation).

1.7

1.7.1 .

1.7.2 .

1.7.3 ()

1.7.4 …

2. HDD «XBox Dashboard»

- . , Audio CD DVD Video, . :

2.1 DVD

2.2 CD

2.3

2.4 « » — .

2.5 .

2.6 .

2.7 Dashboard, :

2.7.1 Play

2.7.2 Configure

Audio CD DVD Video.

2.7.2.1 Video configuration

2.7.2.2 Audio configuration

2.7.2.3 Parental control

2.7.2.4 Date and time

2.7.3 Go online

2.7.3.1 Lobby browser

2.7.3.2 Lobby favorites

2.7.3.3 High score browser

2.7.3.4 Xbox Zone browser

2.7.3.5 Online sign-up and configuration

2.7.4 Manage games

, HDD XBox Zone ( - XBox).

3. «XBox Title Libraries»

, API . , API. , :

  • (!) Microsoft Win32 API
  • (!!!) Microsoft DirectX 8.0 API
  • USB-
  • : MAC, NDIS, TCP/IP, Winsock

3.1 Win32 API.

. , , user, GDI ( , , , , ), , :

3.1.1 Services ( NT)

3.1.2 Plug and play

3.1.3 .

3.1.4

3.1.5

3.1.6

3.1.7 (… !)

3.1.8

3.1.9 NTFS



3.2 .

3.2.1 Direct3D API. DX8.

3.2.2 PAL NTSC ( ).

3.2.3 (MPEG 1 2) DirectShow, API XBox.



3.3 .

3.3.1 USB .

3.3.2 , .

3.3.3 DirectInput DX8 API. , , MS , API . API.



3.4 .

3.4.1 DirectSound DX8

3.4.2 DirectMusic DX8

3.4.3 Streaming API ( DirectShow)

3.4.4 :

3.4.4.1 WAV

3.4.4.2 MIDI

3.4.4.3 WMA ( MP3 :-))

3.4.5

3.4.6 3D ( DirectSound 3D)



3.5 .

3.5.1 DirectPlay DX8

3.5.2 Ethernet, xDSL, .

3.5.3 (56 ), USB.



3.6 , XBox API .

3.6.1 API ( ),

3.6.2

3.6.3 , , , .

3.6.4 HDD, ( .), .



, . . , ? ?

, . , , , ? .

Level 2 complete!