49

Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Embed Size (px)

Citation preview

Page 1: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

1

Page 2: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Mobile Betriebssysteme

Prof. Dipl.-Ing. Klaus Knopper

(C) 2018 <[email protected]>

Schwarz: Transparent, CD−Hintergrundfarbe (silber) bei Zweifarbdruck, sonst schwarz.KNOPPIX

Live

GN

U/Li

nux

Syst

em

”Mobile Programmierung“ im Sommersemester 2018

Folie 1

Lernziel

í Grundsatzlichen Aufbau von Betriebssystemen in Theorieund Praxis kennen und verstehen,

í grundlegende Konzepte von Multitasking, Multiuser-Betriebund Hardware-Unterstutzung / Resource-Sharing erklarenkonnen,

í Zusammenhang von Betriebssystem und Ubiquitous + Mo-bile Computing herstellen,

í mit heterogenen Betriebssystemumgebungen und Virtua-lisierung arbeiten, Kompatibilitatsprobleme erkennen undlosen,

í Grundlage fur System-Programmierung auf mobilenGeraten.

Folie 2

Computing ohne Betriebssystem (1)

”Teensy“ Mikrocontroller (Nano-+ Arduino-Board), 2 TFT-Displays,

Stromversorgung, C-Programm (Sketch)

Steuert beispielsweise durch ein standig laufendes Programm(ohne Betriebssystem) bis zu zwei Mini-TFT-Displays an.

2

Page 3: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 3

Computing ohne Betriebssystem (2)

Beispiel”3D-Drucker“: Arduino

Mega Microcontroller mit Leis-tungselektronik steuert Stepper-Motoren an, misst Temperaturund kontrolliert End-Switches.

Folie 4

Kombination: Steuerung eines 3D-Druckers

STL−Files

Commands

Status Info

Statistics

Raspberry Pi

Arduino Controller

Wifi

3D Printer

Octoprint Server

USB User−Interface

GCODE

+ Octoprint kommuniziert mit dem Drucker uber primitive +G-CODE Steuerbefehle, bietet dem Benutzer aber uber einenunter Linux/Raspi laufenden Webserver eine komfortable Ober-flache.

Folie 5

Warum Linux als mobiles OS?

í An + Unix, einem der altesten Multitasking/Multiuser-Systeme, angelehnt,

í Funktionsweise und”Interna“ gut dokumentiert,

í technische Konzepte auch auf andere Betriebssystemeubertragbar,

í Open Source (Folie 16 ff.):

ë Bauplan / Quelltext aller essentiellen Komponenten istoffengelegt,

ë kostenfrfeie Nutzung auch im kommerziellen Umfeld,

ë Kopie/Modifikation/Verbreitung erlaubt.

3

Page 4: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 6

Ein wenig Geschichte (1)

um 1970: Ken Thompson (Bell Labs): Dokumentenverwaltungssystem +

MULTICS/PDP-7 + UnixEnde der 70er: University of California in Berkeley (UCB): +

”Berkeley

System Distribution“ (BSD), Ansatze zur Netzwerkfahigkeit und vir-tueller Speicher.

70er-80er: Wettbewerb zwischen den beiden Hauptderivaten (com-mercial) System V + Unix (AT&T-Zweig) und der freien Berkeley-Version BSD. (Mainframes)

Ende 80er: + MS-DOS, + Windows, OS/2, div. andere proprietare Be-triebssysteme fur Einzelplatzrechner.

Folie 7

Ein wenig Geschichte (2)

1984 Richard Stallman grundet die + Free Software Foundation, eineGesellschaft, die freie Software (mit offenen Quelltexten) fordert,und mit Hilfe einer speziellen Lizenz, der GNU General Public Licen-se, die Offenheit und freie Verteilbarkeit der Software garantiert.Langfristiges Ziel ist es, ein Betriebssystem und eine Suite von An-wendungen zur Verfugung zu stellen, die vollstandig frei sind vonproprietarem oder nutzungslizenzpflichtigem Material.

1988: + POSIX 1003.1 43 wird verabschiedet, ein Standard, der die Min-destanforderungen der Unix-basierten Lager vereint. Fast alle mo-dernen Unices sind POSIX-konform.

Folie 8

Ein wenig Geschichte (3)

1993 Der finnische Student Linus Torvalds schreibt eine virtuelle Spei-cherverwaltung fur i386-basierte Rechner. Er entscheidet sichdafur, den Quelltext seiner Arbeit zu veroffentlichen, was eine zu-vor selten gekannte Kooperation zwischen Entwicklern uber dasInternet weltweit auslost und schafft damit die Grundlage furdas heute popularste freie Unix-artige Betriebssystem + Linux furkostengunstige Desktop-PCs und andere. Auf Anwendungsebe-ne wird die bereits fur andere Unix-Systeme vorhandene GNU-Software portiert und verwendet, so dass nach kurzer Entwick-lungszeit ein vollstandiges Set an Anwendersoftware inclusive Ent-wicklungsumgebungen zur Verfugung steht.

4

Page 5: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 9

Ein wenig Geschichte (4)

1995- Das + Linux-Betriebssystem und auf Unix-Betriebssystemen ba-sierende Anwendungen wie SAMBA und Apache verbreiten sichvor allem als preisgunstige Server-Systeme, zunachst nur als Ge-heimtipp unter Technikern, heute als Mainstream-Software im re-gularen Ersatz als File, Print- und Informationsserver sowie Gate-ways in heterogenen Netzwerkumgebungen.

1998-heute Neben dem zunehmenden Einsatz als Desktop/Client-System mit KDE oder GNOME halt Linux vor allem Einzug alsembedded Betriebssystem in Handhelds, Tablets, Kameras, MP3-Spielern und anderen Geraten der Unterhaltungs- und Kommuni-kationsindustrie.

Folie 10

Nicht-PCs und embedded Systeme

Durch seine Flexibilitat und die freizugige Lizenz ist GNU/Linux ei-ne beliebte Systemsoftware fur neu entwickelte Hardware, wennnicht sogar in vielen Fallen die einzige Moglichkeit.

í + RaspberryPi,

í Netzwerkkomponenten: Accesspoints (+ OpenWRT), Ma-naged Switches, ...

í Unterhaltungselektronik: Receiver, SmartTVs, ...

í Steuerelektronik: autonome Fahrzeuge, Flugdrohnen, ...

Folie 11

Beispiel RaspberryPi

í ARM-Architektur, Board kaum großer als eine EC-Karte,

í Energiebedarf < 3W, Versorgung uber USB,

í Netzwerk-, USB-, HDMI-, Composite-, Audio-Anschluss, SD-Karteneinschub fur OS,

í Betriebssystem: Raspbian (Debian), BSD, Plan9, RiscOS,

í Anwendung als: Steuerungssystem, Streaming Server, Mul-timedia (+ XBMC),

”normaler Desktop-PC“ (mit gewissen

Performance-Einschrankungen).

5

Page 6: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 12

Beispiel Haushaltsroboter

Autonomer Staubsauger

Folie 13

Beispiel Flugdrohne

Zur Steuerung der 4 Propellereines + Quadrokopters undAnbindung an eine Steuerungs-konsole (Computer, Smartphoneoder RC-Steuerung per Funk)wird eine

”leichtgewichtige“

Losung benotigt, die auf senso-risch erfasste Positionsverande-rungen in + Echtzeit reagierenkann. Hierdurch wird das Geratauch ohne Interaktion stabil inder Luft positioniert und kannauf Anweisungen reagieren.

Demo mit + AR.DRONE

Folie 14

Eigenschaften von Unix

+ Unix in Wikipedia

í Mehrere Aufgaben gleichzeitig (Multitasking)

í Mehrbenutzerfahig (Multiuser)

í Auf vielen Hardware-Plattformen lauffahig (portabel)

í Effiziente, transparente Ausnutzung der Resourcen

í hierarchisches Dateisystem

í Stabilitat durch eigenen Speicherbereich fur jedes Programm(Virtual Memory, Speicherschutz)

í strikte Trennung zwischen Betriebssystem (”Kernel“, System-

dienste) und Anwendersoftware (Desktop-, Server-Suiten)

6

Page 7: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 15

Technik: Aufbau und Eigenschaften von Linux

Linux-Architektur

Folie 16

Vereinfachtes Schema

Libraries

System services (daemons)

Applications

Hardware

Kernel (static) + Modules

Folie 17

Der Linux-Kernel

Kernel = Schnittstelle zwischen Hardware und Anwendersoftware

í Open Source Projekt mit mehreren Tausend Entwicklern,Projektleitung der Mainline durch Linus Torvalds,

í Versionsnummer Zusammensetzung:Hauptversion(4).Major Release.Minor Release (neuesMajor-Release etwa alle 4-6 Wochen)

í”Statischer“ Teil: Enthalt die zum Start von Bootmedium not-

wendigen Komponenten

í”Dynamischer“ Teil: Module mit Hardwareunterstutzung fur

Grafik, Sound, Netzwerk, Peripheriegerate

í Nicht Teil des Kernels, aber oft angehangt: Ramdisk (Mini-System) mit Startup-Code

7

Page 8: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 18

Android SystemarchitekturDer Linux-Kernel ist auch Teil des Android-Laufzeitsystems, das auf an-wendungsorientierte mobile Gerate optimiert ist.

Folie 19

Vergleich: Windows Architektur (NT Kernel, W2K)

Folie 20

Technische Eigenschaften von Unix/Linux

Um die Funktionsweise von Unix-artigen Betriebssystemen zu ver-stehen, die in den Konzepten der meisten anderen Betriebssys-teme ubernommen wurden, sehen wir uns exemplarisch einigeBeispiele an, ohne zu sehr ins Detail zu gehen...

Bei dieser Gelegenheit lernen wir einige wichtige Unix-Systemkommandos kennen, um Systeme zu analysieren.

8

Page 9: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 21

”Shared Code“-Konzept: Bibliotheken

Ein Großteil des Codes, der fur die Anwendersoftware verwen-det wird, ist nicht in der Software selbst, sondern in Bibliothekenuntergebracht, die zwischen verschiedenen Anwendungen ge-teilt werden (auch gemeinsam genutzter Code dauerhaft imHauptspeicher + Effizienz).

ldd /usr/bin/lxterminallinux-gate.so.1 (0xf773d000)/lib/ld-linux.so.2 (0x56624000)libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6247000)libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf65c7000)libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf66b7000)libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf63e7000)libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf75bf000)libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf68a7000)libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf65af000)[...]

Folie 22

”Timesharing“ - Scheduler

Um mehrere Programme und Systemdienste, sog.”Prozesse“,

quasi-parallel ablaufen zu lassen, obwohl nur eine oder weni-ge reale Recheneinheiten (CPUs) vorhanden sind, wird das +Multitasking-Konzept eingesetzt.

