Jul 31, 2005

Beauty is in the eyes of beholders


如果用一句话总结 Inferno 的特点, 可以是: 一套精练完备的实时多任务操作系统, 及其网络文件接口, 图形界面, 虚拟机, 仿真器和交互式交叉编程环境.

而 Blackfin 的特点可总结为: 一个由精简高效的数字信号处理结构, 及其丰富的外设接口所构成的低价芯片.

Blackfin 没有使用复杂的MMU, 可以有效的降低成本, 代价是失去内存保护和切换, 使其不能安全的运行大量现有程序, 只能作为专用芯片使用. 如果存在一种操作系统, 不需 MMU 也可安全加载运行用户程序, 便可充分利用其极高的性价比, 构成新一代的通用计算机, 性能不减, 而成本远低于PC.

Inferno 就是这种操作系统. 除了内核和驱动程序是用 C 实现, 所有的应用程序用 Limbo 编写, 并编译成中间码, 由 Dis 虚拟机执行. Dis 提供了内存保护和对应机器码的翻译, 使 Dis 代码能直接安全运行在所有 Inferno 支持的系统上, 这包括 PC, Mac 和 UNIX, Plan9 上的仿真器, 和运行在ARM, x386, PowerPC, MIPS 上的 Inferno 操作系统.

Limbo 是一种综合了 C 和 Pascal 优点的模块化多线程编程语言. 没有指针, 编译和运行态的类型检查, 垃圾回收 (Gabage Collection), 提供了安全有效的内存管理. 模块(module)实现和加载提供了结构化的程序管理和运行环境的动态改变. 通讯顺序进程(CSP)使用频道(channel) 的发送和接收简单实现了多线程的管理.

在 Inferno 系统中, 所有的可用资源都用文件代表, 包括内核的, 外存的, 和网络上的数据, 状态和控制. 完成文件操作的协议是 Styx, 定义了文件的创建, 打开和关闭, 游标的复制和移动, 以及数据和属性的读写. 用户和程序可以将用到的文件名组织成自己私有的目录, 称为命名空间(namespace).

学习 Inferno, 只需从 www.vitanuova.com 下载安装. 阅读理解其中的代码和文档, 再自己编写一些程序来掌握和精通.

学习 Blackfin, 可以从 www.digikey.com 购买一套低价的 Blackfin STAMP 实验板. 后文将提到如何在 PC 上编译 Inferno Blackfin, 并安装到这个 STAMP 实验板上.

暂时没有 Blackfin 实验板也没关系, 在 PC 上可以作大部分的仿真操作.