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

📄 0540kernel.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<br>&nbsp;</ul><hr width="100%"><a name="intro_whyrecompile"></a><img src="0540kernel_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font size="+1" color="#000099">我干嘛要更新核心</font><blockquote>这个『核心』是除了 BIOS 之外,一个操作系统中最早被启动的东西,他包含了所有可以让硬件与软件工作的信息,所以,如果没有搞定核心的话,那么你的系统肯定会有点小问题!好了,那么是不是将『<font color="#000066">所有目前核心有支持的东西都给他编译进去我的核心中,那就可以支持目前所有的硬件与可执行的工作啦!</font>』,这话说的是没错啦,但是你是否曾经看过一个为了怕自己今天出门会口渴、会饿、会冷、会热、会被车撞、会摔跤、会被性骚扰,而在自己的大包包里面放了大瓶矿泉水、便当、厚外套、短裤、防撞钢梁、止滑垫、电击棒....等一大堆东西,结果却累死在半路上的案例吗?当然有!但是很少啦!我相信不太有人会这样做!( 会这么做的人通常都已经在医院了~ )取而代之的是会看一下天气,冷了就只带外套,热了就只带短衣、如果穿的漂亮一点又预计晚点回家就多带个电击棒、出远门到没有便利商店的地方才多带矿泉水....说这个干什么!对啦!就是要您了解到,核心的编译重点在于『<b><font color="#000066">你要你的Linux 作什么?</font></b>』,是啦!如果没有必要的工作,就干脆不要加在你的核心当中了!这样才能让你的Linux 跑得更稳、更顺畅!这也是为什么我们要编译核心的最主要原因了!<br> <br>说到这里突然想到以前国军研究的『经国号战斗机』事件,在当时,经国号里头的配备都是『最棒的!』包括测量仪器、瞄准配备、武器系统等等,但是呢,却配上一部普普通通的客机用引擎!挖哩ㄌㄟ?最早期试飞的时候,经国号竟然只能『在跑道上滑行!』真是悲哀!同样的道理,Linux 的核心也是这样的,如果你的硬件与核心之间没有办法达到良好的配合,那么Linux 确实可能会跑得不很顺畅!!<br> <br>Linux 的核心有几个主要的特色,除了『<font color="#000066">Kernel 可以随时、随各人喜好而更动</font>』之外,<font color="#000066">Kernel的『版本更动次数太频繁</font>』也是一个特点!所以啰,除非你有特殊需求,否则一次编译成功就可以啦!不需要随时保持最新的核心版本,而且也没有必要( 编译一次核心要粉久的ㄋㄟ! ) 。话说到这里又突然想到今天看到的一篇文章,大意是说老板想要雇用的人会希望是Linux 的老手,因为他们比较容易了解问题的所在,除此之外,如果有任何问题发生,由于其使用Linux 是可以随时修补漏洞的!但是如果是 Windows 的话,就得要将机器关闭,直到MS 推出修补套件后才能再启用~<br> <br>那么<font color="#000066">是否『我就一定需要在安装好了 Linux 之后就赶紧给他编译核心呢?</font>』,老实说,『并不需要的』!这是因为几乎在每一个distribution 当中,他们已经预设好了相当大量的模块了,所以几乎使用者常常或者可能会使用到的数据都已经被编译成为模块( 这个『模块』的意义后面会再解释 ) ,也因此,呵呵!我们使用者确实不太需要重新来编译核心!尤其是『<font color="#000066">一般的使用者,由于系统已经将核心编译的相当的适合一般使用者使用了,因此一般入门的使用者,基本上,不太需要编译核心</font>』。OK!那么鸟哥闲闲没事干跑来写个什么东西?既然都不需要编译核心还写编译核心的分享文章,鸟哥卖弄才学呀!?很抱歉,VBird 虽然是个『不学有术』的混混,却也不会平白无故的写东西要您来指教~当然是有需要才会来编译核心啦!<b><font color="#000066">编译核心的时机</font></b>可以归纳为几大类:<br> <ul><li><b><font color="#000099">新功能的需求</font></b>:</li><br>我需要新的功能,而这个功能只有在新的核心里面才有,那么为了获得这个功能,只好来重新编译我的核心了( 例如 iptables 这个防火墙机制只有在 2.4.xx 版本里面才有,而新出产的 AGP显示卡,很多也需要新的核心推出之后,才能正常而且有效率的工作!) 再举个例子,<font color="#000066">在之前的Red Hat 7.2 的版本中,由于预设是将 CD-ROM 编译成核心的『模块』</font>,也就是说,核心本身还没有支持CD-ROM 的功能,必须要挂上模块之后才能使用与读取这个 CD-ROM !是否觉得很麻烦呢?呵呵!那么这个时候,如果你想要直接让kernel 支持 CD ROM 的话,就得要重新编译核心啰;<br> <li><b><font color="#000099">原本核心太过臃肿</font></b>:</li><br>如果您是那种对于系统『稳定性』很要求的人,那么对于核心多编译了很多莫名其妙的功能而不太喜欢的时候,那么就可以重新编译核心来取消掉该功能啰;<br> <li><b><font color="#000099">与硬件的搭配稳定性</font></b>:</li><br>由于原本 Linux 的核心大多是针对 Intel 的 CPU 来作开发的,所以如果你的CPU 是 AMD 的系统时,有可能 ( 注意!只是有可能,不见得一定会如此 ) 会让系统跑得『不太稳!』就鸟哥的经验来看,使用旧的Pentum 系列的旧机器安装 Linux 的结果,还没有胡乱当机的经验!但是安装在K6-2, K6-3 上面的 Linux ,通常需要重新编译一下核心会比较稳定一些!<br> <li><b><font color="#000099">其它</font></b>:</li><br>就是你需要特殊的环境需求时,就得自行设计你的核心啰!( 像是一些商业的软件包系统,由于需要较为小而美的操作系统,那么他们的核心就需要更简洁有力了!)</ul> <br>另外,需要注意重新编译核心虽然可以针对你的硬件作最佳化的步骤 ( 例如刚刚提到的CPU 的问题! ) ,不过由于这些最佳化的步骤对于整体效能的影响可能还不到百分之五,因此如果是为了增加效能来编译核心的话,基本上,效益不大!然而,如果是针对『系统稳定性』来考虑的话,那么就有绝对充分的理由来支持您重新编译核心啰!<br> <br>『<font color="#000066">如果系统已经运行很久了,而且也没有什么大问题,加上我又不增加冷门的硬设备,那么建议就不需要重新编译核心了!』</font>,因为重新编译核心的最主要目的是『想让系统变的更稳!』既然您的Linux 主机已经达到这个目的了,何必再编译核心?不过,就如同前面提到的,由于预设的核心不见得适合您的需要,加上预设的核心可能并无法与您的硬件配备相配合,所以VBird 通常都是『<font color="#000066">一安装完 Linux ,第一个动作 ( 在还没有进行任何的设定之前,也没有上网,也没有更新套件等等,反正就是安装完毕Linux ,第一次进入 Shell 时! ) 立刻就是以最新版本的 kernel 重新编译一个属于我这部主机的核心!</font>』以让我的核心都能够相当的符合我的硬件配备,让系统运作的更顺畅!<br> <br>然而由于『<b><font color="#000066">核心的主要工作是在控制硬件</font></b>!』所以编译核心之前,请先了解一下您的硬件配备,与您这部主机的未来功能!由于核心是『<b><font color="#000066">越简单越好</font></b>!』所以只要将这部主机的未来功能给他编进去就好了!其它的就不用去理他啦!</blockquote><hr width="100%"><a name="intro_kernel_version"></a><img src="0540kernel_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font size="+1" color="#000099">核心的版本与何处下载最新核心</font><ul><font color="#000099"> </font><br><font color="#000099">(<i>事前声明:请特别留意!<b>不同版本的核心之间,最好不要互相升级!否则及容易发生问题!例如:Red Hat 6.x 使用的是 2.2.xx 版本的核心,那么就不要使用 2.4.xx 的核心来编译他!如果误用的话,很有可能造成您系统上面的服务无法正常的工作</b>!还请特别留意呢!</i>)</font><br><font color="#000099"> </font><li><font color="#000099">核心的版本:</font></li><br><font color="#000000"> </font><br><font color="#000000">要更新核心自然就得知道目前我的核心是哪一个啰!然后才能拿更新的核心来更新呀!您说是吧!那么在哪里找到这个核心的信息呢?应该还记得那个<a href="http://linux.vbird.org//linux_basic/0440processcontrol.php#uname">uname</a>查看的信息吧!没错!就是他了,可以使用其功能来查询目前在工作的核心版本:</font><br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">uname -r</font></b></font><br><font size="-1" face="SimSun"><font color="#ffffff">2.4.20-8&#160;&#160;&#160;&#160;&#160;</font><font color="#ffccff"># 这个是 Red Hat 7.2 的预设核心版本!</font></font></td></tr></tbody></table> <br><font color="#000000">看到了吧!那个东西就是核心版本的信息啦!好了!我们依照<a href="http://linux.vbird.org//linux_basic/0520rpm_and_srpm.php">RPM</a>版本的先例,也来谈一谈 kernel 的版本吧!基本上, kernel 的版本可以区分为:</font><br><font color="#000000"> </font><br><b><font color="#3333ff" face="SimSun">[主版本].[次版本].[修订版本]-[附版本]</font></b><br><font color="#000000"> </font><br><font color="#000000">在这当中,需要特别留意的属于第二个那个</font><b><font color="#000099">[次版本]</font></b><font color="#000000">啰!</font><br><font color="#000000"> </font><ul><li><font color="#000000">如果</font><b><font color="#000099">次版本</font></b><font color="#000000">是奇数的话,例如<font face="SimSun">2.3,2.5</font> 等等,那表示他是一个『</font><font color="#000066">测试性质功能的核心版本</font><font color="#000000">』,这种核心通常是在推出稳定版本的核心之前,用来给developer ( 核心维护更新测试者!) 测试用的!虽然功能较为强大,但是由于是属于测试性质,所以可能会有些许的bug 也说不定;</font></li><li><font color="#000000">如果</font><b><font color="#000099">次版本</font></b><font color="#000000">是偶数的话,例如<font face="SimSun">2.2,2.4, 2.6</font> 等等,那表示他是一个经过测试之后才释出的</font><font color="#000066">稳定核心版本</font><font color="#000000">,这种核心较为稳定不容易出错,比较适合一般个人或者是商业使用!</font></li></ul><font color="#000000"> </font><br><font color="#000000">所以啦!我们要升级的时候,大多就是使用那种偶数的核心版本啦!不过这里还是要再提一遍!就是『</font><font color="#000066" face="SimSun">2.2与 2.4 是两个具有相当大差异的核心版本,两者之间使用到的函式库基本上已经不相同了,所以在升级之前,如果您的核心原本是2.2.xx 版(Red Hat 6.x 系列),那么就升级到 2.2.xx 版本的最新版,不要由 2.2.xx直接升级到 2.4.xx 版,否则到时可能会欲哭无泪~~</font><font color="#000000">』,这个问题在讨论区一再地被提起!这里再次说明!</font><br><font color="#000000"> </font><br><font color="#000000">此外, 2.2.xx 与 2.4.xx 的比较中,</font><font color="#000066" face="SimSun">并不是2.4.xx 就一定比 2.2.xx 还要新</font><font color="#000000">,因为这两种版本同时在进行维护与升级的工作!如果有兴趣的话,可以前往Linux 核心网站 <a href="http://www.kernel.org/" target="_blank">http://www.kernel.org</a>一看究竟,您就可以了解目前的核心变动情况了!另外,再提到额外的一点,就是2.2 可以升级到 2.3 版本,这是因为这两个是互相援用的,在 2.3 测试成功之后,就将他转成2.2 的版本,所以两者的函式库使用的情况是约略相同的,这个情况也可以使用在2.4.xx 与 2.5.xx 版本之中!也就是说,您的 Red Hat 7.x 的 2.4.xx 版本可以升级到2.5.xx 版本去呦!但是您的 Red Hat 6.x 的 kernel 2.2.xx 则仅能更新到最新的2.2.xx 或者是 2.3.xx ,强烈的建议不需要更新到 2.4.xx ~~再次不厌其烦的提醒大家~</font><br><font color="#000000"> </font><br><font color="#000000">好了!既然 Red Hat 7.1 ~ 7.3 使用的是 kernel2.4.xx 版本,我们又需要的是稳定型态的 2.4.xx 版本,再由 <a href="http://www.kernel.org/" target="_blank">http://www.kernel.org</a>网站资料上发现,截至目前为止( 2004/06/25 ),最新的核心是 2.4.26这一个,所以,您可以前往下载这一个版本的核心,嗯!底下的各个选项的择定,我们都是以这一个版本为例呦!需要特别的注意!由于较新的核心版本可能会多出一些选项,因此若有不同的项目也没有关系!稍微查看一下说明内容就可以了解啦!</font><br><font color="#000000"> </font><li><font color="#000099"><b>核心下载地点</b>:</font></li><br><font color="#000000"> </font><br><font color="#000000">Linux 的核心目前是由其发明者 Linus 所属团队在负责维护的,而其网站在底下的站址上,在该网站上可以找到最新的kernel 信息!不过,美中不足的是目前的核心越来越大了 (&#160; linux-2.4.26.tar.gz这一版,这一个档案大约 36MB 了! ),所以如果你的 ISP 连外很慢的话,那么使用台湾的映射站台来下载不失为一个好方法:</font></ul></ul><ul><ul><ul><li><font color="#000000"><a href="http://www.kernel.org/pub/linux/kernel/" target="_blank">http://www.kernel.org/</a></font></li><li><font color="#000000"><a href="http://ftp.nsysu.edu.tw/Linux/Kernel/linux/kernel/" target="_blank">http://ftp.nsysu.edu.tw/Linux/Kernel/linux/kernel/</a></font></li><li><font color="#000000"><a href="ftp://linux.cis.nctu.edu.tw/kernel/" target="_blank">交大资科:ftp://linux.cis.nctu.edu.tw/kernel/</a></font></li><li><font color="#000000"><a href="ftp://nctuccca.edu.tw/OS/Linux/kernel/" target="_blank">教育部:ftp://nctuccca.edu.tw/OS/Linux/kernel/</a></font></li></ul></ul></ul><ul><ul><font color="#000000">基本上,就如同前面所说的,</font><font color="#000066">最好是在系统安装完毕之后马上就进行核心编译工作,免得以后每次装一些特定功能的时候又要花一大轮时间编译</font><font color="#000000">。另外要说明的,由于鸟哥是以

⌨️ 快捷键说明

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