Coda File System

venus-kernel interface

From: Ivan Popov <>
Date: Wed, 29 Sep 2004 11:26:37 +0200

to save some "Read The Source" time, if somebody would tell me,
how much the same is the Coda userspace/kernel protocol
on differnet OS and architectures.

Hopefully with the 64-bit cleanup it _is_ becoming better?

I have come as long in running the same binaries via Linux abi
on both Linux and FreeBSD, that I tried to run the Coda userland
in that way. Not tested the server, pretty sure it will work.

The client does not. Clog could not talk to (native) Venus on FreeBSD,
and (linux-abi) Venus can not mount /coda.

As in both cases it is standard syscalls, ioctl() and mount(),
it seems possible with minor tweaks produce a "compatible" Venus
and client tools.

I'll take a look at /coda mount, I know it is tricky, but
I'd assume ioctls would work the same given a portable Venus-kernel protocol?

Well, Venus itself is pretty much portable, but it would be exciting
to reduce *BSD OS-dependency to just the kernel module.

Free/Net/OpenBSD all need different tweaks in the binaries to make them
recognizable as Linux ones (what a disaster, all of them want to be compatible
with Linux, but in incompatible ways! :)
But still, it is possible to tweak just a few bits in a binary
to make it runnable on any of these platforms.
Linux abi is present by default in kernels on all of them.

So, people who know the gory details in the communication and ioctl
implementations - do the kernel modules talk the same protocol on the binary
level? Or just on the source level, but use different OS-dependent structures?

At any rate, we should have a binary definition of the protocol - imho.

Received on 2004-09-29 05:29:27