前面提到过,内核分配给用户进程的内存我们称之为用户空间。因为一个进程简单说就是内存中的一个状态。用户空间也可以指所有用户进程占用的所有内存。(用户空间还有一个不太正式的名称,叫userland。) Linux中大部分的操作都发生在用户空间中。虽然从内核的角度来说所有进程都是一样的,但是实际上它们执行的是不同的任务。相对于系统组件,用户进程位于一个基础服务层中。图1-3就展示了一组组件在Linux系统中是如何交互工作的。其中最底层是基础服务层,工具服务在中间,用户使用的应用程序在最上层。图1-3是一个简化版本,你可以看到顶层距离用户最近(如用户接口和Web浏览器)。中间一层中有邮件服务器这样的组件供Web浏览器使用。最下层是一些更小的服务组件。 图1-3 进程类型和相互间的交互 最下层通常是由一些小的组件组成,它们比较精巧,专注完成某一个特定功能。中间层的组件比较大一些,如邮件、打印和数据库服务。顶层组件完成用户交互和复杂的功能。组件之间也可以相互调用。如果组件A调用了组件B的功能,我们可以视为组件A和B在同一层级,或者B在A之下。 然而,图1-3只是一个粗略图,实际上用户空间里没有很明显的界限。例如许多应用程序和服务会将系统诊断信息写入日志,大部分程序使用标准的系统日志服务来完成,但也有一些程序是自己实现日志功能。 此外,很多用户空间组件比较难分类,像Web服务器和数据库服务器这样的服务组件,你可以认为它们在图1-3中属于高级别组件,因为它们复杂度很高。然而用户应用程序也会经常调用它们的功能,所以你也可以将它们归入中级别组件。
精通Linux(第2版)——1.4 用户空间
书名: 精通Linux(第2版)
作者: [美] Brian Ward
出版社: 人民邮电出版社
译者: 姜南 | 袁志鹏
出版年: 2015-7
页数: 304
定价: 59.00元
装帧: 平装
ISBN: 9787115394927