đĄGrrrrrlektrotechnik đ„Č2te Klasse
Betriebssysteme
- Unterscheidungen
- Genereal purpose OS
- Windows, Linux, Mac OS, Handy
- real time os
- Unterschied zu general purpose â Ressourchen bzw Aktionen werden hochverfĂŒgbar und in einer definierrten Zeit aufrufbar
- Bsp: Maschienenbau-Robotic Kfz Abs, Digitalkamera, Medizin(Herzschlagmesser), Stock Exchange, Vekehrswesen(Verkehrskontrolle), Flugverkehr Radar inkl MilitÀr, Haushalt Mikrowelle, Waschmaschiene,
- soft/firm/hard- RTOS â zeit fĂŒr ProzessablĂ€ufe wird garantiert, bis maximale Zeit (d.h ungefĂ€hr
Prozesse, Thema und Jobs
Obwohl Programm und Prozess einander sehr Àhnlich sehen, unterscheiden sie sich doch wesentlich:
Programm = statische Sequenz von Anweisungen Prozess = Container fĂŒr einen Satz von Ressourcen, der erst dann benĂŒtzt wird, wenn eine Instanz des Programms ausgefĂŒhrt wird.
Versuch einer Definition
Prozess = Programm in der AusfĂŒhrung dabei hilft:
- Programm selbst = statisch (code)
- Prozess ist aber dynamisch Prozess = Programm + zugehöriger Datensatz
Der Prozess kann mit einer Handvoll Elemente charakterisiert werden, diese heiĂen PCB⊠process control block z.B ID, Zustand, Prozesse = Kontrolle, ProgrammzĂ€hler
âHeaderâ des Prozesses â
Platzhalter | Platzhalter2 | |
---|---|---|
Identifier | eindeutige Kennung des Prozesses | |
State | Programmzustand (running, wait) | |
Priority | âRangordnungâ | |
Programm Counter | zeigt auf aktuelle code zeilen | |
Memory Pointers | Zeiger auf bestimme SpeicherplÀtze | |
Context Data | Zugehöriger Datensatz | |
I/O status | ||
Accounting Information | Zugrifsrechte |
âDining philosopher problemâ (von Dijkstra) 5 ItaliĂ€ner, 5 Teller, 5 Gabeln Algorhytmus: Jeder nimmt zuerst die linke Gabel, ausschlieĂend die rechte (er braucht beide Gabeln zum Essen) â jeder braucht eine 2. Ressource (Gabel) , muss aber warten, bis diese vom rechten Nachbarn freigegeben wird, Der gibt sie aber erst frei wenn er gegessen hat, Das kann er aber erst, wenn er seinerseits von seinem nĂ€chsten Nachbarn freigegeben wird. Der gibt sie erst frei, wenn er gegessen hat. Das kann er der andere es hat usw
Problem: Wenn alle 5 gleichzeitig essen wollen, kann dies keiner tun, weil ihm jeweils die Zugehörige Gabel fehlt Folge: alle 5 verhungern = starving â diese ausgangslose Situation heiĂt: Deadlock (Geometry Dash Referenz)
Prozesse A und B kooperieren:
A | B |
---|---|
wartet auf Ressource x | benötigt Ressource x, kann sie erst freigegeben werden wenn nötige Info von Prozess A kommt |
A kann die erwartete Info nur liefern, wenn Ressource x verfĂŒgbar ist |
â Klassischer Deadlock
- Bedingungen
- Mutal Exclusion
- eine bestimme Ressource kann zu irgendeinen (bestimmten) Zeitpunkt nur von einem einzigen Prozess belegt werden
- Ressorce Waiting
- Wenn eine Ressource beantragt wird, die besetzt ist, muss der anfordernde Prozess warten, bis diese freigegeben wird. Er ist wÀhrenddessen in einem Wartezustand = BLOCKED
- bsp mutal exclusion
- bei einem Drucker kann auch nur einer Gleichzeitig drucken â deshalb die Printer Queue
- Partial allocation
- ein Prozess, der bereits eine Ressource âbesitztâ, kann die Zuteilung weiter (anderer) Ressourcen beantragen â der Prozess belegt dann fĂŒr andere Ressourcen, die dann fĂŒr andere Prozesse nicht zur VerfĂŒgung stehen
- Nonpreemption
- Wenn eine Ressource einen Prozess zugeteilt werden kann sie diesen Prozess (ausschlieĂlich) nicht zwangsweise wieder entzogen werden
- Mutal Exclusion
Verhindern eines Deadlocks ist Aufgabe des Betriebssystems â dafĂŒr gibt es 3 grundlegende Möglichkeiten:
-
Deadlock Detection und Recovery
- Ressource Allocation Graph = Zuteilung und Freigabe von Ressourcen
- regelmĂ€Ăige Aktualisierung zeigt sogenannten Zyklen (=Deadlocklocksituartionen)
- OS terminiert den âblockierendenâ Prozess (=auflösen) (das ist aber relativ Brutal)
-
Deadlock Prevention
- beim Design des OS wird versucht, eine der grundlegenden Bedingungen fĂŒr einen Deadlock zu verhindern, d.h eine der Bedingungen wird dabei âa priori verletztâ (a priori = im Vorfeld)
- bsp: Spooling von DruckauftrĂ€gen verhindert die Mutual Exclusion â âbeliebigâ viele Prozesse können DruckauftrĂ€ge an die Warteschlange schicken. Der Drucker selbst wird nĂ€mlich nur von einem Prozess angesprochen (belegt), der Printer Server
- beim Design des OS wird versucht, eine der grundlegenden Bedingungen fĂŒr einen Deadlock zu verhindern, d.h eine der Bedingungen wird dabei âa priori verletztâ (a priori = im Vorfeld)
-
Deadlock Avoidance
- aufwendigste Variante im Vorfeld wird vor der Zuordnung einer Ressource eine Analyse durchgefĂŒhrt, ob eventuell spĂ€ter ein Deadlock entstehen kann Problem: mögliche Deadlocks können nur im begrenzten Umfang erkannt werden, d.h eine tatsĂ€chliche âsichereâ Entscheidung ist selbst fĂŒr die besten Algorhytem nicht möglich.
-
ProzessablÀufe
- aufrufen eines Os-Prozess
- Login eines Users
- laufender Prozess startet eine einen seiner Prozesse (Parent - child)
-
Prozessbeendung
- schlieĂen einer Anwendung
- Logout eines Users
- Service - Request aus dem OS
- gewollte Ende eines Prozesses â liefert RĂŒckmeldung an OS â wenn RĂŒckmeldung != 0 â Fehler zb I/O Error oder Arethmetic error.
- 5 State Modell
- new: Prozess ist zur DurchfĂŒhrung vorbereitet, aber noch nicht im Main - Memory
- ready: der genaue Prozess im Arbeitsspeicher und wartet auf sein âStartsignalâ, das heiĂt die Zuteilung der CPU
- running: der Prozess ist im âBesitzâ der CPU und wird ausgefĂŒhrt
- blocked (wait): Prozess ist gerade im Wartezustand und wartet auf ein bestimmtes Ereignis, z.b Ender einer I/O-Operation, Freiwerden der CPU
- exit: Prozess wurde beendet/abgebrochen und ist nicht mehr zur AusfĂŒhrung bereit, âErgebnisseâ bleiben eventuell temporĂ€r erhalten
- Problem: Hauptspeicher ist limitiert, zu viele Prozesse â Performance = Verlust. eine Lösung: Swapping â Prozess teilweise oder zur GĂ€nze in den SekundĂ€rspeicher verschoben (Hdd, Auslagerungdatei)
- â weiterer Prozessszustand nötig = Suspend (âaussetzenâ) dabei mĂŒssen alle nötigen Informationen gespeichert (gesichert) werden, PCB + Zwischenergebnis + Prozess, damit der Prozess, spĂ€ter auf exakt derselben Stelle fortgesetzt werden kann.
- Ursachen fĂŒr den suspend-Zustand (auĂer Swapping)
- periodisch ausgelöste Prozesse können wÀhrend WAIT suspended werden (z.b Timer)
- OS kann einen Hintergrundprozess oder einen problembehafteten Prozess suspenden (z.b Printqueue)
- suspenden eines interaktiven Requests (z.bb Debugging)
- parent-Prozess suspended eigenen Child-Prozess zur Koordination, Modifikation, âŠ
- Kontrollstrukturen (zur Prozessverwaltung)
-
Prozessimage
- User Programm â Sourcecode
- User data â manipulierende Daten, bzw Programme
- Systemstack â alle mit dem Prozess assoziierten Slots
- Process Control Block
- Prozess ID (Prozessnummer, Benutzererkennung, parent process)
- Process State Information (Registerinhalte, Stack Router)
- Prozess control Information Querverweise auf andere Prozesse, scheduling + Zustandsinfos
-
Execution Modes
Api ⊠application programming interface = Programmierschnittstelle im user mode (im Windows SDK enthalten zb) beinhaltet tausende aufrufbare Funktionen
-
Hauptprotokolle:
- Base Services
- elementare Funktionen: Speichermanipulationen, Kryptofunktionen(TPM)
- Component Services = Com + (conpounent object model) Kommunikation zwischen den Prozessen, fĂŒr high Performance Kommunikation (Internet und Serveranwendungen)
- user interface Services
- z.B dynmamic anotations (Bestimmte Fehler)
- graphics & multi media Services
- zb Streamingserver
- Messaging and colaboration Services
- E-mail, calendendering, file sharing
- Networking Services
- remote access, VPN, routing
- Web Service
- Tcp,Udp,http-client,http-server,xml
.NET - Framework
Beziehungen der Komponenten
CLR ⊠common language runtime
Laufzeitumgebung fĂŒr (Managed) code beinhaltet einige Features (zb. Garage collection)
FCL ⊠Framework class Library, ECLR
Die CLR ist als Klassischer COM-Server implementiert. Com-Server: stellt Server auf Serveranwendungen (fĂŒr den Client) zur VerfĂŒgung
Services, Funktionen, Routinen (exemplarisch)
-
Windows API - Funktionen createprocess createfile
-
System calls native system services
- undokumentierte (umanaged) Services, aus dem user-mode aufrufbar NTCreate Process (start eines neuen Prozesses)
-
Kernel Support Funktionen
- = Subroutinen, die nur vom Kernel aus aufrufbar sind ExAllocatePoolWilthTag = lÀdt einen GerÀte Treiber aus dem Heap
- Heap ââ Stack
- Heap: dynamischer Speicher
- Stack: strukturierter Speicher
Windows Services
- Prozesse, die vom Service Control Manager gestartet werden,
- zb Task Scheduler Service - lĂ€uft im User-Mode, unterstĂŒtzt die Zeitplanung der Applikationen (CPU-Time)(!= Devicetreier)
- DLLs (dynamic link libraries)
- Satz an aufrufbaren Subroutinen, in einem einzigen BinÀrfile zusammen gefasst (linked), der dynamisch geladen wird.
- zb Msvert.dkk (C runtime libary)
- Versmel32.dll (Subsystem libary)
- Vorteil der Dlls (gegenĂŒber statischen Libraries)
- â Apps nĂŒtzen Dlls gemeinsam (sharing)
- â Windows stellt ferner Sicher, dass immer nur 1 Kopie einer dll im Speicher ist.
- Satz an aufrufbaren Subroutinen, in einem einzigen BinÀrfile zusammen gefasst (linked), der dynamisch geladen wird.
- Virtual Memory
- basierend auf einem linearen Adressraum, damit jeder Prozess (scheinbar) seinen eigenen (âgroĂenâ) privaten Adressraum zur VerfĂŒgung hat.
- â logische Sicht auf den virtuellen Speicher ist nicht ident mit dem Physikalischen Speicher
- Der Memory Mapper ist Teil des OS und stellt sicher, dass sich die (phys) Bereiche unterschiedlicher Prozesse nicht ĂŒberschneiden
- Problem: physikalischer Speicher << virtueller Speicher â einige Inhalte werden daher auf die Festplatte ausgelagert = Swapping
- GröĂe des virtuellen Speichers ist von der Plattform abhĂ€ngig â x86(32bit) = max 4gb
- â daher wĂŒrde die HĂ€lfte von OS selbst benötigt (obere HĂ€lfte) 0x8000 0000 - 0xFFFF FFFF
- â untere HĂ€lfte ist fĂŒr Prozesse verfĂŒgbar, dadurch virtueller Speicher scheint es so, dass jeder Prozess diese HĂ€lfte exklusiv erhĂ€lt.
- Alternativ: boot-time option Prozesse bekommen die Möglichkeit, 3GB zu adressieren, wenn sie spezielle Programme laufen lassen.
- Die Programme mĂŒssen speziell gekennzeichnet werden, dazu dient ein bestimmtes Flag (=Marker), das âlarge adress space awareâ- flag,
- â zb Datenbankserver â kaum gröĂere Teile der Datenbank in den Speicher laden, wodurch das Mapping reduziert wird, und die Zugriffe beschleunigt werden.
- Falls das immer noch trz wenig ist â Mechanismus AWE â Adress Windowing Extension
- Erlaubt bis zu 64GB Physischen Speicher zu belegen
- Nachteil:
- statt des Memory Managers muss der Programmierer das Mapping ĂŒbernehmen. (dh er muss sicherstellen, dass Prozesse Speicher nicht ĂŒberlappend benutzen)
Kernel Moide vs User Mode
x64 CPUs â âpriviligierte levelsâ , Sicherheitsring
Problem: Treiber von 3.Herstellen (z.b Grafikarten) sitzen im Ring 0, fehlerhafte Programmierung â OS-Störungen
â zusĂ€tzliche Schutz Funktion von MS:
- KMCS kernel mode code signings
- dh fĂŒr 64bit Treiber: kryptograph SchlĂŒssel (SH1-1?) (Windows)
- HĂŒ1: Dualboot option
- welche Strategien gibt es?
- Unterschiede bei verschiedenen OS
Dualboot hĂŒ
- Unterschiede
- gibt es aber grundsÀtzlich kann man alles gleich machen eigentlich os egal
- Vorrausetzungen
- 2te Festplatte oder Freie Partition
- grub boot loader erkennt automatisch anderes os oder wenn nicht erkannt es in der grub.cfg datei hinzugefĂŒgt werden oder man wĂ€hlt es vom boot menĂŒ aus in was man booten will
- Fazit grub macht alles
Dualbooten klingt kompliziert, aber ist eigentlich ganz einfach. Als entscheidet man sich fĂŒr eine von 2 Strategien entweder das andere Betriebssystem auf einer anderen Festplatte zu installieren, oder auf der jetzigen eine zweite Partition anlegen. Jenachdem was man wĂ€hlt der nĂ€chste Schritt ist es von einem USB Stick zu booten mit Betriebssystem, das man installieren will. Wenn man das hat und bei der Instalations des Betriebssystems kann man jetzt noch die Festplatte partitionieren falls man es noch nicht vorher gemacht hat. Nachdem man das Betriebssystem installiert hat ohne im Prozess die falsche Festplatte oder Partition unabsichtlich ausgewĂ€hlt und gelöscht hat, dann sollte beim Einschalten entweder Windows Boot Manager oder der Bootloader des anderen Betriebssystems jeweils die andere Option zeigen. Wenn nicht kann man die Konfigurationsdatei des Bootloaders bearbeiten um es anzuzeigen, aber hierbei sollte man Vorsichtig sein, damit man nicht seinen Bootloader kaputt macht. All in allem Dualbooten ist relativ simple, solange man den Dualboot nicht verschlĂŒsseln will und es nicht zu Problemen mit dem Bootloader kommt und das andere Betriebssystem nicht erkannt wird. Das schöne am Dualbooten ist, dass egal was fĂŒr einen Computer man verwenden will und was fĂŒr ein Betriebssystem gerade installiert ist, kann man mĂŒhelos einen Dualboot einrichten, da man nur eine freie Festplatte oder Partition benötigt.
Prozesse, Threads und Jobs
- Prozessinhalte:
- private virtual adress space = virtuelle Speicheradressen, die von Prozess benötigt werden
- ausfĂŒhrbares Programm(executable)
- obigen Adressraum zugeordnet
- definiert sÀmtliche initialisierungsdaten
-
- Datums-/Zeitstempel
- Prozess ID
- unique identifier (Teil der ClientID)
- Liste der Open Handler (zu den div. Ressourcen)
- Files(verfĂŒgbar fĂŒr Threads im Prozess)
- communication ports
- semaphore (=Datenstrukturen)
- Access Token
- security context, zur Identifikation von:
- user
- security group(s)
- Session
- privileges
- UAC (User Account Control) - virtualization state
- security context, zur Identifikation von:
- Zumindest 1 Thread
- Anmerkung: darf nicht ein leerer Thread sein(sind auch sinnbereit)
Jeder Prozess zeigt auf seinem partent-Prozess (Creator) Wird der Creator geschlossen, zeigt der child-Prozess auf einen leeren praten-Prozess Der Prozess kann aber weiterlaufen, da er seine eigne, eindeutige ID hat. (und die benötigten geteilten Daten/Ressourcen erhalten bleiben)
Threads
âminimaleâ Einheit innerhalb eines Prozesses er wird vom Os fĂŒr die AusfĂŒhrungsplanung benötigt. (Zur Erinerung: ein Prozess ist ohne Zumindest 1 Thread nicht lauffĂ€hig)
- essenzielle Komponenten
- Thread ID
- Prozess ID und Thread ID gehören demselben Namespace an
- 2 Stacksâ einen fĂŒr dir AusfĂŒhrung im kernel mode und einen im user mode.
- Satz an CPU Registern (Inhalte) â zur Abbildung des aktuellen Status des Threads
- TLS â Thread local storage
- = private storage area mit Runtime libraries, DLLS Subsystems, âŠ
- Thread eigener security Context
- im bestimmten FĂ€llen, im multitheads applications, bei Serveranwendungen (beinhaltet security ID der Clients)
- Threadcontext: Inhalte sind architekturabhÀngig
- Aum: lÀuft ein Thread im 32 bit-Modus, so liegt er sowohl einem 32bit-Cotext, das auch einem 64bit-Context, damit zwischen diesen beiden Modi umgeschaltet werden kann.
- Thread Switching
- hĂ€ufiges Umschalten zw. Theads ist (unter anderem fĂŒr die CPU) aufwĂ€ndig. Windows - 2 Mechanismen
- Fiber
- aka light weihgt Threads
- laufen im user mode â fĂŒr d. Kernel nicht sichtbar.
- Fibers und Threads sind Teil derselben Anwendung â
- ConvertThreadToFiber â uas einem Thread wird ein aufteilbarer Fiber gemacht
- dieser âneuerâ Fiber kann weitere Fiber erzeugen, mit âCreateFiberâ (jeder Fiber erzeugt seinen eignen Satz aus Fiber)
- im Gegensatz zum Thread muss ein Fiber manuell gestartet werden â âSwitch to Fiberâ ein Fiber stoppt nur auf 2 Arten:
- wenn er abgelaufen ist
- wenn er seinerseits einen eigenen Fiber startet
- UMS Threads
- (user-mode scheduler Threads) gibt es ausschlieĂlich im 64bit Windows Versionen â haben viele Vorteile der Fiber, vermeiden aber manche der Nachteile â UMS-Threads haben einen eigenen kernelthreadstste dh sie sind fĂŒr den Kernen sichtbar. Deshalb können sie
- System Calls blockieren
- um Ressourcen konkurrieren bzw diese teilen
- wenn = > 2 UMS-Threads lediglich im Usermode arbeiten, dann können sie untereinander regelmĂ€Ăig umschalten, ohne den Scheduler zu benötigen, dh der âContext Switchâ erfolgt im Usermode, der Kernel sieht dabei immer nur ein und denselben Thread laufen. Sobald ein UMS-Thread den Kernel benötigt, schaltet er selbst zu seinem dezidierten Kernelmode thread um â âdirected context switchâ
- Jeder Prozess hat seinen eigenen âExecution contextâ, dabei teilen sich die Threads innerhalb eines Prozesses den virtuellen Adressraum
- Threads können dabei den Adressbereich eines anderen Prozesses nicht ansprechen
- 2 Ausnahmen
- ein Prozess gestatten einem anderen den Zugriff = shared memory section (aka file memory object)
- ein Prozess hat Zugriffsrechte, um einen andren Prozess zu öffnen i.e coss-process memory
- Security context
- eine Liste mit dem open Handels
- Bsp Open Handels:
- Dateien
- shared Memory Bereiche
- geteilte Ressourcen (= mutual exclusion objects, aka mutexes)
- Events
- Datenstrukturen
- VAD - Virtual address descriptor
- Datenstruktur, um vom Memory Manager nachverfolgt werden zu können.
- Bsp Open Handels:
- (user-mode scheduler Threads) gibt es ausschlieĂlich im 64bit Windows Versionen â haben viele Vorteile der Fiber, vermeiden aber manche der Nachteile â UMS-Threads haben einen eigenen kernelthreadstste dh sie sind fĂŒr den Kernen sichtbar. Deshalb können sie
- Thread ID
Jobs (aka job object
Zwek: eine Gruppe von Prozessen zu einer einzigen Einheit Zusammenfassenm um eine Manupulation dieser Prozesse (steuern, Ă€ndern,âŠ) zu erleichtern.
Das Jobobject (i.e âGruppe von Prozessenâ) kann zb Attribute steuern und den beteiligten Prozess steruern und den beteiligten Prozess âGrenzenâ setzen (zb shared memory (dataâŠ))
Virtualisierung
- Was ist das?
- Mehrer OS laufen gleichzeitig
- Sandbox/Pseudo Computer
- GrĂŒnde
- Sicherheit
- Test von Hardware-fremdem OS
- Software die fĂŒr ein anderes OS geschrieben wurde
- Effizientere Hardwarenutzung
- unterschiedliche Technologien
- dabei werden mache Teile der HW fast âgerechtâ verfĂŒgbar gemacht, zb CPU,RAM, andere werden zur gĂ€nze emuliert zb NIC
- Nachteile
- höhere Hardware Performance
- höhere KomplexitĂ€t â mehr know how benötigt
- Ă€ltere Hardware ungestĂŒtzt nicht immer Virtualisierung manche neue manchmal auch nd zb AMD Ryzen 76700
- Hardware wird zum single point of failure
- Hardware Emulation != Virtualisierung dabei wird die gesamte Hardware (eines Rechners) Softwaretechnisch nachgebildet zb dafĂŒr nicht existierende Hardware fĂŒr Programmierung fĂŒr ortfremde Hardware (zb Android Apps auf PC) â aber ass Performance obvi
- Zb: Yuzu, QEMU, MS Virtual PC (fĂŒr Mac Os Windoof)
- Applikationsvirtualisierung
- Anwendungen werden in einer virtuellen Umgebung ausgefĂŒhrt
- alle benötigten Ressourchen werden von der virtuellen Umgebung zur VerfĂŒgung gespielt
- Vorteile
- PlattformunabhÀngig zb JVM
- Nachteile
- geringe Performance
- Anwendungen werden in einer virtuellen Umgebung ausgefĂŒhrt
- Virtual Maschiene Monitor
- âhybridâ = sowohl Emulation, als auch Virtualisierung
- jedes Guest OS erhĂ€lt seinen âeigenenâ virtuellen Rechners
- Vorteile
- nur geringe Ănderungen im Guest OS nötig
- Zugriff auf die wichtigsten Hardwareressourchen wird nur durchgereicht â whare Performance
- jedes Guest OS hat seinen âeigenenâ Kernel
- Paravirtualisierung
- HW wird weder emuliert noch vertiert
- abstrakte Zwischenschicht: Hypervisor auf diesen laufen die virtualisierten OS
- Hypervisor = Meta OS, auf dem ein minimum reduziertes OS
- guest OS erhalten eine API zur Kommunikation
- bsp Proxmox
- Vorteile
- hohe Performance
- Nachteile
- Guest OS mĂŒssen angepasst werden â nur fĂŒr Open Source (=Vorteil Hypervisor ist einfacher aufgebaut)
- HW-Virtualisierung
- Paravirtualisierung fĂŒr nicht modifizierte OS (zb Windoof)
- dafĂŒr muss die CPU angepasst werden, dh Ring 0 wird gesplittet (um einen Virtualisierungsteil erweitert)
- Betriesystemvirtualisierung
- Container,Jails
- unter 1 Kernel laufen mehre, zueinander isolierte Instanzen eines OS instaliert, sondern lediglich eine Instanz aufrufen
- Instanzen laufen in einem eigenen Container, wirken dabei (nach auĂen) wie ein eigenstĂ€ndiges OS
- Anwendungen können einander nur sehen, wenn sie in derselben Instanz laufen, obwohl sie auf den selben Kernen zugreifen
- Vorteil â geringer Ressourchenbedarf + hohe Performance
- Nachteil â da alle Instanzen denselben Kernel verwerden, könne auch nur âgleicheâ OS virtualisiert werden, zb Windoof server 2016 nur 2016 kein 2012
- Open VZ fĂŒr Linux nur mit Versionen mit demselben Kernel(zb6.3)
- Anw: rootserver, webserver
- MS-Container: 4 Versionen
- windoof10 â ĂŒber Windoof Api
- IoT core â fĂŒr IoT apps
- Nanoserver â .NET Core
- Servercore â .NET Framework
- ErgÀnzungen
- Hybridkernel
- Prinzip: Treiber werden nur im Privilegierten Modus ausgefĂŒhrt â âAbstĂŒrzeâ der Treiber können abgefangen werden
- Virtualisierung mit binary Translation
- Prinzip: der Hypervisor fÀngt alle kritischen Systemanfragen ab (vor dem eingentlischen Ressourchenzugriff)
- Problem
- Relativ aufwendig
- Guest OS lÀuft im Ring 1 = Paravirtualisierung
- Problem
- Anmerkung: zur Errinerung paravirtualisierte OS haben keinen privilegierten Zugriff auf die HW
- Hybridkernel
- Hypervisor
- Typ 1
- bare metal
- ~Meta Os, lÀuft sehr nahe an der HW
- Vorteil: sehr Kompakt â weniger Ressourcen â lĂ€uft schnell zb Proxmox, vmware esxi, xens
- Der Einsatz findet hÀufig bei Server Virtualisierung statt
- Typ 2
- hosted
- besitzt ein Basis Os, it eig wie eine App (innerhalb des Guest OS), die HW wird als Abstrahierung idk zu VerfĂŒgung gestellt
- Vorteil
- OS muss nd angepasst dafĂŒr werden
- Nachteil
- langsam, kein direkter zugriff auf die HW
- Bsp VirtualBox, Vmware Workstation,âŠ
- Typ 1