go 的 fsnotify库

fsnotify 本质上就是对系统能力的一个浅层封装,主要封装了操作系统提供的两个机制:

1,inotify 机制 2,epoll 机制

1,inotify机制

什么是inotify机制?

这是一个内核用于通知用户空间程序文件系统变化的机制。

其实inotify机制的诞生源于一个通用的需求,由于IO/硬件管理都在内核,但用户是有获悉内核时间的强烈需求,比如磁盘的热插拔,文件的增删改。这里就诞生了三个异曲同工的机制:hoplug 机制,udev管理机制,inotify机制。
  inotify 怎么实现监控的?

inotify 支持监听的事件非常多,除了增删改,还有访问,移动,打开,关闭,设备卸载等等事件。

内核要上报这些文件 api 事件必然要采集这些事件。在哪一个内核层次采集的呢?

统调用 -> vfs -> 具体文件系统( ext4 )-> 块层 -> scsi 层
**答案是:vfs 层。**其实这个很容易理解,这是必然的,因为这是所有“文件”操作的入口。

猜你喜欢

转载自blog.csdn.net/qq_30505673/article/details/129666122
今日推荐