打印
[应用相关]

深入分析 Linux 内核源代码

[复制链接]
818|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yiyigirl2014|  楼主 | 2016-1-29 11:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
深入分析Linux内核源代码.pdf (2.11 MB)
沙发
yiyigirl2014|  楼主 | 2016-1-29 11:46 | 只看该作者
如果说 Linux 的出现是一个偶然,那么,席卷全球的 Linux 热潮则是一个奇迹,Linux
正以势不可挡的趋势迅猛发展,其发展前景是无法预测的。
有人说,“Linux 不就是类 UNIX 吗?”是的,它的外在表现形式确实与 UNIX 完全兼容,
这也是它赖以生存的基本条件。但是,它的内涵则完全不同,这首先体现在其源代码全部重
写及开放,其次是它的快速更新和发展,而更重要的是世界范围内众多计算机爱好者能通过
Internet 参与开发,由此可见,借助于 Internet 的肥沃土壤,Linux 的迅速发展是毫无置疑
的!
实际上,Linux 最本质的东西体现在其“自由”和“开放”的思想,“自由”意味着世
界范围内的知识共享,而“开放”则意味着 Linux 对所有的人都敞开大门,在这开放而自由
的天地里,你的创造激情可以得到充分的发挥。
Linux 内核源代码的开放给希望深入操作系统内部世界的人敞开无私的胸怀,我们有幸
走进了这个世界,这是一个神奇、错综复杂而又充满诱惑的世界,让喜欢迎接挑战的人们可
以充分检验自己的勇气和耐力。
Linux 内核全部源代码是一个庞大的世界,大约有 200 多万行,占 60MB 左右的空间。因
此,如何在这庞大而复杂的世界中抓住主要内容,如何找到进入 Linux 内部的突破口,又如
何能把 Linux 的源代码变为自己的需要,这就是本书要探讨的内容。
首先,本书的第一章领你走入 Linux 的大门,让你对 Linux 内核的结构有一个整体的了
解。然后,第二章介绍了分析 Linux 源代码应具备的基本硬件知识,这是继续向 Linux 内核
迈进的必备条件。中断作为操作系统中发生最频繁的一个活动,本书用一章的内容详细描述
了中断在操作系统中的具体实现机制。
众所周知,操作系统中最核心的内容就是进程管理、内存管理和文件管理。本书用大量
的篇幅描述了这三部分内容,尤其对最复杂的虚拟内存管理进行了详细的分析,其中对内存
初始化部分的详细描述将对嵌入式系统的开发者有所帮助。
在对 Linux 内核有一定了解后, 读者可能希望能够利用内核函数进行内核级程序的开发,
例如开发一个设备驱动程序。Linux 的模块机制就是支持一般用户进行内核级编程。另外,
读者在进行内核级编程时还可以快速查阅本书附录部分提供的 Linux 内核 API 函数。
网络也是 Linux 中最复杂的部分之一,这部分内容足可以写一本书。本书仅以面向对象
的思想为核心,分别对网络部分中的四个主要对象:协议、套接字、套接字缓冲区及网络设
备接口进行了分析。有了对这四个对象的分析,再结合文件系统、设备驱动程序的内容,读
者就可以具体分析自己感兴趣的相关内容。
Linux 在不断地发展,本书介绍的版本为 Linux 2.4.16。尽管本书力图反映 Linux 内核
较本质的东西,但由于笔者的知识有限,对有些问题的理解难免有偏差,甚至可能有“Bug”,
希望读者能尽可能多地发现它,以共同对本书进行改进和完善。
在本书的编写的过程中,笔者查阅了大量的资料,也阅读了大量的源代码,但本书中反
映的内容也仅仅是 Linux 的主要内容。因为一本书的组织形成是一种线性结构,而知识本身
的组织结构是一种树型结构,甚至是多线索的网状结构,因此,在本书的编写过程中,笔者
深感书的表现能力非常有限,一本书根本无法囊括全部。在参考书目中,我们将给出主要的
参考书及主要网站的相关内容。
本书的第一版是《Linux 操作系统内核分析》,在第一版的编写过程中,康华、季进宝、
陈轶飞、张波、张蕾及胡清俊等参与了编写。第一版出版后得到了很多读者的充分肯定和赞
扬,并授权台湾地区出版。在本次改版的过程中,依然保留了第一版的风格,但加深了对进
程管理、内存管理及文件管理等众多内容的剖析。

使用特权

评论回复
板凳
yiyigirl2014|  楼主 | 2016-1-29 11:47 | 只看该作者
对经常使用计算机的人来说 ,时常会感到操作系统是一个神奇、神秘而又几乎无所不
能的“上帝”。一打开计算机,我们首先看到的是操作系统,所有软件的运行都离不开它,
它给我们带来一个个的惊喜,但有时也带来烦恼和不安。
实际上,很多人都有这样强烈的愿望,即“上帝”到底是怎样操纵这一切的?UNIX 操作
系统曾经敞开 UNIX 操作系统的胸怀,让我们窥视到它的内在机制,但它毕竟属于“贵族”阶
层,我们大多数人并不能使用上它。
Windows 以平民的身份来到我们中间,我们欢呼它的友好和平易近人,正因为 Windows,
才使得计算机走进我们寻常百姓家,使得计算机普及成为现实。但 Windows 有时也“伤风感
冒”,我们想找到原因,以便对症下药。可是,Windows 的窗户并没有打开,我们无法透过
窗户看看 Windows 的内部世界到底是什么样的,这让我们困惑,尤其让喜欢追根寻源的人们
感到失望。
Linux 带着一股清新的风翩翩而来,它并不成熟,也不完美,甚至自身有很多缺点,可
Internet 的龙卷风把它吹遍世界,世界各地的计算机爱好者狂热地喜欢上 Linux。Linux 不
再是一个孤单的个体,而成为软件发展史上的“自由女神”,很多的计算机高手和计算机爱
好者为之倾其了极大的热情。它在迅速地成长,短短几年功夫,从一个摇摇晃晃的婴儿成长
为脚步稳健的少年。这一切都源于什么?那就是 Linux 的创始人 Linus Torvalds 把 Linux
适时地放入到了 GNU 公共许可证下。------------------------
这是一本写于2002年的一本书。

