Linux的皮毛

本文介绍Linux操作系统中设备驱动的基本原理与开发流程,包括设备作为文件的概念、内核模块的加载与卸载方法、内核各子系统的组成及支持的文件系统类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Linux下的设备被系统默认为文件,应用程序操作硬件时,只需要获得设备的描述符即可,通过调用open(),read(),write(),ioctl(),close()等函数来操作设备。

具体过程为:应用程序发出系统调用指令;系统由用户状态而进入内核状态;内核层将系统的函数调用转换为对具体设备的物理操作。

2、Linux是单核操作系统,内核由不同模块组成,一个内核模块包括初始化函数、卸载函数等。通过insmod将模块加载到内核中运行,通过rmmod卸载模块。

3、开发过程:硬件接口函数的编写;接口定义,在设备驱动程序及文件系统之间的接口;设备注册及注销;设备节点的创建。

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

5、linux支持的文件系统,一般可以用ext3和ext4,支持FAT, FAT32,NFS等等。

6、Linux内核包含的组成部分,初始化(Bootloader),进程调度器(Linux将内核运行的任务称为内核线程,将用户空间运行的任务称为进程,Linux内核负责创建和终止进程,并在进程间相互通信),内存管理器(负责多个进程安全地共享主存空间),虚拟文件系统,网络接口,进程间通信(管道、命名管道、信号、信息队列、共享内存、信号量、socket等),可加载模块,设备驱动程序。

例如,当应用程序发出输入输出请求时,系统把请求处理的权限交给文件系统,文件系统通过群驱动程序提供的接口将操作下放到驱动程序,驱动程序完成对设备的实际操作;

当某进程通过网络接口发送消息时,网络接口组件会将该进程挂起,直到该硬件成功地完成消息的发送后,网络接口向该进程返回代表操作成功或失败的代码并唤醒该进程。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值