1 / 28

Inferno

Inferno. Distributed Programming With Inferno ® Larry Rau Member of Technical Staff Inferno Network Software Solutions Lucent Technologies, Inc larryr@lucent.com http://www.lucent.com/inferno. The Inferno OS. Lightweight OS for networked devices

rochelle
Download Presentation

Inferno

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inferno Distributed Programming With Inferno®Larry RauMember of Technical Staff Inferno Network Software Solutions Lucent Technologies, Inclarryr@lucent.com http://www.lucent.com/inferno

  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

  25. NOP FLUSH CLONE WALK OPEN CREATE READ WRITE CLUNK REMOVE STAT WSTAT ATTACH Styx Transactions

  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 ???

More Related