Konzepte von Betriebssystemkomponenten

Ähnliche Dokumente
Systemstart und Programmausführung

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

BOOTSTRAPPING. Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

Linux booten. Jörg Ahrens

Bootvorgang des DSM-Systems Systems Plurix

Ausgewählte Komponenten von Betriebssystemen. Lehrstuhl Prof. Paul

Echtzeitbetriebssysteme

Vorlesung - Linux Boot

UEFI. Unified Extensible Firmware Interface UEFI. OSP 2015 UEFI Rene Brothuhn Seite: 1

Übung 2: Dienste, Umgebungsvariablen und der Bootvorgang unter Windows

Zwei Möglichkeiten die TLB zu aktualisieren

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Freispeicherverwaltung

Maschinencode Dateiformat und Stackframes

Bibliotheks-basierte Virtualisierung

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

BOOTSTRAPPING. Konzepte von Betriebssystem-Komponenten

Grundlagen Rechnerarchitektur und Betriebssysteme

Linux Paging, Caching und Swapping

I Grundlagen der System-Administration 8

Rechnernutzung in der Physik. Betriebssysteme

Betriebssysteme Vorstellung

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Einführung in die Systemprogrammierung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

PUE, UEFI und IPv6 Herausforderungen im Datacenter. Markus Schade

1. Während der Installation Linux, wenn leere Partition für Betriebsystem vorhanden

Konzepte von Betriebssystem-Komponenten

Systemprogrammierung

Bootstrap, Bootup & Multiboot

Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester

Intel x86 Bootstrapping

Wie schreibt man ein Betriebssystem?

2Binden 3. und Bibliotheken

So funktioniert der Bootvorgang unter WindowsXP

Betriebssysteme KU - Einführungstutorium

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

- dynamisches Laden -

Betriebssysteme KU - Bewertung A2 - WS 15/16

Betriebssystemtechnik

Mac OS X-Client- Management

BACKUP Datensicherung unter Linux

Dateisystem: Einführung

Dateisystem: Einführung

Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

Setup Utility Benutzerhandbuch

VMware als virtuelle Plattform

Initramfs - The initial RAM filesystem

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Andere in diesem Whitepaper erwähnte Marken- und Produktnamen sind Warenzeichen der jeweiligen Rechtsinhaber und werden hiermit anerkannt.

Der Bootprozess unter Linux

3. Was müssen Sie tun, um von einem Windows 7 Client die Benutzereinstellungen und die Einstellungen einer bestimmten Anwendung zu exportieren?

1.1.1 Download, Vorbereitung und Installation (Einzelplatzversion)

Turbo Pascal Profibuch

Jürg Gutknecht, SI und ETH Zürich, April 2015

Übung 1 - Betriebssysteme I

Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick

Echtzeit-Multitasking

Partitionieren und Formatieren

Das Paging: Stellen wir uns eine Zahlenmenge vor mit 12 Zahlen und zwar von 0 bis 11.

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Freispeicherverwaltung Martin Wahl,

FP&S. Linux-basierter Zugangsrouter und Firewall

Echtzeit-Multitasking

Installationsanweisungen

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

Lokales Storage Teil 1

HOWTO: Multi Boot USB Stick erstellen

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Herbstsemester cs106 Informatiklabor Teil 4: Partitionierung & Linux Installation. P.Huber@stud.unibas.ch

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Herzlich willkommen! Der Webcast startet pünktlich um 10 Uhr.

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Dateisystem: Einführung

Dateisystem: Einführung

Macrium Reflect Freeware-Tutorial:

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Master-Boot-Record sichern

Betriebssysteme 1. Thomas Kolarz. Folie 1

Fachreferat. EFI -BIOS Nachfolger-

LINUX auf einem Compaq Presario 1800 installieren

Betriebssysteme Kap B: Hardwaremechanismen

Anleitung # 4 Wie mache ich ein Update der QBoxHD Deutsche Version

Staatlich geprüfter EDV-Führerschein

Faronics System Profiler Standard Benutzerhandbuch

Wie groß ist die Page Table?

Festplatte klonen: Tutorial

Virtueller Speicher und Memory Management

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Linux gefahrlos testen

Installationshinweise Linux Kubuntu 9.04 bei Verwendung des PC-Wächter

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Network-Attached Storage mit FreeNAS

Neptun: Dual Boot-Installationen

.DSLWHO*%HWULHEXQWHU6&281,;9

Smartphone Entwicklung mit Android und Java

Linux Memory Management für MySQL

Citrix Provisioning Server Marcel Berquez. System Engineer

Transkript:

Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese

Übersicht 2. Systemstart 3. Programmausführung

TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der Bootloader 1.3 Die setup()-funktion 1.4 Die startup_32()-funktionen 1.5 Die start_kernel()-funktion

1. Systemstart Nach Einschalten: inkonsistenter, zufälliger Zustand des Systems Hardware muss getestet und initialisiert werden Start eines Bootloaders Bootloader lädt Systemkern Systemkern initialisiert das System fertig und startet sich.

1. Systemstart: Ablaufdiagramm B IO S - Testen - Initialisieren - B ootloader S y s tem bereit s tart_k ernel() B ootlo ader - Lädt S ystem kern - S tartet S ystem kern -A bschluss der Initialisierungen -S tart von /sbin/init s etup() -Initialisieren -S tart vorbereiten s tartup_32() -E ntpackt K ernel -Initialisierungen -S tart des K ernels

