戴文的Linux內核專題:27 配置內核 (23)
歡迎來到內核配置的下一章!本篇中我們會配置密碼API,虛擬化和運行庫。密碼學指的是在需要的計算機之間加密和安全通信的科學。用戶可能加密數據以保證是收件人而不是黑客收到數據。
Linux內核需要在內核中啟用"Cryptographic algorithm manager"(密碼演算法管理器)。這個特性提供了操作內核的加密特性所需的軟體。
當啟用這個它,用戶空間提供了配置加密特性(Userspace cryptographic algorithm configuration)。注意:這個配置指的是內核運行時的加密設置,不是編譯內核的工具。
為了加強性能,啟用這個會在加密演算法中停止自我檢測的特性 (Disable run-time self tests)。
"GF(2 128) multiplication functions"是一種被一些密碼使用特殊演算法。GF代表的是" Galois field"(伽羅瓦域),是一種有限數的集合。這寫集合稱之為域並且有不同的大小。
"Null algorithms"是用於IPSec的演算法。NULL加密意味這沒有加密,因此這個驅動允許IPSec不使用加密。
任意演算法可以轉換成並行演算法(Parallel crypto engine)。這個特性提供了轉換器。
任意演算法同樣可以轉換成非同步演算法(Software async crypto daemon)。
IPsec需要"Authenc support"。"Authenc support"代表"Authenticated Encryption and offers multiple encryptions to IPsec"(認證加密並對IPSec提供多重加密)。
CCM代表的是"Counter with CBC MAC"(CBC MAC計數器),IPSec需要它(CCM support)。
這個驅動提供了"GCM/GMAC support"。GCM意思是"Galois/Counter Mode"(伽羅瓦/計數器 模式),GMAC是"Galois Message Authentication Code"(伽羅瓦消息驗證碼)。
注意:我不會明確地解釋一些特性的使用和細節。密碼學是計算機中的特定領域,解釋加密學超出了這篇文章的範圍。
"Sequence Number IV Generator"是一個被某些加密軟體使用的特殊的號碼生成器。
Linux內核提供了不同的密碼演算法(CBC support)、 (CTR support)、 (CTS support)、 (ECB support)、 (LRW support)、 (PCBC support)、 (XTS support)、 (HMAC support)、 (XCBC support) 和 (VMAC support)。
"CRC32c CRC algorithm" 明確被SPARC64處理器使用。
"CRC32c INTEL hardware acceleration"是另外一個特定處理器的演算法。它工作於帶SSE4.2的Intel處理器。
內核提供了很多摘要、密碼和其他加密軟體。通常上,默認允許它們除非你有特殊的理由來啟用或禁用這些特性。
注意:摘要(像MD5)會基於一個文件生成一個哈希值(字元序列)。哈希值接著被用於檢查文件。比如,如果你從Canonical網站上下載了Ubuntu ISO安裝盤,你可能想要知道你硬碟上的文件就是伺服器上的文件的複製品。用戶這麼做的原因是ISO可能在長時間下載中被損壞。哈希值被用來證明文件沒有被改變。
注意:密碼是一種加密/解密演算法。加密是使文件對除了接受者/擁有者之外的人都不可讀。解密是瀏覽加密文件的過程。
Linux內核同樣支持用戶被強烈建議啟用的不同的壓縮演算法(Deflate compression algorithm)、 (Zlib compression algorithm) 和 (LZO compression algorithm)。
內核可以生成用於加密軟體的隨機數(Pseudo Random Number Generation for Cryptographic modules)、(User-space interface for hash algorithms) 和 (User-space interface for symmetric key cipher algorithms)。
"Hardware crypto devices"是一個子菜單,包含了基於硬體加密工具的驅動。這個硬體在固件中含有演算法。
"Asymmetric (public-key cryptographic) key type" 菜單中存在著不同的非對稱公開密鑰。
下面,我們可以進入配置工具主菜單(基於菜單介面)的下一個入口。虛擬化是寄放一個操作系統的 能力。這意味這Linux(和其他的系統)可以運行其他的操作系統,彷彿客戶機是一個應用一樣。
"Kernel-based Virtual Machine (KVM) support"運行內核本身管理客戶機。帶Intel處理器的計算機需呀這個驅動(KVM for Intel processors support),AMD的則需要(KVM for AMD processors support)。
用於內核虛擬機(KVM)的內存管理單元(MMU)可以有一個審計系統。
啟用這個特性使客戶機的網路變得更快(Host kernel accelerator for virtio net)。
在配置哇內核虛擬機特性後,配置工具主菜單下的最後菜單是內核配置的最後一部分。這個菜單用於"Library Routines"(庫運行時),同樣也成為庫函數。一部分內核可以被作為可以鏈接的庫。比如,XZ過濾(壓縮演算法)可以被外部程序訪問。下面列出了不同的庫。
注意:CRC函數大多數都相同但有不同的特性和性能,通常來講,最好啟用這些特性。
CRC-CCITT functions - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC16 functions - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC calculation for the T10 Data Integrity Field - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC ITU-T V.41 functions - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC32/CRC32c functions - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC32 perform self test on init - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC32 implementation (Slice by 8 bytes) - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC7 functions - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
CRC8 function - 循環冗餘校驗測試(Cyclic Redundancy Check)用於測試原始數據中的改變。
- BCJ filter decoder - 為特定處理器設計的XZ解碼器,這裡的"*"是處理器。內核列出了一些不同的架構。
XZ decompressor tester - 用於測試XZ解碼器的調試函數。
Averaging functions - "uptime"在"uptime"中看到的平均負載。
CORDIC algorithm - 雙曲線和三角函數。
JEDEC DDR data - JEDEC雙倍數據速率SD-RAM規範
你猜怎麼了?我們已經完成配置內核。在23篇之後,我敢肯定這是你的感覺 -
視頻鏈接:http://www.youtube.com/embed/barWV7RWkq0?wmode=opaque
下面,我們可以編譯並安裝了
在遙遠的地方,我仍然在聽 -
視頻鏈接:http://www.youtube.com/embed/ELoUppY1esw?wmode=opaque
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-23.5112/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive