读书笔记:9.1:.监控程序可以说是操作系统的原型。.文字处理软件、表格处理软件等都属于应用程序。.应用程序通过系统调用来间接地控制硬件。.Windows 10有32位和64位两种版本。
.可以通过用鼠标点击屏幕上的窗口、图标等可视化方式进行操作的用户界面。.WYSIWYG的意思是,显示器上显示的东西可以直接通过打印机打印出来,即“所见即所得”,这是Windows的特点之一
9.2:代码清单9-1是一段C语言程序,它的功能是在Windows操作系统中显示当前时间。其中,time()是获取当前日期和时间的函数,printf()是将字符串显示在屏幕上的函数。程序运行结果所示。
代码清单9-1 显示当前时间的应用程序
finclude <time.h>
int main() {
// 存放日期和时间的变量
time_t tm,
//获取当前日期和时间
time(&tm),// 将日期和时间显示在屏幕上printf("%s\n", ctime(&tm));
return 0;代码清单9-1中的程序在运行时会按照以下步骤完成对硬件的访问
(1)time_ttm;语句为time_t类型的变量分配内存空间
(2)time(&tm);语句将当前日期和时间数据存放到内存中
(3)printf("%s\n".ctime(&tm));语句将变量所在内存空间的内容输出到屏幕上无论是声明变量分配内存空间,还是time()函数和printf()函数的运行结果,都并非直接作用于硬件,而是作用于操作系统。
9.3:操作系统的硬件访问功能通常会以大量小型函数的集合体的形式来提供。这些函数及调用这些函数的行为统称为系统调用(sytem call)@也就是应用程序调用(call)操作系统(system)的功能。前面的程序中所使用的time()函数和printf()函数,其内部也使用了系统调用。这里我们之所以说“内部”,是因为在Windows操作系统中,用来返回当前日期和时间的系统调用,以及在屏幕上显示字符串的系统调用,并不是我们所使用的time()和printf()。time()和printf()内部使用了系统调用去完成相应的功能。C语言等高级编程语言不依赖于特定操作系统。无论是Windows还是Linux,基本可以使用相同的源代码。要实现这一点,在高级编程语言中就需要使用专用的函数名,并在编译时将其转换成对应操作系统的系统调用(或多个系统调用的组合)。
9.5:操作系统所具备的功能Windows操作系统的主要特点如下。
(1)有32位和64位两个版本
(2)通过API函数集提供系统调用
(3)采用GU1
(4)能以WYSIWYG雅的方式打印
输出
(5)提供多任务功能
(6)提供网络和数据库功能
(7)可通过即插即用自动安装设备驱动程序
(1)有32位和64位两个版本
Windows有32位和64位两个版本,用户可以任意进行选择。这里的32位或64位,指的是能够最为有效地进行处理的数据长度。Windows处理数据的基本单位,对32位版来说就是32位,对64位版来说就是64位。但是,64位版Windows中也可以运行32位版Windows的应用程序:因此目前,为了保证兼容性,很多应用程序是32位的,很多C编译器生成的也是适配32位CPU的本机代码。很多人可能使用的是64位版的Windows,但是在开发应用程序时需要注意在大多数情况下还是要以32位版来分发。
(2)通过API函数集提供系统调用
Windows是通过名为API的函数集来提供系统调用的。API是连接应用程序开发者与操作系统的窗口(接因此得名API。口)
32位版Windows的API称为Win32 API,64位版Windows的API称为Win64 API。开发32位版应用程序应使用Win32 API。在Win32 API中,每个函数的参数和返回值的数据长度基本上是32位。
API是以若干DLL文件的形式来提供的,每个API的本体都是C语言编写的函数,因此C语言程序很容易使用这些API。本书的示例程序中所提到的API有MessageBox(),它位于Windows提供的user32.dll这个DLL文件中。正如user32.dl中的32所表示的那样,其中包含了Win32API。
(3)采用GU1
GUI是指能够通过用鼠标点击屏幕上的窗口、图标等元素来进行可视化操作的用户界面。对用户来说,GUI就是图形和鼠标,,而对程序员来说就没有那么简单了。编写一个能实现GUI的应用程序非常难,所以才有人调侃“GUI是用着一时爽,开发火葬场”。
之所以难开发,是因为GUI中用户对应用程序的操作顺序是不确定的。

即插即用(plug-and-play)是一种让新设备插入(plug)之后就可以立即使用(play)的机制。当新设备连接到计算机后,操作系统可以自动安装并配置用于控制该设备的设备驱动程序(device driver)
设备驱动程序是操作系统的一部分,负责提供对硬件的基本输入输出功能。对于键盘、鼠标、显示器、磁盘、网络等一般计算机必备的硬件设备,它们的驱动程序已经随操作系统预先安装好了。当需要添加打印机无线局域网(Wi-Fi)由等硬件设备时,就需要向操作系统中安装相应的设备驱动程序。一般在购买硬件设备时,还会得到一张光盘,其中就包含了该设备的驱动程序,我们也可以通过从互联网下载的方式获取设备驱动程序。