[NetBSD logo]    &    [Google logo]

NetBSD-SoC: HFS+ Filesystem

Update

hfs has been imported into NetBSD as of 20070305. Information on this page is no longer kept up-to-date, please refer to NetBSD sources for current information.

What is it?

HFS+ is the standard filesystem used by Apple Computer's Mac OS 9 and X operating systems. It is a relatively recent revision of the original HFS filesystem used in the first incarnations of the Macintosh. While HFS has been implemented on and distributed with NetBSD and other UNIX-like operating systems for quite some time, robust HFS+ implementations are not nearly as widespread. This is an impediment to Macintosh users who use or would like to use their Mac-based files with these systems.

The purpose of this project is to create a BSD-licensed implementation of the HFS+ filesystem for NetBSD. It will allow users to natively mount and read data from an HFS+ volume on any disk. Due to the time limit imposed by Google (about two months), there will initially be no support for writing data to a volume, nor for mounting/reading from a journaled volume whose journal is nonempty (implying that the filesystem is inconsistent). Once the initial framework is done, however, these features can be added with relative ease.

There are two phases to this project:

  1. Creating a library which provides routines to turn raw device bytes into intelligible HFS+ structures and to perform useful operations on them, such as locating a file on the volume or listing the contents of a directory.
  2. Writing a kernel-level filesystem driver, using the above library for HFS+-specific operations.

A formal list of expected project deliverables can be found below.

Status

Documentation

Technical Details


Expected Deliverables

By September 1, 2005, this project must deliver a kernel-level HFS+ implementation with the following capabilities:

Mandatory

Optional

Wishful Thinking


SourceForge.net Logo
Yevgeny Binder <yevbee at comcast dot net>
$Id: index.html,v 1.11 2007/03/06 10:39:09 dillo Exp $