22. Linux-Treiber. System Architektur

Größe: px
Ab Seite anzeigen:

Download "22. Linux-Treiber. System Architektur"

Transkript

1 22. Linux-Treiber Rubini, A. & Corbet, J.: Linux Gerätetreiber, 2. Auflage, O Reilly M. Beck, & al.: Linux Kernelprogrammierung Algorithmen & Strukturen der Version 2.4, Addison-Wesley, 6. Auflage, H. Herold: Linux Unix Systemprogrammierung, Addison-Wesley, 2. Auflage, R. Stevens: Advanced Programming in the Unix Environment, Addison-Wesley, System Architektur Unix Betriebssystem begonnen durch Linus Torvald. Open Source. Preemptives Multitasking. Prozesse und Threads (durch zusätzliche Bibliothek). Shared Libraries als Gegenstück zu den Windows DLLs. Monolithischer Kern mit Modulkonzept (auch dynamisch ladbar). 1 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

2 Kern- Architektur: System-Call über Interrupt 0x80. Kern läuft im Ring-0 und Anwendungen im Ring-3. Getrennte Adressräume zwischen Kern (0-1GB) und User-Mode (1-4GB). Anwendungen System Libraries (libc) System Call Interface Modules I/O Related File Systems Networking Device Drivers Process Related Scheduler Memory Management IPC Architecture-Dependent Code Hardware 2 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

3 22.1. Einbindung eines Treibers Statische Treiber Statisch mit dem Linux-Kern linken: Automatischer Symbol-Export (mydrvr_xvar), mydvr_init-routine wird beim System-Start gerufen, Treiber registriert sich selber beim Kern: int register_chrdev( unsigned int major, const char *name, struct file_operations *fops); Registrierung beim Kern: name nur für Konsolmeldungen, Treiber meldet sich mit einer Major-Nummer an, Dateioperationen in Vektor => do_basic_setup( ) register_chrdev(...) Kernel init do_basic_setup Device_setup tty_io #4 fops tty_init register_chrdev ( 4, &myfops) 3 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

4 Dynamische Treiber in Modulen Superuser-Rechte notwendig für insmod & rmmod. Treibermodule dynamisch nachladen: insmod /bt878/bin/frmgrbbr.o insmod erlaubt zur Laufzeit Module zu laden, init_module Routine wird aufgerufen, Modul registriert sich beim Kern. Modul entladen mit dem Befehl: rmmod... frmgrbbr cleanup_module Routine wird aufgerufen, Cleanup-Routine entfernt die Registrierung, Symboltabelle wird automatisch aufgeräumt. Symboltabelle im Kern (siehe auch /proc/ksyms): Grundlage für dynamisches Linken von Modulen, Enthält vorerst alle exportierten Symbole, static Namen jedoch nicht exportiert, Problem: Namenskollisionen, explizites Registrieren von Teilen der eigenen Symboltabelle mit register_symbtab( &chosen_few ) 4 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

5 Versionskontrolle: Kompatibilität durch prüfen von Schnittstellen (Funktionen & Datentypen). Kern muss zunächst mit Versionsinformation übersetzt werden. Jeder exportierte Namen wird durch eine 32-Bit CRC erweitert. Beispiel: printk_r11ad48ba (11ad48ba ist CRC berechnet aus von printk genutzter Schnittstelle). Module müssen mit Schalter MODVERSIONS übersetzt werden! genksyms zum Export von Symbolen aus Modulen mit CRC. 5 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

6 Gerätedateien im Verzeichnis /dev Gerätedateien z.b. /dev/hda1 für die IDE-Festplatte 1. Erscheinen als Datei für die User-Prozesse: Mit eigenem inode, Hier im Verzeichnis /dev/, Ohne Daten-Extent auf Platte, Im inode als Gerät vermerkt. Öffnen von Gerätedateien bzw. Treibern: int open(const char *pfadname, int opnflag, int mode) Als System Call aus dem User Kontext, Liefert Filedeskriptor oder Errorcode ( Err < 0 ), Filedeskriptor ist Index in inode-tabelle des Prozesses. Sowohl für echte Datei als auch für Gerät. 6 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

7 Entsprechende Funktion im Treiber int open(struct inode *i, struct file *fp) inode: Major, Minor Nummer und Gerätetyp. fp: File-Pointer. Einrichten von Gerätedateien: mknod /dev/tty c 4 64 Name tty im Verz. /dev/, c : ist ein Character-Device, Neuer inode im Dateisystem, inode mit Feld vom Typ kdev_t = (4,64), Treibernummer 4 (Major Number). Gerätenummer 64 (Minor Number). Verbesserung durch devfs (ab Version ): Gerätedateien werden dynamisch erzeugt und entfernt. Gerätetreiber definiert Namen selbst. 7 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

8 22.3. Datenstrukturen des Dateisystems FileDeskriptor als Integerzahl: Index in die Dateitabelle eines Prozesses, Standardinput, -output, -error (0,1,2). F_Deskr User Prozess files Die Einträge in der Dateitabelle beziehen sich auf einen inode. inodes INode: nimmt Bezug auf Treiber oder Diskfile, bestimmte Inodes nur im Hauptspeicher, Caching von Inodes im Hauptspeicher, persistente Inodes auf Festplatte. Kernel Treiber Treiber Treiber[i] Block-Cache Blocktreiber 8 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

9 Virtual File System Koexistenz mehrerer Dateisysteme: Reale Dateisysteme (... HPFS, Minix), /proc/ -Dateisystem, Gerätetreiber: Virtuelles Dateisystem Ext2 FAT xfs /proc/ Block-Cache Gerätetreiber 9 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

10 Subsystem der /proc/-dateien Vorgespiegelte Dateien ohne persistente Speicherung. Informationen über Maschine, OS & Netz. /proc/ Pseudoverzeichnis: pci: gefundene PCI Devices stat: allgemeine Linux-Kern Statistik cpuinfo: devices: inklusive CPU Designfehler Character und Block Devices meminfo: Hauptspeicher, Cache, Swapspace... modules: geladene Module und Treiber /proc/sys/ Pseudoverzeichnis: fs/: Infos zu den Dateisystemen net/: Infos zu Netzwerksubsystemen vm/: Parameter der Speicherverwaltung kernel/: Infos zum Kern und zu Internetnamen /self/ Pseudoverzeichnis liefert Information über aktuelle Prozesse. 10 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

11 22.4. Major & Minor Nummern inode enthält eine 32-Bit Zahl (früher nur 16-Bit): Major Number: obere 8-Bit bezeichen den Treiber, Minor Number: untere 8-Bit bezeichnen Device: Ein Treiber kontrolliert evtl. mehrere Devices: mehrere Partitionen auf einer Festplatte, mehrere tty-leitungen. Dynamische Zuordnung von Major- & Minor-Nr., falls Registrierung mit major=0. Major Number Treiber Treiber Treiber Minor Number Device Device Device 11 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

12 22.5. Operationen für Character-Devices Vektor für mögl. Operationen eines Character-Devices: Als Funktionsvariablen, NULL, falls nicht unterstützt, Evtl. Defaultimplementierungen: struct file_operations { loff_t ( *llseek) ( ), ssize_t ( *read) ( ), ssize_t ( *write) ( ), int ( *readdir) ( ), unsigned int ( *poll) ( ), int ( *ioctl) ( ), int ( *mmap) ( ), int ( *open) (struct inode*, struct file * ), int ( *flush) ( ), int ( *release) ( ), int ( *fsync) ( ), int ( *fasync) ( ), int ( *check_media_change) ( ), int ( *revalidate) ( ), int ( *lock) ( ), }; 12 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

13 Beispiel: Registrierung der File-Operationen #define KERNEL /* kernel code */ #define MODULE /* module */ int my_major=0; read_write_t my_read (struct inode *inode, struct file *filp, char *buf, count_t count) { } read_write_t my_write (struct inode *inode, struct file *filp, const char *buf, count_t count) { } struct file_operations my_fops = { NULL, /* lseek */ my_read, my_write, }; /* nothing more, fill with NULLs */ int init_module() { my_major = register_chrdev(my_major, "mydriver", &my_fops); return 0; } void cleanup_module() { unregister_chrdev(my_major, "mydriver"); } 13 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

14 22.6. Nebenläufigkeit Jeder User-Prozess kann über INT 0x80 einen Systemaufruf absetzen und darauf warten. Preemption User Prozesse Koroutinen Kernel Space Eigener Adressraum pro User-Prozess. Preemption im User Space: Prozess wird in beliebigem Zeitpunkt suspendiert, Koroutinen im Kernel Space: Nur unterbrochen durch einen Hardware-Interrupt, Sonst allenfalls explizite Prozessumschaltung. 14 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

15 User- und Kernel-Threads durch zusätzliche Bibliothek. Warteschlangen im Kernel: tq_scheduler: Tasks in dieser Queue werden immer ausgeführt, wenn der Scheduler aktiv wird. Laufen in der Umgebung des User-Prozesses, der schlafen gelegt wird. tq_timer: initiiert durch Timer (alle 10 ms), läuft im Interrupt. tq_immediate: Ausführung bei Rückkehr von Systemaufruf. Oder wenn der Scheduler aktiv wird. Tasks laufen als Bottom-Half. tq_disk: virtueller Speicher & Disk-Puffer Cache. Reserviert für internen Gebrauch. NB: zusätzlich können eigene Queues implementiert werden. 15 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

