FUSE Port Brings NTFS Support To OS X
sciurus0 writes "In his session at Macworld on OS X filesytems, Google's Amit Singh announced that he has ported Linux's FUSE module to OS X. The port is called MacFUSE and it is available in source form and as a pre-compiled kernel extension with associated tools. Many FUSE filesystems such as sshfs and ntfs-3g are reported to work."
GmailFS should also now be easily supported on Mac OS X using MacFuse.
I'm writing FUSE for Windows at my spare time (not much of it, unfortunately). Is there anybody who's doing the same?
Change is certain; progress is not obligatory.
Try http://fuse.sourceforge.net/ - basically, when I hear of an Open Source project I've not heard of before, I just go to "nameofprojectgoeshere.sourceforge.net", and (more often than not) there it is. And there it was.
Il n'y a pas de Planet B.
...Miklos Szeredi was offered a job by SUSE Labs, Prague, which he accepted. His job will be kernel developement for SUSE (all GPL, of course). IIRC, he can work on FUSE in 10% of his work time.
Government cannot make man richer, but it can make him poorer. - Ludwig von Mises
The original NTFS-3G source code doesn't compile on Mac OS X without some changes but the MacFUSE and NTFS-3G precompiled packages are available from IUseThis.
Boot camp users, care to comment on the implications?
.: Max Romantschuk
This is great news! Finally, there's an easy way to develop filesystems for multiple operating systems. Maybe I'll pick up my netfs project again now. Anyone working on porting FUSE to *BSD?
Please correct me if I got my facts wrong.
I use it everyday...
/sbin/mount_ntfs
# which mount_ntfs
Uh, I dunno if you've used a Mac before, but I'm pretty sure that since OSX they've understood NTFS drives. Sure, no writing, but that's why you convert all your drives to HFS+. It reads Internal, External or Anal, whichever I chuck at it. Also, my windows machine seems to be able to handle the mac drives. As long as I'm using MacDrive (the application, not the drive itself)
Um... maybe by "last I checked" you mean the 1990s?
$nice = $webHosting + $domainNames + $sslCerts
I usually recommend ext2 on external disks that are to be used seamlessly between windows/linux/mac environments. Works like a charm! Ref. http://sourceforge.net/projects/ext2fsx/ http://www.fs-driver.org/
Just go to sharing in system preferences and click for enable windows sharing.
Job done. It even tells you where to point your windows pc to.
I was waiting for the sshfs support on Mac OS X for a long time.
Thanks Google, you did us OS X users a great favorite!
Troll? What year is this?
. html
http://www.apple.com/macosx/features/windows/
http://www.apple.com/macosx/features/websharing/
http://www.apple.com/pr/library/2003/jun/23server
That last one is a press release from June 2003 where they talk about Samba 3 in Mac OS X.
Plus you could always format the ext. drive with FAT32 and pretty much every modern OS could access it.
Hell, if you were that determined you could simply pipe dd through netcat and be done with it.
Sounds less stupid than Sing is King!... But if you have been to his site in the last three years he really has more Raw understanding of the Mac, and incidentally just about every other OS that you have never heard of. Undoubtably he is the pulse of a new mac future.
macFuse... Now that I will reserve judgement on. I am sure that it works at least a little, in the same way that HFS and NTFS were based on OS 2\Warp's HPFS, but having R\W support means I can now fix any ailing NTFS drive in my shop-- Typically I will get a drive in and the dell or HP that it was on will report the drive as dead, and it wont boot for a variety of reasons, I will plug it into a Mac an recover all of the data... Definately gonna use it.
--Shaddup and support your local PBS station Plan for it
I use MacDrive6 on my Windows boxes and format all of my external drives as HFS drives. Now I have fully read/write capability on OSX, Linux and Windows, without the limitations of FAT32. It isn't free, but it certainly makes life easier when moving external drives between different OS's.
That's exactly the feature I expected This has always been a great concern for me, as I have no available Linux box at work. But now I am finally empowered to completely fuck up my NFTS partition and ruin gygabytes fo data and months of work from both, work and home. I love it! The perfect complement to NTFS' own native goodness!
-- 29A the number of the Beast
Macs running OS X have built-in Windows file sharing -- you can share files from the Mac and you can connect to Windows network-shares. Windows Active Directory and VPN might complicate things a bit, but offer no more problems from a Mac than they do from the average Windows PC.
As for sharing an external hard drive, while Macs only read NTFS volumes, they can both read and write to FAT32 volumes which are compatible with Windows as well. There are, however, limitations to FAT32 such as the 2GB maximum file-size which might make that a less-than-optimum solution.
Another alternative is to purchase a commercial product such as MacDrive, which allows Windows PC's to access hard drives that have been initialized with the Mac (HFS+) file system.
How about ext3 support on Intel macs? I tried the sourceforge project about a year ago and it didn't work.
Help! I'm a slashdot refugee.
The two worst-connected computers I currently use are my Mac Plus and my TRS-80. It seems like neither one will connect to Windows 3.0. I'm not even sure where I'm supposed to stick the ethernet thingy.
Next time I'm buying the Commodore 128 or something else that can run GEOS!
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Actually, the maximum file size on FAT32 is 4GB, but that's still pretty small.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
I saw that definition when I first heard about FUSE and thought "Okay, so what's userspace?" For those who don't know: Userspace is the thing you're using right now. Rather than having the filesystem buried down deep in the bowels of the system, FUSE puts it above most of the stuff the OS does. That way, you can tell the OS things like "See those collection of Gmail messages to myself or RAR files or tarballs? That's a filesystem. You can move stuff onto and off of it just like another disk." FUSE is an easy, open source way of writing things that use unconventional storage methods for files.
I'm in the hole of the broadband donut.
I love fuse it makes so many things so much easier.
mainly I use "sshfs". but the biggest problem I have is the same problem I have with KDE-IOSlaves.
is that you can't really chain them
It makes it easy to Open a Zip/Rar file as a folder, and it makes it easy to treat an FTP server as a folder. but what about a Zip File on an FTP server?
I just wish there was some easy way to allow the FTP/SSH file systems to recognize that a Zip File as folder.
or chain to Zip with Encryption.
or Encryption with Subversion.
all at the file system level.
any way thats my rant, but the FUSE effort is brilliant in general.
--meh--
Sure, no writing, but that's why you convert all your drives to HFS+
That's kind of a huge limitation. There are lots of times when you might want to share a drive back and forth between a Windows and Mac machine, and it's not possible or desirable to run MacDrive on the Windows side (and having for format the drive with FAT32 sucks mightily).
Letting the Mac understand NTFS is a good thing, because it provides for more interoperability. The only downside to it, is that it might cause people to think of NTFS as a good inter-operable standard, rather than the disgusting, proprietary, Redmond Albatross that it is.
Plus, being able to use SSH as a filesystem is pretty slick, and will probably get more use than the NTFS part. KDE's implementation of SSH-as-filesystem (called fish://) is darned slick, and I've always thought that Apple was missing out by not having something like it.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
In layman's terms, FUSE is an operating system driver that allows you to use a regular application as a file system driver. i.e. Instead of installing a special kernel module or DLL file, you simply run an application. Since you can pass parameters to that application, it becomes ideal for tasks like mounting ZIP files or SMB shares. Basically, stuff that's very transient and could otherwise crash your system. In the case of FUSE, your system is protected against a crash in the same way it's protected against any application crash.
Javascript + Nintendo DSi = DSiCade
Sure, no writing, but that's why you convert all your drives to HFS+.
Good point! I'm converting all my NTFS drives as we speak. I assume that Windows will still be able to read from them afterwards or you would have mentioned it? I sure hope so!
It reads Internal, External or Anal, whichever I chuck at it.
I know that Apple tends to be associated with homosexuality, but I think you're taking things a bit too far.
that's just the linux version. The Mac version is hosted by googleCode and its probibly going to be on the first page for a while, otherwise just search for macFuse.
Additionally: if you link it into your application's address space, filesystem operations become zero-copy "for free". Multithreaded drivers are also a snap, and don't cause priority inversion problems for everything else, only consumers of the filesystem.
Hmm, maybe there is something to that whole microkernel thing, eh Linus?
The other alternative is http://www.freshmeat.net/
Jumpstart the tartan drive.
I'm working on a Cocoa GUI for FUSE (currently called MacFusion). The idea is that it loads plugins for supported filesystems (working right now on SSHFS, NTFS-3G and FTPFS at first). The plugins provide a configuration interface and code to mount/unmount. I'm hoping that this GUI will make FUSE goodness easily accessible to non-technical non-console people. In the future, it should be simple to support encfs, gmailfs, etc. This will be a FOSS project once a first build is ready. Anyone who wants to help is welcome, as are suggestions of any kind on the features/interface.
On reading about this I decided to install it on my Mac and see what it gives. While a great advancement, this is still a work in progress and still very much something for people familiar with the command line. The aspect that would change all this the ability to use FUSE based FS URLs in the Finder ( known issue ), though this seems to be a limitation based on some private APIs needing to be made public, which I hope Apple resolves.
Jumpstart the tartan drive.
For the Mac Plus, there was a SCSIethernet box you could get. Pretty straightforward installation.
For the TRS-80, your best bet may be running SLIP or PPP over a serial or parallel interface. Of course, viewing web pages in 128x64 block graphics might be something of a challenge.
Fortunately, Commodore 64/128's have an ethernet solution available. See http://www.dunkels.com/adam/tfe/
They have given something back. For example the first Free software RTP/RTSP streaming server was released by Apple.
Spelling/grammar nazis welcome (English is not my first language and I am trying to improve my spelling/grammar)
It's a great tool and one I have practical use for, but testing it out for work I've stumbled across what I consider to be an important issue. I've only tried SSHFS so far, and I haven't done any digging to see where the fault lies, but a dropped connection (either a dropped internet connection or an SSH session the server drops) really confuses the system. Messing about, I killed my internet connection during a read, and Finder hung until my the connection was restored. Another time, my session was killed for idleness by our server; when I tried to perform a read through Terminal, both Terminal and Finder crashed and took all of OS X with them.
Now let's talk about Linux, and how it stole most of its OSS from HURD. Talk about a leech!
If you're not flamebaiting then you probably want a serious answer. My guess is twofold:
- Mac has a culture of charging small amounts of money for software released commercially rather than open sourcing things (e.g. TextMate). This dates to before the OSX days.
- People writing code for Macs tend to use Cocoa because its the easiest way to do it and this doesn't port easily to other systems.
"XML is like violence. If it doesn't solve your problem, use more." - Anonymous Coward
I couldn't find a binary installer for NTFS-3G, so I whipped one up and made it available here. You need to install MacFUSE first. I will see if I can make a UB version this evening and test it on my G5. Enjoy, and let me know if there are any problems. It is tested (lightly) on a MacBook and MacBook Pro
Yes, that is what you can do with FUSE, but you can also do that without FUSE. All FUSE is doing is making it much, much easier.
/dev) -- this is what allows you to plug in a USB keychain device and expect it to work, or at least expect to be able to mount it right away.
FUSE is far from the only link from kernel space to userspace, and far from the only one where the kernel is coming to a userspace daemon with requests. For instance, udev is a system where the kernel tells the udev daemon about a new device, and the udev daemon looks in its config files and creates a device node (those files in
Basically, the kernel is the thing behind the thing you're using right now. To over-simplify, kernel is to OS what CPU is to PC. Most kernels are monolithic, meaning it's a single program -- more specifically, a single process. Linux (the kernel) is one gigantic, multi-threaded x86 process.
Now, kernel programming is hard. Very hard. You basically have to program in C, but you get absolutely no libraries that aren't already in the kernel -- remember, most shared libraries are stored as files on a filesystem? Well, where does the filesystem get its libraries? So if you want a library in the kernel, you have to put it there -- which is pretty much like porting it.
You also have pretty much no memory protection, as far as I know. You know, things that would segfault a normal program -- or "illegal operation" on Windows? It's the kernel that handles that. Basically, this means that if you end up with a pointer to some address you didn't mean it to, you'll be able to write there -- which means anything in the kernel can pretty much scribble all over anything in RAM, which means a bug in the kernel can screw up your system in absolutely any way imaginable, including file corruption. This is why we don't like the nVidia drivers, by the way -- they're binary, a black box, and sometimes they do have serious bugs, with serious consequences, including file corruption. Think of all the complaints people have had about Flash and Java crashing Firefox (admittedly not as much lately, but still), and imagine that's your entire OS, and you start to get the picture.
So, even if your program is written entirely in C, there are many things you can't do in the kernel that you can do outside the kernel -- which means, userspace.
So writing a filesystem in FUSE means you can use libgmail, you can write your filesystem in Perl or Python, you can call librar without having to teach the Kernel to understand RAR files...
Generally, anything you can do with FUSE, you could theoretically do with something else, including doing it IN the kernel. You do it with something specialized, like, say, a specific API through which the kernel calls a program in userland which understands RAR files. You could even port librar to the kernel -- technically, you can actually do anything in the kernel, it's just harder. FUSE puts it in userspace, making it easy.
And now it's portable, too. Remember, userspace isn't all that different between Unices -- often, you can make an initial port of a simple, commandline app from Linux to OS X simply by recompiling. So all those cute little filesystems people have been writing for Linux -- including ntfs3g, but also sshfs, gmailfs, all that other stuff -- those all work on OS X now, and the only people who had to deal with the OS X kernel are the FUSE team.
The drawback is speed -- context switches. A context switch (for those who don't know) is what happens when you flip from executing userland code to kernel code, or vice versa -- and it takes a little bit of time. Everything you do is now automatically four context switches -- some app tries to access a file, so it asks the kernel to open that file. The kernel then talks to your FUSE daemon, so now the FUSE daemon is running. That's two already. Even if the daemon does nothing other than send "Hello, world!" back to the app, it has to send it back to the kernel, first... That's ignoring things like,
Don't thank God, thank a doctor!
It seems to me that kioslaves would be able to perform better than fuse ever could. Maybe the best solution would be some sort of glibc hack?
Don't thank God, thank a doctor!
How else would be POSIX subsystem and SFU subsystem run?
Probably fork() is an obscure undocumented NT-native call. You just need to find it, call it, and hope that your C library doesn't go into convulsions.
There is ZFS for FUSE, and the next MacOS X will have ZFS native. Compare them.
I've been trying to get a decent way to encrypt my Parallels/WinXP drive/folder.
/Applications or some such thing...this makes my WinXP accessible by other users (eg. admin) on the same laptop.
MacOSX home folders using filevault a neat,
but I have to keep the Parallels/WinXP folder in
Any working suggestions?
Gee, which is pretty much what most people use it for...
"We invented personal computing." - Bill Gates
4GB.
Thanks. I mis-remembered. FAT16 has a 2GB limit.
At work we have Windows 2000 workstations locked down to where we are not able to install anything. This is good, but it leaves us no choice but to use USB key drives and portable apps if we want to run things like Firefox.
I have an iPod formatted for Mac and YamiPod won't read it on those Windows 2000 machines, and I have no option of installing something like MacDrive on the machine to do so.
Perhaps I could use something like FUSE.