linux内核深度解析,linux内核源码详解

首页 > 数码 > 作者:YD1662024-05-08 03:44:22

linux内核

最后有福利

在看一些 GNU 开源软件,或者阅读 Linux 内核、驱动源码时,相信大家和我一样,经常会遇到一些“看似熟悉”,但一仔细分析又不是很懂的 C 语言“稀奇古怪”的语法。其实这些都是 GNU C 对 C 语言语法的扩展。一般的教材中基本不会讲到这些,所以看不懂这些特殊的 C 语法应用也很正常。

此达人课将带领大家,一起学习 Linux 内核或 GNU 开源软件中对 C 语言各种扩展语法的使用,最终的目标是看懂 Linux 内核或 GNU 开源软件中这些“奇葩的语法”,扫除理解 Linux 内核驱动或 GNU 开源软件的语法障碍。

1《Linux内核设计与实现》

2《深入理解Linux内核》

3《Linux内核完全注释》

4《Linux内核源代码情景分析 》

一。《Linux内核设计与实现》

1. 单内核和微内核

linux内核深度解析,linux内核源码详解(1)

linux内核深度解析,linux内核源码详解(2)

Linux的内核虽然是基于单内核的,但是经过这么多年的发展,也具备微内核的一些特征。(体现了Linux实用至上的原则)

主要有以下特征:

  1. 支持动态加载内核模块
  2. 支持对称多处理(SMP)
  3. 内核可以抢占(preemptive),允许内核运行的任务有优先执行的能力
  4. 不区分线程和进程

2. 内核版本号

内核的版本号主要有四个数组组成。比如版本号:2.6.26.1 其中,

2 - 主版本号

6 - 从版本号或副版本号

26 - 修订版本号

1 - 稳定版本号

副版本号表示这个版本是稳定版(偶数)还是开发版(奇数),上面例子中的版本号是稳定版。

稳定的版本可用于企业级环境。

修订版本号的升级包括BUG修正,新的驱动以及新的特性的追加。

稳定版本号主要是一些关键性BUG的修改。


二,深入理解Linux内核

Linux 和一些商用unix的区别

1. Linux 主要是由 unix 内核加上 gnu的引用程序组成的 兼容IEEE POSIX 标准

2.linux 是传统上面的单块结构有逻辑上不同的部分组成

3.linux采用的是模块的方式(动态编译的方式)加载程序块。

4.Linux内核支持对称多处理器

5.Linux支持面向对象的虚拟文件系统,日志文集系统

优势:

1.免费

2.充分定制Linux系统 随时随地修改Linux代码

3.可以充分利用硬件平台 ,对硬件性能要求不高

4.Linux系统的代码运行时高效率的 ,而且没有商用的限制 。

5.内核精简

6.Linux系统兼容性好

7后台支持广泛

系统调用是 实现用户态到内核态的过程 , 特权模式由用户态转变为内核态 保存断点 ,最后 由硬件实现系统调用 返回进程断点

linux内核深度解析,linux内核源码详解(3)

三,《Linux内核完全注释》

1、选择《Linux内核完全注释》的理由

从现在起,我打算学习Linux内核,作一个基本的了解和入门吧。在网上也看了许多国内外的一些经典书籍的评价,最后我还是选择阅读《Linux内核完全注释》这本书,作为一个基础入门,这本书在网上的评价也还可以。

这本书讲解的Linux内核版本是Linux 0.11,虽然内核版本很低,但是作为学习来说应该还是可以的,该内核已经能够正常的编译运行,并且其中已经包括了Linux工作原理的精髓。由于Linux 0.11内核不超过2万行代码量,因此可以完全的通过一本书进行了解和学习。正是因为Linux 0.11内核代码量小,这本书对Linux 0.11内核的全部代码进行了注释,便于读者学习和理解。

为了让读者对所研究的系统有感性的了解,并能通过实验来加深对原来的理解,作者还专门重建了基于该内核的可运行的Linux 0.11系统,因为其中含有GNU gcc编译环境,因此使用该系统也能做一些简单的开发工作。

当然,使用早期内核作为学习的对象也有不足之处。所选用的Linux 0.11内核,不包含对虚拟文件系统VFS的支持、对网络系统的支持,仅支持a.out执行文件和对其他一些现有内核中复杂子系统的说明。

2、资料传送门

下面列举一下书中提供的一些资料链接,也方便以后自己的查找吧:

http://oldlinux.org/Linux.old/images/:该目录中含有已经制作好的内核映像文件bootimage和根文件系统映像文件rootimage。

http://oldlinux.org/Linux.old/bochs/:该目录中含有已经设置好的运行在计算机仿真系统bochs下的Linux系统。

http://oldlinux.org/Linux.old/Linux-0.11/:该目录中含有可以在Linux 0.11系统中使用的其他一些工具程序和原来发布的一些安装说明文档。

http://oldlinux.org/Linux.old/kernel/0.1x/:可以在这里下载本书讲解的Linux 0.11内核源码,文件名:linux-0.11.tar.gz。

3、内核源码目录结构

整个Linux 0.11内核源代码的目录结构如下图所示:

linux内核深度解析,linux内核源码详解(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.