wdk environment

 

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/gettingstarted/

 

http://blog.csdn.net/liuyez123/article/details/50857621

https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554651(v=vs.85).aspx

 

https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/introduction-to-file-system-filter-drivers

 

https://sourceforge.net/projects/clamwin/files/latest/download

 

http://www.easefilter.com/Forums_Files/Monitor_Control_File_Access.htm

Kernel Thread

It is often useful for the kernel to perform some operations in the background.The ker- nel accomplishes this via kernel threads—standard processes that exist solely in kernel- space.The significant difference between kernel threads and normal processes is that kernel threads do not have an address space. (Their mm pointer, which points at their address space, is NULL.) They operate only in kernel-space and do not context switch into user-space. Kernel threads, however, are schedulable and preemptable, the same as normal processes.

对kernel 来说在background执行一些操作是很有用的,比如xxx. 内核通过kernel threads 来满足这些需要。

Why:

What:

How:

Data Structure:

Function:

RCU

RCU是Read-copy update的简称。属于内核的一个同步机制。
目的: 提高允许读和更新同时出现的灵活性。
之前的机制及其缺点:锁。传统的加锁机制是确保相互之间的排斥,不论是reader,updater。(读写锁)read-writer允许在没有update的时候同时读。
特点:RCU支持同时出现一个updater 和多个reader. RCU 维护object的多个version并且确保所有之前存在的read-side 临界区完成后再释放object ,从而确保读是连贯的。

文件系统(File System)

什么是文件系统(what are file systems)

A file system is an organization of data and metadata on a storage device.

File System Architecture

0

The system call interface acts a switch, funneling system calls from user space to the appropriate endpoints in kernel space.

The VFS is the primary interface to the underlying file systems. This component exports a set of interfaces and then abstracts them to the individual file systems, which may behave very differently from one another. Two caches exist for file system objects(inodes and dentries). Each provides a pool of recently-used file system objects.

Each individual file system implementation, such as ext2 and so on, exports a common set of interfaces that is used(and expected) by the VFS. The buffer cache requests between the file systems and the