上一节介绍了 linux 的历史,本节一起来看看它的源代码树,然后我们尝试配置和编译内核。
下载 linux 内核
下载 linux 内核有两种方式,一是利用 git 下载,一是通过 http 下载。我都试了下,发现我的网络使用 git 下载比较慢,因此就采用 http 下载方式了。linux 内核的官网地址是:
在一个特定的系列下,Linus 会定期发布新内核,每个新内核都是一个新的修订版本。比如 2.6 内核系列的第一个版本是 2.6.0,第二个版本是 2.6.1。这些修订版包含 BUG 修复,新驱动等一些新特性。通常,修订版本号为偶数,便表示是一个相对稳定,已经发行的版本;若为奇数,则表示还在开发中,目前不太稳定,运行总可能会出现比较大的问题的版本。
wget -c
一、方法如下 1、wget是linux下一个从网络上自动下载文件的常用自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。一般的使用方法是: wget + 空格 + 参数 + 要下载文件的url路径,例如:wget http://www.linux。
可以看出,内核被下载下来了。
接着,执行解压缩命令,就可以把内核解压了。
tar xf linux-2.6.0.tar.gz
我们使用 tree 命令查看代码树:
tree -L 2
1、进入官网后点击如下图所示 。2、进入镜像下载以后,点击DVD ISO按钮。3、随便选择一个链接都可以进行下载。安装方式:安装在虚拟机上(学习阶段可用)的步骤 1、打开虚拟机选择创建新的虚拟机。2、在弹出的新建虚拟机向导。
Linux有很多发行版,比较有名的比如fedora、Ubuntu、opensuse多了去了,本人觉得OpenSUSE界面和性能都不错,都可以在各自的官网上下载ISO文件,下载后用官网提供的工具写到U盘上,然后从U盘引导安装。
可以看出,linux 内核的代码组织的很清晰。
配置和编译 linux 内核
因为 linux 有太多功能,也支持太多硬件,因而在编译 linux 内核之前,需要我们先配置这些信息。这些配置项要么是二选一,要么是三选一。二选一好理解,就是“要”还是“不要”这个功能。三选一其实就是在二选一的基础上多了个 module 选择项,如果选择了该项,则编译时,这部分的功能实现代码是以模块的形式生成。
内核提供了一些工具用于配置内核,例如
make config
该工具会逐一遍历所有配置项,使用者可以选择 yes no 或者 module,不过逐一遍历会很麻烦,所以还可以使用基于 ncurse 库的图形配置界面工具:
make menuconfig
1、通过浏览器下载:点击左下角的符号,然后在常用的程序里面,找到网络浏览器。打开它,就可以进入网页;2、下载普通的文件:按照下图一的步骤点击选择下载,下载后点击保存,下载的文件会保存在家目录,下载目录内。如图二。
实在不知道如何配置,可以执行下面的命令进行默认配置:
make defconfig
wget -c 后面是该网络地址和文件的位置。例如:wget -c http://apache.opncas.or/MySQL/MySQL-7/v7.0.67/bin/MySQL.zip就是下载该网络想的MySQL.zip压缩包。其中-c:断点续传,如果下载中断,那么连接恢复时会从。
配置的目的,就是高速 linux 内核代码我们将使用何种架构的机器运行它,以及我们需要它提供哪些功能。
我们先进入 linux 内核源码目录,执行以下几条命令:
cd linux-2.6.0make defconfigmake menuconfig
意思就是先按照默认配置 linux 内核,再用打开图形界面,看看都有哪些配置项。执行完最后一条命令后,应该可以看到如下界面:
我们进入 loadable module support,发现有如下配置项,可以根据自己的需要取消或者选中。
1、我们需要更新源,使用命令sudo apt-get update,使用旧的源可能不会安装新版本的a软件,也可能直接报错误提示。2、使用命令在终端安装a,sudo apt-get install a,在下面输入y进行安装。3、会有一些安装包的提示,不过。
配置完毕,就可以执行 make 命令编译了
make bzImage -j4
-j4 的意思是使用 4 个作业数来编译 linux 内核。默认情况下,make 值衍生一个作业,因为 Makefiles 经常会出现不正确的依赖信息,对于这些依赖,多个作业反而容易出错。但是,linux 内核不会出现不正确的依赖信息,因此可以增加作业数来加快编译工作。
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。