当前位置:首页 » 专业资讯
开发技术指南» 文章正文
    引言: 好了﹐當我們已經可以基本操控這台 Linux 機器之後﹐不妨幫它動點手術﹐讓它更適合自己的環境。
 

 

 ·神奇的vim    »显示摘要«
    摘要:   作者:闫石    当今世界,文本编辑器种类繁多,大有"乱花渐欲迷人眼"之势。中国有句古语:手巧不如家什妙,作为it业的专业人士,选择一款优秀的编辑软件至关重要。笔者认为:linux下的vim※以其强大的功能和无穷的魅力将使您终生受益。  由于被广泛移植,无论是pc机的dos和windows,还是risc/6000的aix,乃至于ibm的大型机s/390,都能见到vim的身影。然而,对于初学者,vim的用户界面与使用方法非常不符合常规,甚至认为它比......
 ·内核升级的一些体会    »显示摘要«
    摘要:   编辑:xiao zhong      这两天一直在忙着升级内核,以前用linux的时候见书上写的     升级步骤太烦琐,不敢试。现在实在是不得不升,才发现n多问题:     1。新手最好使用make xconfig,图形界面,直观清晰。然后     make dep;make clean;make bzimage;make modules;make modules_install     用分号把所有命令全部搞定     其中第三个本来是mak......


編譯核心的详细指导手册

  好了﹐當我們已經可以基本操控這台 linux 機器之後﹐不妨幫它動點手術﹐讓它更適合自己的環境。就像喜歡飆車的朋友﹐總免不了要對心愛的座架改裝改裝一樣。 【相关文章:Linux教程-vi命令(5)