Der Prozess-Scheduler im Kernel verwaltet quasi-parallel (odertatsachlich parallel bei Multiprozessor-Systemen) ablaufendeProgramme im Multitasking-Betrieb in Form einer ringformigenWarteschlange (zyklische Verteilung der Rechenzeit).

Folie 23

Resource-Sharing

Neben der CPU wird unter Unix auch der Datentransport vonund zu Datentragern und uber Netzwerke durch einen Schedu-ler verwaltet, in diesem Fall ein sog. IO-Scheduler, der Warte-schlangen (engl. queue) verwaltet. Fur diesen konnen Strategi-en festgelegt werden, nach denen je nach Anwendungsfall be-sonders performant ein

”flussiges“ Systeverhalten eingestellt wer-

den kann. Durch Steuerungsdateien im /sys-Dateisystem unterLinux kann das Verhalten des IO-Schedulers fur verschiedeneGerate individuell vom Administrator eingestellt werden.

cat /sys/block/sdb/queue/schedulernoop deadline [cfq]

echo deadline > /sys/block/sdb/queue/scheduler

9

Page 10: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 24

I/O - Scheduler... oder auch

”elevator“: Das Konzept des gemeinsamen Zugriffs auf Datentrager

und andere Resourcen ist mit einer Auswahl von unterschiedlichen I/O Sche-dulern verknupft, die fur das

”flussige Arbeiten“ auch bei hoher Auslastung des

Input/Output-Kanals verantwortlich sind. Unter Linux kann fur jedes Gerat ein un-terschiedlicher Scheduler gewahlt werden.

Scheduler Besonderheitdeadline Jeder Prozess erhalt zeitgesteuert Zugriff auf das Gerat.

Nach Ablauf der Deadline ist der nachste Prozess dran.cfq

”completely fair queueing“ - Prozesse, die mehr Bandbreite

benotigen erhalten ofter Zugriff als andere, um das Maxi-mum an Durchsatz zu erzielen.

bfq”budget fair queueing“ - Jeder Prozess erhalt ein

”Kontin-

gent“ an Zugriffen auf das Gerat, das dynamisch neu ver-teilt wird. Ziel ist es, dass das interaktive Arbeiten trotz ho-her I/O-Last nicht beeintrachtigt wird und langsame Daten-trager nicht das gesamte System ausbremsen (experimen-tell).

noop Jeder Zugriff dauert so lange wie notig, bis das Gerat wie-der

”frei“ ist.

Folie 25

Interrupts

Ein Timer-Interrupt wird zur Steuerung des Schedulers (”Zeitschei-

ben“ - Slices) verwendet, um auch”Dauerlaufer“ regelmaßig zu-

gunsten anderer Prozesse zu unterbrechen.

Im Echtzeit-Betrieb (”Realtime“) wird die Steuerung so modifi-

ziert, dass bestimmte Prozesse zu definierten Zeiten antwortenund entsprechende Prioritat vor allen anderen Prozessen haben,was aber nicht zwangslaufig heißt, dass sie dadurch

”schneller“

laufen. Beispiel: Steuerungsanlagen.

Bei hardwarenaher Programmierung werden Interrupts vonGeraten ausgelost, z.B. wenn ein Netzwerk-Paket empfangenwurde, so dass die

”Treiber“ bzw. Kernel-Module diese Ereignis-

se quasi-parallel zum interaktiven Betrieb abarbeiten konnen.

cat /proc/interrupts

Folie 26

Arten des MultitaskingKooperatives MultitaskingEin Prozess, der die Resource besitzt, muss nach Verrichtung ei-ner Teilaufgabe die Resource exlizit wieder freigeben, damit dernachste Prozess bearbeitet werden kann.Praemptives MultitaskingEin Prozess, der die Resource besitzt, wird dann, wenn er nicht vonselbst die Resource freigibt, vom Scheduler nach einer festgeleg-ten Zeit angehalten. Der nachsten Prozess in der Wartenschlangebekommt daraufhin die Resource zugeteilt.Praemptibles MultitaskingWie Praemptives Multitasking, jedoch konnen Prozesse mit hohererPrioritat den Scheduler anweisen, Prozesse mit niedriger Prioritatzu ihren Gunsten zu unterbrechen, wenn ein vorher bestimmtesEreignis auftritt (wird von OS/2 und Linux ab Kernel 2.6 unterstutzt).

Praemptives und Praemptibles Multitasking setzen zwingend einenZeitgeber voraus, der dem Scheduler die notwendige Rechenzeitzuteilt, um die Prozesswarteschlangen verwalten zu konnen.

10

Page 11: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 27

Verschiedene Unix-Betriebssysteme

Name/TM Hersteller+ SunOS/Solaris Oracle (ehem. SUN Microsystems)+ HPUX Hewlett Packard+ Aix IBM+ Sinix Siemens/Nixdorf+ Ultrix/DEC Unix(OSF/1) Digital Equipment+

”Services for Unix“ (Interix) Microsoft

+ Mac OSX Apple+ Berkeley Software Distribu-tion

Community (Entwickler)

+ Linux Community (Entwickler)+ Android Google. . .

Folie 28

Anteil Linux-Systeme auf Smartphones

Period Android iOS Windows Phone Others2016Q1 83.4% 15.4% 0.8% 0.4%2016Q2 87.6% 11.7% 0.4% 0.3%2016Q3 86.8% 12.5% 0.3% 0.4%2016Q4 81.4% 18.2% 0.2% 0.2%2017Q1 85.0% 14.7% 0.1% 0.1%

Quelle: + IDC

Folie 29

OSS als Chance?

í Das Open Source Prinzip erlaubt es, die Software legal zuanalysieren, zu verandern und weiterzuentwickeln.

í Ein Großteil der am haufigsten genutzen Software ist OpenSource.

í Open Source erlaubt es, nach dem Baukasten-Prinzip einauf den Anwender optimiertes System aufzubauen, ohnekunstliche Einschrankungen.

11

Page 12: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 30

Open Source fur Linux und Windows

í + Cygwin Unix-Shell (Windows),í + Firefox Browser,í + OpenOffice/LibreOffice (ISO-Standard) Office-Suite,í Web-Programmiersprachen PHP, JavaScript, Java, ...í + eclipse Entwicklungsumgebung,í + Apache Webserver und + SAMBA als fuhrende Internet-

/Intranet-Serverdienste.

Folie 31

Proprietares vs. Open Source Androidí Google entwickelt gemaß der GNU GENERAL PUBLIC LICENSE, un-

ter der der Linux-Kernel und viele Linux-Komponenten stehen, An-droid zunachst auf Open Source Basis. Jeder kann sich das + An-droid SDK kopieren und damit Betriebssysteme und Anwendun-gen entwickeln.

í Hardware-Hersteller passen Android auf ihre speziellen Plattfor-men an, erweitern das System jedoch oft mit proprietaren Kom-ponenten (z.B. Anwendungen fur spezielle Eingabegerate wieStift, Spracheingabe oder Gesten) und verhindern durch techni-sche Maßnahmen, dass der Anwender Zugriff auf Betriebssyste-memebene erhalt. Gefahr durch potenzielle Uberwachung und

”Kundenbindung“.

í Freie Derivate, die sich an der Open Source-Basis von Android ori-entieren, ermoglichen die Ruckgewinnung der Kontrolle und un-abhangige Unstallations- und Updatemoglichkeiten (

”Rooten“).

Laut Aussage der Hardwarehersteller bedeutet dies jedoch denVerlust der Garantie auf das Gerat, da eine herstellerseitigeRemote-Wartung unterbunden wird. (Legalitat?)

Folie 32

”Mod“ oder

”Back to the Roots“

+ LineageOS, ehemals Cyanogenmod als beliebtestes Android-Derivat / Alternative zur herstellereigenen, proprietaren Firmwa-re.

+

12

Page 13: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 33

Distribution (1)Eine Distribution fasst bekannte Software als ein in sich stimmiges

”Produkt“ zusammen, das als Zusammenstellung von Betriebssys-

tem und ausgewahlter Anwendersoftware verteilt wird. Der Fo-kus liegt dabei auf bestimmten Zielgruppen.

Folie 34

Distribution (2)

Ubuntu gilt als einsteigerfreundlich und soll in der Installationund Wartung (Administration) besonders einfach zu bedie-nen sein.

Fedora wendet sich v.a. an Kunden aus dem unternehmeri-schen Bereich, die stabile Server-Software mit Zertifizierungfur Standardsoftware, u.U. auch proprietare, wunschen.

OpenSuSE war ursprunglich speziell auf Anwender im deutsch-sprachigen Raum spezialisiert, seit dem Kauf durch Novelljedoch auch eher am internationalen Markt ausgerichtet.

Debian ist die großte vollstandig Community-basierte Distribu-tion, setzt hoheres technisches Verstondnis voraus, und istdie Basis fur viele kommerzielle Distributionen wie Ubuntu.

Knoppix ist eine auf den Betrieb als autokonfigurierendes Live-System (direkter Start von Wechselmedien oder ubers Netz)spezialisierte Variante von Debian.

Folie 35

Knoppix

+ KNOPPIX ist eine komplett von USB-Stick, DVD oder ubers Netz-werk lauffahige Zusammenstellung von GNU/Linux-Software mitautomatischer Hardwareerkennung und Unterstutzung fur vieleGrafikkarten, Soundkarten, USB-Gerate und sonstige Peripherie.

KNOPPIX kann als produktives Linux-System fur den Desktop,Schulungs-, Rescue-System oder als Plattform fur kommerziel-le Software-Produktdemos und Software-Entwicklung angepasstund eingesetzt werden. Es ist keinerlei Installation auf Festplattenotwendig. Auf der DVD-Version konnen durch transparente De-kompression bis zu 10 Gigabyte an lauffahiger Software installiertsein. + Evtl. als Plattform fur yocto, mit oder ohne Virtualisierung.

13

Page 14: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 36

Betriebssysteme vs. Anwendungen

1. SystemsoftwareHierzu gehoren das Betriebssystem (inkl.

”Treiber“ bzw. Ker-

nel und -module) des Computers sowie alle Systemdiens-te und -programme, die dafur sorgen, dass die Hardware-Resourcen des Computers im laufenden Betrieb nutzbarund sicher sind.

2. AnwendersoftwareHierzu gehoren die Programme, mit denen der Computer-Nutzer direkt arbeitet. Unter Unix zahlt neben den Anwen-dungen (Office-, Datenverarbeitende Programme, Spiele,Internet-Nutzungssoftware) auch der graphische Desktopzur Anwendersoftware, und kann durch den Anwender be-liebig ausgetauscht und verandert werden.

Folie 37

Startvorgang von Computersystemen

Der Bootvorgang beginnt mit dem Einschalten des Rechners,und endet mit dem Produktivbetrieb bzw. dem Zugang zur in-teraktiven Oberflache.Abhangig von der Rechner-Architektur verlauft der Startvorgangunterschiedlich. Wir beobachten den Verlauf auf einem ubli-chen Desktop-PC oder Notebook.

