博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux源码下载,配置和编译内核
阅读量:7042 次
发布时间:2019-06-28

本文共 1582 字,大约阅读时间需要 5 分钟。

今天在今日头条看到的Liunx学习系列总结,这里仅仅用于做记录,方便以后查阅。

linux学习1,源码下载,配置和编译内核

https://www.toutiao.com/a6628330823303037443

下载 linux 内核

下载 linux 内核有两种方式,一是利用 git 下载,一是通过 http 下载。我都试了下,发现我的网络使用 git 下载比较慢,因此就采用 http 下载方式了。linux 内核的官网地址是:

https://www.kernel.org/

选择好自己想下载的版本后,点击之,得到下载链接,在 linux 主机中新建 kernel 目录,执行以下命令:

wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.gz复制代码

接着,执行解压缩命令,就可以把内核解压了。

tar xf linux-2.6.0.tar.gz复制代码

我们使用 tree 命令查看代码树:

tree -L 2复制代码

可以看出,linux 内核的代码组织的很清晰。

配置和编译 linux 内核

因为 linux 有太多功能,也支持太多硬件,因而在编译 linux 内核之前,需要我们先配置这些信息。这些配置项要么是二选一,要么是三选一。二选一好理解,就是“要”还是“不要”这个功能。三选一其实就是在二选一的基础上多了个 module 选择项,如果选择了该项,则编译时,这部分的功能实现代码是以模块的形式生成。

内核提供了一些工具用于配置内核,例如

make config复制代码

该工具会逐一遍历所有配置项,使用者可以选择 yes no 或者 module,不过逐一遍历会很麻烦,所以还可以使用基于 ncurse 库的图形配置界面工具:

make menuconfig复制代码

实在不知道如何配置,可以执行下面的命令进行默认配置:

make defconfig复制代码

配置的目的,就是高速 linux 内核代码我们将使用何种架构的机器运行它,以及我们需要它提供哪些功能。

我们先进入 linux 内核源码目录,执行以下几条命令:

cd linux-2.6.0make defconfigmake menuconfig复制代码

意思就是先按照默认配置 linux 内核,再用打开图形界面,看看都有哪些配置项。执行完最后一条命令后,应该可以看到如下界面:

我们进入 loadable module support,发现有如下配置项,可以根据自己的需要取消或者选中。

配置完毕,就可以执行 make 命令编译了

make bzImage -j4复制代码

-j4 的意思是使用 4 个作业数来编译 linux 内核。默认情况下,make 值衍生一个作业,因为 Makefiles 经常会出现不正确的依赖信息,对于这些依赖,多个作业反而容易出错。但是,linux 内核不会出现不正确的依赖信息,因此可以增加作业数来加快编译工作。

可以看出,编译工作正在进行,稍后片刻,就会发现 Kernel: arch/x86_64/boot/bzImage is ready。

大神还有如下文章对我很有帮助

linux4 busybox源码下载、编译、安装集成介绍

https://www.toutiao.com/a6628907898443416067复制代码

linux学习2,学会调试内核,让操作系统打印自己的名字

https://www.toutiao.com/i6628547414565323268/

linux学习3,运行编译的内核,五分钟让linux跑起来

https://www.toutiao.com/i6628770434030502404/

转载地址:http://dveal.baihongyu.com/

你可能感兴趣的文章
GridView的各种用法
查看>>
c# 读取txt文本内容
查看>>
FPS, VSync, Triple Buffering
查看>>
如何配置MySQL集群在一台服务器
查看>>
Lync Server 2013 部署 _ Lync Server 边缘高可用(DNS轮询)
查看>>
memcached安装
查看>>
每天laravel-20160719|Parser
查看>>
浅谈Linux开机启动流程
查看>>
Android 的NumberPicker相关问题
查看>>
dns安装配置
查看>>
我的友情链接
查看>>
安全世界观
查看>>
Linux网络编程基础_4_网络层(六)--移动IP与网络层设备
查看>>
Eclipse 的 J2EE Preview Server 端口设置
查看>>
如何设置ESXi的SNMP
查看>>
Linux下Sed命令的用法
查看>>
ArcEngine的ToolbarControl解析
查看>>
Windows安装使用Jenkins
查看>>
codeforces 961B Lecture Sleep
查看>>
2016年4月18日
查看>>