CSC 469H1F Fall 2006 Angela Demke Brown
Week 1
Overview
• Motivation: Why talk about structure? • Kernel structures
• • • • • Monolithic kernels Open systems Microkernels Kernel Extensions (Tuesday) Virtual Machines (Tuesday)
CSC469
Week 1
Motivation
• Let’s review what OS provides…
• • • • Abstraction layers Protection boundaries Resource allocators Resource schedulers
• It’s complicated!
• Windows NT ~29 million lines of code (as of 2000)
CSC469
Week 1
Monolithic OS
Apache
libc libpthread
Mozilla libc libpthread
Emacs libc CPU Scheduling
Kernel
Interprocess Communication Networking File System Virtual Memory
Security CPU Network Memory Disk
CSC469
Week 1
Properties of Monolithic Kernels
• OS is all in one place, below the “red line” • Applications use a well-defined system call interface to interact with kernel • Examples: Unix, Windows NT/XP, Linux, BSD, OS/161 • Advantages?
• Common in commercial systems
• Good performance, well-understood, easy for kernel developers, high level of protection between applications • No protection between kernel components, not (safely, easily) extensible, overall structure becomes complicated (no clear boundaries between modules)
Week 1
• Disadvantages?
CSC469
Open Systems
Mozilla
Kernel and Applications
libpthread libc Interprocess Communication File System Virtual Memory
Apache
Emacs Networking
CPU
Network
Memory
Disk
CSC469
Week 1
Properties of Open Systems
• Applications, libraries, kernel all in the same address space • Crazy?
• • • • MS-DOS Mac OS 9 and earlier Windows ME, 98, 95, 3.1, etc. Palm OS and some embedded systems
• Used to be very common • Advantages?
• •
CSC469
Very good performance, very extensible, works well for single-user OS No protection btwn kernel and/or apps, not very stable, composing extensions can lead to unpredictable behavior
Week 1
•