U盘中打造属于自己的Linux (二)BootLoader和内核(下):初识内核
作者: 西玛哒 分类: IT悟语, Linux, 老西常谈 标签: 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平台用的 内核..
##
看看这个文件 ,其实也没什么神秘的,就是一个操作系统的压缩形式,我们动手自己做一个,或者说,自己申请一个是可能的。
这时候伟大的开源就非常重要了,我们可以下载到整个的内核的源文件包,里面包含了所有的源文件,只要进行编译链接,就像我们写其他程序一样,会生成“产品”——我们的内核。
步骤:
- 下载内核源文件:
这一部我不多说了,内核文件可以全部从
http://www.kernel.org/linux/
为特别极其非常懒的同学,这里提供最新内核的直接下载地址
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.4.tar.bz2
- 这里下载,网站是E文的,请大家自备词典….
- 下载之后的文件一般是一个以.gz为后缀名的压缩包
我们首先将这个压缩包放到一个合适的地点,这里建议大家建立一个用于内核编译的文件夹。
# mkdir /home/embeded/kernel
这一部我不多说了,内核文件可以全部从
http://www.kernel.org/linux/
为特别极其非常懒的同学,这里提供最新内核的直接下载地址
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.4.tar.bz2
我们首先将这个压缩包放到一个合适的地点,这里建议大家建立一个用于内核编译的文件夹。
# 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分享到: | |
| |
05-27
2009