16 Interrupt-Routinen Ein-/Ausgabe Verarbeitung Treiber installiert seinen Interrupt: int request_irq ( unsigned int irq, void ( *handler ) ( int irq, void *dev_id, struct pt_regs *regs), unsigned long flags, const char * device, /* name für console */ void *dev_id ); /* optional */ Kernel prüft ob der IRQ verfügbar ist (result<0?)... handler als Interrupt Service Routine (ISR): Prozedurvariable mit Signatur, Evtl. ein Handler für mehr als eine IRQ Leitung, Alter Registerkontext. Flags: SA_SHIRQ bedeutet shared Interrupt., SA_INTERRUPT bedeutet fast handler. 16 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

17 Shared Interrupts (SA_SHIRQ): Üblich am PCI-Bus, möglich am ISA-Bus, Interessenten für einen Interrupt werden verkettet, Kern ruft nacheinander alle Routinen zu einem Interrupt. dev_id optionaler Kontext für den Treiber. Beispiel: interrupt-basiertes Lesen struct wait_queue *my_queue; /* eigene Queue */ read_write_t my_read (struct inode *inode, struct file *filp, char *buf, count_t count) { if (nodataavail==true) { /* no data available? */ interruptible_sleep_on(&my_queue); /* we must sleep and wait */ } return coun t; /* number of read bytes */ } void myisr (int irq, void *dev_id, struct pt_regs *regs) { printk("my_driver: ISR running\n");. wake_up_interruptible(&my_queue); /* is there a pending read? */ } 17 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

18 User process Kernel interruptible_sleep_on( ) Treiber ISR Device IRQ wake_up_interruptible( ) 18 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

19 Bottom-Half Routinen Ziel: ISR möglichst kurz Lösung: Aufräumarbeiten außerhalb der ISR. Bottom-Half Routinen können unterbrochen werden und verbessern so die Anwortzeiten auf IRQs. Beim Verlassen eines System Calls werden maximal 32 Bottom-Half Routinen gerufen: return_from_ syscall Kernelunterstützung für Bottom-Halfs: Registrierung: init_bh(int Nr, void (*bh_routine)(void)); Aktivierung: mark_bh(int Nr); Deregistrierung: remove_bh(int Nr); #31 Bottom- Halfs in Treibern In neueren Linux Systemen Tasklets anstelle von Bottom-Halfs. 19 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

20 Beispiel: Bottom-Half struct tq_struct mybottomh_task ; /* my bottom half task queue */ struct wait_queue *my_queue; /* waiting queue for pending readers */ void init() { mybottomh_task.routine = my_bottom_half; mybottomh_task.data = NULL; /* unused */ } void my_bottomh_interrupt(int irq, void *dev_id, struct pt_regs *regs) { queue_task_irq_off(&mybottomh_task, &tq_immediate); /* queue our bottom half */ mark_bh(immediate_bh); /* activate the queue */ } void my_bottom_half(void *unused) { wake_up_interruptible(&my_queue); /* wake up a pending reader */ } Tasklets bevorzugt, ab Linux 2.3.x: void my_do_tasklet (unsigned long); DECLARE_TASKLET (my_tasklet, my_do_tasklet, 0); void my_bottomh_interrupt(int irq, void *dev_id, struct pt_regs *regs) { tasklet_schedule(&my_tasklet); } 20 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

21 Pufferzugriff Problem: Treiber darf nicht auf virtuellen User-Mode Speicher zugreifen: getrennte Prozeßadreßräume u. U. ist während der Abarbeitung des I/Os ein anderer Prozeß aktiv! Standardmässig geschieht gepufferte E/A: Treiber kopiert Daten explizit um. copy_from_user (unsigned long to, unsigned long from, unsigned long len); copy_to_user (unsigned long to, unsigned long from, unsigned long len); Memory-Mapping als Alternative: Treiber implementiert mmap. Vermeidet teueres Umkopieren. Puffer eines Treibers oder Speicher eines Gerätes in User-Adreßraum einblenden. Gut für Zugriff auf Grafikspeicher (z.b. für X-Server), aber weniger geeignet für eine serielle Schnittstelle. 21 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

22 Hardware-Erkennung Konfigurierung eines Treibers Bestimmung von E/A-Ports, IRQ und DMA: Automatisch im Treiber ( do_it_yourself ), Im Bootparameter für statisch gebundene Treiber, durch Programmzeilenparameter: insmod mydrvr c io_addr=0x400,0x408 irq=11 E/A-Adressen erkennen ( probing ): Verfügbarkeit prüfen mit check_region( port, len ), Konfigurationsraum lesen für PCI-Geräte, Erkennung von ISA-Devices ist heikel, Auf ISA-Ports vorerst nur Lesen, Geräteisolierung mit Plug&Play. Erkennung zum Initialisierungszeitpunkt. Ressourcenallozierung so spät wie möglich (request_region...). 22 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

