首页 理论教育 Linux代码结构及驱动程序实例

Linux代码结构及驱动程序实例

时间:2023-10-19 理论教育 版权反馈
【摘要】:Linux代码非常庞大,其中驱动程序约占一半。表1-2列出了Linux内核代码的重要目录。表1-2 Linux内核代码的重要目录Linux内核中与硬件体系相关的文件夹包括/arch和/include/asm-*,具体如下:●arch目录:包含和硬件体系结构相关的代码,每种平台对应一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel、mm、math-emu、lib、boot、pci和power。与平台无关的头文件在include/linux子目录下,与体系相关的头文件在include/asm-*子目录下,而include/scsi目录则是有关scsi设备的头文件目录。

Linux代码结构及驱动程序实例

Linux代码非常庞大,其中驱动程序约占一半。表1-2列出了Linux内核代码的重要目录。

1-2 Linux内核代码的重要目录

978-7-111-56706-6-Chapter01-83.jpg

Linux内核中与硬件体系相关的文件夹包括/arch和/include/asm-*,具体如下:

●arch目录:包含和硬件体系结构相关的代码,每种平台对应一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。

●include/asm-*:include子目录包括编译内核所需要的大部分头文件。与平台无关的头文件在include/linux子目录下,与体系相关的头文件在include/asm-*子目录下,而include/scsi目录则是有关scsi设备的头文件目录。

编译内核的几个命令如下所示:

#make menuconfig //配置内核命令(www.xing528.com)

#make //编译生成目标文件,包括可加载模块

#make zImage //编译生成内核

#make modules_install //安装模块

当需要将模块安装到非默认位置的时候,可以使用INSTALL_MOD_PATH指定一个前缀,例如:

#make INSTALL_MOD_PATH=/foo modules_install

运行这个命令后模块将被安装到/foo/lib/modules目录下。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