操作系统:原理、实现与测试
1. 操作系统概述
操作系统在计算机系统中扮演着至关重要的角色,它旨在弥合计算机硬件和软件之间的差距,让程序员、编译器和用户更便捷地使用计算机系统。例如,在屏幕上显示“Hello World”这样简单的操作,如果直接依据硬件规范编写代码来控制特定内存位置的位开关,会非常繁琐。而高级程序员期望通过更简洁的接口,如 print ("Hello World") 来实现,这就需要操作系统发挥作用。
我们所讨论的操作系统较为精简,主要目标有两个:一是将底层硬件特定服务封装成高级、对程序员友好的软件服务;二是为高级语言扩展常用功能和抽象数据类型。在现代编程中,很多标准操作系统服务被集成到语言的标准类库中。我们的 Jack OS 就是以支持类的集合形式进行封装,每个类通过 Jack 子程序调用提供一组相关服务,完整的 OS API 可参考附录 6。
高级程序员希望操作系统通过精心设计的接口提供服务,隐藏硬件细节。因此,操作系统代码需要贴近硬件,直接操作内存、输入/输出和处理设备,并且要具备高效性,因为操作系统支持计算机上运行的所有程序,其服务的时间和空间效率提升会显著影响依赖它的应用程序性能。我们的操作系统用 Jack 语言编写,Jack 语言具有足够的“底层性”,能在需要时紧密贴近硬件。
2. 背景知识
计算机通常连接着各种输入/输出设备,如键盘、屏幕、鼠标等。每个设备都有其独特的机电特性,在这些设备上读写数据涉及诸多技术细节。高级语言通过提供高级抽象来屏蔽这些细节,例如 let n = Keyboard.readInt("Enter a number:") 。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



