自訂核心..效能提高?

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

自訂核心..效能提高?

文章THQ » 週一 7月 31, 2006 3:30 pm

請問自訂核心,能讓Linux跑更快嗎..
或是其他方法..,有可以檢測效能的工具或一些實測的數據嗎
thx
THQ
活潑的高中生
活潑的高中生
 
文章: 492
註冊時間: 週二 1月 04, 2005 9:11 pm

文章realmax » 週一 7月 31, 2006 4:21 pm

對學linux的人來說,能夠自訂核心是不是一道程度上的分水嶺呀?如果不會自訂核心,是否對於學linux上會有一個瓶頸存在呢?
realmax
可愛的小學生
可愛的小學生
 
文章: 7
註冊時間: 週日 11月 27, 2005 3:56 pm

文章70630515 » 週一 7月 31, 2006 7:33 pm

對於核心的問題,它並不能讓你的linux跑更快,cpu是有極限的
不過如果是"跑出最大的效能"是可以的

自編核心主要是不讓linux載入多餘的module,但問題也來了,什麼module你需要?
如果不想要自己編,也有別人編好可以載來喔^^
我不自私,因為我開放(Open) , 我很快樂,因為我分享(Share)–Open Source
頭像
70630515
懵懂的國中生
懵懂的國中生
 
文章: 160
註冊時間: 週一 3月 13, 2006 9:15 am
來自: 北鼻存錢筒

文章訪客 » 週一 7月 31, 2006 10:37 pm

realmax 寫:對學linux的人來說,能夠自訂核心是不是一道程度上的分水嶺呀?如果不會自訂核心,是否對於學linux上會有一個瓶頸存在呢?


會自行編譯核心 應該算不上太特別的技能.

不過 一些 subjects  都會要求 使用者 具備自行編譯核心的能力. 比如說  kernel learning ... 等等
訪客
 

文章Lost-Angel » 週二 8月 01, 2006 12:04 am

基本上,自行編譯更新 Linux kernel 的最主要目的不過幾點:

一、為自己的電腦量身打造一套最合身的系統,讓系統效能可以獲得最大的發揮。
二、目前使用的核心版本不支援某個你必須要用的設備或裝置,而新版本的核心有支援。
三、目前使用的核心版本有安全性漏洞,需要緊急更新至較新的版本。

然而,自行編譯更新 Linux 的核心並沒有什麼技術性難度存在,因為充其量只不過是拿人家設計好的東西來用而已,一般初學者會怕 kernel compiling 是在於 configure 的部份,需要設定一大堆看不懂的選項。不過那倒不太需要擔心,如果真的有心的話,裡面那些選項多有英文說明可供參考,再不然上 Google 也可以弄懂!!!
The most beautiful thing we can experience is mysterious.
It is the source of all true art and science.

--- Albert Einstein, 1930
頭像
Lost-Angel
活潑的高中生
活潑的高中生
 
文章: 265
註冊時間: 週二 1月 25, 2005 1:29 am
來自: 臺灣民國高雄縣

文章ht » 週二 8月 01, 2006 12:51 pm

自行編譯核心能不能跑的更快得看你怎麼編法
一般而言,預設的kernel都是對大多數機器是合適的,所以是有空間調整的,若打算重編核心讓機器跑的更快,那最好對核心做調整以適合自己的使用,其中包括
調整部份kernel策略,如io scheduler,sysctl部份參數,time frequency等等,現在官方的time frequency是250Hz,2.6.x(忘了是哪一版)之前是100Hz,那現在CPU動不動就上3G,有些人會選1000Hz
再來是更改部份程式碼,最常有的行為就是上patch了,首推
http://members.optusnet.com.au/ckolivas/kernel/
那ck patch目前來說有很多部份是修改cpu scheduler
再者就是用compiler來產生更快的machine code啦,包括調整最佳化的程度(不過目前autotools都做的差不多了啦,除非你心臟很大顆要來個-O3以上的調整,預設應該是-O2),還有更換compiler,例如在x86機器上改用intel的cc

建議的方式--上上ck patch就好...編譯核心很花時間地...
ht
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週二 8月 01, 2006 12:26 pm

文章ycfu » 週二 9月 05, 2006 12:22 am

就我自己的認知,早期核心沒有module的設計,因此要自訂系統核心,可能原因是各系統平台的硬體不同,另外全部硬體的驅動都載入記憶體後,核心會佔用很大的記憶體。

後來有module設計後,核心就分割成核心和module,module的好處是,在不需要使用硬體裝置時,可以不用載入,讓核心佔用的記憶體較少些,能夠是情況動態載入,這也是一般認知上module的功能。

不過module也有缺點,因為module是以檔案的形式存在磁碟中,因此每次載入時,都要進行磁碟I/O的存取動作,效率並不好,而核心內的驅動在系統開機時便一起載入記憶體中,因此存取速度快。

但是,隨著Linux的進步,現在的Linux大量使用module,但是效能還是不錯,原因在於,現在使用了initrd的RAM Disk技術。

在編譯核心時,將module獨立放到一個RAM Image檔案中,開機時,核心載入到記憶體中,並順便切出一塊RAM Disk,接著把module的RAM Image放入。

因此module的存取動作在RAM裡面進行,效率就會好得多。

所以現在,沒有特殊情況,多半用核心套件即可。

而所謂的特殊情況是,如果你的機器有比較特別硬體,驅動程式是由廠商另外提供,要另外編譯時,這時候乾脆就自己依環境改改核心,省點空間,少看一點module也不錯。

再不然,另一種可能是,你很明確知道這台電腦的用途僅僅是針對特定用途或需要,例如它就是一台Media Center或是它就是一台File Server、firewall、Gateway...等,你希望將核心最佳化,連module佔用的記憶體空間都希望拿來使用,那也可以針對特定環境編譯特定核心,這個優點,也是M$ Windows沒辦法做到的。
ycfu
可愛的小學生
可愛的小學生
 
文章: 28
註冊時間: 週一 4月 03, 2006 1:34 am

文章willie0220 » 週二 9月 05, 2006 1:15 am

怎麼感覺怪怪的,和我認知不一樣耶

1. initrd存在的主要目的是提供一些一開始就需要的模組。比如你的硬碟是scsi,那就要建立一個initrd的image,將scsi的模組放在裡面,如此一來開機時boot loader才能從initrd裡取得scsi驅動,然後順利將控制權交給kernel,那如果沒有initrd的存在,就會變成雞生蛋蛋生雞的情況。詳細原理可以參考:
http://www-128.ibm.com/developerworks/c ... index.html

2.編成模組,雖然再一開始掛入模組時速度比較慢(其實也沒啥感覺吧),但是讀入後都是放在記憶體,此時速度上應該就沒啥差別了。
willie0220
可愛的小學生
可愛的小學生
 
文章: 70
註冊時間: 週二 1月 13, 2004 9:04 pm

文章阿信 » 週二 9月 05, 2006 9:19 am

如果你要使用非stock kernel pkg, debian 包裝的或是平台上的功能性特別(embedded system),否則重新編譯同一個核心並不會提高多少效能。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

文章訪客 » 週二 9月 05, 2006 1:39 pm

kernel modules 跟 initrd 的 RAM disk 無關,
我自編的 kernel 沒有使用 initrd,但 modules
還是可以正常 load/unload。
訪客
 


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客