What is the Windows Projected File System?

51

6

In the latest builds of Windows 10, there is a new feature, in Beta, called Windows Projected File System. I cannot find any information on Google, other than programming APIs that do not make sense to me.

What is it, and what kind of users would it be targeted for?

enter image description here

Canadian Luke

Posted 2018-10-25T16:39:42.790

Reputation: 22 162

Answers

56

Projected File System aka ProjFS is a feature similar to FUSE found on Linux (or to Dokan & WinFSP). It allows apps to create virtual file systems which appear indistinguishable from local folders, but their entire contents are generated "live" by the program. (In other words, you're seeing projections of files which might not be there.)

The primary use of ProjFS is Microsoft's "Git Virtual File System", an addon to the Git version management tool aimed at increasing its performance and reducing disk space usage when dealing with massive repositories. (Git was built for repositories containing just tens of thousands of files, such as Linux.git; but Microsoft have started using it internally for the Windows source repository, which is several orders of magnitude larger.)

Currently ProjFS doesn't seem to be publicly documented, but I expect that sooner or later third-party developers will figure out how to use it as a FUSE alternative for implementing such virtual filesystems as sshfs, ftpfs, and so on.

Note: Projected File System has nothing to do with Windows File Protection.

As noted in the comments, documentation is now available for the feature.

user1686

Posted 2018-10-25T16:39:42.790

Reputation: 283 655

2Several orders of magnitude larger, to me, means Windows contains at least a billion source files. Is that accurate? – user253751 – 2018-10-25T21:33:37.567

How does WPFS differ from IFS?

– niutech – 2018-10-25T21:49:40.490

6

@user20574 According to GVFS website: "Windows operating system, which clocks in at roughly 300 GB (3.5 million files)". And a MS blog post: "the Windows code base is approximately 3.5M files and, when checked in to a Git repo, results in a repo of about 300GB".

– nxnev – 2018-10-25T23:23:42.923

So two orders of magnitude, then. – user253751 – 2018-10-25T23:41:47.327

1@niutech: IFS is an API for building kernel-mode filesystem drivers that can be dynamically loaded (as opposed to built in to the kernel itself). ProjFS is an API for building user-mode filesystem drivers (ie, drivers that run like a regular exe). – josh3736 – 2018-10-26T01:22:56.943

@user20574 the Windows repo includes everything in MS like Office, Windows kernel, Windows tools, Visual Studio, Skype... and not only the kernel like Linux, so no wonder it'll be a lot bigger – phuclv – 2018-10-26T09:09:20.830

@phuclv citation needed. "Windows" includes a lot of stuff (that would be extra packages on Linux; think the entire GUI, Notepad, etc.), but I can't believe that the repo contains all of Microsoft's products. – Roger Lipscombe – 2018-10-26T11:55:59.370

WOW! I've never heard of this, this is excellent! – Austin Burk – 2018-10-26T14:07:14.110

The git virtual filesystem seems to be open-source, so even if there is no documentation there is effectively public example code. – plugwash – 2018-10-26T14:39:49.217

1

Besides, they did think about a single repo for the whole company: The first big debate was – how many repos do you have – one for the whole company at one extreme or one for each small component? A big spectrum

– phuclv – 2018-10-26T16:49:25.573

@phuclv Exactly, it is NOT everything in MS. Windows is big on its own. – Hong Ooi – 2018-10-26T16:55:16.183

The problem is not as much many files as huge files. Git was designed to store source code, but Microsoft has images and other media and various data blobs thrown in their source repositories. – Jan Hudec – 2018-10-26T21:13:50.430

7

There is now documentation here.

– NtFreX – 2018-11-01T12:29:36.397