【扩展阅读:Linux教程-vi命令(4)

   【扩展信息:Linux环境下的上网工具(一)

  要改車﹐除了要改彈簧﹑輪胎﹑煞車﹑排氣﹑裙邊﹑尾翼等﹐要想車子真正能發揮性能﹐當然免不了改引擎啦。下面我們進行的核心編譯﹐就是為 linux 改引擎了。日後﹐我們還要裝 kde﹑gnome 等等這些 x window﹐那是霧燈﹑座椅﹑方向盤﹑表板等這些‘裝飾’改裝了。這些修改﹐都一一顯示了使用者的個人風格﹐而且也有許多產品可供選擇﹐就如改車除了用“momo”之外﹐還可以選擇“無限”。

  

  何謂核心﹖

  

  前面介紹 shell 的時候﹐已經略略提到過核心這個東西﹐如果您有看過“電腦基礎”中關於作業系統部分的文章﹐相信不用我再多做解釋了。而且﹐我也不想再重複了﹐假如您不知道核心是做什麼的﹐可以到“電腦基礎”去看看。

  

  我們通常掛在嘴邊的 linux ﹐其靈魂所在﹐就是它穩定而強大的核心。而事實上﹐linux 的定義﹐也只是這個核心﹐只是大家目前使用的系統﹐是經過包裝的﹐在核心之外﹐還有各種各樣的套件( 包括不同的 shell )整合一起。如果您有時間﹐而且願意上網路去抓﹐那些套件都可以自己找得到。有些人﹐幫您把核心編好﹐套件也設定好並加以整合﹐同時將安裝程式寫好﹐還提供套件管理工具﹐以及將環境設定妥當﹐然後燒成 cd﹐那就是我們常見的 linux 套裝系統了。我們稱這些 linux 套裝系統的發行版本為 distribution ﹐例如大家聞名的 redhat﹐slackware﹐openlinux﹐turbolinux﹐suse﹐debian﹐等等﹐都是 distrobutions 。不管它們如何包裝﹐但骨子裡頭的東西﹐也就是使用的核心﹐都一樣﹕都是 linux ﹗

  

  那核心究竟如何定義呢﹖說簡單些﹐就是作業系統 (operating system)﹐它負責處理所有系統的東西﹐包括硬碟的控制﹑記憶體管理﹑行程管理﹑檔案系統﹑網路功能﹑等等。我們可以將核心看成是一個架於程式与硬體之間的界面操作系統﹐離開來核心﹐什麼東西都用不了。而核心的編譯好壞﹐也會影響到系統的效能﹐甚至﹐一些系統功能(如 tcp/ip)﹐就必須要編進核心才行。

  

  不過﹐在動手編譯核心之前﹐請先問問自己是否真的有這個必要﹖因為﹐現在的 linux distro﹐其預裝的核心力都盡可能的將所有東西以模組的方式進行編譯﹐而這些模組都是可以插入与移除的。這是一個非常靈活的設計﹕當您需要模組的時候﹐就載入到核心裡面﹔鳥盡弓藏的時候﹐可以將模組從核心中移除﹕呼之則來﹑揮之則去﹐怎一個方便了得﹗要知道﹐作業系統的效能好壞﹑穩定與否﹐其中一個很關鍵的因素是核心的體積短小精悍。一個臃腫的核心﹐沒錯﹐能提供樣樣俱到的功能﹐但也犧牲掉系統效能与穩定性。所以在編譯核心的時候﹐‘將核心編得儘量的小’﹐是最高原則。

  

  就像改車一樣﹕車身越輕﹐其可控性越佳﹐如果您完全是一個 100% 飆車發燒友﹐很可能﹐您的車箱裡面﹐除了改良後的前坐位与防翻側支架外﹐其它能拿掉的都拿掉﹐連儀俵都是裸露的。呵~~ 如果您的車子裡面還有一大堆 kitty ﹑snoppy﹐以及上十組喇叭与 cd 音響﹐那我只能說您是“愛車一族”﹐而絕對不夠資格稱得上“飆車一族”﹗如果您能將所有的汽車週邊都設計成模組﹐那就最好不過了﹕需要泡馬子的時候﹐將所有耍 cool 玩意都弄上﹔需要午夜狂奔的時候﹐全部拿掉﹐一件不留。

  

  同樣的﹐如果您真的是一個 100% 的 linux 發燒友﹐假如發現核心裡面竟然載有您不想要的東西﹐是絕對不能容忍的。不過﹐對於初入門的朋友﹐倒不必急於以 linux 發燒友來自居﹐先摸熟核心的功能之後﹐才真正打造適合自己的精確核心吧。說實在﹐若不是趕時髦﹐一般用 distro 預裝的核心已經非常足夠了。而且預裝核心都帶有非常充足的模組﹐隨時應付您的需求。除非您千真萬確的知道您要的硬體只有在新核心裡面才能支援﹐或是從 kernel.org 上面得知舊核心有嚴重的漏洞﹐否則﹐不需要如此勞師動眾。

  

  好了﹐現在﹐就假設您有十萬零一個理由需要進行核心的編譯﹐那就不妨一起共赴一趟核心的編譯之旅吧﹗

  

  選擇版本

  

  不管您的核心是從網路上抓的﹐還是從 cdrom 裡面 copy 出來的﹐首先要確定的事情是﹕這個版本是否適合您﹖

  

  事實上﹐linux 核心的版本號碼上面﹐就隱含著一些重要的資訊。先讓我們看看您目前使用的核心版本吧﹕ # uname -r

  2.4.2-2

  

  

  

  

  不知道您對這這些數字有何認識呢﹖不知道不要緊﹐讓我告訴您吧﹕

  

  

   ..-

  

  

  然後﹐再讓我們看看核心版本的維護流程﹕

  

  

   kernel

   2.2.0

   |

   v

   2.2.1

   :

   |

   v kernel

   2.2.8 ---> 2.3.0

   | |

   v v

   2.2.9 2.3.1

   : :

   | |

   v v kernel

   2.2.60 ... ---> 2.4.0

   |

   v kernel

   : ---> 2.5.0

   | |

   v v

   : :

  

  

  事實上﹐在眾多的核心版本中﹐我們需要特別留意的是第二個數字﹐也就是次版本的號碼﹕

  

  如果它是一個奇數﹐那這個版本是實驗性的版本﹐或許有些新的設備与功能能夠在這個種版本找到﹐但因為尚處於開發期﹐不能保證其穩定性与安全性。無論如何﹐不建議在真正用來工作的系統上面安裝實驗性的核心版本。例如﹕2.1.1﹑2.3.2﹑2.3.3﹑2.5.0 ....

  

  

  如果它是一個偶數﹐基本上﹐該版本已經獲得一定程度的測試与肯定﹐已趨於穩定与可靠的狀態。如果您的系統是真正用來工作的﹐只建議安裝穩定的核心版本。例如﹕2.2.1﹑2.2.17﹑2.4.2﹑2.4.9 ....

  

  無論如何﹐當新核心推出之後﹐都不建議立即在真正工作的系統上面應用﹐尤其是在商業機構中﹐不要拿營咧械南到y來做白老鼠。就算您獲得一個被認為是穩定的版本﹐也應該經過反復的測試﹐以及隨時留意核心團體所公佈的最新資訊。只有經過一段時期与廣泛的應用與回報﹐再加上自己的嚴格測試之後﹐才能決定是否要應用在工作的環境中。

  

  事實上﹐更新核心不是為了幹時髦﹐您必須很清楚您的需要是什麼﹐假如當前核心已經能應付您的需要﹐那就繼續保留它就是了。下面這篇文章﹐是小州兄的建言﹐非常有代表性﹐希望大家能深切領會其中的要旨﹕

  

  "小州" 撰寫於郵件

  news:3ifivr$84v@bbs.cynix.com.tw...

  > ※ 引述«asho (阿信)»之銘言:

  > > 這樣是否因為沒有最佳化

  > > cpu以及週邊的關係ㄋ

  > > 我想...如果編譯核心的時候

  > > 不選duron而選x86系列ㄉ話

  > > 效能應該會打折扣吧

  >

  > 我會去 compile kernel,一般來說只因為:

  >

  > 1. 你抓取新版 kernel source,當然你就需要自己編譯。

  >

  > 2. 雖然目前 kernel 在 linux dist 出廠時都盡可能編入需要的項目

  > 到核心內,其他項目都選擇編譯成為 module 可以事後掛入。若是

  > 很巧你用的週邊裝置該好很冷僻,預先編譯好的 kernel 既沒把你

  > 需要的項目編入核心,也沒有編譯成為 module,這時候才需要

  > 自己重新編譯核心。

  >

  > 3. 特殊環境使用....

  >

  > 重新編譯 kernel 並不會提昇效能,recompile kernel 最多只是調選

  > 自己需要的項目編譯核心或者是編譯成為模組來使用。也許在選擇

  > 編譯核心項目時,把 cpu 等級選好一點,那編譯出來的 kernel 是針對

  > 該 cpu 最佳化編譯,但是整體增加效能百分比卻是很低,比方可能增加了

  > 1 ~ 3 %,這對於目前的 cpu 來說,其實也沒有大幅度增快多少。

  >

  > 若是你用 mandrake,他全部 package 都是針對 pentium 的系統

  > 編譯程式,那整體效率上的確才會比一般 linux dist 的 package 都是用

  > i386 指令集的程式套件快上許多。

  >

  > 至於編譯核心時,留下這台機器需要的,其他根本不用的不編入。像是

  > 一般 linux dist 可能預先編譯好的 kernel 是支援 qos 機制,若是

  > 不需要該機制,拿掉也許能夠減少一些編出來的 kernel image 大小,

  > 但是這並不會增加系統效能..... 不過對於以前古老環境來說,當時

  > 記憶體不多,而且那時候模組化還不成熟的年代,讓 kernel image 變小

  > 一點,是可以減少一些記憶體耗費,但是對於目前其實都是不需要去擔心。

  

  

  

  

  另外﹐還有一個地方要留意的﹕就是您目前使用的應用程式与新版核心之間的兼容性如何﹖其中最頭痛的地方莫過於 library 的更新。因為 library 是核心与程式之間的主要溝通界面﹐實在有太多的程式需要使用到 library 提供的函式庫。如果單純為了升級某一個套件﹐而需要更新 library 版本的話﹐在很大程度上也會牽涉到核心版本的升級﹔但其它應用程式是否能使用新版的 library 卻是個非常棘手的難題。調過來說﹐如果您單純為了某一核心功能而升級核心﹐而導致所有 library 与應用程式都必須更新﹐您必須有足夠的 study 与風險評估﹐否則當您發現牽一髮動全身的時候﹐再臨急抱佛腳﹐恐為時已晚了。況且﹐許多隱藏性的問題﹐可能要等到積壓了某一時期之後才能浮現出來﹐這個恐怕更是讓人吃不了兜著走。

  

  無論如何﹐如果您覺得要升級核心的話﹐三思而後行﹗

  

  取得 source

  

  linux核心的發展﹐可以說是相當迅速的﹐其版本更新反而有時候讓人覺得受不了呢。

  

  如果您使用的我們這裡用來作範例的 redhat 7.1 套件﹐那您應該看到与我一模一樣的版本﹕2.4.2-2。
...   下一页
 ·samba使用大全    »显示摘要«
    摘要:   作者: linuxcn    samba协议基础    在netbios出现之后,microsoft就使用netbios实现了一个网络文件/打印服务系统,这个系统基于netbios设定了一套文件共享协议,microsoft称之为smb(server message block)协议。这个协议被microsoft用于它们lan manager和windows nt服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE