BOOTSTRAPPING. Konzepte von Betriebssystem-Komponenten

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

Linux booten. Jörg Ahrens

Ausgewählte Komponenten von Betriebssystemen. Lehrstuhl Prof. Paul

Konzepte von Betriebssystemkomponenten

Auf dem Weg: Certified Linux Professional Installation von Linux und Paketmanagement

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

Vorlesung - Linux Boot

Betriebssysteme 1. Thomas Kolarz. Folie 1

Der Bootloader von Windows 2000 / XP

Dateisystem: Einführung

Dateisystem: Einführung

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

Klausur Betriebsysteme, Windows NT. Wintersemester 00/01. Dipl.-Ing. Jürgen Halkenhäuser Dipl.-Ing. T. Kloepfer

Multibooting mit Windows 2000 und Windows XP

So funktioniert der Bootvorgang unter WindowsXP

Hardware & Kernel-Module

Partitionieren und Formatieren

Installieren und Starten von Betriebssystemen

Festplatte klonen: Tutorial

Booten mit EFI. Prof. Dipl.-Ing. Klaus Knopper

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Installieren von Betriebssystemen

I/O: Von der Platte zur Anwendung. Von Igor Engel

Step by Step Installation von Windows Server von Christian Bartl

Linux gefahrlos testen

Grundsoftware üblicher Computersysteme

.DSLWHO*%HWULHEXQWHU6&281,;9

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Betriebssysteme (Windows 2000)

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

So funktionieren Computer

Dateisystem: Einführung

Dateisystem: Einführung

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

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

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Fachreferat. EFI -BIOS Nachfolger-

(PCs SerNr Mainboard Gigabyte 586 ATX2 T-TX) Eingangsbildschirm wenn BIOS aufgerufen wird

2. Hilfe! Mein Computer lässt sich nicht mehr starten

Installationsanleitung der ansitel VM (60-Tage Testversion) am Beispiel Oracle VirtualBox

4.1 Datenträger/Partitionen

BIOS-KONFIGURATION UND SICHERHEITSMERKMAL

Wie ist ein Computer aufgebaut?

Geräteverwaltung: Einführung

Dualboot Installation Windows 10 / Linux-Betriebssystem

10 Jahre KNOPPIX KNOPPIX. Live GNU/Linux System. Schwarz: Transparent, CD Hintergrundfarbe (silber) bei Zweifarbdruck, sonst schwarz.

FP&S. Linux-basierter Zugangsrouter und Firewall

Betriebssysteme Vorstellung

Bootstrap, Bootup & Multiboot

ASUS Disk Unlocker Anleitung

BACKUP Datensicherung unter Linux

Konzepte von Betriebssystem-Komponenten. I/O: von der Platte zur Anwendung

PC Grundlagen, Agenda

informiert zu Memtest86+ Ausführliche Beschreibung:

Linux Grundlagen. Wolfgang Scheicher. 20. Mai 2006

HoferSoft 1990 by HoferSoft

Network-Attached Storage mit FreeNAS

Alle ausgelieferten Versionen der Golem Speicherbank sind. selbstkonfigurierend bei Benutzung des Kickstarts 1.2 oder höher.

Installation eines KOBIL KAAN Professional Kartenlesers

Mac OS X-Client- Management

Klausur Betriebsysteme, Windows NT Musterlösung Wintersemester 00/01. Dipl.-Ing. Jürgen Halkenhäuser Dipl.-Ing. T. Kloepfer

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Anleitung für die Installation des USB Netzwerkkabels unter WIN2000 :

Staatlich geprüfter EDV-Führerschein

Bootvorgang und Partitionstabelle

Installation von open SUSE Leap 15.0

Gebrauch von DVD-RAM-Discs

Wiederherstellung auf abweichender Hardware. Datensicherung für alle Fälle. Einfach mit O&O DiskImage

Fehlerbehebung Linux-Kurs der Unix-AG

EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL

JVM-407. Versions-Update. von V auf V / Printed in Germany

MultiBoot. Teilenummer des Dokuments:

Windows NT. Grundlagen und Praxis. Martin Kuppinger

Linux Tutorium. Linux Tutorium Systemkonfiguration. Linux Tutorium Systemkonfiguration Seite: 1

