0% found this document useful (0 votes)
44 views

Plan 9 From Bell-Labs: Andrey Mirtchovski Tony Kusalik

This document summarizes a student project to set up and experiment with the Plan 9 operating system from Bell Labs. The project goals were to implement bioinformatics algorithms in a distributed manner on Plan 9 and measure its performance compared to Linux and BSD. Early attempts faced challenges with old hardware but later succeeded using newer machines. Algorithms like BLAST and FASTA ported easily and showed performance comparable to Linux for similar tasks. While not intended for commercial use, Plan 9 provided an educational environment for exploring operating system design.

Uploaded by

Karthik Raju
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views

Plan 9 From Bell-Labs: Andrey Mirtchovski Tony Kusalik

This document summarizes a student project to set up and experiment with the Plan 9 operating system from Bell Labs. The project goals were to implement bioinformatics algorithms in a distributed manner on Plan 9 and measure its performance compared to Linux and BSD. Early attempts faced challenges with old hardware but later succeeded using newer machines. Algorithms like BLAST and FASTA ported easily and showed performance comparable to Linux for similar tasks. While not intended for commercial use, Plan 9 provided an educational environment for exploring operating system design.

Uploaded by

Karthik Raju
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 37

Plan 9 from Bell-Labs

Computer Science 400 project by:


Andrey Mirtchovski
Supervised by:
Tony Kusalik

Plan9 from Bell-Labs


Introduction

 An operating system designed by


the people who created UNIX
 Designed with distributed
computing in mind
 Main goals concern performance
and usability in said environment

Plan9 from Bell-Labs


Topics of Discussion
 What is plan9?
 Why plan9?
 Project goals
 Project tentative setup
 Early implementation stages (or
“Having old hardware == trouble”)
 Late implementation stages (or
“Having little time == trouble”)

Plan9 from Bell-Labs


Topics…
 Setup
 Mashines in initial project state
 Machines in adult project state
 Results
 Usability
 Computational fitness
 Conclusions

Plan9 from Bell-Labs


What is Plan9?
 OS
 Created by programmers for
programmers
 Has all the requirements for a full-
blown commercial OS minus
software and price
 Distributed
 Research-Oriented

Plan9 from Bell-Labs


 Full set of development tools
including
 Compiler for several platforms
 Text editors (more on that later)
 Libraries
 GUI
 Full network connectivity
 Open Source

Plan9 from Bell-Labs


Plan9 from Bell-Labs
Typical Plan9 Setup
 CPU
 One or many
 Terminals
 Typically one per user
 Minimal hardware requirements
 File Servers
 Could be incorporated with cpu servers
 Auth Servers
 Security

Plan9 from Bell-Labs


Plan9 from Bell-Labs
Why Plan9?
 Interest in Operating Systems
Design and Implementation
 Creators’ reputation (hence:)
 Quality of code
 Minimalist design
 Code understandability

Plan9 from Bell-Labs


Project goals
 Setup and use a working plan9 research
environment
 Implement and measure fitness of
several Bioinformatics algorithms when
implemented in a distributed manner
 Measure performance and compare to
other (more robust) operating systems
(BSD or Linux)
 Compare ease of use and application
development with other OSs

Plan9 from Bell-Labs


Bioinformatics
 Purpose of bioinformatics
algorithms
 Algorithm used
 Initially decided on BLAST (huge
success in PBI’s research)
 At a later stage moved to FASTA

 Optional other algorithms never

implemented (lack of time)

Plan9 from Bell-Labs


Early stage setup
 The horrors of using old,
unsupported hardware
 Lost tremendous amount of time
within kernel space trying to create
some sort of useful environment so
the project could start
 From of a month (at most) allotted
for initial setup, scope crept to a
whole semester
Plan9 from Bell-Labs
Early stage setup…
 Learning from experience (benefits from
using old hardware):
 Hands got very dirty very early in the
research phase
 Appreciation for minimalist design and
lack of code bloat
 Appreciation for overall OS and hardware
design (serial consoles and cross
compilers)
 Increased understanding of operating
system internals and behaviour

Plan9 from Bell-Labs


Early network organization
 3 CPU servers (udb[123]). Alpha
UDB machines
 Running NetBSD
 Udb2 attempts to boot Plan9
kernel off udb1
 Hard to use…
 Unsuccessful…

Plan9 from Bell-Labs


Late stage setup
 New machines brought thanks to
Supervisor and Dave Bocking
 Luck with hardware (all supported)
 Initial installation and setup of
Plan9 took less than 5 hours, and
installed over the network
 Lack of proper hardware
substituted for lack of time

Plan9 from Bell-Labs


Current network
organization
 3 CPU servers (udb[123])
 CPU servers act as file servers (locally)
 udb1 acts as an authentication server
 All machines can access vital Plan9
services
 All machines allow terminal access from
