编译kernel

本文介绍了Linux内核的基本概念、内核模块的作用,以及如何编译自定义内核。主要内容包括内核源码的获取、硬件环境的检查、内核功能的选择,特别是使用make menuconfig进行配置。编译过程涉及make -j8 all、make modules_install等命令,最后通过手动安装步骤完成内核更新,包括创建ramdisk、配置GRUB和引导新内核。
摘要由CSDN通过智能技术生成
  1. 认识内核
    kernel是整个操作系统最底层,它负责了整个硬件的驱动,以及提供各种系统所需的核心功能,包括防火墙机制,是否支持LVM或者Quota等文件系统,这些都是内核负责。计算机正在工作的是硬件,但是,你希望计算机帮你达成各项工作,都需要透过内核帮助才能执行,当然如果你要达成的工作核心不支持,那么你自然无法透过内核来控制计算机来工作。内核就是一个文件,可以实现上面诸多功能。

  2. 内核模块
    既然内核都已经包含了硬件侦测与驱动模块,那什么是内核模块,现在计算机硬件更新速度太快,如果我的核心比较旧,但我换了新的硬件,那么kernel肯定无法支持,而linux很早之前就开始模块化设定,亦即是将一些不常用过的类似驱动程序独立出来,编译成为模块,然后kernel可以在系统正常运行的过程中加载这个模块到kernel以支持模块的使用。

  3. 自制kernel-kernel编译
    kernel是一个文件,这个文件时透过哦source code编译而成的,应为内核是直接被写入到内存当中,所以当然要将他编译成为系统可以认识的数据才行。也就是说我们要获得kernel的源码。

  4. 更新内核的目的
    除了BIOS之外,内核是操作系统最早被加载到内存,他包含了所有可以让硬件与软件工作的信息,所以如果内核有问题,那么操作系统肯定会出现问题。kernel的编译重点在于你要你的linux做什么,如果没有必要的工作,就干脆不要加入内核中。kernel编译的可能目的如下: 新功能的需求,原本内核太过雍宗,与硬件搭配的稳定性,其他如嵌入式。

  5. 内核源码的解压缩/安装/观察

#第一步取得内核源码:
[root@localhost]# wget linux.cis.nctu.edu.tw/kernel/linux/kernel/v2.6/linux-2.6.30.3.tar.bz2
#解压缩内核
[root@localhost]# tar -jxvf linux-2.6.30.3.tar.bz2 -C /usr/src/kernels/

此时会在/usr/src/kernel目录下产生一个新的目录,linux-2.6.30.3,在这个目录下包含以下数据:

[root@localhost linux-2.6.30.3]# ls
arch     crypto         fs       Kbuild       Makefile  REPORTING-BUGS  sound
block    Documentation  include  kernel       mm        samples         usr
COPYING  drivers        init     lib          net       scripts         virt
CREDITS  firmware       ipc      MAINTAINERS  README    security

arch :硬件平台有关的项目,大部分指的是 CPU 的类别,例如 x86, x86_64, Xen 虚拟支持等;
block :成组训备较相关的训定数据,区块数据通常指的是大量储存媒体!还包阔类似 ext3 等文件系统的支持是否允许等。
crypto :核心所支持的加密的技术,例如 md5 或者是 des 等等;
Documentation :内核有关的一堆说明文件,若对内核有极大的兴趣,要瞧瞧这里!
drivers :一些硬件的驱劢程序,例如显示适配器、网络卡、 PCI 相关硬件等等;
firmware :一些旧式硬件的微脚本 (韧体) 数据;
fs :核心所支持的 filesystems ,例如 vfat, reiserfs, nfs 等等;
include :一些可讥其他过程调用的标头 (header) 定义数据;
init :一些初始化定义功能,包拪挂载不 init 程序的呼叨等;
ipc :定义Linux 操作系统内各程序的沟通;
kernel :定义内核的程序、核心状态、线程、程序的排程 (schedule)、程序的讨号 (signle) 等
lib :一些函数库;
mm :内存单元有关的各项数据,包括 swap 虚拟内存等;
net :网络有关的各项协讧数据,还有防火墙模块 (net/ipv4/netfilter/*) 等等;
security :包拪括selinux 等在内的安全性训定;
sound :音效有关的各项模块;
virt :虚拟化机器有关的信息,目前核心支持的是 KVM (Kernel base Virtual Machine)
1. 硬件环境检视与内核功能要求

[root@localhost linux-2.6.30.3]# cat /proc/cpuinfo
vendor_id       : GenuineIntel
cpu family      : 6
model           : 69
model name      : Intel(R) Core(TM) i5-4310U CPU @ 2.00GHz
[root@localhost linux-2.6.30.3]# lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值