1.输入输出程序接口
由于各种设备的操作所提供的参数或者返回值都不同,也很难做到以设备独立性软件向上提供统一的接口,但是可以将设备进行分类,每一类设备由一种统一的接口操作。
①字符设备接口
get/put 系统调用:向字符设备读/写一个字符
②块设备接口
read/write 系统调用:向块设备的读写指针位置读/写多个字符;seek系统调用:修改读写指针位置
③网络设备接口
网络设备接口,又称“网络套接字(socket)接口’
socket系统调用:创建一个网络套接字,需指明网络协议(TCP?UDP?)
bind:将套接字绑定到某个本地“端口
connect:将套接字连接到远程地址
read/write:从套接字读/写数据
2.阻塞I/O和非阻塞I/O
阻塞I/0: 应用程序发出I0系统调用,进程需转为阻塞态等待
例如:字符设备接口--从键盘读一个字符 get
非阻塞1/0:应用程序发出I0系统调用,系统调用可迅速返回,进程无需阻塞等待
例如:块设备接口--往磁盘写数据 write
3.设备驱动程序接口
设备独立性软件需根据实际操作的设备不同,去调用不一样的驱动程序。
操作系统规定好设备驱动程序的接口标准,各商必须按要求开发设备驱动程序