---恢复内容开始---
一个Linux软件系统的结构大致如下:
Linux下将设备全部看成是文件,库提供了统一的系统调用来操作文件,如open、read、write等。
当应用程序调用open来打开一个文件时,从上到下的工作是:
- 应用程序使用open并传入相关参数;
- 库根据传入的参数,执行swi指令,引起内核异常,进入内核;
- 内核根据传入的参数,调用相关的异常处理函数,并找到相应的驱动程序;
- 驱动程序完成设备的初始化,并要求内核为该设备分配主设备号;
- 内核分配完主设备号后,再为该设备分配一个文件句柄并将该句柄传给库进而传给应用程序;
- 应用程序获得文件句柄后就可对该设备进行read、write等后续操作了。
---恢复内容结束---