Vorlesung - Linux Boot

Ähnliche Dokumente
Fachreferat. EFI -BIOS Nachfolger-

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

UEFI. Die Abkürzung UEFI steht für Unified. Weitere Infos. UEFI kann mehr. UEFI-Boot

systemd Michael secure Stapelberg GPN12, powered by LuaLATEX 1 / 22

UEFI Secure Boot und alternative Betriebssysteme

EFI Rootkits. Pwning your OS before it s even running SIGINT Andreas Galauner andy@dexlabs.org. Sunday, May 20, 12

1 Verteilen einer Windows Vista

RO-INTERFACE-USB Hardware-Beschreibung

Linutronix - Wir verbinden Welten. Open Source Software in der Industrie. Firmenvorstellung

Mutterplatine, Hauptplatine, Systemplatine, Systemboard

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Staatlich geprüfter EDV-Führerschein

SelfLinux Der Linux-Kernel

gibt es verschiedene Betriebssysteme die je nach Gerät und Nutzer installiert werden können.

Ergänzungen zum Manual OS V 2.05/2.06

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg

Das U-Boot Der Bootvorgang von Linux

How to install ubuntu by crypted file system

Inhalte der heutigen Vorlesung

BNG Bootloader Documentation

Installations-Dokumentation, YALG Team

Ihr Benutzerhandbuch HP COMPAQ D230 MICROTOWER DESKTOP PC

Systemwiederherstellung

D i g i t a l l a b o r

LINUX auf einem Compaq Presario 1800 installieren

Dienste und Runlevel. September 2010 Oliver Werner Linux Systemmanagement 1

Allgemein: Das Mainboard

Windows-Betriebssysteme

KURZANLEITUNG CLOUD BLOCK STORAGE

Master-Boot-Record sichern

Ein kleines Computer-Lexikon

AT90USB Plug. Mini-Entwicklungswerkzeug. Nutzerhandbuch

Dokumentation Einrichten von XEN mit etch Gast und Samba PDC

Sicherheit wird messbar Lösungsansätze und Methoden. Case. 15. September 2009, Hotel St. Gotthard, Zürich

Microsoft Vista Leistungsoptimierung

Linux Grundlagen. Wolfgang Scheicher 20. Mai Allgemeines Bootvorgang Verzeichnisstruktur... 2

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

TSM disaster-recovery unter Windows 8 / Windows Server 2012

Regional Cisco Academy Lingen

Computer Setup (F10) Utility Handbuch HP Compaq Business Desktops Modelle D220 und D230

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

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

TSM disaster-recovery unter Windows 7/Windows Server 2008 R2

wo werden die Daten besser geschützt?

MSI TECHNOLOGY. RaidXpert AMD. Anleitung zur Installation und Konfiguration MSI

XEN- The Debian way of life

Computer Setup (F10) Utility Handbuch HP Compaq Business Desktop DX2000 Microtower

TBE332 Controller. Produktbeschreibung

CPU (Prozessor), Festplatte, Grafikkarte, Soundkarte, diverse Schnittstelle (USB, COM, SERIELL), Arbeitsspeicher (RAM), ROM, CD/DVD-Laufwerk

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Thema: Systemsoftware

Speaker. Dominik Helleberg. Mobile Development Android / Embedded Tools.

Booten aus dem Netz PXE. Technologiepräsentation Rechenzentrum Uni Kiel

Embedded GNU/Linux Basics

Kernel Programmierung unter Linux. Programmierung von Kernelmodulen. Referent Klaus Ruhwinkel

BS-Unterstützung für NVRAM

Im Original veränderbare Word-Dateien

BIOS vs. EFI. Benjamin Molzberger IAV-1. Doch sehen wir uns erst einmal die Eigenschaften an von BIOS und EFI an.

5. Was ist ein CPU, wie wird die Geschwindigkeit angegeben? 6. Nennen Sie 4 Elemente die sich direkt auf einem Mainboard befinden.

Lokales Storage Teil 1

3D Beschleunigung für ATI und NVIDIA einrichten. Bruno Fuddl Kleinert

Umstellung VPSMail von Java-Web-Start auf Installer

L3. Datenmanipulation

Individuelle Linux-Systeme mit Open-Source-Software

Benutzerhandbuch. Neukirchen

AT90USB Plug. Mini-Entwicklungswerkzeug. Benutzerhandbuch

Diese Anleitung funktioniert ab Kanotix 2005/04 (für altere Versionen(nicht empfohlen!) bitte dort schauen: Grundinstallation )

IT-Security durch das passende OS. Oracle Solaris 11.2.

BLIT2008-Board. Uwe Berger

KNOPPIX GNU/Linux ohne Installation

Um Panda Antivirus + Firewall zu installieren, müssen folgende Mindestanforderungen erfüllt sein:

Windows 8.1 Image Engineering. Die Basis für Deployments (DISM, MDT, Tipps für die Praxis)

Erstellung und Installation einer Windows Unattended CD

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

Macrium Reflect Freeware-Tutorial:

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King Braunschweiger Linux-Tage Seite 1/16

Citrix Provisioning Server Marcel Berquez. System Engineer

Betriebssysteme Kap A: Grundlagen

embedded projects GmbH

Embedded Webserver. Einleitung. Jürgen Pauritsch und Stefan Thonhofer

Präsentation. homevisu Familie. Peter Beck. Juni p b e Peter Beck 1

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

WinXP Consoliero Teil 1: Mac OS X Emulation unter Windows XP

Installieren von Betriebssystemen

Audiokommunikation im Computer. Andreas Jäger

USB 2.0 PCI-Karte mit NEC CHIPSATZ

Fighting Cybercrime - Digitale Kriminalistik

Embedded Linux. Arthur Baran

NuVinci Harmony Software und Firmware. Anleitung in deutscher Sprache

Transkript:

Vorlesung - Linux Boot Boot -> Starten des Rechners -> Prüfung auf Funktionstüchtigkeit der Hardware -> untersucht Laufwerke und Massenspeicher -> Bootsektor vorhanden? -> Am Ende soll das Linux-Image in den Hauptspeicher geladen werde Was passiert? Nach dem Start wird das BIOS oder UEFI gestartet. Die Firmware für das BIOS ist auf eine sogenannte ROM gespeichert, das UEFI hat in der Regel einen eigenen Chip auf der Platine. -> Nach dem das BIOS/UEFI ausgeführt worden ist, übergibt dieser den Prozess an den Bootloader und dieser wird gestartet. BIOS (Basic Input Output System): Sehr vereinfacht: -> Selbsttest ob grundlegende Komponenten funktionsfähig sind. -> elektrisches Signal über ein BUS an die Hardware gesendet und erhält ein ACK zurück. -> Initialisierung der Hardware. -> ermittelt Taktfrequenz und Betriebsspannung der CPU Die Abarbeitung des BIOS wird in sogenannten POSTs definiert. POSTs sind fest definierte Abläufe die abgearbeitet werden. Ein POST für die Initialisierung der Hardware ist wie folgt aufgebaut: 1. CPU überprüft 2. SRAM getestet (flüchtige Speicher, in der die Prüfsumme gebildet wird) 3. Cache geprüft 4. Arbeitsspeicher geprüft 5. Grafikspeicher und Grafik Output gecheckt 6. Netzwerkchips werden getestet 7. Restliche Peripherie wird geprüft Nachdem alle POSTs abgearbeitet wurden, startet der Bootloeader -> Beispiele sind Linux-Loader (LILO) &GRUB

UEFI (Unified Extensible Firmware Interface): -> Schittstelle zwischen OS & Firmware -> Focus auf 64-Bit Systeme -> grafische Benutzeroberfläche -> Secure Boot -> modular aufgebaut & erweiterbar UEFI Bootphase SEC Pre EFI DXE BDS TSL RT AL Security (SEC): -> Name unglücklich gewählt -> keine Signaturprüfung oder ähnliche Sicherheitstechnische Aspekte -> initialisiert mit Hardwarespezifischem Code die CPU -> wird aus einem Flash-Speicher geladen -> aktuell existiert in dieser Phase kein Hauptspeicher -> aus diesem Grund wird der CPU Cache als Speicher genutzt -> übergibt am Ende Größe und Speicherort des Caches an die PreEFI Phase PreEFI (PEI): -> Hauptspeicher wird initialisiert & Hardware Komponenten, die für die nächste Phase benötigt werden, werden initialisiert -> Verwendet dafür sogenannte PEIMs (PrefEFI Initialization Module). -> stellen APIs zur gegenseitige Kommunikation zur Verfügung -> Code und daten Sammlung geladen (Firmware Volume Location) -> Flashspeicher -> Gerätetreiber für nächste Phase ->letzte PEIM übergibt an nächste Phase weiter

