DarwinCoda
Coda for Darwin and Mac OS X
Welcome to the DarwinCoda project
What's DarwinCoda ?
The DarwinCoda project aims to provide the missing bits and pieces for the Coda File system, that is, the missing bits and pieces for Darwin and MacOS X. The most important piece is the kernel extension needed to be able to use Coda.
What's Coda ?
The Coda file system is a Reserarch project at the Carnegie-Mellon University. Most of the development of Coda happens there. You should have a look into their website to get more than a hunch what this is all about. What use to be the most interesting thing with Coda is its ability to act like a decent distributed file system even when you are not connected to any networks, something that comes in handy for all those iBooks and PowerBooks.
Disclaimer
As said in the previous paragraph, Coda is a Research Project. This means that anything can happen. This goes for the DarwinCoda project as well. It you use the code found within this project, yo do it at your own risk. Since there is kernel code involved, any damages can occur, including data loss and even permanent equipment damage. You have been warned! None of the project members will assume any liability for anything that might happen due to usage of this software.
License
All software within the DarwinCoda project is available according to the BSD license and/or the ASPL license. You are bound to accept the terms of usage of these licenses. The Coda proper code, which is maintained by CMU is available according to the GPL license.
Project mailing lists
The darwincoda mailing list is where most discussions are held. Only list subscribers may post to the list, but anyone is welcome to subscribe. Those wishing to see the cvs commit logs which detail the change-by-change progress of the project can also subscribe to the cvs-darwincoda-all mailing list.
There are two branches on the CVS server, the trunk and the Research branch. Currently, the Research branch is in a much better state of health than the main trunk. However, the code in the Research branch contains lots of largely unnnecessary debugging hooks and other checks. If you wish to see the main trunk code, omit the -r Research argument in the commands below.
Use the following commands to get DarwinCoda from the OpenDarwin CVS server
cvs -d :pserver:[email protected]:/Volumes/src/cvs/od login cvs -d :pserver:[email protected]:/Volumes/src/cvs/od co -r Research proj/DarwinCoda
Just hit return when the server asks you for a password. The CVS repository can be browsed through CVSweb.
Current status of the kernel extension
As of 2004-12-03, the Research kernel extension is capable of handling the following operations
Known bugs:
Ideas for related projects:
Building the Coda kernel extension
The current version requires you to use Apple's xcode application to build the kernel extension. If you don't have it on your machine, you must first install Apple's developer tools.
To build the stuff, type make install.
Loading the Coda kernel extension
The procedure for loading the kernel extension is not a one-liner. I'm using the following shell script. It must be run as root.. The script has the side effect of producing a symbol table for debugging in /var/tmp/ksyms, which comes in handy for debugging if you should encounter any kernel panic.
#!/bin/sh
KEXT=darwin_coda.kext
(cd /tmp; kextunload $KEXT)
rm -rf /tmp/$KEXT
cp -R ${HOME}/$KEXT /tmp
chown -R root /tmp/$KEXT
chgrp -R wheel /tmp/$KEXT
(cd /tmp; kextload -v $KEXT)
mkdir -p /var/tmp/ksyms
(cd /tmp; kextload -n -A -s /var/tmp/ksyms $KEXT)
sync
sync
Getting started
These instructions apply to darwin-7.3 (MacOS X Panther). You may have to fix bits and pieces on other platforms:
As for darwin 8.6 (MacOS X Tiger) A yet untested version is found in the darwin-8.6 directory. It compiles, links and loads but that's the only thing I know about it right now, except that the port between darwin7 and darwin8 was quite some work to do.
Starting Coda requires a few steps.see this document for the details.
Handling system updates
At times, Apple updates MacOS, this usually also updates Darwin. You will have to edit the Info.plist and bump the com.apple.kernel value.
Developers
For the moment, which I hope won't last for too long, I'm alone in this project. If you wish to help, drop me a mail