Singularity: Designing Be1er So3ware

Size: px
Start display at page:

Download "Singularity: Designing Be1er So3ware"

Transcription

1 : Designing Be1er So3ware James Larus Microso. Research CAV July 10, 2008

2 MSR s Decade of Tools Progress (and Frustra?on) MSR has researched, developed, and deployed programming tools for 10+ years Struggle to bring tools to pracfce incomplete, informal specificafon unsafe languages (C) tenuous assumpfons (e.g., code completely known and immutable) VerificaFon and tesfng at a low level language features and library APIs persistent quesfon: are these the right bugs? So.ware development is inherently broken first we bug the so.ware, then we debug it People and organizafon may be more important than bugs and tesfng (another talk)

3 Microso. Research project with goal of more robust and reliable so.ware Verification Tools Safe Languages (C#) Improved OS Architecture Rethink the so.ware stack ArFculated architectural principles so.ware will fail, system should not system should be self- describing verify as many aspects as possible No single magic bullet mutually reinforcing improvements to languages and compilers, systems, and tools

4 in the News Judging from recent rumours, Unfortunately, that's this what willingness it is preparing to begin with to do. an entirely new Even foundation though is it not won't located be within in the Windows Windows group but 7, in Microsoft s research is happy arm, where scientists to talk and about their MinWin a heretical thoughts are safely isolated. slimmed Last down April, Microsoft version of publicly the unveiled Windows the five-year-old core. research It s even project, willing called. to discus It nothing its more than a neat project academic a exercise, microkernel-based not a glimpse of Windows operating 7. system written strictly for research is not the purposes. next Windows, But ask said Rich Rashid, the about company s a project senior code-named vice president overseeing Midori research. and Think everyone of it like clams a concept up. car.

5 Why Rethink So3ware Architecture? Multics Unix VMS Windows (NT) Linux Design parameters scarce resources assembly code benign environment knowledgeable users

6 The World Changed Hardware and so.ware industries were wildly successful machines are fast, memory is cheap computers are ubiquitous safe, high- level languages Malicious environment ubiquitous worms, viruses, scams, a[acks, Few users understand computers or so.ware

7 Key Tenets 1. Use safe (managed) programming languages everywhere safe type safe and memory safe (C# or Java) everywhere applicafons, extensions, OS services, device drivers, kernel, 2. Improve system resilience in the face of so.ware errors failure containment boundaries explicit failure nofficafon model 3. Modular verificafon design assuming automated analysis seal environments so verificafon can be sound make system self- describing, so pieces can be examined in isolafon specify and check behavior at many levels of abstracfon

8 Deemphasize Performance Easy to measure, but less important than dependability Good enough performance was goal has very good performance

9 OS Architecture channels content extension web server TCP/IP stack network driver Safe micro- kernel 95% wri[en in C# all services and drivers in processes processes ext. class library runfme server class library runfme tcp class library runfme driver class library runfme So.ware isolated processes (SIPs) all user code is verifiably safe some unsafe code in trusted runfme processes and kernel sealed at execufon kernel API CommunicaFon via channels channel behavior is specified and checked kernel page mgr scheduler chan mgr proc mgr i/o mgr kernel class library runfme fast and efficient communicafon Working research prototype not Windows replacement shared source download HAL

10 SIP Process Model Process contains only safe code except language runfme (GC) No shared memory communicate via messages Software Isolated Process SIP Kernel ABI Messages flow over bi- direcfonal channels well- defined & verifiable Small, versioned interface to kernel threads, memory, & channels Seal process on execufon no dynamic code loading no in- process plug- ins

11 Modern, safe programming languages Challenge 1: Pervasive Safe Languages preclude enfre categories of serious defects, e.g. buffer overruns easier to analyze is wri[en in Spec# C# + pre/post- condifons and invariants Language research to support abstracfons channel communicafons factor libraries into composable pieces compile- Fme reflecfon NaFve compiler and runfme system no bytecodes or MSIL (not JVM or CLR)

12 Run?me System JVM & CLR not appropriate for building systems Rich runfme ( 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 runfme size and complexity unpredictable performance Replicate OS funcfonality security, threading, configurafon, etc.

13 Run?me RunFme (GC, etc.) ApplicaFon Libraries Minimal run- Fme system Ahead- of- Fme, global opfmizing compiler (Bartok) specializes runfme and libraries Bartok Compiler eliminate unused language features and applicafon or library code Factorable runfme and libraries Process x86 Executable Language runfme, garbage collector, and libraries selectable on per- process basis reduce memory and computafon overhead enforce design discipline and system policies per process

14 Challenge 2: Improve Resilience Cannot build so.ware without defects verificafon is a chimera (but we could do a lot be[er) So.ware defects should not cause system failure A resilient system architecture should isolate system components to prevent data corrupfon provide clear failure nofficafon implement policy for restarfng failed component ExisFng system architectures lack isolafon and resilience

15 Open Process Architecture Process Ubiquitous (Windows, Unix, Java, browsers, etc.) DLLs, classes, plug- ins, device drivers, etc. Processes are not sealed dynamic code loading and runfme code generafon 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

16 Single Process Architecture App OS Runtime App TradiFonal safe language architecture Xerox PARC (Cedar, Smalltalk, etc.) and Lisp Machine model Java and.net as well Tangled code and data language safety provides some isolafon garbage collecfon must reclaim resources dynamic code loading and runfme code generafon runfme is single point of failure

17 Sealed Processes Process Kernel Extension Extension processes are sealed no dynamic code loading or run- Fme code generafon all code present when process starts execufon extensions execute in disfnct processes separate closed environments with well- defined interfaces no shared memory Fundamental unit of failure isolafon Enhance opfmizafon, verificafon, security closed world assumpfon is true!

18 Program Op?miza?on Program Code Whole Closed world allows global opfmizafon to eliminate unused code Reduces process code size by up to 75% Fewer code paths be[er opfmizafon & error analysis Code w/ Tree Shake % Reduction Kernel 2,371 KB 1,291 KB 46% Web Server 2,731 KB 765 KB 72% SPECweb99 Plug-in 2,144 KB 502 KB 77% IDE Disk Driver 1,846 KB 455 KB 75%

19 Complexity of Extensions Move register allocator from Bartok compiler to separate process one of 50 phases updates IR to assign registers and insert spill operafons 156 shared classes (IR + ISA) invoked per funcfon 6,441 calls in kernel compile 50KB to 1.5MB of data Bartok Compiler bartok.exe Register Allocator regalloc.dll Register Allocator regalloc.exe EuroSys 2007 Sealing OS Processes to Improve Dependability and Security 19

20 Code Complexity Code Lines % of Orig. Bartok Compiler 210, % Register Allocator 10, % Altered in Host % Limited Marshal Tags % Channel and Child % Total 220, % Child process adds <.25% (508 lines) to code base Time to compile kernel increases by 11% EuroSys 2007 Sealing OS Processes to Improve Dependability and 20 Security

21 Isola?on Requires Lightweight Processes TradiFonal processes rely on virtual memory and hardware domains legacy of assembly language era VM prevents reference into other address spaces protecfon prevents unprivileged code from access system resources Processes are expensive to create and schedule high cost to cross protecfon domains (rings), handle TLB misses, and manipulate address spaces Costs encourages monolithic architecture expensive process creafon and inter- process communicafon large, undifferenfated applicafons dynamically loaded extensions

22 So3ware Isolated Processes (SIPs) ProtecFon and isolafon enforced by language safety and kernel API design process has exclusive access to 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 everything can run in ring 0 in kernel memory (without the MMU)! Global invariants: no process contains a pointer to another process s object space no pointers from exchange heap into process P1 P2 P3

23 Interprocess Communica?ons Channels are strongly typed (value & behavior), bidirecfonal communicafons ports messages passing with language support Messages live outside processes ( exchange heap ) only a single reference to a message Mailbox semanfcs enforced by linear types copying and pointer passing are semanfcally indisfnguishable Channel buffers pre- allocated according to contract P1 P2 P3 exchange heap

24 Performance Micro Benchmarks Athlon (1.8GHz) nforce4 SLI FreeBSD 5.3 Cost (CPU Cycles) Linux (Red Hat FC4) Windows XP (SP2) Minimum kernel API call Message request/reply 1,041 13,300 5,800 6,340 Process create & start 388,000 1,030, ,000 5,380,000 Why? stafc verificafon replaces hardware protecfon all SIPs run in ring 0 good opfmizing compiler (not JIT)

25 OS Controls Resources and Security OS owns, allocates, and reclaims system resources convenfonal model On process terminafon, OS reclaims memory pages and channels not dependent on finalizafon or garbage collecfon Clean failure nofficafon messages in channel sfll available to other process Security policy on per- process crux is control of channels (capabilifes)

26 Would You Trust Your System to a Type System? Process integrity depends on type and memory safety currently trust compiler and runfme TAL can remove compiler from trusted compufng base Need to verify GC and runfme as well (research challenge) Sing# C# source csc sgc MSIL+ bartok TAL TCB TCB x86 system compiler verificafon byte code verificafon applicafon verificafon

27 S?ll Not Convinced? Hardware ProtecFon Domains virtual address space contains one or more SIPs runs at ring 0 ( kernel domain ) or ring 3 27

28 Domains: Monolithic Kernel App 1 App 2 App 3 File System Kernel Net Stack SIP Protection Domain Ring 3 Ring 0 28

29 Domains: Novel Models Unsigned App2 SIP Protection Domain App1 Signed Extension Unsigned Extension Ring 3 Ring 0 Unsigned Driver Signed Driver Kernel 29

30 Hardware is Costly Webfiles Macrobenchmark Unsafe Code Tax Safe Code Tax -4.7% +6.3% +18.9% +33.0% +37.7% No runtime checks Physical Memory Add VM Add Separate Address Space Add Ring 3 Full Microkernel

31 Challenge 3: Verify More channels processes content extension ext. class library Kernel API runfme web server server class library runfme kernel page mgr scheduler chan mgr proc mgr i/o mgr HAL TCP/IP stack tcp class library runfme kernel class library runfme network driver driver class library runfme Process internals (code): type safety object invariants method pre- & post- condifons component interfaces Process externals: channel contracts resource access & dependencies System: communicafon safety hardware resource conflict free namespace conflict free

32 Boogie and Network device driver Hardware interacfons Registers, DMA, etc. Layered objects Main object owns others Driven by WDF interface Scheduler (kernel) Global properfes Interrupts, lock levels, etc. Strongly coupled objects Many object references Concurrent Order of invocafons Interrupts, mulfthreading Use Boogie to verify interesting properties in both contexts (Kevin Bierhoff 2007) 32

33 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;... }? = receive! = send Start Open? -> OK! Opened Open? -> Error! Read? -> Data! Write? -> OK! End Close? -> OK!

34 Example: Contract Conformance Contract 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; }... conn.sendread(); switch receive { case conn.data(readdata) : }... Web Server (User) databuffer.addtotail(readdata); return true; case conn.remoteclose() : return false; Missing Case case conn.nomoredata() :

35 Example: [DriverCategory] [Signature("/pci/03/00/5333/8811")] Configura?on Specifica?ons class S3Trio64Config : DriverCategoryDeclaration { [IoMemoryRange(0, Length = 0x400000)] IoMemoryRange framebuffer; requires PCI Device requires 4MB frame buffer (from in PCI config) requires system console buffer [IoFixedMemoryRange(Base = 0xb8000, Length = 0x8000)] IoMemoryRange textbuffer; requires VGA I/O ports... [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 control by plug-and-play system Provides video capability to system

36 Specifica?on Usable in Many Ways Conflict Driver (Source + Spec) Driver Manifest System Manifest 1. Load driver 2. Allocate I/O objects 3. Create channels File System Disk Driver driver class library runfme kernel page mgr scheduler chan mgr proc mgr i/o mgr HAL kernel class library runfme

37 Architecture & Verifica?on So.ware architecture can enhance verificafon modern programming language with appropriate abstracfons sealed processes explicit communicafons across typed channels specificafons throughout system VerificaFon community should be involved in system design your insights and contribufons can make so.ware be[er (e.g. TM) improved reliability and robustness are achievable verify what they build approach complicates verificafon and produces poor so.ware Challenge: make reliability and robustness more important than performance

38 Conclusion Can we fundamentally improve the dependability of so3ware? (yes) Reexamine and rethink language, OS, and system architecture assumpfons OS should control applicafon s execufon environment new mechanisms to enhance system integrity, verifiability, and dependability Programming languages and runfme systems are central to new architecture is a complete (but simple) system safe languages all the way down to the hardware OS architecture improves system integrity and verificafon many more aspects of system behavior are verifiable project is done using in small computer (cphone) working with incubafon team that is expanding

39 Obtaining Info: h[p://research.microso..com/os/singularity Code: h[p://

40 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 TardiF FoundaFons of So.ware Engineering Group: Wolfgang Grieskamp OperaFng Systems Group: Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen Hunt, Steven Levi Security and Distributed Systems: Dan Simon, Brian Zill So.ware Design and ImplementaFon Group: John DeTreville, Ben Zorn So.ware Improvement Group: Manuel Fahndrich, James Larus, Sriram Rajamani, Jakob Rehof MSR Silicon Valley MarFn Abadi, Andrew Birrell, Ulfar Erlingsson, Roy Levin, Nick Murphy, Ted Wobber

Using the Singularity Research Development Kit

Using the Singularity Research Development Kit Using the Research Development Kit James Larus & Galen Hunt Microsoft Research ASPLOS 08 Tutorial March 1, 2008 Outline Overview (Jim) Rationale & key decisions architecture Details (Galen) Safe Languages

More information

Abolish Runtime Systems!

Abolish Runtime Systems! Abolish Runtie Systes! Operating Systes Should Control the Execution Environent Jaes Larus Microsoft Research Second International Conference on Virtual Execution Environents June 14, 2006 If you coe to

More information

Singularity Reviewed an Operating System Challenging Common Concepts

Singularity Reviewed an Operating System Challenging Common Concepts an Operating System Challenging Common Concepts by Lothar Schäfer lothar.schaefer@sbg.ac.at Overview Singularity is a research operating system at Microsoft Research. The project started in 2003 and is

More information

The Singularity System

The Singularity System doi:1145/1787234.1787253 Safe, modern programming languages let Microsoft rethink the architectural trade-offs in its experimental operating system. by James Larus and Galen Hunt The Singularity System

More information

Sealing OS Processes to Improve Dependability and Security

Sealing OS Processes to Improve Dependability and Security Sealing OS Processes to Improve Dependability and Security Galen Hunt, Mark Aiken, Paul Barham, Manuel Fähndrich, Chris Hawblitzel, Orion Hodson, James Larus, Steven Levi, Nick Murphy, Bjarne Steensgaard,

More information

Singularity Part 2. Jeff Chase

Singularity Part 2. Jeff Chase Singularity Part 2 Jeff Chase Today Singularity: abstractions How do processes interact? Communicate / share Combine (De)compose Extend How to invoke the kernel? User processes / VAS / segments kernel

More information

Singularity Technical Report 1: Singularity Design Motivation

Singularity Technical Report 1: Singularity Design Motivation Singularity Technical Report 1: Singularity Design Motivation Galen C. Hunt James R. Larus December 17, 2004 MSR-TR-2004-105 Microsoft Research Microsoft Corporation One Microsoft Way Redmond, WA 98052

More information

Operating System Architecture. CS3026 Operating Systems Lecture 03

Operating System Architecture. CS3026 Operating Systems Lecture 03 Operating System Architecture CS3026 Operating Systems Lecture 03 The Role of an Operating System Service provider Provide a set of services to system users Resource allocator Exploit the hardware resources

More information

6.828: OS/Language Co-design. Adam Belay

6.828: OS/Language Co-design. Adam Belay 6.828: OS/Language Co-design Adam Belay Singularity An experimental research OS at Microsoft in the early 2000s Many people and papers, high profile project Influenced by experiences at

More information

Alterna(ve Architectures

Alterna(ve Architectures Alterna(ve Architectures COMS W4118 Prof. Kaustubh R. Joshi krj@cs.columbia.edu hep://www.cs.columbia.edu/~krj/os References: Opera(ng Systems Concepts (9e), Linux Kernel Development, previous W4118s Copyright

More information

Cloud Programming James Larus Microsoft Research. July 13, 2010

Cloud Programming James Larus Microsoft Research. July 13, 2010 Cloud Programming James Larus Microsoft Research July 13, 2010 New Programming Model, New Problems (and some old, unsolved ones) Concurrency Parallelism Message passing Distribution High availability Performance

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle Operating Systems Operating System Structure Lecture 2 Michael O Boyle 1 Overview Architecture impact User operating interaction User vs kernel Syscall Operating System structure Layers Examples 2 Lower-level

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Four Components of a Computer System

Four Components of a Computer System Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System

More information

OS concepts and structure. q OS components & interconnects q Structuring OSs q Next time: Processes

OS concepts and structure. q OS components & interconnects q Structuring OSs q Next time: Processes OS concepts and structure q OS components & interconnects q Structuring OSs q Next time: Processes OS Views Perspectives, OS as the services it provides its components and interactions Services to Users

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures 2.1 Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

ELEC 377 Operating Systems. Week 1 Class 2

ELEC 377 Operating Systems. Week 1 Class 2 Operating Systems Week 1 Class 2 Labs vs. Assignments The only work to turn in are the labs. In some of the handouts I refer to the labs as assignments. There are no assignments separate from the labs.

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

Operating- System Structures

Operating- System Structures Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Operating System Structure

Operating System Structure CSE325 Principles of Operating Systems Operating System Structure David Duggan dduggan@sandia.gov January 24, 2013 A View of Operating System Services 1/24/13 CSE325 - OS Structure 2 Operating System Design

More information

Operating-System Structures

Operating-System Structures Operating-System Structures Chapter 2 Operating System Services One set provides functions that are helpful to the user: User interface Program execution I/O operations File-system manipulation Communications

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Full file at

Full file at Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 2 Multiple Choice 1. A is an example of a systems program. A) command

More information

Process Address Spaces and Binary Formats

Process Address Spaces and Binary Formats Process Address Spaces and Binary Formats Don Porter Background We ve talked some about processes This lecture: discuss overall virtual memory organizafon Key abstracfon: Address space We will learn about

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls (important!) Types of System Calls (important!) System

More information

The benefits and costs of writing a POSIX kernel in a high-level language

The benefits and costs of writing a POSIX kernel in a high-level language 1 / 38 The benefits and costs of writing a POSIX kernel in a high-level language Cody Cutler, M. Frans Kaashoek, Robert T. Morris MIT CSAIL Should we use high-level languages to build OS kernels? 2 / 38

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures 1 Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. OS and Computer Architecture Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation

More information

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. Operating System Services User Operating System Interface

More information

Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion

Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion Michaelmas 2016 Dr Robert N. M. Watson (With thanks to Dr Steven Hand) 1 Concurrent and distributed systems One

More information

OS Structure. Kevin Webb Swarthmore College January 25, Relevant xkcd:

OS Structure. Kevin Webb Swarthmore College January 25, Relevant xkcd: OS Structure Kevin Webb Swarthmore College January 25, 2018 Relevant xkcd: One of the survivors, poking around in the ruins with the point of a spear, uncovers a singed photo of Richard Stallman. They

More information

Kernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023

Kernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023 Operating Systems Autumn 2017-2018 Outline 1 2 3 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview

More information

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas RISCV with Sanctum Enclaves Victor Costan, Ilia Lebedev, Srini Devadas Today, privilege implies trust (1/3) If computing remotely, what is the TCB? Priviledge CPU HW Hypervisor trusted computing base OS

More information

Keep Learning with Oracle University

Keep Learning with Oracle University Keep Learning with Oracle University Classroom Training Learning SubscripFon Live Virtual Class Training On Demand Cloud Technology ApplicaFons Industries educa7on.oracle.com 3 Session Surveys Help us

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: Java features. Java and its associated components. Features of a Java application and applet. Java data types. Java

More information

Message Passing. Advanced Operating Systems Tutorial 5

Message Passing. Advanced Operating Systems Tutorial 5 Message Passing Advanced Operating Systems Tutorial 5 Tutorial Outline Review of Lectured Material Discussion: Barrelfish and multi-kernel systems Programming exercise!2 Review of Lectured Material Implications

More information

Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion

Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion Concurrent systems Lecture 1: Introduction to concurrency, threads, and mutual exclusion Michaelmas 2017 Dr Robert N. M. Watson (With thanks to Dr Steven Hand) 1 Concurrent and distributed systems One

More information

INFLUENTIAL OS RESEARCH

INFLUENTIAL OS RESEARCH INFLUENTIAL OS RESEARCH Multiprocessors Jan Bierbaum Tobias Stumpf SS 2017 ROADMAP Roadmap Multiprocessor Architectures Usage in the Old Days (mid 90s) Disco Present Age Research The Multikernel Helios

More information

EEE 435 Principles of Operating Systems

EEE 435 Principles of Operating Systems EEE 435 Principles of Operating Systems Operating System Structure (Modern Operating Systems 1.7) Outline Operating System Structure Monolithic Systems Layered Systems Virtual Machines Exokernels Client-Server

More information

Java Internals. Frank Yellin Tim Lindholm JavaSoft

Java Internals. Frank Yellin Tim Lindholm JavaSoft Java Internals Frank Yellin Tim Lindholm JavaSoft About This Talk The JavaSoft implementation of the Java Virtual Machine (JDK 1.0.2) Some companies have tweaked our implementation Alternative implementations

More information

Lecture Notes on Garbage Collection

Lecture Notes on Garbage Collection Lecture Notes on Garbage Collection 15-411: Compiler Design André Platzer Lecture 20 1 Introduction In the previous lectures we have considered a programming language C0 with pointers and memory and array

More information

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring

More information

Fiji VM Safety Critical Java

Fiji VM Safety Critical Java Fiji VM Safety Critical Java Filip Pizlo, President Fiji Systems Inc. Introduction Java is a modern, portable programming language with wide-spread adoption. Goal: streamlining debugging and certification.

More information

Buffer overflow background

Buffer overflow background and heap buffer background Comp Sci 3600 Security Heap Outline and heap buffer Heap 1 and heap 2 3 buffer 4 5 Heap Outline and heap buffer Heap 1 and heap 2 3 buffer 4 5 Heap Address Space and heap buffer

More information

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University Architectural Support for Operating Systems Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic services of OS Basic computer system

More information

Student Name:.. Student ID... Course Code: CSC 227 Course Title: Semester: Fall Exercises Cover Sheet:

Student Name:.. Student ID... Course Code: CSC 227 Course Title: Semester: Fall Exercises Cover Sheet: King Saud University College of Computer and Information Sciences Computer Science Department Course Code: CSC 227 Course Title: Operating Systems Semester: Fall 2016-2017 Exercises Cover Sheet: Final

More information

CS 153 Design of Operating Systems

CS 153 Design of Operating Systems CS 153 Design of Operating Systems Winter 19 Lecture 2: Historical perspective Instructor: Nael Abu-Ghazaleh Last time What is an OS? What roles does it play? Today: Historic evolution of Operating Systems

More information

Construction and Reconfiguration of a Component-based Embedded JVM

Construction and Reconfiguration of a Component-based Embedded JVM IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.7, July 2008 29 Construction and Reconfiguration of a Component-based Embedded JVM Hiroo Ishikawa and Tatsuo Nakajima, Department

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 4, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: System Structures Chapter 2: System Structures 2.1 Operating-System Services 2.2 User and Operating-System Interface 2.3 System Calls 2.4 Types of System Calls 2.5 System Programs 2.6 Operating-System

More information

Operating-System Structures

Operating-System Structures Recap Chapter 2: Operating-System Structures Presented By: Dr. El-Sayed M. El-Alfy Note: Most of the slides are compiled from the textbook and its complementary resources From: OS by Tanenbaum, 2008 March

More information

CS 261 Fall Mike Lam, Professor. Virtual Memory

CS 261 Fall Mike Lam, Professor. Virtual Memory CS 261 Fall 2016 Mike Lam, Professor Virtual Memory Topics Operating systems Address spaces Virtual memory Address translation Memory allocation Lingering questions What happens when you call malloc()?

More information

Xen and the Art of Virtualization

Xen and the Art of Virtualization Xen and the Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield Presented by Thomas DuBuisson Outline Motivation

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls POSIX System Programs System Structure Virtual Machines System Design and Implementation System Generation

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation CSE 421/521 - Operating Systems Fall 2012 Lecture - II OS Structures Roadmap OS Design and Implementation Different Design Approaches Major OS Components!! Memory management! CPU Scheduling! I/O Management

More information

JavaOS. David Burhans 2/3/2003 CS384 Dr. Taylor

JavaOS. David Burhans 2/3/2003 CS384 Dr. Taylor JavaOS David Burhans 2/3/2003 CS384 Dr. Taylor Table of Contents JavaOS... 1 Table of Contents...i Table of Figures...ii Background... 1 Java... 1 Bytecode... 2 JavaOS... 2 Supported Computing Models...

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008 Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

Operating System Security

Operating System Security Operating System Security Operating Systems Defined Hardware: I/o...Memory.CPU Operating Systems: Windows or Android, etc Applications run on operating system Operating Systems Makes it easier to use resources.

More information

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services Objectives Chapter 2: Operating-System Structures To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system

More information

Operating System Structure

Operating System Structure Operating System Structure Joey Echeverria joey42+os@gmail.com December 6, 2004 Carnegie Mellon University: 15-410 Fall 2004 Overview Motivations Kernel Structures Monolithic Kernels Open Systems Microkernels

More information

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services Operating System Services One set of services for users The other set of services for system operations Operating Systems Structures Notice: This set of slides is based on the notes by Professor Perrone

More information

COS 318: Operating Systems

COS 318: Operating Systems COS 318: Operating Systems OS Structures and System Calls Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Outline Protection

More information

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: Operating System Structures Operating System Services System Calls Chapter 2: System Structures System Programs Operating System Design and Implementation Operating System Structure Virtual

More information

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 2: System Structures. Operating System Concepts 9 th Edition Chapter 2: System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs

More information

Chapter 2: Operating-System Structures. Operating System Concepts 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts 8 th Edition Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Different Services of Operating System. System Calls-

More information

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester Operating System: Chap2 OS Structure National Tsing-Hua University 2016, Fall Semester Outline OS Services OS-Application Interface OS Structure Chapter2 OS-Structure Operating System Concepts NTHU LSA

More information

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009. CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar Louisiana State University August 27 th, 2009 1 Announcements TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu

More information

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009 CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu Announcements All of you should be now in the class mailing

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

More information

HJ- OpenCL: Reducing the Gap Between the JVM and Accelerators

HJ- OpenCL: Reducing the Gap Between the JVM and Accelerators HJ- OpenCL: Reducing the Gap Between the JVM and Accelerators Max Grossman, Shams Imam, Vivek Sarkar Habanero Extreme Scale So8ware Research Group Rice University JVM: A Portable AbstracCon JVM: placorm-

More information

Advanced Programming & C++ Language

Advanced Programming & C++ Language Advanced Programming & C++ Language ~6~ Introduction to Memory Management Ariel University 2018 Dr. Miri (Kopel) Ben-Nissan Stack & Heap 2 The memory a program uses is typically divided into four different

More information

Lecture 4: Threads; weaving control flow

Lecture 4: Threads; weaving control flow Lecture 4: Threads; weaving control flow CSE 120: Principles of Operating Systems Alex C. Snoeren HW 1 Due NOW Announcements Homework #1 due now Project 0 due tonight Project groups Please send project

More information

Efficient Software Based Fault Isolation. Software Extensibility

Efficient Software Based Fault Isolation. Software Extensibility Efficient Software Based Fault Isolation Robert Wahbe, Steven Lucco Thomas E. Anderson, Susan L. Graham Software Extensibility Operating Systems Kernel modules Device drivers Unix vnodes Application Software

More information

Architectural Support for Operating Systems

Architectural Support for Operating Systems OS and Architectures Architectural Support for Operating Systems Emin Gun Sirer What an OS can do is dictated, at least in part, by the architecture. Architecture support can greatly simplify (or complicate)

More information

Processes and Threads

Processes and Threads COS 318: Operating Systems Processes and Threads Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318 Today s Topics u Concurrency

More information

System Call. Preview. System Call. System Call. System Call 9/7/2018

System Call. Preview. System Call. System Call. System Call 9/7/2018 Preview Operating System Structure Monolithic Layered System Microkernel Virtual Machine Process Management Process Models Process Creation Process Termination Process State Process Implementation Operating

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

CS307: Operating Systems

CS307: Operating Systems CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn

More information

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia L4/Darwin: Evolving UNIX Charles Gray Research Engineer, National ICT Australia charles.gray@nicta.com.au Outline 1. Project Overview 2. BSD on the Mach microkernel 3. Porting Darwin to the L4 microkernel

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

CHAPTER 16 - VIRTUAL MACHINES

CHAPTER 16 - VIRTUAL MACHINES CHAPTER 16 - VIRTUAL MACHINES 1 OBJECTIVES Explore history and benefits of virtual machines. Discuss the various virtual machine technologies. Describe the methods used to implement virtualization. Show

More information

Processes, Threads and Processors

Processes, Threads and Processors 1 Processes, Threads and Processors Processes and Threads From Processes to Threads Don Porter Portions courtesy Emmett Witchel Hardware can execute N instruction streams at once Ø Uniprocessor, N==1 Ø

More information