Linux内核系列(二) 如何阅读源码

现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。linux内核源代码各个目录就可以大致了解对应哪些方面:

1)arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。
2)include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。
3)init 此目录包含核心启动代码。
4)mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于archkernel目录下。
5)net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。
6)lib 此目录包含了核心的库代码。与处理器结构相关库代码被放在arch/*/lib/目录下。
7)scripts此目录包含用于配置核心的脚本文件。
8)Documentation 此目录是一些文档,起参考作用

下面继续对阅读源码提供一些线索和指引:

1、内核

内核中,特定结构的代码在arch/*/kernel,调度程序在kernel/sched.c,fork的代码在kernel/fork.c,task_struct 数据结构在 include/linux/sched.h中;

2、内存管理

 内存管理的代码主要在/mm,但特定结构的代码在arch/*/mm。缺页中断处理的代码在mm/memory.c ,而内存映射和页高速缓存器的代码在mm/filemap.c。缓冲器高速缓存是在mm/buffer.c 中实现,而交换高速缓存是在mm/swap_state.c 和mm/swapfile.c中实现;

3、进程间通信

   所有System V IPC 对象权限都包含在 ipc_perm 数据结构中,这可以在  include/linux/ipc.h中找到。 System V 消息是在 ipc/msg.c中实现, 共享内存在 ipc/shm.c中,信号量在  ipc/sem.c中,管道在 ipc/pipe.c中实现;

4、中断处理

内核的中断处理代码是几乎所有的微处理器所特有的。中断处理代码在  arch/i386/kernel/irq.c中,其定义子在 include/asm-i386/irq.h中;

5、文件系统

EXT2 文件系统的源代码全部在  fs/ext2/ 目录下,而其数据结构的定义在  include/linux/ext2_fs.h, ext2_fs_i.h 及 ext2_fs_sb.h中。 虚拟文件系统的数据结构在 include/linux/fs.h中描述,而代码是在fs/*中。 缓冲区高速缓存与更新内核的守护进程的实现是在 fs/buffer.c中 ;

6、网络相关

网络代码保存在/net中,大部分的include文件在include/net下,BSD套节口代码在net/socket.c中,IP 第4版本的套节口代码在net/ipv4/af_inet.c。一般的协议支持代码(包括sk_buff 处理例程)在net/core下,TCP/IP联网代码在net/ipv4下,网络设备驱动程序在/drivers/net下;

7、模块相关

内核模块的代码部分在内核中,部分在模块包中,前者全部在kernel/modules.c中,而数据结构和内核守护进程kerneld的信息分别在include/linux/module.h和include/linux/kerneld.h 中。如果你想看ELF目标文件的结构,它位于include/linux/elf.h中。

8、设备驱动程序

Linux内核源代码的很多行是设备驱动程序。Linux设备驱动程序的所有源代码都保存在/driver,可以功能和类型可以进一步划分,这里暂不详述。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Windows平台上阅读Linux内核源码,可以使用Source Insight软件。首先,你需要在官网https://www.sourceinsight.com/下载并安装Source Insight软件。然后,按照以下步骤进行操作: 1. 在Linux平台上获取内核源码,可以使用Git命令。首先,在Linux系统中安装Git,并确保已经配置好Git环境。然后,在终端中运行以下命令来克隆内核源码: ``` git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git ``` 这将克隆2.6版本的内核源码到你的本地。 2. 将克隆的内核源码文件夹复制到Windows平台上。你可以使用文件传输工具(如U盘或网络传输)将文件夹从Linux系统复制到Windows系统。 3. 在Windows系统中打开Source Insight软件。点击菜单栏的"File",然后选择"Open Project"。浏览并选择你复制到Windows系统的内核源码文件夹,点击"OK"打开项目。 4. 现在你可以在Source Insight中浏览和阅读Linux内核源码了。你可以使用Source Insight提供的各种功能,如代码导航、搜索和查看函数定义等,来方便地浏览和理解源码。 请注意,这只是一种在Windows平台上阅读Linux内核源码的方法,你也可以尝试其他编辑器或IDE来进行阅读。 #### 引用[.reference_title] - *1* *2* *3* [在Windows用Source Insight阅读Linux内核源码](https://blog.csdn.net/weixin_44692935/article/details/113745833)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brainer-Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值