Subject: [Fwd: MacFS: A Portable Macintosh Filesystem]
To: None <port-mac68k@NetBSD.ORG>
From: Taras Ivanenko <ivanenko@ctpa03.mit.edu>
List: port-mac68k
Date: 05/10/1996 14:42:05
Noted on Newsgroups: comp.unix.bsd.netbsd.announce
--------------------------------------------------


MacFS: A Portable Macintosh Filesystem

Copyright (c) 1996 by Peter A. Dinda, George C. Necula, and Morgan Price 

Many moons ago, George C. Necula, Morgan Price, and I built a Macintosh
Heirachical File System implementation with an eye towards portability.  For a
variety of reasons, mostly time constraints and because none of our respective
research areas encompasses filesystem design and implementation, MacFS has been
sitting on a shelf until now.  We have decided to dust it off and make it
available to the net.  We hope that some young hackers with more time on their
hands than we have will port it to Linux, FreeBSD, NetBSD, OS/2, NT, etc. 

MacFS is a complete (read/write) filesystem library which can be used to build
user-level and kernel-level support for Macintosh volumes.  Included in the
distribution are user-level utilities (ls/cp/etc), as well as a very alpha Mach
vfs (ie, vnode) built on top of the library.  The code has been tested on
PMAX/Mach 3.0 machines and Intel/NetBSD machines.  

The source code for MacFS 0.1 and a technical report describing MacFS are
available via the "Programs" icon on the web page: 

   http://www.cs.cmu.edu/afs/cs.cmu.edu/usr/pdinda/html/pdinda.html

The source code is also available by ftp via:

                ftp://ftp.cs.cmu.edu/user/pdinda/
     
Please read the (very liberal) license agreement available in each of these
locations.  Let us know if this code is useful to you.  Included below is the
abstract for the tech report:


We have created a Macintosh file system library which is portable to a
variety of operating systems and platforms.  It presents a programming
interface sufficient for creating a user level API as well as file
system drivers for operating systems that support them.  We
implemented and tested such a user level API and utility programs
based on it as well as an experimental Unix Virtual File System.  

We describe the Macintosh Hierarchical File System and our
implementation and note that the design is not well suited to
reentrancy and that its complex data structures can lead to slow
implementations in multiprogrammed environments.  Performance
measurements show that our implementation is faster than the native
Macintosh implementation at creating, deleting, reading and writing
files with small request sizes, but slower than the Berkeley Fast File
System (FFS.)  However, the native Macintosh implementation can
perform large read and write operations faster that either our
implementation or FFS.



Peter August Dinda                                     pdinda@cs.cmu.edu
Doctoral Student, School of Computer Science, Carnegie Mellon University
   http://www.cs.cmu.edu/afs/cs.cmu.edu/usr/pdinda/html/pdinda.html

Peter August Dinda                                     pdinda@cs.cmu.edu
Doctoral Student, School of Computer Science, Carnegie Mellon University
   http://www.cs.cmu.edu/afs/cs.cmu.edu/usr/pdinda/html/pdinda.html