From: "Fred ." <eldmannen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: /net
Date: Thu, 13 Nov 2008 02:25:33 +0100 [thread overview]
Message-ID: <f188924b0811121725o2e99574as3362c9a7b9348b08@mail.gmail.com> (raw)
Plan 9 has a /net directory.
/net is the API for all TCP/IP, and it can be used even with scripts
or shell tools, writing data to control files to write and read
connections. Relevant sub-directories like /net/tcp and /net/udp are
used to interface to prospective protocols. You can implement a NAT by
mounting a /net from a perimeter machine with a public IP, while
connecting to it from an internal network of private IP addresses,
using the Plan 9 protocol 9P in the internal network. Or you can
implement a VPN by mounting a /net directory from a remote gateway,
using secured 9P over the public Internet.
Here would be an example of using union (a stack) directories in /net:
just like inheritance in OOP, you can take one (possibly remote)
/special directory and bind another local special directory on top of
that, adding some new control files and hiding others. The union
directory now is like a child object instance of the original parent.
The functionality of the original can be partially modified. Consider
the /net file system. If you modify or hide its /net/udp sub-directory
you may control or extend the UDP interface with local filter
processes, still leaving the original /net/tcp running intact, perhaps
in a remote machine. Note that name space is per process: if you give
an untrusted application a limited, modified /net union directory, you
restrict its access to the net.
All this makes it easy to combine "objects" or file systems written in
different languages on different systems, while using standard naming,
access control and security of the file system, largely transparently
to the programmer.
I saw that Linux implemented many things from Plan 9 such as /proc,
union mounts, etc. Will Linux also implement /net ?
--
To unsubscribe from this list: send the line "unsubscribe linux-api" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2008-11-13 1:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-13 1:25 Fred . [this message]
[not found] ` <f188924b0811121725o2e99574as3362c9a7b9348b08-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-11-13 2:24 ` /net Stephen Hemminger
2008-11-14 17:47 ` /net Paweł Sikora
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f188924b0811121725o2e99574as3362c9a7b9348b08@mail.gmail.com \
--to=eldmannen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).