PUE, UEFI und IPv6 Herausforderungen im Datacenter. Markus Schade

Erstellung und Installation einer Windows Unattended CD

Dateisysteme. Erweiterte Anforderungen an Speicher

Bootvorgang des DSM-Systems Systems Plurix

Wichtige Hinweise zur Arbeit mit der Windows ASR Eigenschaft

Digitale Forensik. Teil 5: Datenträgersicherung (inklusive Übung) Schulung Bundespolizeiakademie Juli 2007

Quick Start Handbuch

MultiBoot Benutzerhandbuch

USB-Stick für die Wiederherstellung von Windows 10 für die One Xcellent Box

BIO-SETUP UND SICHERHEIT

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Handreichung zur Installation von Windows 7-10 in Schulen. BIOS und UEFI. Einführung und Unterschiede

Getting Started Linux DF PROFI II

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

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

Ubuntu Linux LTS installieren

Bios update Anleitung mit Q-Flash im 2D Bios. Wichtige Hinweise!

Bibliotheks-basierte Virtualisierung

5. Firmware-Update. 5.1 Aktualisieren der Firmware. 5.2 Firmware aktualisieren Schritt für Schritt. Wartung 5. Firmware-Update

Installation eines KOBIL Standard Plus Kartenlesers

Betriebssysteme - Überblick

Leitfaden für die Installation von C-MOR in einer Virtuellen Maschine Experten Installation mit eigener Partitionierung ab Version 5.

2017/01/23 15:50 1/5 Bedienung

QNAP NAS Software RAID Management

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

Transkript:

BOOTSTRAPPING Konzepte von Betriebssystem-Komponenten Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Sommersemester 2005 Krasovytskyy Oleg ok82@gmx.net Seite 1 /7

Gliederung. 1. Einleitung. 2. Initialisierung der Hardware. 2.1 Bootstrap Programm. 2.2 Bootprozess. 3. Initialisierung der Software. 3.1 Starten von Windows 2000/NT. 3.2 Starten von UNIX. 4. Zusammenfassung. 5. Quellen. Seite 2 /7

1. Einleitung. Wie funktioniert es nun, einen Rechner, der ja beim Einschalten erst mal kein Betriebssystem hat, zu starten? Es gibt ja nichts, was der Computer erst mal selbst weiß. Dieses generelle Problem, ein System zu starten, wird "" genannt (Problem deswegen, weil der Computer zum Zeitpunkt des Einschaltens nur sehr wenige Ressourcen benutzen kann, da ja alle Treiber und Erweiterung erst durch das Betriebssystem geladen werden, dies aber noch nicht aktiv ist). Der Begriff "Booting" oder "" geht übrigens auf eine Geschichte des Barons von Münchhausen zurück, der sich an seinen eigenen Schnürsenkeln (engl. bootstraps) aus einem Sumpf zog, und beschreibt gut das Problem, das ein Rechner nach dem Einschalten zu bewältigen hat. 2. Initialisierung der Hardware Als erstes muss untersucht werden, ob Hardware richtig angeschlossen ist und funktionsfähig ist. Es wird zum Beispiel nach dem Hauptspeicher geschaut, die Grafikkarte oder der Grafikchip untersucht. 2.1 Bootstrap Programm. Um den Rechner hochzufahren benötigt man ein initiales Programm Bootstrap- Programm. Das Programm ist relativ simpel. Es ist im nichtflüchtigen ROM-Speicher (EEPROM) in der Hardware gespeichert. Dessen Aufgabe ist es die CPU-Register, Geräte- Kontroller und weitere Hardware zu initialisieren. Dazu soll es noch fähig sein den Kernel des Betriebsystems zu lokalisieren, ihn in Hauptspeicher zu laden und anschliessend auszuführen. Da es im ROM gespeichert ist, bereitet es ein Problem den Code des Programms auszuwechseln. Und das ist ein grosser Nachteil, da die Betriebsysteme sich ständig weiterentwickeln. Deshalb entwickelte man bei Computern eine zweistufige Technik: 1. Es wird nur ein winziges Bootstrap-Programm (BIOS-Basic Input Output System) im ROM gespeichert, dessen Aufgabe ist es 2. das ganze Bootstrap-Programm von der Platte zu laden. Und dieses kann leicht geändert werden. Dieses volle bootstrap Programm ist an einer festen Position auf der Festplatte gespeichert, die boot block/sector genannt wird. Die Platte, die den boot sector enthält wird boot disk (system disk) genannt. Seite 3 /7

