os/kernel structure
DESCRIPTION
OS/Kernel Structure. Module 01. MS-DOS Layer Structure. Unix is a monolithic system. UNIX – the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts. Systems programs The kernel - PowerPoint PPT PresentationTRANSCRIPT
1
OS/Kernel Structure
Module 01
2
MS-DOS Layer Structure
3
Unix is a monolithic system
• UNIX – the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts.– Systems programs– The kernel
• Consists of everything below the system-call interface and above the physical hardware
• Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level.
4
UNIX System Structure
5
System Structure – Layered Approach• The operating system is divided into a number of layers (levels),
each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.
• With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers.
• Why layering?– explicit structure allows identification, relationship of complex system’s
pieces
– modularization eases maintenance, develop, updating of system
• change of implementation of layer’s service transparent to rest of system
• e.g., change in gate procedure doesn’t affect rest of system
– layering considered harmful?
6
Layered Structure of the THE OS
• A layered design was first used in THE operating system.
Its six layers are as follows:
layer 5: user programs
layer 4: buffering for input and output
layer 3: Process management
layer 2: memory management
layer 1: CPU scheduling
layer 0: hardware
7
OS/2 Layer Structure
8
Microkernels
• Small operating system core• Contains only essential operating systems functions• Many services traditionally included in the operating
system are now external subsystems– device drivers– file systems– virtual memory manager– windowing system– security services
9
10
Benefits of a Microkernel Organization
• Uniform interface on request made by a process– All services are provided by means of message passing, not
system calls.• Examples of opening a file• Creating threads
• Extensibility– Allows the addition of new services
• Flexibility– New features added– Existing features can be subtracted
11
Benefits of a Microkernel Organization
• Portability– Changes needed to port the system to a new
processor is changed in the microkernel - not in the other services
• Reliability– Modular design– Small microkernel can be rigorously tested
12
Benefits of Microkernel Organization
• Distributed system support– Message are sent without knowing what the target
machine is
• Object-oriented operating system– Components are objects with clearly defined
interfaces that can be interconnected to form software
13
Microkernel Design
• Microkernel must include functions that depend on the HW and functions needed to support the servers and applications operating in user mode.
– Low-level memory management• mapping each virtual page to a physical page frame. Other
memory functions like swapping, protection, paging, etc is done by VM service.
– Inter-process communication• Using ports. A port is a mailbox associated with one
receiver and multiple senders.
– I/O and interrupt management• Interrupts are transformed into messages.
14
KLM
• Examples of ukernels are Mach and Chorus
• Are the basis for KLM (Kernel Loadable Modules)– Linux modules are located in /lib/modules and they have had
the extension ".ko" since version 2.6.• Sound
• Device Drivers
• Network support (Apple Talk, Novel, etc)
• Language support
• VM (the virtualization layer)
• etc
15
Virtual Machines A virtual machine provides multiprogramming only by providing exact
virtual copies of the bare hardware . A virtual machine provides an interface identical to the underlying bare
hardware. The operating system creates the illusion of multiple processes, each
executing on its own processor with its own (virtual) memory. Virtual Machine: A machine implemented in software, not actual
hardware. Also known as a machine emulator, not as OS simulator. Each virtual machine can run any OS on top of it
You can run different OSs, each best suited for some task, on the same physical machine
Similar to Java approach. JVM is an application VM. Virtual PC for Windows allows you to create separate “virtual machines” on
top of your Windows desktop, where you can install virtually any PC-based operating system including OS/2, Linux, Solaris, NetWare or other versions of Windows. Each virtual machine emulates a complete hardware system – from processor to network card – in a self-contained, isolated software environment, enabling the simultaneous operation of otherwise incompatible systems.
16
Virtual Machines (Cont.)• The resources of the physical computer are shared to create the virtual
machines.– CPU scheduling can create the appearance that users have their own
processor.– Spooling and a file system can provide virtual card readers and virtual
line printers.– A normal user time-sharing terminal serves as the virtual machine
operator’s console.– Instruction set emulation
• Benefits of VM OS– A big plus for SW development – can run and test SW simultaneously on
multiple OS on a single machine, without rebooting. Testing can take place with different system configuration, like memory, disk space, etc.
– IT professionals can safely migrate and deploy new operating systems – while continuing to run and support older or custom legacy applications.
– Internet VPS– Cloud Computing – Amazon Elastic CC (or EC2)– Testing networked machines with multiple NEs (routers, FWs, etc)– Testing and parallel and distributed programming for cluster nodes– Sandboxing – play and test in a protected environment w/o risking
damage to other kernels running.– Server consolidation: virtualization allowed a single server to replace
multiple underutilized dedicated servers. • Any drawbacks?
17
System Models
Non-virtual Machine
Virtual Machine (Classical Type originated by IBM
VM370 in 1972)
•VmWare (from Vmware Inc.), •Virtual PC (Connectix, now Mircorsoft, Integrated within Windows 7 to run all Windows XP apps)•KVM (preferred choice for Red Hat and Ubuntu)•Xen (freeware)•Virtualbox from Sun Inc.•A complete list is available at http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines
Possible that it can span over multiple CPUs (even in a
distributed fashion).Referred as “Platform
Virtualization”
Virtualization layer or Hypervisor or VMM
Similar to standalone Hyber-V whereby a thin
layer is installed first
18
VMware architecture – Common Type (e.g. vmware)
19
Modern Virtualization
• Intel VT and AMD-V processors have hardware assisted virtualization to yield better performance
• Full vs. Partial Virtualization– Much of the underlying hardware is emulated, but not all
• Paravirtualization– Guest OS has special calls to VM, called hybervisor calls to
speed access– i.e. it provides an interface to VM– Faster as the virtualization layer becomes smaller
20
Windows Hyper-V (2008 Server)
21
Hyper-V Architecture (1/2)
• A partition is a logical unit of isolation in which an OS executes.
• The virtualization stack runs in the parent partition and has direct access to the hardware devices.
• The parent partition then creates the child partitions which host the guest OSs. A parent partition creates child partitions using the hypercall API.
• A virtualized partition does not have access to the physical processor, nor does it handle its real interrupts. Instead, it has a virtual view of the processor and runs in Guest Virtual Address.
22
Hyper-V Architecture (2/2)
• The hypervisor handles the interrupts to the processor, and redirects them to the respective partition using a logical Synthetic Interrupt Controller (SynIC). Hyper-V can hardware accelerate the address translation between various Guest Virtual Address-spaces by using an IOMMU (I/O Memory Management Unit) which operates independent of the memory management hardware used by the CPU.
• Parent partitions run a Virtualization Service Provider (VSP), which connects to the VMBus and handles device access requests from child partitions. Child partition virtual devices internally run a Virtualization Service Client (VSC), which redirect the request to VSPs in the parent partition via the VMBus.
23
Microsoft Windows
• Single-user multitasking
• From Windows 2000 on, Windows development developed to exploit modern 32-bit and 64-bit microprocessors
• Designed for single users who run multiple programs
• Main drivers are:– Increased memory and speed of microprocessors– Support for virtual memory
24
Windows Architecture
25
Client/Server Model
• Windows OS, protected subsystem, and applications all use a client/server model– Common in distributed systems, but can be used
internal to a single system
• Processes communicate via RPC
26
Windows Objects
• Windows draws heavily on the concepts of object-oriented design.
• Key Object Oriented concepts used by Windows are:– Encapsulation– Object class and instance
27
Traditional UNIX Kernel
28
System V Release 4 (SVR4)
29
Linux
• Modular Monolithic Kernel
• Although monolithic, the kernel is structures as a collection of modules– Loadable modules– An object file which can be linked and unlinked at
run time
• Characteristics:– Dynamic Linking– Stackable modules
• For checking dependencies when unloading
30
Example of loading two modules: FAT & VFAT
VFAT is a client of FAT
31
• *next: Pointer to the following module. All modules are organized into a single linked list.
• *name: Pointer to module name.• size:Module size in memory pages.• usecount:Module usage counter.
– The counter is incremented when an operation involving the module’s functions is started and decremented when the operation terminates.
• flags:Module flags.• nsyms: Number of exported symbols.• ndeps: Number of referenced modules• *syms: Pointer to this module’s symbol table.• *deps: Pointer to list of modules the are referenced by this
module.• *refs: Pointer to list of modules that use this module.
32
33
34
Linux Kernel Components