簡體   English   中英

Linux內核代碼中的內存映射數據文件

[英]Memory mapping data files in Linux kernel code

這是我的問題:我想從Linux內核空間中運行的代碼中映射數據文件的一部分。 我想稍后撤消相同的內存映射,同樣也要撤消在Linux內核空間中運行的代碼。 我該如何做?它們與在用戶空間中使用mmap(2)/ munmap(2)有何不同?

我正在嘗試僅在沒有用戶進程的內核空間中執行此操作。

我瀏覽過Web搜索和在線Linux內核書籍,包括Bovet和Cesati撰寫的“了解Linux內核”。 一本好書,但沒有回答我的問題。

不建議直接訪問文件系統以在內核中執行任何操作。 接近這一點,最好的辦法是openmmap在用戶空間文件,並通過所產生的用戶虛擬地址到內核空間。 在內核空間中,您需要設置內核虛擬地址,這些虛擬地址指向用戶空間地址指向的相同物理內存。

這個SO問題給出了有關如何實現第二部分的代碼示例: https : //stackoverflow.com/a/13745255/639069

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM