Embedded-Linux-Seminare. Linux als Betriebssystem

Ähnliche Dokumente
Dämon-Prozesse ( deamon )

Embedded-Linux-Seminare. Toolchains

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Einführung in die technische Informatik

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Tipps und Tricks zu Netop Vision und Vision Pro

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

4D Server v12 64-bit Version BETA VERSION

Herzlich Willkommen bei der nfon GmbH

Formular»Fragenkatalog BIM-Server«

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

How to do? Projekte - Zeiterfassung

Windows Server 2008 (R2): Anwendungsplattform

Rillsoft Project - Installation der Software

YouTube: Video-Untertitel übersetzen

Anlegen eines Facebook-Profils (Privat-Profil) für BuchhändlerInnen und andere -- Stand Mai 2011

SQL Server 2008 Standard und Workgroup Edition

SQL Server 2005 Standard Edition SQL Server 2005 Enterprise Edition SQL Server 2005 Workgroup Edition

Prozesse und Logs Linux-Kurs der Unix-AG

Windows Small Business Server (SBS) 2008

Workshop: Eigenes Image ohne VMware-Programme erstellen

SharePoint Demonstration

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Print2CAD 2017, 8th Generation. Netzwerkversionen

Prozesse. Stefan Janssen. Alexander Sczyrba

SECURE DOWNLOAD MANAGER

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

LPT1 Anschluss mit PCMCIA Karte

Secure Download Manager Übersichtsleitfaden Vertraulich Version 2.2

Leitfaden zum Sichern einer Festplatte als Image mit der System Rescue CD

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Microsoft Office 365 Kalenderfreigabe

Handbuch USB Treiber-Installation

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Lizenzierung von System Center 2012

Adobe Volume Licensing

Urlaubsregel in David

Übung: Verwendung von Java-Threads

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

Kartei zum Lesetagebuch

.NET Code schützen. Projekt.NET. Version 1.0

Bedienungsanleitung für den SecureCourier

Operating System Kernels

teischl.com Software Design & Services e.u. office@teischl.com

transfer.net Erste Schritte mit transfer.net

E-Government Sondertransporte (SOTRA) Registrierung von Benutzerkennung

Anlegen eines Twitter-Accounts für Buchhandlungen -- Stand Mai 2011

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

E-TIME ADVANCED Dokumentation zum Vorgehen bei der elektronischen Zeiterfassung. Geben Sie folgende Internetadresse ein:

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

PowerPoint 2010 Mit Folienmastern arbeiten

Lehrer: Einschreibemethoden

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

ALLGEMEINE BEDINGUNGEN LIZENZBEDINGUNGEN

Dynamic Ressource Management

CA Übung Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

Lizenzierung von Windows Server 2012

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

System Monitoring mit strace. Systemcall tracing

Anbindung des eibport an das Internet

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

ICS-Addin. Benutzerhandbuch. Version: 1.0

Die Post hat eine Umfrage gemacht

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

OFS: Ein allgemeines Offline-Dateisystem auf Basis von FUSE

Was ist Open Source Software und wem gehört sie?

Zählen von Objekten einer bestimmten Klasse

Anleitung zur Nutzung des SharePort Utility

Logging, Threaded Server

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Zur Konfiguration werden hierbei das Setup-Tool und die Shell verwendet.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Anforderungen an die HIS

ARCO Software - Anleitung zur Umstellung der MWSt

Installation Hardlockserver-Dongle

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

TIMI: Technische Informatik für Medieninformatiker

Einzelplatz - USB-Lizenz

Was meinen die Leute eigentlich mit: Grexit?

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Benutzerhandbuch - Elterliche Kontrolle

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Java Entwicklung für Embedded Devices Best & Worst Practices!

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Transkript:

Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Kopier-Rechte Dieses Dokument steht unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Namensnennung Der Lizenzgeber erlaubt die Vervielfältigung, Verbreitung und öffentliche Wiedergabe seines Werkes. Der Lizenznehmer muß dafür den Namen des Autors/Rechteinhabers nennen. Weitergabe unter gleichen Bedingungen Der Lizenzgeber erlaubt die Verbreitung von Bearbeitungen nur unter Verwendung identischer Lizenzbedingungen. Lizenz Text : http://creativecommons.org/licenses/by-sa/3.0/deed.de 2

