Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146948
  • 博文数量: 35
  • 博客积分: 2648
  • 博客等级: 少校
  • 技术积分: 286
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-12 19:45
文章分类

全部博文(35)

文章存档

2013年(1)

2011年(14)

2010年(20)

分类: LINUX

2010-07-23 12:41:36

安装新内核

内核生成好之后,你需要安装它,如何安装于系统架构和引导加载程序有关,我们以x86架构,grub引导加载程序为例进行说明。

首先将arch/i386/boot/bzImage拷贝到/boot,重命名为vmlinuz- version,这里的version也是版本号,然后编辑/boot/grub/grub.conf,为新内核添加相应的项目,如果是使用LILO引导装载程序,则修改/etc/lilo.conf文件,然后运行lilo。

模块的安装与系统架构无关,都是自动完成的,以root用户运行:

% make modules_install

这个命令会将所有编译好的模块安装到/lib/modules下对应的子目录中。

生成过程会在源代码树根目录下创建一个System.map文件,它包含一个符号查找表,映射内核符号到它们的起始地址,在调试期间可以用它将内存地址转换成函数和变量名。

可能会遇到的问题

与普通用户空间的应用程序相比,Linux内核有多个特殊的属性,下面是我认为最重要的一些不同:

◆内核既不访问C库也不访问标准C头;

◆内核是用GNU C编码的;

◆内核缺少用户空间提供的内存保护;

◆内核不能容易地执行浮点运算;

◆内核有一个小型的固定大小的进程堆栈;

◆由于内核支持异步中断和SMP,因此同步和并发是内核主要担心的问题;

◆可移植性也很重要。

下面我们就逐个来了解一下这些问题,所有内核开发人员都必须记住它们。

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