linux、内核源码、内核编译与配置、内核模块开发、内核启动流程.docx
《linux、内核源码、内核编译与配置、内核模块开发、内核启动流程.docx》由会员分享,可在线阅读,更多相关《linux、内核源码、内核编译与配置、内核模块开发、内核启动流程.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、linux、内核源码、内核编译与配置、内核模块开发、内核启动流程linux、内核源码、内核编译与配置、内核模块开发、内核启动流程转linux是怎样组成的?答:linux是由用户空间和内核空间组成的为什么要划分用户空间和内核空间?答:有关CPU体系构造,各处理器能够有多种形式,而LInux这样的划分是考虑到系统的安全性,比方X86能够有4种形式RING0RING3RING0特权形式给LINUX内核空间RING3给用户空间linux内核是怎样组成的?答:linux内核由SCISystemCallInterface系统调用接口、PMProcessManagement进程管理、MMMemoryMana
2、gement内存管理、Arch、VFSVirtualFileSysterm虚拟文件系统、NSNetworkStack网络协议栈、DDDeviceDrivers设备驱动linux内核源代码linux内核源代码是怎样组成或目录构造?答:arc目录存放一些与CPU体系构造相关的代码其中第个CPU子目录以分解boot,mm,kerner等子目录block目录部分块设备驱动代码crypto目录加密、压缩、CRC校验算法documentation内核文档drivers设备驱动fs存放各种文件系统的实当代码include内核所需要的头文件。与平台无关的头文件入在include/linux子目录下,与平台相关
3、的头文件则放在相应的子目录中init内核初始化代码ipc进程间通信的实当代码kernelLinux大多数关键的核心功能者是在这个目录实现程序调度,进程控制,模块化lib库文件代码mm与平台无关的内存管理,与平台相关的放在相应的arch/CPU目录net各种网络协议的实当代码,注意而不是驱动samples内核编程的范例scripts配置内核的脚本securitySElinux的模块sound音频设备的驱动程序usrcpip命令实现程序virt内核虚拟机内核配置与编译一、去除makeclean删除编译文件但保留配置文件makemrproper删除所有编译文件和配置文件makedistclean删除
4、编译文件、配置文件包括backup备份和patch补丁二、内核配置方式makeconfig基于文本形式的交互式配置makemenuconfig基于文本形式的菜单配置makeoldconfig使用已有的配置文件.config,但配置时会询问新增的配置选项makexconfig图形化配置三、makemenuconfig一些讲明或技巧在括号中按“y表示编译进内核,按“m编译为模块,按“n不选择,可以以按空格键进行选择注意:内核编译时,编译进内核的“y,和编译成模块的“m是分步编译的四、快速配置相应体系构造的内核配置我们能够到arch/$cpu/configs目录下copy相应的处理器型号的配置文件到
5、内核源目录下替换.config文件五、编译内核1.makezImage注:zImage只能编译小于512k的内核makebzImage同样我们可以以编译时获取编译信息,可使用makezImageV=1makebzImageV=1编译好的内核位于arch/$cpu/boot/目录下以上是编译内核makemenuconfig时先“m选项的编译接下来到编译“y模块,也就是编译模块2.makemodules编译内核模块makemodules_install安装内核模块-这个选项作用是将编译好的内核模块从内核源代码目录copy至/lib/modules下六、制作initramdiskmkinitrdin
6、itrd-$version$version/*mkinitrdinitrd-$(可改)version$version(不可改,由于这version是寻找/lib/modules/下相应的目录来制作)*/七、内核安装复制内核到相关目录下再作grub引导也就能够了1.cparch/$cpu/boot/bzImage/boot/vmlinux-$version2.cp$initrd/boot/3.修改引导器/etc/grub.conf(lio.conf)正确引导即可#incldue#includestaticinthello_init(void)printk(KERN_WARNINGHello,wo
7、rld!n);return0;staticvoidhello_exit(void)printk(KERN_INFOGood,world!n);module_init(hello_init);module_exit(hello_exit);_hello,world!范例_一、必需模块函数1.加载函数module_init(hello_init);通过module_init宏来指定2.卸载函数module_exit(hello_exit);通过module_exit宏来指定编译模块多使用makefile二、可选模块函数1.MODULE_LICENSE(*);许可证申明2.MODULE_AUTHOR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 内核 源码 编译 配置 模块 开发 启动 流程
限制150内