使用特权

评论回复
地板
yiyigirl2014|  楼主 | 2016-1-29 11:48 | 只看该作者
GNU 与 Linux 的成长
GNU 是自由软件之父 Richard Stallman 在 1984 年组织开发的一个完全基于自由软件的
软件体系,与此相应的有一份通用公共许可证(General Public License,简称 GPL)。Linux
以及与它有关的大量软件是在 GPL 的推动下开发和发布的。
自由软件之父 Stallman 像一个神态庄严的传教士一样喋喋不休地到处传播自由软件的
福音,阐述他创立 GNU 的梦想:“自由的思想,而不是免费的午餐”。这位自由软件的“顶
级神甫”为自己的梦想付出了大半生的努力,他不但自己创作了许多自由软件如 GCC 和 GDB,
在他的倡导下,目前人们熟悉的一些软件如 BIND、Perl、Apache、TCP/IP 等都成了自由软件
的经典之作。
如果说 Stallman 创立并推动了自由软件的发展,那么,Linus 毫不犹豫奉献给 GNU 的
Linux,则把自由软件的发展带入到一个全新的境界。
实际上,Linus 是一个理想主义者,但他又脚踏实地。当 Linux 的第一个“产品”版本
Linux 1.0 问世的时候,是按完全自由扩散版权进行扩散的。他要求 Linux 内核的所有源代
码必须公开,而且任何人均不得从 Linux 交易中获利。他这种纯粹的自由软件的理想实际上
妨碍了 Linux 的扩散和发展, 因为这限制了 Linux 以磁盘拷贝或者 CD-ROM 等媒体形式发行的
可能,也限制了一些商业公司参与 Linux 的进一步开发并提供技术支持的良好愿望。于是
Linus 决定转向 GPL 版权,这一版权除了规定自由软件的各项许可权之外,还允许用户出售
自己的程序拷贝。
这一版权上的转变对 Linux 的进一步发展可谓至关重要。从此以后,便有很多家技术力
量雄厚又善于市场运作的商业软件公司,加入到了原先完全由业余爱好者和网络黑客所参与
的这场自由软件运动,开发出了多种 Linux 的发行版本,磨光了自由软件许多不平的棱角,
增加了更易于用户使用的图形用户界面和众多的软件开发工具,这极大地拓展了 Linux 的全
球用户基础。
Linux 内核的功能以及它和 GPL 的结合,使许多软件开发人员相信这是有前途的项目,
开始参加内核的开发工作。并将 GNU 项目的 C 库、gcc、Emacs、bash 等很快移植到 Linux 内
核上来。可以说,Linux 项目一开始就和 GNU 项目紧密结合在一起,系统的许多重要组成部
分直接来自 GNU 项目。 Linux 操作系统的另一些重要组成部分则来自加利福尼亚大学 Berkeley
分校的 BSD UNIX 和麻省理工学院的 X Window 系统项目。这些都是经过长期考验的成果。
正是 Linux 内核与 GNU 项目、BSD UNIX 以及 MIT 的 X11 的结合,才使整个 Linux 操作系
统得以很快形成,而且建立在稳固的基础上。
当 Linux 走向成熟时,一些人开始建立软件包来简化新用户安装和使用 Linux。这些软
件包称为 Linux 发布或 Linux 发行版本。发行 Linux 不是某个个人或组织的事。任何人都可
以将 Linux 内核和操作系统其他组成部分组合在一起进行发布。在早期众多的 Linux 发行版
本中,最有影响的是 Slackware 发布。 当时它是最容易安装的 Linux 发行版本,在推广 Linux
的应用中,起了很大的作用。Linux 文档项目(LDP)是围绕 Slackware 发布写成的。目前,
RedHat 发行版本的安装更容易, 应用软件更多, 已成为最流行的 Linux 发行版本; 而 Caldera
则致力于 Linux 的商业应用,它的发展速度也很快。这两个发行版本也有相应的成套资料。
在中文的 Linux 发行版本方面,国内已经有众多的 Linux 厂商,如红旗 Linux,BluePoint
Linux,中软 Linux 等。每种发行版本有各自的优点和弱点,但它们使用的内核和开发工具则
是一致的


使用特权

评论回复
5
Rooney30| | 2016-1-29 14:50 | 只看该作者
Linux 最本质的东西体现在其“自由”和“开放”的思想,不过我们好像只会用,有点东西就藏起来

使用特权

评论回复
6
天灵灵地灵灵| | 2016-1-30 10:22 | 只看该作者
有了对这四个对象的分析,再结合文件系统、设备驱动程序的内容,读
者就可以具体分析自己感兴趣的相关内容。

使用特权

评论回复
7
小猫爱吃鱼| | 2016-1-30 16:58 | 只看该作者
LINUX还是比较复杂的,不过应用起来确实很好

使用特权

评论回复
8
玛尼玛尼哄| | 2016-1-31 10:53 | 只看该作者
这一切都源于什么?那就是 Linux 的创始人 Linus Torvalds 把 Linux
适时地放入到了 GNU 公共许可证下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

213

主题

3536

帖子

10

粉丝