|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于linux命令,一定要学会用man和info去查他们的解释;
按下电源,咔一下,电脑启动啦,接着BIOS的画面出来啦,纷歧会,GRUB的界面出来,然后就是一行接一行的字符在黑屏上明灭,不时地有OK的字样呈现.呵呵,不要走神哈,该输出用户名和暗码啦,….乐成地进进了体系,这算是体系启动完成啦。那末这个历程究竟有甚么事变产生啦,哪些值得我们进修呢?本文就以linux开机为线索,报告引诱器,内核,根文件体系的干系。
1)引诱器
这个是人人所熟知的吧,linux下经常使用的就有:grub,这是现今支流啦;lilo,这啊,已经风景过,如今让grub接了重担;syslinux这是个轻量级的引诱器,一样平常在光盘,USB上做引诱器,做个liveUSB的应当很分明哦,无盘启动的使用中也能找到它的身影.
引诱器的次要功效就是找到内核(vmlinuz),然后把它载进内存,固然另有initrd啦,以GRUB为例,在我的体系(centos5.2)里是这么写的
#/boot/grub/menu.lst
titleCentos5.2kernel-2.6.18-92.1.17.el5
root(hd0,7)
kernel/vmlinuz-2.6.18-92.1.17.el5root=/dev/VolGroup00/LogVol00
initrd/initrd-2.6.18-92.1.17.el5.img
boot
在这明白了内核的地位,并向内核传送了一些参数。initrd扮了一个很主要的脚色,卖力在内核会见根文件体系前加载驱动。
2)内核
一个完全的内核就是由内核源码发生的,在这kernel.org能找到源码,紧缩后有50M摆布,解开后有好几百M呢,我们能够从头编译源码来更新我们已有的内核,以进步功能和兼容才能。那末这个源码经编译后产出了哪些东东呢,出以我的机子为例:
A)内核部分,在/boot分区下
/boot/initrd-2.6.18-92.1.17.el5.img
/boot/System.map-2.6.18-92.1.17.el5…………….这是标记表,函数与地点的映照干系
/boot/vmlinuz-2.6.18-92.1.17.el5
/boot/config-2.6.18-92.1.17.el5………………………..内核的设置文件,由makexconfig命令发生的
B) 内核模块部分,在/lib/modules/2.6.18-92.1.17.el5目次下,2.6.18-92.1.17.el5这是版本号,每个人的机子上大概会分歧。一切模块都在这,另有它们之间的依附干系
[root@xx2.6.18-92.1.17.el5]#pwd
/lib/modules/2.6.18-92.1.17.el5
[root@xx2.6.18-92.1.17.el5]#ls-l
总计1128
lrwxrwxrwx1rootroot4811-1120:14build->../../../usr/src/kernels/2.6.18-92.1.17.el5-i686
drwxr-xr-x2rootroot409611-0503:09extra
drwxr-xr-x10rootroot409611-1120:28kernel ……………………………内核模块就中此目次
drwxr-xr-x2rootroot409611-1314:50misc
-rw-rCrC1rootroot25233211-1314:50modules.alias
-rw-rCrC1rootroot6911-1314:50modules.ccwmap
-rw-rCrC1rootroot20970211-1314:50modules.dep………………….模块间的依附干系
-rw-rCrC1rootroot14711-1314:50modules.ieee1394map
-rw-rCrC1rootroot37511-1314:50modules.inputmap
-rw-rCrC1rootroot231411-1314:50modules.isapnpmap
-rw-rCrC1rootroot7411-1314:50modules.ofmap
-rw-rCrC1rootroot19110811-1314:50modules.pcimap……………….物理设备与内核模块的对应干系
-rw-rCrC1rootroot58911-1314:50modules.seriomap
-rw-rCrC1rootroot10525911-1314:50modules.symbols
-rw-rCrC1rootroot32273111-1314:50modules.usbmap
lrwxrwxrwx1rootroot511-1120:14source->build
drwxr-xr-x2rootroot409611-0503:09updates
drwxr-xr-x4rootroot409611-1120:14weak-updates
注重source,build这两个目次,在装显卡驱动时就熟悉它们俩了吧,
C)头文件及相干的内核设置文件
/usr/src/kernels/2.6.18-92.1.17.el5-i686,在机关大概是编译相干内核模块就要用到这个中央的文件,在安装显卡驱动的时分就是这个目次下的东东,有无甚么映象啊,为何呢?固然是想看看3D桌面啦,是否是啊。。。。
[root@xx2.6.18-92.1.17.el5-i686]#pwd
/usr/src/kernels/2.6.18-92.1.17.el5-i686
[root@xx2.6.18-92.1.17.el5-i686]#ls
archdriversinitkernelmmnetsound
blockfsipclibModule.kabiscriptssymsets-2.6.18-92.1.17.el5.tar.gz
cryptoincludekabi_whitelistMakefileModule.symverssecurityusr
头文件在include目次下
3)根文件体系
根文件体系很熟习撒,开机落后进的体系就在根文件体系里,有/boot,/usr,/bin,/var等等
引诱器,内核,根文件体系,有了一个也许的映象了,如今就说说它们之事有一些事儿。
引诱器找内核,如GRUB它自代了一点驱动能够读内核所处的文件体系,如syslinux它是经由过程扇区地点找到的内核,initrd内有个名叫linuxrc或init的可实行文件(shell剧本也能够),供应一个虚根情况,加载硬盘驱动,读取根文件体系,为内核换根(从虚根情况到根文件体系)做个物资筹办。内核换到根文件体系后,之前的虚根情况被umount失落啦,至此内核便可加载它所必要的内核模块啦,然后体系就启动啦
</p>
使用gcc或g++进行编译,使用gdb进行调试; |
|