02 OS Structures
02 OS Structures
SYSTEMS
OS
Lesson 2: OS STRUCTURES
Nguyễn Thị Hậu (UET-VNU)
[email protected]
1
CONTENTS
• Operating System Services
• User and Operating System-Interface
• System Calls
• System Services
OS
• Operating System Structure
2
Operating System Services
OS
3
User Operating System Interface
• Command Interpreter - CI
OS
• Aero : Window Vista/Window
7/8/10
• Aqua: MacOS X
• Common desktop environment
(CDE): Unix, Linux OpenVMS
• K desktop environment (KDE):
Unix
• GNOME desktop (GNOME) :
Ubuntu
4
Touchscreen Interfaces
OS
5
System Calls
• Programming interface to the services
provided by the OS
• Typically written in a high-level
language (C or C++)
• Mostly accessed by programs via a high-
OS
l e v e l A p p l i c a t i o n P r o g r a m m i n g
Interface (API) rather than direct
system call use
• Three most common APIs are Win32
API for Windows, POSIX API for POSIX-
based systems (including virtually all
versions of UNIX, Linux, and Mac OS X),
and Java API for the Java virtual
machine (JVM)
6
Examples of Windows, Unix System Calls
OS
7
An example of standard API
OS
8
System Services
• System programs provide a convenient environment for
program development and execution. They can be divided
into:
• File manipulation
• Status information sometimes stored in a file
• Programming language support
OS
• Program loading and execution
• Communications
• Background services
• Application programs
• Most users’ view of the operation system is defined by
system programs, not the actual system calls
9
The Role of the Linker and Loader
OS
10
OPERATING SYSTEM STRUCTURE
OS
Simple structure – MS-DOS
More complex -- UNIX
Layered – an abstraction
Microkernel -Mach
11
Simple Structure – MS-DOS
OS
12
Traditional UNIX System Structure
Beyond simple but not fully layered
OS
13
Layered Approach
• The operating system is
divided into a number of
layers (levels), each built
on top of lower layers.
The bottom layer (layer
OS
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 14
Microkernels
• Moves as much from the kernel into user space
• Mach example of microkernel
• Mac OS X kernel (Darwin) partly based on Mach
• Communication takes place between user modules
using message passing
• Benefits:
OS
• Easier to extend a microkernel
• Easier to port the operating system to new
architectures
• More reliable (less code is running in kernel mode)
• More secure
• Detriments:
• Performance overhead of user space to kernel space 15
communication
Microkernel System Structure
OS
16
Linux System Structure
Monolithic plus modular design
OS
17
Hybrid Systems
• Most modern operating systems are actually not one pure
model
• Hybrid combines multiple approaches to address
performance, security, usability needs
• Linux and Solaris kernels in kernel address space, so
monolithic, plus modular for dynamic loading of functionality
OS
• Windows mostly monolithic, plus microkernel for different
subsystem personalities
• Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa
programming environment
• Below is kernel consisting of Mach microkernel and BSD
Unix parts, plus I/O kit and dynamically loadable modules
(called kernel extensions)
18
macOS and iOS Structure
OS
19
Darwin
OS
20
Android Architecture
OS
21
VIRTUAL MACHINE
OS
22
Vmware architecture
OS
23
Java Virtual Machine
OS
24
Homework
• Programming:
• Creating Kernel Modules, Loading and Removing Kernel Modules,
(Chapter 2, Operating System Concept, Silberschatz et al., 9th
edition, 2013 page 96-99)
OS
• Revising:
• Binary, octal, decimal, hex numbers
• bit, byte, KB, MB, GB, TB, PB, EB, YB, ZB
• Mbps, Gbps, …
25
Thank you!
OS
Q&A
26