《Linux内核设计与实现》——从内核出发
来源:互联网 发布:好看的网络剧2017 编辑:程序博客网 时间:2024/04/29 20:04
一、获取源代码
1、使用git获取
git clone git:://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
git pull
2、安装内核源代码
3、使用补丁
1)、在Linux内核社区中,补丁是通用语。可以以补丁的形式发布对代码的修改,也可以以补丁的形式接受其他人所做的修改。
2)、要应用增量补丁,从你的内核源代码树开始,只需要运行:
patch -pl < . . ./patch-x.y.z
二、内核源码树(P11-12 表2-1)
三、编译内核
1、配置内核
1)、内核可以配置各种选项;以CONFIG_FEATURE形式表示,其前缀为CONFIG。配置既可以用来决定那些文件编译进内核,也可以通过预处理命令处理代码。
2)、配置选项要么二选一,要么三选一。二选一就是yes或no。三选一可以是yes、no或module。module意味着该配置项被选定了,但编译的时候这部分功能的实现代码是
以模块的形式生成的。在三选一的情况下,yes选项表示把代码编译进主内核映像中,而不是作为一个模块。
3)、内核配置工具
I、字符界面:make config
II、基于ncuese库编制的图形界面:make menuconfig
III、基于gtk+的图形工具:make gconfig
IV、默认配置:make defconfig
V、验证和更新配置:make oldconfig
4)编译(make)
2、减少编译的垃圾信息
1)、make > . . ./detritus:尽量少看到垃圾信息,却又不希望错过错误报告与警告信息。
2)、make > /dev/null:吧无用的输出信息重定向到永无返回值的黑洞/dev/null。
3、衍生多个编译作业
1)、make程序能把编译过程拆分成多个并行的作业。
2)、为了以多个作业编译内核,使用命令:make -jn,其中n是要衍生的作业树。
4、安装新内核
1)、模块的安装是自动的,也是独立于体系结构的。以root身份,只需运行:make modules_install。
四、内核开发的特点
I、内核编程时既不能访问C库也不能访问标准的C头文件。
II、内核编程时必须使用GUN C。
III、内核编程时缺乏像用户空间那样的内存保护机制。
IV、内核编程时难以执行浮点运算。
V、内核给每个进程只有一个很小的定长栈堆。
VI、由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发。
VII、要考虑可移植的重要性。
- Linux内核设计与实现——从内核出发
- 《Linux内核设计与实现》——从内核出发
- Linux内核设计与实现 之二 从内核出发
- 《linux内核设计与实现》--从内核出发 第二章 进程线程
- linux内核设计与实现【第三版】摘记----第二章:从内核出发
- 读薄「Linux 内核设计与实现」(1) - 从内核出发
- 《Linux内核的设计与实现》读书笔记(二)---从内核出发
- 基于《Linux内核设计与实现》笔记概述------从内核出发
- 《linux内核设计与实现》Chapter2内核出发(笔记)
- 【读书笔记】LINUX设计与实现---第2章 从内核出发
- Linux内核学习笔记——从内核出发
- 【Linxu内核设计与实现】-第2章 从内核出发
- 《Linux内核设计与实现》——Linux内核简介
- Linux内核设计与实现——内核简介
- Linux内核设计与实现——内核同步
- 《Linux内核设计与实现》——内核同步介绍
- 《Linux内核设计与实现》——内核同步方法
- linux内核设计与实现读书笔记——内核同步
- Xcode6自带reveal功能
- apache配置请求转发
- 第九周项目三 输出星号图(b)
- 第九周项目六 三色球问题
- linux块设备的IO调度算法和回写机制
- 《Linux内核设计与实现》——从内核出发
- RTF文本格式解析-西班牙语乱码问题
- Hello
- JSON 之FastJson解析
- HTTP协议上的文件上传
- 两种单例模式区别
- Win7、Ubuntu双系统正确卸载Ubuntu系统
- Android学习系列二:SVN安装及检出工程
- The constructor Job(Configuration,String) is deprecated