23 Eigenen Interrupt erkennen: Freischalten aller nicht allozierten Interrupts. Interrupt vom eigenen Gerät auslösen. Aufsammeln des Interrupts. freeirqs = probe_irq_on(); outb( mydevicecntrl, intonmask...); /* enable interrupts */ outb( mydevicedata, somebyte ); /* force interrupt */ udelay( 1000); /* wait for device */ outb( mydevicecntrl, intoffmask ); /* disable interrupts */ myirq = probe_irq_off( freeirqs ); /* get my interrupt */ 23 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

24 Allozierung der Ressourcen Möglichst erst beim Öffnen des Treibers: mydrvr_open( inode, file) /* device open */ E/A-Ports reservieren (kein result): request_region( startaddr, len, Drvr77 ) Interrupt reservieren: success = request_irq ( Irq, Hdlr, Flags, ) DMA-Kanäle reservieren: success = request_dma( mychannel, Drvr77 ) Deinstallieren: release_region( ); free_irq( ); free_dma( ).. 24 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

25 22.9. Block-Devices Registrierung und Operationen Registrierung: register_blkdev(major, name, fops) Operationen für Block Devices: struct file_operations my_fops = { NULL, /* lseek: default */ block_read, /* gegeben */ block_write, /* gegeben */ NULL, NULL, my_ioctl, /* mehrere vordef. Ctrl.-Codes, z.b. HDIO_GETGEO, */ NULL, my_open, my_release, block_fsync, /* gegeben (Puffer leeren) */ NULL, my_check_media_change, /* media change? */ my_revalidate /* disk change detected */ }; 25 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

26 Programme schreiben und lesen in aus den vom Kern verwalteten Pufferbereichen: Block Cache, Directory Cache, inode Cache. Der Kern bietet eine Schnittstelle zum Transport von Blöcken an: block_read / block_write / block_fsync open / release, ioctl, check_change, revalidate. Die Synchronisierung zwischen Festplatte und Caches wird aus Effizienzgründen verzögert. Block-Devices können gemountet werden (z.b. mount /dev/hdb1 /win/c). Anforderungen vom Kern an den Treiber geschehen nicht über den File- Operations Vektor, sondern in einer blk_dev_struct: struct blk_dev_struct { void (*request_fn)(void); /* Request Funktion des Treibers */ struct request current_request ; /* aktueller Request, vorne in der Liste */ } Request-Function liegt im Blocktreiber & interpretiert aktuellen Request. 26 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

27 Block-Device Datenstrukturen Array von Block Device Struktur mit zusätzl. Device Parameter Arrays für Block-, Sektorgröße,... Bei der Initialisierung wird u.a. die Request-Funktion eingetragen: blk_dev_struct[major].request_fn = my_request; Verkettete Requests: Kern reorganisiert evtl. Reihenfolge. Pro E/A-Operation ein Request. Enthält Cmd-Feld und Adressen zum lesen oder schreiben. blk_dev_struct[ major] minor Device parameter my_request requests 27 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

28 Gerüst einer Request-Funktion: void my_request(void) { while (1) { /* process all requests in queue */ INIT_REQUEST; /* macro checks for requests, returns if none */ switch(current->cmd) { /* CURRENT macro to access current req. */ case WRITE: memcpy(ptr, CURRENT->buffer, size); break; } end_request(1); /* complete block request (status=success) */ } } 28 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

29 Network Devices Aufruf durch die Programme über Sockets. Multi-Protokollstack darüber: Mehrfache Netzwerkprotokolle, Multicast in SW oder HW, Pufferstrukturen hochreichen, an passende Protokollhandler. TCP BSD-Socket Interface INET-Sock Interface UDP... IP-Internet Protokoll ARP PLIP SLIP PPP PPP/ CAPI Ethernet 802.x Registrierung: Paralleler Port Serieller Port Serieller Port ISDN Karte Ethernet-Karte & dergl. 29 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

30 Keine Major-Nummer, Treiber werden in globaler Liste verwaltet. Aufruf: register_netdev(struct net_device *dev); struct_net zunächst nur mit Name und Init-Routine. Kern ruft bei Registrierung die übergebene Init-Routine. Hier werden Ressourcen und Operationen in Struktur eintragen. Kern verwaltet Daten in Socket-Puffer struct sk_buff: Kern bietet Funktionen zum Zugriff auf Puffer: Puffer anlegen: alloc_skb(size, priority); Headergröße def.: skb_reserve(*skb, len); Daten am Ende anfügen: skb_put(...); Daten am Anfang anfügen: skb_push(...); Daten werden nur zwei Mal kopiert: Von User-Space nach Kernel-Space Und von Kernel-Space auf Ausgabegerät. Header... *socket *tcp_header *udp_header *ip_header *ethernet data Programmierschnittstelle für Sockets 30 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

