四次做LFS的心得體會

2021-05-22 06:05:29 字數 3216 閱讀 4605

我做了四次

lfs,

第一次做

lfs是根據

youbest

的<<

手把手教你建立自己的

linux

系統》來做的http://blog.chinaunix.net/u/13265/showart.php?id=477122,

做得很快

,大概一天就做完了

,基本上對照著命令敲

,只要不敲錯

,基本上沒有什麼問題

,可是做完第一次

lfs之後

,並沒有感覺對

linux

系統的了解有多少的加深

...仍然有很多問題無法解決

,很多問題不明白為什麼

...這次又重新花了近一周的時間來重新做

lfs,

按照手冊一步步走的

,對裡面的不懂的知識點都進行學習

..現在的確覺感覺到對

lfs的理解深了一些

...

所以這裡建議

,新手或者剛開始

lfs的朋友

,不要照著快速手冊做

,那是將

lfs手冊上命令的一些縮到一起了

,沒有講到理

..所以即使做了

,也只是敲過一堆命令而已

...

下面是我做

lfs時學習到的一些知識

,也是新手需要了解而且比較容易搞暈的知識點:

1)關於工具鏈:

搭建工具鏈的目的實際上是作了乙個用來做目標系統的精簡的

linux

臨時系統

,這樣做的目的是

,盡量的避免與宿主系統糾纏在一起

,而這樣做能夠實現的原因則是工具鏈的高度自包含

,自依賴的特性.

在工具鏈中比較容易搞混淆的是動態聯結器和標準聯結器以及工具鏈的調整.

動態聯結器是由

glibc提供,

用來找到並載入乙個程式執行時所需要的共享庫

,會被嵌入到每個共享

elf的可執行檔案裡

,因此通過

readelf

命令可以查到系統的動態聯結器的名稱

,一般情況下是

ld-linux.so.2.

標準聯結器則是處理庫檔案的搜尋路徑

,確保程式僅連線在指定的庫上

.標準聯結器和彙編器是包含在

binutils中.

對工具鏈的調整有兩次

,第一次是在製作工具鏈的時候

,要限制搜尋路徑在

/tools/lib中,

目的也是為了盡量避免和宿主系統糾結

,然後會修改

gcc的

specs檔案,

使它指向新的動態聯結器

;第二次是在開始製作目標系統的時候

,則是為了使用目標系統下面的

/lib

和/usr/lib等庫,

這次的目的則是

,避免程式編譯的時候和

/tools/lib

相關聯,

方便等系統做好之後對

/tools

工具鏈進行刪除

,這也是說工具鏈是臨時的原因

.體會好

path

的設定就可以較清楚的明白這些實現的過程.

2)虛擬檔案系統

在所有的

linux

發行版中

,/dev,/sys,/proc

這些目錄下的檔案都是不可編輯的

,因為這些都是虛擬核心檔案系統

,由核心在引導的過程中產生的

,並不存在於硬碟上

,他們是用來和核心進行通訊的.

在/dev

下填充裝置時,先在

/dev

上掛載虛擬檔案系統

,然後檢測到新的裝置的時候就動態的建立裝置節點

.這裡涉及到我之前問的關於裝置驅動的問題

,對於已經編譯進核心的驅動程式

,當被核心檢測到的時候

,會直接在

sysfs

檔案系統中註冊其物件

;對於編譯成模組的驅動程式

,當模組載入的時候才會進行註冊

.一旦掛載了

sysfs

到/sys上,

內建的驅動程式在

sysfs

上註冊的資料就可以被使用者空間的程序所使用

,並提供給

udevd

建立相應的裝置節點

.udevd

利用modprobe

來支援熱插拔的情況.

3)無法找到裝置

看到有很多人問怎麼沒有找到

cdrom,

當時我做完了也是沒有

,我是用

lfslivecd進去,

然後檢視

cdrom

的屬性,

才知道cdrom

實際上是

/dev/hdc

的乙個符號鏈結,因此

,我在lfs出的系統中對

/dev/hdc

做了個鏈結

,結果就好用了

..後來我又試了下

,不建鏈結直接使用

hdc也是可以的

...雖然是個很簡單的問題

,但是能自己想辦法找到答案

,感覺也不錯

...這裡想說的是

,linux

下有很多裝置是建立的一些鏈結而已

,如果找不到

,就看看原系統中

,最本來的面目是什麼就可以了

...

lfs手冊有寫得超好的一句話:理解

linux

系統是如何工作的關鍵在於明白每個包的用途以及為什麼使用者(系統

)需要它

.----

我覺得這句話也是新手需要使用

lfs詳細手冊的原因.

做lfs

總結是:

利用宿主系統

,生成乙個簡單簡潔的於宿主系統盡量無關的

linux系統(

工具鏈),

然後利用工具鏈工具

,將一塊磁碟格式化成你目標系統的檔案系統格式

,然後再利用工具鏈來定製你所需要的

linux系統,

安裝你所需要的軟體

,來實現定製.

完了..

這是我這一周艱苦做

lfs學習的知識點

...接下來準備做

blfs

和clfs...good luck...

做樹題目心得體會

資料結構 我在做樹一章題目時的心得體會 不斷更新中.1 後序非遞迴遍歷二叉樹時,訪問到指定結點時棧中的元素為此結點的祖先。2 k叉樹第p個結點的第k 1個孩子的層次序列為p k。3 在樹這章寫遞迴時,出口判斷常為樹空或子樹空。4 樹轉成的二叉樹無右子樹。5 樹用孩子兄弟儲存的結構中,結點若無firs...

除錯的心得體會

2014年3月5日 4g的裝置出現的散點問題調了三天了,都還沒有什麼頭緒,今天還是把王老師請了來,讓她親自出馬,而我就在一旁看著。看她調了一段時間,慢慢把問題定位出來,感覺我這三天就像玩過去的一樣,受益匪淺。現在稍作總結吧。1,要找到懷疑的點,將其實例化為某一變數,然後以這個找乙個參照量與此變數形成...

初做產品經理之心得體會

主要點 原型根據需求畫好了之後。就和業務方,上級,開發討論了一波。確定之後,開始執行。直到第一版出來之後,發給業務方看。結果是開發出來的版本他們並不是很滿意,需要迭代修改,第一版本還沒有正式上線就開始修改,迭代第二版。2.產品真的和業務方溝通非常重要,非常重要,一定要很清楚業務場景,業務邏輯,我就是...