目录
一、操作系统和高级编程语言使硬件抽象化
通过使用操作系统的系统调用,程序员不必直接编写控制硬件的程序,而且,通过使用高级编程语言,有时也无需考虑调用的存在,系统调用往往是自动触发的,操作系统和高级编程语言能够使硬件抽象化
硬件抽象化的具体实例:
fputs()是用来往文件中写入字符串的函数,fclose()是用来关闭文件的函数
磁盘就如同树的年轮,磁盘的读写是以扇区为单位的,通过磁道来寻址,如果直接对硬件读写的话,那么就会变为通过向磁盘用的I/O指定扇区位置来对数据进行读写了
MyFile.txt 和指定文件写入的 w
文件指针。应用打开文件后,操作系统就会自动申请分配用来管理文件读写的内存空间。内存地址可以通过fopen()函数的返回值获得。用fopen()打开文件后,接下来就是通过制定的文件指针进行操作,正因为如此,fputs() 和 fclose 参数中指定了文件指针
由此我们可以得出一个结论,应用程序时通过系统调用,磁盘抽象来实现对硬盘的控制的
二、Windows操作系统的特征
Windows 操作系统是世界上用户数量最庞大的群体,下面列举了一些Windows 操作系统的特性:
● Windows 操作系统有两个版本:32位和64位
● 通过 API
● 提供了采用图形用户界面的用户界面
● 通过 WYSIWYG
● 提供多任务功能,即能够同时开启多个任务
● 提供网络功能和数据库功能
● 通过即插即用实现设备驱动的自设定
32位操作系统
MS-DOS
char 类型,16位的 short 类型,以及32位的long类型三个选项,使用位数较大的long类型进行处理的话,增加的只是内存以及磁盘的开销,对性能影响不大
现在市面上大部分都是64位操作系统了,64位操作系统也是如此。
通过API函数集来提供系统调用
API 的函数集来提供系统调用的。API是联系应用程序和操作系统之间的接口,全称叫做 Application Programming Interface,应用程序接口
Win32 API,之所以这样命名,是需要和不同的操作系统进行区分,比如最一开始的16位版的 Win16 API。和后来流行的Win64 API
MessageBox()函数,就被保存在了Windows 提供的user32.dll 这个DLL文件中
提供采用了GUI的用户界面
GUI(Graphical User Interface)指得就是图形用户界面,通过点击显示器中的窗口以及图标等可视化的用户界面,举个例子:Linux操作系统就有两个版本,一种是简洁版,直接通过命令行控制硬件,还有一种是可视化版,通过光标点击图形界面来控制硬件
通过WYSIWYG 实现打印输出
WYSIWYG 指的是显示器上输出的内容可以直接通过打印机打印输出。在Windows中,显示器和打印机被认作同等的图形输出设备处理的,该功能也为WYSIWYG提供了条件。
借助WYSIWYG功能,程序员可以轻松不少。最初,为了是现在显示器中显示和在打印机中打印,就必须分别编写各自的程序,而在Windows中,可以借助WYSIWYG基本上在一个程序中就可以做到显示和打印这两个功能了。
提供多任务功能
时钟分割 技术来实现多任务功能的。时钟分割指的是短时间间隔内,多个程序切换运行的方式。在用户看来,就好像是多个程序在同时运行,其底层是CPU时间切片,这也是多线程多任务的核心。
CPU分片,也是时钟分割:
提供网络功能和数据库功能
中间件 而不是应用。意思是处于操作系统和应用的中间层,操作系统和中间件组合在一起,统称为 系统软件。应用不仅可以利用操作系统,也可以利用中间件的功能
应用可以使用操作系统和中间件:
相对于操作系统,一旦安装就不能轻易更换,中间件可以根据需要进行更换,不过,对于大部分应用来说,更换中间件的话,会造成应用也随之更换,从这个角度来说,更换中间件也不是那么容易
通过即插即用实现设备驱动自动设定
即插即用(Plug-and-Play)指的是新的设备连接(plug)后就可以直接使用的机制,新设备连接计算机后,计算机就会自动安装和设定用来控制该设备的 驱动程序
设备驱动时操作系统的一部分,提供了同硬件进行基本的输入输出功能。键盘、鼠标、显示器、磁盘装置等,这些计算机中必备的硬件的设备驱动,一般都是随着操作系统一起安装的
有时DLL文件也会同设备驱动文件一起安装。这些DLL文件中存储着用来利用该新追加的硬件API,通过API,可以制作出运行该硬件的新应用