现在的位置: 首页 > 操作系统 > 正文

linux驱动学习第二天(linux内核及其编程1)

2018年05月27日 操作系统 ⁄ 共 1193字 ⁄ 字号 评论关闭

一、linux内核的组成部分

        linux内核主要由进程调度、内存管理、虚拟文件系统、网络接口和进程间通信5个子系统组成。

        进程调度控制系统中的多个进程对cpu的访问,使得多个进程能在cpu中“微观串行,宏观并行”地执行。进程调度处于系统的中心位置,内核中的其他子系统都依赖它,因为每个子系统都需要挂起和恢复进程。

        内存管理的主要作用是控制多个进程安全地共享主内存区域。当cpu提供内存管理单元(MMU)时,linux内存管理完成为每个进程进行虚拟内存到物理内存的转换。

        linux虚拟文件系统隐藏着各种硬件的具体细节,为所有的设备提供统一的接口,它独立于各个具体的文件系统,是对文件系统的一个抽象,它使用超级块super block存放文件系统的相关信息,使用索引节点inode存放文件的物理信息,使用目录项dentry存放文件的逻辑信息。

        网络接口提供了对各种网络标准的存取和各种网络硬件的支持。在linux中网络接口分为网络协议和网络驱动程序,网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备通信。

        进程通信支持提供进程之间的通信,linux支持进程间的多种通信机制,包含信号量、共享内存、管道等,这些机制可以协助多个进程、多资源的互斥访问、进程间的同步和消息传递。

 

二、linux内核的5个组成部分之间的依赖关系:

        进程调度与内存管理之间的关系:这两个子系统相互依赖。在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事就是将程序和数据装入内存。

        进程间通信和内存管理之间的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,这种机制允许两个进程除了拥有自己的私有空间,还可以存取共同的内存区域。

        虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统,也利用内存管理支持RAMDISK设备。

        内存管理和虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。

 

三、linux内核空间和用户空间

        现代cpu内部往往实现了不同的操作模式,不同的模式有不同的功能,高级程序往往不能访问低级功能,而必须以某种方式切换到低级模式。

        ARM处理器分7种工作模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式、未定义指令终止模式。ARM Linux的系统调用实现原理是采用swi软中断从用户态usr模式陷入内核态svc模式。内核空间和用户空间被用来区分程序执行的两个不同状态,它们使用不同的地址空间。linux只能通过系统调用和硬件中断的方式来完成从用户空间到内核空间的控制转移。

 

 

抱歉!评论已关闭.