當前位置:首頁 » 存儲配置 » 你的內核是怎麼配置的

你的內核是怎麼配置的

發布時間: 2023-03-19 23:35:55

A. 在Ubuntu上做內核編程,要安裝哪個包怎麼做

1、gcc (C編譯器)
安裝 apt-get install gcc

2、make (源代碼維護工具,它能自動檢測出需要重新編譯的源文件並根據你設定的編譯規則去重新編譯程序)
安裝 apt-get install make

3.kernel-source (內核源碼包。你可以apt-cache search kernel-source搜索到內核源代碼包,並用uname -r命令查看到當前系統內核版本,然後用apt-get install kernel-source-xxxx來安裝和你內核版本一致的內核源代碼包)
如果你不想重新編譯內核,內核源代碼包kernel-source是完全可以不下載的。

4.kernel-headers(內核源代碼頭文件包,不管你是要進行內核模塊開發還是進行驅動程序開發,這個包都是必須 要安裝的。因為作為一個內核模塊編寫者,通常會調用內核里的一些東西,比如內核頭文件,內核數據結構申明等。它裡麵包含了一些關鍵的內核頭文件)
安裝 apt-cache search kernel-headers
uname -r
apt-get instakk kernel-headers-xxxx

5.kernel-kbuild(用來編譯內核模塊的,下載安裝這個包後會發現在/usr/src目錄下多了一個kernel-kbuild-xxxx開頭的目錄,下面只有scripts一個目錄,這是用來編譯內核模塊的一些腳本程序)
安裝 apt-cache search kernel-kbuild
uname -r
apt-get install kernel-kbuild-xxxx

6.build-essential(包含一個在建立deb包過程中起關鍵作用的包的信息列表,如果你不想建立deb包你就不需要安裝此表)
安裝 apt-get install build-essential

7.kernel-package(如果你想把內核鏡像做成一個deb包來用,那麼必須用安裝這個包了)
安裝 apt-get install kernel-package

8.initrd-tools(如果你想製作啟動過程的initrd鏡像,則這個包是必不可少的)
安裝 apt-get instakk initrd-tools

假設你編寫了一個內核模塊程序,源代碼如下:
/* hello.c */
#include <linux/init.h>
#include <linux/mole.h>
#include <linux/kernel.h>
static int hello_init(void)
{
printk(KERN_ALERT "Hello, linux kernel mole
");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, I've created a linux kernel mole sucessfully
");
}
mole_init(hello_init);
mole_exit(hello_exit);
MODULE_LICENSE("GPL");

你需要這此源程序編寫一個makefile,內容如下:

#Makefile for hello.c file
#
KERNEL_DIR:=/usr/src/linux
obj-m:=hello.o
default:
$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) moles
clean:
$(RM) .*.cmd *.mod.c *.o *.ko -r .tmp
注意:這里的KERNEL_DIR是指內核源代碼頭文件所在目錄的上一級目錄,通常就是指內核源代碼目錄。該目錄一般包括有arch,drivers,fs,include,init,ipc,kernel,lib,mm,net,scripts,usr,sound,security等目錄。

在本示例中,/usr/src/linux是一個鏈接,指向了/usr/src/kernel-headers-2.6.8-3目錄。

編寫好makefile後就可以輸入make命令生成hello.ko內核模塊了,然後你可以用:

insmode hello.ko
命令來加入內核模塊,然後用:

rmmod hello
來刪除內核模塊。

B. 系統配置的配置文件

內核本身也可以看成是一個「程序」。為什麼內核需要配置文件?內核需要了解系統中用戶和組的列表,進而管理文件許可權(即根據許可權判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,並被內核使用。例如,程序需要某個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的getpw() 函數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之後查找那個被請求的用戶的密碼都是由內核(通過系統庫)決定的。
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:
訪問文件
/etc/host.conf 告訴網路域名伺服器如何查找主機名。(通常是 /etc/hosts,然後就是名稱伺服器;可通過 netconf 對其進行更改。)
/etc/hosts 包含(本地網路中)已知主機的一個列表。如果系統的 IP 不是動態生成,就可以使用它。對於簡單的主機名解析(點分表示法),在請求 DNS 或 NIS 網路名稱伺服器之前,/etc/hosts.conf 通常會告訴解析程序先查看這里。
/etc/hosts.allow 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
/etc/hosts.deny 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
引導和登錄/注銷
/etc/issue & /etc/issue.net 這些文件由 mingetty(和類似的程序)讀取,用來向從終端(issue)或通過 telnet 會話(issue.net)連接的用戶顯示一個「welcome」字元串。 它們包括幾行聲明 Red Hat 版本號、名稱和內核ID 的信息。它們由 rc.local 使用。
/etc/redhat-release 包括一行聲明 Red Hat 版本號和名稱的信息。由 rc.local 使用。
/etc/rc.d/rc 通常在所有運行級別運行,級別作為參數傳送。 例如,要以圖形(Graphics)模式(X-Server)引導機器,請在命令行運行下面的命令:init 5。運行級別 5 表示以圖形模式引導系統。
/etc/rc.d/rc.local 非正式的。可以從 rc、rc.sysinit 或 /etc/inittab 調用。
/etc/rc.d/rc.sysinit 通常是所有運行級別的第一個腳本。
/etc/rc.d/rc/rcX.d 從 rc 運行的腳本(X 表示 1 到 5 之間的任意數字)。這些目錄是特定「運行級別」的目錄。 當系統啟動時,它會識別要啟動的運行級別,然後調用該運行級別的特定目錄中存在的所有啟動腳本。例如,系統啟動時通常會在引導消息之後顯示「entering run-level 3」的消息;這意味著 /etc/rc.d/rc3.d/ 目錄中的所有初始化腳本都將被調用。
文件系統
內核提供了一個介面,用來顯示一些它的數據結構,這些數據結構對於決定諸如使用的中斷、初始化的設備和內存統計信息之類的系統參數可能很有用。這個介面是作為一個獨立但虛擬的文件系統提供的,稱為 /proc 文件系統。很多系統實用程序都使用這個文件系統中存在的值來顯示系統統計信息。例如,/proc/moles 文件列舉系統中當前載入的模塊。lsmod 命令讀取此信息,然後將其以人們可以看懂的格式顯示出來。 下面表格中指定的 mtab 文件以同樣的方式讀取包含當前安裝的文件系統的 /proc/mount 文件。
/etc/mtab 這將隨著 /proc/mount 文件的改變而不斷改變。換句話說,文件系統被安裝和卸載時,改變會立即反映到此文件中。
/etc/fstab 列舉計算機當前「可以安裝」的文件系統。 這非常重要,因為計算機引導時將運行 mount -a 命令,該命令負責安裝 fstab 的倒數第二列中帶有「1」標記的每一個文件系統。
/etc/mtools.conf DOS 類型的文件系統上所有操作(創建目錄、復制、格式化等等)的配置。
系統管理
/etc/group 包含有效的組名稱和指定組中包括的用戶。單一用戶如果執行多個任務,可以存在於多個組中。例如,如果一個「用戶」是「project 1」工程組的成員,同時也是管理員,那麼在 group 文件中他的條目看起來就會是這樣的:user: * : group-id : project1
/etc/nologin 如果有 /etc/nologin 文件存在,login(1) 將只允許 root 用戶進行訪問。它將對其它用戶顯示此文件的內容並拒絕其登錄。
etc/passwd 請參閱「man passwd」。它包含一些用戶帳號信息,包括密碼(如果未被 shadow程序加密過)。
/etc/rpmrc rpm 命令配置。所有的 rpm 命令行選項都可以在這個文件中一起設置,這樣,當任何 rpm 命令在該系統中運行時,所有的選項都會全局適用。
/etc/securetty 包含設備名稱,由 tty 行組成(每行一個名稱,不包括前面的 /dev/),root 用戶在這里被允許登錄。
/etc/usertty
/etc/shadow 包含加密後的用戶帳號密碼信息,還可以包括密碼時效信息。
/etc/shells 包含系統可用的可能的「shell」的列表。
/etc/motd 每日消息;在管理員希望向 Linux 伺服器的所有用戶傳達某個消息時使用。
初學者在使用電腦過程中,肯定會碰到各種各樣的問題:如怎麼管理電腦的自啟動程序、如何查看載入的系統服務、怎樣從安裝光碟提取丟失的系統文件等。為了解決類似問題,微軟在系統中提供了一個實用工具——系統配置實用程序(Msconfig)。
以系統管理員身份登錄系統後,單擊「開始→運行」輸入「Msconfig」回車後即可啟動系統配置實用程序
下面就結合幾個應用實例來詳細介紹Msconfig的使用(以WinXP為例)。
「一般」選項不一般
默認情況下,Windows採用的是正常啟動模式(即載入所有驅動和系統服務),但是有時候由於設備驅動程序遭到破壞或服務故障,常常會導致啟動出現一些問題,這時可以利用Msconfig的其它啟動模式來解決問題。單擊 「一般」選項,在「啟動模式」選擇「診斷啟動」,這種啟動模式有助於我們快速找到啟動故障原因。此外,還可以選擇「有選擇的啟動模式」,按提示勾選需要啟動的項目即可。
小提示:診斷啟動是指系統啟動時僅載入基本設備驅動程序如顯卡驅動,而不載入Modem、網卡等設備,服務也僅是系統必須的一些服務。這時系統是最干凈的,如果啟動沒有問題,可以依次載入設備和服務來判斷問題出在哪裡。
雖然WinXP具備強大的文件保護功能,不過有時候由於安裝/卸載軟體或誤操作,還是經常會造成系統文件的丟失。一般重要的系統文件,在系統安裝光碟CAB文件中都可以找到。單擊上圖的「展開文件」,然後在彈出窗口中依次輸入要還原的文件(填入丟失文件名)、還原自(單擊「瀏覽自」,選擇安裝光碟的CAB壓縮文件)、保存文件到(選擇保存文件路徑,WinXP/2000一般為c:windowssystem32,Win98則為c:windowssystem),最後單擊「展開」,系統會自動解壓CAB文件,將系統文件從安裝光碟提取到電腦。
可以先用系統的SFC命令來掃描系統文件的改動,找出變化的系統文件,命令格式:SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]
/SCANNOW:立即掃描所有受保護的系統文件。
/SCANONCE:下次啟動時掃描所有受保護的系統文件。
/SCANBOOT:每次啟動時掃描所有受保護的系統文件。
/REVERT:將掃描返回到默認設置。
/PURGECACHE:清除文件緩存
/CACHESIZE=x:設置文件緩存大小。
在電腦應用中經常會看到「許可權」這個詞,特別是Windows 2000/XP被越來越多的朋友裝進電腦後,常常會有讀者問,什麼是許可權呢?它到底有什麼用?下面我們將用幾個典型實例為大家講解windows中的許可權應用,讓你不僅可以在不安裝任何軟體的情況下,限制別人訪問你的文件夾、指定用戶不能使用的程序,而且還有來自微軟內部的加強系統安全的絕招。
初識Windows的許可權
首先,要完全使用windows許可權的所有功能,請確保在應用許可權的分區為NTFS文件系統。本文將以windowsXP簡體中文專業版+SP2作為範例講解。
在以NT內核為基礎的Windows 2000/XP中,許可權主要分為七大類完全控制、修改,讀取和運行、列出文件夾目錄、讀取、寫入、特別的許可權。
其中完全控制包含了其他六大許可權.只要擁有它,就等同於擁有了另外六大許可權,其餘復選框會被自動選中.屬於「最高等級」的許可權。
而其他許可權的等級高低分別是:特別的許可權>讀取和運行>修改>寫入>讀取。
默認情況下,Windows XP將啟用簡單文件共享,這意味著安全性選項卡和針對許可權的高級選項都不可用.也就不能進行本文所述的那些許可權應用操作了。請右擊任意文件或文件夾.選擇「屬性」,如果沒有看到「安全」選項卡,你可以通過如下方法打開它。
打開「我的電腦」,點擊「工具→文件夾選項→查看」,接著在然後單擊取消「使用簡單文件共享(推薦)」復選框即可。
實戰許可權「正面」應用
以下應用的前提,是被限制的用戶不在Administrators組,否則將可能發生越權訪問,後面反面應用會講到。執行許可權設置的用戶至少需要為Power Users組的成員,才有足夠許可權進行設置。
實例1:我的文檔你別看-保護你的文件或文件夾
假設A電腦中有三個用戶,用戶名分別為User1、User2、User3。Userl不想讓User2和User3查看和操作自己的「test」文件夾。
第一步:右擊test文件夾並選擇屬性,進入安全選項卡,你將會看到組或用戶名稱欄里有Administrators(AAdministrators)、CREATOR OWNER、SYSTEM Users(AUsers)、User1(A User1)。他們分別表示名為A電腦的管理員組,創建、所有者組,系統組,用戶組以及用戶User1對此文件夾的許可權設置。當然,不同的電腦設置和軟體安裝情況,此欄里的用戶或用戶組信息不一定就是和我描述的一樣.但正常情況下最少將包含3項之一:Administrators、SYSTEM、Users或Everyone。
第二步:依次選中並刪除Administrators、CREATOR OWNER、SYSTEM、Users,僅保留自己使用的Userl賬戶。在操作中可能會遇到的提示框。
其實只要單擊高級按鈕,在許可權選項卡中,取消從父項繼承那些可以應用到子對象的許可權項目,包括那些在此明確定義的項目的復選框,在彈出對話框中單擊刪除即可。該操作使此文件夾清除了從上一級目錄繼承來的許可權設置,儀保留了你使用的User1賬戶。
就這么輕松,你就實現了其他用戶,甚至系統許可權都無法訪問test文件夾的目的。
★需要注意的是,如果這個文件夾中需要安裝軟體,那麼就不要刪除SYSTEM,不然可能引起系統訪問出錯
★Administrator並不是最高指揮官:你可能會問,為什麼這里會有一個SYSTEM賬戶呢?同時許多朋友認為windows2000/XP中的Administrator是擁有許可權最高的用戶,其實不然,這個SYSTEM才具有系統最高許可權,因為它是作為操作系統的一部分工作,任何用戶通過某種方法獲取了此許可權,就能凌駕一切。
實例2:上班時間別聊天-禁止用戶使用某程序
第一步:找到聊天程序的主程序,如QQ,其主程序就是安裝目錄下的QQ.exe,打開它的屬性對話框,進入安全選項卡,選中或添加你要限制的用戶,如User3。
第二步:接著選擇完全控制為拒絕,讀取和運行也為拒絕。
第三步:單擊高級按鈕進入高級許可權沒置,選中User3,點編輯按鈕,進入許可權項目。在這里的拒絕欄中選中更改許可權和取得所有權的復選框。
也可以使用組策略編輯器來實現此功能,但安全性沒有上面方法高。點擊開始→運行,輸入gpedit.msc,回車後打開組策略編輯器,進入計算機設置→windows設置→安全設置→軟體限制策略→其他規則,右擊,選擇所有任務→新路徑規則,接著根據提示設置想要限制的軟體的主程序路徑,然後設定想要的安全級別,是不允許的還是受限制的。
實例3:來者是客--微軟內部增強系統安全的秘技
本實戰內容將需要管理員許可權。所謂入侵,無非就是利用某種方法獲取到管理員級別的許可權或系統級的許可權,以便進行下一步操作,如添加自己的用戶。如果想要使入侵者進來之後不能進行任何操作呢?永遠只能是客人許可權或比這個許可權更低,就算本地登錄,連關機都不可以。那麼,他將不能實施任何破壞活動。
注意:此法有較高的危險性.建議完全不知道以下程序用途的讀者不要嘗試.以免誤操作引起系統不能進入或出現很多錯誤。
第一步:確定要設置的程序
搜索系統目錄下的危險程序,它們可以用來創建用戶奪取及提升低許可權用戶的許可權,格式化硬碟,引起電腦崩潰等惡意操作:cmd.exe、regedit.exe、regsvr32.exe、regedt32.exe、gpedit.msc、format.com、compmgmt.msc、mmc.exe、telnet.exe、tftp.exe、ftp.exe、XCOPY.EXE、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、net.exe、tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、cscript.exe、netstat.exe、issync.exe、runonce.exe、debug.exe、rexec.exe、wscript.exe、command.com、comspd.exe
第二步:按系統調用的可能性分組設置
按照下面分組.設置這些程序許可權。完成一組後,建議重啟電腦確認系統運行是否一切正常,查看事件查看器,是否有錯誤信息(控制面板→管理工具→事件查看器)。
(1)cmd.exe、net.exe gpedit.msc telnet.exe command.com
(僅保留你自己的用戶,SYSTEM也刪除)
(2)mmc.exe、tftp.exe、ftp.exe、XCOPY.EXE、comspd.exe
(僅保留你自己的用戶,SYSTEM也刪除)
(3)regedit.exe、regedt32.exe、format.com、compmgmt.msc、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、debug.exe、wscript.exe、cscript.exe、rexec.exe
(保留你自己的用戶和SYSTEM)
(4)tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、netstat.exe、issync.exe、runonce.exe、regsvr32.exe
(保留你自己的用戶和SYSTEM)
第三步:用戶名欺騙
這個方法騙不了經驗豐富的入侵者,但卻可以讓不夠高明的偽黑客們弄個一頭霧水。
打開控制面板一管理工具一計算機管理,找到用戶,將默認的Administrator和Guest的名稱互換,包括描述信息也換掉。完成後,雙擊假的Administrator用戶,也就是以前的Guest用戶.在其屬性窗口中把隸屬於列表裡的Guests組刪除.這樣.這個假的管理員賬號就成了無黨派人士,不屬於任何組,也就不會繼承其許可權。此用戶的許可權幾乎等於0,連關機都不可以,對電腦的操作幾乎都會被拒絕。如果有誰處心積慮地獲取了這個用戶的許可權,那麼他肯定吐血。
第四步:集權控制,提高安全性
打開了組策略編輯器,找到計算機設置→windows設置→安全設置→本地策略→用戶權利指派,接著根據下面的提示進行設置。
(1)減少可訪問此計算機的用戶數,減少被攻擊機會
找到並雙擊從網路訪問此計算機,刪除賬戶列表中用戶組,只剩下Administrators;
找到並雙擊拒絕本地登錄,刪除列表中的Guest用戶,添加用戶組Guests。
(2)確定不想要從網路訪問的用戶,加入到此黑名單內
找到並雙擊拒絕從剛絡訪問這台計算機,刪除賬戶列表中的Guest用戶,添加用戶組Guests;
找到並雙擊取得文件或其他對象的所有權,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除列表中Administrators。
(3)防止跨文件夾操作
找到並雙擊跳過遍歷檢查,添加你所使用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators、Everyone和Users用戶組。
(4)防止通過終端服務進行的密碼猜解嘗試
找到並雙擊通過終端服務拒絕登錄,添加假的管理員賬戶Administrator;找到通過終端服務允許登錄,雙擊,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators,Remote Desktop User和HelpAssistant(如果你不用遠程協助功能的話才可刪除此用戶)。
(5)避免拒絕服務攻擊
找到並雙擊調整進程的內存配額,添加你常用的賬戶,再刪除賬戶列表中的Administrators
實例4:你的文檔別獨享——突破文件夾私有的限制
windows XP安裝完成並進入系統時,會詢問是否將我的文檔設為私有(專用),如果選擇了是,那將使該用戶下的我的文檔文件夾不能被其他用戶訪問,刪除,修改。其實這就是利用許可權設置將此文件夾的訪問控制列表中的用戶和用戶組刪除到了只剩下系統和你的用戶,所有者也設置成了那個用戶所有,Administrators組的用戶也不能直接訪問。如果你把這個文件夾曾經設置為專用,但又在該盤重裝了系統,此文件夾不能被刪除或修改。可按照下面步驟解決這些問題,讓你對這個文件夾的訪問,暢通無阻。
第一步:登錄管理員許可權的賬戶,如系統默認的Administrator,找到被設為專用的我的文檔,進入其屬性的安全選項卡,你將會看到你的用戶不在裡面,但也無法添加和刪除。
第二步:單擊高級按鈕,進入高級許可權設置,選擇所有者選項卡,在將所有者更改為下面的列表中選中你現在使用的用戶,如Userl(AUserl),然後再選中替換子容器及對象的所有者的復選框,然後單擊應用,等待操作完成。
第三步:再進入這個文件夾看看,是不是不會有任何許可權的提示了?可以自由訪問了?查看裡面的文件,復制、刪除試試看.是不是一切都和自己的一樣了?嘿嘿。如果你想要刪除整個文件夾,也不會有什麼阻止你了。
ServerWinStationsRDP-Tcp 改3389 的

C. ubuntu系統下怎麼編譯內核文件

一、下載源代碼和編譯軟體的准備
安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。安裝不了,請檢查/etc/apt/sources.list 文件。有關命令:代碼:$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解壓源代碼注意,網上很多教程上說應該解壓到 /usr/src,純屬以訛傳訛,linux掌門人linus說解壓到任何目錄上都可以。當然,linus的說法是正確的。我放在自己的主目錄下的src目錄。如果你下載源代碼是放到自己的主目錄下或者運行上面的wget下載的,那麼運行下列命令:代碼:$ cd ~$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/現在,源代碼就在 ~/src/linux-2.6.25.10進入源代碼的目錄,准備下一步的工作。後面都在這個目錄裡面進行。代碼:$ cd ~/src/linux-2.6.25.10
三、開始編譯前的准備工作。首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那麼一定要執行。相關命令如下:代碼:$ sudo make mrproper網上很多教程上說把現在使用的內核的config拷貝過來參考,據實驗,是不需要的,ubuntu還有debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。命令:代碼:cp /boot/config-`uname -r` ./.config
四、開始配置內核選項。相關命令:代碼:$sudo make menuconfig配置用到的鍵只有幾個,esc退出菜單;空格改變選項狀態;游標鍵上下左右移動,回車選定。選項意義:M是編譯成可以隨時加入的模塊,*是編譯進入內核,空就是不要。配置選項非常多,具體配置可以參考金步國先生翻譯的資料:Linux 2.6.19.x 內核編譯配置選項。 請大家遵循一個原則,如果你自己使用的內核已經選用了某個選項,如果你沒用充分的理由,不要隨便改動。這樣雖然內核不那麼精簡,但是不容易出現問題。我們可以精簡的部分是硬體模塊部分,對於自己沒有的硬體要毫不猶豫的清除。如果你很執著,或者你有潔癖,你也可以一項項對過去,按照金步國先生的資料描述去選擇基本上沒有問題。
五、必須強調的幾個選項:1、
在「General setup」裡面的「Prompt for development and/or incomplete
code/drivers」金步國認為是不需要。但是如果你的硬體比較新,那幾乎是必須選的,這樣,我們才可以找到4965無線網卡,alsa聲音驅動等
等。Kernel log buffer size 我選15,雙核。如果你用ia64,要選16。Control Group support 集群支持?可以不要Choose SLAB allocator (SLUB (Unqueued Allocator)) 內存管理模式slab和slub選擇slub。
2、在「Block layer」里,假如沒有2TB的硬碟,就去掉:Support for Large Block Devices 。Support for Large Single Files 也不需要,誰有2TB的文件?
3、Processor type and features中是關於cpu的,要認真選。Symmetric multi-processing support是打開多核的開關,我的cpu是雙核的,選中。Processor family (Core 2/newer Xeon) 我的是Core 2/newer Xeon。找到自己的cpu後,把Generic x86 support選項取消。Subarchitecture Type 選(PC-compatible)Maximum number of CPUs 輸入自己的核心數目,我輸入2。SMT (Hyperthreading) scheler support說的是超線程技術,P4有支持的,我的t8100不支持,目前大部分市場上的家用cpu都不支持。High Memory Support (4GB) 1G以下選1G;我是3G,選4G;4G以上的選16G在「 Timer frequency 」里,默認是250Hz,較新的cpu都可以選擇了1000Hz,性能更好。
4、Power management options中把APM (Advanced Power Management) BIOS support關閉。現在的電腦都用acpi了。CPU Frequency scaling 是筆記本cpu節電技術Default CPUFreq governor (conservative) cpu節電模式有四個,筆記本默認選conservative比較好。ACPI Processor P-States driver 必須選,不然CPU Frequency就不能用。後面的可選自己硬體相關的,我選的是Intel Enhanced SpeedStep和 Intel Speedstep on ICH-M chipsets,其他的統統消滅。
5、Bus options的選擇:Bus options (PCI, PCMCIA, EISA, MCA, ISA)PCI support PCI Express support 現在新買的機器基本上都是PCI Express了ISA support 較新的新機器沒有ISA設備,可以去掉MCA support 去掉NatSemi SCx200 support 去掉PCI Hotplug Support Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設備,去掉這里的選項可以考慮全部編譯進內核,而不是以模塊形式存在。
6、Device Drivers是重點,由於linux不但面向個人工作站,更多的是面向伺服器的應用,所以可以把自己機器上沒有的硬體全部去掉,而不用面面俱到。但是通用型的選項要慎重。比如在網卡的部分,除了我的千兆網卡 Broadcom Tigon3 support和4965無線網卡Intel Wireless WiFi 4965AGN,其餘的硬體支持統統去掉。再比如音效卡部分,我的是hd音效卡,我只是在PCI devices中,選intel hd 音效卡,再選Build IDT/Sigmatel HD-audio codec support,除此之外的硬體支持全部去掉。
音效卡還有一個細節,在ubuntu7.10裡面, 需要在/etc/modprobe.d/alsa-base後面添加options
snd-hda-intel probe_mask=1
model=3stack,這樣我的筆記本喇叭才可以發聲,不然只有外接耳機或者音箱。這次編譯以後,這個動作就不必了,但是兩個耳機插口只有一個可以用
了。再比如我的電腦中沒有agp,就可以直接把agp相關的選項全部取消。要注意的:ATA/ATAPI/MFM/RLL support Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬碟上,那麼這里一定要選*,選M都不行。否則啟動時會出現「waiting for root file system」的提示而停滯不前。 SCSI emulation support 要用刻錄機,必須選。SCSI device support 現在都是SATA硬碟,一定要選* SCSI disk support 如果你的/boot放在SATA硬碟上,一定要選*。
SCSI CDROM support 雖然康寶刻錄機是ide介面的,但是必須把它當成scsi介面的,這是老問題了。用刻錄機,必須選。
Graphics supportSupport for frame buffer devices 選中,進入選擇 VESA VGA graphics support 選上,不然字元界面啟動會有問題,後面的顯卡選擇:由於我的顯卡是nvidia 8400gs,要自己安裝nvidia公司的驅動,所以一個都沒有選。這樣導致ubuntu開機動畫會出問題,我索性在grub中的splash字元全部刪除,把開機動畫關閉。字元界面很正常。 Console display driver support 有人開機後字元控制台錯誤,就是這部分選項沒有選,出問題了。 Framebuffer Console support 需要打開。
Bootup logo 開機圖標,會在自檢的畫面上加上個性圖標。需要在grub上添加「vga=」的選項 簡稱fuse。是必選的,如果你要用windows分區。
CD-ROM/DVD Filesystems ISO 9660 CDROM file system support 一般選*DOS/FAT/NT Filesystems VFAT (Windows-95) fs support 有FAT32分區就選*吧 NTFS file system support 有NTFS分區就選*吧 NTFS write support 如果想對 NTFS分區進行寫操作,選*必須將啟動盤的文件系統編譯進內核,默認是編譯成模塊,這樣無法啟動系統。ubuntu採用的文件系統是ext3,請把ext2,ext3相關的必要選項都編譯進入內核。
8、Virtualization這個大類是我多花幾百元買t8100的主要原因,因為t8100支持intel vt技術使linux上的虛擬機的性能大幅度提高。這里的選項我除了amd的,其他都編譯成模塊。
9、全部設置完成,最後一項是保存設置。按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config20080630然後再保存到當起目錄,文件名 .config退出設置程序。
六、開始編譯內核。ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。相關命令:代碼:$sudo make-kpkg clean 這條命令好像不要超級許可權,很多資料上說要,不過這不是原則問題。
$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers上述命令中的dell1400可以用自己喜歡的字元代替,最後的字元一定是數字.輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。
我的機器大概十幾分鍾。
七、安裝內核編譯完成就是安裝工作。編譯好的內核在上一層目錄。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb兩個文件,如果你不搞開發的話,只要安裝內核就可以,頭文件以後要用的時候再說。安裝相關命令:
代碼:$ cd ..$ sudo dpkg -i linux-image-(按tab鍵)文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。安裝完成後和老內核比較一下大小代碼:
$ ls -l /boot/
八、重新啟動驗證新內核。代碼:$ sudo reboot
九、顯卡驅動如果你的顯卡和我一樣是nvidia顯卡,啟動之後往往無法正常進入x-window。即使能看到gdm登錄界面,效果也是很差的。那麼就要安裝nvidia驅動。用ctrl+alt+f1 進入字元命令行,輸入用戶名,密碼登錄。 #ps ax看看和gdm相關的進程,把這些進程全部關閉;用sudo /etc/init.d/gdm stop有可能有一個進程沒有關閉:#kill 進程號然後安裝nvidia顯卡驅動,當然驅動要先下好,到nvidia驅動所在的目錄里,運行:# sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run重新啟動以後就ok。要用nvidia的驅動,每次升級內核都要這么做。
十、無線網卡相關的內核選項是Networking --->Wireless --->Generic IEEE 802.11 Networking Stack (mac80211)還有4965的驅動。4965
無線網卡驅動雖然已經編入內核,但沒有firmware無法使用。需要把原來內核的firmware拷貝到新內核對應的目錄,名字和內核一致,我的內核是
linux-image-2.6.25.10dell1400,那建的目錄名就是2.6.25.10dell1400。代碼:具體命令:$ cd /lib/firmware/$ sudo mkdir 2.6.25.10dell1400把你的老內核中的4965的firmware拷貝過來。$ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/上面的命令和下面的命令是等價的:$ cd /lib/firmware/$ sudo cp -R 2.6.24-16-generic/ 2.6.25.10dell1400/
重新啟動系統,無線網卡就正常了。
附編譯使用的機器配置:dell vostro 1400,t8100,nvidia 8400cs顯卡,內置SigmaTel STAC9228晶元的音效卡,4965無線網卡,BCM5906M千兆網卡,3G內存,160G硬碟,combo刻錄。
編譯系統版本:ubuntu 8.04桌面版.

