最近閱讀leveldb源碼,作為一個保證可靠性的kv數據庫其數據與磁盤的交互可謂是極其關鍵,其中涉及到了不少內存和磁盤同步的操作和策略。為了加深理解,從網上整理了linux池畔同步IO相關的函數,這里做一個羅列和對比。大部分為copy,僅為記錄,請各位看官勿噴。 傳統的UNIX實現在內核中設有 ...
問題 做了個測試板子的程序,里面有一項寫鐵電的功能,要求寫入之后立即斷電,重啟后校驗數據准確性 鐵電設計是通過內存地址直接映射的,於是,使用mmap直接映射了 dev mem文件,自然地寫入之后使用msync進行同步,最后使用munmap解映射 然而,當我運行這段程序的時候,發現msync的MS SYNC選項進行同步的時候會返回錯誤,錯誤碼是EINVAL 這就奇怪了 查原因 . 查看MAN手冊,如 ...
2019-10-30 19:36 0 313 推薦指數:
最近閱讀leveldb源碼,作為一個保證可靠性的kv數據庫其數據與磁盤的交互可謂是極其關鍵,其中涉及到了不少內存和磁盤同步的操作和策略。為了加深理解,從網上整理了linux池畔同步IO相關的函數,這里做一個羅列和對比。大部分為copy,僅為記錄,請各位看官勿噴。 傳統的UNIX實現在內核中設有 ...
想法的來源是看到chinaunix上有人轉載了wheelz的博客,但是wheelz的代碼在我的實驗平台上是不能正常工作的,可能是wheelz的代碼太過久遠,我試驗的內核版本是:3.4.13。wheel ...
/dev/mem 用來訪問物理IO設備,比如X用來訪問顯卡的物理內存,或嵌入式中訪問GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址來訪問物理內存。這其實就是實現用戶空間驅動的一種方法。 /dev/kmem 一般可以用來查看kernel的變量,或者用作rootkit ...
這幾天研究了下/dev/mem。發現功能非常奇妙,通過mmap能夠將物理地址映射到用戶空間的虛擬地址上。在用戶空間完畢對設備寄存器的操作,於是上網搜了一些/dev/mem的資料。網上的說法也非常統一,/dev/mem是物理內存的全映像,能夠用來訪問物理內存,一般使用方法是open("/dev ...
DEVMEM=y ARCH_HAS_DEVMEM_IS_ALLOWED=y DEVMEM_BOOTPARAM=n IO_STRICT_DEVMEM=n STRICT_DEVMEM=n ...
閑來無事整理電腦時候發現電腦程序菜單里面有個Microsoft Sync Framework,看到名字也知道是異步框架。但使用場景就不太清楚了。后面查閱了相關資料,知道比較典型的使用就是做文件同步了。 結果第二天就在公司遇到比較坑爹的客戶需求,需要將一個網站的數據共享,而且數據量比較大,其中產 ...
使用Settings sync同步VS Code配置 因為要在多台電腦上使用VSCode,想要簡單地管理VSCode地配置,不用每次手動去一一配置,保持多個開發環境的同步,於是使用Settings sync插件來實現這個需求。 第一步:在VS Code中安裝Settings sync插件 ...
直接再 Vscode中安裝就可以,然后: 1. 可以點看setting sync插件在vscode 這個時候可以按照提示進行設置(也可以參考下:https://www.cnblogs.com/kenz520/p/7416836.html) 2. 在vc code中執行同步 ...