主板上安装了一个4 MB ROM芯片,其中存储了大量用于加载shell菜单(用户可以与之交互)的代码,但它也提供系统调用,以简化I/O访问(游戏依赖于此)。
接通电源后,MIPS R5900和IOP都将从地址0xBFC00000开始(这是所有MIPS CPU的特征复位向量)。 不过,为了处理预期的冲突,存储在该地址(指向BIOS ROM)的相应代码将根据每个CPU的标识符使其在不同的位置分支。
在R5900的情况下,CPU将遵循以下步骤:
- 初始化硬件。
- 从ROM向RAM加载内核。 加载后,内核将为应用程序(主要是游戏)提供一个与硬件交互的抽象层。 此外,它还提供了多线程应用程序接口(合作式和基于优先级的)。
- 内核加载
EELOAD,这是一个内核模块,它反过来引导OSDSYS。 后者是显示开屏动画和shell菜单的程序。
另一方面,IOP将初始化部分硬件,然后加载多个模块,使IOP能够访问该游戏机的硬件。 完成后,IOP 将进入"等待命令"状态。
值得指出的是,模块的使用使索尼可以在不改变IOP的情况下发布PS2的新硬件版本(直到他们改变了IOP),从而在此过程中降低了一些生产成本。
交互界面
PS2 shell的功能与其他第六世代游戏机基本一致。
shell由多个用户界面组成,用于管理典型操作,如操作存储卡中的保存数据或更改时钟。 它还提供一些高级选项,如更改当前视频模式。
可更新性
BIOS确实存储在只读存储器中,但这并不妨碍索尼在出厂后对其进行修改。 你看,在幕后,BIOS为将来的修改打开了两扇门:
- 应用程序(游戏和
OSDSYS)可以在运行时对内核例程打上猴子补丁(monkey patch)。 官方SDK和非官方的"ps2sdk"都广泛使用了这一功能,因为索尼的工程师后来发现他们的内核漏洞百出(双关语)。 EELOAD会查找存储在存储卡和/或硬盘中的OSDSYS更新二进制文件。 索尼依靠它增加了DVD电影播放器和硬盘支持,因为这些驱动程序都没有捆绑在该游戏机的早期版本中。- 这些更新随游戏机或硬盘套件(盒装最终幻想11的一部分)的安装光盘一起分发。
- 与必须向后兼容旧版SDK的内核不同,游戏机的后续版本在BIOS ROM中提供了以前的更新。
- 为了控制分发,二进制文件必须使用数据加密标准(Data Encryption Standard,DES)进行签名,这是一种对称加密系统,使用的密钥只有索尼知道(理论上)。 此外,二进制文件必须存储在支持MagicGate的存储设备中。
无论如何,索尼最终在PS2晚期机型(BIOS版本为2.30)中取消了第二种方法。 我推测索尼并没有计划进行更多更新,这只是增加了黑客的攻击面。






