Linux系统内核编辑基础.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:77 大小:301KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux系统内核编辑基础.pdf

Linux系统内核编辑基础.pdf

预览

免费试读已结束,剩余 67 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux系统内核编译基础姜英杰Linux系统内核编辑基础•Linux内核概述–什么是内核–Linux内核的特点•Linux内核模块管理–insmod、rmmod、lsmod、modprobe•Linux内核源码结构•内核编译基本步骤Linux内核概述•内核是Linux引导的时候被装入的程序,它负责系统最底层的工作,直接与硬件进行交流。软件通过内核来操作硬件。内核处理的任务是在多任务之间进行切换,对于磁盘的读写、网络接口、内存管理等。•内核是由Linus维护的,各种发布版本的Linux的内核都是完全相同的。Linux内核概述•什么是内核将一些与底层硬件密切相关的或运行频率较高的软件模块,以及为许多模块所公用的一些基本操作常驻内存,以提高运行效率,通常将这部分内部核心程序称为操作系统的内核。•内核的基本功能:–实现CPU定时器和中断处理–实现对虚拟内存的管理–实现对进程的管理和调度–实现进程间通信(IPC)的机制–实现对外围设备的驱动–实现对虚拟文件系统的管理–实现对网络的支持和管理–……Linux系统结构内核的构成•内核的构成内核主要由五个子系统组成:-进程调度-内存管理-虚拟文件系统-网络接口-进程间通信内核的构成•进程调度(SCHED)控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。内核的构成•内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码、数据、堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的交换;硬件相关的部分为内存管理硬件提供了虚拟接口。内核的构成•虚拟文件系统(VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext3、vfat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。内核的构成•网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。内核管理•进程间通讯(IPC)处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。Linux内核特点•源代码的公开性–修补漏洞的速度快–利用最新软件技术•Linux的内核实现了一个操作系统内核应该具有的全部功能,尤其具有强大的网络功能•Linux的内核从2.0版开始提供了对模块的支持Linux内核特点•硬件方面兼容各种硬件平台(CPU)、主板芯片组、各种存储设备、显卡、网卡、声卡、SCSI卡、字符设备、PCMCIA设备•网络通信方面–各种协议支持:TCP/IP、Netware、PPP、SLIP、ISDN等–防火墙、路由器、网关等网络功能•文件系统方面–各种类型的文件系统–内存管理、多CPU处理等Linux内核模块管理•模块:将一些设备驱动或软件功能编译成独立的模块化的组件,仅在需要的时候才装入作为内核的一部分。模块机制可以精简内核大小,并按照需要动态扩充内核功能。•模块通常为.o文件,linux标准模块目录:/lib/modules/内核版本号/•系统加载模块配置文件/etc/modules.confLinux内核模块管理•lsmod–查看系统内核已经加载的模块•insmod<模块名>–向当前内核中插入一个新模块–可直接指定.o路径•rmmod<模块名>–