Linux内核裁剪及编译
Linux內核裁剪及編譯可加載模塊
一 Linux基礎知識
?
linux內核組要由五個子系統組成:
進程調度
內存管理
文件系統
網絡接口
進程間通信
Linux源碼目錄
arch?? ?目錄中包含于體系結構有關的子目錄和文件,arm的相關平臺信息在arch/arm目錄下。
scripts?? ?目錄中存放著對核心配置的腳本文件。
crypto?? ?目錄中包含著常見的加密算法。
drivers?? ?目錄包含各種各樣的驅動,包括字符型,快型,網絡設備驅動程序。
fs?? ?目錄中包括了linux系統所支持的文件系統類型,比如ext4 nfs
init?? ?目錄中存放著與linux內核相關的啟動代碼。
kernel?? ?目錄中包含許多linux進程調度子系統相關的源代碼。
lib?? ?目錄存放linux內核所用的庫文件。
mm?? ?目錄存放linux內存管理的源代碼。
net?? ?目錄存放有關網絡協議的源代碼。
?
二 Linux源碼編譯
?
1 在編譯之前首先使用make clean, make distclean清除原編譯和配置文件
2 找到運行平臺(arm)下面的配置文件拷貝到源碼目錄一命名為 .config,.config文件是在進行內核配置的時候,經過配置后生成的內核編譯參考文件,命令如下cp arch/arm/configs/exynos4_defconfig .config
3 拷貝完成之后就可以運行make命令,這個過程要等很久.
4 編譯完成之后就會在arch/armboot目錄下生成zImage,生成的這個文件就是linux鏡像,之后我們就可以使用linux的鏡像文件了.
三 Linux內核裁剪
? ? 以上編譯的是沒有裁剪過linux源碼,如果我們不想使用源碼里面的部分功能,我們就可以通過裁剪的方式阻止它編譯:
? ? 在linux源碼包中我們可以使用make menuconfig,圖形化界面很容易操作;如果不想使用它的某些功能,取消前面*即可,按空格鍵來控制選擇. 就可以進行linux源碼的裁剪. 選擇完成之后就可以保存退出,執行make.
四 編譯可加載模塊
? ? 內核模塊是Linux內核向外部提供的一個插口,其全稱為動態可加載內核模塊(Loadable Kernel Module,LKM), 我們簡稱為模塊,模塊是具有獨立功能的程序,它可以被單獨編譯,但不能獨立運行。它在運行時被鏈接到內核作為內核的一部分在內核空間運行,這與運行在用戶空間的進程是不同的。模塊通常由一組函數和數據結構組成,用來實現一種文件系統、一個驅動程序或其他內核上層的功能。
? ? 總之,模塊是一個為內核(從某種意義上來說,內核也是一個模塊)或其他內核模塊提供使用功能的代碼塊.
? ? Linux內核模塊是一種可被動態加載和卸載的可執行程序。通過內核模塊可以擴展內核功能,內核模塊通常用于設備驅動、文件系統等。如果沒有內核模塊,需要向內核添加功能就需要自發代碼、重新編譯內核、安裝新內核等步驟;
總結
以上是生活随笔為你收集整理的Linux内核裁剪及编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用powerdesigner设计类图并
- 下一篇: 几个Linux命令输出的各列含义