Accessing UFS partitions

A late night edition for my blog, as I’m tired, I wanted to stay on bed, but I don’t have enough energy to read. So I prefer to write something that I haven’t written of before. It’s actually also been a while since last I blogged from the iBook, although I used to quite often in the past.

What I want to talk about is the status of UFS partitions access in the Linux kernel. Although it’s been a while, at least a couple of months, since I last tried to access an UFS partition, it seems to me like there isn’t much working undergoing this aim.
Last time I tried, UFS2 support paniced my kernel entirely, forcing me to a forced shutdown and restart.

Today I thought about proposing this as a SoC project, but I thought that it’s too wide and too specific to be mentored by anyone on Gentoo, it could have been better to be mentored by FreeBSD project, but they won’t write code for Linux.

This is really unfortunate, as UFS2 is a filesystem accepted by both FreeBSD and OSX, and having it working on Linux would have been a way to have a filesystem common to the three operating systems, a part the vfat one that, called filesystem, would be an insult for other filesystems.

It’s a bit strange that there’s more support for HFS+ (that was developed initially for Mac OS “classic”) than for UFS2, considering that the latter is developed under BSD license in FreeBSD.

This is another of the things I’d like to put under Gentoo/*BSD project if there were more people working on it, improving Linux support for *BSD filesystems. I’d like to work on that myself actually, but lately I always have less and less time (today I lost about half the day on my paid job for instance), and I know almost nothing of the Linux kernel.

It shouldn’t be too difficult to use FreeBSD’s code actually, as you don’t really have to cleanroom it as it would be needed when adding support for a filesystem supported by Linux on FreeBSD, because the BSD licensed code can be used as is on Linux kernel, when it comes to the license issue.

I know, there are works in progress to get XFS support in FreeBSD, but it’s read only and it doesn’t work on Mac OS X. It might be slightly better if OS X will really support ZFS file system, but Linux still doesn’t support it and it’s not even supported by FreeBSD, so that would work only for exchanging data witn Solaris.

UFS2 has a trump card to be available on more platforms: the code is BSD-licensed, while XFS, JFS and similar are implemented using GPLd code in Linux, and ZFS is licensed under OpenSolaris’s license. Mac OSX, that’s another common operating system, already provides UFS2 support (the UFS support in Mac OSX is a pimped version of UFSv2, it seems, to me at least, to be compatible with it), but it’s missing in Linux, for some kind of reason 🙁

Anyway, if somebody will ever make Linux to play well with UFS, surely will have all my thanks 🙂