我觉得基本可以认为,这一世代的每款游戏机都带有了某种交互界面。 NDS继承了以轻量级API为基础的操作系统模型,以简化I/O访问;但同时也提供了一个精简的用户界面,以供调整设置或者运行"应用程序"。
话虽如此,它的操作系统分散在多个芯片中。让我们从启动时读取的芯片开始。
入口点(Entry point)
在某一时刻,ARM7和ARM9将需要初始化硬件。NTR-CPU包括两个不同的小型ROM芯片来做这件事:
- 一个连接到ARM9总线的4 KB BIOS。
- 一个连接到ARM7总线的16 KB BIOS。
当掌机启动时,每个CPU从各自的ROM启动引导。 这是因为它们的复位向量(reset vector)指向每个芯片(作为参考,ARM9的向量位于0xFFFF0000,而ARM7的向量位于0x00000000)。
继续推进,两个BIOS都存储两组例程:引导代码和中断调用。 考虑到前代掌机的历史,后者我们并不陌生,然而前者的复杂度却增加了:除了硬件初始化之外,ARM7的代码还将对DS卡带(如果插入了的话)进行一些检查来确保安全性。
运行引导代码后,两个CPU将同步,以便它们可以开始充当"单个机器":事实证明,ARM9的加载完成要比ARM7快得多。于是ARM9向ARM7发送一个4比特值,在半无限循环中阻塞等待ARM7的响应。一旦ARM7响应,两者同时"越过终点线",也就是说,它们现在同步了。
机会之窗
如果您现在拥有或者曾经拥有NDS,您可能会注意到只能在游戏机开机前插入卡带才能玩游戏。 这是因为ARM7的BIOS在启动时对卡带进行了一些检查(更多详情参见最后一节),如果所有测试都通过,ARM7的游戏可执行程序将被复制到WRAM,ARM9的程序则被复制到主内存。
如果出于某些原因未能复制可执行文件(卡带无效或在启动时未找到可执行文件),则无法启动游戏。用户将不得不重置游戏机才能玩游戏。
交互界面
无论是否插卡,系统都将加载交互界面完成引导。 这只是一个驻留在外部256 KB闪存存储器上的程序。

每次NDS开机时都会看到此界面。 在有效插入一张卡时"Nintendo" logo会显示出来。
存储界面的芯片还存储着固件、一些用户设置(语言、昵称、生日、闹钟和欢迎消息)以及一些系统设置(触摸屏校准、首次启动标志、固件版本和Wi-Fi设置)。
这个界面与其他同期的游戏机界面基本上差不多。 用户依靠它来启动游戏、更改设置、下载游戏(使用"Download Play"功能)或者玩玩Pictochat:一个开放的聊天室软件,可以与附近的NDS交流。
值得强调的是,只读数据和可写数据都驻留在同一个可重写的芯片中,因此理论上固件可以被覆盖! 幸运的是(或者出于显而易见的原因),任天堂在主板上的一个点(称为SL1)上放置了跳线来保护芯片的上四分之一(64 KB)不被写入,拆卸电池仓后可以看到这个点。 然而,仍然可以覆盖闪存的其余部分,虽然结果也是灾难性的!
可更新性
任天堂为了修复一些安全漏洞,曾多次更新这个固件(确切地说是5次)。 用户无法自行安装这些更新(回想一下SL1的保护)。 但是,任天堂在下一批生产的产品中嵌入了更新后的固件。

