FreeBSD其他核心設定選項(轉)
瞭解了最基本的GENERIC設定檔案的內容,使用者就能根據實際情況,將不必要的設定刪除,配置一個適合自己硬體的核心。然而GENERIC核心並不能包括更豐富的設定,包括很多支援的硬體種類,或者特定的核心特性等。
除了上面提到的這些較常用到的選項之外,FreeBSD中還支援一些不常使用的裝置和選項,例如一些老式的連線到音效卡上的光碟機、遊戲杆等,FreeBSD甚至也支援IP over ATM協議和ATM網路卡,千兆乙太網卡等最新的網路裝置和協議。
所有的選項均可以在LINT檔案中找到對應配置的例子,就需要根據具體硬體將配置增加到使用者自己的配置檔案中。
無論增加哪種硬體裝置之後,都要檢查系統中是否有相應的裝置檔案存在。通用核心中不存在的裝置,預設也沒有生成對應的裝置檔案。因此需要進入/dev目錄中,使用/dev/MAKEDEV命令來產生相應的裝置檔案。
- 調整核心效能
當執行一臺高效能伺服器的時候,預設設定並不能充分發揮核心的所有能力。為了調整系統效能,便需要考慮更多的設定選項。
maxusers 256options "MAXMEM=(256*1024)"options "MAXDSIZ=(256*1024*1024)"options "DFLDSIZ=(256*1024*1024)"options NMBCLUSTERS=4096 options CHILD_MAX=512 options OPEN_MAX=512 options SMPoptions APIC_IOoptions SOFTUPDATES
由於伺服器系統執行在高負載下,需要產生數量巨大的程式數目,並開啟相當多的檔案。為了提供更好的支援就需要增加系統中表格的大小,這應該增加maxusers設定引數。
系統啟動時首先透過BIOS來檢測系統中的記憶體,但是一般的BIOS最多隻能報告64M記憶體,因此FreeB SD需要自己檢測系統中的記憶體數量。然而系統記憶體檢測並不一定檢測到系統中的所有記憶體,因此需要在核心設定中指定記憶體大小,MAXMEM選項就用來指定系統實體記憶體的容量。上例中將系統記憶體設定為256MB。
此外,預設情況下FreeBSD限制每個應用程式使用128MB的記憶體,這對於一般的應用程式是滿足的。但是對於特定的應用程式的伺服器,如大容量的新聞組伺服器,將佔用大量記憶體,因此就需要增加相應的引數。核心選項MAXD SIZ為最大限制,DFLDSIZ為這個限制的預設值,那麼將應用程式的記憶體使用限制設為256MB的配置項為上例所示。
為了增加FreeBSD的網路效能,可以增加NMBCLUSTERS的值,這個設定決定網路介面接收資料時的緩衝mbuf的大小,增加這個值就能使系統能同時響應更多的併發請求,這對於Web等高負載伺服器特別重要。CHIL D_MAX定義一個程式能開啟的最多子程式數數目,而OPEN_MAX定義一個程式能同時開啟的檔案描述字的數目,這三個引數為繼承自4.4BSD中的設定引數,在FreeBSD下一般不需要調整,因此並沒有寫在LINT配置檔案中,一般情況下,NMBCLUSTERS的預設值對於高負載伺服器略小一些,而CHILD_MAC和OPEN_MAX的預設值能滿足一般的高負載伺服器的要求。
通常這些數值引數需要根據實際情況進行調整,而不應該一味的增大。使用vmstat,netstat,top 等系統工具可以觀察系統在實際情況下的執行狀態,以決定需要進行哪些調整。
SOFTUPDATES選項能增加UFS型別的檔案系統存取速度,對於大部分種類的網路伺服器,系統瓶頸在於磁碟訪問速度,而使用這個選項可以改善檔案系統的存取效能。這個選項之所以沒有被作為預設設定,主要是因為版權原因。然而為了編譯帶有SOFTUPDATES選項的核心,還必須手工建立一些符號連線,因為SOFTUPDATES使用的原始碼並不直接位於正確的編譯路徑下,而是位於一個非標準路徑下,FreeBSD使用這種方法提醒FreeBSD使用者,表示這個部分的版權與BSD版權許可不同,需要單獨處理。
# cd /usr/src/sys/ufs/ffs# ln -s /usr/src/contrib/sys/softupdates/*.[ch] .
當建立了上述連線之後,帶有SOFTUPDATES選項的核心才能被正確編譯,然而即使核心支援這個選項,還需要在檔案系統中設定softupdate選項,相應檔案系統才能真正使用這個功能,這需要對相應的檔案系統使用tunefs命令:
# tunefs -n enable /dev/rda0s1d
這個命令只需執行一次就行了,為了避免出現問題,請在系統的單使用者模式下執行這個命令。同樣可以使用tune fs -n disable可以遮蔽這個功能。
此外,對於多處理器的伺服器系統,還可以使用SMP選項和APIC_IO選項以支援多處理器。
可以在編譯核心時開啟更多的最佳化選項,預設情況的只能提供十分基本的最佳化,而且是使用標準版本的gcc 2. 7.2.1來編譯系統的。可以安裝egcc,並指定更高的最佳化選項,如-O6和-mPentium,來獲得更高階別的最佳化和利用Pentium晶片專用指令。由於egcc僅僅支援ELF格式的執行檔案,因此不能用於3.0之前(包括3 .0-REKLEASE)使用a.out格式核心的系統。
當使用egcc編譯核心時,需要更改執行config後產生的核心目錄下的Makefile,需要重新定義C C選項為/usr/local/bin/egcc,並更改最佳化選項-O為-O -mpentium,但是由於egcc 不支援gcc的編譯選項-fformat_externsion,因此還需要更改Makefile引用的/usr/s rc/share/mk/bsd.kern.mk檔案,刪除這個檔案中這個編譯選項的定義。
雖然理論上編譯器最佳化不影響編譯結果,但是編譯器本身也會存在問題,使得在某些情況下發生錯誤。尤其對於系統核心,它決定系統的穩定性。因而在編譯時採用過高的最佳化時就要特別小心,極其偶然的情況下會過高最佳化的核心會造成系統崩潰。因此在正式使用一個最佳化核心之前,應該保留一個原有的、使用普通最佳化選項的核心。新核心經過一定時間實際執行的考驗,確認沒有問題之後才能放心用於正式使用。
- 音效卡裝置
通常對於SoundBlaster相容的音效卡,可以使用的以下配置選項:
controller pnp0controller snd0device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintroptions SBC_IRQ=5device sbxvi0 at isa? drq 5device sbmidi0 at isa? port 0x330device opl0 at isa? port 0x38a
其中pnp0控制器是幫助設定ISA介面的PNP音效卡的資源,這主要用於使用BIOS為ISA PNP裝置分配資源的情況下。但如果不是ISA PNP的音效卡,就不需要這個設定,而且如果ISA PNP音效卡能設定為非PNP型別,最好將其設定為非PNP型別,ISA匯流排下的PNP音效卡比較難以設定。
如果系統中安裝有DOS的話,可以啟動到DOS下,使用該卡的設定程式或一些系統硬體分析軟體尋找BIOS分配給ISA PNP卡的資源。
snd0提供最基本的音效卡支援程式碼,sb0為SoundBlaster相容音效卡驅動程式,要根據音效卡的配置引數更改sb0驅動程式的IRQ、DMA以及port數值。改變IRQ值的時候,不僅應該在sb0的配置行中改變,還應該使用SBC_IRQ配置選項。
sbvxi0也是SoundBlaster 16所需的程式碼,大部分聲稱與SoundBlaster相容的音效卡並不能做到完全相容SoundBlaster 16,最多相容SoundBlaster或SoundBlaster Pro,因此就不能支援這個裝置,只有真正的SoundBlaster 16才能使它發揮作用。sbmidi0為So undBlaster音效卡的MIDI介面的驅動程式,很多相容音效卡也不支援這個裝置。opl0為SoundBlast er相容音效卡使用的Yamaha OPL-2和OPL-3晶片使用的驅動。
使用上面的配置選項,設定正確的資源引數,就可以支援soundblaster相容音效卡。但是不同音效卡對So undblaster的相容性不同,因此係統檢測時就不能檢測到所有的裝置,如midi裝置或sbvxio0裝置,但一般都可以檢測到sb0裝置,這就能提供基本的音效卡裝置支援。
音效卡裝置還需要相應裝置檔案snd0的支援:
# cd /dev# ./MAKEDEV snd0
當使用這些選項重新編譯好核心,並啟動之後,就可以檢視音效卡系統是否工作正常。首先應使用 dmesg命令檢視系統是否偵測出了音效卡裝置,如果沒有偵測出,就可能是硬體引數配置的問題,需要使用 UserConfig更改配置。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944653/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FreeBSD 預設核心配置選項(轉)
- FreeBSD shell設定(轉)
- 配置FreeBSD核心(轉)
- FreeBSD設定基本系統(轉)
- FreeBSD設定和使用DHCP(轉)
- FreeBSD下PPPoE的設定(轉)
- FreeBSD下PPPoE的設定 (轉)
- FreeBSD調整系統設定(轉)
- FreeBSD設定和使用ipfw/natd(轉)
- FreeBSD系統核心物件(轉)物件
- FreeBSD根據Windows網路設定Samba(轉)WindowsSamba
- FreeBSD的基本系統下Shell設定(轉)
- FreeBSD編譯安裝新核心(轉)編譯
- FreeBSD VM核心記憶體管理(轉)記憶體
- FreeBSD系統中調整控制檯設定(轉)
- Vim auto-pairs設定選項AI
- PostCSS深入學習:設定選項CSS
- 玩轉 PHP 網路程式設計全套之 socket 選項設定 APIPHP程式設計API
- 設定select下拉選單的預設選中項
- 核心編譯選單中相關選項的意義(轉)編譯
- freebsd核心安全
- FreeBSD定時執行程式(cron)(轉)行程
- JavaScript動態設定select下拉選單預設選項JavaScript
- jQuery設定select選中項程式碼例項jQuery
- Win10列印首選項如何設定_win10印表機首選項的設定步驟Win10
- 淺談FreeBSD 5.2R 常用操作(設定)的改變(轉)
- XamarinEssentials教程設定首選項Preferences的值
- css @page規則控制列印設定選項CSS
- Java 混淆那些事(五):ProGuard 其他的選項Java
- Win10設定裡沒有恢復選項怎麼辦 win10設定恢復選項的方法Win10
- 使用點陣圖選單項——設定點陣圖型別標記 (轉)型別
- excel下拉選擇項怎麼設定 excel怎麼新增下拉選項內容Excel
- 搭建 Laravel Sail 開發環境 - Windows,docker選項設定 沒有 'ubuntu'選項LaravelAI開發環境WindowsDockerUbuntu
- JavaScript點選設定背景顏色的選項卡程式碼JavaScript
- Win8系統設定休眠選項功能
- 在FreeBSD中安裝雙網路卡例項(轉)
- win10 cpu核心個數選擇怎麼設定_win10系統cpu核心數設定方法Win10
- 巧用SET選項設定SQL Server客戶端配置SQLServer客戶端