Anforderungen an Betriebssysteme Umgebung für Applikationen und User bereitstellen Zugriff auf die Hardware ermöglichen und verwalten Schutz des Systems vor falschen Zugriffen Einige Betriebssysteme erlauben dem User direkten Zugriff auf die Hardware DOS Real-Time Systeme Andere Betriebssysteme verbergen den Low-Level Zugriff auf die Hardware Unix Linux 3

Linux und Hardwarezugriff (1) Linux Kernel regelt den Low-Level Zugriff auf die Hardware Normale Applikationen haben nur Zugriff auf das virtuelle Filesystem und die Netzwerktreiber Zwei Level Kernel-Space Für Kernel und Treiber Zugriffsrechte auf das komplette System User-Space User Applikationen und Bibliotheken Kein direkter Zugriff auf die Hardware Zur Umsetzung muss die CPU mindestens zwei Zugriffs-Level unterstützen 4

Linux und Hardwarezugriff (2) U s e r - S p a c e Applikation Applikation Applikation Applikation S y s t e m C a l l I n t e r f a c e S C I Kernel Treiber Treiber Treiber K e r n e l - S p a c e 5

System Call Interface Ermöglicht den Übergang vom User-Space zum Kernel-Space Die Implementierung ist CPU abhängig x86: int 0x80 arm: swi (Software Interrupt) svc (Supervisor Call) ppc: sc (System Call) Kernel und Treiber stellen Funktionen zur Verfügung, die über System-Calls zu erreichen sind. Es gibt ca. 300 System-Calls für Datei und Device Zugriffe, Netzwerk, Inter-Prozess Kommunikation, Prozess Management, Speicher Verwaltung, Timer, Threads, etc. Das Interface ist stabil und es können nur neue System Calls durch Entwickler hinzugefügt werden. 6

System-Call Beispiel x86 section.data hello:.ascii ''hello world!\n''.section.text.global _start _start: movl $4, %eax # 4 = write syscall movl $1, %ebx # 1 = stdout leal hello, %ecx # pointer to string movl $13, %edx # string length int $0x80 # do syscall movl $1, %eax # 1 = exit syscall movl $0, %ebx # 0 = return code int $0x80 # do syscall 7

System-Call Beispiel arm data msg:.ascii "Hello World!\n".text.global _start _start: mov r0, #1 # 1 = stdout ldr r1,.l0 # string address mov r2, #13 # string length mov r7, #4 # 4 = write syscall svc 0x00000000 # syscall mov r0, #0 # 0 = exit code mov r7, #1 # 1 = exit syscall svc 0x00000000 # syscall.l0:.word msg 8

System Call Die System Calls können in Assembler umgesetzt werden Vorteil: Das Programm ist einfach und klein Nachteil: Das Programm ist nur mit viel Aufwand auf andere Hardware portierbar. Sinnvoll wäre ein Interface, das von der Applikation genutzt werden kann System Calls in Bibliothek packen. Bei Architekturwechsel muss nur diese neu generiert werden Standard C Bibliothek libc6 / GNU glibc2 eglibc rawlib dietlib uclibc 9

System Call Applikation open() C-Bibliothek int 0x80 Syscall Handler Treiber open() Kernel 10

Standard C-Bibliothek Applikationen können gegen die Standard C-Bibliothek gelinkt werden. statisch Alle referenzierten Funktionen werden in die Applikation eingefügt Die C-Bibliothek braucht auf dem Target nicht vorhanden zu sein Die Applikation wird groß Das gesamte System kann kleiner werden, da die C-Bibliothek wegfallen kann dynamisch Alle referenzierten Funktionen existieren nur in der Bibliothek Die Applikation wird kleiner Loader wird benötigt C-Bibliothek muss auf dem Target vorhanden sein 11

C-Bibliotheken Die Größe der fertigen Applikationen variiert mit den verschiedenen C-Bibliotheken int main() {} Nicht gestripped Gestripped libc6 (dynamisch) 13 kb 3 kb libc6 (statisch) 1519 kb 379 kb µclibc (statisch) 6292 Bytes 1992 Bytes dietlibc (statisch) 1384 Bytes 752 Bytes 12