31 Realisiert als Laufzeitbibliothek. Verbindungsorientiert (TCP): socket, bind, listen, accept, recv, connect, send Verbindungslos (UDP): socket, bind, recvfrom, sendto Signatur der Funktionen: int socket( int addrfamily, int type, int protocol ) int bind( int socket, struct sockaddr *address, int addrlen ) int listen( int socket, int backlog ) int shutdown( int socket, int how )... C-Bibliothek bildet diese ab auf Systemaufruf socketcall : int sys_socketcall(int callparameter, unsigned long *args); callparameter wählt die Funktion. 31 Systemprogrammierung II, Winter 2005/06, VS Informatik, Uni Ulm, P. Schulthess

L. Linux-Treiber. L.1.2 System Architektur

L. Linux-Treiber. L.1.2 System Architektur L. Linux-Treiber L.1.1 Literatur: Maurer W.: Professional Linux Kernel Architecture; John Wiley 2008 Kroah-Hartman G., Oram A.(Ed.): Linux Kernel in a Nutshell: Linux 2.6; O'Reilly 2007 Rubini A., Corbet

Mehr

4. Linux-Treiber. System Architektur

4. Linux-Treiber. System Architektur 4. Linux-Treiber Rubini, Alessandro: Linux Device Drivers, O Reilly, 2nd Edition, 2001. M. Beck, & al.: Linux Kernelprogrammierung Algorithmen & Strukturen der Version 2.4, Addison-Wesley, 6. Auflage,

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner, Claus Schröter Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.2 5., aktualisierte und erweiterte

Mehr

Aufbau eines Kernelmoduls

Aufbau eines Kernelmoduls Kernel Module Kernelmodul = ladbare/entfernbare Objektdatei (Dateisystem, Gerätetreiber, Systemeingriffe) Vorteile: Ressourcenverbrauch abhängig vom aktuellen Anforderungen Erweiterung der Kernelfunktionalität

Mehr

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner Konzepte von Betriebssystemkomponenten Gerätetreiber Mario Körner 26.01.2004 Übersicht Einordnung in die Betriebssystemarchitektur Schnittstelle zur Hardware Schnittstelle zum Betriebssystem am Beispiel

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus & Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.0 4., aktualisierte und erweiterte Auflage

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren

Mehr

Geräte Treiber unter Unix/Linux

Geräte Treiber unter Unix/Linux Geräte Treiber unter Unix/Linux Martin Schäf 7. Oktober 2004 1 Einleitung Die Programmierung von Geräte Treibern unter Linux ist ein sehr populäres Thema, da für viele Geräte keine, oder nur sehr primitive

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Proseminar Konzepte von Betriebssystemkomponenten

Proseminar Konzepte von Betriebssystemkomponenten Proseminar Konzepte von Betriebssystemkomponenten Thema: Module von Michael Balda am 02.02.2004 1 Allgemeines zum Modulkonzept 1.1 Was sind Module? Wozu dient das Modulkonzept? Module sind Codeelemente,

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

Mehr

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13. DOSEMU Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren Matthias Felix filo@icip.de FAU 13. Juni 2007 Matthias Felix (FAU) DOSEMU 13. Juni 2007 1 / 22 Inhalt 1 Einführung

Mehr

Netzwerk-Programmierung in C

Netzwerk-Programmierung in C 1 / 26 Netzwerk-Programmierung in C Oliver Bartels Fachbereich Informatik Universität Hamburg 2 Juli 2014 2 / 26 Inhaltsverzeichniss 1 IPv4 und IPv6 Wie werden Daten verschickt? 2 3 Verbindungsaufbau ohne

Mehr

Treiber Einfache Gerätetreiber

Treiber Einfache Gerätetreiber Treiber Einfache Gerätetreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Treiber Einfache Gerätetreiber 1/42

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 1.0 ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris

Mehr

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33 . p.1/33 GNU/Hurd... ein Mach basiertes Multi Server Betriebssystem Manuel Gorius 16. September 2004 . p.2/33 Übersicht 1. Wissenswertes zu Hurd 2. Motivationen und Ziele 3. Mach Microkernel 4. Single

Mehr

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]:

Mehr

UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung. Armin Wasicek

UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung. Armin Wasicek UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung Armin Wasicek 1 Inhalt UNIX Kernel Dateisystemverwaltung Geräteverwaltung Networking Security 2 UNIX Kernel Struktur System call

Mehr

Hardware. Heimo Schön 4/2002 Seite 1/22

Hardware. Heimo Schön 4/2002 Seite 1/22 Hardware Heimo Schön 4/2002 Seite 1/22 /dev Geräte befinden sich im Directory /dev Gerätetypen: Unterscheidung durch Dateityp (erste Spalte von ls -al) b Block Devices (Disk, Floppy, etc.) c character

