Professional Documents
Culture Documents
Distributed Programming With Inferno: Avs997 Techfamily
Distributed Programming With Inferno: Avs997 Techfamily
Inferno
Inferno
The Inferno OS
Example: /dev/draw
Inferno
telfs: interface to telephony device Mfs: message store file system asr: interface to speech recognition
Simple concept
familiar access methods: open, read, write, etc.
The Inferno Namespace is a hierarchical collection of files (I.e. resources). Every process accesses its resources via its own namespace
can inherit from parent share with other processes
10
Attaches local resources to the namespace Moves a resource within the namespace Can hide resources by binding over Binding a directory can result in a Union Directory
11
Union Directories
Inferno
A directory whose contents are a combination of the source and destination Directories can be stacked where the contents of one hide the contents of others. When binding you have the option of adding before or after the current contents
12
Union Directories
Inferno
/
tmp
A
F1 A1 A2
...
Y
F1 F2 F3
Z
F2 A1 B1
...
...
...
...
13
Union Directories
Inferno
/
A
F1 A1 A2
Z
F2 A1 B1
... ...
A
F1 A1 F2 A2 F3
14
Attaches a remote file system to the namespace Equivalent to a remote attach to obtain the remote file systems root followed by a BIND operation Mount initiates a Styx connection over an established network connection Net connection can be authenticated
15
[optional] Mutually authenticate the connection and establish session keys for encryption of all communication
Establish a Styx session: this obtains the root of the remote file system
Node1
Node2
16
Present the current namespace to remote clients Listens on a network connection for a Styx session request Accepts the mount by providing access to the root of the namespace Continually responds to client file requests via the Styx protocol
17
Exporting a Namespace
Inferno
18
Mini-Summary
Inferno
Represent all local resources as file systems Namespace provides a single, dynamically configured, hierarchical view of all resources (I.e. file systems) Remote resources attached to the namespace
19
Writing Applications
Inferno
Applications access resources by accessing files within the namespace Use familiar file access functions Access is independent of how the files got in the namespace -- local,remote, who cares!
20
Inferno drivers: C modules linked with the kernel Limbo programs using the file2chan() system call
makes use of srv device (I.e. file system)
Application Advantages
Inferno
Applications can assume location of resources: open(/x/y,) Resources can be configured prior to running the applications -- (I.e. an administrative chore) No explicit networking code required Allows for network independent distributed computing
22
A simple file access protocol Message passing: transmit-reply (a Styx Transaction) Synchronous 13 message pairs + 1 error reply Assumes a reliable transport Allows overlapped transactions Mostly fixed length messages
23
type
tag
fid
Contents
24
Styx Transactions
Inferno
25
Summary
Inferno
Everything is a file + A method to organize files + A remote file access protocol = A Distributed Programming Model
26
Telephony
Call setup Device control
27
Questions
Inferno
???
28