Kernel的编译过程(freebsd)

| | Comments(1) | TrackBacks(0)
本文分三部分:
一,理论上有个概念,起码面试知道怎么回答
二,动手能力,我们最终的结果是要自己能熟练的编译kernel
三,参考

一  kernel:
  控制系统的整体运行,称之为核心,是因为其提供资源分配,底层硬件界面,安全、简单通信和基本系统文件管理功能等

  为什么要调整kernel:
  开机速度更快/减少对内存的占用/支持更多硬件/系统应用的需求

  kernel中最常用的工作包括什么?
  1,增减硬件驱动的支持
  2,系统参数的针对性调优
  3,系统应用的增删

二 编译过程   
  freebsd和linux都可以通过类似menuconfig的方法来编辑,然后在编译到系统,我们以BSD为例,看一个实际过程

  cd /usr/src/sys/i386/conf     // 系统默认安装的目录,如果有特殊,可以通过'uname -a'来检查
  cp GENERIC zx                  // GENERIC是系统默认安装时的kernel名字, zx就是自己所以起的名字了
  vi zx                                                   // 自己随意的裁减吧
  config zx
  cd ../../compile/DD   
  make depend all install
  reboot

  等到系统再次启动后,标注为zx的kernel就已经开始工作了。


1 编译什么?

  对于刚开始编译kernel的人,确实不知道要做编译什么,没有什么可以练习的,那么我们可以从简单的入手。比如'dmesg'自己服务器上的硬件,把它们编译进kernel, 其它全部抛弃亦或看看'IPFW'的'readme',把它需要的option加入kernel.
 
2 如果重启失败怎么办?   -- 编译后系统异常,不能正常启动的解决方法
  中断自动启动过程,进入boot提示;
  unload
  load kernel.old(kernel.GENERIC)
  boot

  这样按旧的内核启动。

3 标准的kernel文件
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html 比较长,但是基本都可以测试的

留言(1)

终于等到骆驼了,期待骆驼的下一篇文章。

发表留言