查字典图书网
当前位置: 查字典 > 图书网 > 算法 > OS X与iOS内核编程 > 试读

OS X与iOS内核编程[试读]

第一章:操作系统原理

操作系统的作用是为用户提供应用软件的运行环境。用户运行应用程序时所执行的任务依赖于操作系统提供的服务,然而,操作系统执行任务时,许多情况下都无需用户甚至程序员的干预。例如,应用程序从硬盘读取文件时,程序员只需调用操作系统提供的函数即可,执行读取的特定步骤完全交由操作系统处理。程序员不用了解从计算机硬... 查看全部[ 第一章:操作系统原理 ]

1.1 操作系统的作用

作为启动序列的一部分,操作系统决定系统的硬件配置,搜索连接到USB接口或插入PCI扩展槽的外部设备,对它们进行初始化,如有必要,在初始化时加载驱动程序。 操作系统完成加载后,用户便能运行应用软件。应用软件可能需要分配内存或向磁盘写入文件,这些请求均由操作系统处理。对用户而言,操作系统的参与基本上是... 查看全部[ 1.1 操作系统的作用 ]

1.2 进程管理

通常,用户在计算机上安装了许多应用程序,而且这些应用程序都是纯被动实体。磁盘上的程序所包含的数据仅在程序运行时需要,这些数据由可执行代码和应用程序数据组成。当用户启动应用程序时,操作系统会将程序的代码和数据从磁盘加载到内存中,并开始执行代码。一个正在执行的程序称为“进程”。与程序不同,进程是主动实体... 查看全部[ 1.2 进程管理 ]

1.3 进程地址空间

尽管任意时刻会有许多进程同时运行,但每个进程都觉察不到系统有其他进程在运行。实际上,在没有显式代码的情况下,一个进程无法与另一个进程交互,也不能对其行为产生影响。 操作系统为每个进程提供了一段可操作的内存,我们称之为进程的地址空间。地址空间是动态的,它在进程执行期间随其内存分配而发生变化。如果一个... 查看全部[ 1.3 进程地址空间 ]

1.4 操作系统服务

在现代操作系统中,操作系统和应用程序执行的函数之间具有明确的界限。每当进程希望执行一个任务(如分配内存,从磁盘中读取数据,或通过网络发送数据)时,必须使用一组系统定义好的编程接口访问操作系统。malloc()、read()等系统函数,都是提供操作系统服务的系统调用。我们可以直接通过应用程序,或间接通... 查看全部[ 1.4 操作系统服务 ]

1.5 虚拟内存

计算机系统中的RAM资源有限,由系统上所有运行的进程竞争共享。当系统运行多个应用程序时,所有进程分配的内存总量会超过系统上RAM的数量,这很正常。 操作系统支持虚拟内存,这样进程就可以分配和使用比系统上安装的RAM数量还要多的内存。也就是说,进程的地址空间不受物理RAM数量的限制。有了虚拟内存,操... 查看全部[ 1.5 虚拟内存 ]

1.6 调度

在计算机系统中,另一种争用激烈的资源是CPU。执行每个进程都需要访问CPU,但通常一些想要访问CPU的进程比系统上的CPU内核更活跃。因此操作系统必须在运行的进程之间共享CPU内核,保证每个进程都可以正常访问CPU,从而顺利执行。 我们已经知道,进程彼此独立运行,都有各自的地址空间,以防止一个进程... 查看全部[ 1.6 调度 ]

1.7 硬件和驱动程序

除了管理基本的硬件资源(如CPU和内存),操作系统还负责管理系统上添加的硬件外设,包括键盘和鼠标、USB闪存驱动器、显卡等。尽管操作系统负责管理这些设备,但需要借助驱动程序才能实现。可将驱动程序看做运行在操作系统内核中的插件,它可以使系统与硬件设备进行交互。 支持硬件设备的代码位于设备自身(称为固... 查看全部[ 1.7 硬件和驱动程序 ]

1.8 小结

操作系统负责管理计算机的硬件资源。它为用户程序提供了计算机系统的抽象模型,使每个程序好像都能完全访问CPU和整个内存。用户运行的程序若不向操作系统提供的服务发出请求,就无法访问硬件。在处理与外围硬件设备相关的服务时,操作系统可能需要调用该设备的驱动程序所提供的函数。 接下来几章将把本章阐述的概念付... 查看全部[ 1.8 小结 ]