Folie 38

Bootvorgang

1. Strom einschalten

2. BIOS aktiviert die im Rechner eingebaute Hardware undsucht nach einem

”bootfahigen Gerat“, Reihenfolge nach

Einstellung in der BIOS- Konfiguration

3. Bootlader startet vom bootfahigen Gerat (Festplatte, DVD,USB-Stick, ...) und ladt den Betriebssystem-Kern in denHauptspeicher.

4. Betriebssystem-Kern muss selbststandig die Hardwarelauffahig machen (Treiber unter Windows bzw.

”Kernel-

Module“ unter Linux).

5. Linux: Das erste Programm”init“ startet, und

”fahrt den

Rechner hoch“, d.h. es startet einzelne Systeme wie Gra-fikserver, Login-Manager, Desktop, ...

6. Der Benutzer kann sich anmelden bzw. mit der interaktivenArbeit mit dem Computer beginnen.

14

Page 15: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 39

Bootvorgang (ARM-Architektur)

Bei ARM-basierten Boards ist der Bootloader oft in einem EE-PROM untergebracht und

1. greift auf ein einziges Gerat (z.B. SD-Karte oder serielleSchnittstelle) zu,

2. ladt von dort einen secondary Bootloader (z.B. das U-Boot), der

3. den Kernel, ein hardwarespezifisches Overlay (DTB) und ei-ne Initial Ramdisk in den Speicher ladt und

4. diese startet. Anschließend wird das System per sysvi-nit/systemdhochgefahren, oder eine Applikation gestartet(oft unter Verwendung von + busybox).

Kein”Boot-Menu“, kein PCI(E)-Bus mit Hardware-Erkennung!

Folie 40

KompatibilitatJedes Betriebssystem und jede Version davon stellt eine Laufzeitum-gebung fur Anwenderprogramme zur Verfugung. Aufgrund der unter-schiedlichen Schnittstellen (APIs) sind diese leider in den meisten Fallenuntereinander inkompatibel, d.h. grundsatzlich:

í Windows-Programme laufen nicht unter Linux,í Linux-Programme laufen nicht unter Windows,í Programme fur neuere Windows-Versionen laufen nicht mit alteren

Versionen zusammen,í Programme fur neuere Linux-Versionen laufen nicht mit alteren Ver-

sionen zusammen,í Programme fur eine Prozessorarchitektur laufen nicht auf einer ande-

ren.

Hierfur gibt es einige Losungsansatze, die das”Unmogliche“

moglich machen. + Handout”Windows-Programme-unter-Linux-

und-umgekehrt“. Mit dem Thema”Virtualisierung“ werden wir uns

spater noch naher beschaftigen.

Folie 41

Rechtliche Aspekte von Software / Lizenzen

í Urheberrecht

í Uberlassungsmodelle (Lizenzen)

ë Verkauf (selten)

ë Nutzung / Miete (entgeltlich oder unentgeltlich)

ë Open Source / Freie Software (weitgehende Ubertra-gung der Verwertungsrechte auf den Lizenznehmer)

í Patente (?)

15

Page 16: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 42

Proprietare Software

í Der Empfanger erwirbt mit dem Kauf eine eingeschrankte,i.d.R. nicht ubertragbare Nutzungslizenz.

í Der Empfanger darf die Software nicht analysieren (”disas-

semble“-Ausschlussklausel).

í Der Empfanger darf die Software nicht verandern.

í Der Empfanger darf die Software nicht weitergeben oderweiterverkaufen.

Diese Restriktionen werden im Softwarebereich so breit akzep-tiert, dass man fast schon von einem

”traditionellen“ Modell spre-

chen kann.

Folie 43

”Open Source“

í Open Source stellt Software als Resource/Pool zurVerfugung.

í Open Source sichert dem Anwender (Benutzer und Pro-grammierer) bestimmte Freiheiten.

í Open Source stellt eine Basis (Lizenz) fur eine Zusammenar-beit von Gruppen (oder Firmen) zur Verfugung.

Folie 44

Was ist Freie Software/Open-Source?

í Open-Source (engl. = offene Quelle)

í Freie Software (FSF, 1984) ist Teilmenge von Open-Source-Software.

í Open-Source ist kein Produkt, sondern

í eine Methode, um Software zu entwicklen.

í Open-Source-Definition lt. OSI.

í”Frei“ steht fur Freiheit (ff.), nicht fur

”kostenfrei“!

16

Page 17: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 45

Die GNU General Public License

gibt den Empfangern der Software das Recht, ohne Nutzungsgebuhren

í die Software fur alle Zwecke einzusetzen,

í die Software (mit Hilfe der Quelltexte) zu analysieren,

í die Software (mit Hilfe der Quelltexte) zu modifizieren,

í die Software in beliebiger Anzahl zu kopieren,

í die Software im Original oder in einer modifizierten Version weiterzugebenoder zu verkaufen, auch kommerziell, wobei die neuen Empfanger derSoftware diese ebenfalls unter den Konditionen der GPL erhalten.

http://www.gnu.org/

Folie 46

Die GNU General Public License

í zwingt NICHT zur Veroffentlichung/Herausgabe von Pro-gramm oder Quellcode,

í zwingt NICHT zur Offenlegung ALLER Software oderGeschaftsgeheimnisse,

í verbietet NICHT die kommerzielle Nutzung oder den Ver-kauf der Software,

í verbietet NICHT die parallele Nutzung, oder lose Kopplungmit proprietarer Software.

Folie 47

Die GNU General Public License

Aber: Alle EMPFANGER der Software erhalten mit der GPL diegleichen Rechte an der Software, die die Mitentwickler, Distribu-toren und Reseller ursprunglich hatten (und weiterhin behalten).

17

Page 18: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 48

Wer legt die Lizenz fest?

Der Urheber.

Folie 49

Fur wen gilt eine Lizenz?

Eine Lizenz gilt fur die in der Lizenz angegebenen Personenkreise(sofern nach landesspezifischen Gesetzen zulassig).Beispiel: Die GNU GENERAL PUBLIC LICENSE gilt fur

í alle legalen EMPFANGER der Software, die

í die Lizenz AKZEPTIERT haben.

Folie 50

”Wer liest schon Lizenzen?“

í Zumindest in Deutschland bedeutet das FEHLEN eines gultigenLizenzvertrages, dass die Software NICHT ERWORBEN und NICHTEINGESETZT werden darf.

í In Deutschland gibt es seit der letzten Anderung des Urheberrech-tes keine generelle Lizenz-Befreiung mehr.

í Wurde die Lizenz nicht gelesen, oder”nicht verstanden“ (weil

z.B. nicht in der Landessprache des Empfangers vorhanden),so ist die rechtliche Bindung, und daraus resultierend, die Nut-zungsmoglichkeit der Software, formal nicht gegeben.

Auch als”Freeware“ deklarierte Software ist hier keine Ausnahme.

Wenn keine Lizenz beiliegt, die eine bestimmte Nutzungsart ausdruck-lich ERLAUBT, gilt sie als VERBOTEN.

18

Page 19: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 51

Autor/Distributor haften...

í fur”Geschenke“ nur bei GROBER FAHRLASSIGKEIT,

í fur”Verkaufe“ bei allen vom Verkaufer/Hersteller verschul-

deten Fehlern.

Folie 52

GPL-Vertraglichkeit

í GPL erlaubt die Integration proprietarer Software aufdem gleichen Datentrager, solange die nicht-GPL-Komponenten wieder separierbar sind (Beispiel: KNOPPIX-CD, versch. Linux-Distributionen).

í BSD-Lizenz erlaubt die Integration von Code in pro-prietare Programme ohne Offenlegungspflicht. Es muss le-diglich darauf hingewiesen werden, dass die Software BSD-Komponenten enthalt (Beispiel: TCP/IP-Stack im Windows-Betriebssystem).

í Die Programm-Urheber konnen fur ihr Werk auch eine Aus-wahl verschiedener Lizenzen

”zum Aussuchen“ anbieten

(Dual Licensing).

Folie 53

Tabelle: Lizenzmodelle und Rechte

Nutzun

gko

sten

pflic

htig

Nutzun

gko

sten

los

frei

kop

ierb

ar

zeitlic

hun

be

gre

nzt

nutzb

ar

Que

lltext

wird

mitg

elie

fert

Mo

difika

tion

erla

ubt

Einb

au

inp

rop

.Pro

dukte

erla

ubt

De

rivate

mit

an

de

-re

nLize

nze

nm

og

l.

proprietareSoftware 4

Shareware 4 4

Freeware 4 4 4

GPL 4 4 4 4 4

LGPL 4 4 4 4 4 4

BSD 4 4 4 4 4 4 4

19

Page 20: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 54

Geld verdienen mit Open Source

Da das Einkassieren von”Nutzungslizenzgebuhren“ unter Open

Source nicht zulassig ist, und die Verbreitung (Kopie, Weiterbe-arbeitung etc.) auch nicht eingeschrankt werden kann, ist dasGeschaftsmodell bei Open Source:

í Nicht die Software selbst, sondern eine Dienstleistung alsProdukt anbieten (Support, Wartung, Anpassung),

í nicht”Software von der Stange“ verkaufen, sondern Soft-

ware im Auftrag entwickeln bzw. auf Kundenbedurfnisse in-dividuell anpassen (Baukasten-Prinzip).

+ Der Großteil des Umsatzes der bekannten”Software-Riesen“

baut auf diesem Konzept auf, wobei der Anteil an eingesetzterOpen Source Software aber unterschiedlich hoch ist.

Folie 55

Die Benutzeroberflache (User Interface)

í Wird meist mit einer graphischen Mensch-Maschine Schnitt-stelle in Verbindung gebracht (Graphical User Interface bzw.GUI).

í Soll eine intuitive interaktive Bedienung von Anwenderpro-grammen ermoglichen.

í Fur Menschen mit Behinderung oder Anwendungen, bei de-nen die Aufmerksamkeit des Benutzers fur andere Dinge not-wendig ist, wird auf eine graphische Benutzerfuhrung verzich-tet und alternative Konzepte realisiert, wie Steuerung durchGesten oder Hand/Kopfbewegugen, Ausgabe uber Spracheoder haptisch (z.B. Vibration oder Braille-Zeichen).

í Theoretisch kann jedes Programm seine eigene Benutzer-schnittstelle implementieren, in der Praxis wird jedoch von vie-len Betriebssystem-Herstellern mehr oder weniger großer Wertauf ein konsistentes Look & Feel gelegt (Beispiel MAC/OSX).

Folie 56

GUI bei Windows vs. UnixWahred bei Windows die graphische Oberflache integraler Be-standteil des Betriebssystems ist, ist bei Linux die globale Be-dienoberflache ein

”Anwenderprogramm“ und beliebig aus-

tauschbar.

Hardware

Kernel

(Grafikkarte, Maus/Touchscreen, Tastatur, Audio, ...)

