⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0540kernel.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- 核心编译与多重开机</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0540kernel_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0540kernel_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0540kernel_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0540kernel_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0540kernel_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0540kernel_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0540kernel_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org//linux_basic/0540kernel.php" target="_self"><font face="SimSun">核心</font><font face="Times New Roman,Times">(Kernel )</font><font face="SimSun">编译与模块管理(积极更新中)</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2004/06/25</font></div><font size="-2" color="#000099"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">我们在前面的几个章节介绍了 Linux其实指的就是核心而已,而整个 Linux 的世界当中,最重要的也就是核心了!他控制了您的服务器的所有硬件,也控制了所有的您想要的功能,例如软件磁盘阵列(RAID)、各种适配卡的驱动模块、防火墙的新增功能等等。透过管理您的Linux 核心,将可让您的服务器跑得更加的顺畅,也更稳定您的服务器所提供的相关服务呢!此外,为了让硬件驱动程序与相关的核心功能修订容易,所以Linux 核心是支持『模块化』的,也就是说,您核心所想要的功能可以『后来才加挂上去』喔!那么如何加挂上去呢?这就需要了解一下所谓的『模块』了!当然,连同模块的相关指令就得也要会用啰!^_^</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font size="+1" color="#000099"><a href="#intro">前言</a>:</font><br><font color="#000099">  :<a href="#intro_whatiskernel">什么是核心(Kernel )</a></font><br><font color="#000099">  :<a href="#intro_whyrecompile">我干嘛要更新核心</a></font><br><font color="#000099">  :<a href="#intro_kernel_version">核心的版本与何处下载最新核心</a></font><br><font size="+1" color="#000099">核心编译:</font><br><font color="#000099">  :取得并解开核心原始码</font><br><font color="#000099">  :选择设定模式</font><br><font color="#000099">  :开始设定核心的内容</font><br><font color="#000099">  :开始编译的流程</font><br><font size="+1" color="#000099">核心安装与多重开机设定:</font><br><font color="#000099"><font size="+1"><a href="#modules_control">核心模块管理</a></font>:</font><br><font color="#000099">  :<a href="#modules_compile">模块编译</a></font><br><font color="#000099">  :<a href="#depmod">模块功能</a>:<a href="#depmod">depmod</a>,<a href="#lsmod">lsmod</a>,<a href="#modinfo">modinfo</a>,<a href="#modprobe">modprobe</a>,<a href="#insmod">insmod</a>,<a href="#rmmod">rmmod</a>,</font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="intro"></a><img src="0540kernel_files/penguin-m.gif" alt="" nosave="" align="middle" height="34" width="25"><font size="+1" color="#000099">前言:</font><ul>一个完整的操作系统最重要的部分就是最底层的核心( kernel)了。事实上,一个『核心』就是一个最简单的『操作系统』,因为他已经可以在您的系统上面跑了!那么核心是什么呢?基本上,核心就是用来控制您的硬件系统的,您想要硬件帮您达成的任何工作,都得要透过『核心』来帮您达成啊!换句话说,如果您的『核心』并没有支持您的某项硬设备,也就是核心无法『认识』您的某项硬件,呵呵!那么该硬件也就无法在这样的核心底下工作了!<br> <br><hr width="100%"><a name="intro_whatiskernel"></a><img src="0540kernel_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font size="+1" color="#000099">什么是核心(Kernel )</font><ul><font color="#000000">什么是核心呢?让我们再来复习一下几个名词吧:</font><br><font color="#000000"> </font><li><font color="#000099">Kernel:</font></li><br> <br>到底什么是核心呢?还记得我们在前面的 <a href="http://linux.vbird.org//linux_basic/0320bash.php">BASH shell</a>部分提到过:计算机真正在工作的东西其实是『<font color="#000066">硬件</font>』,例如数值运算要使用到CPU、数据储存要使用到硬盘、图形显示会用到显示卡、音乐发声要有音效芯片、连接Internet 可能需要网络卡等等。那么如何控制这些硬件呢?那就是核心的工作了!也就是说,你所希望计算机帮你达成的各项工作,都需要透过『<font color="#000066">核心</font>』的帮助才行!当然啰,如果你想要达成的工作是核心所没有提供的,那么你自然就没有办法透过核心来控制计算机使他工作啰!<br> <br>举例来说,如果你想要有某个网络功能 ( 例如核心防火墙机制 ) ,但是你的核心偏偏忘记加进去这项功能,那么不论你如何『卖力』的设定该网络套件,很抱歉!不来电?换句话说,<font color="#000066">你想要让计算机进行的工作,都必须要『核心有支持』才可以</font>!!这个标准不论在Windows 或 Linux 这几个操作系统上都相同!如果有一个人开发出来一个『全新的硬件』,目前的核心不论Windows 或 Linux 都不支援,呵呵!那么不论你用什么系统,哈哈!这个硬件都是英雄无用武之地啦!那么是否了解了『核心』的重要了呢?没错!所以我们才需要来了解一下如何编译我们的核心啦!<br><font color="#000000"> </font><li><font color="#000099">核心编译:</font></li><br><font color="#000000"> </font><br><font color="#000000">好了,知道什么是核心之后,那么什么是</font><font color="#000066">核心编译</font><font color="#000000">啊?还记得我们在<a href="http://linux.vbird.org//linux_basic/0520source_code_and_tarball.php">Source code 与 Tarball </a>那个章节里面谈到的所谓的原始码与binary file 的意义吧?!没错!我们的系统仅认识二进制 ( binary ) 的可执行档,因此,我们必须要将核心的原始码编译成为系统可以认识的执行文件才行!这个过程就称为核心编译啦!所以啰,如果您想要进行核心编译,就必须要取得核心的原始码才行啊!</font><br><font color="#000000"> </font><li><font color="#000099">关于驱动程序与核心的问题</font>:</li><br> <br>既然核心与硬件是息息相关的,那么是否意味着每次有厂商推出新版本的硬件时,我们都需要『重新编译核心』啊?好加在!并不需要的喔!因为我们Linux 的核心相当的具有弹性,他是支持模块化的,也就是说,只要新硬件可以推出搭配核心的驱动模块(也就是大家口头上常常讲的『驱动程序』 ),那么我们只要将该模块挂加载核心,核心就可以支持该硬件啦!<br> <br>但是,很多朋友还是常常感到困惑,就是 Linux 上面针对最新硬件的驱动程序总是慢了几个脚步,所以觉得好像Linux 的支持度不足!其实不可以这么说的,为什么呢?因为在 Windows上面,对于最新硬件的驱动程序需求,基本上,也都是厂商提供的驱动程序才能让该硬件工作的,因此,在这个『驱动程序开发』的工作上面来说,应该是属于硬件发展厂商的问题,因为他要我们买他的硬件,自然就要提供消费者能够使用的驱动程序啦!所以,如果大家想要让某个硬件能够在Linux 上面跑的话,那么似乎可以发起一人一信的方式,强烈要求硬件开发商发展Linux 上面的驱动程序!这样一来,也可以促进 Linux 的发展呢!<br><font color="#000000"> </font><li><font color="#000099">Linux Distribution:</font></li><br> <br>那么 <a href="http://www.redhat.com/" target="_blank">Red Hat</a> /<a href="http://www.fedora.redhat.com/" target="_blank">Fedora</a> / <a href="http://www.mandrakesoft.com/" target="_blank">Mandrake</a>这些东西又是什么呢?那个咚咚我们称为 <font color="#000066">Linux distributions</font>啊!虽然 Linux 的核心已经是个完整的小型操作系统了,但是如果没有其它工具与软件的辅助,那么这个操作系统能够提供的服务是很有限的。为了让使用者能够很有效的使用Linux 提供的功能,很多的厂商就将一些工具软件与服务器软件搭配核心,再加上自己的创意来完成一个可以透过光盘安装的功能完善的Linux 系统,这样的咚咚我们就称为 Linux distributions 啰!<br> <br>那么因为这些 Linux distributions 都是利用同样的 Linux 核心来制作属于他们的操作系统,就连服务器与工具软件也都是大同小异,比较不同的可能是在程序设计上面与操作接口的友善程度而已啊!所以啰,认真的学习某一个distribution 也就够了!其它的 distribution 绝大部分都是相同的耶!<br> <li><font color="#000099">Linux 核心放在哪里?</font></li><br> <br>好问题!那么 Linux 核心放在哪里呢?嘿嘿!还记得我们在<a href="http://linux.vbird.org//linux_basic/0510osloader.php">开机的流程</a>里头有说明过,那个开机的顺序是:<br> <ol><li><font color="#000066">BIOS</font></li><li><font color="#000066">MBR ( 就是 Lilo 或 Grub ) 取得 boot loader;</font></li><li><font color="#000066">取得核心 kernel 的资料并加载</font></li><li><font color="#000066">init</font></li><li><font color="#000066">很多 scripts</font></li><li><font color="#000066">login 与 shell</font></li></ol> <br>看到了吧!那个第三步骤就需要 kernel 啰!那个 kernel 其实就是开机管理程序设定文件(lilo.conf 或 menu.lst )里提到的那个档案,通常也就是档名为 vmlinuz 的这个档案啦!放置在/boot 里头!<font color="#000066">我们需要的编译出来的核心档案就是这一个东西</font>!除此之外,由于核心通常是支持模块的,那个外挂模块则是放置在<font face="SimSun"><b><font color="#000066">/lib/modules/`uname-r`</font></b><font color="#000099"> </font></font>里面啰( <i>注:这里的模块路径是2.4.xx 版</i> )!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -