歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Linux核心安裝

Linux核心安裝

日期:2017/3/6 15:37:16   编辑:關於Unix
Linux 對於許多用戶的介紹是十分強大的、可配置的>操作系統 。在過去,一套類似於 Unix 的>操作系統 對大多數人來說是不可能實現的。不是該>操作系統 4位數的標價,而是它的硬件,即使是現在使用個人免費的SCO Unixware它還需要SCSI設備,我們中的許多人為減 Linux對於許多用戶的介紹是十分強大的、可配置的>操作系統。在過去,一套類似於Unix的>操作系統對大多數人來說是不可能實現的。不是該>操作系統4位數的標價,而是它的硬件,即使是現在使用個人免費的SCO Unixware它還需要SCSI設備,我們中的許多人為減少花費而使用IDE設備。隨著Linux的日益強大有件工作不得不在這簡單的>操作系統上完成:根據你的硬件和操作配置你的核心。

當前安裝的核心是1.2.x或更早的建議更新;不管怎樣,用新的2.0.x核心,更新是必要的。核心可以從安裝包中取得,如Red Hat、Caldera、Debian 等等,這是一樣的(幾乎包含一切)核心。當更新核心看起來是一件讓人氣餒的事時,使用已經安裝的核心也不壞,更新對於你的系統來說是好的。

為什麼自找麻煩?

標准的核心安裝是一種嘗試工作(就象許多系統一樣),盡可能安裝一套可用的Linux系統,就這一點而論,核心很膨脹它包含對於一般機器所不需要的代碼。標准安裝也可能沒有一些用戶所需的代碼。

當然,當你購置了新的硬件等你就需要升級你的核心了。在同一個系列中升級通常相當直觀,當你升級時,比如說從1.2.x到2.0.x,這工作正是本文章的范圍,需要有點悟性(哈哈)。最好找一張最新銷售的CD開始——這對於更新到試用的2.1.x核心一樣實用。

核心的版本號

所有的Linux核心包含由點隔開的三個數字。第一個數是核心的版本。我們現在是第三版(2.),一些人可能使用版本號為1的核心,並且我知道至少還有人在用版本0核心。

第二個號碼是核心的主號,主號也是數字(包括0)表示穩定性。這樣,這些核心將沒有一些BUGS,他們經過相當大量的測試。當某個版本含有一些小 BUGS,它們將被升級,以使硬件兼容或加強核心對付黑客。如,核心2.0.30,避開對2.0.29報表BUG的支持,它包含幾個補丁包括保護SYN避免服務器受攻擊。核心帶有零主號是發展中的核心。這些可能未經測試,可能但不經常中斷你正運行的軟件包,有時候,為了更好的工作,用戶需要采用在下一個穩定的核心發表之前的最新的、最好的支持核心。這就向對真理一樣沒有異議,這對系統有本質上的改變。

最後一個號碼是次號它因每一次改動而增加。如果你看到核心版本2.0.8,你知道它是核心2.0,穩定的核心,它已經是第九次發表了(我們從零開始記數)。

假設

我憎恨作任何假設,它們通常令我心痛。所以我需要提到一些事情那樣我們不會在同樣的遭遇下工作。為了編譯一個核心,你需要一些東西,首先,我假設你已經安裝了2.0.x核心,所有的基礎包也許更多,你還需要安裝gclearcase/" target="_blank" >cc 2.7和所有支持gcc的庫。你還需要libc庫和binutils、bin86包(通常是標准銷售版安裝的一部分)。如果你是下栽的或從CD上拷的,你還需要tar和gunzip包,當然你還需要磁盤空間,建議7MB下栽,20MB解壓,更多一些用來編譯。

無須多說,我們研究的許多事情需要以root登錄。如果以非特權用戶下載了核心並且你有/usr/src目錄的寫權力,你仍能在成為root之前做許多事。對於Linux新手,我非常建議盡可能以非特權用戶(type:su -face)使用僅當一些工作必須使用root。總有一天,你將高興有此習慣。謹記,有二種系統管理員,當以root登錄時能不經意的使安裝失事,這樣誰願意做呢。

獲得/升級源程序

Linxu核心源程序可以從大量的FTP站點和幾乎每一張Linux銷售CD上得到。新手可到ftp.f.net.fi最主要的站點上找Linux核心,你可以從該站點上一系列鏡象站點上下栽Linux核心。選擇一個最近的站點有助於減少internet整體通信量。

一旦你獲得源程序,拷入/usr/src目錄。創建一個目錄放置你用tar解壓的源文件。我建議目錄以版本號命名如 linux-2.0.30 或kernel-2.0.30,用以下命令為目錄建立一個叫linux連接

ln -sf linux-2.0.30 linux

我在連接命令中使用了-f因為你已經在/usr/src中有了一個核心源連接,(一些版本的ln(如3.13),強制選項(-f)將不起作用,你不得不必須首先解除連接再建立連接。在版本3.16中運行正確)現在你僅僅有一個問題就是如果linux是一個目錄,不是連接,如果你有這個問題,你不得不在繼續前更改目錄的名字:

mv linux linux-2.0.8

現在執行下列命令:

tar xzvf linux-kernel-source.tar.gz

我有一習慣總是在tar參數中包括w(等待確認)。下來讓我們看著.tar.gz 或.tgz文件解壓到自己的目錄,用ctrl-C中斷再去掉w繼續命令。這樣一來我能阻止解壓到當前目錄。

一旦你解開了核心,這正是你執行修補程序的最佳時機如果你需要的話。假如你不希望運行2.0.30核心,但你希望使用tcp-sy-cookies.把該補丁(tcp-syn-cookies-pathc-1)拷貝到/usr/src目錄執行以下命令:

patch < tcp-syn-cookeis-patch-1

該命令實現修補核心。在/usr/src目錄中尋找以擴展名為.rej的文件。這些文件嚴格的說不是修補文件。它們也許並補重要,但需要細心的閱讀。如果你安裝了Red Hat系統並裝了一些並不是全部的核心源程序,(SPARC,PowerPC,etc.),你將看到一些文件,如果這不是你所需要的,哪就行了。

准備工作

給你一個忠告,在我們轉到核心源程目錄和開始編譯前,讓我們檢查所需的連接,在你的/usr/include子了目錄有以下連接:

asm - /usr/src/linux/include/asm

linux - /usr/src/linux/include/linux

scsi - /usr/src/linux/include/scsi

現在,你要知到為什麼要標准的文件檢索路徑。如果你不把最新的核心放入/usr/src/linux(通過連接),上面的連接將不會找到目標文件核心編譯將會失敗。

怎樣進行下一步

一旦萬事俱備,轉到/usr/src/linux。現在你也許想停下細讀一下文檔文件,實際上如果你有些特別的硬件,或幾種光驅驅動程需要自己動手設置,他們通常這樣做,當引導時這些驅動程序將給出警告,這並不礙事他們照常工作少,閱讀擴展名為.txt .h .c的文件。通常我發現他們具有共性且易於配置。如果你不想冒險,你沒必要做。記住你照樣可以解開tar文件(或再次安裝.rpm文件)恢復前的文件。

開始編譯

我建議首先執行以下命令:

make mrproper

當核心源程序在以前條件下這條命令不是必需的,但這培養一個好習慣。這命令保證舊的文件不在使用。

配置核心

現在,你可以配置核心,首先,你要了解一點關於模塊的知識。楔塊就像你特意插入核心中的某些東西,如果你家中一個小網絡並且有時想用一下(但並不經常),也許你想把網卡編譯成一個模塊。使用這個模塊,機器必運行和存取/libs下的模塊,意思是驅動程序(IDE,SCSI等但必須是NFS支持的網卡),文件系統(通常是ext2但也可以是nfs)和核心類型(最好是elf)必須編譯在內並且不能是模塊,模塊只有核心引導時才起作用,驅動程序(來網絡)的存取,和文件系統安裝。這些文件必須編譯在核心內否則將能安裝啟動分區。如果安裝啟動分區和網絡,你需要網絡系統文件,和己經編譯的網卡。

