内核学习总结(一)

1.如何获取内核

a.获取 Linus 树最简单的方法就是从 kernel.org 下载 tar 文件。


b. git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6,下载的也是源码。
    git pull
如果没有对手头的源码树代码作出任何修改, 该命令会使得手头的源码树与 Linus 树的最新状态保持一致。 当使用 git clone 进行复制时,git 命令会记住复制源目录的 URL,因此执行 git pull 时不需要指定 URL



2.如何编译内核

make menuconfig

make

安装分为两个阶段进行。 第一阶段是模块的安装。 在编译完成的源码树的根目录下执行下列命令。
make modules_install
这时,编译后的模块就安装到 /lib/modules 下。
第二阶段是安装内核二进制映像文件,生成并安装 boot 初始化文件系统映像文件。同样也是在源码树的根目录下执行下列命令

make install
这时,内核映像文件就安装到 /boot 下
.


3.如何编写内核模块

Linux 内核是单内核(monolithic kernel) 也就是所有的内核功能都集成在一个内核空间内. 但是内核具有模块功能, 可以将磁盘驱动程序、 文件系统等独立的内核功能制作成模块,并动态添加到内核空间或者删除。
内核模块是可以动态添加到 Linux 内核空间的二进制文件,文件扩展名为 ko.

a.在编译内核的时候,通过设置make menuconfig的时候模块选择为“M”,则可以手动选择是将模块编译成ko,而不是直接编译进内核,优点是灵活,而选择模式为“Y”的话,直接编译进内核,优点是自动。

b.手动编写内核模块,和普通的编写C代码一样,只是调用的库不同,然后需要insomod module加载到内核。最后可以通过lsmod来察看。


4.如何使用Git

经常逛Github网站,但是实际用的太少,需要加强...

Git 具有这些特征 :分布式仓库 ;与互联网具有亲和性 ; 版本更新记录管理不以单个文件为对象, 而是将整个源码树作为一个对象;处理速度快等.

先说分布式仓库: 在 Git 中, 工作区本身就是仓库。也就是说, 开发者拥有各自的仓库, 它们之间不存在结构层面的上下关系, 所有仓库都是并行存在的。

1.创建仓库:   mkdir hello  ; cd hello/ ; git init ;

2.最小化设置:在进行实际的文件操作前, 首先要进行最低限度的必要设置

#git config --add user.email "xiaqing01@126.com"
#git config --add user.name “sq"  ,这样设置就已经写在了 .git/config 文件中.
git init --初始化项目,刚开始初始化项目的时候使用
git clone --从服务器上克隆到本地,如果服务器上面已经有项目了,直接使用这个命令clone到本地进行使用。
git status --查看版本信息
git add  --添加本地文件
git commit --提交更改
git push --tags --将更改推送到服务器

--------------------------------------------------------

5.使用 localmodconfig 缩短编译时间

make localmodconfig
make
make modules_install
make install

原因是因为生成了精简的.config,还一部分是将某些模块编译后不安装了内核,这样需要手动加载。localmodconfig 既能够节约详细检查 config 选项的时间, 又能缩短编
译所花费的时间。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值