1.1 linux体系结构
1.为什么linux会被划分为用户空间和内核空间?
答:ARM处理器提供其中工作模式:用户模式(usr),快速中断(Fiq),外部中断(irq),管理模式(svc),数据访问终止(abt),系统模式(sys),未定义指令异常(und),在不同的工作模式下拥有的权限是不一样的,linux利用这一机制,使用了两级来运行应用程序和linux内核,这样使操作系统本身得到了保护。
2.内核空间和用户空间是程序执行的两种不同地状态,通过系统调用和硬件中断能够完成从用户空间和内核空间的转移。
1.2 linux内核构架
2.1 下载linux内核源代码 www.kernel.org
2.2 目录结构
2.3 使用sourceInsight管理内核源代码
Linux内核配置与编译
内核配置方法
编译内核
make zImage : X86下,zImage只用于小与512K的内核
make bzImage
如需获取详细编译信息,加上编译选项V = 1
编译内核模块
make modules
执行下面命令,将编译好的内核模块,从内核源代码目录复制到/lib/modules下,为打包做准备
make modules_install
制作ramdisk
mkinitrd initrd-$version $version
$version可以通过查询/lib/modules下的目录得到
安装内核
1 .cp arch/x86/boot/bzImage /boot/vmlinuz-$version
2 .cp initrd-$version /boot/
3. 修改/etc/grub.conf
运行后uname -r 查看内核版本
清理内核
make clean 清理.o等中间文件
make distclean 清理.o等中间文件和 .config文件
嵌入式linux内核的制作
将开发版对应的内核复制到linux下,解压内核源代码,将配置文件复制到源代码下
1.清理原有配置文件和中间文件 make distclean
2.将对应的配置文件保存到源码目录,并重命名为.config
3.配置内核 make menuconfig ARCH=arm
4. 将uboot/tools下的mkImage拷贝到/bin/,这个会对内核加头
5.编译内核 make uImage ARCH=arm CROSS_COMPILE=arm-linux-
编译成功后,将uImage复制到tftp目录,cp uImage /tftpboot/
tftp c0008000 uImage
bootm c0008000