1.1 Das BIOS Power On Self Test: Test der Hardware (Grafikkarte, Speicher, Tastatur, Controller, uvm.) Initialisierung der Hardware Konfiguration der Komponenten, so dass sie sich IRQ s und I/O-Ports teilen können bzw. keine Konflikte auftreten hierbei.

1.1 Das BIOS (forts.) Suche des Betriebssystems Reihenfolge kann der Benutzer bestimmen Start eines Systems wird vom ersten Datenträger geladen auf dem ein System gefunden wurde

1.2 Der Bootloader Wird vom BIOS geladen Lädt eigentliches Betriebssystem Start von Diskette: Bootloader lag im ersten Sektor, wurde geladen, lädt restliche Sektoren die Kernel enthalten

1.2 Der Bootloader (forts.) Start von Festplatte: Im ersten Sektor (MBR) liegt ein eigener kleiner Bootloader der das System von einer der Partitionen startet. Linux verwendet anstatt dessen LILO oder GRUB. Start via Netzwerk: PXE, TFTP: Server im Netzwerk enthält Kernel und alles was zum booten notwendig ist. Bootloader (oder Boot-ROM) booten das System via LAN.

1.3 Die setup()-funktion Initialisierung der Hardware (Linux verlässt sich nicht auf das BIOS) Anlegen einer provisorischen GDT und einer provisorischen IDT Umschalten der CPU in den Protected Mode, Paging noch deaktiviert.

1.4 Die startup_32() Funktionen Initialisierung der Segmentierungsregister Einrichten eines provisorischen Stacks Ungenutzten Kernel-Speicher mit Nullen initialisieren Entpacken des Kernel-Images

1.4 startup_32() (forts.) Vorbereitung des Ausführungskontextes für Prozess 0 IDT mit Null-Vektoren füllen BIOS-Daten in erste Speicherseite schreiben Sprung zu start_kernel()

1.5 Die start_kernel()-funktion Finale Initialisierung von Page Tables, Page Descriptors, IDT und Slab Allocator. Setzen von Zeit und Datum Ausführung von /sbin/init

TEIL 2: Programmausführung 2.1 Überblick 2.2 Ausführung eines Programms 2.3 Formate ausführbarer Dateien 2.4 Programmsegmente 2.5 Bibliotheken 2.6 Ausführungsüberwachung

2.1 Überblick Laden und Untersuchen von ausführbarer Datei Programm- Interpreter suchen und starten Laden der dynamischen Bibliotheken A usfü hrung des P rogram m s Ausführungsüberwachung

2.1 Überblick (forts.) Programm: Anleitung, Rezept, um einen neuen Prozess anzulegen Verschiedene Formate für ausführbare Dateien Shared Libraries Ausführungsüberwachung

2.2 Ausführung eines Programmes Programmstart über eine der exec()-funktionen Wenn ausführbar: Laden der ersten 128 Byte um Format zu identifizieren (Magic Number) Suche und Start des entsprechenden Programminterpreters

2.2 Ausführung eines Programmes Programminterpreter wird, ähnlich einem normalen Programm gestartet Programminterpreter analysiert Abhängigkeiten von shared Libraries Speicherbereiche werden angelegt Einblenden von Bibliotheken Sprung an Einstiegspunkt

2.3 Formate ausführbarer Dateien Verschiedene Formate: ELF, a.out, COFF, EXE, uvm. Enthalten Methoden zum Laden der Datei und Aufsetzen des Ausführungskontextes, für dynamisch gelinkte Bibliotheken und zum Schreiben des Ausführungskontextes in eine Datei (Core Dump)

2.3 Formate ausführbarer Dateien Formate können unter Linux zur Laufzeit registriert werden. POSIX-konforme Dateien kann Linux nativ ausführen Andere (z.b. Windows-EXE) benötigen einen eigenen Interpreter.

2.4 Programmsegmente Textsegment enthält ausführbaren Code Segment für initialisierte Daten statische Variablen, initialisierte globale Variablen Segment für uninitialisierte Daten Stack-Segment (lokale Variablen, Rücksprungaddr., Aufruf- Parameter, )

2.5 Bibliotheken Compiler: erstellt Objekt-Datei aus einer Quellcode- Datei, erst Linker macht diese ausführbar Statisch gelinkte Bibliotheken: Bibliotheks-Funktionen sind komplett im Objektcode eines Programms enthalten

2.5 Bibliotheken (forts.) Dynamisch gelinkte Bibliotheken (shared Libraries): - Programme enthalten nicht die Funktionen, sondern lediglich Referenzen. - Programminterpreter lädt Bibliotheken und blendet sie in den Adressraum des Prozesses (File Memory Mapping)

2.5 Bibliotheken (forts.) Statisch gelinkte Programme: Größere Objektdateien Dynamisch gelinkte Programme: längere Startzeiten Womöglich Kompatibilitäts-Probleme

2.6 Ausführungsüberwachung Erlaubt es Programmen die Ausführung anderer Programme zu überwachen (Debugger) Überwachung eines Programms auf diverse Ereignisse Einzelschritt-Ausführung

Zusammenfassung Linearer Boot-Vorgang am Beispiel von Linux Komplexität des Vorgangs des Programmstartes