singularity: rethinking,the,so2ware,stack · singularity: rethinking,the,so2ware,stack...
TRANSCRIPT
![Page 1: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/1.jpg)
Singularity: Rethinking the So2ware Stack
James Larus Microso. Research University of Pennsylvania November 9, 2006
![Page 2: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/2.jpg)
Singularity
MSR So2ware Verifica8on and Tes8ng Research
• SLAM – shipping in Windows DDK
• ESP – extensively used in Windows (CSE)
• Fugue – shipping in FxCop
• SAL (Standard AnnotaQon Language) – most MS .h files annotated
– shipping in VS2005
• SpecExplorer – widely used within MS
![Page 3: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/3.jpg)
Singularity
Frustra8on, Despite Progress
• “First we bug the so.ware, then we debug it” – exisQng code bases wriXen without many tools
• SpecificaQon unavailable
• Program analysis difficult – unsafe language – tenuous assumpQons (e.g., code completely known and immutable)
• Struggle to incorporate tools in process
• VerificaQon and tesQng stuck at low level – language features and programming interfaces
![Page 4: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/4.jpg)
Singularity
“Modern” OS & Applica8ons
• Design parameters – scarce resources – benign environment – knowledgeable and trained users
1970 1980 1990
Multics Unix
VMS Windows (NT) Linux
![Page 5: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/5.jpg)
Singularity
The World Changed
• Hardware and so.ware industries were wildly successful – machines are fast, memory is cheap – computers are ubiquitous
• Malicious environment – ubiquitous worms, viruses, scams, aXacks, …
• Few users understand computers or so.ware
![Page 6: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/6.jpg)
Singularity
Singularity Project
• Large Microso. Research project with goal of more robust and reliable so.ware – Galen Hunt, Jim Larus, and many others
• Started with firm architectural principles – so.ware will fail, system should not – system should be self-‐describing – verify as many system aspects as possible
• No single magic bullet – mutually reinforcing improvements to languages and compilers, systems, and tools
Safe Languages
(C#)
Verification Tools
Improved OS Architecture
![Page 7: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/7.jpg)
Singularity
Key Tenets
1. Use safe programming languages everywhere – safe ⇒ type safe and memory safe (C# or Java) – everywhere ⇒ applicaQons, extensions, OS services, device drivers, kernel
2. Improve system resilience in the face of so.ware errors – failure containment boundaries – explicit failure noQficaQon model
3. Facilitate modular verificaQon – make system “self-‐describing” so pieces can be examined in isolaQon – specify and check behavior at many levels of abstracQon – make automated analysis easier
![Page 8: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/8.jpg)
Deemphasized Performance
• Easy to measure, but less important than dependability
• “Good enough” performance was goal
– result had very good performance
Singularity
![Page 9: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/9.jpg)
Singularity
Singularity OS
• Safe micro-‐kernel – 95% wriXen in C#
• 17% of files contain unsafe C# • 5% of files contain x86 asm or C++
– services and device drivers in processes
• So.ware isolated processes (SIPs) – all user code is verifiably safe – some unsafe code in trusted runQme – processes and kernel sealed at start Qme
• CommunicaQon via channels – channel behavior is specified and checked – fast and efficient communicaQon
• Working research prototype – not Windows replacement
channels
kernel
runQme
kernel class library
processes
kernel API
HAL
page mgr scheduler chan mgr proc mgr i/o mgr
network driver
web server
TCP/IP stack
content extension
ext. class library
server class library
tcp class library
driver class library
runQme runQme runQme runQme
![Page 10: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/10.jpg)
Singularity
Process Model
• Process contains only safe code • No shared memory
– communicates via messages
• Messages flow over channels – well-‐defined & verified
• Lightweight threads for concurrency • Small binary interface to Kernel
– threads, memory, & channels
• Seal the process on execuQon – no dynamic code loading – no in-‐process plug-‐ins
• Runs in ring 0 in kernel memory!
Kernel
ABI
Software Isolated Process “SIP”
![Page 11: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/11.jpg)
Singularity
Challenge 1: Pervasive Safe Languages
• Modern, safe programming languages – prevent enQre classes of (serious) defects – easier to analyze
• Singularity is wriXen in extended C# – Spec# (C# + pre/post-‐condiQons and invariants) – Sing# adds features to increase control over allocaQon, iniQalizaQon, and memory layout
• Evolve language to support Singularity abstracQons – channel communicaQons
– factor libraries into composable pieces – compile-‐Qme reflecQon
• NaQve compiler and runQme – no bytecodes or MSIL – no JVM or CLR
![Page 12: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/12.jpg)
Singularity
Run8me System
• JVM & CLR not appropriate for building systems
• Rich runQme (“one size fits all”) – monolithic, general-‐purpose environment – large memory footprint (~4 MB/process for CLR) – many OS dependencies (CLR PAL requires >300 Win32 APIs)
• JIT compiler – increases runQme size and complexity – unpredictable performance
• Replicate OS funcQonality – security, threading, configuraQon, etc.
![Page 13: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/13.jpg)
Singularity Run8me
ApplicaQon
Bartok Compiler
Libraries Singularity RunQme (GC, etc.)
Singularity Process
x86 Executable
Singularity
• Small, fast execuQon environment
• Ahead-‐of-‐Qme, global opQmizing compiler (Bartok) – specializes runQme and libraries – eliminates unused language features and applicaQon or library code
• Factorable runQme and libraries
• Language runQme, garbage collector, and libraries selectable on per-‐process basis – reduce memory and computaQon overhead
– enforce design discipline and system policies per process
![Page 14: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/14.jpg)
Singularity
Challenge 2: Improve Resilience
• Cannot build so.ware without defects – verificaQon is a chimera (but we could sQll do a lot beXer)
• So.ware defects should not cause system failure
• A resilient system architecture should – isolate system components to prevent data corrupQon – provide clear failure noQficaQon – implement policy for restarQng failed component
• ExisQng system architectures lack isolaQon and resilience
![Page 15: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/15.jpg)
Open Process Architecture
Process
Singularity
• Ubiquitous architecture (Windows, Unix, Java, etc.) – DLLs, classes, plug-‐ins, device drivers, etc.
• Processes are not sealed – dynamic code loading and runQme code generaQon
– shared memory – system API allow process to alter another’s state
• Low dependability – 85% of Windows crashes caused by third party code in kernel
– interface between host and extension o.en poorly documented and understood
– maintenance nightmare
![Page 16: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/16.jpg)
Single Process Architecture
Singularity
• TradiQonal safe language architecture – Xerox PARC (Cedar, Smalltalk, etc.) and Lisp Machine model
– Java and .NET as well
• Code and data in single address space – language and memory safety isolates tangled data and code
– garbage collecQon reclaims resources
– dynamic code loading and runQme code generaQon
App
OS
![Page 17: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/17.jpg)
Singularity
Java Isolates and .NET AppDomains
RunQme
App
App App
• Java isolates and CLR AppDomains have complex, shared runQme – single point of failure
• Shared runQme must also saQsfy different applicaQons’ requirements
![Page 18: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/18.jpg)
Singularity
Sealed Processes
• Singularity processes are sealed – no dynamic code loading or run-‐Qme code generaQon
• all code present when process starts execuQon
– extensions execute in disQnct processes
• separate closed environments with well-‐defined interfaces
– no shared memory
• Fundamental unit of failure isolaQon
• Improved opQmizaQon, verificaQon, security
Extension Process
Kernel
Extension
![Page 19: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/19.jpg)
Singularity
Program Op8miza8on
• Closed world allows global opQmizaQon to eliminate unused code
• Reduces process code size by up to 75% • Fewer code paths ⇒ beXer opQmizaQon & error analysis
Program Code
Whole Code w/
Tree Shake % Reduction
Kernel 2.37 MB 1.29 MB 46%
IDE Disk Driver 1.85 MB 455 KB 75%
Web Server 2.73 MB 765 KB 72%
Content Extension 2.14 MB 502 KB 77%
![Page 20: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/20.jpg)
Isola8on Requires Lightweight Processes
• ExisQng processes rely on virtual memory and protecQon domains – VM prevents reference into other address spaces – protecQon prevents unprivileged code from access system resources
• Processes are expensive to create and schedule – high cost to cross protecQon domains (rings), handle TLB misses, and manipulate address spaces
– (talk in MSPC Workshop, 8:45 Sunday)
• Cost encourages monolithic architecture – expensive process creaQon and inter-‐process communicaQon – large, undifferenQated applicaQons – dynamically loaded extensions
Singularity
![Page 21: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/21.jpg)
Singularity
P2 P3
So2ware Isolated Processes (SIPs)
• ProtecQon and isolaQon enforced by language safety and kernel API design – process owns a set of pages – all of process’s objects reside on its pages (object space, not address space) – language safety ensures process can’t create or mutate reference to other pages
• Global invariants: – no process contains a pointer to another process’s object space – no pointers from exchange heap into process
P1
![Page 22: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/22.jpg)
Singularity
P2 P3
Interprocess Communica8ons
• Channels are strongly typed (value & behavior), bidirecQonal communicaQons ports – messages passing with extensive language support
• Messages live outside processes, in exchange heap – only a single reference to a message
• “Mailbox” semanQcs enforced by linear types – copying and pointer passing are semanQcally indisQnguishable
• Channel buffers pre-‐allocated according to contract
P1
exchange heap
![Page 23: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/23.jpg)
Singularity
Performance Micro Benchmarks
• Why? – staQc verificaQon replaces hardware protecQon – all SIPs run in ring 0 – good opQmizing compiler (not JIT)
Athlon64 3000+ (1.8GHz) nForce4 SLI
Cost (CPU Cycles) Singularity FreeBSD 5.3 Linux 2.6.11
(Red Hat FC4) Windows XP (SP2)
Minimum kernel API call
80 878 437 627
Message request/reply 1,041 13,300 5,800 6,340
Process create & start 388,000 1,030,000 719,000 5,380,000
![Page 24: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/24.jpg)
OS Controls Resources and Security
• OS owns, allocates, and reclaims system resources – convenQonal model
• On process terminaQon, OS reclaims memory pages and channels – not dependent on finalizaQon or garbage collecQon
• Clean failure noQficaQon – sent messages sQll available to other process
• Security policy on per-‐process – crux is control of channels
Singularity
![Page 25: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/25.jpg)
Singularity
Would You Trust Your System to a Type System?
• Process integrity depends on type and memory safety – currently trust compiler and runQme
• TAL can remove compiler from trusted compuQng base
• We are working on verifying GC and runQme as well
MSIL+
Sing# C#
source
csc
byte code verificaQon
compiler verificaQon
sgc
Singularity TCB bartok Singularity
system x86
applicaQon verificaQon
Singularity TCB bartok Singularity
system x86
applicaQon verificaQon
TAL
![Page 26: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/26.jpg)
26
Hardware Protec8on Domains
• A virtual address space
• Contains one or more SIPs
• Run at ring 0 (“kernel domain”) or ring 3
![Page 27: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/27.jpg)
27
Domains: Monolithic Kernel
App 1
App 2
App 3
File System
Net Stack
Kernel
Protection Domain
Ring 3
Ring 0
SIP
![Page 28: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/28.jpg)
28
Domains: Novel Models
App1 Signed
Extension
Signed Driver Kernel
Protection Domain
Ring 3
Ring 0
SIP
Unsigned Extension
Unsigned App2
Unsigned Driver
![Page 29: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/29.jpg)
Hardware is Costly
Webfiles Macrobenchmark
-4.7% +6.3%
+18.9% +33.0% +37.7%
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
No runtime checks
Physical Memory
Add VM Add Separate Address Space
Add Ring 3 Full Microkernel
Unsafe Code Tax
Safe Code Tax
![Page 30: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/30.jpg)
Singularity
Challenge 3: Facilitate Verifica8on
• Verify process internals (code): – type safety – object invariants – method pre-‐ & post-‐ condiQons – component interfaces
• Verify process externals: – channel contracts – resource access & dependencies
• Verify system: – communicaQon safety
– hardware resource conflict free – namespace conflict free
• StaQc verificaQon: before code runs
channels
kernel
runQme
kernel class library
processes
Kernel API
HAL
page mgr scheduler chan mgr proc mgr i/o mgr
network driver
web server
TCP/IP stack
content extension
ext. class library
server class library
tcp class library
driver class library
runQme runQme runQme runQme
![Page 31: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/31.jpg)
Singularity
Example:
Channel Contracts
public contract IoStream { ... state Start : { Open? -> {
OK! -> Opened; Error! -> End; } } state Opened : { Read? -> Data! -> Opened; Write? -> OK! -> Opened; Close? -> OK! -> End;
} state End; ... }
Start
Opened
Open? -> OK! End
Close? -> OK!
Open? -> Error!
Read? -> Data! Write? -> OK!
? = receive ! = send
![Page 32: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/32.jpg)
Singularity
Example: Contract Conformance
Missing Case case conn.NoMoreData() :
... conn.SendRead(); switch receive { case conn.Data(readData) :
dataBuffer.AddToTail(readData); return true; case conn.RemoteClose() : return false; } ...
Contract Web Server (User) public contract TcpSocketContract { ... state Connected : { Read? -> ReadResultPending; Write? -> WriteResultPending; GetLocalAddress? -> IPAddress!
-> Connected; GetLocalPort? -> Port! ->
Connected; DoneSending? -> ReceiveOnly; DoneReceiving? -> SendOnly; Close? -> Closed; Abort? -> Closed; } state ReadResultPending : { Data! -> Connected; NoMoreData! -> SendOnly; RemoteClose! -> Zombie; }
![Page 33: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/33.jpg)
Singularity
Example: Configura8on Specifica8ons
[DriverCategory] [Signature("/pci/03/00/5333/8811")] class S3Trio64Config : DriverCategoryDeclaration { [IoMemoryRange(0, Length = 0x400000)] IoMemoryRange frameBuffer; [IoFixedMemoryRange(Base = 0xb8000, Length = 0x8000)] IoMemoryRange textBuffer; ... [IoFixedPortRange(Base = 0x3c0, Length = 0x20)] IoPortRange control; [ExtensionEndpoint(typeof(ExtensionContract.Exp))] TRef<ExtensionContract.Exp:Start> pnp; [ServiceEndpoint(typeof(VideoDeviceContract.Exp))] TRef<ServiceProviderContract.Exp:Start> video; ...
requires PCI Device
requires 4MB frame buffer (from in PCI config)
requires system console buffer
requires control by plug-and-play
system
Provides video capability to system
requires VGA I/O ports
![Page 34: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/34.jpg)
Singularity
Specifica8on Usable in Many Ways
Driver (Source + Spec)
Driver Manifest
System Manifest
Conflict
1. Load driver
2. Allocate I/O objects
3. Create channels kernel
runQme
kernel class library
HAL
page mgr scheduler chan mgr proc mgr i/o mgr
Disk Driver
runQme
driver class library
File System
![Page 35: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/35.jpg)
Singularity
Conclusion
• Can we fundamentally improve the dependability of today’s so2ware?
• Rethink language, OS, and system architecture assumpQons – OS should control applicaQon’s execuQon environment
– new mechanisms to enhance system integrity, verifiability, and dependability
• Programming languages and runQme systems are central to new architecture
• Singularity is a complete (but simple) system – safe languages all the way down to the hardware – OS architecture improves system integrity and verificaQon
– many more aspects of system behavior are verifiable
• hXp://research.microso..com/os/singularity
![Page 36: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006](https://reader034.vdocuments.site/reader034/viewer/2022042405/5f1e63fc881f2b29bd04949c/html5/thumbnails/36.jpg)
Singularity Research Team
• Lead by Galen Hunt and Jim Larus
• MSR Cambridge – Paul Barham, Richard Black, Tim Harris, Rebecca Isaacs, Dushyanth Narayanan
• MSR Redmond – Advanced Compiler Technology Group:
• Juan Chen, Qunyan Mangus, Mark Plesko, Bjarne Steensgaard, David TardiQ
– FoundaQons of So.ware Engineering Group: • Wolfgang Grieskamp
– OperaQng Systems Group: • Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen Hunt, Steven Levi
– Security and Distributed Systems: • Dan Simon, Brian Zill
– So.ware Design and ImplementaQon Group: • John DeTreville, Ben Zorn
– So.ware Improvement Group: • Manuel Fahndrich, James Larus, Sriram Rajamani, Jakob Rehof
• MSR Silicon Valley – MarQn Abadi, Andrew Birrell, Ulfar Erlingsson, Roy Levin, Nick Murphy, Ted Wobber
Singularity