Home » Operating Systems

Category Archives: Operating Systems

Recent Posts

Recent Comments

Archives

Categories

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 50 other subscribers
November 2025
S M T W T F S
 1
2345678
9101112131415
16171819202122
23242526272829
30  

ZUFS

After one of my earlier posts on FUSE file system performance, someone mentioned this project to me – the Zero copy Userspace File System project (ZUFS) which appears to be a NetApp sponsored project. There have been a variety of talks about this project, including the Linux Plumber’s Conference (which was held next door to […]

Continue Reading →

Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support

Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support, Yue Zhu, Teng Wang, Kathryn Mohror, Adam Moody, Kento Sato, Muhib Khan, and Weikuan Yu, in Proceedings of the 8th International Workshop on Runtime Operating Systems for Supercomputers, page 6, 2018. There are quite a few papers that discuss the performance of the FUSE model. […]

Continue Reading →

Windows Filesystems: File Object Relationships

One of the challenges of developing file systems in Windows is related to the complex relationships that exist between various data structures in the operating system that are part of the file systems domain. In this post I want to discuss one aspect of this complex relationship because it leads to behavior that makes sense […]

Continue Reading →

File System Driver: Create

The usual place to start when building a file system is to think about the Create operation. This may also be referred to as an open operation, but that conflates the object with the handle. I think of Create as being “create a handle to the object”. The creation of the object itself can be […]

Continue Reading →

File System Driver: Structure

I thought I would discuss the structure of my driver and why I chose to structure it the way that I have done. Of course, I could change the structure of the driver again, but I will need to see a compelling reason to do so. First, I will note that the driver has changed […]

Continue Reading →

Setting up Debugging

No matter how many times I do this over the years, I find it to be a slow and painful process – install a clean virtual machine image, set up kernel debugging, install the (test signed) driver. It never ceases to amaze me how non-intuitive it is to set up talk to the new VM […]

Continue Reading →

Starting the Skeleton Driver

In my last post, I installed the WDK (and described why I want to build a file system driver). I started up Visual Studio 2019, said I wanted to create a new project, narrowed down the options to “WDK” related projects, and scrolled down to the WDM driver option. I’m not building a WDM driver, […]

Continue Reading →

Let’s Build a Windows File System

It’s been a while since I upgraded my Windows kernel development tools, so I thought I’d write about the steps I’m taking to do so. How you build a Windows file system has changed over the years but the basic structure of the file system driver itself has not. At the time I’m writing this, […]

Continue Reading →

Moving to the now

I’ve been gone for a bit; real life keeping me busy.  Part of that has been exploring the current edge of my technology space.  So I’m going to take a break from the historical paper review (but it will come back) and instead start talking about new storage technologies and the interesting things that we […]

Continue Reading →

The DEMOS File System

The DEMOS File System Michael L. Powell, In Proceedings of the sixth ACM symposium on Operating systems principles, pp. 33-42. This paper delves into the nitty gritty details of constructing physical file systems.  I was surprised that it had relatively few citations (61 according to Google Scholar when I checked) because, having read it, I would […]

Continue Reading →