Linux内核和进程

操作系统可分为内核和用户空间两部分。这一特性使得:

  1. 用户空间的进程各自拥有自己的地址空间,不会出现进程A访问到进程B的地址空间。
  2. 各个进程都可以通过系统调用的方式访问内核。即内核被多个任务所共享。

第一个特性是因为不同的进程被分配到了不同逻辑地址,当然就不能访问到自身以外的其他地址空间了。那第二个特性又是基于什么样的机制呢?

在分段机制中,用到了全局描述符GDT和局部描述符LDT。这里有一个特点就是,GDT映射的段是可共享的,可以被其他GDT映射的段访问,还可以被LDT访问;而不同LDT映射的段是不能相互访问的。这便是隐藏在GDT和LDT机制背后,将操作系统分为内核和用户空间的原理。

详细内容参考《Linux内核完全注释》第三版,4.3.2 段描述表一节。

猜你喜欢

转载自my.oschina.net/wuqingyi/blog/1632749