D. Linux中為什麼要配置內核,怎樣重新配置內核

新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。
為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:
(1)自己定製編譯的內核運行更快(具有更少的代碼)
(2)系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
(3)不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞
(4)
將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些

E. 怎樣使用新編譯的內核進行啟動

step 1

准備:(1). 所需的內核源碼

step2:

  • 切換到源碼所在的目錄,make distclean 命令:刪除生產的.o 和 .config 文件

  • 編譯內核之前需要一份配置文件,並在此基礎上修改,故借用本地/boot/config-3.13.0-24-generic配置文件,命令: cp /boot/config-3.13.0-24-generic /home/yangqi/code/linux/linux-4.2.3/.config

  • 該配置文件.config 即是對內核裁剪的配置,不用直接打開修改,系統提供menu界面修改,命令:make menuconfig (如果此命令報錯,說明需要裝ncurses庫,安裝命令:sudo apt-get install libncurses5-dev) (menu目錄如下:)

熱點內容
什麼安卓機耐電高像素高 發布:2023-03-24 10:12:15 瀏覽:468
freemodbus源碼 發布:2023-03-24 10:08:06 瀏覽:105
劇情腳本撰寫要素 發布:2023-03-24 10:06:05 瀏覽:134
python自動編譯 發布:2023-03-24 10:05:14 瀏覽:221
易語言怎麼生成配置文件 發布:2023-03-24 09:55:31 瀏覽:19
c語言灰度圖 發布:2023-03-24 09:54:38 瀏覽:878
網易我的世界手機版伺服器如何加模組 發布:2023-03-24 09:42:06 瀏覽:274
java鏈表反轉 發布:2023-03-24 09:38:37 瀏覽:153
編程貓自編 發布:2023-03-24 09:37:24 瀏覽:367
linux配置path 發布:2023-03-24 09:32:41 瀏覽:911