Prozesse Prozesse übernehmen die Arbeit im Linux-System Ein Prozess wird durch fork() erzeugt und enthält Einen Adress-Raum mit dem Programm Code, Daten, Stack, Shared Libraries, etc. Einen Thread der die main() Funktion ausführt Weitere Threads können im existierenden Prozess erzeugt werden und nutzen den selben Adress-Raum Jeder laufende Thread wird durch den Kernel mit einer Structure vom Typ task_struct verwaltet. Der Scheduler verwaltet den ersten Thread eines Prozesses genauso wie die weiteren erzeugten Threads. Jeder Prozess glaubt der gesamte Speicher gehört ihm glaubt die ganze CPU gehört ihm 13

Prozesse Prozesse werden durch PID gekennzeichnet eindeutiger Wert innerhalb des laufenden Systems Default Maximum Wert ist 32768 (short int) Maximum kann geändert werden echo 16384 > /proc/sys/kernel/pid_max fork()=56 fork()=0 Prozess 1 PID = 37 Ressourcen kopieren SIGCHLD Prozess 2 exit() PID = 56 14

Prozesse Alle Prozesse des Linux Systems formen einen Baum Ein Prozess kann mehrere Childs haben Jeder Prozess hat nur einen Parent Der oberste Prozess ist init Prozesse können zu Gruppen zusammengefasst werden 15

Lebenszyklus eines Threads Thread erzeugt durch fork() oder pthread_create() Der Thread ist vom Scheduler ausgewählt EXIT_ZOMBIE Task beendet, aber die Ressourcen sind noch nicht freigegeben. Wartet, dass der Eltern-Prozess das Ende bestätigt TASK_RUNNING fertig, aber nicht am laufen Thread wird vom Scheduler unterbrochen, um einen anderen Thread laufen zu lassen TASK_RUNNING am laufen Event ist passiert oder Prozess hat Signal empfangen. Thread wird wieder lauffähig. TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_KILLABLE wartet Thread beschließt, auf Wait Queue auf Event zu warten 16

Schlafen Ein Prozess kann sich schlafen legen, wenn er auf Daten wartet User-Space Prozess... Device File Lesen System-Call... Andere Prozesse werden geschedult Schläft System-Call Prozess Return Fragt nach Daten Aufwecken Benachrichtigung, dass Daten da sind Interrupt Handler 17

Speicher Verwaltung Physikalischer Speicher Virtueller Adress-Raum 0xFFFFFFFF Kernel 0xC0000000 RAM 1 Prozess 1 RAM 2 MMU CPU 0x00000000 0xFFFFFFFF Kernel 0xC0000000 Alle Prozesse haben ihren eigenen virtuellen Adress-Raum. Jeder Prozess glaubt er habe Zugriff auf den gesamten physikalischen Speicher 0x00000000 Prozess 2 18

Speicher Organisation 0xFFFFFFFF 0xC0000000 0x00000000 Kernel Prozess 1GB für Kernel Space reserviert Enthält Kernel Code und Daten Strukturen Der meiste Speicher kann direkt auf den physikalischen Speicher an einem festen Offset gemappt werden. Jeder User Prozess sieht 3GB Speicher Prozess Code, Daten, Stack, Memory-mapped Files Dieser Speicher ist nicht unbedingt auf den physikalischen Speicher gemappt. Speicher wird dynamisch durch Page Fault Exception zugewiesen Kann zu Out of Memory führen 19

Scheduler Der Scheduler verwaltet die Prozesse und weist ihnen CPU Zeit zu Linux setzt einen Preemptive Scheduler ein Prozesse auf gleicher Prioritätsebene werden Round Robin verwaltet Prozesse können von Prozessen höherer Priorität unterbrochen werden Linux besitzt zwei Prioritäts Bereiche User Prioritäten oder Nice Level: Werte von -20 bis +19 Soft-Realtime Prioritäten Höchste Priorität Niedrigste Priorität Soft-Realtime 0-99 -20 - +19 20

Completly Fair Scheduler CFS Verwendet Load Balancing mit einem Rot-Schwarz Baum Verwendet Scheduling Klassen Die Berechnung ist nur mathematisch nicht heuristisch Nano-Sekunden basiertes Accounting unabhängig von HZ oder Jiffies Task mit der längsten Wartezeit im Rot-Schwarz Baum wird als nächstes selektiert Wenn ein Task in die Runqueue kommt wird ein wait_runtime Wert inkrementiert abhängig von der Anzahl der Prozesse die aktuell in der Runqueue sind und ihren Prioritäten Wenn der Task geschedult wird, wird der wait_runtime Wert dekrementiert. 21