Title: OS/Kernel Structure
1OS/Kernel Structure
2MS-DOS Layer Structure
3Unix 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.
4UNIX System Structure
5System 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 systems pieces - modularization eases maintenance, develop,
updating of system - change of implementation of layers service
transparent to rest of system - e.g., change in gate procedure doesnt affect
rest of system - layering considered harmful?
6Layered 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
7OS/2 Layer Structure
8Microkernels
- 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(No Transcript)
10Benefits 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
11Benefits 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
12Benefits 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
13Microkernel 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.
14KLM
- 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
15Virtual 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.
16Virtual 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 operators 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?
17System Models
Similar to standalone Hyber-V whereby a thin
layer is installed first
Virtual Machine (Classical Type originated by
IBM VM370 in 1972)
Non-virtual Machine
Virtualization layer or Hypervisor or VMM
Possible that it can span over multiple CPUs
(even in a distributed fashion). Referred as
Platform Virtualization
- 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_platfor
m_virtual_machines
18VMware architecture Common Type (e.g. vmware)
19Modern 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
20Windows Hyper-V (2008 Server)
21Hyper-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.
22Hyper-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.
23Microsoft 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
24Windows Architecture
25Client/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
26Windows Objects
- Windows draws heavily on the concepts of
object-oriented design. - Key Object Oriented concepts used by Windows are
- Encapsulation
- Object class and instance
27Traditional UNIX Kernel
28System V Release 4 (SVR4)
29Linux
- 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
30Example 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.
- sizeModule size in memory pages.
- usecountModule usage counter.
- The counter is incremented when an operation
involving the modules functions is started and
decremented when the operation terminates. - flagsModule flags.
- nsyms Number of exported symbols.
- ndeps Number of referenced modules
- syms Pointer to this modules 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(No Transcript)
33(No Transcript)
34Linux Kernel Components