2.2 Bootprozess. Wenn man den Rechner einschaltet bzw. ein Neustart gemacht wird, beginnt der Prozessor an einer festgelegten Adresse mit der Abarbeitung des im ROM abgelegten BI- OS. Dieses führt einen Test der angeschlossenen Geräte durch (POST-Power On Self Test) und durchsucht folgende Geräte in einer (heutzutage konfigurierbaren) Reihenfolge nach boot sectoren. Standardmäßig ist z.b. die Boot-Reihenfolge (default boot sequence): Diskettenlaufwerk (FDD), CD-Laufwerk, Festplatte (HDD), d.h. das BIOS versucht zuerst von dem Diskettenlaufwerk (Laufwerk A:) zu booten (den boot sector dort zu finden). Befindet sich eine Diskette im Laufwerk, erkennt aber das BI- OS, dass sich kein Betriebssystem auf der Diskette befindet (no system disk = keine bootfähige Diskette) so beschwert sich das BIOS und fordert den Benutzer auf, eine andere Diskette einzulegen. Befindet sich gar keine Diskette im Laufwerk, so versucht das BIOS als nächstes das CD-Laufwerk. Falls es hier auch keine boot-fähige CD im Laufwerk gab, wird anschließend von der Festplatte (C:) gebootet. Hier liest das BIOS von der ersten angeschlossenen Platte den ersten Sektor (Master Boot Record) in den Hauptspeicher. Dieser beinhaltet ein kleines Programm (Boot- Loader) und die Partitionstabelle. In dieser Tabelle sind alle Partitionen, in die die Festplatte aufgeteilt ist, vermerkt. Von diesen wird eine, die bootfähig (enthält den boot sector) und aktiv ist, gewählt. Seite 4 / 7

Als nächstes wird von dieser Partition wiederum der erste Sektor (Boot-Record) gelesen und die Kontrolle an ihn übergeben. Das Programm im boot sector liest das Wurzelverzeichniss der Partition auf der Suche nach dem Kernel des Betriebsystems, lädt ihn in den Speicher und führt ihn aus. Ein Beispiel für Boot-Loader ist GRUB (GRand Unified Boot-loader). Er ist in zwei Stufen aufgeteilt: 1. Die erste Stufe (stage1) kann in den MBR (zusammen mit der Partitionstabelle), in boot sector einer Partition oder einer Diskette geschrieben werden. Aufgabe von Programmcode dieser Stufe, die sehr klein ist (512 Byte), die zweite Stufe zu laden. Hier wird vermerkt an welcher physikalischen Stelle der Festplatte die "stage2" zu finden ist. 2. Die zweite Stufe (stage2) stellt die eigentlichen Funktionen des Boot-Loaders bereit: u. a. das Auswahlmenü, die GRUB-Shell und den Programmcode, mit dem die Steuerung des Rechners an das Betriebssystem übergeben wird. Der größte Unterschied zu anderen Boot-Loadern (z.b. LILO) besteht darin, dass GRUB mehrere Dateisysteme direkt unterstützt. Dadurch, dass GRUB noch vor dem Booten auf das Dateisystem zugreifen kann, ist es nicht notwendig die physikalische Position der GRUB-Konfigurations-Datei und auch vom Kern des Betriebsystems zu kennen, solange nur die Angabe der Partition und der Pfad des zu bootenden Kernels in der Menüdatei richtig eingetragen ist. 3. Initialisierung der Software. Nachdem Boot-Record in den Hauptspeicher geladen wird, durchsucht er daswurzelverzeichniss der Partition nach der Datei, die dann das Betriebsystem lädt. Diese Datei unterscheidet sich von System zu System. 3.1 Starten von Windows 2000/NT. ntldr.exe: Unter Windows 2000/NT heißt die Datei ntldr.exe. Das Programm führt weitere Initialisierungen durch, z.b. das Mini-Datei-System, dessen Aufgabe ist es, andere Systemdateien über die unterschiedlichen Pfade zu finden. Jetzt wird die Datei boot.ini eingelesen, auf dem Bildschirm wird dabei ein Menü angezeigt, das auflistet welche Betriebssysteme noch geladen werden können. ntdetect.com: Falls Windows ausgewählt wird, wird das Programm ntdetect geladen und ausgeführt. Dieses untersucht den Typ der Hardware-Komponenten und gibt diese Information an ntoskrnl.exe weiter. Es lädt noch alle restlichen Treiber in den Speicher, die in der Registrierung aufgelistet sind. Jetzt wird die Kontrolle an das Programm ntoskrnl.exe übergeben. ntoskrl.exe: Führt noch einige Initialisierungen durch und startet den ersten Prozess smss.exe (Sessions-Manager). Dieser startet einen weiteren crss.exe (Win32-Umgebung). ntoskrnl macht noch weitere Aufgaben, und startet am Ende den Anmeldedienst - winlogon.exe. An dieser Stelle ist das System hochgefahren und läuft. Winlogon erzeugt den Authentifizierungs-Manager (lsas.exe) und den Vater aller Dienste (services.exe). Seite 5 / 7