AnwenderprogrammIndividuelle Programme, auch Window−Manager (WM)

Xorg (Grafikserver)

DR

I

DirectRenderingManager

(DRM)

20

Page 21: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 57

Beispiel Compiz

Compiz ist ein Compositing Windowmanager, der Plugin-basiertalle graphischen Ausgaben mit Rendering-Funktionen der Gra-fikkarte auf dem Desktop (der unabhangig davon gewahlt wer-den kann) verwaltet.

compiz --replace &

Folie 58

Desktop-SystemeWahrend der (jeweils einzige) Hersteller bei Windows und Mac bei allenvom ihm selbst hergestellten Anwendungen ein konsistentes Look & Feelvorgibt, gibt es unter Linux einen

”Wettbewerb“ zwischen den großen

graphischen Anwendungssystemen.

í KDE (umfangreiche Anwendungen, die nahtlos zusammenarbeiten),í GNOME (ebenso),í XFCE (besonders schlank, dennoch viele Desktop-Funktionen, kleine-

re Anwendungen),í LXDE (besteht nur aus Dateimanager pcmanfm, Panel lxpanel,

Session-Manager lxsession, kein eigener WM, startet sehr schnell),í

”Kachel“-Oberflache von Android.

Anwendungen eines bestimmten Desktop-Systems lassen sich auf je-dem der anderen Desktop-Systeme starten und sind nicht an einen be-stimmten Windowmanager gebunden, aber: Uneinheitliches Aussehen,unterschiedliche Anwendungen fur den gleichen Zweck, z.B. Browser,Dateimanager...

Folie 59

UI fur Fortgeschrittene: Die Shell”Kommandozeile“

Die Shell ist, neben einer Programmiersprache mit einer Vielzahlvon Funktionen, ein

”Starter“ fur Programme, deren Aufruf ubli-

cherweise per Tastatur eingegeben wird.

Hierbei steuern Optionen die Arbeitsweise der Programme. Un-abhangig von ihrem Start uber die Shell konnen Programme gra-phische oder textuelle (

”Konsolen“-) Ausgaben produzieren.

Fur fortgeschrittene Administratoren und”Power-User“ ist die

Shell der direkte und unmissverstandliche Weg, mit Betriebssys-tem und Systemsoftware zu kommunizieren, da viele betrisbssys-teminterne Funktionen nicht in den

”einfach“ gehaltenen gra-

phischen Oberflachen abgebiltet werden bzw. verfugbar sind.

Aufrufkonvention:Kommandoname Optionen... Argumente...

21

Page 22: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 60

Standard Unix-Systemtools

í Viele, kleine Programme fur jeweils nur eine Aufgabe,

í extrem kurze,”selbsterklarende“ Kommandonamen,

í leichte Kombinationsmoglichkeit dieser kleinen Program-me mit Eingabe- und Ausgabeumleitung (

”Pipes“).

Folie 61

Kommando-SyntaxIn der Shell eingegebene Kommandos haben im Allgemeinen das fol-gende Format:

Programmname Optionen Argumente Umleitung

Die Umlenkung von Ein- und Ausgabe funktioniert, anders als bei DOSund Windows, bei denen haufig Temporardateien geschrieben wer-den, auf direktem Weg auch zwischen Programmen.

> Datei Umlenkung der Ausgabe in Datei< Datei Umlenkung der Eingabe von Datei| Kommando Umlenkung der Ausgabe in die Eingabe

eines anderen Programms.

Beispiel: Sortierte, seitenweise Ausgabe der aufsummierten Verzeichnis-inhalte in Kilobytes

