singularity: rethinking,the,so2ware,stack · singularity: rethinking,the,so2ware,stack...

36
Singularity: Rethinking the So2ware Stack James Larus Microso. Research University of Pennsylvania November 9, 2006

Upload: others

Post on 04-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Singularity: Rethinking,the,So2ware,Stack · Singularity: Rethinking,the,So2ware,Stack James&Larus& Microso.&Research& University&of&Pennsylvania November9,2006

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

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

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

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

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

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

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

 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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