Learn how the new VFS version works.


Introduction

The VFS creates a storage hierarchy and access paths to assets and storage items from the censhare Server on a local drive. The censhare Client defines the content of the filesystem and how it is accessed. That is why the mounted device does not show any kind of information if you try to access it with the Finder on macOS. If you know the complete path, you could access the content of any asset you're authorized to.

You also find out which version of VFS is currently installed in the splash screen or after the client start under "About censhare Client". 

VFS versions for macOS

What's new: VFS 3.0

With the release 2023.1, we introduce the third version of the virtual file system, however, only for macOS. This has to be done to address developments in the Apple hardware and operating system as well as to address certain security risks.

Independently of the version, the VFS is part of the censhare Client and does not require a separate installation. 

VFS 3.0 is based on a technology that drastically differs from the first two VFS versions. This article will compare VFS 2.0 and VFS 3.0 and explain how each of the versions work. 

VFS 2.0

Compatibility

macOS | censhare versions before 2023.1

Operating systems are usually divided into two fundamental layers, the user space and the kernel space. The normal applications, such as Adobe InDesign, Apple Safari, and the Apple Finder as well as the censhare Client are running in the user space. 

The kernel space provides access to mass storage devices, the network, etc. by providing an abstract interface for accessing data, wherever it is stored. Mounted volumes on your computer use exactly this abstract interface to display your files and folders within e.g. the Finder. The censhare VFS 2.0 uses this technology, too. It is divided into a kernel extension (KEXT) and a user space API. The KEXT is loaded into the kernel and is available when your computer is running. It is the heart of the virtual filesystem and implements several functions that are triggered by the kernel and/or applications from the user space. These are functions such as "mount", "unmount", "give me the content of directory w", "does file x exist", "open file y", "read n bytes of file z starting at position m", and so on. The user space API provides several methods to control the virtual filesystem and to check its health (mount & unmount it, configure it, is it mounted, ...). It also mirrors the most significant requests to the KEXT into the censhare Client, which uses the API.

The arrows on the diagram above shows how the information flows through the system when a user tries to access an asset from an external application, such as InDesign. 

VFS 3.0

Compatibility

macOS | censhare versions  2023.1 and higher

  • Motivation 

The main problem with the VFS 2.0 was that it requires a KEXT. Those are already deprecated by Apple and might be even forbidden by the manufacturer in the nearest future. Even now, to install a VFS 2.0 on a Mac with an Apple ARM chip, an admin has to do it for the user as this requires to boot into the boot menu. But the biggest disadvantage is that during this the admin also has to lower security settings. Last but not least, messing up with the KEXT-related computer code may cause computer crashes. 

  • Solution

VFS 2.0. had a code completely created by censhare. In censhare version 2023.1, it is replaced with an external solution called FUSE T. It is based upon an open-source library called FUSE (Filesystem in Userspace).  It lives entirely in the user space and does not require a KEXT. VFS 3.0 starts a local Network File System (NFS) server version 4 and translates between the two protocols: the NFS and FUSE. 

From the user point of view, VFS 3.0 behaves exactly the same as VFS 2.0. For admins, a lot of configuration effort will be eliminated.

CBFS | VFS for Windows

For Windows, CBFS Connect™ (CBFS) from callback Technologies has been adapted for use with censhare and it has been integrated into the Clients. CBFS uses a driver that creates a virtual volume, with its own file system and simulates a physical drive. In their approach, there is no strict separation between user and kernel space in regard to where the driver operates. See the 3d-party provider official documentation for more information. 

The minimum required CBFS version is 2017.0.13.38. The maximum tested version is 2022.0.8480.0