软件与硬件之间是什么关系?
互补关系
软件与硬件有什么不同?
- 硬件较固,是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑;
- 软件很灵活,实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。
为什么说设备驱动是硬件和软件之间的纽带?
- 设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据。
- 通过设备驱动应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求的工作
操作系统是否存在对访问设备驱动的接口有什么影响?
- 不存在操作系统时,设备驱动的接口被直接提交给了应用软件工程师,应用软件直接访问了设备驱动的接口
- 存在操作系统,设备驱动变成了连接硬件和内核的桥梁,操作系统通过给设备驱动制造麻烦来给上层应用提供便利
操作系统有什么作用?
多任务并发、内存管理机制
驱动针对的对象有哪些?
存储器和外设
Linux 存储器和外设有哪些类型?
- 字符设备-----必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标;
- 块设备--------任意顺序进行访问,以块为单位进行操作,如硬盘、软驱;
- 网络设备------面向数据包的接收和发送。
设备驱动与整个软硬件系统是什么关系?
字符设备与块设备都被映射到Linux 文件系统的文件和目录,通过文件系统的系统调用接口open()、write()、read()、close()等函数即可访问字符设备和块设备,C库函数中的fopen()、fwrite()、fread()、fclose()分别会调用操作系统API的open()、write()、read()、close()函数。
linux内核有哪些部分?
多任务(进程)管理、内存管理、文件系统管理、设备管理、网络管理;
linux内核各部分有什么作用?
- 每一部分都有承上下的作用,
- 对上提供API接口,提供给应用开发工程师使用;
- 对下通过驱动程序屏蔽不同的硬件构成,完成硬件的具体操作。
应用程序、linux内核、驱动程序和硬件有什么关系?