linux 引导原理 pdf,linux深度开发原理.pdf

深度介绍 Linux 操作系统内核的工作原理时间 :2009-07-04 20:22:37来

源 :网络 作者 :未知 点击 :577 次

本文发表于 Linux Format magazine杂志,作者从技术深度上解释了

Linux Kernel 是如何工作的。 相信对 Linux 开发者来说有不小的帮助。

牛津字典中对 "kernel" 一词的定义是: " 较软的、 通常

是一个坚果可食用的部分。 " 当然还有第

本文发表于 Linux Format magazine杂志,作者从技术深度上解释了

Linux Kernel 是如何工作的。 相信对 Linux 开发者来说有不小的帮助。

牛津字典中对 "kernel" 一词的定义是: "较软的、通常是一个坚果可食

用的部分。" 当然还有第二种定义: "某个东西核心或者最重要的部分。

"对 Linux 来说,它的 Kernel 无疑属于第二种解释。让我们来看看这

个重要的东西是如何工作的,先从一点理论说起。

广义地来说 kernel 就是一个软件, 它在硬件和运行在计算机上的应用

程序之间提供了一个层。严格点从计算机科学的角度来说, Linux 中

的 Kernel 指的是 Linus Torvalds 在 90 年代初期写的那点代码。

所有的你在 Linux 各版本中看到的其他东西 --Bash shell、KDE 窗口管

理器、 web 浏览器、 X 服务器、 Tux Racer 以及所有的其他,都不过

是运行在 Linux 上的应用而已,而不是操作系统自身的一部分。为了

给大家一个更加直观的感觉,我来举个例子,比如 RHEL5 的安装大

概要占据 2.5GB 的硬盘空间(具体多大当然视你的选择安装来定) ,

在这其中, kernel 以及它的各个模块组件,只有 47MB ,所占比例约

为 2%。

在 kernel 内部

那么 kernel 到底是如何工作的呢 ?如下面的图表。 Kernel 通过许多的

进入端口也就是我们从技术角度所说的系统调用, 来使得运行在它上

面的应用程序可用。 Kernel 使用的系统调用比如 " 读"和"写" 来提供你

硬件的抽象( abstraction)。

从程序员的视角来看, 这些看起来只是普通的功能调用, 然而实际上

系统调用在处理器的操作模式上,从用户空间到 Kernel 空间有一个

明显的切换。同时,系统调用提供了一个 "Linux 虚拟机 " ,可以被认

为是对硬件的抽象。

Kernel 提供的更明显的抽象之一是文件系统。 举例来说, 这里有一段

短的程序是用 C 写的,它打开了一个文件并将内容拷贝到标准的输

出:

#include

int main()

{

int fd, count; char buf[1000];

fd=open("mydata", O_RDONLY);

count = read(fd, buf, 1000);

write(1, buf, count);

close(fd);

}

在这里,你可以看到四个系统调用的例子:打开、读、写和关闭。不

谈这段程序语法的细节,重点是:通过这些系统调用 Linux Kernel 提

供了一个文件的 "错觉 " ,而实际上它不过是一堆数据有了个名字,这

样一来你就不必去与硬件底层的堆栈、分区、头和指针、分区等交涉

了,而是直接以例子中的方式与硬件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值