Download presentation
Presentation is loading. Please wait.
Published byDominic Malone Modified over 9 years ago
1
Operating Systems of The Future ( and Plan 9 ) Shilad Sen – April 26 th, 2007
2
2 Today’s Topics Design our own world-dominating OS. Discuss Plan 9, an OS that many people thought should have dominated the world.
3
3 Design a Better OS Hypothetical Question: –Google wants to enter the OS market. –Provide Google with three examples of something the three major OS’s get “wrong.” What you would you do differently?
4
4 Some Areas to Consider Networking / Sockets Threading File I/O Security Scheduling Windowing System / User Interface Examples: 1. Eliminate all non-unicode char *’s. 2. Add an “e” “creat()” system call (Ken Thomson) 3. Copy / paste: an open problem (consolidate to a centralized copy/paste server).
5
5 How Should We Build Our OS?
6
6 Plan 9 from Bell Labs Designed in mid 80’s by many of the creators of UNIX (Rob Pike, Ken Thompson, Brian Kernighan, Dennis Ritchie) Major Architectural Concepts: –Distributed Operating System –All resources are represented as files –Application resources are organized via customizable namespaces –Standardized communication protocol (9P)
7
7 Everything’s a File! In many early operating systems, different types of block devices had different API’s. One major innovation in UNIX was the single file I/O API for multiple devices. Plan 9 treats virtually all devices and services as file-based services: –telnet –ftp –nfs
8
8 Example: Opening a Socket % cat /net/tcp/clone/ctl 44 % cd /net/tcp/44 % echo connect 128.2.194.80!79 > ctl % echo ping > data % cat data pong
9
9 Namespaces Any file resource can be “mounted” in a customizable directory hierarchy, or namespace: Several directories can be mounted at the same point – replaces the need for a $PATH bind /home/shilad/bin /bin bind /i386/bin /bin Copying a local file foo to a remote floppy: import lab.pc /a: /n/dos cp foo /n/dos/ Piping the output of foo on host1 to bar on host2 cpu -h host1 foo | cpu -h hos2 bar
10
10 Communication Protocol File-based API supports 17 standard I/O file operations “Device drivers” (e.g. a telnet server) need only implement the 17 operations. A mounting service transparently transmits local file commands to remote systems using the 9P protocol.
11
11 Process Model The rfork system call duplicates a process Individual resources can be shared, copied, or created anew: –Name space –Environment –File descriptor table –Memory segments Both fork() and pthread_create() are special cases of rfork()
12
12 Synchronization rendezvous system call: Thread 1Thread 2 rendevous("foo",value1)rendezvous("foo",value2) both calls block until they receive the “foo” tag value2 value1
13
13 Security No superuser An authentication server maintains a database of authentication keys for all users Both client and server exchange encryption challenges and responses so each side is convinced of the others’ identity. All 9P network communications are secure
14
14 Plan 9’s Failure In 1998, Lucent pulled developers off of Plan 9 to focus on related Inferno OS. Neither Plan 9 nor Inferno were commercially successful. Most experts agree that Plan 9 was technically superior to UNIX but… Most experts agree that Plan 9 was not superior enough to convert users of UNIX
15
15 Plan 9’s Success Plan 9 open-sourced in 2000 Dedicated developer and user base remain today Google Summer of Code Project Plan 9 influenced Linux / BSD: –/proc filesystem –clone() interface –As of 2.6.14, 9P-based file device drivers in stable Linux Kernel
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.