首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户2607
修改
文章:
14
阅读:
33259
评论:
2
赞:
41
好友
私信
个人主页
文章
14
原创
0
阅读
33259
评论
2
赞
41
原创
看Linux内核源码练内力必备技能
2007-4-5 11:53
2291
1
1
分类:
MCU/ 嵌入式
由于操作系统的内核贴近硬件,需要对计算机的体系结构有所了解,例如CPU的工作原理、接口特性和BIOS调用等。读者千万别因为这些望而却步,这里将介绍一些阅读Linux内核源码必备的技能。
获取内核
一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到
http://www.kernel.org/
去下载,最好使用它的镜像站点下载。请在
http://www.kernel.org/mirrors/
里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。这里有两种类型的代码包,即linux-2.4.23.tar.gz和linux-2.4.23.tar.bz2。两个代码包内容是一样的,只是压缩程序不同。.gz是用gzip压缩的;.bz2是用bzip2压缩的。bzip2的压缩能力比gzip强。
代码目录结构
在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):
◆arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
◆include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
◆init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
◆mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
◆drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
◆ipc目录包含了核心进程间的通信代码。
◆modules目录存放了已建好的、可动态加载的模块。
◆fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。
◆net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
◆lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
◆
script
s目录包含用于配置核心的脚本文件。
◆
document
ation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
阅读起步
在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。
LXR(
http://lxr.linux.no
)是一个辅助阅读的好工具,它能对指定的源码文件建立索引数据库,利用Perl脚本动态生成包含源码的Web页面。在此Web页中,所有的变量、常量和函数都以超连接的形式给出,查阅十分方便。另外,LXR还提供标识符搜索和文件搜索,结合程序Glimpse(
http://glimpse.cs.arizona.edu
)还可以对所有的源码文件进行全文检索,甚至包括注释。其安装方法可以参照其代码中的帮助文件。在Window下也有一适合Linux内核阅读的工具称作Source Insight(可从
http://www.sourcedyn.com
下载)。
写原创有奖励!2025面包板原创奖励正在进行中
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
点赞(
1
)
收藏
分享到:
上一篇:
PSD4000系列为16位及32位嵌入系统增添外部闪存和逻辑
下一篇:
使用强大的Snort
PARTNER CONTENT
换一换>
更多>
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户2607
修改
文章:
14
阅读:
33259
评论:
2
赞:
41
好友
私信
个人主页
文章
14
原创
0
阅读
33259
评论
2
赞
41
最新评论
更多
分类后的垃圾,都去哪了? 几乎没有看到有关详细报道,让大众知道而积极主动地配合。
自做自受 ...
评论博文
2025-7-12
呵呵,AI遇到难题了?
说到充电桩、电动车,借此说两句,旨在探讨个人的好奇,“新”在哪儿? 总说“新能源汽车实现节能减排”,就全产业链来看,矿 ...
自做自受 ...
评论博文
2025-7-12
1440万台,数字隔离器如何让充电桩告别“电 ...
优势在探究,万一不确定?风险一箩筐,克服力度大。 优势6个,风险8个。 怎敢入网? 制造商是进是退呢? ...
自做自受 ...
评论博文
2025-7-12
为什么LoRaWAN产品入不了网?
最新
博文
为什么LoRaWAN产品入不了网?
普科科技PRBTEK电流互感器PK系列使用 ...
RL电路电流波形分析
资料下载
本周热帖
电子学(第二版)
基础电子电路及维修
打印机、复印机、投影仪、扫描仪和传 ...
LR电路的电流波形计算
太好了!轻松搞定DCDC电源转换电路设 ...
2025世界人工智能大会(WAIC)| Arm携 ...
浅谈超声波传感器的原理及性能指标 ...
请教个反激电源次级GND的问题 ...
【行业方案】一文了解蓝牙的测试方式 ...
锁存型霍尔IC的定义和典型应用实例 ...
最新资讯
芯语最新
可能是游戏本的未来新标准:探究“AI ...
六位半导体企业掌舵人获评2025年中国 ...
苹果COO本月卸任,继任者是印度裔 ...
2025福布斯中国最佳CEO榜单揭晓:王传 ...
拾放设备的标准化和模块化操作实例 ...
突发!全球芯片巨头Manus突然撤离中国 ...
李想:理想i8发布会大概率要“致敬小 ...
HMD Global 宣布退出美国市场停止在当 ...
美国对墨西哥征30%关税
AI时代的华人打工皇帝:年薪2亿美元! ...
EE直播间
更多
在线研讨会
更多
利用先进精密仪器仪表解决方案,优化研发并加快产品上市
在服务器电源中使用低压 eGaN FET 提升功率密度
安森美(onsemi)碳化硅产品的介绍和应用
探索适用于移动机器人的先进技术
热门
推荐
WAIC独家议程公开!Arm携阿里云/小鹏/联想揭秘AI落地密码
WAIC重磅专场|从云端到机器人,深度揭秘Arm CSS如何重塑AI基础设施
如何通过半导体技术提升光伏与储能系统的效率?
超越单处理器嵌入式系统的演进
我要评论
0
1
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/5
报名:2025国际AI+IoT生态发展大会/MCU及嵌入式技术论坛
7月24日,深圳。年度 AIoT 专业盛会:深耕可穿戴、智能家居、机器人等场景的 AI 应用,链接产业链上下游资源。 MCU及嵌入式技术论坛:共同探讨MCU的最新技术、市场趋势和应用前景; 国际电机驱动与控制论坛:探讨电机驱动与控制技术的最新进展及其在多个领域的应用。
正在接受预约❗Arm@2025 世界人工智能大会:定义AI计算的千亿未来 ...
全球3000亿颗芯片的生态霸主Arm,如何定义AI计算未来?世界人工智能大会(WAIC 2025)是全球 AI 领域最具影响力的行业盛会之一,Arm 作为业界领先的低功耗、高性能计算平台,在 7 月 27 日大会期间,Arm 将带来以“AI 无处不在:从云到边尽在 Arm”为主题的技术论坛,与产业生态共探 AI 未来,共创智能科技新篇章。
【2025面包板社区内容狂欢节】发帖/回帖赢25万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
E币兑换「你的愿望清单,社区来买单!」
为了把E币兑换变成更懂你们的“小确幸”,我们决定开启「社区心愿兑换」计划! 简单来说:你留言想要什么礼品,直接告诉我们,我们整理后纳入兑换;
【2025第1期拆解活动】拆解——洞见电子产品设计智慧!
本期活动已结束,数据暂未统计完毕,请耐心等待。新一期活动正在准备中...
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025汽车电子峰会
2025 AI+IoT 生态大会
2025MCU及嵌入式论坛
直播:介电常数那些事儿
汽车全域ADAS方案
行业及技术活动
研华嵌入式论坛(深圳 武汉 苏州)
嵌入式设计资源库
杂志免费订阅
EE直播间
白皮书
小测验
在线研讨会
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论