操作系统和应用的关系
问题
-
监控程序的主要功能是什么 ?
程序的加载和运行
-
在操作系统上运行的程序称为什么?
应用
-
调用操作系统功能称为什么?
系统调用system call
-
Windows Vista是多少位的操作系统?
32位(也有64位的版本)
-
GUI是什么的缩写?
Graphical User Interface图形用户界面
-
WYSIWYG是什么的缩写?
What You See Is What You Get
操作系统功能的历史
在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。通过事先启动监控程序,程序员就可以根据需要将各种程序加载到内存中运行。
随着时代的发展,人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分。因此,基本的输入输出部分的程序就被追加到了监控程序中,初期的操作系统就诞生了。
之后,开始有更多的功能被追加到监控程序中,结果就形成了和现在相差不大的操作系统。因此,操作系统本身并不是单独的程序,而是多个程序的集合体。
要意识到操作系统的存在
你们制作的不是硬件,而是利用操作系统功能的应用。由于操作系统诞生后,程序员无需再考虑硬件的问题,哪怕是自称对硬件一窍不通的人,也可能会制作出一个有模有样的应用。不过,要想成为一个全面的程序员,掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。否则,遇到问题时,你就无法找到解决办法。
应用的可执行文件指的是,计算机的CPU可以直接解释并运行的本地代码。不过这些代码是无法直接控制计算机中配置的时钟IC及显示器用的I/O等硬件的。
在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来间接控制硬件的。操作系统受到应用发出的指令后,首先会对该指令进行解释,然后会对硬件进行控制。
系统调用和高级编程语言的移植性
操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的,这些函数及调用函数的行为统称为系统调用。
高级编程语言并不依存于特定的操作系统。它的机制是使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用。
在高级编程语言中,也存在可以直接调用系统调用的编程语言。不过,利用这种方式做出的应用,移植性并不友好(也俗称为有恶意行为的应用)。例如,直接调用Windows系统调用的应用,在Linux上显然是无法运行的。
操作系统和高级编程语言使硬件抽象化
通过使用操作系统提供的系统调用,程序员就没必要编写直接控制硬件的程序了。通过使用编程语言,有时甚至也无需考虑系统调用的存在。
Windows操作系统的特征
-
32位操作系统(也有64位的)
-
通过API函数集来提供系统调用
API通过多个DLL文件来提供,都是用C语言编写的。
-
提供采用了GUI的用户界面
GUI指的是通过点击显示器中显示的窗口及图标等即可进行可视化操作的用户界面。
它实现的困难在于用户按照怎样的顺序操作是无法确定的。
-
通过WYSIWYG实现打印输出
WYSIWYG指的是显示器上显示的内容可以直接通过打印机打印输出
-
提供多任务功能
多任务指的是同时运行多个程序的功能。Windows是通过时钟分割技术来实现多任务功能的。时钟分割指的是在短时间间隔内,多个程序切换运行的方式。在用户看来,就是多个程序在同时运行。也就是说,Windows会自动切换多个程序的运行。此外,Windows中还具有以程序中的函数为单位来进行时钟分割的多线程功能。
-
提供网络功能及数据库功能
网络功能和数据库功能,并不是操作系统本身不可欠缺的功能,但因为它们和操作系统很接近,所以被统称为中间件而不是应用。操作系统和中间件合在一起,也称为系统软件。应用可以利用操作系统和中间件的功能。
相对于操作系统一旦安装就不能轻易替换,中间件则可以根据需要进行任意的替换。不过,大多数情况下,中间件变更后应用往往也要变更,因此中间件的变更也不是那么容易。
-
通过即插即用实现设备驱动的自动设定
即插即用指的是新的设备连接后立刻就可以使用的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的设备驱动程序。
设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。这些计算机中必备的硬件的设备驱动,一般都是随操作系统一起安装的。
有时DLL文件也会同设备驱动文件一起安装。这些DLL文件中存储着用来利用该新追加硬件的API。通过API,可以制作出运用该新硬件的应用。
可以任意追加设备驱动和API的机制使Windows操作系统变得非常灵活。
程序是操作系统、中间件、应用等所有软件的统称。