Coda File System

Re: Coda client, 32-bit userland on a 64-bit kernel?

From: Greg Troxel <gdt_at_ir.bbn.com>
Date: Sun, 15 Jul 2007 08:53:57 -0400
u+codalist-p4pg_at_chalmers.se writes:

> Hi Greg,
>
> On Wed, Jul 11, 2007 at 08:10:37AM -0400, Greg Troxel wrote:
>> > x86 <-> amd64 is not the only example. Linux ABI is available on
>> > several *BSD kernels, what is wrong with providing a single client
>> > userspace for all those systems? Our Coda client is self-contained
>> > and does not depend on any additional libraries, why do we have to
>> > maintain 5 instanses of it - while one x86-Linux instance is
>> > capable of running on all 5 platforms unmodified?..
>> 
>> But it isn't.  Either you have to just build coda native, or all those
>> other systems have to emulate Linux down to the kernel/venus level.  I
>> could make the same claim - why doesn't Linux run NetBSD programs?
>
> The systems can not emulate kernel/venus level by definition - as there is
> yet no (architecture-independent) definition of such a thing,
> and that was also the point you mentioned.

Sure they could - there is no formal spec, but there is the actual
behavior, and emulations have to match it.  NetBSD's Linux emulation is
adjusted as we find new subtleties of Linux system calls that programs
people want to run rely on.  truss on Linux, ktrace on NetBSD, find
different results, fix emulation, repeat.  This is messy, but I can run
Linux binaries of openoffice, acrobat, and the flash player on NetBSD.
But it's a huge amount of work, only justified in practice by the
existence of binary programs people want to run.  Coda is too easy to
compile natively.

I do see the point of what you want, and good luck.

Received on 2007-07-15 08:57:31