0% found this document useful (0 votes)
19 views

Lecture 2

Uploaded by

kxj9156
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Lecture 2

Uploaded by

kxj9156
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Lecture 2

Topics

Operating System Structure

Operating System Debugging

Operating System Generation

System Boot

Operating System Structure

General-purpose OS is very large program Various ways to structure ones

Simple structure – MS-DOS

More complex -- UNIX

Layered – an abstraction

Microkernel -Mach

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: 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


communication

Modules

Many modern operating systems implement loadable kernel modules

Uses object-oriented approach; Each core component is separate; Each


talk to the others over known interfaces; Each is loadable as needed
within the kernel;
Overall, similar to layers but with more flexible: Linux, Solaris

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

Windows mostly monolithic, plus microkernel for different subsystem


personalities

Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa programming


environment.

iOS

Apple mobile OS for iPhone, iPad

Structured on Mac OS X, added functionality

Does not run OS X applications natively

Also runs on different CPU architecture (ARM vs. Intel)

Cocoa Touch Objective-C API for developing apps

Media services layer for graphics, audio, video

Core services provide cloud computing, databases

Core operating system, based on Mac OS X kernel

Android

Developed by Open Handset Alliance (mostly Google)

Open Source

Similar stack to IOS

Based on Linux kernel but modified


Provides process, memory, device-driver management

Adds power management

Runtime environment includes core set of libraries and Dalvik virtual


machine (Dalvik is a discontinued process virtual machine in the Android
operating system that executes applications written for Android)

Apps developed in Java plus Android API

Java class files compiled to Java bytecode then translated to executable


than runs in Dalvik VM

Libraries include frameworks for web browser (webkit), database (SQLite),


multimedia, smaller libc

Operating-System Debugging

Debugging is finding and fixing errors, or bugs

OS generate log files containing error information

Failure of an application can generate core dump file capturing memory of


the process

Operating system failure can generate crash dump file containing kernel
memory

Beyond crashes, performance tuning can optimize system performance

Sometimes using trace listings of activities, recorded for analysis

Profiling is periodic sampling of instruction pointer to look for statistical


trends

Operating System Generation

Operating systems are designed to run on any of a class of machines; the


system must be configured for each specific computer site

SYSGEN program obtains information concerning the specific configuration


of the hardware system

Used to build system-specific compiled kernel or system-tuned

Can general more efficient code than one general kernel

System Boot

When power initialized on system, execution starts at a fixed memory


location

Firmware ROM used to hold initial boot code

Operating system must be made available to hardware so hardware can


start it

Small piece of code – bootstrap loader, stored in ROM or EEPROM locates


the kernel, loads it into memory, and starts it

Sometimes two-step process where boot block at fixed location loaded by


ROM code, which loads bootstrap loader from disk

Kernel loads and system is then running

You might also like