| 贵 州 学 习 网 |
|
linux 内核的属性 在讨论大型而复杂的系统的体系结构时,可以从很多角度来审视系统。体系结构分析的一个目标是提供一种方法更好地理解源代码,这正是本文的目的。 linux 内核实现了很多重要的体系结构属性。在或高或低的层次上,内核被划分为多个子系统。linux 也可以看作是一个整体,因为它会将所有这些基本服务都集成到内核中。这与微内核的体系结构不同,后者会提供一些基本的服务,例如通信、i/o、内存和进程管理,更具体的服务都是插入到微内核层中的。每种内核都有自己的优点,不过这里并不对此进行讨论。 随着时间的流逝,linux 内核在内存和 cpu 使用方面具有较高的效率,并且非常稳定。但是对于 linux 来说,最为有趣的是在这种大小和复杂性的前提下,依然具有良好的可移植性。linux 编译后可在大量处理器和具有不同体系结构约束和需求的平台上运行。一个例子是 linux 可以在一个具有内存管理单元(mmu)的处理器上运行,也可以在那些不提供 mmu 的处理器上运行。linux 内核的 uclinux 移植提供了对非 mmu 的支持。 linux 内核的主要子系统G`0Gd~kI&lH0w:de[ 此文转贴于我的学习网IT认证Linux认证 http://www.Gzu521.com]G`0Gd~kI&lH0w:de 现在使用图 3 中的分类说明 linux 内核的主要组件。 图 3. linux 内核的一个体系结构透视图
系统调用接口 sci 层提供了某些机制执行从用户空间到内核的函数调用。正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。sci 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 sci 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。 进程管理 进程管理的重点是进程的执行。在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和 cpu 寄存器)。在用户空间,通常使用进程 这个术语,不过 linux 实现并没有区分这两个概念(进程和线程)。内核通过 sci 提供了一个应用程序编程接口(api)来创建一个新进程(fork、exec 或 portable operating system interface [posix] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 posix 机制)。 进程管理还包括处理活动进程之间共享 cpu 的需求。内核实现了一种新型的调度算法,不管有多少个线程在竞争 cpu,这种算法都可以在固定时间内进行操作。这种算法就称为 o(1) 调度程序,这个名字就表示它调度多个线程所使用的时间和调度一个线程所使用的时间是相同的。 o(1) 调度程序也可以支持多处理器(称为对称多处理器或 smp)。您可以在 ./linux/kernel 中找到进程管理的源代码,在 ./linux/arch 中可以找到依赖于体系结构的源代码。 |
责任编辑:gzu521