Mehr

Einschub: HW-Zugriff aus dem Userspace

Einschub: HW-Zugriff aus dem Userspace Einschub: HW-Zugriff aus dem Userspace Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Einschub: HW-Zugriff aus dem

Mehr

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1

Mehr

Treiber PCI-Subsystem

Treiber PCI-Subsystem Treiber PCI-Subsystem Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber PCI-Subsystem 1/41 2011-04-05 Übersicht

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Praktikum angewandte Systemsoftwaretechnik (PASST)

Praktikum angewandte Systemsoftwaretechnik (PASST) Praktikum angewandte Systemsoftwaretechnik (PASST) Dateisysteme / Aufgabe 6 21. Juni 2018 Stefan Reif, Peter Wägemann, Florian Schmaus, Michael Eischer, Andreas Ziegler, Bernhard Heinloth und Benedict

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

Protokolle und Schichten. Grundlagen der Rechnernetze Einführung 41

Protokolle und Schichten. Grundlagen der Rechnernetze Einführung 41 Protokolle und Schichten Grundlagen der Rechnernetze Einführung 41 Protokoll und Interface Host 1 Host 2 High Level Objekt High Level Objekt Service Interface Service Interface Protokoll Peer to peer Interface

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

andere aufrufen und Datenstrukturen Die Folgen von Änderungen und Erweiterungen sind schwer

andere aufrufen und Datenstrukturen Die Folgen von Änderungen und Erweiterungen sind schwer 3. Betriebssystemorganisation 3.1 Monolithische Betriebssysteme Sammlung von Routinen, ohne Hierarchie, Kapselung und Schichtung. Jede Prozedur kann beliebige Anwendungen andere aufrufen und Datenstrukturen

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 12. UNIX/Linux-Sockets Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter

Mehr

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Module, Built-In-Treiber, Treiber Ein Modul kann alles sein Ein Treiber hat I/O Aufgaben und unterscheidet

Mehr

Hardware & Kernel-Module

Hardware & Kernel-Module Hardware & Kernel-Module Linux-Kurs der Unix-AG Zinching Dang 09. Juli 2013 Hardwarekomponenten Mainboard CPU RAM Grafikkarte Festplatte Optische und Wechsel-Datenträger Peripherie Zinching Dang Hardware

Mehr

Hardware und Gerätetreiber

Hardware und Gerätetreiber Hardware und Gerätetreiber Betriebssysteme Hermann Härtig TU Dresden Übersicht Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches

Mehr

4.3 Directories / Filesysteme

4.3 Directories / Filesysteme I-Node H. Weber, FH Wiesbaden WS 2008/09 Systemprogrammierung Kap. 4.3 Seite 1 von 32 Hierfür gibt es eine ganze Reihe von Systemaufrufen und Subroutines. Wir beginnen mit chroot Root Directory ändern

Mehr

7 Laufzeit-Speicherverwaltung

7 Laufzeit-Speicherverwaltung 7.1 Grundlagen Bevor wir die Code-Generierung betrachten, müssen wir uns Gedanken über zur Laufzeit des zu generierenden Programms notwendige Aktivitäten zur Zuordnung und Freigabe von Speicherplatz machen.

Mehr

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Betriebssysteme 7. Geräteverwaltung. Peter Altenbernd Geräteverwaltung Betriebssysteme WS 2010/11 Hochschule Darmstadt

Betriebssysteme 7. Geräteverwaltung. Peter Altenbernd Geräteverwaltung Betriebssysteme WS 2010/11 Hochschule Darmstadt Betriebssysteme 7. Geräteverwaltung 1 Übersicht 1. Ziel des Kapitels 2. Motivation und Aufgaben 3. Einleitung 4. E/A-Schichtenmodell 5. E/A mit Plattenspeichern 6. Uhren 7. Terminals und Graphische Benutzeroberflächen

Mehr

Tafelübung zu BS 5. Dateioperationen

Tafelübung zu BS 5. Dateioperationen Tafelübung zu BS 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

I/O Managment und Software. Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6

I/O Managment und Software. Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6 I/O Managment und Software Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6 1 1 Inhalt Um was geht es? I/O-Hardware Geräte, Systeme, Schnittstellen, Controller Organisation und Architektur

Mehr

Implementierung eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem

Implementierung eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem Präsentation zur Bachelorarbeit Jens M. Nödler Betreut durch Prof. Dr. Grabowski Institut für Informatik Georg-August-Universität

Mehr

U5 Verzeichnisse und Sortieren

U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U5.1 Verzeichnisse öffnen: opendir(3)

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Nachrichtenaustausch und Copy-on-Write 11. Juni 28 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

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