Driver Execution Environment (DXE): -> restlichen Treiber für Hardwarekomponenten werden geladen -> Protokolle werden registriert -> keine Protokolle im eigentlichen Sinne, sondern Software von Funktionen & Geräten -> realisieren z.b. Textausgaben auf Konsole -> Zugang zu PCI Geräten (Grafikkarte etc.) Protokollunterscheidung: a) Boot Service -> nur verfügbar bevor OS gestartet wird b) Runtime Service -> auch zur Laufzeit des OS Boot Device Select (BDS): -> startet Bootloader & UEFI wird deaktiviert -> wechselt sofort ins TLS, bevor Bootloader ausgeführt wird Transient System Load (TLS): -> Signaturüberprüfung anhand von Secure Boot (falls aktiv) -> ExitBootServices() Funktion beendet die Phase & räumt den Hauptspeicher auf Run Time (RT): -> hier wird das Betriebssystem laufen After Life (AL): -> für ein geordnetes shutdown gedacht -> wird aber in der Praxis kaum genutzt Danach wird der Linux Bootloader gestartet Runtime Services (Zusatzinfo): Wir haben zwischen zwei unterschiedlichen Protokollen unterschied. Einmal der Boot Service und einmal die Runtime Services. Hier ist es möglich auch eigene Runtime Services zu schreiben und über UEFI beim Booten oder während der Laufzeit auszuführen. Dafür wird ein spezielles Framework EFI Developer Kit bereitgestellt. Nähere Infos unter: http://x86asm.net/articles/uefi-programming-first-steps/

SysVinit: Nach dem Bootvorgang ist init der erste Prozess der gestartet wird (meistens mit der PID 1). -> dienst zum Starten, Beenden und Verwalten von Prozessen. -> Hier legt man unter anderem fest in welcher Reihenfolge welcher Dienst gestartet wird Nähere Informationen: https://www.pks.mpg.de/~mueller/docs/suse10.3/opensusemanual_de/manual/sec.boot.init.html Openrc: -> Nachfolger von SysVinit -> vollständig abwärtskompatible zu SysVinit -> weitere Infos: https://wiki.gentoo.org/wiki/openrc Systemd: -> Abwärtskompatible zu SysVinit -> Abhängigkeiten zwischen Prozessen besser verwaltet -> bessere Auslastung beim Systemstart -> Aufgaben in 4 Kategorien unterteil: 1. Hardware einrichten 2. Datenträger einbinden 3. Sockets anlegen 4. Daemons starten und verwalten -> ähnlicher Aufgabenbereich wie SysVinit -> Diese liegen in sogenannten Units vor -> Verwaltung & Konfiguration & Wartung über systemctl -> systemctl sind dafür da, um Dienste zu starten/stoppen, den Timer zu verwalten, Sockets zu verwalten und vieles mehr. -> Service Dienste können vom Nutzer erstellt werden -> Service Files liegen in {lib, etc}/systemd/system -> in etc liegen die System Service Files -> in lib liegen die User Service Files Wir können unseren eigenen Service Files auch schreiben, diese haben folgenden minimalen Aufbau, der weitaus komplexer wird, wenn man sich mit beschäftigt. [Unit] Description = <Name des Service Files> [Service] Type = simple ExecStart = /Pfad/zum/Befehl/oder/tool [Install] WanteBy = multi-user.target

Einige Beispiele für bestimme Typen und Targets, vieles muss man einfach nachlesen und sprengt die Vorlesung zu Linux Boot. Typen: simple := default (sind für Dienste die dauerhaft laufen sollen) forking := Wenn Dienste, weitere Prozesse erzeugen sollen oneshot := einmalig laufender Dienst Target: reboot.target := Service wird nur bei Neustart ausgeführt poweroff.target := Service wird kurz vom runterfahren gestartet