original_kernel/Documentation
Eric Van Hensbergen 93fa58cb83 [PATCH] v9fs: Documentation, Makefiles, Configuration
OVERVIEW

V9FS is a distributed file system for Linux which provides an
implementation of the Plan 9 resource sharing protocol 9P.  It can be
used to share all sorts of resources: static files, synthetic file servers
(such as /proc or /sys), devices, and application file servers (such as
FUSE).

BACKGROUND

Plan 9 (http://plan9.bell-labs.com/plan9) is a research operating
system and associated applications suite developed by the Computing
Science Research Center of AT&T Bell Laboratories (now a part of
Lucent Technologies), the same group that developed UNIX , C, and C++.
Plan 9 was initially released in 1993 to universities, and then made
generally available in 1995. Its core operating systems code laid the
foundation for the Inferno Operating System released as a product by
Lucent Bell-Labs in 1997. The Inferno venture was the only commercial
embodiment of Plan 9 and is currently maintained as a product by Vita
Nuova (http://www.vitanuova.com). After updated releases in 2000 and
2002, Plan 9 was open-sourced under the OSI approved Lucent Public
License in 2003.

The Plan 9 project was started by Ken Thompson and Rob Pike in 1985.
Their intent was to explore potential solutions to some of the
shortcomings of UNIX in the face of the widespread use of high-speed
networks to connect machines. In UNIX, networking was an afterthought
and UNIX clusters became little more than a network of stand-alone
systems. Plan 9 was designed from first principles as a seamless
distributed system with integrated secure network resource sharing.
Applications and services were architected in such a way as to allow
for implicit distribution across a cluster of systems. Configuring an
environment to use remote application components or services in place
of their local equivalent could be achieved with a few simple command
line instructions. For the most part, application implementations
operated independent of the location of their actual resources.

Commercial operating systems haven't changed much in the 20 years
since Plan 9 was conceived. Network and distributed systems support is
provided by a patchwork of middle-ware, with an endless number of
packages supplying pieces of the puzzle. Matters are complicated by
the use of different complicated protocols for individual services,
and separate implementations for kernel and application resources.
The V9FS project (http://v9fs.sourceforge.net) is an attempt to bring
Plan 9's unified approach to resource sharing to Linux and other
operating systems via support for the 9P2000 resource sharing
protocol.

V9FS HISTORY

V9FS was originally developed by Ron Minnich and Maya Gokhale at Los
Alamos National Labs (LANL) in 1997.  In November of 2001, Greg Watson
setup a SourceForge project as a public repository for the code which
supported the Linux 2.4 kernel.

About a year ago, I picked up the initial attempt Ron Minnich had
made to provide 2.6 support and got the code integrated into a 2.6.5
kernel.   I then went through a line-for-line re-write attempting to
clean-up the code while more closely following the Linux Kernel style
guidelines.  I co-authored a paper with Ron Minnich on the V9FS Linux
support including performance comparisons to NFSv3 using Bonnie and
PostMark - this paper appeared at the USENIX/FREENIX 2005
conference in April 2005:
( http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html ).

CALL FOR PARTICIPATION/REQUEST FOR COMMENTS

Our 2.6 kernel support is stabilizing and we'd like to begin pursuing
its integration into the official kernel tree.  We would appreciate any
review, comments, critiques, and additions from this community and are
actively seeking people to join our project and help us produce
something that would be acceptable and useful to the Linux community.

STATUS

The code is reasonably stable, although there are no doubt corner cases
our regression tests haven't discovered yet.  It is in regular use by several
of the developers and has been tested on x86 and PowerPC
(32-bit and 64-bit) in both small and large (LANL cluster) deployments.
Our current regression tests include fsx, bonnie, and postmark.

It was our intention to keep things as simple as possible for this
release -- trying to focus on correctness within the core of the
protocol support versus a rich set of features.  For example: a more
complete security model and cache layer are in the road map, but
excluded from this release.   Additionally, we have removed support for
mmap operations at Al Viro's request.

PERFORMANCE

Detailed performance numbers and analysis are included in the FREENIX
paper, but we show comparable performance to NFSv3 for large file
operations based on the Bonnie benchmark, and superior performance for
many small file operations based on the PostMark benchmark.   Somewhat
preliminary graphs (from the FREENIX paper) are available
(http://v9fs.sourceforge.net/perf/index.html).

RESOURCES

The source code is available in a few different forms:

tarballs: http://v9fs.sf.net
CVSweb: http://cvs.sourceforge.net/viewcvs.py/v9fs/linux-9p/
CVS: :pserver:anonymous@cvs.sourceforge.net:/cvsroot/v9fs/linux-9p
Git: rsync://v9fs.graverobber.org/v9fs (webgit: http://v9fs.graverobber.org)
9P: tcp!v9fs.graverobber.org!6564

The user-level server is available from either the Plan 9 distribution
or from http://v9fs.sf.net
Other support applications are still being developed, but preliminary
version can be downloaded from sourceforge.

Documentation on the protocol has historically been the Plan 9 Man
pages (http://plan9.bell-labs.com/sys/man/5/INDEX.html), but there is
an effort under way to write a more complete Internet-Draft style
specification (http://v9fs.sf.net/rfc).

There are a couple of mailing lists supporting v9fs, but the most used
is v9fs-developer@lists.sourceforge.net -- please direct/cc your
comments there so the other v9fs contibutors can participate in the
conversation.  There is also an IRC channel: irc://freenode.net/#v9fs

This part of the patch contains Documentation, Makefiles, and configuration
file changes.

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-09 13:57:56 -07:00
..
DocBook [kernel-doc] fix various DocBook build problems/warnings 2005-09-07 01:15:17 -04:00
RCU [PATCH] files: rcuref APIs 2005-09-09 13:57:54 -07:00
aoe
arm [PATCH] ARM: 2847/1: S3C24XX - Documentation for USB OHCI host 2005-08-10 16:45:14 +01:00
block
cdrom [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
cpu-freq
cris
crypto [CRYPTO]: Fix XTEA implementation 2005-09-01 17:42:46 -07:00
device-mapper
driver-model
dvb [PATCH] dvb: dst: Updated Documentation 2005-09-09 13:57:44 -07:00
early-userspace
fb [PATCH] vesafb: Document mtrr boot option usage 2005-07-30 10:14:47 -07:00
filesystems [PATCH] v9fs: Documentation, Makefiles, Configuration 2005-09-09 13:57:56 -07:00
firmware_class
fujitsu/frv
hwmon [PATCH] I2C: W83792D documentation 3/3 2005-09-05 09:14:14 -07:00
i2c [PATCH] I2C: Centralize 24RF08 corruption prevention 2005-09-05 09:14:25 -07:00
i2o
i386 [PATCH] Make the bzImage format self-terminating 2005-09-07 16:57:29 -07:00
ia64
infiniband [PATCH] IB: Add core locking documentation to Infiniband 2005-07-27 16:26:15 -07:00
input [PATCH] USB: yealink: fix htons usage, documentation updates 2005-09-08 16:40:57 -07:00
ioctl
isdn
kbuild [PATCH] kbuild: describe Kbuild pitfall 2005-07-28 22:58:21 +02:00
kdump
m68k
mips
networking /spare/repo/netdev-2.6 branch 'master' 2005-09-01 18:02:01 -04:00
parisc
pcmcia [PATCH] pcmcia: update documentation 2005-07-28 08:39:00 -07:00
power [PATCH] swsusp: update documentation 2005-09-07 16:57:16 -07:00
powerpc
s390
scsi [SCSI] unexport scsi_add_timer/scsi_delete_timer 2005-09-06 17:26:37 -05:00
serial [SERIAL] Clean up and fix tty transmission start/stoping 2005-08-31 10:12:14 +01:00
sh
sound [ALSA] ad1816a - Add clockfreq module option 2005-08-30 08:43:32 +02:00
sparc
sysctl
telephony
uml
usb [PATCH] USB: ub documentation update 2005-08-04 21:32:46 -07:00
video4linux [PATCH] v4l: cx88-dvb incorrect reporting fixed and remove bad PCI ID for Sabrent 2005-09-09 13:57:51 -07:00
vm [PATCH] swap: swap_lock replace list+device 2005-09-05 00:05:42 -07:00
w1
watchdog [PATCH] ppc32: Added support for the Book-E style Watchdog Timer 2005-09-05 00:05:56 -07:00
x86_64 [PATCH] x86_64: ignore machine checks from boot time 2005-08-07 10:00:37 -07:00
00-INDEX
BUG-HUNTING
Changes [PATCH] Documentation/Changes: document the required udev version 2005-07-27 16:26:07 -07:00
CodingStyle
DMA-API.txt
DMA-mapping.txt
IO-mapping.txt
IPMI.txt [PATCH] ipmi poweroff: fix chassis control 2005-09-07 16:57:49 -07:00
IRQ-affinity.txt
MSI-HOWTO.txt
ManagementStyle
PCIEBUS-HOWTO.txt
README.DAC960
README.cycladesZ
SAK.txt
SecurityBugs
SubmittingDrivers [PATCH] Doc/Submitting: corrections, additions 2005-06-28 21:20:37 -07:00
SubmittingPatches [PATCH] plug MAN-PAGES maintainer in Documentation/SubmittingPatches 2005-08-01 19:14:00 -07:00
VGA-softcursor.txt
acpi-hotkey.txt Merge to-linus-stable into to-akpm 2005-08-15 15:52:00 -04:00
atomic_ops.txt
basic_profiling.txt
binfmt_misc.txt
cachetlb.txt
cciss.txt
cli-sti-removal.txt
computone.txt
cpqarray.txt
cpusets.txt [PATCH] cpusets: formalize intermediate GFP_KERNEL containment 2005-09-07 16:57:40 -07:00
dcdbas.txt [PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support 2005-09-07 16:57:27 -07:00
debugging-modules.txt
dell_rbu.txt [PATCH] dell_rbu: new Dell BIOS update driver 2005-09-07 16:57:27 -07:00
devices.txt
digiepca.txt
dnotify.txt
dontdiff [PATCH] ARM: 2840/1: Add mach-types to Documentation/dontdiff 2005-08-03 19:49:18 +01:00
eisa.txt
exception.txt [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
feature-removal-schedule.txt [PATCH] PCI: remove CONFIG_PCI_NAMES 2005-09-08 14:57:23 -07:00
floppy.txt
ftape.txt
hayes-esp.txt
highuid.txt
hpet.txt
hw_random.txt
ibm-acpi.txt [ACPI] IBM ThinkPad ACPI Extras Driver v0.12 2005-08-25 17:37:51 -04:00
ide.txt
initrd.txt
io_ordering.txt
ioctl-number.txt
iostats.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt [PATCH] Add rdinit parameter to pick early userspace init 2005-09-07 16:57:28 -07:00
keys.txt
kobject.txt
kprobes.txt [PATCH] Add Documentation/kprobes.txt 2005-08-04 13:00:55 -07:00
kref.txt
laptop-mode.txt
ldm.txt
locks.txt
logo.gif
logo.txt
magic-number.txt
mandatory.txt
mca.txt
md.txt
memory.txt
mono.txt
moxa-smartio
mtrr.txt
nbd.txt
nfsroot.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
paride.txt
parport-lowlevel.txt
parport.txt
pci.txt [PATCH] PCI: update documentation 2005-08-16 21:06:25 -07:00
pm.txt
pnp.txt
preempt-locking.txt
prio_tree.txt
ramdisk.txt
riscom8.txt
rocket.txt
rpc-cache.txt
rtc.txt
sched-coding.txt
sched-design.txt
sched-domains.txt
sched-stats.txt
seclvl.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
smart-config.txt
smp.txt
sonypi.txt [PATCH] sonypi SPIC initialisation fix 2005-09-07 16:57:24 -07:00
sparse.txt
specialix.txt
spinlocks.txt
stable_api_nonsense.txt [PATCH] stable_api_nonsense.txt fixes 2005-07-29 13:12:49 -07:00
stable_kernel_rules.txt [PATCH] Add the rules about the -stable kernel releases to the Documentation directory 2005-07-29 13:12:49 -07:00
stallion.txt
svga.txt
sx.txt
sysrq.txt
time_interpolators.txt
tipar.txt
tty.txt
unicode.txt
voyager.txt
xterm-linux.xpm
zorro.txt

README.cycladesZ

The Cyclades-Z must have firmware loaded onto the card before it will
operate.  This operation should be performed during system startup,

The firmware, loader program and the latest device driver code are
available from Cyclades at
    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/