[Mac OS X] 从应用程序访问、控制硬件
2011-08-18 01:24
260 查看
苹果官方文档: 从应用程序访问硬件 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 设备文件是一种代表块或者字符设备的特殊文件,比如终端,磁盘驱动器,打印机,扫描仪,或者磁带驱动器。从本质上看,设备文件的作用是作为设备缓冲器或者数据流。由于历史的原因,设备文件位于
UNIX 系统对设备文件的处理方式和其它磁盘文件一样,所以您使用 UNIX 命令来操作这些文件,以执行设备的输入和输出。当您把数据发送给设备文件时,内核就会截获这些数据,并重定向到相应的设备中。类似地,当一个进程对设备文件进行读操作时,内核会从设备中得到相应的数据,并把数据传递给应用程序。
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 命令来操作这些文件,以执行设备的输入和输出。当您把数据发送给设备文件时,内核就会截获这些数据,并重定向到相应的设备中。类似地,当一个进程对设备文件进行读操作时,内核会从设备中得到相应的数据,并把数据传递给应用程序。
相关文章推荐
- Mac OS X: 访问控制远程CUPS服务
- Mac OS X: 访问控制远程CUPS服务
- Mac OS X 访问 Windows 共享文件夹
- tiny210 hal 6 Android系统中编写APP通过应用程序框架层访问硬件服务。
- Mac OS X 访问Windows共享文件夹
- Mac OS X系统上使用Eclipse开发环境C访问Mysql数据库的设置
- [Mac OS X Cocoa编程]如何获取其他应用程序的窗体标题以及相关信息?
- Mac OS X应用程序格式详解
- 配置Xcode版本控制SVN详细步骤内含解决Xcode/Mac OS10.8无法配置SVN的解决方法
- 配置Xcode版本控制SVN详细步骤内含解决Xcode/Mac OS10.8无法配置SVN的解决方法
- 【游戏开发备注之二】配置Xcode版本控制SVN详细步骤内含解决Xcode/Mac OS10.8无法配置SVN的解决方法
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务 和 在Ubuntu上为Android系统内置Java应用程序测试Application Frame
- VB对低层硬件访问控制
- MAC OS X 硬件支持列表
- 在苹果MAC OS X Lion系统上访问Windows共享文件夹
- ok6410学习笔记(10.硬件访问之led控制1)
- 应用程序从Windows到Mac OS x的迁移
- Mac OS X 快速访问根目录的4种方法
- Mac OS X应用程序格式详解