分類:LFS
出自Linux Wiki
目錄 |
LFS概述
什麼是LFS
LFS(Linux From Scratch)就是一種從網上直接下載源碼,從頭編譯LINUX的安裝方式。它不是發行版,只是一個菜譜,告訴你到哪裡去買菜(下載源碼),怎麼把這些生東西( raw code) 作成符合自己口味的菜肴──個性化的linux,不單單是個性的桌面。
LFS 項目顯然建立於那些對於構成基本的 Linux 系統來說充分而不必要的源文件的基礎之上。它已經超越了 Linux 內核和設備驅動程序,因為要產生一個可工作的 Linux 系統,您必須添加一個完整的編譯器工具鏈、許多 Linux 彙編程序實用工具、glibc 系統庫、系統配置工具和連接到 userland shell 訪問的工具。LFS 建立在這樣一個假設的基礎之上,即 Linux 或 UNIX 允許具有一些腳本編寫知識的用戶,了解一個完全有用的系統的工作方式,而不用深入研究內核代碼本身。
為了了解 Linux 系統的工作方式,LFS 的創建者們確定,通過遵循模塊依賴性來編譯系統,可能是了解一般操作系統和特定的 Linux 的機制最自然的方式。用戶掌握了編譯過程之後,就可以開始消除依賴性樹的那些連接到與支持操作系統基本目的無關的系統組件的部件。例如,在編譯完成之後, 消除編譯器工具鏈本身是可行的。在沒有全套的命令行實用工具時,可以湊合使用嵌入式 LAMP 堆棧。配置實用工具也可以被丟棄,大多數用戶可以湊合著用一個而不是太多 Linux 將會支持的文件系統。 官方網址:http://www.linuxfromscratch.org LinuxSir:http://lfs.linuxsir.org/main/
LFS後繼項目:ALFS,BLFS,HLFS
ALFS
(不完善,需更改) ALFS(Automated Linux From Scratch)
BLFS
BLFS(Beyond Linux From Scratch )。 LFS 的創建者們認識到了對其他各種基於源代碼的 Linux 系統的需求。為了這些想要超越 LFS 並添加 X Window System、GNOME 和網絡支持的人,創建了另一個 LFS 派生物:Beyond Linux From Scratch (BLFS)。第三版 LFS 書籍(讓我們不會忘記是在談論書籍而非發行版),形成一個以一個角為基礎的三角形:對於自動化編譯和完全的基於源代碼的 Linux 發行版,基本的 LFS 版本是基礎。BLFS 將基本的 Linux 系統轉化成一個完全的用戶廣泛接受的 Linux 系統。AFLS 簡化基於源代碼的 Linux 安裝的安裝和擴展。整個基於源代碼的系統的編譯是由一個腳本指導的,您在針對運行腳本的硬件調整腳本之後,就可以讓 腳本自己運行了。在您(或安裝工程師) 確定需要運行哪些包,也即特定的辦公應用程序套件之後,您就可以容易地擴展安裝順序了。ALFS 也遲早會派上用場,因為它適用於從源代碼進行網絡範圍的安裝。
HLFS
Hardened LFS. LFS 家族的最後一個成員解決基於源代碼的 Linux 的一個特別重要的方面:安全性。對於不想依賴於所選的 Linux 發行版服務器交付的補丁的那些人,安全性的普通方法是,針對所選的核心庫和應用程序跟蹤安全報告。對於 LFS 實現人員來說,問題有些不同:儘管不是不可能,但是也難以審計 Linux 內核代碼,也許還包括集中於基於 Linux 的操作系統的內部機能的很多庫和實用工具。
代碼審計相當費時,並且只有當補丁服務器是由專門人員集中維護的時,添加大量補丁 才是明智的。但是可以取代一些為反映安全問題的新方法而重新編寫過的庫。一個好的例子是,通過從一個適當大的隨機數池中隨機分配數字,使得猜測進程標識符 極為困難。OpenBSD 項目最先採用了該方法,隨後,各種 UNIX 風格和 Linux 發行版都採用了該方法。
一個相當新的項目叫做 Hardened Linux From Scratch (HLFS),在 Linux 下採用了這一安全方法。該項目假設相當正規地掌握了 LFS 和 BLFS 的一些部件,並使用了不會成為大多數 Linux 系統中的標準的幾個實用工具和庫。
添加到 HLFS 中的最重要的部件可能是 Stack-Smashing Protector (SSP),通過使用 gcc 指令可以啟用該功能。SSP 開發來防禦 stack-smashing 攻擊,這類攻擊屬於影響 Linux 系統的一類最常見的安全威脅。其他安全措施包括一流的隨機數生成器和位置獨立的可執行程序的編譯,其中通常轉化成靜態鏈接對象代碼的可執行代碼作為共享庫 出現,而位置獨立的可執行庫通過將地址隨機化可以隱藏這些地址。當然,可從 HLFS Web 站點得到大量補丁,並可查看其源代碼。
這個分類中尚未包含任何頁面或媒體。