diff --git a/examples/20150615/vga-rot.png b/examples/20150615/vga-rot.png new file mode 100644 index 0000000000000000000000000000000000000000..95d9ef9c4d94559c2481108a48c26e81ee2e28be Binary files /dev/null and b/examples/20150615/vga-rot.png differ diff --git a/examples/20150615/vga-set-textmode.png b/examples/20150615/vga-set-textmode.png new file mode 100644 index 0000000000000000000000000000000000000000..bd69b19516b8541d907b0eb484d90e3da0269515 Binary files /dev/null and b/examples/20150615/vga-set-textmode.png differ diff --git a/examples/20150615/vga-weiss-rote-linie.png b/examples/20150615/vga-weiss-rote-linie.png new file mode 100644 index 0000000000000000000000000000000000000000..acaf1051ef4588603cead15decbc64e1dc7e5079 Binary files /dev/null and b/examples/20150615/vga-weiss-rote-linie.png differ diff --git a/slides/20150615_001.jpg b/slides/20150615_001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..033a25d10a80a96f9cdc8ec0e736ecb4385b8f11 Binary files /dev/null and b/slides/20150615_001.jpg differ diff --git a/slides/20150615_002.jpg b/slides/20150615_002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d09e32e9c522fde0de8aaae06de10d59ecc185a5 Binary files /dev/null and b/slides/20150615_002.jpg differ diff --git a/slides/bs-20150615.txt b/slides/bs-20150615.txt new file mode 100644 index 0000000000000000000000000000000000000000..d5105cf30b79206df2b30238a1e9c2dfb6793a8f --- /dev/null +++ b/slides/bs-20150615.txt @@ -0,0 +1,73 @@ +Block-Gerätedateien +~~~~~~~~~~~~~~~~~~~ +Innenleben von Block-Device-Treibern: + - Request: http://lwn.net/images/pdf/LDD3/ch16.pdf + - Struktur: http://www.tldp.org/LDP/khg/HyperNews/get/devices/block.html + - Quelltext: http://blog.superpat.com/2010/05/04/a-simple-block-driver-for-linux-kernel-2-6-31/comment-page-2/ + +Ausrichtung der Blöcke: + - http://www.thomas-krenn.com/de/wiki/Partition_Alignment + +Hardware-Block-Devices: + - Diskettenlaufwerke + - IDE/ATAPI/PATA/SATA + - SCSI ist speziell + +Software-Block-Devices: + - Datei als Block-Device: loop + - Verschlüsselung: dm-crypt + - Block-Devices umordnen: LVM + - über's Netz: NDB, iSCSI + - Soft-Raid: MD + - Soft-Raid über's Netz: drbd und Nachfolger + +Sonstiges: + - devfs: http://www.gentoo.org/doc/de/devfs-guide.xml +Dateisysteme: Software-Treiber + - FAT: ~/bo/2012ws/systech/material/linux-3.7-rc1/fs/fat/namei_vfat.c + - ext2 + - ext3, ext4, reiserfs, ... + - nfs, cifs, ... + - procfs, sysfs + - devfs --> udev [--> systemd] + +Grafik +~~~~~~ + - Beispiel für User-Level-Treiber + - Grafik-Hardware teilt sich Hauptspeicher mit dem Rechner + - Textmodus + - Grafikmodus + - Interpretation der Bits/Bytes + - Interleaving + - Umschalten zwischen verschiedenen Modi + - Port-Adressen + - Programm im ROM der Grafikkarte, Software-Interrupt + - Zeichnen: Low Level - am Betriebssystem vorbei + - Programm im ROM der Grafikkarte, Software-Interrupt + - direkter Zugriff auf den Speicher + - Hardware-Beschleunigung: VGA-Ports + - Hardware-Beschleunigung: Kommunikation mit GPU + - Zeichnen: High Level - wozu? + - Portabilität + - Zeichen über das Netzwerk + - Trennung der Anwendungen: mehrere Fenster + - Zeichnen: High Level - Betriebssystem + - Bibliothek + - Integration der Bibliothek in das Betriebssystem + - kontrollierter Low-Level-Zugriff + +Aufgabe: Zeichne ein hübsches Bild auf den Computerbildschirm +unter Verwendung der tiefstmöglichen Low-Level-Bibliothek des Betriebssystems: + - Unix/X11: Xlib + - MS-Windows: GDI (oder ggf. GDI+ oder Direct2d) + +http://tronche.com/gui/x/ +http://tronche.com/gui/x/xlib-tutorial/ +http://www.unix-manuals.com/tutorials/xlib/xlib.html +http://en.wikibooks.org/wiki/X_Window_Programming/XLib + +http://bobobobo.wordpress.com/ + +X-Bibliothekten unter Debian-basierten GNU/Linux-Distributionen nachinstallieren: +sudo -E apt-get update +sudo -E apt-get install libx11-dev