系统调用与设备驱动

来源:互联网 发布:表单提交json数据 编辑:程序博客网 时间:2024/06/10 07:56

以下文字翻译自Beginning Linux Programming的小节System Calls and Device Drivers


你可以通过一些方法function)来获得以及控制文件和设备。这些方法内置于Unix(以及Linux)系统,被称为系统调用方法(system calls),是操作系统的接口。

在操作系统的核心(内核)是一些设备驱动(device drivers)。这是一系列用来控制系统硬件的底层接口(low-level interface)。[此处省略两个有关驱动的例子]

为了提供相似的接口,设备驱动封装了所有的硬件相关的特性。对于那些特殊的硬件特性,可以通过系统调用方法ioctrl来使用。

/dev目录下的设备文件也能够被打开,读取,写入以及关闭。例如,用来获取普通文件的open调用也可以用来获取用户终端、打印机、磁盘驱动器。

用来获得设备驱动的底层方法、系统调用方法有:

  • open: 打开文件或者设备
  • read: 读取已经打开的文件或者设备
  • write: 写入文件或者设备
  • close: 关闭文件或者设备
  • ioctrl: 传递控制信息到设备驱动

系统调用方法ioctrl用来提供一些必要的硬件指定控制(hardware-specific control)——对比通常的输入输出,所以ioctrl的使用因设备不同而不同,因此,ioctrl不具备移植性。此外,每个驱动都定义了自己的一套ioctrl指令。

系统调用在用户手册(manual page)第二节中有详细的文档。在include文件里,可以看到函数的声明(prototype),可以了解到参数列表、返回值类型,以及一些常数定义。文件中这些原型都有详细的描述。

0 0
原创粉丝点击