它可以处理MKDIR / RMDIR / LN等常规文件操作,但写入FileSdoes不存储任何数据。但是,文件大小保存,因此从文件读取的读取表现类似于/ dev / zot feed的固定大小。
写作和读数基本上是一个笨蛋,因此它可以用于使用需要目录结构的应用程序进行性能。实现了arkernel模块,而不是使用熔丝,绝对没有从用户到内核空间的开销福音应用数据,同时执行写入orread操作。
#makemake -c /llib/modules/4.18.5/build m = / home / abi / lwnfs modulesmake [1]:输入目录' /usr/src/linux-headers-4.18.5'构建模块,阶段2. ModPost 1 ModulesMake [1]:离开目录' /usr/src/linux-headers-4.18.5' #sinmod nullfs.ko#mkdir / sinkhole#mount -t nullfs none /污水孔/ #mkdir / sinkhole / testdir#touch / sinkhole / testdir / myfile#echo foobar> / sinkhole / testdir / myfile#ls -lah / sinkhole / testdir / myfile-rw-r - r-- 1根root 0 11月20:17 / sinkhole / testdir / myfile#cat / sinkhole / testdir / myfile #pv < / dev / zero> /sinkhole/testdir/myfile11.1gib 0:00:04 [3.85GIB / s] [< => ]#cat / sinkhole / testdir / myfile#
#dd if = / dev / zer = / nullfs / data bs = 1m count = 20#20 + 0记录#20 + 0记录掉#20971520字节(21 MB,20 MIB)复制,0.00392452 s,5.3 gb / s#stat -c%s / nullfs / data#20971520
从文件中读取不会将任何内容复制到用户空间,并且是一个难道;使它表现得像读取/ dev / zero:
#dd if = / nullfs / data of = / tmp / realfile#40960 + 0记录在#40960 + 0记录#20971520字节(21 MB,20 MIB)复制,0.0455288 S,461 MB / S#Hexdump -C / TMP / REALFILE#00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
有可能从野兔中排除发送到void的某些文件。例如,如果文件匹配" fstab"应该保存在记忆中,一个可以用&#34坐在纽伦布;写="选项。
#mount -t nullfs none / sinkhole / -o write = fstab#cp / etc / fstab / sinkhole / #wc -l / sinkhole / fstab 14 / sinkhole / fstab #cp / etc / passwd / sinkhole /#wc -l / 污水/通过0 /污水/段 另一种选择是使用sysfs界面来更改Fallude String,模块已加载: 请记住,文件数据保存在内存中,没有完成边界检查,因此这可能会填满您的RAM,以防您将BeeingNulled的大文件排除在内。 -O mode =在挂载目录上设置权限(mount .. -o mode = 777)-o uid =在挂载目录上设置uid(mount .. -o uid = 1000)-o gid =在挂载目录上设置gid(挂载。 。-o gid = 1000) 用真实的替换simple_statfs呼叫,显示在内核模块负载期间通过的目录的可用空间