西格玛向量™

U盘中打造属于自己的Linux (二)BootLoader和内核(下):初识内核

作者: 西玛哒   分类: IT悟语, Linux, 老西常谈   标签:    评论: 0

# 接上文:我们已经完成了我们的BootLoader的设置

   就从BootLoader的设置需求来说 我们需要的第一个重要参数就是

  kernel XXXXXX   也就是内核信息。

  内核是系统的灵魂,用于支配定义用户操作和底层硬件之间的连接。

  根据之前学过的内容,内核一般是被写在/boot/vmlinuz文件中,按大小分为bzImage和zImage两种。一眼或多看几眼就可以看出bzImage比较big 因为在配置中根据裁剪度的不同,内核大小也不一样。

  我们先放下它的工作原理,我们只关心它是怎么来滴….

  当然,内核不是轻易就写的出来的,我们使用的各种发行版Linux,比如Ubuntu ,Redhat ,…… 其实用的都是纯正血统的基本相同的linux内核,他们来自GNU和那些辛苦耕耘,默默无闻的Linux大牛们之手,我们今天可以幸福的使用现成的内核,不能忘记那些伟大的开源工作者…..

   不好意思 有点XXXOOO了,继续话题,之前的太抽象了,我们从宿主机开始,看看内核是个什么样的东西。

##

   Linux中与查看内核信息:

   #uname -r                //查看内核的版本号

  2.6.28-11-generic                  //我现在使用的内核版本号

  # cd /boot

  ls 你会发现一个叫做 vmlinz-XXXXXXXX 的文件 这就是你的linux内核 它与你的发行版无关,对于一个内核来说,Ubuntu7.04与Fedora 11 的内核也没有绝对的可比性,只有版本号说明新旧。

#du vmlinuz -XXXXXXXX            //看看多大

3~~~  vmlinuz-XXXXXXXX   一般发行版的内核由于需要加载的东西多,自然要大,常见在在3M左右,为bzImage

# file vmlinuz- XXXXXXXX       //这是个什么东西呢 看看官方的解释:Linux kernel x86 boot executable RO-rootFS, root_dev 0×6801, swap_dev 0×3, Normal VGA

很明显,这是一个 启动用的 可执行的 可加载ro什么什么文件系统的 x86平台用的 内核..

##

  看看这个文件 ,其实也没什么神秘的,就是一个操作系统的压缩形式,我们动手自己做一个,或者说,自己申请一个是可能的。

  这时候伟大的开源就非常重要了,我们可以下载到整个的内核的源文件包,里面包含了所有的源文件,只要进行编译链接,就像我们写其他程序一样,会生成“产品”——我们的内核。

步骤:

  1.   下载内核源文件:                  
    这一部我不多说了,内核文件可以全部从
    http://www.kernel.org/linux/
    为特别极其非常懒的同学,这里提供最新内核的直接下载地址
    http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.4.tar.bz2
  2. 这里下载,网站是E文的,请大家自备词典….
  3. 下载之后的文件一般是一个以.gz为后缀名的压缩包
    我们首先将这个压缩包放到一个合适的地点,这里建议大家建立一个用于内核编译的文件夹。
    # mkdir /home/embeded/kernel

       # cp XXXX/linux.XXXX.gz /kernel/XXXXX.gz
##########
  这里简单复习一下linux下的压缩和解压缩命令。
常用的命令是 tar和 gzip 其他的自行学习
(参考文献链接:http://it.sohu.com/2004/06/09/20/article220452066.shtml)

//—-

# gzip命令: 压缩文件为.gz 的压缩文件。

  #gzip XXXX(filename)  直接压缩

#  gzip -9  XXXX(filename)  最大程度压缩

// -1~-9 表明侧重点由速度向压缩程度的推移 所谓鱼和熊掌不可兼得。

  #gzip -v :显示压缩进度 喜欢刷屏玩的用吧

         -r  : 将子目录中文件全部压缩

  //—-

   tar 命令: 打包tar文件或解压缩包

  压缩:

# tar -cf XXX.tar XXXXX(filenames)

    -c 新文件 -f 输出到默认设备 你就默认加-cf 就是了

  解压缩:

# tar -zxvf XXXXX.tar.gz   

   -z 向gzip借用压缩能力  -x 解压  -v 同上 -f 同上

   -zxvf 也是常用命令 记成默认的就好。

# tar -jxvf XXXXXX.tar.bz2

   其他相同, -j 是用来对付 .bz2的

#############

   言归正传,在存放压缩包的目录下(home/你/kernel)

   #tar -jxvf XXXXX.tar.bz2 (内核源代码)

  ……..

   5米高的刷屏……

  ….. 此过程看起来非常专业,可以显摆一下。

  没显成的别急 后边还有。

   #ls

   XXXXXXXX  XXXXXXXX.tar.bz2

   解压完毕 你的linux内核就在新生成的文件夹中了。我的是

  linux-2.6.29.2

# cd  linux-2.6.29.2

进入源码目录,一般叫这个目录为一个树,ls一下 发现一个MakeFile文件 你就知道它是做什么的了。

鉴于篇幅限制,我们在下一章中再介绍内核的编译使用。

######

anyShare分享到: U盘中打造属于自己的Linux (二)BootLoader和内核(下):初识内核
          
05-27
2009
loading...