on-campus machines (using challenge-
response based authentication)
 No root!

Plan9 from Bell-Labs


Results
 Usability
 Extremely programmer-friendly
environment
 Editor created ‘from programmers for
programmers’
 Debugging is a breeze
 Libraries and API exclude code bloat
(unless one is careless)
 IRC client – 200 lines of code
 Graphics – 70 lines of code (bouncing
balls)

Plan9 from Bell-Labs


Results…
 The one true power of shell scripting:
cpu% cat /bin/uptime
#!/bin/rcclock=`{cat /dev/time}
xx=`{{echo $clock(3) / $clock(4);
echo '_/86400'}|hoc|sed 's/^\./0./g;s/\..*//g'}
sec=$xx(1)
days=$xx(2)
cat /dev/sysname
echo -n ' up '$days' days, date $sec |awk
'{print $4}'

Plan9 from Bell-Labs


Plan9 from Bell-Labs
Results…
 Porting
 APE/PSH
 Some programs compile flawlessly

 FASTA

 POVray

 Bad programming practices lead


to unportable/unmaintainable code

Plan9 from Bell-Labs


Results…
 Computational fitness
 Comparable executables speed
with linux running on same
hardware
 Some compiler research has lead
to significant improvement of
execution speed
 Have in mind – operating system is
not tuned for performance (as
Linux/BSD are for example)

Plan9 from Bell-Labs


Results.. POVray
 Accidentally ported to Plan9
 Used to measure raw CPU performance
and compare with Linux
 Speed results:
(create a complex 3d ray-tracing image)
 Linux:
 Total Time: 368 seconds
 Plan9:
 Total Time: 415 seconds

Plan9 from Bell-Labs


Linux Plan9

Image Sizes:
-rw------- 1 aam396 dip 192074 Feb 27 13:46 linux.ppm
-rw------- 1 aam396 dip 192074 Feb 27 13:47 p9.ppm

Plan9 from Bell-Labs


Possible uses of PovRay:
 Rendering farm (tested)
 Rendering single image on several
machines without deploying any
multiprocessor hardware (even though
supported
 Some testing results (180 image
animation):
 povray -- 180 images, single machine:
9311.36u 26.78s 9465.01r
 povray -- 180 images, 3 machines:
3403.79u 10.42s 3251.90r

Plan9 from Bell-Labs


Drawbacks

 Significantly higher network load


then expected
 Very high load imposed on file
server

Plan9 from Bell-Labs


Plan9 from Bell-Labs
Plan9 from Bell-Labs
Bioinformatics
 Algorithm: FASTA, SSEARCH (version
3.3)
 Easily transformable into a distributed
application (break database into smaller
files and search separately – thanks to
support from S. O’Hearn of PBI)
 Several possible distributed scenarios
depending on where the database files are
located – prompted by real problems
encountered at PBI
 Searched the entire ecoli bacteria genome
– bonus points added for fun
Plan9 from Bell-Labs
Possible scenarios:
 Single database on remote
fileserver
 Several small databases on

remote server
(both viable for FASTA and
SSEARCH)
 Locally stored database files

Plan9 from Bell-Labs


Plan9 from Bell-Labs
Some results:
 Algorithm: FASTA (version 3.3)
 Easily transformable into a distributed
application (break database into smaller
files and search separately – thanks to
support from S. O’Hearn of PBI)
 Several possible distributed scenarios
depending on where the database files
are located – prompted by real problems
encountered at PBI
 Searched the entire ecoli bacteria
genome – bonus points added for fun!

Plan9 from Bell-Labs


Results (cont):
 Small database, networked:
 241.68u 0.24s 256.35r run fasta3/fasta33
network
 Small databases, local:
 245.01u 0.31s 248.65r run fasta3/fasta33
local
Difference comes from less context
switching with local database and
corresponds to 3-5 seconds delay in
fetching a 4MB file over a 100baseT
connection.

Plan9 from Bell-Labs


Results (cont):
 Large database, local:
 Scan time: 53.366 Display time:
473.390

Note: local database run time is not


wall-clock execution as above, but
a simple execution of the program.
This does not increase significantly
the result margin.

Plan9 from Bell-Labs


Conclusion
 Bell-Labs research group have presented
us with a one-of-a-kind research platform,
which definitely has the possibility of
attracting students and professors’ attention
 Maybe not a commercially viable product,
but a very good learning tool
 Need to emphasize on the lower learning
curve with regards to deep internals. Code
very easy to read
 Ability to share ideas and learn from some
of the groundbreaking personalities in this
field is an enormous ego boost

Plan9 from Bell-Labs


Would not have been be
possible without:

Tony Kusalik (CS)


Stephen O’Hearn (PBI)
Dave Bocking (CS)
Cary Bernath and Greg Oster (CS)

Plan9 from Bell-Labs


Questions?

Plan9 from Bell-Labs

You might also like