[Mac OS X] 从应用程序访问、控制硬件

来源:互联网 发布:excel编程软件 编辑:程序博客网 时间:2024/05/18 20:49

苹果官方文档: 从应用程序访问硬件   Accessing Hardware from Application

阅读上述文档,可以知道如何通过实现一个应用程侦听设备、访问设备属性,以及对设备进行一定的操作。


在Mac OS X中,用户空间进行设备访问的两个主要通路,即设备接口和设备文件。

设备接口: 

系统本身已经提供了一系列的接口提供使用。例如USB设备的常规操作,在IOUSBLib.h中,定义了IOUSBDeviceInterface和IOUSBInterfaceInterface两种接口,一般来说,对应的标准USB命令都已经提供了支持。


设备文件: 

Darwin 是 Mac OS X 系统的内核,它实现了 4.4BSD 的一个版本。这个 BSD 版本是一个基于 UNIX 的操作系统,为 Mac OS X 系统提供文件系统和网络功能的基础。除此之外,BSD 的 Darwin 实现还包括了很多 POSIX API。Darwin 也向应用程序空间输出和 POSIX API 相一致的编程接口,以支持应用程序通过设备文件和串行设备,存储设备和网络设备进行通讯。

在一个 UNIX 的文件系统中,I/O 设备文件是一种代表块或者字符设备的特殊文件,比如终端,磁盘驱动器,打印机,扫描仪,或者磁带驱动器。从本质上看,设备文件的作用是作为设备缓冲器或者数据流。由于历史的原因,设备文件位于/dev目录下,并拥有标准的文件名称,比如mt0表示第一个磁带设备,tty0表示第一个终端等等。由于 UNIX 系统对设备文件的处理方式和其它磁盘文件一样,所以您使用 UNIX 命令来操作这些文件,以执行设备的输入和输出。当您把数据发送给设备文件时,内核就会截获这些数据,并重定向到相应的设备中。类似地,当一个进程对设备文件进行读操作时,内核会从设备中得到相应的数据,并把数据传递给应用程序。


原创粉丝点击