Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1659171
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类: LINUX

2012-04-19 15:08:32

.
|-- Makefile
|-- Module.symvers
|-- System.map
|-- arch
|-- block
|-- crypto
|-- drivers
|-- firmware
|-- fs
|-- include
|-- init
|-- ipc
|-- kernel
|-- lib
|-- mm
|-- net
|-- samples
|-- scripts
|-- security
|-- sound
|-- tools
|-- usr
|-- virt
`-- vmlinux.id
arch目录,
arch是内核所支持的每种cpu体系,在该目录下都有对应的子目录,每个cpu的子目录又进步分为boot,mm,kernel等子目录,分别包含,控制系统引导,内存管理,系统调用等。
arch/x86 /*intel cpu及与之相兼容体系结构的子目录*/
|-- boot //引导程序
|   |-- Makefile
|   `-- compressed  // 内核解压缩
|       `-- Makefile
|-- crypto
|   `-- Makefile
|-- ia32
|   `-- Makefile
…………
|-- kernel //相关内核特性的实现方式,如信号处理,时钟处理
……
|-- tools //生成压缩内核映像的程序
……
|-- kvm
|   |-- Kconfig
|   `-- Makefile
|-- lguest
|   |-- Kconfig
|   `-- Makefile
|-- lib //硬件相关工具函数
|   `-- Makefile
|-- math-emu
|   `-- Makefile
|-- mm
|   |-- Makefile
|   `-- kmemcheck
|       `-- Makefile
……
block目录
部分块设备驱动程序
crypto目录
加密,压缩,CRC校验算法
documentation目录
内核的文档
drivers目录
设备驱动程序
fs目录
存放各种文件系统的实现代码,每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统VFS。
include目录
内核所需要的头文件。于平台无关的头文件在include/linux子目录下,于平台相关的头文件则放在相应的子目录中。
init目录
内核初始化代码
ipc目录
进程间通信的实现代码
kernel目录
linux大多数关键的核心功能都是在这个目录实现。(调度程序,进程控制,模块化)
lib目录
库文件代码
mm目录
mm目录中的文件用于实现内存管理中与体系结构无关的部分(与体系结构相关的部分在那呢?)
net目录
网络协议的实现代码
--bridge  //桥接设备
--ipv4 //ipv4版32位寻址模式
--ipv6
samples目录
一些内核编程的范例
scripts目录
配置内核的脚本
security目录
selinux的模块
sound目录
音频设备的驱动程序
usr目录
cpio命令实现
virt目录
内核虚拟机

linux内核具有可定制的优点,具体步骤如下:
1,清楚临时文件,中间文件和配置文件。
make clean
make mrproper
make distclean
2,确定目标系统的软硬件配置情况,比如cpu的类型,网卡的型号,所需支持的网络协议等。
3,使用如下命令之一配置内核:
make config:基于文本模式的交互式配置
make menuconfig:基于文本模式的菜单式配置(推荐)
make oldconfig:使用已有的配置文件(.config)。但是会询问新增的配置选项。
make xconfig:图形化的配置(需安装图形化系统)

在make menuconfig模式中
“y”将这个项目编译进内核中
“m”编译为模块
“n”为不选择
按空格键可在这三者之间进行切换
按“h”将显示这个选项的帮助信息
按“Esc”将返回到上层选单

编译内核
make zImage
make uImage
make modules
编译内核模块
make modules
安装内核模块
make modules_install
将编译好的内核模块从内核源代码目录copy至/lib/modules下

make distclean
cp /boot/config-2.6.18 .config
vi Makefile
ARCH=$(SUBARCH)
CROSS_COMPILE=
make menuconfig
make bzImage
maek modules
mkdir /lib/modules/2.6.32
make modules_install
cd /lib/modules/
mkinitrd initrd-2.6.32.2 2.6.32.2就回生成initrd-2.6.32.2
cp initrd-2.6.32.2 /boot/
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.32.2
修改开机时的选项 vim /etc/grub.conf
参照里面的配置,添加下面几行
title --My linux server
kernel --/vmlinuz-2.6.32.2 root=/VOL**
initrd --/initrd-2.6.32.2



阅读(522) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~