inferno n.
Skip this Video
Loading SlideShow in 5 Seconds..
Inferno PowerPoint Presentation


217 Vues Download Presentation
Télécharger la présentation


- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Inferno Distributed Programming With Inferno®Larry RauMember of Technical Staff Inferno Network Software Solutions Lucent Technologies,

  2. The Inferno OS • Lightweight OS for networked devices • portable -- StrongARM, PowerPC, x86, MIPS, SPARC. • Integrated DIS™ VM -- supports portable machine independent code modules. • Provides “distributed computing” capability through Namespace and Styx™ Technologies • Authentication and Encryption between nodes.

  3. Distributed Computing Capabilities • The Inferno OS is built around a unique method of distributed computing • All resources represented as files • A dynamically adjustable namespace • The Styx™ file access protocol

  4. Inferno File Systems • Inferno views virtually everything as a file system • network interface: /dev/tcp, /dev/udp,... • process information: /prog • window system: /dev/draw • information: /dev/user, /dev/time, /dev/sysname, /dev/random,….

  5. Example: TCP Interface Access a TCP/IP network by manipulating the following files: puck$ ls /net/tcp/0 /net/tcp/0/ctl /net/tcp/0/data /net/tcp/0/listen /net/tcp/0/local /net/tcp/0/remote /net/tcp/0/status

  6. Example: /dev/draw Access to the Inferno windowing system is via another file system: puck$ ls /dev/draw/2 /dev/draw/2/ctl /dev/draw/2/data /dev/draw/2/refresh

  7. Other existing file systems • telfs: interface to telephony device • Mfs: message store file system • asr: interface to speech recognition

  8. Why file systems? • Simple concept • familiar access methods: open, read, write, etc. • language neutral access • Easy to distribute

  9. The Inferno Namespace • 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 • Local and remote resources are bound into the namespace.

  10. Primary Namespace Operations • BIND • MOUNT • EXPORT

  11. The BIND Namespace Operation • 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

  12. Union Directories • 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

  13. tmp / Y A Z F1 A1 A2 ... F1 F2 F3 F2 A1 B1 ... ... Union Directories ... ...

  14. Z F2 A1 B1 A A Y / A ... ... F1 A1 A2 ... F1 A1 A2 F1 F2 F3 Union Directories bind -b /tmp/Y /A bind -a /tmp/Z /A

  15. The MOUNT Namespace Operation • Attaches a remote file system to the namespace • Equivalent to a remote attach to obtain the remote file system’s root followed by a BIND operation • Mount initiates a Styx connection over an established network connection • Net connection can be authenticated

  16. Node1 Node2 Mounting A Remote Node • Establish a network connection: TCP, Serial, ATM, etc. • [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

  17. The EXPORT Namespace Operation • 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

  18. Node1 Node2 Exporting a Namespace • Obtain a network connection: TCP Listen, etc • [optional] Perform mutual authentication and encryption key setup • Wait for Styx session request

  19. Mini-Summary • 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

  20. Writing Applications • 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!

  21. Writing File Systems • Inferno drivers: C modules linked with the kernel • Limbo programs using the file2chan() system call • makes use of srv device (I.e. file system) • Limbo written Synthetic File Systems • InfernoSpaces • Java class library • C library

  22. Application Advantages • 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

  23. The Styx™ Protocol • 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

  24. Styx Message Structure Indicates message type: initial transmission (T-message) or reply message (R-message) Unique identifier used to track commands Unsigned integer that represents “current” file Message specific data type tag fid Contents


  26. Summary Everything is a file + A method to organize files + A remote file access protocol = A Distributed Programming Model

  27. How is it being used • Telephony • Call setup • Device control • Text to Speech • Network Gateways

  28. Questions ???