Operating Systems - Lecture 1 -...

Preview:

Citation preview

Operating SystemsLecture 1 - Introduction

Adrien KrahenbuhlMaster of Computer Science

PUF - Hồ Chí Minh

2016/2017

Copyright and License

Copyright c© 2016-2017 Adrien Krahenbuhl.

X Thanks to Raymond Namyst to help me to build the course.X Thanks to David Goglin and Pierre-Antoine Champin for their

available slides.X This support is under license Creative Commons

CC-BY-NC-SA:

https://creativecommons.org/licenses/by-nc-sa/

How to join me ?

Website http://adrien.krahenbuhl.fr/en/teaching/

Mail adrien.krahenbuhl@u-bordeaux.frPlace Here!

Program

Lectures X 7×3h = 21hX with me, from 13/02 until 23/02

Tutorials X 13 × 3h = 39hX After lectures, supervised by Ms. Le Thanh Van

Evaluation X One exam after the lecturesX One project in pair

All documents will be available online on my website.

Before to start

X Who followed a course about “Computer architecture”?

X Who followed courses about “System programming”?X Who never used a Linux system?X Who already a linux kernel?

Before to start

X Who followed a course about “Computer architecture”?X Who followed courses about “System programming”?

X Who never used a Linux system?X Who already a linux kernel?

Before to start

X Who followed a course about “Computer architecture”?X Who followed courses about “System programming”?X Who never used a Linux system?

X Who already a linux kernel?

Before to start

X Who followed a course about “Computer architecture”?X Who followed courses about “System programming”?X Who never used a Linux system?X Who already compiled a linux kernel?

Before to start

X Who followed a course about “Computer architecture”?X Who followed courses about “System programming”?X Who never used a Linux system?X Who already modified a linux kernel?

Before to start

X Who followed a course about “Computer architecture”?X Who followed courses about “System programming”?X Who never used a Linux system?X Who already wrote a linux kernel?

What we will seeA Layered view:

System programming

Operating system

Computer architecture

A wide domain:X from software conceptsX to hardware implementationX using algorithms at each step.

It will be illustrated through the Linux kernel.

Course plan

Lecture 1 IntroductionLecture 2 Generic conceptsLecture 3 Concurrency and synchronizationLecture 4 Time managementLecture 5 Memory management

X 5.1 IntroductionX 5.2 PagingX 5.3 Kernel memory

Lecture 6 File systemLecture 7 Input/Output

Bibliography

X Modern Operating Systems, by Andrew S. Tanenbaum, ed.Pearson

X Operating Systems: Internals and Design Principles, byWilliam Stallings, ed. Pearson

X A lot of web references.

Introduction

A first OS: the BIOS

General concepts

Systems

Introduction A first OS: the BIOS General concepts Systems

What is an OS ?

A first definitionAn OS is an interface between softwares and hardware.

Objectives in 4A:Assist make things simple to users, programmers, softwares.

X code modularity & maintainabilityAbstract expose a virtual interface independent of hardware.

X code portabilityArbitrate manage access to resources

X system reliabilityAuthorize control access to resources

X system security

Operating Systems 1 - Introduction 9/46

Introduction A first OS: the BIOS General concepts Systems

What is an OS ?

A first definitionAn OS is an interface between softwares and hardware.

Objectives in 4A:Assist make things simple to users, programmers, softwares.

X code modularity & maintainabilityAbstract expose a virtual interface independent of hardware.

X code portabilityArbitrate manage access to resources

X system reliabilityAuthorize control access to resources

X system security

Operating Systems 1 - Introduction 9/46

Introduction A first OS: the BIOS General concepts Systems

What is an OS ?

Operating system

Computer architecture

Proc. Proc. Proc. Proc. Proc. Proc. Proc.

{ { {User A User B User C

An OS needs to manage the resources of one computer with:Several processes

X even with few processorsX without resource conflictsX without starvation

Several usersX without starvationX with different privilege levels

Operating Systems 1 - Introduction 10/46

Introduction A first OS: the BIOS General concepts Systems

What is NOT an OS ?

A compiler as gcc, ocamlc, . . .A windowing system as X.org, . . .

A command interpreter as bash, dash, . . .A command line tool as cp, mv, . . .

The root userA “men in black” process monitoring and controlling all the

computer from a back room

Operating Systems 1 - Introduction 11/46

Introduction A first OS: the BIOS General concepts Systems

What CAN BE an OS ?

The kernelthe core executed in privileged mode.

Some libraries aroundas the standard libraries (libc in Linux) providing the systemcalls (GNU/Linux vs. Linux).

Some other tools, services or daemonsthat help the OS to be easier to use.

Operating Systems 1 - Introduction 12/46

Introduction A first OS: the BIOS General concepts Systems

OS examples

X Linux (on a dozen architectures)X Windows (x86 and IA64)X MacOS X (x86 and PowerPC)X Solaris (x86 and Sparc)X FreeBSD, NetBSD, OpenBSDX GNU/HurdX PalmOS, Plan9, Symbian, VxWorks, . . .

Operating Systems 1 - Introduction 13/46

Introduction A first OS: the BIOS General concepts Systems

Root vs. kernel

The root user is not the kernelX Root has a privileged access to the kernelX The kernel let the root user do more thingsX The kernel controls everything:

I it accesses to everything by system callsI it checks what the users want to do

X Root is privileged at software level by the kernelX The kernel is privileged at hardware level by the processor

Operating Systems 1 - Introduction 14/46

Introduction A first OS: the BIOS General concepts Systems

Why is it interesting ?

X Know how an OS works allows to better exploit its computerX “Reinvent the wheel” is uselessX A lot of recurrent problems of three types:

technical hardware managementsoftware design of useful and efficient interfaces

theoretical hard algorithmic problems

Operating Systems 1 - Introduction 15/46

Introduction A first OS: the BIOS General concepts Systems

Reminders on computer architecture

Processor

X executes instructions of programsX uses data in registersX transfers from/to memory by 1/2/4/8/16 bytes

Memory (Random Access Memory)X stores data and programsX volatile

Memory controller (Memory chipset)X manages memory accesses from processor or peripheral

devices

Operating Systems 1 - Introduction 16/46

Introduction A first OS: the BIOS General concepts Systems

Reminders on computer architecture

Peripheral devices

X considered as input/output for storage, network, . . .Input/Output controller (I/O chipset)

X manages communications between peripheral devices,processor and memory

BIOS (Basic Interpreter Operating System)X Non-volatileX detects and configures peripheral devicesX minimal system to boot on the real OS

Operating Systems 1 - Introduction 17/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency:

3Ghz

Instruction cycle:

1ns

Atomic instruction:

100ns

System call:

50ns - 1000ns

Memory

10Go, 50-100ns, 50Gb/s

Cache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle:

1ns

Atomic instruction:

100ns

System call:

50ns - 1000ns

Memory

10Go, 50-100ns, 50Gb/s

Cache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction:

100ns

System call:

50ns - 1000ns

Memory

10Go, 50-100ns, 50Gb/s

Cache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call:

50ns - 1000ns

Memory

10Go, 50-100ns, 50Gb/s

Cache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory

10Go, 50-100ns, 50Gb/s

Cache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory

10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI

Gb/s - 100+ns

Interruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption 5µ

Disks Mechanic:

1+Tb, 10ms, 10-100Mb/s

SSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption 5µ

Disks Mechanic: 1+Tb, 10ms, 10-100Mb/sSSD, NVMe:

0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption 5µ

Disks Mechanic: 1+Tb, 10ms, 10-100Mb/sSSD, NVMe: 0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home:

10-1000ms, 1-100Mb/s

HPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption 5µ

Disks Mechanic: 1+Tb, 10ms, 10-100Mb/sSSD, NVMe: 0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home: 10-1000ms, 1-100Mb/sHPC:

1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction A first OS: the BIOS General concepts Systems

Numeric scales

Processor Frequency: 3GhzInstruction cycle: 1nsAtomic instruction: 100nsSystem call: 50ns - 1000ns

Memory 10Go, 50-100ns, 50Gb/sCache memory 10kb-10Mb, 1-10ns

Bus PCI Gb/s - 100+nsInterruption 5µ

Disks Mechanic: 1+Tb, 10ms, 10-100Mb/sSSD, NVMe: 0.1-10Tb, 1-100µ, 0.1-1Gb

Network At home: 10-1000ms, 1-100Mb/sHPC: 1µ, 10Go/s

Operating Systems 1 - Introduction 18/46

Introduction

A first OS: the BIOS

General concepts

Systems

Introduction A first OS: the BIOS General concepts Systems

What happens during the boot process?

The hardware boot:1. At the beginning, processors doesn’t know what to do... and

the memory is empty2. The first core is configured to execute the code stored at a

specific address:I The system is configured to have its boot code at this memory

addressI This address points to a special memory, a ROM (Read Only

Memory) non-volatile

Operating Systems 1 - Introduction 19/46

Introduction A first OS: the BIOS General concepts Systems

What happens during the boot process?

Boot on the first OS:3. The processor executes the BIOS, UEFI or Open Firmware4. Low-level interface with hardware to detect components:

I Other processors, peripheral memories, . . .I Other resources as embedded memories, ports, . . .

5. Allows to do more or less things:I Graphical configuration for processor tunning, choice of boot

devices, . . .I Execute codes from several locations as the first hard disk, a

CD, a USB device, the network (PXE), . . .6. At the end, BIOS loads the OS code . . .

I often from the first hard disk (Master Boot Record)7. . . . and executes it.

Operating Systems 1 - Introduction 20/46

Introduction A first OS: the BIOS General concepts Systems

What happens during the boot process?

6. After the BIOS, it is not an obligation to boot on a real OS.We can boot on a Boot loader (Lilo or GRUB), a minimalOS designed to choose:X On which real OS to boot

I on which partition of the hard diskI with which kernel file → imply to be able to read this file

X With which parameters

Operating Systems 1 - Introduction 21/46

Introduction A first OS: the BIOS General concepts Systems

What happens during the boot process?

7. The Boot loader jump to the kernel program and the kernel:a detects hardware resources through the BIOSb builds basic software resources: code loading, page table,

device descriptors, . . .c starts other coresd starts some daemons (kernel threads for the kernel tasks in

background)

Operating Systems 1 - Introduction 21/46

Introduction A first OS: the BIOS General concepts Systems

OS booting

X The task “kernel loading” turns into a real user process: InitI The kernel is functional, the OS starts.

X Init loads software services configured by administrator:I Peripheral manager: loading of driver modulesI User daemons: user services as background tasks, session

manager, . . .

Operating Systems 1 - Introduction 22/46

Introduction A first OS: the BIOS General concepts Systems

Summary

Operating Systems 1 - Introduction 23/46

Introduction

A first OS: the BIOS

General concepts

Systems

Introduction A first OS: the BIOS General concepts Systems

OS goals

Make the system simpler to use

X abstraction of peripheral devicesImprove the system efficiency

X provide resources efficientlyFacilitate development

X keep the same way to provide the same servicesProtect programsSecure with regard to other users

Operating Systems 1 - Introduction 24/46

Introduction A first OS: the BIOS General concepts Systems

Interface between human and computer

X Interface with a uniform access to peripheral devicesI hide technical details

X Program executionX Controlled accesses to data:

I Show the structured content of storing and network devicesI Provide functions of edition, development, communication, . . .

X Manage errors properly:I report hardware errors to programsI react in case of software error: “punish or correct”

X Provides usage and execution statisticsI the user can adapt the system configuration more easily (e.g.

see manpage of df )

Operating Systems 1 - Introduction 25/46

Introduction A first OS: the BIOS General concepts Systems

Historical evolution

Serial Processing ~1950X Manual start of a new program after the previous one end

Simple batch system ~1960X Queue of programs

Multiprogrammed batch systems ~1970X Take advantage of hardware by alternating processes

Time sharing ~1980X Automatic alternating between processesX Interactivity

Operating Systems 1 - Introduction 26/46

Introduction A first OS: the BIOS General concepts Systems

What is a process?

X A dedicated memory contextI Execution independent from other processes

X Data private for the OSI In order to manipulate the process

X Concurrent executions to maximize the use of hardwareresources

X An execution context (registers + stack)I Eventually several in case of multithreadingI Allows blocking I/O without block the entire process

Operating Systems 1 - Introduction 27/46

Introduction A first OS: the BIOS General concepts Systems

Multitasking system and preemption

Multitasking systemExistence and execution of several and simultaneous tasks

Preemptive systemNon-constrained scheduling, depending of the current processX The system can force this scheduling

Operating Systems 1 - Introduction 28/46

Introduction A first OS: the BIOS General concepts Systems

Memory management

X Process isolationI No collision between memories → clean data and instructionsI Allowed by virtual memory and hardware support

X Transparent allocation and managementI No constraint for the programmer

X Modular programmingI Reusable libraries

X Memory sharing with protectionX Storage in persistent memory

Operating Systems 1 - Introduction 29/46

Introduction A first OS: the BIOS General concepts Systems

Data protection and security

X Authorization controlI Access to critical system dataI Access and modification of user data

X User authenticationX Survival to a technical problem ?

Operating Systems 1 - Introduction 30/46

Introduction A first OS: the BIOS General concepts Systems

Resource scheduling and management

X Fair access to resourcesI Specifically for tasks of same type: how do that with

multithreaded processesX Make differences depending on task classes: interactive, I/O,

pure computing, . . .X Dynamic controlX Efficiency

I Hardware using and reactivityX Scheduling of processes and/or I/O

I In which order send reading/writing to the disk?X Deadline constraints

I Event must occur before . . .I Real time systems

X Hardware constraints (ex: elevator)

Operating Systems 1 - Introduction 31/46

Introduction A first OS: the BIOS General concepts Systems

SMP and NUMA

X New scheduling constraintsX SMP (Symmetric MultiProcessor)

I Multiple processorsI Concurrent accessI Affinity for a processor: cache, TLB, ...I Affinity of threads of a same process

X NUMA (Non-Uniform Memory Access)I Affinity for memory areas

Operating Systems 1 - Introduction 32/46

Introduction

A first OS: the BIOS

General concepts

Systems

Structure

Introduction A first OS: the BIOS General concepts Systems

Structure of an OSX Kernel

I CoresI Drivers of peripheral devicesI Interface for the user

X Low-level libraries for userI System calls to discuss with the kernel → Essential ! provided

by the kernel.X Above: your applications.X Memory management, central part of the system

I ProcessesI File systemI Network

X File system and storageX SchedulingX Communication inter-processX Network

Operating Systems 1 - Introduction 33/46

Introduction A first OS: the BIOS General concepts Systems

:

Operating Systems 1 - Introduction 34/46

Introduction A first OS: the BIOS General concepts Systems

Monolithic kernel

Operating system

System

VFS, System call

IPC, File System

Scheduler, Virtual Memory

Device Drivers, Dispatcher, ...

Application

Hardware

Monolithic Kernelbased Operating System

kernelmode

usermode

X Set of procedures able to call each otherI Very few organization

X Often divided in:Main procedures system calls

Service procedures effective processingUtility procedures management of lists, hash tables, . . .

Operating Systems 1 - Introduction 34/46

Introduction A first OS: the BIOS General concepts Systems

Monolithic kernel by layers

Operating system

System

kernelmode

usermode

Basic IPC, Virtual Memory, Scheduling

UNIXServer

DeviceDriver

ApplicationIPC

Hardware

"Hybrid kernel"based Operating System

Application

FileServer

X Try to organize the monolithic partsX Hard to define limits between layers:

I Memory management needs I/Os to fill pagesI I/Os need memory to allocate temporary buffers

X Passing through all layers restrict performances

Operating Systems 1 - Introduction 35/46

Introduction A first OS: the BIOS General concepts Systems

Modular kernels

Operating system

System

kernelmode

usermode

Basic IPC, Virtual Memory, Scheduling

UNIXServer

DeviceDriver

FileServer

ApplicationIPC

Hardware

Microkernelbased Operating System

Application

X Dynamic loading/unloading of optional code:I Device driversI Specific functionalities

X Reduction of the initial kernelX Allow dynamic evolutions (without reboot)

Operating Systems 1 - Introduction 36/46

Introduction A first OS: the BIOS General concepts Systems

Monolithic or micro kernels?

Monolithic too big? X Not organized, even with layersX Hard to incorporate security: too many

interactionsX Hard to maintain and evolve

Micro kernel X Only the real necessitiesX Everything else in dedicated server

processes

Eternal dispute between Torvalds and Tanenbaum . . .

Operating Systems 1 - Introduction 37/46

Introduction A first OS: the BIOS General concepts Systems

Micro kernels

Operating system

System

kernelmode

usermode

Basic IPC, Virtual Memory, Scheduling

UNIXServer

DeviceDriver

FileServer

ApplicationIPC

Hardware

Microkernelbased Operating System

Application

DesignX A server for each task (processes, memory, . . . )

I Each server in a isolated memory spaceI Communication with applications by messages

X Simple and uniform interfacesX Extensible, flexible, reliable

Operating Systems 1 - Introduction 38/46

Introduction A first OS: the BIOS General concepts Systems

Micro kernels

Operating system

System

kernelmode

usermode

Basic IPC, Virtual Memory, Scheduling

UNIXServer

DeviceDriver

FileServer

ApplicationIPC

Hardware

Microkernelbased Operating System

Application

PerformancesX Use of messages slower than direct calls to kernel?X Too many critical interactions between OS components?X Hard to compare to monolithic kernels: no real OS

available (GNU/Hurd?)

Operating Systems 1 - Introduction 39/46

Introduction A first OS: the BIOS General concepts Systems

Linux monolithic?

http://www.makelinux.net/kernel_map/

Operating Systems 1 - Introduction 40/46

Examples

Introduction A first OS: the BIOS General concepts Systems

Windows

X Very modularI Set of Managers (Executive): I/O, Cache, PnP, Power,

Security, VM, Process, . . .I Abstraction layer for devicesI Device driversI Windowing and graphic design

X Hybrid kernel (pseudo micro kernel)I Almost all run in only one kernel space for performance reasons

X Local Procedure CallsI Communication by messages between applications and

managers: client/server model

Operating Systems 1 - Introduction 41/46

Introduction A first OS: the BIOS General concepts Systems

Windows

X Object-oriented design (polymorphism)I Handles allow to manipulate everything by the same way

X SMP support, threads, interprocess communicationsX Scheduler of preemptive threads with priorities:

I Affinities with cache and NUMAI Dynamic adjustment of priorities according to passive waiting

(GUI) and CPU consumptionX Initially designed for office

Operating Systems 1 - Introduction 42/46

Introduction A first OS: the BIOS General concepts Systems

Unix

X Created at the end of 60sX Designed for servers and networksX Portable because quickly wrote in CX “All is file”X Kernel + set of libraries and applications (libc)

I System calls through the System Call InterfaceX Monolithic kernel

I Common functionalitiesI Memory managerI Bloc devicesI Character devicesI SchedulerI Vnode/VFS interface for files

Operating Systems 1 - Introduction 43/46

Introduction A first OS: the BIOS General concepts Systems

Unix

System V release 4 Academic and commercial (AT&T and Sun)Solaris (SunOS) Commercial distribution based on SVR4

BSD (Berkley Software distribution)X Widespread in the academic worldX Base of MacOS

Minix Clone with educational goal

Operating Systems 1 - Introduction 44/46

Introduction A first OS: the BIOS General concepts Systems

Linux

X Appeared in 1991X Based on Minix: cheap for personal usageX Free (GPL-2)X Collaborative development on internetX Supports a lot of architectures and peripheral devicesX Designed for servers, workstations, office stations, embedded,

. . .X Dynamic loading of kernel modules

I Automatic loading depending on application needsI Hierarchy based on symbol dependencies

X Particular monolithic structureI Only some functions available for other modules

(EXPORT_SYMBOL)I No fixed interface

Operating Systems 1 - Introduction 45/46

Introduction A first OS: the BIOS General concepts Systems

GNU Hurd

X The only real OS based on a micro kernel?I Unix on micro kernel MachI Limited device drivers

X IPC between components by the micro kernelI Server and application processesI The user can run its own servers (network, file system, . . . )

I without to be rootI without impact on the rest of the system

X Translator notionI Functionality managed by processes (file, folder, network

access, . . . )I Easy to browse a website, a ftp server, an archive, . . .

Operating Systems 1 - Introduction 46/46

Recommended