5、内核模块的构建、运行与相关要点解析

内核模块的构建、运行与相关要点解析

1. 内核执行与模块功能概述

在操作系统中,当应用程序发起系统调用或者被硬件中断挂起时,Unix 会将执行权从用户空间转移到内核空间。执行系统调用的内核代码是在进程的上下文中工作的,它代表调用进程进行操作,并且能够访问该进程地址空间中的数据。而处理中断的代码则与进程异步,不与任何特定进程相关。

模块的作用是扩展内核功能,模块化的代码在内核空间运行。通常,一个驱动程序需要完成两项任务:模块中的一些函数作为系统调用的一部分被执行,而另一些则负责处理中断。

2. 内核中的并发问题

2.1 并发的来源

设备驱动程序编程与大多数应用程序编程的一个显著区别在于并发问题。应用程序通常按顺序从开始运行到结束,无需担心环境的变化。然而,内核代码运行的环境更为复杂,必须考虑到多个事件可能同时发生的情况。

内核编程中并发的来源主要有以下几点:
- 多进程运行 :Linux 系统可以同时运行多个进程,可能有多个进程同时尝试使用你的驱动程序。
- 设备中断 :大多数设备能够中断处理器,中断处理程序异步运行,可能在驱动程序执行其他操作时被调用。
- 软件抽象 :一些软件抽象(如内核定时器)也会异步运行。
- 对称多处理器(SMP)系统 :Linux 可以在 SMP 系统上运行,这意味着驱动程序可能会在多个 CPU 上同时执行。

2.2 并发带来的要求

由于上述原因,Linu

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值