I/O: Von der Platte zur Anwendung. Von Igor Engel I/O: Von der Platte zur Anwendung Von Igor Engel 1 Gliederung 1 Einleitung 2 Übersicht 3 Systemaufrufe Beispiel in Unix 4 Dateien 4.1 Dateisysteme 4.2 Transport der Daten 5 Festplattentreiber 6 Festplattenkontroller

Mehr

Systemprogrammierung II

Systemprogrammierung II Systemprogrammierung II Blätter zur Vorlesung Wintersemester 2005/06 Prof. Dr. Peter Schulthess Universität Ulm Verteilte Systeme Fakultät für Informatik 1. Einleitung 1.1. Organisation Termin ab 17.10.05,

Mehr

Konzepte von Betriebssystemkomponenten

Konzepte von Betriebssystemkomponenten Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese Übersicht 2. Systemstart 3. Programmausführung TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der

Mehr

PVFS (Parallel Virtual File System)

PVFS (Parallel Virtual File System) Management grosser Datenmengen PVFS (Parallel Virtual File System) Thorsten Schütt thorsten.schuett@zib.de Management grosser Datenmengen p.1/?? Inhalt Einführung in verteilte Dateisysteme Architektur

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 1. Thomas Kolarz. Folie 1 Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die

Mehr

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Interruptverarbeitung

Interruptverarbeitung Interruptverarbeitung Ein Interruptaufruf unterbricht die gerade ablaufende Befehlsfolge in der Weise, daß nach Beendigung des laufenden Befehls nicht der nächste Befehl des Hauptprogramms ausgeführt,

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Microkernel-Betriebssysteme Mach, L4, Hurd

Microkernel-Betriebssysteme Mach, L4, Hurd Microkernel-Betriebssysteme Mach, L4, Hurd 14. November 2002 Holger Ruckdeschel holger.ruckdeschel@informatik.stud.uni-erlangen.de 1 Übersicht Gegenüberstellung: Monolithischer Kernel - Microkernel Der

Mehr

Betriebssysteme und Microkern

Betriebssysteme und Microkern 16. September 2004 Überblick 1 Einführung 2 Betriebssysteme 3 Monolith 4 5 Anhang Einführung Teil I Einführung Einführung Was ist ein Betriebssystem? Unterscheidung Was ist ein Betriebssystem? engl. Operating

Mehr

Geräteverwaltung: Einführung

Geräteverwaltung: Einführung Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller

Mehr

Betriebssysteme R. Thomas (Stand : SS 2010)

Betriebssysteme R. Thomas (Stand : SS 2010) FG TECHNISCHE INFORMATIK I BS 000 00 TH 09 R. Thomas (Stand : SS 2010) FG TECHNISCHE INFORMATIK I BS 001 00 TH 10 Kapitel-Überblick Teil 1 : Allgemeines 1. Einführung I-BS-100 2. Grundlegende Aufgaben

Mehr

Überlegungen beim Entwurf eines Betriebssystems

Überlegungen beim Entwurf eines Betriebssystems Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

GNU/Linux Introduction Linux Introduction: Part 1. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at

GNU/Linux Introduction Linux Introduction: Part 1. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at GNU/Linux Introduction Linux Introduction: Part 1 Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at Windows / Linux @ Central IT Services Windwos 7 Centos 7.3 Zugriff von Windows auf Linux (WinSCP, PuTTy)

Mehr

Homogene Multi-Core-Prozessor-Architekturen

Homogene Multi-Core-Prozessor-Architekturen Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009

Mehr

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme Sammlung von Routinen, ohne Hierarchie, Kapselung und Schichtung. Jede Prozedur kann beliebige andere Prozeduren aufrufen und Datenstrukturen

Mehr

Treiber Netzwerktreiber

Treiber Netzwerktreiber Treiber Netzwerktreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 Treiber Netzwerktreiber 1/42 2009-10-09 Übersicht

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 9.3.2000 Bitte bearbeiten Sie die Aufgaben soweit wie möglich auf den Aufgabenblättern. Nachname: Matrikelnummer: Vorname: Semester: Bitte beantworten

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. Grundkurs Unix. Teil 1: Die Essenz von UNIX. Dr.

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. Grundkurs Unix. Teil 1: Die Essenz von UNIX. Dr. Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 Grundkurs Unix Teil 1: Die Essenz von UNIX Dr. Erwin Hoffmann E-Mail: unix@fehcom.de https://www.fehcom.net/unix/ Dr. Erwin Hoffmann:

Mehr

Konsequenz für Forwarding Tabellen

Konsequenz für Forwarding Tabellen Konsequenz für Forwarding Tabellen Subnetznummer : 128. 96. 34. 0 Subnetzmaske : 255.255.255.128 128. 96. 34. 15 H1 128. 96. 34. 1 128. 96. 34.130 R1 Interface 1 Interface 2 128. 96. 34.128 255.255.255.128

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz

7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz 7.4 Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten Betriebssystemen, vor allem großzügige Pufferung,

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

Betriebssysteme BS-U SS Hans-Georg Eßer. Foliensatz U: Unix und Ulix Aufbau der Ulix-Quellcode-Dateien. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-U SS Hans-Georg Eßer. Foliensatz U: Unix und Ulix Aufbau der Ulix-Quellcode-Dateien. Dipl.-Math., Dipl.-Inform. BS-U Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz U: Unix und Ulix Aufbau der Ulix-Quellcode-Dateien v1.0-nl, 2015/05/12 (klassisch kommentierte Version) Betriebssysteme,

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Treiber Einfache Gerätetreiber

Treiber Einfache Gerätetreiber Treiber Einfache Gerätetreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Einfache Gerätetreiber 1/50

Mehr

Mobile Anwendungsentwicklung - Überblick über ios & Swift I -

Mobile Anwendungsentwicklung - Überblick über ios & Swift I - Mobile Anwendungsentwicklung - Überblick über & I - Prof. Dr. Michael Cebulla 4. November 2016 Hochschule Schmalkalden Wintersemester 2016/17 1 / 38 M. Cebulla Mobile Anwendungsentwicklung Gliederung 1

Mehr

Betriebssysteme VO Betriebssysteme KU

Betriebssysteme VO Betriebssysteme KU VO KU für Lehramt VU Einführung 7.10.2011 Inhalt Vorstellung Motivation und Inhalte der Vorlesung Organisatorisches Übungen git Inhalte Aufbauend auf Rechnerorganisation Verständnis für Funktionen und

Mehr

Verteilte Systeme - Java Networking (Sockets) -

Verteilte Systeme - Java Networking (Sockets) - Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP

Mehr

Die Shell - Das Vorspiel

Die Shell - Das Vorspiel Die Shell - Das Vorspiel Die Shell, die Kommandozeile und ein Teil vom ganzen Rest Dirk Geschke Linux User Group Erding 22. Oktober 2008 Dirk Geschke (LUG-Erding) Linux Grundlagen 22. Oktober 2008 1 /

Mehr

Operating Systems Principles. Event Queue

Operating Systems Principles. Event Queue Humboldt University Computer Science Department Operating Systems Principles Event Queue 1. Aufgabe 3 Wochen Zeit zum Lösen der Aufgaben Aufgabenstellung auf der SAR Website Abgabe über GOYA Abgabefrist:

Mehr

Internet Modell. Nothing stated. Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50

Internet Modell. Nothing stated. Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50 Internet Modell Nothing stated by TCP/IP model Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50 Internet Protokolle Bildquelle: Andrew

Mehr

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl. Kommunikation von Prozessen und Threads Sommersemester 2014 Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Export von Netzstatusinformationen aus WLAN-Routern mit IPFIX

Export von Netzstatusinformationen aus WLAN-Routern mit IPFIX Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München Export von Netzstatusinformationen aus WLAN-Routern mit IPFIX Abschlussvortrag zur Bachelorarbeit

Mehr

Kommunikation von Prozessen und Threads

Kommunikation von Prozessen und Threads Kommunikation von Prozessen und Threads Sommersemester 2015 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze

Mehr

Dokumentation CanFox API

Dokumentation CanFox API Dokumentation CanFox API Author: Andreas Herbertz Erstellt: 18.09.2012 Sontheim Industrie Elektronik GmbH Georg-Krug-Straße 2, D-87437 Kempten Telefon: +49) 0831.575900-0 Fax: +49) 0831.575900-72 Email:

Mehr

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH Device Management Schnittstellen Referat von Peter Voser Embedded Development GmbH Device Management ist Gerätesteuerung Parametrisierung Zugang zu internen Messgrössen und Zuständen Software Upgrade www.embedded-development.ch

Mehr

Filesystemserver. SDI Gruppe Juni Till Schuberth / Victor van Santen. Filesystemserver: Till Schuberth und Victor van Santen SDI6

Filesystemserver. SDI Gruppe Juni Till Schuberth / Victor van Santen. Filesystemserver: Till Schuberth und Victor van Santen SDI6 Filesystemserver SDI Gruppe 6 04. Juni 2009 Till Schuberth / Victor van Santen 1 Überblick Einführung Entwurfsentscheidungen Beschreibung der Server Beispielimplementierungen für L4 Schnittstellenbeschreibung

Mehr

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes

Mehr

Linux booten. Jörg Ahrens

Linux booten. Jörg Ahrens Linux booten Was passiert beim Einschalten eines PCs? Das BIOS Viele Bootsektoren Bootloader (Grub, LILO) Kernel Parameter und InitRD Feinheiten beim Plattenausfall Der Bootvorgang Beim Einschalten eines

Mehr