- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)
linux 是如何组成的?
答:linux 是由用户空间和内核空间组成的为什么要划分用户空间和内核空间?
答:有关 CPU 体系结构,各处理器可以有多种模式,而 LInux 这样的划分是考虑到系统的安全性,比如 X86 可以有 4 种模式 RING0~RING3 RING0 特权模式给 LINUX 内核空间RING3 给用户空间
linux 内核是如何组成的?
答:linux 内核由 SCI(System Call Interface)系统调用接口、PM(Process Management) 进程管理、MM(Memory Management)内存管理、Arch、
VFS(Virtual File Systerm)虚拟文件系统、NS(Network Stack)网络协议栈、DD(Device
Drivers) 设备驱动
linux 内核源代码
linux 内核源代码是如何组成或目录结构?
答: arc 目录 存放一些与 CPU 体系结构相关的代码 其中第个 CPU 子目录以分解
boot,mm,kerner 等子目录
block 目录 部分块设备驱动代码
crypto 目录 加密、压缩、CRC 校验算法
documentation 内核文档
drivers 设备驱动
fs 存放各种文件系统的实现代码
include 内核所需要的头文件。与平台无关的头文件入在 include/linux 子目录下,与平
台相关的头文件则放在相应的子目录中
init 内核初始化代码
ipc 进程间通信的实现代码
kernel Linux 大多数关键的核心功能者是在这个目录实现(程序调度,进程控制,模块
化)
lib 库文件代码
mm 与平台无关的内存管理,与平台相关的放在相应的 arch/CPU 目录 net 各
种网络协议的实现代码,注意而不是驱动
samples 内核编程的范例scripts 配置内核的脚本security SElinux 的模块sound 音频设备的驱动程序usr cpip 命令实现程序
virt 内核虚拟机
内核配置与编译一、清除
make clean 删除编译文件但保留配置文件
make mrproper 删除所有编译文件和配置文件
make distclean 删除编译文件、配置文件包括 backup 备份和 patch 补丁
二、内核配置方式
make config 基于文本模式的交互式配置
make menuconfig 基于文本模式的菜单配置
make oldconfig 使用已有的配置文件(.config),但配置时会询问新增的配置选项
make xconfig 图形化配置
三、make menuconfig 一些说明或技巧
在括号中按“y”表示编译进内核,按“m”编译为模块,按“n”不选择,也可以按空格键进行选择 注意:内核编译时,编译进内核的“y”,和编译成模块的“m”是分步编译的
四、快速配置相应体系结构的内核配置
我们可以 到arch/$cpu/configs 目录下copy 相应的处理器型号的配置文件到内核源目录下替换.config 文件
五、编译内核
1.
————————————————————————————
make zImage 注:zImage 只能编译小于 512k 的内核
make bzImage
同样我们也可以编译时获取编译信息,可使用
make zImage V=1 make bzImage V=1
编译好的内核位于 arch/$cpu/boot/目录下
————————————————————————————
以上是编译内核 make menuconfig 时先“m”选项的编译 接下来到编译“y”模块,也就是编译模块
2.
make modules 编译内核模块
make modules_install 安装内核模块 这个选项作用是将编译好的内核模块从内核
源代码目录 copy 至/lib/modules 下
六、制作 init ramdisk
mkinitrd initrd-$version $version
/**** mkinitrd initrd-$(可改)version $version(不可改,因为这 version 是寻找
/lib/modules/下相应的目录来制作) ****/
七、内核安装
复制内核到相关目录下再作 grub 引导也就可以了
1.cp arch/$cpu/boot/bzImage /boot/vmlinux-$version 2.cp $initrd /boot/
3.修改引导器/etc/grub.conf(lio.conf)正确引导即可
#incldu
文档评论(0)