亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 8173 | 回復(fù): 23
打印 上一主題 下一主題

[文件系統(tǒng)] 如何將 普通文件映射到 kernel 地址空間 上 ? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-12-27 12:13 |只看該作者 |倒序?yàn)g覽
本帖最后由 smartegg 于 2014-01-06 14:22 編輯

眾所周知,  mmap 可以實(shí)現(xiàn)  將  文件映射 到  用戶態(tài)地址空間上。
但是我有個(gè)需求, 是要將  文件映射到 內(nèi)核的地址空間上, 應(yīng)該怎么做呢?
自己重新實(shí)現(xiàn)一遍么?

估計(jì)自己重新實(shí)現(xiàn)mmap的話, 要做很多工作, 比如:
申請(qǐng)連續(xù)的內(nèi)核地址空間, 將這段連續(xù)的地址空間 映射到 file 對(duì)應(yīng)的  page cache 上。
感覺(jué)很麻煩, 有沒(méi)有簡(jiǎn)單的做法呢?  



最終我的解決方案如下:

  1.  使用  alloc_pages()  +  vmap
                在VMALLOC_START -  VMALLOC_END 的內(nèi)核線性空間上  分配空間。  這樣就可以在得到的線性空間上直接讀寫了。
  2. 讀入數(shù)據(jù):  調(diào)用inode的  address_space 的 readpage方法 同步讀入。
  3.  回寫臟數(shù)據(jù)方法:  檢查映射的頁(yè)表的 pte 是否為 dirty  來(lái) 把對(duì)應(yīng)的page  寫入磁盤。


最后感謝各位親們的熱情回復(fù), 你們太棒了~     
  

論壇徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技術(shù)圖書(shū)徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44雙子座
日期:2013-12-27 12:32:29雙子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
2 [報(bào)告]
發(fā)表于 2013-12-27 12:30 |只看該作者
回復(fù) 1# smartegg

內(nèi)核空間中除了指定的地方如 copy_{to, from}_user(),不允許page fault產(chǎn)生吧,你mmap不起作用吧,只能是直接一次性把文件內(nèi)容讀出來(lái)!

請(qǐng)你詳細(xì)描述下你的需求。。。為什么要把文件映射到內(nèi)核空間,你是希望達(dá)到什么樣的目的。

論壇徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [報(bào)告]
發(fā)表于 2013-12-27 14:46 |只看該作者
寫個(gè)內(nèi)核模塊來(lái)做,然后輔助用戶態(tài)工具?

像2樓問(wèn)的,為什么要這么做?

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書(shū)徽章
日期:2014-03-25 09:00:29
4 [報(bào)告]
發(fā)表于 2013-12-27 16:54 |只看該作者
smartegg 發(fā)表于 2013-12-27 12:13
眾所周知,  mmap 可以實(shí)現(xiàn)  將  文件映射 到  用戶態(tài)地址空間上。
但是我有個(gè)需求, 是要將  文件映射到 ...

映射后進(jìn)程自己訪問(wèn)相應(yīng)的地址空間時(shí),就很不方便了,感覺(jué)沒(méi)有實(shí)際的用途。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2013-12-30 15:41 |只看該作者
回復(fù) 2# asuka2001


    感謝您的回復(fù)。
我的需求是這樣的:
“把整個(gè)普通磁盤文件 映射的內(nèi)核內(nèi)存的一段連續(xù)的虛擬地址"

這樣會(huì)有如下優(yōu)點(diǎn):

1.  操作起來(lái)比較方便, 直接讀寫內(nèi)存即可。
2.  不需要考慮哪塊內(nèi)存為臟( 依賴最后臟的會(huì)被回刷磁盤 )
3.  不需要消耗大量物理內(nèi)存, 因?yàn)橹恍枰摂M地址連續(xù)即可。


我有點(diǎn)迷茫, 不知道該怎么實(shí)現(xiàn), 是不是有點(diǎn)麻煩呢? 

只是想不通映射成用戶態(tài)地址空間挺簡(jiǎn)單的, 想映射成內(nèi)核態(tài)怎么會(huì)困難這么多呢?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-12-30 15:43 |只看該作者
回復(fù) 3# openspace


見(jiàn)5樓我的回復(fù)。  主要是想在內(nèi)核里操作大文件, 而且全映射進(jìn)內(nèi)核地址空間里,其他的對(duì)文件的復(fù)雜操作才會(huì)實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-12-30 15:47 |只看該作者
回復(fù) 4# humjb_1983


    不會(huì)不方便呀, 我映射的是內(nèi)核地址空間, 不會(huì)破壞用戶態(tài)地址空間的

論壇徽章:
1
天蝎座
日期:2013-10-23 21:11:03
8 [報(bào)告]
發(fā)表于 2013-12-30 16:16 |只看該作者
回復(fù) 5# smartegg


    你這些需求 mmap 滿足不了嗎?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2013-12-30 16:26 |只看該作者
回復(fù) 8# openspace


  因?yàn)槲业男枨笫?只能使用 內(nèi)核模塊  。    mmap  在內(nèi)核模塊下調(diào)用 只能獲得  一個(gè)  user space 的  連續(xù)空間呀?
  獲取一個(gè) 內(nèi)核的連續(xù)空間才比較合理呀

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書(shū)徽章
日期:2014-03-25 09:00:29
10 [報(bào)告]
發(fā)表于 2013-12-30 16:40 |只看該作者
smartegg 發(fā)表于 2013-12-30 15:47
回復(fù) 4# humjb_1983

我的意思是,映射后,進(jìn)程自身要訪問(wèn)這段內(nèi)存就很不方便了,你是要在內(nèi)核中直接訪問(wèn)(這種用法好像比較少見(jiàn))那就當(dāng)別論了,是否可以考慮
在mmap后,在內(nèi)核模塊中g(shù)et_user_pages+kmap將用戶態(tài)地址空間映射到內(nèi)核態(tài),然后直接訪問(wèn)?
純屬一時(shí)想法,未考慮細(xì)節(jié)、未實(shí)驗(yàn),僅參考~
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP