歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 關於Linux下mmap的一點強調

關於Linux下mmap的一點強調

日期:2017/2/28 16:17:56   编辑:Linux教程

mmap系統調用是的可以在用戶空間直接訪問設備內存,它是通過映射來完成的,但是要強調的是:

1.mmap系統調用是對文件進行操作的,那麼文件自然有其對應的file_operation結構,而其中有一個 int (*mmap)(struct file *,struct vm_area_struct *),所以系統調用實際最後調用的這個函數,但是之前內核會做點什麼,不然struct vm_area_struct * 參數哪來的。驅動mmap只需要做2件事:建立頁表和添加vma->vm_ops函數。vma是用來描述一段虛擬內存空間的結構體,其中封裝了一些操作函數模擬對象的類。

2.如果想對內存直接操作,其原理應該一樣,不過是對/dev/mem設備文件操作罷了,而且它的file_operation是現成的。

Copyright © Linux教程網 All Rights Reserved