歡迎您光臨本站 註冊首頁

linux基礎(十二)內核學習及編譯

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
內核簡介: 內核,是一個操作系統的核心.它負責管理系統的進程、內存、設備驅動程序、文件和網路系統,決定著系統的性能和穩定性.
  Linux的一個重要的特點就是其源代碼的公開性,所有的內核源程序都可以在/usr/src/linux下找到,大部分應用軟體也都是遵循GPL而設計的,你都可以獲取相應的源程序代碼.當我們擁有源代碼時就意味著我們可以編輯內核實現最優化,定製適合我們自己的內核版本.
內核作用:

1系統初始化,探測硬體資源,啟動系統

2 進程調度

3

內存管理 4,安全管理 5,文件系統 6,硬體驅動 7 提供緩存和緩衝以加速硬體的訪問 8網路協議棧當我們知道了具有的這麼多的功能,這時我們就想哪些是我們需要的,把需要的編譯進來,把多餘的扔掉,那麼我們就需要編譯內核,由於是開源的軟體我們就可以獲取源代碼包了,同時由於開源有許多優秀的工程師對其加入新的代碼,修補老版本的漏洞就需要編譯內核進行升級. 內核分為微內核和單內核


單內核 它為潛在的硬體提供了大量完善的硬體抽象操作.
  微內核 只提供了很小一部分的硬體抽象,大部分功能由一種特殊的用戶態程序:伺服器來完成.
對內核的編譯要有以下幾個步驟: 1,具有編譯環境安裝這樣的組「Development Tools」,「Development Libraries" 2,獲取源碼包,由於是開源的我們可以官方網站上下載自己需要的內核版本,同時還要解壓縮的(/usr/src) tar –xvf linux-version –C /usr/src cd /usr/src ln –sv linux-version linux 創建連接cd linux

3,這時準備工作做好了就可以對內核進行配置了,開始之前我們要清下垃圾:mak emrproper
make menuconfig 出現框狀的界面可以對內核進行選擇,可以直接做進內核或者做成模塊,在使用到模塊時自動載入上,說道模塊,我們就需要提下模塊的 優點: 減小內核體積從而降低內存使用,使內核富有彈性(可擴充),安裝方便


*:編輯進內核 M:編輯成內核 []:不啟用

4當我們對內核選項選擇完成後就可以對其進行編譯了(在這一塊的編譯工作要是不懂的話可以參考金步國文章中有篇關於內核編譯的把英文譯成了漢語)


make bzImage 編譯內核
make modules 編譯模塊
make modules_install 安裝模塊

make install


5.這時我們的編譯工作就完成了,可以重新啟動下系統,看我們的內核是否編譯成功!



第二部分

1內核模塊:我們把內核編譯好了,但是具體我們都加了什麼模塊呢?太多我們記不住這時使用命令來查看的 查看模塊:lsmod 顯示全部模塊 modinfo 模塊名稱 用於查看某個模塊概要信息 卸載某個模塊:

modprobe –r name 安裝載入:modprobe name 定義模塊參數:/etc/modprobe.conf2:內核優化:
內核參數:有些是可以改變的 虛擬文件系統:用於介面輸出包括procfs掛載/proc記錄內核參數和進程詳細信息

sysfs 掛載/sysfs用於輸入硬體工作參數及驅動程序相關信息 /proc/的目錄下部分文件簡介: /buddyinfo 夥伴系統的信息實現防止內存碎片 /bus各種匯流排的信息 /cmdline 內核參數

/cpuinfo cpu信息 /filesystems 可用和啟用文件系統 /interrupts 中斷的信息 /iomen/ioports io的信息 /loadavg 系統平均負載

/mdstat REID的管理 /meminfo 內存信息 /modules 模塊信息 /partitions 分區表 /swaps 交換分區的信息

/uptime 系統運行時間 /version 系統信息 /vmstat 用命令vmstat 顯示該文件的內容 後面跟一個數字錶刷新頻率,再跟一數字時表顯示次數 其中

/proc/sys/目錄下的文件參數可以修改的例如: ./kernel/hostname 可修改主機名稱 domin域名 ./net/ipv4/ip_forward 是否啟用路由功能0不啟用

1啟用 ./vm/drop_caches 清除部分內存緩存0不清除,1清除 ./vm/swappines 定義在多大程度上使用內存(0-100

0表示能不使用就不適應,100表示能使用就使用 默認是60 修改方式:臨時有效1,直接echo一個有效值

echo 『VALUE』 > /proc/sys/path/to/somefile
2 ,sysctl –w 路徑中不帶/proc/sys/ 另外斜杠用點表示 sysctl –w net.ipv4.ip_forwar = n 永久有效:編輯/etc/sysctl.conf 編輯后立即生效:sysctl –p

sysctl –a 查看正在使用的內核參數
命令顯示
dmidecode 可以顯示主機bios信息 安裝

yum install X86info 后可用x86info顯示cpu信息 –a顯示的詳細 hal-device 列出設備信息 hal-device-manger &圖形化類似於windows的設備管理器


手動創建設備文件:mknod 選項

文件名 設備類型 主設備號

次設備號重啟后失效


本文出自 「水滴石穿」 博客,請務必保留此出處http://shugao.blog.51cto.com/2396914/563765


[火星人 ] linux基礎(十二)內核學習及編譯已經有351次圍觀

http://coctec.com/docs/linux/show-post-48719.html