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=92s 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 =20 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 =20 There is already support for 9P in Linux, Qemu and few other places as it is pretty simple to add. UCB's many core=20 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>