歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> VMware環境精簡Linux內核配置及內核代碼

VMware環境精簡Linux內核配置及內核代碼

日期:2017/2/28 15:56:22   编辑:Linux內核

1.內核配置精簡

花了點時間終於弄清了vmware的硬件情況,配置簡單內核主要為了學習源碼方便

我的vmware虛擬機把硬盤和cdrom都設置成scsi接口的,這樣內核ide選項就不用選了

在2.6.10和3.2.5都試過了,可以啟動,兩個內核分別在RedHat9和arch上實驗的,安裝的實驗系統的時候也盡量簡單,比如分區沒有lvm,直接用/dev/sdax表示

下面是3.2.5內核配置情況,2.6.10也基本相同,菜單結構有些不一樣,有些驅動名字變了,但是很容易看出來。因為我把內核模塊支持都去掉了,所以下面全是*,也就是編譯進內核


Enable loadable module support

沒選

Power management and ACPI options

可以全都不選

Bus options

只選擇了PCI support

Executable file formats / Emulations

只選擇了kernel support for ELF binaries

Networking support

我只選了基本網絡協議,其他都去掉了

Device Drivers

Connector- unified userspace <-> kernelspace linker
Block devices-->
Normal floppy disk support
loopback device support
network block device support
RAM block device support

SCSI device support//如果是ide硬盤,這個可以全都不選,選擇ata相關的

SCSI device support
legacy /proc/scsi/ support
scsi disk support
scsi cdrom support
scsi generic support
Probe all LUNs on each SCSI device

Fusion MPT device support
Fusion MPT ScsiHost drivers for SPI

I2C support
I2C hardware bus support
Intel PIIX4 and compatible

Network device support
Ethernet driver support
AMD devices
AMD PCnet32 PCI support

device配置就選擇了這麼多,沒有帶上usb,准備usb以後需要在加

File systems

可以更據實際安裝情況配置,我的需要ext2,ext3,還有
Dnotify support
Inotify support for userspace
Filesystem wide access notification
Quota support
Report quota messages through netlink interface
Pseudo filesystems-->
沒選 HugeTLB support,其他選了

Kernel hacking

根據自己需要選擇

Firmware Drivers

Security options

Cryptographic API

Virtualization

Library routines

這五項可以都不選

剩下Processor type and features和其他的可以更具具體情況選擇。

2.代碼精簡

配置完內核能成功運行後,就可以精簡代碼了,其實很簡單,就是把多余的代碼直接刪了,覺得這樣看代碼舒服些

首先刪除多余.c文件:可以編寫腳本或者程序來遍歷目錄,凡是.c文件沒有生成.o文件就刪除了。這樣會誤刪的,不過還好很少,刪完再次編譯的時候會報錯缺少某個文件,直接拷貝過來就行了

刪除.h文件:這個有些麻煩,我是在fs/open.c的open系統調用那裡,寫一段檢測代碼,凡是打開.h文件,就通過netlink把文件名發送出來,之後根據記錄訪問情況,把多余頭文件刪除。這個有空想想更簡單的方法。

目前2.6.10的已經弄好,只有2000多個文件,等3.2.5弄好了就准備開始慢慢欣賞內核代碼了

Copyright © Linux教程網 All Rights Reserved