9.1 操作系统功能的历史
在计算机不存在操作系统的年代,完全没有任何程序,因此需要程序员需要编写出处理相关的所有过程。用机器语言编写程序,然后再使用开关将程序输入,这一过程十分麻烦。于是人们开发出了监控系统,这就是操作系统的原型。提供事先启动监控系统,程序员就可以根据需要将各种程序加载到内存中运行
人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分,如通过键盘输入文字数据,往显示器输出文字数据等,这些处理,在任何程序下都是一样的。基本的输入输出程序被追加到监控系统中,初期的操作系统就这样诞生了
操作系统并不是单独的程序,而是多个程序的集合体
9.2 意识到操作系统的存在
掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率
在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统间接控制硬件的。操作系统收到应用发出的指令后,首先对指令进行解析,然后再对硬件进行控制
9.3 系统调用和高级语言可移植性
操作系统的硬件控制功能,通常是一些小的函数集合体的形式来提供的,这些函数及调用函数的行为统称为系统调用,也就是应用对操作系统的功能进行调用的意思
用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码
在高级编程语言中,也存在着可以直接调用系统调用的编程语言。但用这样的方式做成的应用,移植性并不是很好,如直接调用Windows系统调用的应用,在Linux上显然无法运行
9.4 操作系统和高级编程语言使硬件抽象化
通过调用操作系统提供的系统调用,程序员没必要编写直接控制硬件的程序,而且使用高级编程语言,有时甚至无需思考系统调用的存在,这是因为操作系统和高级编程语言能够使硬件抽象化
如文件是操作系统对磁盘媒介空间的抽象化,如果直接对硬件进行操作的话,那就变成了通过磁盘用的I/O指定扇区位置对数据进行读写
9.5 Windows操作系统的特征
1,32/64 位操作系统
此处的32/64指的是处理效率最高的数据大小,Windows 32位操作系统中处理数据的基本单位是32位
2,通过API函数来提供系统调用
Windows是通过名为API的函数集来提供系统调用的,API是联系程序员和操作系统之间的接口
API通过多个DLL文件来提供,各API的实体都是用C语言编写的函数
3,提供采用了GUI的用户界面
GUI 图形用户界面指的是通过点击显示器显示的窗口及图标即可进行可视化操作的用户界面
但做一个GUI的应用,并不是一件容易的事。因为在GUI中用户按照怎样的顺序操作都是无法确定的,程序员需要制作出在任何操作顺序下都能运行的应用
4,通过WYSIWYG实现打印输出
WYSIWYG即 what you see is what you get ,指显示器上显示的内容可以直接通过打印机打印输出。在Windows中,显示器和打印机被视为同等的图形输出设备处理的
最初为了实现在显示器中显示和在打印机中打印,就必须编写各自的程序,而在Windows中,借助WYSIWYG功能,基本上在一个程序中就可以实现显示和打印这两方面的操作
5,提供多任务功能
多任务指的是能同时运行多个程序的功能,Windows通过时钟分割技术来实现多任务功能
时钟分割指在短时间内,多个程序切换运行的方式,在用户看来,就是多个程序在同时运行。Windows还具有以程序中的函数为单位来进行时钟分割的多线程功能
6,提供网络功能及数据库功能
Windows中,网络功能是作为标准功能提供的,数据库功能有时会追加
网络功能和数据库功能虽并不是操作系统本身不可欠缺的功能,但因为它们和操作系统很接近,所以被统称为中间件,意思是处于操作系统和应用的中间。操作系统和中间件合在一起,称为系统软件,应用不仅可以利用操作系统,也可以利用中间件的功能
7,通过即插即用实现设备驱动的自动设定
即插即用指的是新的设备连接后立刻就可以使用的机制。新的设备连接到计算机后,系统会自动安装和设定用来控制该设备的设备驱动程序
可以任意追加设备驱动和API的机制使Windows操作系统变得非常灵活