Unblocking The Main Thread Solving ANRs and Frozen Frames
Inferno operating system
1. INFERNO Operating systemINFERNO Operating system
Presented
by
Sadhana Singh
Shri Ram Murti Smarak College of Engg. & Tech.,
Bareilly
2. Inferno Operating SystemsInferno Operating Systems
Developed in Lucent technologies by
Dennis Ritchie.
Replaces a plethora of protocols in a
network by a simple unifying file
service protocol (styx).
Applications compute their own
name spaces and consider all
resources as file systems.
Used in Embedded applns and small
networked devices. Eg :CATv, PDA
etc. 2Inferno OS
3. Interesting features of InfernoInteresting features of Inferno
Styx open communication protocol.
Concurrent Modular language
LIMBO.
Virtual machine and byte code
interp-reter with JIT compilers.
Portability and virtualization
techniques.
Automatic garbage collection.
3Inferno OS
4. Inferno-StrengthsInferno-Strengths
Portability across processors
Runs on Intel,SPARC, AMD, MIPS etc
Portability across environments
Can run as a standalone as well as a
user appln in Windows NT/95, Unix,
Linux, HP/UX, AIX* etc.
Distributed Design
Identical environment at client and
server.
4Inferno OS
5. Inferno- Strengths(cont)Inferno- Strengths(cont)
Minimal hardware requirements
Can run useful applns as a stand alone
with as little as 1 MB of memory.
Portable Applns
Inferno applns are written in type-safe
LIMBO whose binary representation is
identical for all platforms.
Dynamic adaptability
Depending on the H/W or resource
availability,applns may use diff modules
to perform a specific function. 5Inferno OS
6. Inferno InterfacesInferno Interfaces
The role of Inferno system is to create se-
veral standard interfaces for its applns.
Applns use various resources which
include a virtual machine that runs
applns programs together with library
modules like string manip etc.
Applns exist in an external env
containing resources such as data
files and objects. Devices present
themselves to the appln as files.
6Inferno OS
7. External env of Inferno applnsExternal env of Inferno applns
The purpose of most Inferno applns
is to present informn/media to user.
To the applns the user’s devices shows up
as resources for it.
The way the resources are designed to
show up to the applns are
1.Resources - Named & accessed like files.
2.Disjoint resource hierarchies
provided by different services show
up in a single hierarchical name space.
3.Regardless of whether resources are
local/global, a communication protocol
called styx is used.
7Inferno OS
8. External env of Inferno applnsExternal env of Inferno applns
The glue that connects diff parts of
the resource name space together is
the styx protocol.
Inferno kernel implements a mount
driver which transforms file
operations to RPC’s for transport
over the network.
On the other side of the conxn, a
server unwraps the styx messages
and implements them using
resources local to it. 8Inferno OS
9. Internal env of Inferno applnsInternal env of Inferno applns
Inferno applns written in LIMBO
which supports most of the standard
data types and also addnl ones like
tuples, lists, strings etc.
A communication mechanism called
channel is present which is used to
connect diff LIMBO tasks.
Multi tasking supported by the
LIMBO language.
9Inferno OS
10. Internal env of Inferno applnsInternal env of Inferno applns
LIMBO programs are built of
modules, which are self contained
units having a well defined interface
containing functions,abstract data
types and constants.
Modules are accessed dynamically
by executing a load statement
naming the desired module. Then a
handle for the module is returned
and the module is accessed.
10Inferno OS
11. Internal env of Inferno applnsInternal env of Inferno applns
Limbo is fully type checked at
compile and run time.
No memory protection H/W is there.
All LIMBO data and program objects
are subject to a garbage collector
built deeply into LIMBO run time
system.
All System data objects are kept
track of and freed as soon as they
become idle.
11Inferno OS
12. Internal env of Inferno applnsInternal env of Inferno applns
Limbo programs are complied into
byte codes representing instructions
for a virtual machine called DIS.
The resulting code executes at a
speed approaching that of complied
C.
Underlying DIS is the inferno kernel
which contains the interpretor and
an on the fly complier.
12Inferno OS
13. Environment of the Inferno systemEnvironment of the Inferno system
Inferno creates a standard environment for
applns. Identical applns programs can run
under any instance of this environment-
even in distributed fashion and see the
same resources.
Several versions of Inferno kernel,
DIS/LIMBO interpreter and device driver
set can be used depending on the
environment within which inferno is
implemented.
13Inferno OS
14. Environment of the Inferno systemEnvironment of the Inferno system
When running as the native operating
system kernel includes all the low level
glue like interrupt handlers, device drivers
etc.
But when running in a hosted system like
Windows NT, Inferno runs as an ordinary
process.
Here instead of mapping its device control
functionality to real hardware, it adapts to
the resources provided by the operating
system under which it runs.
14Inferno OS
15. Security in InfernoSecurity in Inferno
Inferno provides security of communication, resource
control, and system integrity. Each external
communication channel may be transmitted in the
clear, accompanied by message digests to prevent
corruption, or encrypted to prevent corruption and
interception. Once communication is set up, the
encryption is transparent to the application. Key
exchange is provided through standard public-key
mechanisms; after key exchange, message digesting
and line encryption likewise use standard symmetric
mechanisms. Inferno is secure against erroneous or
malicious applications, and encourages safe
collaboration between mutually suspicious service
providers and clients.
15Inferno OS
16. Security mechanismsSecurity mechanisms
Authentication and digital signatures are
performed using public key cryptography.
Public keys are certified by Inferno-
basedor other certifying authorities that
sign the public keys with their own private
key.
Inferno uses encryption for:
mutual authentication of communicating
parties;
authentication of messages between these
parties; and
encryption of messages between these
parties.
16Inferno OS
17. Line SecurityLine Security
A network conversation can be
secured against modification alone
or against both modification and
snooping. To secure against
modification, Inferno can append a
secure MD5 or SHA hash (called a
digest),
hash(secret, message, messageid)
to each message.
17Inferno OS
18. Random NumbersRandom Numbers
The strength of cryptographic algorithms
depends in part on strength of the random
numbers used for choosing keys, Diffie-
Hellmanparameters, initialization vectors, etc.
Inferno achieves this in two steps: a slow (100 to
200 bit per second) random bit stream comes
from sampling the low order bits of a free running
counter whenever a clock ticks. The clock must
be unsynchronized, or at least poorly
synchronized, with the counter. This generator is
then used to alter the state of a faster pseudo-
randomnumber generator. Both the slow and fast
generators were tested on a number of
architectures using self correlation, random walk,
and repeatability tests. 18Inferno OS