3.2 Starten von Unix. Unter Unix heißt der Kern normalerweise /unix. (1) Startcode von dem Kern ist in Assembler geschrieben: - Stack für den Kern bereitstellen, - CPU-Typ erkennen - Größe der Arbeitsspeicher berechnen und s. w. (2) die main-funktion, die in C geschrieben ist, wird aufgerufen: - Ein Puffer wird für Nachrichten aufgesetzt, um bei der Fehlersuche bei Boot- Problemen zu helfen. - Die Kern-Datenstrukturen werden alloziert. - Autokonfiguration des Systems. Bei der Autokonfiguration des Systems werden alle angeschlossene Ein-/Ausgabegeräte erkannt und die nötigen Treiber dazu dynamisch geladen (nicht in allen Systemen wird dynamisches Laden verwendet). (3) Nun wird der Prozess mit Nummer 0 kreiert (Kernel-Prozess /unix). Dieser setzt die Initialisierung weiter fort: - Einrichten der Echtzeituhr; - Mounten des Wurzelverzeichnisses; - Erzeugen von init (Uhrprozess - Nummer 1) und den Page-Daemon (2. Prozess). (4) Init-Prozess startet abhängig von seinen Parametern entweder Single- oder Multi- User-Modus. Single-User-Modus: wird eine Shell gestartet und auf deren Beendigung gewartet. Multi-User-Modus: startet der init-prozess einen Sohnprozess für alle zu aktivierenden Anschlüsse (Terminals). Danach wird auf jedem Terminal das Programm /etc/getty gestartet und auf dem jeweiligen Bildschirm das login: ausgegeben. Dieses Programm ruft /bin/login aus, das den Benutzer authentifiziert. Und schließlich wird /bin/sh aufgerufen. Hier befindet sich der Benutzer auf der Unix-Kommandoebene und kann Kommandos eingeben. Seite 6/7

4. Zusammenfassung. Moderne Betriebsysteme benutzen ein mehrstufiges Bootstrap-Programm um den Rechner hochzufahren. Ein Teil von diesem Programm befindet sich im nicht flüchtigen Speicher im ROM (BIOS). Das BIOS führt dann Initialisierung von Hardware durch und lädt den ersten Sektor von der Platte (MBR). Das zweite Teil des Programms befindet sich in diesem MBR und kann den ganzen Bootloader von beliebiger Stelle auf der Platte laden. Letzter kann dann das Betriebsystem laden, indem er den Kern des Systems in den Hauptspeicher lädt und die Kontrolle an ihn übergibt. Quellen: [1] "Operating System Concepts" Silberschatz, Galvin, Gagne. Sixth Edition, 2002; [2] "Moderne Betriebsysteme" Andrew S. Tannenbaum. 2.Auflage, Pearson Studium. 2002; [3] "Windows NT 4.x Workstation" Jürgen Ortmann. 1997; [4] "UNIX Grundlagen" Helmut Herold. 4. überarbeitete Auflage, 1999. Seite 7/7