Date: Sun, 23 Feb 2014 12:02:39 -0800 From: Bakul Shah <bakul@bitblocks.com> To: Jordan Hubbard <jordan.hubbard@gmail.com> Cc: freebsd-filesystems@freebsd.org, freebsd-hackers@freebsd.org, Willem Jan Withagen <wjw@digiware.nl>, Perry Hutchison <perryh@pluto.rain.com> Subject: Re: Thoughts on Multi-Symlink Concept Message-ID: <4B5A7B51-74E2-4F8E-827D-251F0DBC9326@bitblocks.com> In-Reply-To: <E4045817-9A79-42CD-B69F-7D3C8A2D861B@gmail.com> References: <CAO2cuEMC==HstC4VkkiFpHyo6LA_xyCjYKvCEECXneVLNnZpZg@mail.gmail.com> <A31B3F88-861F-459B-AD67-F146D5514594@mail.turbofuzz.com> <530049a1.XXZ1PjZFgRyCu9X6%perryh@pluto.rain.com> <53092D83.6050603@digiware.nl> <E4045817-9A79-42CD-B69F-7D3C8A2D861B@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 22, 2014, at 7:13 PM, Jordan Hubbard <jordan.hubbard@gmail.com> wrote: > Indeed. I often tell interns who are looking for interesting project ideas to simply look back into our own past. Almost all the really interesting and cool research activities where operating systems are concerned seems to have happened between the years of 1970-1990. Sprite, Plan 9, Mach (hey, file space name servers anyone?), Domain OS, all kinds of neat ideas that sadly died or were forgotten in the name of consolidation, performance and expedience. Indeed, the performance of some of those concepts was actually rather woeful when 4MB of memory and 1MIP were all you one to work with. Maybe now that we have more hardware horsepower than we almost know what to do with, it’s time for some of those ideas to enjoy a renaissance? Sounds like a good EuroBSDCon or BSDCan talk. :-) Plan9 is alive and well! Well, at least used by a small but a diverse group of people! And with the advent of the plan9 RaspberryPi port I see new people playing with it! With Plan9 style per process name space, 9P protocol (to easily construct a filesystem API for anything), mount() syscall to connect to a fileserver speaking 9p, and bind() syscall to overlay/underlay a filetree on another, you can achieve the equivalent of variant symlinks and much more! You can easily implement a 'multi-symlink' fs as well! On plan9 all device drivers also speak 9p so you can even mount a remote network stack on your local machine (no need for NAT!). User programs such as rio (a window manager) and acme (an editor) also provide FS access to their facilities which makes it easy to write scripts to interact with them. Some examples: bind $ARCH/bin /bin # now files in $ARCH/bin appear in /bin mount /srv/dump /n/dump dump # make the dump fs available at /n/dump bind /n/dump/2013/11/12/arm/lib/libc.a /arm/lib/libc.a 5c -o foo foo.c # now foo is linked with libc.a of 12-Nov-2013 9fs sources # /n/sources points to sources/ on sources.cs.bell-labs.com bind /n/sources/plan9/sys/src /sys/src # overlay on local /sys/src There is already support for 9P in Linux, Qemu and few other places as it is pretty simple to add. UCB's many core research OS Akaros is using 9p and the network stack from plan9. If anyone is inspired to add 9p & friends support to FreeBSD, I encourage you to play with plan9 on the RaspberryPi as it is pretty easy to use and lots of fun. [Kernel compile takes a minute on the RasPi. The equivalent of `make buildworld buildkernel' about 4 minutes. Of course, the system is pretty minimal]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B5A7B51-74E2-4F8E-827D-251F0DBC9326>
