文档介绍:第3章 Linux的内核
本章学习目标
掌握LINUX内核版本的含义
理解并掌握进程的概念
掌握管道的概念及实现
了解内核的数据结构
了解LINUX内核的算法
掌握LINUX内核升级的方法
Linux系统内核简述
内核是LINUX的心脏,是在系统引导时所装入的程序,用于提供用户程序和硬件之间的接口,执行发生在多任务系统中的实际任务转换,处理读写磁盘的需求,处理网络接口,以及管理内存等。
LINUX内核精短、稳定性高、可扩展性好、硬件需求低、免费、网络功能丰富且适用于多种CPU。
主要用作嵌入式设备、专业的路由器、防火墙、高端服务器的操作系统。现在也有很多PC的桌面系统也使用LINUX。
Linux内核的版本
内核源代码树以linux-,其中,。
内核版本号的形式
如:Red Hat Linux 的内核版本为kernel -14,,修改了14处。
再如:Fedora Core 的内核版本为Kernel -19,,修改了19处。
版本号说明
次版本号是偶数,表示内核为稳定发布版本,是奇数,表示为不稳定的开发版本。
显示内核信息
#uname –r 内核版本号
#uname –s 内核名称
#uname –v 内核版本发布时间
#uname –a 所有信息
什么是内核
内核是操作系统(OS)的内在核心程序,提供了对计算机设备的管理调用功能。用户界面是OS的外在表象。
OS代码分成两部分
内核空间(内核所在的地址空间)
外部空间(外部管理程序与用户进程所占的地址空间)
外部管理程序是内核以外的统称,是对外围设备的管理和界面操作。
内核
System call
外
部
程
序
什么是内核(续)
传统的UNIX的单一内核(monolithic kernel)结构
所有OS的相关功能都被封装在kernel中,与外部程序处于不同的内存地址空间。
通过各种方式防止外部程序直接访问内核结构。
内核代码由C语言编写,所有内核代码都是被静态编译联入。
什么是内核(续)
目前流行的微内核(micro kernel)结构
OS内核只提供最基本的、最核心的部分操作(如:创建和删除任务、内存管理、中断管理等)
其他管理程序(如:文件系统、网络协议栈等)尽可能放在内核之外,这些外部管理程序独立运行,并为外部用户程序提供OS服务,服务之间使用进程间通信机制(IPC)进行交互,只有在需要内核的协助时,才通过一套接口对内核发出调用请求。
微内核结构优缺点
优点:OS具有良好的灵活性、内部结构简单清晰、程序代码维护方便。
缺点:内核与独立运行的外部管理程序不能很好的优化整体性能。
什么是内核(续)
Linux内核结构的特点
使用单一内核结构
与传统的UNIX的单一内核结构不同的是,LINUX可以动态装入和卸载内核中的部分代码。 LINUX将这些代码段称为模块(module),并给予强有力的支持,可根据需要自动装入和卸载。
内核为非抢占式的,即不能通过改变优先权来影响内核当前的执行流程。不是一个“硬”实时OS。
不支持用户态线程,LINUX通过LWP(light weight thread)机制来实现用户态线程的概念,通过系统调用函数clone()创建新的线程。
内核的基本概念
1、进程和任务
从运行在LINUX下的进程来看,LINUX的内核是一个服务的提供者。
单独的进程互相并行独立地存在,且不能相互直接影响。
每个进程特有的内存区域被保护起来,以防止其他进程修改。
进程的工作原理
进程就是任务(观察角度不同)
一个进程的运行状态图