Operating System Kernel and Booting - p. 1/56

Operating System Kernel and the boot process

             Nick Urbanik <nicku(at)nicku.org>
Copyright Conditions: GNU FDL (see http://www.gnu.org/licenses/fdl.html  )

A computing department

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 2/56

Operating System: Kernel and boot process

What is it?

What does it do?

How does it start up?

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 3/56

What is an operating system?

Is it what you get when you install Linux, Windows xp or Windows 2000?

Does it include such things as (g)notepad, g++ or Visual C++?

How about bash, cmd.exe or command.com?

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 4/56

The os is the kernel

The operating system is the kernel When the computer boots the operating system, it loads

the kernel into memory.

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 5/56

Kernel in Linux

In Linux, kernel can be loaded by lilo or grub Kernel is in /boot In RH 9, it is

/boot/vmlinuz-2.4.20-20.9,

or if you build your own, something like

/boot/vmlinuz-2.4.22-ac6

It is a monolithic kernel

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 6/56

Kernel in Windows xp, 2000, Win nt

In %SystemRoot%\System32
%SystemRoot% = C:\winnt, or D:\winnt,. . .
Called ntoskrnl.exe

Microsoft call it a layered kernel or microkernel. sometimes called the “Executive services” and the “nt

executive” Bottom layer is the hardware abstraction layer

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 7/56

What does an os do?

Provides a “government” to share out the hardware resources fairly

Provides a way for the programmer to easily work with the hardware and software through a set of system calls — see slides §15–§18. Sometimes also called supervisor calls

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 8/56

Is there a User Friendly os?

Some people have said that the Windows oss are more user friendly than Linux

Can this be the case?

Are the system calls more user friendly?

(see slides §15–§18 for more about system calls) Does Windows manage the hardware in a more user

friendly way? No! The user interface is not an operating system issue. See

your subject Human Computer Interfaces (hci) Do you want a more user friendly interface for Linux?

Then write one! Contribute to the Gnome or kde projects.

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 9/56

Example: mac os X

The Mac has a deserved reputation for a great user interface

os X is the latest os from Apple Very beautiful, easy to use But it is Unix, built on Freebsd!

The Unix that till now has mostly been used on servers; considered by some to be less user friendly than Linux

The User Interface is not part of the os

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 10/56

Is ie part of Windows oss?

Is Internet Explorer part of the Windows operating systems?

Please discuss this question with your neighbour. See

http://news.com.com/2100-1001-219029.html?legacy=cnet

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 11/56

What resources does os manage?

The os manages resources such as: Use of cpu Memory Files and disk access Printing Network access i^{/}o devices such as keyboard, mouse, display, usb

devices, …

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 12/56

… Allocated to who/what?

An operating system can be multiuser In this case, resources must be allocated to the users

fairly “Proper” operating systems are multitasking

Resources must be allocated fairly to the processes Users, processes must be protected from each other.

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 13/56

Kernel mode and user mode

Kernel means “central part” The kernel is the central part of os It is a program running at all times Application programs run in “user mode”

Cannot access hardware directly Kernel runs in “kernel mode” (or “supervisor mode”)

Can access hardware, special cpu registers

Operating System: Kernel and boot process

Role of OS What is an operating system? The os is the kernel Kernel in Linux Kernel in Windows xp, 2000, Win nt What does an os do? Is there a User Friendly os? Example: mac os X IE part of Windows? What resources? … Allocated to who/what? Kernel mode and user mode Access Hardware?

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels

References Operating System Kernel and Booting - p. 14/56

How does user program access hardware?

A program that writes to the disk accesses hardware How? Standard library call, e.g., fprintf() Library contains system calls

see slides §15–§18 A system call passes the request to the kernel The kernel, (executing in kernel mode always) writes to the

disk Returns telling user program that it was successful or not

Operating System: Kernel and boot process Role of OS System Calls System calls System Call System Calls — Linux Windows System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 15/56

Kernel: programmers’ standard interface

This is the second important function of the operating

system Provides a standard set of system calls, used by the

libraries User programs usually use the system calls indirectly

since libraries give higher level interface

Operating System: Kernel and boot process Role of OS System Calls System calls System Call System Calls — Linux Windows System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 16/56

System Call

Low level details:

cpu provides a trap instruction which puts the cpu into a priveleged mode, i.e., kernel mode On Intel ix86 architecture, the trap instruction is the int 0x80 instruction

  See include/asm-i386/unistd.h and
   arch/i386/kernel/entry.S in Linux source code.
   See also http://en.tldp.org/LDP/khg/HyperNews/get/syscall/syscall86.html

Sometimes called a software interrupt put parameters into cpu registers before the call save values of many registers on a stack

High level: all this buried in external library interface

Operating System: Kernel and boot process Role of OS System Calls System calls System Call System Calls — Linux Windows System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 17/56

System Calls — Linux

posix specifies particular function calls that usually map

directly to system calls — see man section 2 Provide a higher level interface to system calls Less than 300 of them. Examples:

Call  Description

pid = fork() Create a child process identical

to parent process

exit( status ) Terminate process and return

status

fd = open( file, O_RDONLY ) Open a file for reading, writing

or both

status = close( fd )  Close an open file

n = read( fd, buffer, nbytes )  Read data from file into a buffer
n = write( fd, buffer, nbytes )  Write data from buffer into a file

status = chdir( dirname ) Change working directory of process

Operating System: Kernel and boot process Role of OS System Calls System calls System Call System Calls — Linux Windows System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 18/56

System Calls — Windows and Win32 api

Win32 api provides many thousands of calls No one-one mapping to system calls Not all make a system call On some versions of Windows oss, graphics calls are

system calls, on others they are not Win32 api documented on msdn. Examples:

POSIX  Win32  Description

fork     CreateProcess  create a new process

exit     ExitProcess  Terminate execution
open     CreateFile  Create a file or open existing file

close    CloseHandle  Close a file

read     ReadFile  Read data from a file
write    WriteFile  Write data to a file

Operating System: Kernel and boot process Role of OS System Calls Types of OS Types of Operating System Types of OS? Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 19/56

Types of Operating System

A rough breakdown of the types of os

Operating System: Kernel and boot process Role of OS System Calls Types of OS Types of Operating System Types of OS? Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 20/56

What types of operating systems are there?

There are four main categories; depends on organisation

of the kernel Monolithic operating systems

Linux is a monolithic os Layered operating systems

Windows nt/2000/xp/2003 is described as a layered

architecture Microkernel with client server architecture

The qnx real-time os is truly a microkernel; the kernel is

said to be only eight kilobytes in size! Andrew Tanenbaum wrote the minix operating system

as an example microkernel os for students to study The gnu Hurd os has a microkernel architecture Windows 2000 is described as having a hybrid

layered-microkernel architecture, although Andrew Tanenbaum disagrees:

  http://www.cs.vu.nl/~ast/brown/

Virtual machine architecture

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Monolithic Kernel Monolithic kernel — 2 Structure in a Monolithic Kernel Monolithic kernel: loadable modules Monolithic kernel: Loadable Modules Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 21/56

Monolithic Kernel

A monolithic kernel has all procedures in the same address space. This means that all the code can see the same global

variables, same functions calls, and there is only one set of addresses for all the kernel

Purpose is speed:

to reduce overhead of communication between layers

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Monolithic Kernel Monolithic kernel — 2 Structure in a Monolithic Kernel Monolithic kernel: loadable modules Monolithic kernel: Loadable Modules Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 22/56

Monolithic kernel — 2

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Monolithic Kernel Monolithic kernel — 2 Structure in a Monolithic Kernel Monolithic kernel: loadable modules Monolithic kernel: Loadable Modules Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 23/56

Structure in a Monolithic Kernel

To avoid chaos, a monolithic kernel must be well structured Linux kernel uses loadable modules, which support

hardware and various software features Such as raid, Logical Volume Managers, various file

systems, support for various networking protocols, firewalling and packet filtering,…

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Monolithic Kernel Monolithic kernel — 2 Structure in a Monolithic Kernel Monolithic kernel: loadable modules Monolithic kernel: Loadable Modules Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 24/56

Monolithic kernel: loadable modules

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Monolithic Kernel Monolithic kernel — 2 Structure in a Monolithic Kernel Monolithic kernel: loadable modules Monolithic kernel: Loadable Modules Layered Kernel Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 25/56

Monolithic kernel: Loadable Modules

Loadable modules in Linux kernel support: Dynamic Linking: modules can be loaded and linked with

the kernel, or unloaded, while kernel is executing Stackable Modules: Modules can provide support for each

other, so many modules can be stacked on a lower level module.

Reduces replication of code Hierarchical structure ensures that modules will remain

loaded while required View loaded modules by typing lsmod

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Layered kernel Layered Kernel — 2 Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 26/56

Layered kernel

Has different levels; example: Lowest level manages hardware Next level up manages, e.g., memory and disks Next level up manages i^{/}o,…. Each layer may have its own address space Communication between layers requires overhead Advantage is different layers cannot interfere with each

other.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Layered kernel Layered Kernel — 2 Microkernel Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 27/56

Layered Kernel — 2

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 28/56

Microkernel with Client-Server Arch.

Microkernel architecture keeps the kernel as small as

possible, for the sake of reliability and security As much is done in the user space as possible User space provides servers, such as memory server, file

server, terminal server, process server Kernel directs requests from user programs to user servers

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 29/56

Microkernel Architecture — 2

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 30/56

Microkernel Architecture — 3

Most of operating system is a set of user processes the server processes do most of the work The microkernel mostly just passes requests from client

processes to server processes

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 31/56

Microkernel Architecture — Examples

Mach kernel used as core for many Unix os

including the mac os X gnu Hurd os, initiated by Richard Stallman for the gnu

project The qnx distributed real-time Unix-like os

kernel only 8 KB in size! It can be debated whether Windows nt/2000/xp/2003

operating systems are microkernels: “With all the security problems Windows has now, it is increasingly obvious to everyone that tiny microkernels, like that of minix, are a better base for operating systems than huge monolithic systems.”

— Prof. Andrew Tanenbaum,

               http://www.cs.vu.nl/~ast/brown/

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 32/56

Windows 2000 Architecture

Windows 2000 is described as a hybrid between a layered

architecture and microkernel architecture. hal provides an abstract machine—aim to make porting to

other hardware architectures easier hal + Microkernel ≈ normal microkernel

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Microkernel with Client-Server Arch. Microkernel Architecture — 2 Microkernel Architecture — 3 Microkernel Architecture — Examples Windows 2000 Architecture Windows 2000 Architecture — 2 Virtual machine Boot Process Runlevels References Operating System Kernel and Booting - p. 33/56

Windows 2000 Architecture — 2

Environment subsystem aims to support DOS, Win32, OS/2 applications each environment subsystem uses a dll (dynamic link

library) to convert system calls to Windows 2000 calls The i^{/}o manager contains file system and device drivers Microkernel, hal and “many functions of the executive”

execute in kernel mode. Sacrifice advantage of microkernel of reduced code

executing in kernel mode to reduce communication overhead

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 34/56

Virtual machine

Virtual hardware Many operating systems run independently on same

computer ibm now selling mainframes running many instances of

Linux to Telecom companies — see next slides VMWare allows something similar on pc:

  http://www.VMWare.com
http://www.connectix.com/  used to sell Virtual PC

and Virtual Server, but they have been bought out by Microsoft, who of course, have dropped Linux support:

  http://www.msfn.org/comments.php?id=5516&catid=1

Java Virtual machine also provides virtual hardware that all programs can execute on.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 35/56

Virtual Machine os Examples

ibm designed the cp/cms virtual os for their S/360

mainframe. Later called vm/370 to run on their S/370 mainframes Later called vm/esa on the S/390 hardware Now sold as zvm^{®} running on zSeries mainframes

Supports running many different os, particularly Linux

See http://www.vm.ibm.com/

See how mit run Linux on vm/esa on their S/390 mainframe:

http://mitvma.mit.edu/system/vm.html

Search the web for articles on Linux running on mainframes.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 36/56

Linux on zVM on ZSeries Mainframe

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 37/56

Many Individual Machines

A data centre may have many servers Each must be powerful enough to meet peak demand Most are not at peak demand most of the time … so most are underused … but must pay for electricity for cooling, and for

powering all that reserve capacity

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 38/56

Many Virtual Machines, one Mainframe

Can replace many individual servers with one mainframe running many instances of an os such as Linux The demand spread out among all the virtual machines, total utilisation high — demand shared busy virtual machines get more cpu power to meet peak

demand Much lower power requirements Much less air conditioning cost Much less floor space required

Virtual machines partitioned from each other, like the individual machines in data centre

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Virtual machine Virtual Machine os Examples Linux on zVM on ZSeries Mainframe Many Individual Machines Many Virtual Machines, one Mainframe With Kernels, “small is beautiful” Boot Process Runlevels References Operating System Kernel and Booting - p. 39/56

With Kernels, “small is beautiful”

The reliable operation of any computer depends on its

operating system, i.e., it’s kernel. More complex software has higher chance of bugs,

security problems, vulnerability to worms and viruses Linus Torvalds imposes a strict discipline on kernel

developers to carefully restrict code that will increase size of kernel

Linux does not suffer from “kernel bloat”

Compare the size of the Windows 2000 “microkernel:”

several megabytes, cannot be booted from floppy Linux: small enough to fit on one floppy together with

    many useful tools: http://www.toms.net/rb/

Movies:

Linus discusses Monolithic, Microkernel design , ETU, avi, avi2

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 40/56

Booting an Operating System

The os manages the hard disks.

How can the system read the hard disk to start the os?

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 41/56

Booting a pc

The process of starting the computer ready for use How does a computer boot? Involves: bios (“basic input output system”) finding the boot loader The boot loader starting the kernel For Linux: The kernel starting init init starting everything else

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 42/56

Boot Loader

A boot loader is a piece of software that runs before any

operating system, and is responsible for loading an operating system kernel, and

transferring control to it Microsoft os provides a boot loader that starts their os

from the first active primary partition We use the grub (Grand Unified Boot Loader) boot loader

that can start any operating system from almost any hard disk, floppy or network.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 43/56

The boot process for a pc

the bios performs a power on self-test (post) the bios initialises pci (Peripheral Component

Interconnect) devices the bootloader loads the first part of the kernel into system

ram the kernel identifies and initialises the hardware in the

computer the kernel changes the cpu to protected mode init starts and reads the file /etc/inittab the system executes the script /etc/rc.d/rc.sysinit the system executes scripts in /etc/rc.d/init.d to

start services (daemons)

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 44/56

Before the bootloader: The bios

The bios runs in real mode (like old 8086) bios tests hardware with basic Power On Self Test (post) bios then initialises the hardware. Very important for the pci devices, to ensure no conflicts

with interrupts. See a list of pci devices. bios settings determine order of boot devices; when finds

one, loads first sector into ram, starts executing that code.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 45/56

VMWare Boot Screen

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 46/56

Boot Loaders: what they do

Syslinux is the simplest, grub has the most features, lilo

in between Grub provides many interactive commands that allow:

Reading many different file systems Interactively choosing what to boot Many, many more things (do pinfo grub) All before any operating system started!!

Grub and lilo let you choose what os to boot

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 47/56

The kernel is loaded

Boot loader reads first part of the kernel into ram,

executes the code This initial kernel code loads the rest of the kernel into ram The kernel checks the hardware again The kernel switches from real mode to protected mode

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 48/56

Real and Protected mode

Real mode exists for booting, and so that can run old dos

programs Uses only bottom 16 bits of registers Can only access the bottom 1 mb ram bios only supports real mode Protected mode uses all 32 bits of address registers Allows access to all ram Allows use of memory management unit Normal mode of operation for modern oses on Intel

platform. Cannot call bios functions in protected mode

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Booting an Operating System Booting a pc Boot Loader Boot Process BIOS VMWare Boot Screen Boot Loaders: what they do The kernel is loaded Real and Protected mode init Runlevels References Operating System Kernel and Booting - p. 49/56

Kernel in Protected Mode: init, pid 1

The kernel then starts the first process, process 1:

/sbin/init
/sbin/init reads the /etc/inittab

Init starts reading the script /etc/rc.d/rc.sysinit

/etc/inittab tells init to do this

init then executes scripts in /etc/rc.d/init.d to start services

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on References Operating System Kernel and Booting - p. 50/56

Runlevels

A standard Linux system has 7 modes called runlevels: 0: halt (shut down the machine) 1: single user mode 2: multiuser with no network services 3: full mulituser mode 4: can be customised; default same as 3 5: multiuser with graphical login 6: reboot

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on References Operating System Kernel and Booting - p. 51/56

Directories for each runlevel

If you look in /etc/rc.d, you see one directory for each runlevel, and a directory called init.d:

$ ls /etc/rc.d
init.d  rc0.d  rc2.d  rc4.d  rc6.d      rc.sysinit
rc       rc1.d  rc3.d  rc5.d  rc.local

init.d contains one script for each service. You execute these scripts with the service command, i.e.,

$ sudo service autofs start

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on References Operating System Kernel and Booting - p. 52/56

Runlevel directories

Each of /etc/rc.d/rc[0-6].d contains symbolic links

to scripts in /etc/rc.d/init.d

A symbolic link is a bit like a shortcut in Windows (but

more fundamental) We cover symbolic links in detail later

If name of link begins with K, the script will stop (\underline{k}ill) the

service If name of link begins with S, will start the service The chkconfig program creates these symbolic links

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on References Operating System Kernel and Booting - p. 53/56

Example of service: yum

In the laboratory, you set up the yum service to

automatically install software updates You used the chkconfig program to enable the service.

For a complete manual on chkconfig, type:

$ man chkconfig

For a brief summary of options, type:

$ /sbin/chkconfig --help

Here we use the program find (covered in detail later) to see the links before and after

Operating System: Kernel and boot process

Role of OS

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on

References Operating System Kernel and Booting - p. 54/56

Turning yum Service Off

$ sudo /sbin/chkconfig yum off
$ /sbin/chkconfig yum --list
yum               0:off   1:off   2:off   3:off   4:off   5:off   6:off
$ find /etc/rc.d -name '*yum'
/etc/rc.d/init.d/yum
/etc/rc.d/rc0.d/K01yum
/etc/rc.d/rc1.d/K01yum
/etc/rc.d/rc2.d/K01yum
/etc/rc.d/rc3.d/K01yum
/etc/rc.d/rc4.d/K01yum
/etc/rc.d/rc5.d/K01yum
/etc/rc.d/rc6.d/K01yum

After turning the service off, all the links start with ‘K’ in all runlevels: 0, 1, 2, 3, 4, 5 and 6.

Operating System: Kernel and boot process

Role of OS

System Calls

Types of OS

Monolithic Kernel

Layered Kernel

Microkernel

Virtual machine

Boot Process

Runlevels Runlevels Directories for each runlevel Runlevel directories Example of service: yum Turning yum off Turning yum on

References Operating System Kernel and Booting - p. 55/56

Turning yum Service On

$ sudo /sbin/chkconfig yum on
$ /sbin/chkconfig yum --list
yum               0:off   1:off   2:on     3:on     4:on     5:on     6:off
$ find /etc/rc.d -name '*yum'
/etc/rc.d/init.d/yum
/etc/rc.d/rc0.d/K01yum
/etc/rc.d/rc1.d/K01yum
/etc/rc.d/rc2.d/S50yum
/etc/rc.d/rc3.d/S50yum
/etc/rc.d/rc4.d/S50yum
/etc/rc.d/rc5.d/S50yum
/etc/rc.d/rc6.d/K01yum

Notice that after turning the service on, there are links that start with ‘S’ in runlevels 2, 3, 4 and 5.

Operating System: Kernel and boot process Role of OS System Calls Types of OS Monolithic Kernel Layered Kernel Microkernel Virtual machine Boot Process Runlevels References References Operating System Kernel and Booting - p. 56/56

References

Modern Operating Systems, Second Edition, Andrew S. Tanenbaum, Prentice Hall, 2001, Chapter 1. Good discussion of system calls.

Operating Systems, Fourth Edition, William Stallings, Prentice Hall, 2001, chapter 2 particularly pp 85–91 and 98-99, chapter 4, pp 172–178

Operating Systems: A Concept Based Approach, D. M. Dhamdhere, McGraw Hill, 2002