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等),可加载模块,设备驱动程序。
例如,当应用程序发出输入输出请求时,系统把请求处理的权限交给文件系统,文件系统通过群驱动程序提供的接口将操作下放到驱动程序,驱动程序完成对设备的实际操作;
当某进程通过网络接口发送消息时,网络接口组件会将该进程挂起,直到该硬件成功地完成消息的发送后,网络接口向该进程返回代表操作成功或失败的代码并唤醒该进程。