linus 说,内核就是为上层应用程序提供运行环境并管理整个系统软硬件资源的一个程序。(管理和服务程序)
1.2 Linux 体系结构及内核功能
Linux 操作系统从上到下,可以分为:用户应用程序、库、内核、驱动程序。图形表示如下
1.内核要完成如下的功能
1)进程管理
2)内存管理
3)提供文件系统支持
4)设备控制
5)中断和异常响应
6)网络功能
1.3 内核版本号和补丁制作
1.版本号的含义
linux-2.6.30.1
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 30
EXTRAVERSION = 1
说明:
2.6 - 内核主版本号(偶数稳定.每隔2~3 年出一个稳定版本)
30 - 次版本号(不分寄偶,每2 个月发布一个稳定版本)
1- 扩展版本号(bug fix)
2.补丁的制作以及打补丁
1)制作补丁
diff -Nur linux-2.6.10 linux-2.6.13 > 2.6.33.13.patch
含义:制作从linux-2.6.33.10到linux-2.6.33.13的补丁包
2)补丁的安装
进入到要打补丁的目录
cd linux-2.6.33.10
patch -p1 < ../2.6.33.13.patch其中 -p1 表示忽略一级目录
1.4内核源码目录结构
├── arch
├── block
├── COPYING
├── CREDITS
├── crypto
├── Documentation
├── drivers
├── firmware
├── fs
├── include
├── init
├── ipc
├── Kbuild
├── kernel
├── lib
├── MAINTAINERS
├── Makefile
├── mm
├── modules.builtin
├── modules.order
├── Module.symvers
├── net
├── README
├── REPORTING-BUGS
├── samples
├── scripts
├── security
├── sound
├── System.map
├── tools
├── usr
├── virt
├── vmlinux
├── vmlinux.o
└── webee210_defconfig
arch:体系结构
1.5 内核配置及编译
1)解压内核
tar xvf linux-2.6.35.7-webee210.tar.bz2 -C /opt/src/
需要注意的是因为内核源码中有硬连接,所以不能解压在windows的文件系统中
2)检查交叉编译环境
arm-linux-gcc -v
检查Makefile里面的交叉编译器
ARCH= arm
CROSS_COMPILE=arm-linux
3)配置内核
默认配置文件存放目录: arch/arm/configs
生存默认配置文件: cp xxx_deconfig .config
自定义配置: make menuconfig
4)编译
make
make zImage 只编译