成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Unix操作系統之設備驅動程序

系統 其他OS
struct file主要用于與Unix操作系統文件系統對應的設備驅動程序使用。當然,其它設備驅動程序也可以使用它。它提供關于被打開的文件的信息。

由于經常學習Unix操作系統的一些知識,而且很喜歡Unix操作系統,在工作中也很喜歡總結關于Unix操作系統相關的經驗教訓,下面就Unix操作系統下的設備驅動程序問題來詳細說說吧。

Unix操作系統下的設備驅動程序

具體到系統里,設備驅動程序所提供的這組入口點由一個結構來向系統進行說明,其中,struct inode提供了關于特別設備文件/dev/driver(假設此設備名為driver)的信息,它的定義為:
dev_t i_rdev& /* Device major and minor numbers*/
struct vm_area_struct * i_mmap&
unsigned short i_flags& /* Mount flags see fs.h */

struct file主要用于與Unix操作系統文件系統對應的設備驅動程序使用。當然,其它設備驅動程序也可以使用它。它提供關于被打開的文件的信息,定義為:unsigned short f_flags& /* The flags arg passed to open */

在結構file_operations里,指出了設備驅動程序所提供的入口點位置,分別是:

1 lseek,移動文件指針的位置,顯然只能用于可以隨機存取的設備。

2 read,Unix操作系統進行讀操作,參數buf為存放讀取結果的緩沖區,count為所要 讀取的數據長度。返回值為負表示讀取操作發生錯誤,否則返回實際讀取 的字節數。對于字符型,要求讀取的字節數和返回的實際讀取字節數都必須是inode- i_blksize的的倍數。

3 write,進行寫操作,與read類似。

4 readdir,取得下一個目錄入口點,只有與Unix操作系統文件系統相關的設備驅動程序 才使用。

5 selec,進行選擇操作,如果驅動程序沒有提供select入口,select操 作將會認為設備已經準備好進行任何的I/O操作。

6 ioctl,進行讀、寫以外的其它操作,參數cmd為自定義的的命令。

7 mmap,用于把設備的內容映射到地址空間,一般只有塊設備驅動程序使 用。

8 open,打開設備準備進行I/O操作。返回0表示打開成功,返回負數表示失敗。如果驅動程序沒有提供open入口,則只要/dev/driver文件存在就認為打開成功。

9 release,即close操作。 設備驅動程序所提供的入口點,在設備驅動程序初始化的時候向系統進行登 記,以便系統在適當的時候調用。LINUX系統里,通過調用register_chrdev 向系統注冊字符型設備驅動程序。register_chrdev定義為:
int register_chrdevunsigned int major, const char *name,

其中,major是為設備驅動程序向Unix操作系統申請的主設備號,如果為0則Unix操作系統為此 驅動程序動態地分配一個主設備號。name是設備名。fops就是前面所說的對各個 調用的入口點的說明。此函數返回0表示成功。返回-EINVAL表示申請的主設備號 非法,一般來說是主設備號大于系統所允許的***設備號。返回-EBUSY表示所申 請的主設備號正在被其它設備驅動程序使用。

如果是動態分配主設備號成功,此 函數將返回所分配的主設備號。如果register_chrdev操作成功,設備名就會出 現在/proc/devices文件里。

初始化部分一般還負責給設備驅動程序申請系統資源,包括內存、中斷、時 鐘、I/O端口等,這些資源也可以在open子程序或別的地方申請。在這些資源不 用的時候,應該釋放它們,以利于資源的共享。 在Unix操作系統里,對中斷的處理是屬于系統核心的部分,因此如果設備與系

統之間以中斷方式進行數據交換的話,就必須把該設備的驅動程序作為Unix操作系統核心的一部分。設備驅動程序通過調用request_irq函數來申請中斷,通過free_irq 來釋放中斷。

以上,我們就完成了對Unix操作系統下的設備驅動程序介紹。希望對大家對Unix操作系統的學習有所幫助。

【編輯推薦】

  1. 略述Unix操作系統缺點
  2. 盤點Unix操作系統優勢所在
  3. 深度講解Unix操作系統程指
  4. 學習Unix操作系統進程
  5. Unix操作系統Vi編輯程序操作模式
責任編輯:小霞
相關推薦

2010-04-19 10:18:30

Unix操作系統

2010-05-10 15:53:24

Unix系統

2010-05-10 16:08:41

Unix系統

2010-04-16 18:15:11

Unix操作系統

2010-04-16 14:30:11

2010-04-16 18:02:30

Unix操作系統

2011-01-10 18:21:38

linux編寫程序

2010-04-13 12:27:44

Unix操作系統

2010-04-19 12:47:39

Unix操作系統

2010-04-09 11:11:34

Unix操作系統

2009-12-07 09:39:04

Linux設備驅動硬件通信

2010-04-15 14:40:26

Unix操作系統

2010-04-08 10:42:28

Unix操作系統

2010-04-08 16:18:22

Unix操作系統工具

2010-04-08 17:56:42

Unix操作系統

2010-04-14 13:59:45

Unix操作系統

2010-04-16 17:19:58

Unix操作系統

2010-04-19 10:54:33

Unix操作系統

2010-04-19 16:57:09

Unix操作系統

2010-04-19 17:39:50

Unix操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美一二三区 | 久久高清国产 | 亚洲精品乱码久久久久久按摩 | 欧美日韩在线免费观看 | 亚洲一区成人 | 亚洲一区二区av | 中文在线一区二区 | 欧美日韩成人在线 | 亚洲欧洲日韩精品 中文字幕 | 中文一区二区 | 伊人超碰 | 麻豆av在线| 亚洲精品久久久久久国产精华液 | www.一区二区三区 | 一区二区三区四区在线视频 | 日韩精品福利 | 九九热精品视频在线观看 | 国产在线精品免费 | 中文字幕视频在线观看 | 亚洲第一在线 | 亚洲不卡在线观看 | 亚洲免费人成在线视频观看 | 日日夜夜精品视频 | 国产午夜视频 | 丝袜一区二区三区 | 久久久久久免费毛片精品 | 看av在线 | 91资源在线 | 成人免费三级电影 | 久久精品国产一区二区电影 | 国产色| 久久精品一区二区三区四区 | 日日操视频 | 韩日一区二区三区 | 午夜精品久久久久久久久久久久久 | 久操伊人 | 一区二区中文字幕 | 国产日韩欧美在线 | 羞羞视频一区二区 | 亚洲视频欧美视频 | 欧美性吧 |