du -sk /var/* | sort -rn | less

Folie 62

Dateisystem (Ubersicht)

Um identifizierbare Objekte (Multimedia-Dateien, Dokumente,Programme, ...) auf Datentragern schreiben und wieder von ih-nen lesen zu konnen, werden diese bei fast allen Betriebssyste-men in einem Ordnungssystem mit hierarchisch angeordnetenVerzeichnissen abgelegt.

Wahrend Windows aus historischen Grunden allen Datentragern

”Laufwerksbuchstaben“, und jedem Laufwerk eine individuelle

Verzeichnisstruktur gibt, ist unter Unix nur ein einziger Verzeichnis-baum vorhanden, beginnend mit dem Wurzelverzeichnis /. AlleDatentrager, auch

”Netzlaufwerke“, werden vom Administrator

oder einem dafur ausgelegten Dateimanager in einen frei wahl-baren Unterordner dieses Verzeichnisbaums

”montiert“ (mount).

+ Handout”Datentragerverwaltung“

22

Page 23: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 63

Navigieren im Dateisystem mit der Shell

pwd Ausgabe aktuelles Arbeitsverzeichniscd Verzeichnisname Wechsel des aktuellen Verzeichnissescat Datei... Inhalt von Dateien lesen/ausgebenls -l [wildcards] Ausfuhrliches Auflisten von Dateien∗)

mkdir [-p] Verz. Lege [Mit Unterverz.] Verzeichnis an.cp [-a] Alt Neu Kopiere [Klone Alles] von Alt nach Neumv Alt Neu Benenne Alt nach Neu umrm [-rf] wildcard Losche unwiderruflich [rekursiv forciert] †)

∗) Die angezeigten Dateirechte werden noch ausfuhrlich besprochen.†)Tipp: Uberlegen Sie zweimal, bevor Sie mit der Option -rf etwas loschen, gera-de, wenn Sie momentan Administratorstatus haben!

Folie 64

Dateisystem-Informationen in der Shell

df Ausgabe der eingebundenen Dateisys-teme mit

”Fullstand“

mount Ausgabe der eingebundenen Dateisys-teme mit Optionen

du -s[km] [wildcards] Aufsummieren der Inhalte [in Kiloby-tes/Megabytes]

Unter Linux sind Detailinformationen uber Dateisysteme auch im virtuel-len /sys und /proc Dateisystem abrufbar.

cat /proc/filesystems Ausgabe der bekannten Dateisystem-Typen

cat /proc/partitions Ausgabe der verfugbaren Partitionenmit Großen in kB

cat /proc/mounts Ausgabe der eingebundenen Dateisys-teme mit Optionen

Folie 65

Linux Benutzer und Administrator

Merkregel: Benutzen Sie den Administratoraccount (User-ID 0)ausschließlich zur systemweiten Installation von Programmpake-ten und fur Konfigurationsarbeiten, niemals fur Benutzerprozes-se!a

Der User mit ID 0 hat unter Linux volle Schreibrechte unabhangigvon gesetzten Dateirechten. Unter Android ab Version 5 wird derZugriff mit Hilfe von Selinux feiner granuliert, separat fur jede Ap-plikation.

aWarum?

23

Page 24: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 66

Wechsel des Benutzerstatus

Mit dem Kommando su wechseln Sie in der aktiven Shell zum Sta-tus des Systemadministrators. Hierbei werden Sie normalerweisenach dem Passwort des Administrators gefragt, das Sie (unsicht-bar) eingeben mussen.

Bei Erfolg verandert sich Ihr Eingabeprompt, und Sie haben indieser Shell alle Rechte des Administratoraccounts (welcher aufden meisten Unix-Systemen die Benutzerkennung root hat).

Vorsicht: ab diesem Zeitpunkt konnen falsch eingegebeneKommandos, die als normaler Benutzer harmlos sind, in die-ser Shell zerstorerische Wirkung auf Ihr System haben!

Mit exit konnen Sie die root-Shell wieder verlassen (Kontrolle mitid).

Folie 67

sudo und id

Mit dem Kommando id konnen Sie Ihren momentanen Status,Kennung und Gruppenzugehorigkeit feststellen.

Mit Benutzer- und Gruppenrechten auf Dateisystemebenewerden wir uns noch ausfuhrlich im Abschnitt

”Dateirechte“

beschaftigen.

Das Kommando sudo erlaubt, gesteuert durch die Konfigura-tionsdatei /etc/sudoers, das Ausfuhren eines einzelnen Kom-mandos mit anderer Benutzerkennung, ohne die Benutzerken-nung in dieser Shell dauerhaft zu wechseln. (Beispiel: sudo idfuhrt das Kommando id als root aus.)

Folie 68

Intermezzo: Text-Dateien unter Unix bearbeiten

Da die meisten systemweiten Konfigurationsdateien unter Li-nux/Unix einfache Textdateien im Verzeichnis /etc sind, lohnt essich, an dieser Stelle auf Texteditoren einzugehen.

xedit Sehr primitiver graphischer Texteditorleafpad Graphischer Texteditor im LXDE-Desktopemacs

”Programmier“-Texteditor im Textmodus

vi Kommando-orientierter Texteditor im Text-modus

soffice LibreOffice Textverarbeitung, fur einfacheTextdateien meist

”Overkill“.

24

Page 25: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 69

vi – Seitenorientierter Texteditor

í Kompakter, schneller Texteditor,

í gehort zum Standard-Equipment auf jedem Unix-System,

í kennt Kommandomodus (Befehlseingabe) und Insert-Modus (Texteingabe),

Vorsicht: Direkt nach dem Start befindet sich der vi im Kom-mandomodus, d.h. jede Tastatureingabe wird als Komman-do interpretiert, nicht als Eingabetext!

Folie 70

vi – Kommandomodus

<Escape> Ruckkehr vom Insert- in den Kommandomodusi Wechsel in den Insert-Modus (Direkteingabe)o Open: Neue Zeile anfugen + Insert-Modusdd Delete: Aktuelle Zeile loschenp Paste: [Geloschten] Text einfugenx Zeichen, auf dem der Cursor steht, loschen:r Datei Read: Datei ab Cursor einfugen:w Write: Datei speichern:q Quit: vi beenden:wq Write and Quit: Speichern und Beenden:q! Beenden ohne Speichern:%s/alt/neu/gc Interaktiv alt durch neu ersetzen

Fast alle Kommandos lassen sich gruppieren oder mit einer vorangestellten Zahlmehrfach ausfuhren.

Folie 71

Quick-Admin-Edit

Um systemweite Konfigurationsdateien zu bearbeiten, kanndem Editor-Aufruf ein sudo vorangestellt werden, so dass der Edi-tor unter root-Kennung lauft und somit Schreibrechte auf diejeweilige Datei hat.

sudo vi /etc/sudoers

oder

sudo leafpad /etc/sudoers

25

Page 26: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 72

Eine Reise durch das Unix-Dateisystem

/

maillib

/bin /dev /etc /sbin /home /proc /usr /var /tmp

rc.d skel spoolinclude libsbin

bin games local

adm

Folie 73

Android-Layout

/system ist eine im Normalbetrieb nur lesbar eingebundene Par-tition, die die zum Start notwendigen Systemdateien undalle nativen Kommandos + Bibliotheken enthalt.

/data ist eine schreibbare Partition, auf der Apps ihre Einstellun-gen und Nutzerdaten ablegen, und neue Apps installiertwerden konnen.

/sdcard war ursprunglich fur weitere Datentrager vorgesehen,heute auch auf internem Flash fur große Datenmengen (Fil-me, Fotos etc...)

/data/Downloads”Shared“ Ordner mit Schreibrecht fur alle (Si-

cherheitsproblem?)

Folie 74

”Everything is a file“

í Gewohnliche Dateien (Daten, Texte, Konfigurationsdatei-en...)

í Verweise +”Links“ (hard, soft)

í Spezialdateien: Gerate (meist in /dev), named Pipes, Unix-Domainsockets, ...

Beispiel: Kopieren einer Daten-DVD in eine Image-Datei

$ cp /dev/sr0 dvd.iso

26

Page 27: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 75

Was ist ein”Block-Device“?

í Prinzipiell ein Bereich fester Große, auf dem Daten unterge-bracht sind,

í keinerlei sichtbare”Struktur“, abgesehen von der Unterteilung

in Sektoren (physikalisch) und”Blocke“ (logisch) konstanter

Große,

í kann z.B. eine Datei (loopback-File), eine Partition (partition),oder ein Datentrager (disk) sein.

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������10

0101010101010101

Block Device

Erster Sektor Letzter Sektor

09

Sektor5110 Bytes

Folie 76

Block Devices

Beispiel (Festplatte an SATA-Controller):

knopper@Koffer:˜$ ls -l /dev/sda*

brw-rw---- 1 root disk 3, 0 2006-03-25 14:31 /dev/sdabrw-rw---- 1 root disk 3, 1 2006-03-25 14:31 /dev/sda1brw-rw---- 1 root disk 3, 2 2006-03-25 14:31 /dev/sda2

Folie 77

fdisk / gdisk – Partitionieren

Festplatten werden als Block Devices im /dev-Verzeichnis an-gelegt (s.a. Handout

”Datentraegerverwaltung

”), z.B. /dev/sda.

Um Bereiche auf dem Datentrager flexibel verschiedenen Auf-gaben zuordnen zu konnen, werden Festplatten meist durchPartitionierung unterteilt:

fdisk /dev/sda + MBR-Partitionierung

gdisk /dev/sda + GUID-Partitionierung

gparted – graphisches Werkzeug zur Partitionierung

27

Page 28: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 78

Vom Blockdevice zum Dateisystem

Verzeichnis

Virtuelles Dateisystem (VFS)

Blockdevice (Gerätedatei)

Physikalische Schicht (Hardware)oder: Emulation (Loop)

Datei

Datei

Datei

Folie 79

mount

Syntax: mount -t dateisystemtyp \-o optionen,... \blockdevice \zielverzeichnis

Aufgabe: Abbilden der”unstrukturierten“ Daten eines Block De-

vice in eine Verzeichnisstruktur.

Hierbei sind die Optionen und ihre Wirkung hochgradigDateisystemtyp-spezifisch!

Folie 80

Unterstutzte Dateisysteme (1)

Native (blockdevice-basiert)ext2 Standard

ext3/ext4 ext2 mit Journal-File

reiserfs Journaling, b-tree

jfs Journaling, b-tree (IBM)

xfs Journaling, b-tree (SGI)

btrfs Journaling, b-tree (neu)

iso9660 ISO/Rockridge/Joliet/zISO

minix heute eher akademisches FS

28

Page 29: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 81

Unterstutzte Dateisysteme (2)

RAM/Flash/Packetjffs2 Journaling Flash Filesystem

romfs ROM-FS

cramfs komprimiertes ROM-FS

ramfs experimentelles Ramdisk-FS

tmpfs skalierendes Ram-FS

udf DVD/CDRW-Packetmode FS (u.U. RW)

Folie 82

Unterstutzte Dateisysteme (3)

Compatibilityadfs Acorn (Archimedes) Disc Filing Systemaffs Commodore Amiga Fast File Systemhfs “Hierarchical File System“ (MAC)bfs “Boot File System“ (SCO Unix)efs Altes IRIX (SGI) Dateisystemvxfs VERITAS VxFS (SCO UnixWare)hpfs “High Performance FS“ (OS/2)qnx QNX FS (vorwiegend RO)sysv XENIX/SCO/Coherent+PDP11ufs BSD/SunOS/NeXTstep FSvfat Altes und neues MSDOS/FAT* Formatntfs(-3g) NTFS ro (rw)

Folie 83

Unterstutzte Dateisysteme (4)

Virtuelle

proc virt. Kernel-Filesystem (wichtig!)

sysfs virt. Kernel-Filesystem (wichtig!)

devpts virt. Terminals

usbfs USB-spezifisch (veraltet)

capifs ISDN-Subsystem

29

Page 30: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 84

Unterstutzte Dateisysteme (5)

Networknfs Network Filesystem v2/3/4 (Client+Server)

cifs Windows File Server / SAMBA (Client)

sshfs Verschlusselte Ubertragung per SSH

Folie 85

mount – Einbinden von Dateisystemen

mount aktiviert die Kernel-Schnittstelle, die uber das Dateisystemdie auf Partitionen vorhandenen Rohdaten in Ordner, Verzeich-nisse und Dateien abbildet. Im Zielverzeichnis werden die Datenin einer hierarchisch-logischen Struktur sichtbar.

$ mount -t ext2 /dev/sda2 /media/sda2

$ mount -t iso9660 -o ro /dev/sr0 /media/sr0

$ mount /media/sr0

$ mount pizza:/media/sr0 /hosts/pizza/cdrom

Folie 86

/etc/fstab

In der Konfigurationsdatei /etc/fstab kann eine Zuordnungzwischen Partition und Verwendungszweck konfiguriert werden,die mit mount -a automatisch beim Systemstart aktiviert wird.

# <device> <mountpoint> <type> <options> <dump> <fsck>

/dev/sda2 / ext2 defaults 1 1/dev/sda3 /usr ext2 defaults 1 2/dev/sda5 /home ext2 defaults 1 3/dev/sda6 none swap defaults 0 0/dev/sr0 /dvd iso9660 user,ro 0 0none /proc proc defaults 0 0

30

Page 31: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 87

umount Verzeichnis

Mit umount Verzeichnis wird eine Zuordnung zwischen derVerzeichnisstruktur-Abbildung und dem angesprochenen Da-tentrager wieder gelost. Dies funktioniert nur, wenn nicht mehrauf den Datentrager zugegriffen wird!

Mit der”Lazy Umount“-Option -l wird die Zuordnung automa-

tisch dann gelost, wenn alle Zugriffe beendet sind. Neue Zugriffewerden bereits auf das alte Verzeichnis (vor mount) umgeleitet,damit keine weiteren Blockaden entstehen.

Beispiel: umount [-l] /media/sr0

hangt ein eingebundenes DVD-Rom aus. Erst dann kann der Da-tentrager wieder entfernt bzw. aus dem Laufwerk genommenwerden.

Folie 88

chown – Setzen des Dateibesitzers

chown [Optionen] Benutzer Datei(en)...

chown andert das Besitzer-Attribut von Dateien und Verzeichnissen. Derchown-Befehl kann auf POSIX-konformen Unix-Systemen nur vom Syste-madministrator ausgefuhrt werden.Der ursprungliche Besitzer der Datei verliert mit sofortiger Wirkung dieBesitzer-Rechte an dieser Datei und kann nur noch aufgrund gesetz-ter Gruppen- oder globaler Rechte auf die Datei oder das Verzeichniszugreifen.

chown -R demo /home/demo

Mit der Option -R kann rekursiv das Besitzerattribut ganzer Verzeich-nisbaume geandert werden.

Folie 89

chgrp – Andern der Gruppenzugehorigkeit

chgrp [Optionen] Gruppe Dateien...

chgrp andert die Unix-Gruppe von Dateien und Verzeichnissen. Der Be-fehl kann vom Besitzer einer Datei ausgefuhrt werden, wenn er selbstMitglied der angegebenen Unix-Gruppe ist (POSIX).

$ ls -l helloworld.c

-rw-r--r-- 1 knopper users 29 Aug 5 22:39 helloworld.c

$ groups

users developer

$ chgrp developer helloworld.c

$ ls -l helloworld.c

-rw-r--r-- 1 knopper developer 29 Aug 5 22:39 helloworld.c

31

Page 32: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 90

chmod – Andern von Rechten

chmod [Optionen] Anderungen Dateien

chmod andert die Zugriffsrechte von Dateien und Verzeichnissen.Man kann die Rechte

r = read w = write x = execute s = suidlesen schreiben ausfuhren set ID

an bestimmte Personenkreise vergeben

u = user g = group o = othersBesitzer Gruppe Andere

Mit der Option -R werden die Anderungen auch fur Unterver-zeichnisse durchgefuhrt.

Folie 91

Beispiele zu chmod

$ ls -l

total 11

-rw-r--r-- 1 knopper users 7185 Nov 20 23:17 auswertung.sh

-rw------- 1 knopper users 938 Nov 20 23:17 juli.dat

-rw------- 1 knopper users 469 Nov 20 23:17 juni.dat

-rw------- 1 knopper users 54 Nov 20 23:17 mai.dat

$ chmod u+x auswertung.sh

Das Script auswertung.sh wird zum Ausfuhren freigegeben.

Folie 92

Beispiele zu chmod

$ chmod og+r *.dat

$ ls -l

total 11

-rwxr--r-- 1 knopper users 7185 Nov 20 23:17 auswertung.sh

-rw-r--r-- 1 knopper users 938 Nov 20 23:17 juli.dat

-rw-r--r-- 1 knopper users 469 Nov 20 23:17 juni.dat

-rw-r--r-- 1 knopper users 54 Nov 20 23:17 mai.dat

Alle durfen ab jetzt die”.dat“-Dateien lesen.

32

Page 33: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 93

Spezielle Dateiattribute

Neben den Standard-Rechten Lesen, Schreiben und Ausfuhren existie-ren noch weitere Dateiattribute, die vom Besitzer einer Datei oder vomSystemadministrator gesetzt werden konnen.

$ chmod u+s /usr/bin/cdrecord

$ ls -l /usr/bin/cdrecord

-rwsr-xr-x 1 root root 13956 May 10 17:31 /usr/bin/cdrecord

Durch das Setzen des s-Attributes (“s-Bit“) fur den Besitzer bzw. die Grup-pe einer Datei wird beim Ausfuhren der Datei die Benutzerkennung bzw.die Gruppe des neuen Prozesses auf den Besitzer bzw. die Gruppe derDatei gesetzt. (Nur so konnen ubrigens Programme wie su und sudofunktionieren.)

Folie 94

Hinweis: Dateirechte und Sicherheit

Unter Unix steht und fallt die lokale Sicherheit und Stabilitat mitder angemessenen Rechtevergabe fur Systemdateien. Unix istsehr robust gegen Viren und Schadsoftware, da nur der Admi-nistrator Schreibrechte auf Systemdateien hat.

Andererseits wird der Zugriff auf Hardware durch spezielle Be-nutzergruppen streng reglementiert, daher ist auf manchen Sys-temen fur unprivilegierte Anwender kein Zugriff auf Soundkarteoder Festplatten, außer bereits fur Benutzer freigegebene einge-bundene Datentrager, moglich.

Folie 95

Dateitypen unter Unix/Linux

In diesem Beispiel wurde ein Verzeichnis namens test angelegt,in dem sich verschiedene Dateiarten befinden.

knopper@Koffer:˜$ ls -l test/insgesamt 8brw-rw---- 1 root floppy 2, 0 2006-04-04 12:06 blockdevicecrw-rw---- 1 root root 10, 1 2006-04-04 12:06 chardevice-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 datei.txtdrwxr-xr-x 2 knopper users 48 2006-04-04 13:17 directoryprw-r--r-- 1 knopper users 0 2006-04-04 13:16 fifo-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 hardlinksrwxrwxrwx 1 knopper users 0 2006-04-04 10:06 socketlrwxrwxrwx 1 knopper users 9 2006-04-04 13:14 symlink

-> datei.txt

Der erste von ls -l angezeigte Buchstabe in den Dateirechtenkennzeichnet die Art der Datei.

33

Page 34: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 96

Einfache Dateien

Einfache Dateien konnen Dokumente, Programme, Bibliothekenoder Daten jedweder Art sein.

-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 datei.txt

Unter Windows werden bestimmten Dateiendungen Dateitypenund somit Programme zum

”Offnen“ zugeordnet, wahrend unter

Unix zwar einige Dateiendungen ublich, aber nicht zwingend er-forderlich sind.

Z.B. werden unter Unix ausfuhrbare Programme aufgrund ihresinternen Aufbaus und am gesetzten

”Ausfuhren“-Dateirecht er-

kannt, wahrend sie unter Windows die Endung .exe besitzenmussen.

Folie 97

”Versteckte“ Dateien

Unter Unix ist es Konvention, d.h. in vielen Dateimanagern und auchim ls-Kommando

”eingebaut“, dass Dateien mit einem fuhrenden

”.“

standardmaßig nicht im Verzeichnislisting auftauchen (sog.”versteckte“

Dateien). Dies wird speziell fur Konfigurationsdateien und -verzeichnisseim Benutzer-Heimverzeichnis verwendet, die ansonsten das Dateilistingum hunderte Eintrage verlangern wurden.

Unter DOS und Windows gibt es hingegen Dateiattribute, die Dateienals

”hidden“ kennzeichnen, und die mit dem Kommando attrib.exe

verwaltet werden. Speziell unter NTFS ist ADS (Alternate Data Streams)ein Feature, das es erlaubt, Dateien unnerhalb anderer Dateien zu

”ver-

stecken“, was wahrscheinlich im Design fur Konfigurationsdateien, Bi-bliotheken und andere Zugehorigkeiten gedacht ist, die zusammen miteinem Programm oder einer Multimedia-Datei

”mitgeliefert“ werden

sollen. Leider bietet dieses Feature Angriffspunkte fur Schadsoftware,die so z.B. Code innerhalb anderer Dateien verstecken konnen.

Folie 98

Verzeichnisse

Verzeichnisse und Unterverzeichnisse sind ein Ordnungsmittel,um Dateien zu kategorisieren und leichter wieder auffindbar zumachen.

drwxr-xr-x 2 knopper users 48 2006-04-04 13:17 directory

34

Page 35: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 99

Symlinks

Symbolische Links, also”Namensverknupfungen“, sind Zeiger auf

Datei- oder Verzeichnisnamen, die den Zugriff auf die entspre-chenden Daten unter einem anderen Namen ermoglichen. Siewerden mit dem Kommando

ln -s datei verknupfung

angelegt. Der symbolische Link und sein Ziel ist bei ls -l deut-lich identifizierbar.

-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 datei.txtlrwxrwxrwx 1 knopper users 9 2006-04-04 13:14 symlink -> datei.txt

Achtung: Wird die Originaldatei geloscht, so ist der Inhalt auchnicht mehr uber den symbolischen Link verfugbar, obwohl dieservorhanden bleibt.

Folie 100

HardlinksAhnlich wie beim Symbolischen Link auf den NAMEN einer Dateiverwiesen wird, wird beim Hardlinks auf den Datei-INHALT ver-wiesen. D.h. es wird mit

ln datei hardlink

eine neue Datei angelegt, deren Inhalt aber mit dem der erstenDatei immer identisch ist. Aus dem Verzeichnislisting ist die Tat-sache, dass es sich um einen Hardlink handelt, allerdings nichtohne weiteres erkennbar.

-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 datei.txt-rw-r--r-- 2 knopper users 5 2006-04-04 13:14 hardlink

Wird eine der beiden Dateien geloscht, so ist der Inhalt nachwie vor unter dem anderen Dateinamen verfugbar. Originalda-tei und Hardlink sind also “gleichberechtigt“.

Folie 101

Character und Block Devices

Character Devices erlauben sequentielles, zeichenweisesSchreiben und Lesen von Daten auf die damit verbunde-nen Gerate (vergl. voriges Kapitel uber Dateisysteme undBlockdevices).Block Devices erlauben wahlfreien Zugriff auf beliebige

”Blocke“

eines Gerates, ohne dass ein”Vor-“ oder

”Zuruckspulen“ notig

ist.

brw-rw---- 1 root floppy 2, 0 2006-04-04 12:06 blockdevicecrw-rw---- 1 root root 10, 1 2006-04-04 12:06 chardevice

Block Devices bilden ublicherweise Festplatten ab, wahrendChar Devices Mause oder Bandlaufwerke und Modems abbil-den.

35

Page 36: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 102

Fifos und Sockets

Wahrend Sockets mit Netzwerkoperationen (z.B. Kommunikati-on mit dem X-Server) verknupft sind, sind Fifos ein Mittel, um dieEin- und Ausgabe von Programmen miteinander zu verknupfen,ahnlich wie mit dem Pipe-Symbol | .

prw-r--r-- 1 knopper users 0 2006-04-04 13:16 fifosrwxrwxrwx 1 knopper users 0 2006-04-04 10:06 socket

Folie 103

Prozess- und Jobverwaltung

Sowohl dem Benutzer, als auch dem Administrator stehen dieBefehle ps und kill zur Verfugung, um den Prozess-Status zu er-fragen und einem Prozess, der durch eine im System eindeutigeNummer, die Prozess-ID gekennzeichnet ist, Signale zu schicken.Insofern ist der Name kill, der lediglich ein Signal verschickt,etwas missverstandlich, da er keineswegs in jedem Fall den an-gegebenen Prozess beendet.

Folie 104

ps – Prozessinformationen anzeigen

ps [Optionen]

ps zeigt die Liste der laufenden Prozesse (=Programme) an. DasKommando ist insbesondere im Zusammenspiel mit kill sehrpraktisch, um die Prozess-ID

”amoklaufender“ Programme zu er-

fahren und diese”gewaltsam“ zu beenden.

$ ps auxwwwUSER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 796 128 ? S Jun 12 0:58 initroot 2 0.0 0.0 0 0 ? SW Jun 12 3:45 (kflushd)root 3 0.0 0.0 0 0 ? SW Jun 12 0:00 (kpiod)root 4 0.0 0.0 0 0 ? SW Jun 12 6:53 (kswapd)root 296 0.2 0.0 820 188 ? S Jun 12 101:09 syslogdknopper 4832 0.1 0.8 3044 2148 pf S 23:09 0:30 gv unixkurs.psknopper 4936 0.0 0.3 1436 996 q3 S 23:15 0:01 vi unixkurs.tex

36

Page 37: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 105

kill – Signal an Prozesse schicken

kill [Signal] Prozeßnummerkill versendet Signale an einen laufenden Prozess. Wenn kill ohnedie Signal-Option ausgefuhrt wird, wird der angefuhrte Prozeß mit demSignal TERM beendet. Die Signal-Option -HUP (Hang Up) gibt demProgramm die Moglichkeit, sich

”sauber“ zu beenden, und dient bei

einigen Systemprozessen (daemons) dazu, Konfigurationsdateien neueinzulesen. Bei hartnackigeren Fallen hilft das Signal -KILL, gegen dassich kein Prozess wehren kann.

$ kill 1234 beendet den Prozeß 1234

$ kill –KILL 1234 beendet den Prozeß, falls der obereVersuch erfolglos bleibt.

Folie 106

Ubung

1. Starten Sie das Programmxclock -update 1 &in der Shell als Hintergrundprozess.

2. Kontrollieren Sie mit dem Shell-internen Kommando jobs Ihre Hin-tergrundprozesse.

3. Finden Sie die Prozess-ID des laufenden xclock mit Hilfe von psaux | grep xclock.

4. Halten Sie den Prozess kurzfristig an, indem Sie ihm mit kill-STOP Prozess-ID ein STOP-Signal schicken. Beobachten Sie dieReaktion des Programms.

5. Lassen Sie den Prozess weiterlaufen, indem Sie ihm das SignalCONT schicken.

6. Terminieren Sie den Prozess mit dem Signal TERM.

Folie 107

Interrupts

Ein Timer-Interrupt wird zur Steuerung des Schedulers (”Zeitschei-

ben“ - Slices) verwendet, um auch”Dauerlaufer“ regelmaßig zu-

gunsten anderer Prozesse zu unterbrechen.

Ausgabe der aktiven Interrupts mit Zuordnungen:cat /proc/interrupts

Im Echtzeit-Betrieb (”Realtime“) wird die Steuerung so modifi-

ziert, dass bestimmte Prozesse zu definierten Zeiten antwortenund entsprechende Prioritat vor allen anderen Prozessen haben,was aber nicht zwangslaufig heißt, dass sie dadurch

”schneller“

laufen. Beispiel: Steuerungsanlagen.

Bei hardwarenaher Programmierung werden Interrupts vonGeraten ausgelost, z.B. wenn ein Netzwerk-Paket empfangenwurde, so dass die

”Treiber“ bzw. Kernel-Module diese Ereignis-

se quasi-parallel zum interaktiven Betrieb abarbeiten konnen.

37

Page 38: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 108

Input/Output

Zur Verwaltung von Ein- und Ausgabedaten werden ebenfallsWarteschlangen verwendet, teilweise eine oder mehrere proGerat. Bei ereignisgesteuerter Verarbeitung werden diese War-teschlangen ebenfalls durch Interrupts gesteuert.

Teilweise versucht Linux, akkumulierte Daten”am Stuck“ zu ver-

arbeiten, beispielsweise Segmente zu großeren Datenblocke zu-sammenzufassen und auf Harddisk zu schreiben, um den Durch-satz und die Effizienz zu erhohen.

Bei blockorientierten Datentragern (Harddisks, Flash-Medien,CD- und DVD-Roms) werden einmal gelesene Daten im Haupt-speicher gehalten, bis dieser fur wichtigere Daten benotigt wird.Dadurch fuhlt sich das System bei genugend Hauptspeicher

”schneller“ an, je ofter die gleichen Daten gelesen werden sol-

len.

Folie 109

Speicherverwaltung und Virtual Memory (VM)

Moderne Betriebssysteme unterstutzen uber die Memory Mana-ging Unit (MMU) der Hardware:

í Speicherschutz (Memory Protection),

í Virtuelle Adressierung fur jeden Prozess,

í temporare Auslagerung von Daten im Hauptspeicher(RAM) auf Datentrager mittels Swap und Paging.

Folie 110

Speicherschutz und Virtuelle AdressenJedem Prozess werden reale Speicherbereiche zugewiesen, die jedochmit einer Ubersetzungstabelle prozessintern in einem

”virtuellen Spei-

cher“ abgebildet werden, der durchgangig meist von Speicheradresse0 bis zum Ende des adressierbaren Speichers reicht, wobei sich jedochnur tatsachlich gelesene oder geschriebene Speicherzellen im realenSpeicherverbrauch niederschlagen.Da jeder Prozess nur den Speicherbereicht

”sieht“, der ihm durch das

Memory-Mapping zugewiesen wurde, konnen Prozesse sich nicht ge-genseitig Speicherbereiche uberschreiben oder auch nur auslesen. Ei-ne Ausnahme hiervon sind durch spezielle Mechanismen eingeblende-te Bereiche, das sogenannte

”Shared Memory“.

Es ist auch ublich, dass z.B. Code von geladenen Bibliotheken read-only von mehreren Prozessen an unterschiedlichen virtuellen Speicher-adressen eingeblendet und verwendet wird, was die Speichereffizienzerhoht. Virtuelle Maschinen nutzen diesen Mechanismus, um mit ihrenzur Verfugung gestellten Mechanismen mehrere Prozesse gleichzeitig zubedienen, ohne sich fur jeden Prozess zu

”klonen“.

38

Page 39: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 111

Speicherauslagerung

Mitunter sind komplexe Programmpakete sehr”speicherhung-

rig“. Steht weniger Speicher zur Verfugung als vom Programmangefordert, so kann das Betriebssystem das Programm been-den (unter Linux wird ein

”Segmentation Fault“-Signal an das

Programm geschickt), oder bei eingerichtetem Auslagerungs-bereich

1. gerade nicht benutzen Code und Daten aus dem RAM-Speicher auf einen Datentrager auslagern und

2. den so freigewordenen RAM-Speicher dem anforderndenProgramm zuweisen.

Folie 112

Swap und PagingDie Summe aus realem RAM und Auslagerungsbereich wird als virtuel-ler Speicher (Virtual Memory, VM, nicht zu verwechseln mit

”Virtueller

Maschine“!) bezeichnet. Fur das Programm selbst ist der Ubergang von

”echtem“ zu

”ausgelagertem“ Hauptspeicher nicht sichtbar, es wird

wahrend dieses Vorgangs angehalten.

Realer Speicher (RAM) Auslagerungsbereich/e (SWAP)

Ahnlich wie bei Festplattensektoren wird Hauptspeicher bei modernenBetriebssystemen in Blocke fester Große, sog.

”Pages“ (Speicherseite)

organisiert und von der MMU entsprechend”seitenweise“ gelesen und

geschrieben.In dem Moment, in dem ein Programm auf eine ausgelagerte Speicher-seite zugreift, wird ein

”Page Fault“ ausgelost, der die MMU veranlasst,

die ausgelagerte Speicherseite von einer Festplattenpartition (Swap-Partition) oder aus einer Swap-Datei wieder ins RAM zu laden, bevordas Programm darauf zugreift.

Folie 113

Einrichten von Swap unter Linux

Unter Linux kann eine Partition zur Swap-Partition erklart und ent-sprechend mit einer Paging-Signatur

”formatiert“ werden:

# Setze Partitionstyp von /dev/sdb2 auf 82 (swap)sfdisk --change-id /dev/sdb 2 82

# Richte Swap auf /dev/sdb2 einmkswap /dev/sdb2

# Aktiviere Swap auf /dev/sdb2swapon /dev/sdb2

Mit einem Eintrag /dev/sdb2 none swap defaults 0 0 in/etc/fstab wird die eingerichtete Swap-Partition beim System-start automatisch mit swapon -a eingebunden.

Statt /dev/sdb2 in diesem Beispiel konnte auch eine Datei, z.B./swap.img verwendet werden.

39

Page 40: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 114

Speicher-Monitoring

In der Ausgabe des Prozessliste mit ps aux wird der virtuelle (an-geforderte) und tatsachlich belegte (residente) Speicher fur je-den Prozess angezeigt.

Ausgabe von free:total used free shared buffers cached

Mem: 2063844 1863828 200016 0 38008 224368-/+ buffers/cache: 1601452 462392Swap: 5564124 112 5564012

Der gekennzeichnete Werte aus der Zeile”abzuglich Puf-

fer/Cache“ gibt den tatsachlich durch laufende Programmebelegten Speicher an.

Eine detailierte Auflistung der Speichernutzung erhalt man unterLinux mit cat /proc/meminfo.

Folie 115

NetzwerkDie meisten Betriebssysteme sind netzwerkfahig und un-terstutzen standardmaßig das TCP/IP-Protokoll.

Hierzu mussen einerseits die fur jedes Netzwerkgerat (LAN,WLAN) passenden

”Treiber“ (Kernel-Module) geladen werden,

andererseits sind die Netzwerkprotokolle zur Datenubertragungin einer mittleren Schicht erforderlich.

$ lsmod...bluetooth 247796 3 ath3k,btusbath9k 75729 0ath9k_common 18158 1 ath9kath9k_hw 386299 2 ath9k_common,ath9kath 16912 3 ath9k_common,ath9k,ath9k_hwcfg80211 364859 4 ath,ath9k_common,ath9kipv6 63434 0

Folie 116

Beispiel: Ethernet-Parameter einstellen

Bringt viele Administratoren MAC-basierter Firewalls zur Verzweif-lung:

ifconfig eth0 downifconfig eth0 hw ether 00:04:23:44:22:11

Hiermit wird die”Hardware-Adresse“ von Netzwerkkarten einge-

stellt.

40

Page 41: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 117

ifconfig – IP-Adresse und Netzmaske

ifconfig eth0 192.168.0.1netmask 255.255.255.0broadcast 192.168.0.255

ifconfig eth0

eth0 Link encap:10Mbps Ethernet HWaddr 00:00:C0:68:FB:29inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0TX packets:0 errors:0 dropped:0 overruns:0Interrupt:5 Base address:0x310 Memory:ca000-cc000

Folie 118

route – Netzwerkrouten und Gateway(s)

route add -net 192.168.1.0netmask 255.255.255.0 dev eth0

Setzt eine Route zum Netzwerk 192.168.1.0 auf die gleiche Netz-werkkarte wie vorher 192.168.0.0. Es muß allerdings ggf. vorhereine zweite lokale IP-Adresse auf dem Interface eth0:1 gesetztwerden, die diesem Netz entspricht.

route add default gw 192.168.0.254Setzt das

”Tor zur Welt“ uber den Rechner mit der IP-Adresse

192.168.0.254.

Folie 119

/etc/resolv.conf – Nameserver

In der Datei /etc/resolv.conf werden mit dem vorangestell-ten Schlusselwort nameserver die IP-Adressen der Nameserverangegeben, die befragt werden sollen, wenn der Rechner ver-sucht, einen DNS-Namen aufzulosen (DNS =

”Domain Name Sys-

tem“ oder”Service“). Fehlt dieser Eintrag, so kann lediglich uber

die numerische Adresse, nicht aber uber Rechnernamen, aufandere Rechner im Internet zugegriffen werden.Dynamische Dienste wie DHCP (pump, dhclient, dhcpcd) oderPPP setzen bei erfolgreichem Verbindungsaufbau automatischeinen gultigen Nameserver in /etc/resolv.conf ein. Ein Pro-gramm, mit der uberpruft werden kann, ob der Nameserver kor-rekt arbeitet, ist nslookup (interaktiv) oder host rechnername(nicht-interaktiv).

41

Page 42: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 120

Ubung

1. Setzen Sie mit ifconfig eine zweite IP-Adresse auf das virtuel-le Netzwerkkarten-Interface eth0:1, welche eine um 1 erhohteNetzwerkadresse (nicht Host-Adresse!) besitzen soll.

2. Sehen Sie mit route nach, ob der Kernel automatisch eine Netz-werkroute fur dieses Interface angelegt hat.

3. Versuchen Sie mit ping, das zweite, virtuelle Interface IhresTischnachbarn “anzupingen“.

4. Sehen Sie mit dem Kommando traceroute IP-Adresse nach,welchen Weg Ihre IP-Pakete nehmen, wenn Sie einen bestimmtenRechner außerhalb des lokalen Netzes zu erreichen versuchen.

Folie 121

Eigenschaften eines TCP/IP-Paketes

í SOURCE (Herkunfts-) Adresse,

í DESTINATION (Ziel-) Adresse,

í SOURCE (Herkunfts-) Port,

í DESTINATION (Ziel-) Port,

í Protokolltyp (TCP oder UDP).

Der SOURCE-Port auf einem Server kennzeichnet i.d.R. den an-gesprochenen Dienst (s.a. /etc/services).

Folie 122

Netzdienste starten

í Einen Server-Dienst starten, der sich (gemaß seiner Einstel-lungen) auf einen bestimmten Port bindet, oder

í Mit Hilfe des Internet-Metadamons inetd einen Dienstoder ein Programm mit einem wahlbaren Port verbinden(Konfigurationsdatei /etc/inetd.conf).

42

Page 43: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 123

Wichtige Systeminformationen auslesen (Linux)Kommando Infocat /proc/interrupts Interrupts und Timercat /proc/cpuinfo CPU und Kerne / Threadsfree Arbeits-Speicher (kompakt)cat /proc/meminfo Arbeits-Speicher (ausfuhrlich)cat /proc/swaps Auslagerungs-Speicher (ausfuhrlich)df Fullstand gemounteter Partitionenmount Eingebundene Partitionen (mit FS-Opt.)ps [auxw] Prozesse anzeigentop Prozesse mit Aktualisierunglspci [-v] Gerate (PCI[e]) anzeigenlspci [-k] Kernel-Module fur (PCI[e]) Geratelsusb [-v] Gerate (USB) anzeigenlsmod Geladene Module (Treiber) anzeigenifconfig wlan0 IP-Konfiguration fur wlan0 (LAN)route [-n] Netzwerkrouten fur alle Geratecat /etc/resolv.conf Nameserver anzeigen

Folie 124

Standard fur Betriebssysteme - POSIXUrsprunglich aus der + Unix-Ecke kommend, wurde 1988 ein Standardfur den Aufbau und Eigenschaften verschiedener Betriebssysteme auf-gestellt, + POSIX, IEEE 1003.1-1988, auch oft einfach als IEEE 1003 bzw.internationaler Standard ISO/IEC 9945 in der Literatur aufgefuhrt. DerStandard wurde seitdem mehrmals prazisiert und erweitert.

Neben den meisten Unix-Systemen, zu denen auch Linux gehort, stre-ben auch andere Betriebssysteme POSIX-Kompatibilitat an. Windowsenthalt seit Version

”Windows 2000“ das + POSIX Subsystem, das POSIX-

kompatible Services zur Verfugung stellt und teilweise auch das Portie-ren von Unix-Anwendungen auf Windows ermoglicht. Eine andere Vari-ante eines POSIX-Layers fur Windows ist + Cygwin.

Das”Portable Operating System Interface“ spezifiziert API (Application

Programmers Interface), Kommandos und Utilities, die in kompatiblenBetriebssystemen vorhanden sein sollen.

Folie 125

Kernel

Nachdem wir uns auf der Anwendungs- und Administrations-ebene mit dem Betriebssystem beschaftigt haben, beschafti-gen wir uns nun mit den

”Interna“ eines Betriebssystems, dem

Systemkern mit den”Treibern“.

Der Kernel stellt uber einen statischen sowie einen dynamischenTeil (Module) eine Schnittstelle zum Zugriff auf alle Hardware undSystemresourcen zur Verfugung.

43

Page 44: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 126

Linux Kernel Architektur

Folie 127

Beispiel Android System Architektur

Folie 128

Exkurs Android: Zugriff auf OS-Ebene

1. Aktivieren der Entwickler-Optionen:”Einstellungen“ +

”Uber das Tablet“ + 7 Mal auf

”Build-Version“ klicken +

”Entwickleroptionen“ sind ab sofort in den Einstellungen

verfugbar. Dort aktivieren”ADB uber USB“.

2. Einloggen per seriellem USB-Kabel: adb shell auf demHost.

3. Ausprobieren: df, ps w, cat /proc/cupinfo, free ...

4. Root-Zugang (nur bei gerootetem Smartphone): adb root(Host) oder su (Android),

5. Wichtige Android-Verzeichnisse: /system (read-only Basis-System), /data (Programmdaten und eigene Programme),/cache (VM-Temporardaten), /sdcard (interne oder exter-ne SD-Karte), /extsd (Externe SD-Karte).

44

Page 45: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 129

Beispiel Windows Architektur (NT Kernel, Windows2K)

Folie 130

Linux Kernel Verhalten

Einige Parameter lassen sich zur Start- und Laufzeit mit Hilfe vonKernel-Optionen einstellen, die per Bootloader ubergeben wer-den, andere (wie die Auswahl von CPU-Architektur und Treibern)konnen hingegen nur zur Ubersetzungszeit (Compile-Vorgang)eingestellt werden.

vmlinuz mem=2000M acpi=off nolapic timer

Folie 131

Kernel bauen

1. Kernel-Archiv herunterladen von www.kernel.org,

2. Auspacken: tar jxvf linux-3.8.6.tar.bz,

3. Ins Kernel-Verzeichnis wechseln und menubasierte Konfigu-ration starten: cd linux-3.8.6, make menuconfig (Text-konsole), make xconfig (graphisches Menu)

4. Kernel und Module ubersetzen: make

45

Page 46: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 132

Intel/AMD vs. ARM Architektur

í Grundsatzlich lasst sich ein Linux-Kernel fur fast samtlicheexistierende Hardware (CPU/Board/Peripherie) bauen.

í Intel/AMD: PCI(e) unterstutzt eine Hardwareerkennung,d.h es kann der richtige Treiber mit den richtigen Regis-tern/Adressen bei Bedarf aktiviert werden.

í ARM-basierte Boards haben i.d.R. keinen PCI-Bus, sondernsteuern direkt uber GPIO-Schnittstellen die Hardware an. Ei-ne Hardware-

”Erkennung“ ist hier nich moglich, erst hinter

z.B. USB-Schnittstellen, die ein entsprechendes Protokoll be-sitzen

+ Fur ARM-basierte Systeme muss in fast jedem Fall ein auf ge-nau dieses System optimierter und konfigurierter Kernel gebautwerden, sonst startet das Gerat erst gar nicht.+ S.a. Cyanogenmod fur verschiedene Tablets/Smartphones.

Folie 133

Kernel installieren

Mit make modules install werden die Module nach/lib/modules/kernel-version kopiert. Der statischeTeil des Kernels aus dem Kernel Source-Verzeichnis un-ter arch/i386/boot/bzImage muss dem Bootloader inder jeweiligen Konfigurationsdatei (/etc/lilo.conf oder/boot/grub/menu.lst) bekannt gemacht werden, damit dasBetriebssystem starten kann.

Bei den meisten Distributionen sind die statischen Kernel-Komponenten im Verzeichnis /boot zu finden.

Folie 134

”Userspace-Treiber“

í Werden NICHT mit dem Kernel zusammen compiliert

í sind im Prinzip Anwenderprogramme, die

í die SChnittstellen der Kernel-Treiber nur NUTZEN.

Beispiel: Touchscreen-Treiber, Serial Devices (z.B. Myo).

46

Page 47: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 135

Layer-Darstellung

Der Kernel bildet die Schnittstelle zwischen Hardware und An-wendersoftware, wobei dynamisch gebundene ProgrammeSystem- und Programmbibliotheken zum Zugriff auf die Kernel-API verwenden.

Hardware

Kernel

Libraries

Applications

Folie 136

Boot-Modus von Android

Gesteuert durch die Abfrage von Hardware-Tasten beim Einschalten,kennen die meisten Android-Gerate folgende Operations-Modi:

1. Pre-Bootloader (”Fastboot“): Flashen einer Partition (permanent)oder Laden eines Kernels (temporar) uber USB-Schnittstelle. Wirdmeist verwendet, um ein [neues] Recovery-System zu installieren.In diesem Modus gibt es keinerlei Ausgaben am Bildschirm, Steue-rung per fastboot vom PC aus.

2. Recovery: Start eines”Minimalsystems“, mit dem auf Dateie-

bene Backup, Restore und Installation von Betriebssystem oderApps (meist als ZIP-Datei). Ggf. schon mit graphischer Ober-flache, per Tasten und/oder Touchscreen bedienbar, ADB wirdunterstutzt (adb shell, adb sideload). Beispiele: Team Win Re-covery (TWRP) und clockworkmod

3. System-Boot: Start des”Normalkernels“ mit Android-Runtime, gra-

phischer Oberflache und Apps.

Folie 137

Hurde”OEM Lock“ bei Android Geraten

Einige Hersteller verhindern durch einen proprietaren, software-gesteuerten

”Hardware-Schreibschutz“ das Austauschen von

Pre-Bootloader und Recovery auf den dafur vorgesehenen Par-titionen.

Das Abschalten dieses Schreibschutzes ist meistens moglichdurch einen Freischalt-Code, der beim Hersteller kostenloserhaltlich ist, allerdings erlischt dadurch die Gewahrleistung furdie System-Software, und vorhandene Daten werden geloscht.

47

Page 48: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 138

Peripherie-Virtualisierung

Durch das Verhindern des direkten Zugriffs von Anwenderpro-grammen auf die Hardware und die Abbildung von Hardwarein Form von

”Geratedateien“ im Verzeichnis /dev findet bereits

eine”Virtualisierung“ statt - namlich eine Modellierung realer

Hardware auf einer API, die Programme verwenden konnen, ummit Hilfe von Dateizugriffen und Systemaufrufen (system calls,io controls) auf die vom Kernel geschutzte Hardware zuzugrei-fen.

Folie 139

OS-VirtualisierungBei der Virtualisierung wird die Hardwareschicht zum großtenTeil durch eine

”Simulation“ ersetzt. Je nach Virtualisierungs-

grad werden Anfragen an einzelne Resourcen wie CPU oderDatentrager des

”Gast“-Betriebssystems vom Hypervisor (Virtu-

al Machine Monitor VMM) direkt oder indirekt an das”Host“-

Betriebssystem durchgereicht.

Folie 140

Virtualisierungs-ArtenHardware-EmulationDie komplette Hardware des

”Gastes“ wird simuliert, selbst CPUs mit an-

derem Befehlssatz.Beispiele: Bochs, MS Virtual PC (PPC Version), QEMU.Hardware-VirtualisierungTeile der Hardware werden virtualisiert (unter anderem Namen, verwaltetvom

”Host“) an den

”Gast“ weitergereicht, z.B. werden die meisten In-

struktionen nativ auf der CPU ausgefuhrt und konfigurierbare Resourcenwie Festplattenpartitionen an das Gast-Betriebssystem

”durchgereicht“.

Beispiele: VMware, Microsoft Virtual PC (x86), KVM, Xen, VirtualBoxParavirtualisierungEs wird eine neue Instanz eines Betriebssystems gestartet, jedoch oh-ne Simulation der Hardware. Entweder muss eine andere Instanz eineHardwareschicht zur Verfugung stellen, oder das

”Gast“-Betriebssystem

muss mit einer virtualisierenden Verwaltungsschicht darauf vorbereitetwerden, als separate Instanz auf der gleichen Hardware zu laufen.Beispiele: VMware ESX 3.5, KVM, Xen 3.0, PikeOS, lguest

48

Page 49: Mobile Betriebssysteme - knopper.net · í Das Open Source Prinzip erlaubt es, die Software legal zu analysieren, zu verandern und weiterzuentwickeln.¨ í Ein Großteil der am haufigsten

Folie 141

Virtualisierung OS-Images

Festplatteninstallationen und Speicherabbilder werden haufig inImages abgelegt, die optional komprimiert sein konnen, um rea-len Speicherplatz einzusparen. Auch sog.

”sparse files“ - Dateien

mit”Loschern“ (noch nicht belegtem Platz, der erst beim Zu-

griff expandiert) sind moglich, wenn vom Host-Dateisystem un-terstutzt.

QEMU besitzt ein umfangreiches Konvertierungs-Tool, das virtuel-le Images zwischen verschiedenen Virtualisierungs-Engines um-wandeln kann.

Folie 142

Ubung

1. Stellen Sie fest, ob Ihr Computer”Hardware-Virtualisierung“ un-

terstutzt:grep -E ’ˆflags.*(vmx|svm)’ /proc/cpuinfo

2. Falls ja, laden Sie das kvm-Modul fur Intel oder AMD:sudo modprobe kvm intel bzw.sudo modprobe kvm amd

3. Starten Sie KNOPPIX in der Virtualisierung neu:kvm -m 1024 -boot d -cdrom /dev/sr0bzw.qemu-system-x86 64 -m 1024 -boot d -cdrom /dev/sr0bzw. fur USB-Stick:qemu-system-x86 64 -m 1024 -boot c -hda /dev/sdb(ACHTUNG: hier unbedingt bei den Knoppix-Bootoptionen

”knoppix64 noimage“ angeben!!!)

49