最近阅读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中执行同步 ...