編譯一個內核
首先,配置好編譯環境:用yum裝幾個軟件包yum groupinstall "Development Libraise" "Development Tools"這是文本字符界面,裝上這兩組包就能夠完成編譯環境;若想用圖形界面還可裝"X software Development" "KDE software Development"這兩組包;還須要知道一些硬件信息,可用cat /proc/cpuinfo顯示CPU的信息,用cat /proc/interrupts顯示中斷號,用hal-device列出搜有硬件信息,用hal-device-manager在圖形化界面看硬件平臺。下面只介紹用文本字符界面的環境:
環境配置好了,就要開始編譯源碼包:
1.)從網上下載Linux的內核壓縮包(以linux-2.6.28.10tar.gz爲例),並把它放到/usr/src內,並用tar解壓縮包。
2.)建立一個連接文件ln -sv linux-2.6.28.10 linux,而後ls -al肯定linux是linux-2.6.28.10的軟連接文件,在cd linux進入目錄linux中。
3.)執行命令make menuconfig進入文本字符編輯界面,可對內核進行編輯,
具體編輯內容可參考:
http://lamp.linux.gov.cn/Linux/kernel_options.html,編輯完成後保存後退出,保存文件爲.config。
4.)執行make命令開始編譯(大約40多分鐘)。
5.)編譯後輸入make modules_install和make install安裝。
最後,待安裝結束,重啓Linux,選擇linux-2.6.28.10可正常啓動Linux操做系統,由此一個源碼的內核包就被編譯爲一個二進制包,內核編譯完成。
內核的職責
1.)系統初始化
2.)進程調度
3.)內存管理
4.)安全方面,selinux和防火牆
5.)緩衝預緩存
6.)支持標準網絡協議
uname命令
uname:打印系統信息
-a 顯示全部系統信息
-s 顯示內核的名字
-n 顯示nodename(主機名)
-r 顯示內核的發行版本號
-v 顯示內核的版本號
-m 顯示硬件平臺
-p 顯示處理器類型
-i 顯示硬件平臺架構
-o 現實操做系統
主分區的類型
5 Extended 擴展分區
82 Linux swap 交換分區
83 Linux ext2,ext3分區
8e Linux LVM LVM分區
fd Linux RAID auto RAID分區
分區命令
fdisk -l 顯示硬盤分區表狀況
fdisk /dev/sda(設備名稱)
p 列出當前分區表
n 建立一個新分區
d 刪除一個分區
t 改變分區change system id
u 顯示分區大小時,用扇區表示大小
q 推出不保存
w 保存並退出
partprobe 內核重讀硬盤分區表
mkfs -t ext3 /dev/sda1 == mkfs.ext3 把/dev/sda1分區以ext3形式格式化
mkfs -t ext3 /dev/sda2 == mkfs.ext2 把/dev/sda2分區以ext2形式格式化
mkswap /dev/sda3 建立交換分區
mke2fs [options] device
-b 指定塊的大小
-c 在格式化系統時檢查是否有壞塊
-i 指定字節與Inode的比率,比率越大,inode號越小,但不能小於塊的大小
-m 指定了爲管理員用戶(以維護數據)預留的空間佔整個空間的比率,默認爲5%
-n 作測試,看格式化以後會出現什麼狀況
-N 指定Inodes的數目,你能夠創多個Inode號,但有上線
-L 指定卷標
-E 引用擴展選項,指定調帶大小,加速RAM
-j 可以使ext2文件系統升級爲ext3文件系統,可升級但不可降級
-J 記錄日誌,對忽然斷電的狀況可檢查日誌已恢復數據
e2lable /dev/sda1 查看ext2/ext3的卷標
e2lable /dev/sda1 root 改變設備/dev/sda1的卷標爲root
blkid 查看設備卷標,UUID等信息
fsck 檢查並修復一個Linux文件系統
-t 指定文件系統的類型
-a 檢查是不是自動修復系統的
-i 交互式的說明是否要修復系統
tune2fs 只能對ext2修改
tune2fs -m 10 /dev/sda1 把爲管理員用戶(以維護數據)預留的空間佔整個空間的比率調整爲10%
tune2fs -o acl,user_xattr /dev/sda1 爲設備設定默認的選項
tune2fs -i0 -c0 /dev/sda1 -i表示調整時間間隔自檢,默認180天在自檢,0表示關閉;-c表示掛載多少此後自檢,0表示關閉
mount命令
mount [options] -o [options] /dev/device /path to mount_point
-r 只讀掛載
-w 讀寫掛載
-a 表示掛載/etc/fstab中的每個文件系統
-t 表示文件系統類型
--bind 再是綁定到掛載點
ro 只讀掛載
rw 讀寫掛載
sync 同步寫入
async 異步寫入(暫存與內存)
defaults 默認選項
auto 是否容許自動掛載
dev 支持特殊設備文件
exec 是否執行二進制文件
nouser 禁止普通用戶掛載文件系統
netdev 表示網絡設備,判斷服務是否在線
remount 從新掛載
suid 是否支持帶suid位的文件系統
acl 是否啓動acl列表
fuser -v /mount_point 看誰在使用此設備
fuser -km /mount_point 強行剔除使用此設備的用戶和進程
/etc/fstab是在系統啓動時自動掛載文件系統的列表;文件由6段組成:設備:掛載點:文件系統類型:掛在選項:轉儲頻率:開始時檢查文件的次序
/etc/mtab是當前系統已經掛載的文件系統的信息
內核模塊(.ko) 內核模塊的優點:他能夠減小內核的體積;增長彈性;提升運行時間。 每個內核都會有一個內核模塊與之對應,存放內核模塊的目錄在/lib/modules/$(uname -r)/內。 與內核模塊有關的命令: lsmod 顯示以加載模塊的詳細信息 modprobe 加載模塊(後跟模塊名) modprobe -l 列出加載的模塊 modprobe -s 錯誤信息記錄到日誌中去 modprobe -r 卸載模塊 modinfo 顯示模塊的摘要信息 insmod 加載模塊(後跟模塊的全路徑) AN initrd RAM disk的重建:mkinitrd /boot/initrd-$(uname -r).img $(uname -r)