Download area
	The larger thesis
	
  | 
The INternet FileSystem maps the DNS or other network namespaces
	into the host filesystem,
such that
	one may conceptually 
	cd /inet/edu/columbia/www/~vg96/papers,
for instance,
	and expect to be able list the contents with
		ls
	or
	browse them with, say
		browse ..
More usefully, perhaps,
	one could use this unification of the network and filesystem namespaces
to cross-compile, remote-deploy "applets" by simply copying them
	and setting appropriate permissions etc.
 
The scheme sounds a bit like
	Plan9,
but notice that
	even Plan9 stopped short of unifying
		the network namespace.
The reason,
	as far as I can figure out,
is that
	there seems to be no way to think of the DNS
		as the primary global addressing mechanism
	on which
		other forms of address,
			including IP,
		could depend.
The problem is three-fold:
 
- 
	The existence of a manually coordinated IP space
		was assumed in the design of the DNS,
	such that
		it prevents the DNS from being operated
			without IP (or an equivalent addressing mechanism).
	This is better explained in my thesis.
 - 
	If a DNS-like namespace can be had
		as a primary addressing mechanism,
			without incurring penalties elsewhere,
	then
		the need for a globally coordinated IP gets questioned,
	and
		that would be too fundamental an issue.
 - 
	It is hard to think so fundamentally differently
		without a model or a prototype to work with.
  
INFS is an experimental step to address the third aspect.
Even with INFS itself,
	there's clearly a Pandora's box of
		user interface and network application redesign
			opportunities waiting to be opened,
which will take much work
	and need tons of discussion.
I am more immediately concerned with
 
- 
	reduction of overall code footprint and context switches,
 - 
	general IPv6/v4 transparency for applications,
 - 
	and weaning applications and uses from IP addresses,
	so that we may introduce self-management of IP addresses
		on network, provider and Internet scales.
		
  
To get the basic idea across and to set the ball rolling,
here's 
	version 1.0,
in which
	you still need to say
		cat <pathname>/tcp:22,
	for example,
		to see the SSH header,
or
		echo -e "GET / HTTP/1.0\n\n" | rw ./tcp:80
	to dump index.html.
  |