歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

VMware環境精簡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