- o# x M7 q) h r" x1 `5 O 用户空间主要是由应用程序和C库GNU C Library(glibc)组成,还包括一些用户文件及一些配置文件等。 , @% G3 s$ B& r) r$ e + W2 O1 e( V( P$ ^% D1 ]4 w! E 内核空间是由系统调用接口(SCI)、内核代码、依赖于体系结构的代码。0 F! Z* c8 s6 q/ R6 k
0 B# q( e% b/ G3 J' I二:内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。有人可能会问“内核空间和用户空间不是组成了Linux系统吗,怎么又成了程序执行的状态?”其实这里要明白,Linux系统本质不就是程序吗?那么这里就可以理解了吧。! Q0 r+ U2 n2 J3 D+ C1 G1 a7 c
. @, }6 b6 A. A' m& u
三:linux系统为什么被划分为用户空间和内核空间呢?2 A( n/ w+ {1 j M
7 ~! c* _3 h4 A- k. i 很简单:安全性! 6 T* r' s' Q% P8 h 7 {$ `, x4 s# _4 J$ M* B 现代的CPU通常实现了不同的工作模式,以ARM为例,实现了7中工作模式:用户模式(usr)、系统模式(sys)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、未定义指令异常(umd)。这七种不同的工作模式下,有不同的权限,至少对寄存器是有不同的访问权限的。7 h) v/ ?/ g. u- |2 X