作为启动序列的一部分,操作系统决定系统的硬件配置,搜索连接到USB接口或插入PCI扩展槽的外部设备,对它们进行初始化,如有必要,在初始化时加载驱动程序。 操作系统完成加载后,用户便能运行应用软件。应用软件可能需要分配内存或向磁盘写入文件,这些请求均由操作系统处理。对用户而言,操作系统的参与基本上是透明的。 操作系统在运行的应用程序和物理硬件之间提供了一个抽象层。应用程序一般通过向操作系统发出高层请求与硬件通信。因为这些请求由操作系统处理,所以应用程序可能完全不知道其运行环境的硬件配置(如RAM的数量、磁盘存储器是内部SSD还是外部USB驱动器)。 这个抽象层可以使应用软件在多种不同的硬件配置环境下运行,无需程序员为每种硬件添加支持,即便那些在程序发布后才出现的新硬件设备也不需要。 应用程序开发者通常可以忽略计算机系统工作的诸多细节,因为操作系统将运行应用程序的硬件平台抽象了出来。但是,作为一名驱动程序开发者,你所编写的代码将作为操作系统的一部分,直接与计算机硬件交互;你不能对操作系统的内部工作原理一无所知。为此,了解操作系统如何执行任务非常必要。