Greg went on to describe an alternative method using sshfs. I spent a bunch of time messing with shared folders and couldn't get it to work. While Googling for solutions to some of the Virtualbox filesystem sharing problems I had been having, I found a blog post by Greg "Greggles" Knaddison with this heartening line: This almost worked - but I could never get permissions to behave properly, and sometimes the mounts would behave unpredictably. I spent a lot of time trying to get this working the other way around - with the Drupal files living natively in OSX and being shared with Ubuntu through VirtualBox Guest Additions.
The basic idea is that my development server lives inside Ubuntu, and that the relevant parts of that filesystem are exposed to the Mac host so I can work using its native tools. Turnkey Linux is great - you should check it out. The guest VM is an Ubuntu 10.04 TurnKey Linux LAMP appliance.
The Virtual Machine hypervisor is VirtualBox, v4.1.8 at the time of writing.
The host machine is a 2010 Macbook Air with a 2.13GHz Intel C2D, 4GB RAM and 256GB disk inside, running OSX 10.7.x (Lion).
The filesystems repository contains source code for several exciting and useful file systems for you to browse, compile, and build upon, such as sshfs, procfs, AccessibilityFS, GrabFS, LoopbackFS, SpotlightFS, and YouTubeFS.I use a Macbook Air as my main Drupal development machine these days.
If you prefer another language (say, Python or Java), you should be able to create file systems in those languages after you install the relevant language bindings yourself. It comes with C-based and Objective-C-based SDKs.
The macFUSE software consists of a kernel extension and various user space libraries and tools. Therefore, many existing FUSE file systems become readily usable on macOS. It provides multiple APIs, one of which is a superset of the FUSE API (file system in user space) that originated on Linux. In more technical terms, FUSE implements a mechanism that makes it possible to implement a fully functional file system in a user-space program on macOS. Since FUSE file systems are regular applications (as opposed to kernel extensions), you have just as much flexibility and choice in programming tools, debuggers, and libraries as you have if you were developing standard macOS applications. Writing a file system using FUSE is orders of magnitude easier and quicker than the traditional approach of writing in-kernel file systems. The content of these file systems can come from anywhere: from the local disk, from across the network, from memory, or any other combination of sources. Legacy MacFUSE file systems are supported through the optional MacFUSE compatibility layer.Īs a developer, you can use the FUSE SDK to write numerous types of new file systems as regular user space programs. MacFUSE allows you to extend macOS's native file handling capabilities via third-party file systems.Īs a user, installing the macFUSE software package will let you use any third-party FUSE file system.