為什麼要使用模塊?模塊化使核心變的更簡捷,它減少核心釋放大量的受保護的空間。模塊的安裝和卸載使用的空間是可重復分配利用的。如果你打開機器有90% 以上的時間用到一個模塊,編譯它。運用這類模塊是浪費內存的,原因是一旦你編譯了楔塊它們同樣將占用大量的內存,核心需要一些代碼來掛上模塊。記住,核心在保護空間運行,但模塊並不是。這麼說,我並不經常使用我的設備。我把它編譯成只支持ext2,ide和elf。而我一直使用網卡,我把其它的編譯成模塊:如out,java,floppy,iso9960,msdos,minix,vfat,smb,nfs,smc-ultra(ethernet card),serial,printer,sound,ppp,等等。它們許多只是在這或那用上那麼幾分鐘。

下一步是配置核心。這而我們有三種選擇--目的相同,我建議使用一種圖形方法。以前是簡單的輸入:make config。開始一系列提問。而且,如果你答錯了,你只有按ctrl-c從新再來一遍。你甚至不能按一定順序重復,一些問題與以前的提問有關。如果你有絕對的理由不能使用任何一種圖形方式,那碰到麻煩你一定會找我的。

我建議使用make menuconfig 或make xconfig中的一種。假如使用menuconfig,你必須安裝ncurses-dev和tk4-dev庫。如果你沒有裝入上面的庫,而且你又不想用下一種方法,我建議現在就你安裝上面的庫。在稍後你仍然可以卸載它們。

要運行xconfig,你必須安裝配置X,因為X需要大量內存,我安裝,配置X僅僅在一部分時間運行X,當編譯核心時我回到以前的控制台,因為編譯需要內存。我的觀點是xconfig菜單是最好最簡單的途徑來配置核心。在menuconfg,如果你去掉一個選項,它的從選項將不會顯示。在xconfig,如果你去掉所有選項,從選項依舊顯示,它們成灰色顯示。我喜歡它的原因是使我能知道新加了什麼。我可以打開一個選項得到一個新的從選項來試用一下。

我將花一點文字描述一下核心配置的一些部分,告訴你一些我(艱難的)發現的事。

第一節是code-maturity-level選項。僅有的一個問題是你是否想使用開發的驅動程序和代碼。如果你有令你出血的硬件,你可能不得不作出一個選擇。如果你選擇“no”,試驗代碼將成灰色或不顯示。如果你核心尋求通訊產品支持,你可能選擇“no”。

第二節涉及模塊,如果你想模塊化,在問題1和3選擇“yes”。如果你想使用所有得模塊,比如Caldera's OpenLinux的Netwar支持,第二個問題回答“yes'這樣不需要從新編譯模塊。

第三節是一般的設置。編譯模塊成ELF和編譯支持ELF二進制。不編譯適當的支持”gotcha“是明智的,如果你的機器結構是Pentium或486你將得到高效的代碼,但一個386的核心將運行在32-bit compatible clone;一個Pentium核心將不。為大多機器制作一張緊急啟動盤(就象銷售商的安裝盤)最好在386下編譯,而386並不能運行在Pentium 下編譯的核心。

下一個是塊設備--這兒並不要特別說明什麼。如果你的啟動設備是IDE硬盤,確定編譯它就行。

下來是網絡。對於一些沒有連接網絡的用戶,你不必要在這停留,除非你計劃使用計算機撥號連接其它用戶。在這兒,你需要讀懂並照建議的指導使用。

緊接著是SCSI,至於為什麼不直接跟在塊設備後面我也不知道。如果你的啟動分區是SCSI設備,不要選擇SCSI模塊支持。

在一般的SCSI後是SCSI低級設備驅動程序。再次重申,模塊僅僅是用在不在啟動分區的設備。

下一節令我們回到再次回到網絡,我想你會再這找你特殊的網卡,象

Copyright © Linux教程網 All Rights Reserved