Win32 Systemprogrammierung

Größe: px
Ab Seite anzeigen:

Download "Win32 Systemprogrammierung"

Transkript

1 Begrüßung Win32 Systemprogrammierung Fachhochschule Wiesbaden Lehrveranstaltung: Systemprogrammierung Prof. Dr. Weber Christian Geiler Daniel Pielok Fouad Aberkane Win32 Systemprogrammierung 1

2 Inhaltsverzeichnis Kapitel 1 1. Einführung 2. Dateisysteme 3. I/O Systemaufrufe 4. Mutex/File Locking Win32 Systemprogrammierung 2

3 1.1 Einführung WinApi Ausgeschrieben steht WinAPI fürwindows Application Programming Interface.Zu dt. bedeutet es Windows Anwendungs-Programmierungs- Schnittstelle.Die WinApi ist nix anderes als eine Programmierschnittstelle und Laufzeitumgebung. Mit dieser Api kann man Anwendungsprogrammen für Microsoft Windows- Betriebssysteme erstellen Win32 Systemprogrammierung 3

4 1.1 Einführung WinApi Die existierenden Funktionen der WinAPI sind ausschließlich in der Programmiersprache C und Assembler geschrieben.die Funktionen befinden sich in Bibliotheken, den sogenannten DLL-Dateien, wie beispielsweise kernel32.dll, user32.dll und gdi32.dll. Die Api kann in Verbindung mit C, C++ oder Delphi eingesetzt werden Win32 Systemprogrammierung 4

5 1.1 Einführung Versionen Win16 war die erste API, für die 16-Bit Versionen von Microsoft Windows. Gängiger Begriff war schlicht Windows API, wurde aber später umbenannt in Win16, um sie von der neueren Windows API der 32-Bit- Architektur unterscheiden zu können. Die Funktionen der Win16 API liegen hauptsächlich im Kern des Betriebssystems: kernel.exe (oder krnl286.exe oder krnl386.exe), user.exe und gdi.exe. Trotz der Dateiendung exe sind diese Dateien tatsächlich sogenannte Programmbibliotheken Win32 Systemprogrammierung 5

6 1.1 Einführung Versionen Win32 ist die 32-Bit-API für moderne Versionen von Windows. Die API besteht aus Funktionen, die, wie bei Win16, in Programmbibliotheken implementiert sind. Die Kern-DLLs von Win32 sind kernel32.dll, user32.dll und gdi32.dll. Win32 wurde mit Windows NT eingeführt. Die Version von Win32, die mit Windows 95 ausgeliefert wurde, lief ursprünglich unter dem Namen Win32c, wobei das 'c' für Kompatibilität (engl. compatibility) stand, aber dieser Ausdruck wurde später von Microsoft zugunsten von Win32 wieder verworfen Win32 Systemprogrammierung 6

7 1.1 Einführung Versionen Win32s ist die 32-Bit-API für die Windows 3.1x-Familie von Microsoft Windows und als solche die 32-Bit- Erweiterung für die ansonsten 16-bittigen Betriebssysteme. Das s steht für Teilmenge (engl.: subset ). Dabei wurden die Funktionsbibliotheken aus Windows NT nicht komplett übernommen, sondern lediglich eine Auswahl daraus, so ist beispielsweise MS Office 97 unter Windows NT 3.51 lauffähig, nicht jedoch unter Windows 3.1x. In Kombination mit Grafikschnittstellen wie OpenGL oder Video for Windows sollte damit jedoch bis zum Erscheinen von Windows 95 ein ausreichender Standard für Heimanwender gesetzt werden Win32 Systemprogrammierung 7

8 1.1 Einführung Versionen Win32 für 64-Bit-Windows, auch bekannt unter dem Namen Win64, ist die Version der API die für 64-Bit- Versionen von Windows namentlich Windows XP x64 Edition, Windows Server 2003 x64 Edition (für AMD64 Prozessoren), Windows XP 64-Bit Edition und Windows Server 2003 für Itanium-Serien - entworfen wurde. Bei den 64-Bit-Versionen handelt es sich nur um zwei weitere unterstützte Plattformen innerhalb der Windows-NT-Architektur, so dass sowohl die 32-Bit- als auch die 64-Bit-Version einer Anwendung aus demselben Quellcode kompiliert werden können Win32 Systemprogrammierung 8

9 1.2 Dateisysteme Dateisysteme Das Dateisystem ist die Ablageorganisation auf einem Datenträger eines Computers. Dateien müssen gelesen, gespeichert oder verschoben werden. Für den Menschen müssen Dateiname und computerinterne Dateiadressen in Einklang gebracht werden. Das leichte Wiederfinden und das sichere Abspeichern ist wesentlich. Das Ordnungs- und Zugriffssystem berücksichtigt die Geräteeigenschaften und ist normalerweise Bestandteil des Betriebssystems Win32 Systemprogrammierung 9

10 1.2 Dateisysteme Welche Dateisysteme gibt es? FAT16 FAT32 HPFS NTFS NetWare ISO 9660 (CD-ROM) und ISO (DVD) UDF ReiserFS, ext, ext2, ext3, XFS, JFS Win32 Systemprogrammierung 10

11 1.2 Dateisysteme Betriebssysteme & Dateisysteme Die Betriebssysteme Windows 95 bis Windows ME benutzen ausschließlich FAT16 & FAT32 Systeme. Die folgenden Systeme Windows NT / 2000 / XP benutzen NTFS. Anders als bei Windows Betriebssystemen benutzt Unix/Linux ext2, ext3, ReiserFS, XFS, JFS Win32 Systemprogrammierung 11

12 1.3 I/O Systemaufrufe Systemaufrufe Ein Systemaufruf ist eine vom Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen.systemaufrufe werden im Quellcode wie Bibliotheksfunktionen aufgerufen. Jedoch die Leistung solch eines Systemaufrufs wird im Kern des Betriebssystems erbracht. Ein Systemaufruf führt Assemblercode und C Code aus. In der folgenden Abbildung wird ein Systemaufruf schematisch dargestellt Win32 Systemprogrammierung 12

13 1.3 I/O Systemaufrufe Ablauf In der Definition der Funktion write befindet sich C/Assemblercode diese Zeilen haben die Aufgabe den Adressraum zu wechseln und zwar vom Adressraum des Prozesses in den Adressraum des Kern's Win32 Systemprogrammierung 13

14 1.3 I/O Systemaufrufe Systemaufruf Beispiele Unix Win32 Beschreibung open CreateFile Neue Datei erzeugen oder Datei öffnen close CloseHandle Datei schließen read ReadFile Daten aus einer Datei lesen write WriteFile Daten in eine Datei schreiben lseek SetFilePointer Warten auf ein Ereignis stat GetFileAttributes Dateizeiger bewegen unlink DeleteFile Datei löschen mkdir CreateDirectory Neues Verzeichnis erzeugen rmdir RemoveDirectory Leeres Verzeichnis löschen Win32 Systemprogrammierung 14

15 1.3 I/O Systemaufrufe CreateFile Die Funktion CreateFile erzeugt eine Datei der Rückgabewert dieser Funktion ist ein Handle womit man später die Datei eindeutig identifizieren kann. HANDLE CreateFile ( LPCTSTR lpfilename, /*Name der Datei*/ DWORD dwdesiredaccess, /*Lesen, Schreiben, Beides*/ DWORD dwsharemode, /*Share Modus für Prozesse*/ [LPSECURITY_ATTRIBUTES lpsecurityattributes,] DWORD dwcreationdisposition, /*Überschreiben, Öffnen...*/ DWORD dwflagsandattributes, /*Schreibgesch., Versteckt*/ [HANDLE htemplatefile]); Win32 Systemprogrammierung 15

16 1.3 I/O Systemaufrufe ReadFile Die Funktion ReadFile liest aus einer gegebenen Datei mithilfe eines HANDLE's. BOOL ReadFile ( HANDLE hfile, /*Das Objekt das gelesen werden soll*/ LPVOID lpbuffer,/*buffer*/ DWORD nnumberofbytestoread, /*Anzahl Max. Bytes*/ LPDWORD lpnumberofbytesread, /*Wirkl. gel. Bytes*/ [LPOVERLAPPED lpoverlapped]); Win32 Systemprogrammierung 16

17 1.3 I/O Systemaufrufe CloseFile Die Funktion CloseFile schließt eine Datei. BOOL CloseFile (HANDLE hfile); Win32 Systemprogrammierung 17

18 1.3 I/O Systemaufrufe Lese Beispiel #include<windows.h> #define SOURCE source.txt #define MAXREADSIZE 1024 int main(int argc, char **argv[]) { HANDLE hread; DWORD readsize; char buffer [MAXREADSIZE]; hread = CreateFile(SOURCE, GENERIC_READ, 0, NULL,OPEN_EXISTING, 0, NULL); /*Mögliche Fehler abfangen*/ ReadFile (hread, buffer, MAXREADSIZE, &readsize, NULL); /*Mögliche Fehler abfangen*/ printf( %s, buffer); CloseFile(hread); Win32 Systemprogrammierung 18

19 1.4 Mutex Mutex Mutex bedeutet Wechselseitiger Ausschluss (mutual exclusion).ein Mutex ist nix anderes als eine Gruppe von Verfahren mit denen das Problem des kritischen Abschnitts gelöst wird.damit wird verhindert, dass nebenläufige Prozesse gleichzeitig oder zeitlich verschränkt gemeinsam genutzte Datenstrukturen unkoordiniert verändern. Zu dieser Gruppe gehören zb. Semaphore, Monitore, Lock Win32 Systemprogrammierung 19

20 1.4 File Locking File Locking Das File Locking ist einfaches Prinzipe das folgendermaßen vorgeht nach dem dem Öffnen einer Datei für andere automatisch gesperrt. Es ist notwendig damit zwei Nutzer nicht gleichzeitig eine Datei manipulieren.es kann immer nur ein Anwender bzw. immer nur ein Anwendungsprogramm zu einer Zeit die Datei manipulieren. File Locking wird in Netzwerkumgebungen oder auf multitaskingfähigen Systemen wie beispielsweise Windows-Rechnern eingesetzt Win32 Systemprogrammierung 20

21 1.4 File Locking LockFile Die WinApi stellt die Funktionalität für das File Locking zur Verfügung mit der Methode LockFile kann man eine ganze Datei oder bestimmte Abschnitte in Bytes für andere Prozesse sperren. BOOL WINAPI LockFile( ); HANDLE hfile, /*Datei*/ DWORD dwfileoffsetlow, /*Offset*/ DWORD dwfileoffsethigh, /*Offset*/ DWORD nnumberofbytestolocklow, /*Lock bytes*/ DWORD nnumberofbytestolockhigh /*Lock bytes*/ Win32 Systemprogrammierung 21

22 1.4 File Locking UnlockFile Natürlich muss die gesperrte Datei bzw. der Abschnitt wieder für andere Prozesse zugänglich sein dafür gibt s die Funktion UnlockFile sie besitzt dieselben argumente wie die Funktion LockFile. BOOL WINAPI UnlockFile( ); HANDLE hfile, /*Datei*/ DWORD dwfileoffsetlow, /*Offset*/ DWORD dwfileoffsethigh, /*Offset*/ DWORD nnumberofbytestounlocklow, /*Unlock bytes*/ DWORD nnumberofbytestounlockhigh /*Unlock bytes*/ Win32 Systemprogrammierung 22

23 1.4 File Locking File Locking Beispiel #include<windows.h> #define ANFANG 10 #define ENDE 20 HANDLE hfile; hfile = CreateFile(TEXT("two.txt"), /* Datei öffnen*/ GENERIC_READ, /* Datei lesen*/ FILE_SHARE_READ, /* Mehrfache Lesen*/ NULL, /* Security Atrribut wird nich gebraucht */ OPEN_EXISTING, /* Öffnen oder erstellen*/ FILE_ATTRIBUTE_NORMAL, /* Normale Datei*/ NULL); /* Kein Template*/ /*Fehler abfangen*/ LockFile(hFile, ANFANG, 0, ENDE, 0); /*Datei lesen*/ UnlockFile(hFile, ANFANG, 0, ENDE, 0); Win32 Systemprogrammierung 23

24 Inhaltsverzeichnis Kapitel 2 1. Windows Registry 2. Fehlerbehandlung 3. Windows Sockets Win32 Systemprogrammierung 24

25 2.1 Windows Registry Registry Zentrale, hierarchische Datenbank für Applikations- und Konfigurationsinformationen Registry-Editor wird durch den regedit Befehl geöffnet auf der Kommandozeile Zugriff durch Schlüssel Programme kommunizieren mit der Registry durch Registry API Funktionsaufrufe Registry-Programmierung ähnlich zur Dateiverarbeitung Win32 Systemprogrammierung 25

26 2.1 Windows Registry Registry Registry enthält folgende Informationen: Betriebssystem-Versionsnr., Build-Nr. und registrierte User ähnliche Informationen für jede installierte Applikation Hardware-Informationen über Prozessortyp, Anzahl an Prozessoren, Arbeitsspeicher, etc. Benutzerspezifische Informationen (Home-Verzeichnis, bevorzugte Anwendungen) installierte Services Mappings von Dateiendungen zu deren ausführbaren Programmen und Mappings von Netzwerkadressen zu deren Hostnamen Win32 Systemprogrammierung 26

27 2.1 Windows Registry Registry Win32 Systemprogrammierung 27

28 2.1 Windows Registry Registry-Schlüssel HKEY_LOCAL_MACHINE Informationen über den Rechner und darauf installierte Software HKEY_USERS Informationen über Benutzer- Konfigurationen HKEY_CURRENT_CONFIG Informationen wie Bildschirmauflösung und Schriftarten HKEY_CLASSES_ROOT Mappings von Dateiendungen zu deren Anwendung HKEY_CURRENT_USER Benutzerspezifische Informationen (Umgebungsvariablen, Drucker,...) Win32 Systemprogrammierung 28

29 2.1 Windows Registry Registry API Calls RegOpenKeyEx - vorhandenen Key öffnen RegDeleteKeyEx - vorhandenen Key löschen RegCreateKeyEx - neuen Key erzeugen RegEnumKeyEx - Auflisten aller Subkeys im geöffneten Key RegSetValueEx Setzen eines Name/Wert-Paares im geöffneten Key RegEnumValue - Auflisten aller Values im geöffneten Key Win32 Systemprogrammierung 29

30 2.1 Windows Registry RegOpenKeyEx LONG RegOpenKeyEx ( HKEY hkey, /* Parent Key-Handle */ LPCTSTR lpsubkey, /* Name des Subkeys */ DWORD uloptions, /* = 0 */ REGSAM samdesired, /* Zugriffsrechte */ PHKEY phkresult); /* Key-Handle des neu geöffneten Keys*/ Win32 Systemprogrammierung 30

31 2.1 Windows Registry RegOpenKeyEx Beispiel #include <windows.h> HKEY hkey = Null; /* Schlüssel öffnen */ if (ERROR_SUCCESS!= RegOpenKeyEx(HKEY_LOCAL_MACHINE, L Software\\Alias\\Common, 0, KEY_READ, &hkey)) { } printf( Fehler beim Öffnen des Keys ); Win32 Systemprogrammierung 31

32 2.1 Windows Registry RegEnumKeyEx LONG RegEnumKeyEx ( HKEY hkey, /* Parent Key-Handle */ DWORD dwindex, /* Indexwert */ LPTSTR lpname, /* Name des Schlüssels */ LPDWORD lpcbname, /* Größe des Keynamen*/ LPDWORD lpreserved, /* reserviert */ LPTSTR lpclass, /* Klassenname */ LPDWORD lpcbclass, /* Größe des Klassennames*/ PFILETIME lpftlastwritetime); /*Zeit des letzten Schreibens*/ Win32 Systemprogrammierung 32

33 2.1 Windows Registry RegCreateKeyEx LONG RegCreateKeyEx ( HKEY hkey, LPCTSTR lpsubkey, DWORD Reserved, /* = 0 */ LPTSTR lpclass, /* Typ des neuen Keys */ DWORD dwoptions, REGSAM samdesired, /* Zugriffsrechte */ LPSECURITY_ATTRIBUTES lpsecurityattributes, PHKEY phkresult, LPDWORD lpdwdisposition); Win32 Systemprogrammierung 33

34 2.1 Windows Registry RegCreateKeyEx Beispiel #include <windows.h> HKEY hkey = Null; DWORD dwdisp = NULL; /* Schlüssel mit Schreibrechten erzeugen */ if (ERROR_SUCCESS!= RegCreateKeyEx(HKEY_LOCAL_MACHINE, L SYSTEM\\CurrentControlSet\\Services\\EventLog\\MyLog, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &dwdisp)) { } printf( Fehler beim Erzeugen des Keys ); Win32 Systemprogrammierung 34

35 2.1 Windows Registry Values in der Registry Values sind typisiert Einige Typen: REG_BINARY Binärdaten REG_DWORD 32 Bit Zahlen REG_SZ Strings REG_EXPAND_SZ Strings mit Verweisen auf Umgebungsvariablen Win32 Systemprogrammierung 35

36 2.1 Windows Registry RegSetValueEx LONG RegSetValueEx ( HKEY hkey, /* Key-Handle */ LPCTSTR lpvaluename, /* Name des Values */ DWORD Reserved, /* = 0 */ DWORD dwtype, /* Datentyp des Values */ CONST BYTE * lpdata, /* Daten (Value) */ DWORD cbdata); /* Größe der Daten */ Win32 Systemprogrammierung 36

37 2.1 Windows Registry RegSetValueEx Beispiel #include <windows.h> HKEY hkey = Null; wchar_t *value = L New Registry Value ; /* Key öffnen oder neu erzeugen */... /* Wert setzen */ if (ERROR_SUCCESS!= RegSetValueEx(hKey, L MyValue, 0, REG_SZ, (LPBYTE) value, (DWORD) ((lstrlen(value)+1) * sizeof(tchar))) { } printf( Fehler beim Setzen des Wertes ); Win32 Systemprogrammierung 37

38 2.1 Windows Registry RegEnumValue LONG RegEnumValue ( HKEY hkey, /* Parent Key-Handle */ DWORD dwindex, /* Indexwert */ LPTSTR lpvaluename, /* Name des Values */ LPDWORD lpcbvaluename, /* Größe des Valuenamens */ LPDWORD lpreserved, /* reserviert */ LPDWORD lptype, /* Typ des Values */ LPBYTE lpdata, /* der zurückgegebene Wert */ LPDWORD lpcbdata); /* Größe des Rückgabewertes */ Win32 Systemprogrammierung 38

39 2.2 Fehlerbehandlung Fehlerbehandlung Win32 Structured Exception Handling (SEH) Exceptions, Arithmetikfehler und Systemfehler SEH Support durch Win32 Funktionen, Sprachensupport des Compilers und Run-Time Support Beispiele für Fehlerbehandlungen: Array-Out-Of-Bound-Exceptions Pointer Dereferenzierung Division durch Null Win32 Systemprogrammierung 39

40 2.2 Fehlerbehandlung Try / Except ähnlich zum gewöhnlichen try-catch-block: try { /* Code, der einen Fehler werfen könnte */ } except (filter expression) { /* Fehlerbehandlung */ } Filter expression: nur auf bestimmte Fehlerereignisse im except-block reagieren Win32 Systemprogrammierung 40

41 2.2 Fehlerbehandlung Filterexpressions Filterexpression in except Anweisung wird direkt nach Auftreten der Exception überprüft normalerweise eine Konstante, eine Filterfunktion oder ein konditionaler Ausdruck, wobei immer einer der folgenden drei Typen zurückgegeben werden muss: EXCEPTION_EXECUTE_HANDLER EXCEPTION_CONTINUE_SEARCH EXCEPTION_CONTINUE_EXECUTION Win32 Systemprogrammierung 41

42 2.2 Fehlerbehandlung Exceptions Beispiel 1 #include <windows.h> GetTempFileName (TempFile,...); while (...) try { /* Datei erzeugen */ hfile = CreateFile (TempFile,..., OPEN_ALWAYS,...); SetFilePointer (hfile, 0, NULL, FILE_END); /* in Datei schreiben */ WriteFile (hfile,...); /* hier kann ein Addressierungsfehler auftreten!!! */ i = *p;... CloseHandle (hfile); } except (EXCEPTION_EXECUTE_HANDLER) { CloseHandle (hfile); DeleteFile (TempFile); } /* Datei am Ende immer geschlossen*/ Win32 Systemprogrammierung 42

43 2.2 Fehlerbehandlung Fehlercodes DWORD GetExceptionCode (VOID); Funktion gibt Fehlercode zurück Reagieren auf bestimmte Fehlerereignisse möglich einige wichtige Fehlercodes: EXCEPTION_ACCESS_VIOLATION EXCEPTION_NONCONTINUABLE_EXECUTION EXCEPTION_INT_DIVIDE_BY_ZERO EXCEPTION_BREAKPOINT Win32 Systemprogrammierung 43

44 2.2 Fehlerbehandlung Exceptions Beispiel 2 #include <windows.h> try {... i = j / 0;... } except (Filter (GetExceptionCode ())) {... } /* Filter Funktion, die auf bestimmte Fehler reagiert*/ DWORD Filter (DWORD ExCode) { switch (ExCode) {... case EXCEPTION_INT_DIVISION_BY_ZERO:... return EXCEPTION_EXECUTE_HANDLER; case... } } Win32 Systemprogrammierung 44

45 2.3 Windows Sockets Windows Sockets dienen der Interprozess-Kommunikation fast identisch zu Berkeley Sockets Initialisierung der WinSock API: int WSAStartup ( WORD wversionrequired, /* Socket Version (Minimum) */ LPWSADATA lpwsadata); /* Pointer zu WSADATA Struct */ Win32 Systemprogrammierung 45

46 2.3 Windows Sockets Sockets (TCP) Quelle: Folienbeispiel von Herr Weber Win32 Systemprogrammierung 46

47 2.3 Windows Sockets Sockets socket, bind Socket erzeugen: SOCKET socket (int af, /* Adress-Familie */ int type, /* Typ des Sockets (DGRAM, STREAM) */ int protocol); /* Protokoll */ Server: binden eines Sockets an einen Port: int bind (SOCKET s, /* Socket-Handle */ const struct sockaddr *saddr, /* Adresse/Port */ int namelen); /* Größe der Adresse */ Win32 Systemprogrammierung 47

48 2.3 Windows Sockets Sockets - sockaddr_in sockaddr_in Struktur bei AF_INET verwenden: struct sockaddr_in { short sin_family; /* AF_INET */ u_short sin_port; /* Portnummer */ struct in_addr sin_addr; /* 4-Byte IP-Adresse */ } char sin_zero [8]; /* optional */ Win32 Systemprogrammierung 48

49 2.3 Windows Sockets Sockets - listen Struktur sin_addr besitzt eine Variable s_addr, die die IP Adresse speichert Bsp.: sa.sin_addr.s_addr = inet_addr ( ); Server: Socket auf Akzeptieren von Clients vorbereiten: int listen ( SOCKET s, /* Socket-Handle */ int nqueuesize); /* Größe der Warteschlange an Clients*/ Win32 Systemprogrammierung 49

50 2.3 Windows Sockets Sockets accept, connect Server: Warten auf Verbindungsanfrage: SOCKET accept (SOCKET s, /* Socket-Handle */ LPSOCKADDR lpaddr, /* Definition von Port und Adresse */ LPINT lpaddrlen); /* Größe der Adresse */ Client: Verbindung aufbauen: int connect (SOCKET s, /* Socket-Handle */ LPSOCKADDR lpaddr, /* Definition von Port und Adresse */ int naddrlen); /* Größe der Adresse */ Win32 Systemprogrammierung 50

51 2.3 Windows Sockets Sockets recv, send Empfangen von Daten: int recv ( SOCKET s, /* Socket-Handle */ LPSTR lpbuffer, int nbufferlen, /*Puffer und -größe*/ int nflags); Senden von Daten: int send ( SOCKET s, /* Socket-Handle * LPSTR lpbuffer, int nbufferlen, /*Puffer und -größe*/ int nflags); Win32 Systemprogrammierung 51

52 2.3 Windows Sockets Server Beispiel #include <winsock.h> struct sockaddr_in SrvSAddr,ConnectAddr; SOCKET SrvSock, sockio;... SrvSock = socket (AF_INET, SOCK_STREAM, 0); SrvSAddr.sin_family = AF_INET; SrvSAddr.sin_addr.s_addr = htonl (INADDR_ANY); SrvSAddr.sin_port = htons (SERVER_PORT); /* Socket an Adresse binden */ bind (SrvSock, (struct sockaddr *) &SrvSAddr, sizeof (SrvSAddr); listen (SrvSock, 5); AddrLen = sizeof (ConnectAddr); /* Client Verbindung akzeptieren*/ sockio = accept (SrvSock, (struct sockaddr *) &ConnectAddr, &AddrLen);... /* Daten empfangen*/ ret = recv (sockio, buffer, sizeof(buffer), 0);... closesocket (sockio); Win32 Systemprogrammierung 52

53 2.3 Windows Sockets Client Beispiel #include <winsock.h> SOCKET ClientSock; /* Socket erzeugen */ ClientSock = socket (AF_INET, SOCK_STREAM, 0); memset (&ClientSAddr, sizeof (ClientSAddr), 0); ClientSAddr.sin_family = AF_INET; ClientSAddr.sin_addr.s_addr = inet_addr (argv[1]); ClientSAddr.sin_port = htons (SERVER_PORT); /* Verbindung zu Server aufbauen */ ret = connect (ClientSock, (struct sockaddr *) &ClientSAddr, sizeof (ClientSAddr));... /* Daten senden */ ret = send (ClientSock, buffer, sizeof(buffer), 0);... /* Socket und Verbindung schliessen*/ shutdown (ClientSock); closesocket (ClientSock); Win32 Systemprogrammierung 53

54 Inhaltsverzeichnis Kapitel 3 1. Win32 Adressraum 2. Virtuelle Adressierung 3. Heaps 4. Memory Mapped Files 5. Bibliotheken 6. Prozesse Win32 Systemprogrammierung 54

55 3.1 Win32 Adressraum 32-Bit Adressraum 32-Bit Zeiger (z.b.: LPCTSTR, LPDWORD...) 4GB adressierbarer Speicher RING 0: Kernel-Mode, Prozesse können die vollen 4GB adressieren. RING 3: User-Mode, Prozesse können nur 2-3 GB adressieren (versionsabhängig). Der Rest ist exklusiv für Kernel, Gerätetreiber, DLL s also für von mehreren Diensten genutzten Code Reserviert Win32 Systemprogrammierung 55

56 3.2 Virtuelle Adressierung: Einführung I Rechtfertigung: nicht alle Teile eines Programms werden immer gleichzeitig benötigt Funktionsweise: - virtueller Speicher ist in Seiten aufgeteilt. - physikalischer Speicher ist in gleich große Rahmen aufgeteilt. - Zuordnung von Seiten zu Rahmen (Mappen). - Auslagern von Rahmen (Swapen) - Seitentausch-Strategien (swapen dann mappen): random=schwach, RR=fair, FIFO=Sehr fair Win32 Systemprogrammierung 56

57 3.2 Virtuelle Adressierung: Einführung II Vorteil: Es ist mit nur 32MB physical Memory möglich einen 1GB Prozess laufen zu lassen. Dazu werden die aktuell benötigten Speicherbereiche in den RAM geladen und nicht benötigte aus diesem verdrängt. Funktionen auf Seiten-Basis: VirtualAlloc, VirtualFree, VirtualLock, VirtualUnlock... Funktionen auf definierbarer Basis (byte, word,...): HeapAlloc, HeapCreate, HeapDestroy, HeapFree Win32 Systemprogrammierung 57

58 3.2 Memory Management Architecture C library: malloc, free Windows Program Heap API: H e a p C r e a t e, H e a p D e s t r o y, MMF API: H e a p A l l o c, H e a p CF r re ea et e F i l e M a p p i n g, C r e a t e V i e w O f F i l e Virtual Memory API Windows Kernel with Virtual Memory Manager Physical Memory Disc & File System Win32 Systemprogrammierung 58

59 3.3 Heaps: Einführung Ein Heap (engl: Haufen) ist ein Speichervorrat, welcher dem Stack (lokaler Prozedur-Speicher) entgegen wächst. Jeder Prozess besitzt min. einen Default-Heap. Speicheranforderungen durch malloc, realloc, calloc, werden vom Default- Heap abgezogen. Jeder Heap wird automatisch bis zur definierten Obergrenze erweitert => und immer auf ganze Seiten gerundet. Ein Heap in Windows ist ein Objekt somit existiert zu diesem ein Handle: HANDLE GetProcessHeap(VOID) Win32 Systemprogrammierung 59

60 3.3 Heaps: Beispiel separater Heaps Virtual Address Space Program Process Heap RecHeap NodeHeap Not allocated P r o c H e a p = G e t P r o c e s s H e a p ( ) ; p R o o t = H e a p A l l o c ( P r o c H e a p ) ; Not allocated R e c H e a p = H e a p C r e a t e ( ) ; RecordN o d e H e a p = H e a p C r e a t e ( ) ; Record w h i l e ( ) { Record p R e c = H e a p A l l o c ( R e c H e a p ) ; Not p allocated N o d e = H e a p A l l o c ( N o d e H e a p ) ; H e a p F r e e } Node ( R e c H e a p, 0, Node p R e c ) ; Node Not allocated H e a p F r e e ( N o d e H e a p, 0, p N o d e ) ; H e a p D e s t r o y ( R e c H e a p ) ; H e a p D e s t r o y Win32 Systemprogrammierung 60 ( N o d e H e a p ) ;

61 3.3 Heaps: Vorteile separater Heaps Fairness: kein Thread kann mehr Speicher anfordern als für dessen Heap reserviert ist. (Memory-Leaks betreffen nur diesen Thread) Multithreaded-Preformence: Der Wettstreit um den default Heap des Prozesses entfällt, dies kann substantielle preformence Verbesserung mit sich bringen. Allocation Efficency: Speicheranforderungen auf einen kleinen Heap welche nur in einer bestimmten Größe auftreten sind effizienter als Anforderungen auf einen großen Heap, welche in den verschiedensten Größen auftreten. Somit Reduzierung von Fragmentration. Deallocation Efficeny: Der gesamte Heap kann mit nur einem Funktionsaufruf beseitigt werden, wobei auch Memory-Leaks beseitigt werden. Locality of Reference Efficency: Wird für eine Datenstruktur ein kleiner Heap verwendet, so wird das Risiko von Page-Faults reduziert, da sich die Struktur dann nur über wenige Speicherseiten erstreckt Win32 Systemprogrammierung 61

62 3.3 Heaps: Optionen der Heap API HEAP_GENERATE_EXCEPTIONS: Nutzung eines SEH (StructuredExceptionHandler) zur Fehlerbehandlung. Vorteil: Kein Fehlertest nach einer Heapoperation notwendig HEAP_NO_SERIALIZE: Schaltet Mutal-Exclusion Mechanismus bei zugriff auf Heap aus. Sicher wenn: 1.) Der Prozess (Hauptthread) exklusiv den Default- Heap und keinen der Thread-Heaps verwendet. 2.) Jeder Thread exklusiv seinen eigenen Heap besitzt. sonst: Bei gleichzeitiger Nutzung eines Heaps durch mehrere Threads muss ein Mutal-Exclusion Mechanismus implementiert werden. HEAP_ZERO_MEMORY: Angeforderter Speicher wird mit 0 Initialisiert Win32 Systemprogrammierung 62

63 3.3 Heaps: Erstellung HANDLE HeapCreate ( DWORD floptions, SIZE_T dwinitialsize, SIZE_T dwmaximumsize ); Rückgabewerte: NULL bei fehler sonst Heap-Handle. Parameter: - floptions: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE - dwinitialsize: Initiale Heapgröße (wird in der Pagefile reserviert) - dwmaximumsize: Maximale Heapgröße (wenn nicht 0, kein wachsen möglich) Anmerkungen: - dwmaximumsize=0: bei bedarf gesamter freier virtueller Adressraum - dwmaximumsize<>0: dwmaximumsize wird allokiert aber es wird nur dwinitialsize in der Pagefile reserviert Win32 Systemprogrammierung 63

64 3.3 Heaps: Loeschen BOOL HeapDestroy ( HANDLE hheap ); Rückgabewerte: - Erfolg <> 0, sonst Misserfolg Parameter: - hheap: Handle eines mit HeapCreate erstellten Heaps. Anmerkungen: - Loeschen eines Heaps - Der Default-Heap des Prozesses darf niemals zerstört werden. - Es werden auch die in der Pageing-File ausgelagerten Teile freigegeben. - Man kann somit durch nur einen Funktionsaufruf alle allokierten Datenstrukturen des Heaps löschen => Sehr schnell! Win32 Systemprogrammierung 64

65 3.3 Heaps: Speicherbereich anfordern HANDLE HeapAlloc ( HANDLE hheap, DWORD dwflags, SIZE_T dwbytes ); Rückgabewerte: - NULL bei Fehler (wenn kein SHE) sonst Zeiger auf Speicherbereich der Größe dwbytes. Parameter: - hheap: Handle eines Heaps (GetProcessHeap, HeapCreate) - dwflags: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE, HEAP_ZERO_MEMORY - dwbytes : Speicher in Byte welcher reserviert werden soll. Anmerkungen: - Anfordern eines Speicherberiches vom Heap Win32 Systemprogrammierung 65

66 3.3 Heaps: Speicherbereich freigeben BOOL HeapFree ( HANDLE hheap, DWORD dwflags, LPVOID lpmem ); Rückgabewerte: - Erfolg <> 0, sonst Misserfolg Parameter: - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_NO_SERIALIZE, - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc allokierten Speicherbereich Anmerkungen: - Freigabe eines allokierten Speicherbereiches eines Heaps Win32 Systemprogrammierung 66

67 LPVOID HeapReAlloc ( HANDLE hheap, DWORD dwflags, LPVOID lpmem, DWORD dwbytes ); 3.3 Heaps: Speicherbereichsgröße ändern Rückgabewerte: Parameter: - NULL bei Fehler (wenn kein SHE) sonst Zeiger auf Speicherbereich der Größe dwbytes. - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE, HEAP_ZERO_MEMORY (neu allokierter Speicher), HEAP_REALLOC_IN_PLACE_ONLY (Block nicht verschieben) - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc Anmerkungen: allokierten Speicherbereich - dwbytes : Speicher in Byte welcher reallokiert werden soll. - Keine Win32 Systemprogrammierung 67

68 3.3 Heaps: Speicherbereichsgröße ermitteln DWORD HeapSize ( HANDLE hheap, DWORD dwflags, LPVOID lpmem ); Rückgabewerte: - 0 bei Fehler (wenn kein SHE) sonst Größe des Speicherbereiches in Bytes. Parameter: - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_NO_SERIALIZE, - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc allokierten Speicherbereich Anmerkungen: - Ermittelt die Größe eines Speicherbereiches eines Heaps, nicht die Größe des Heaps! Win32 Systemprogrammierung 68

69 3.3 Heaps: weitere Funktionen HeapValidate: Feststellen ob ein Heap korrupiert wurde. HeapCompact: Defragmentieren eines Heaps durch zusammenfassen von freien Blöcken und freigeben von großen Freibereichen. HeapWalk: Ermittelt alle allokierten Speicherbereiche eines Heaps. HeapLock, HeapUnlock: Dient Mutal-Exclusion Mechanismen Win32 Systemprogrammierung 69

70 3.3 Heaps: Systemaufrufe Systemaufrufe UNIX Win32 Beschreibung Nur default-heap HeapCreate Erstellt einen Heap Nicht vorhanden! HeapDestroy Löscht einen Heap malloc da nur default-heap realloc Da nur default-heap HeapAlloc HeapReAlloc Allokiert einen Speicherbereich vom Haeap Heap-Speicherbereich neu dimensionieren. Nicht vorhanden! HeapSize Heap- Speicherbereichgröße. Nicht vorhanden! HeapValidate Heap korrupiert? Nicht vorhanden! HeapCompact Heap defragmentieren Nicht vorhanden! HeapWalk Heapgröße ermitteln Nicht vorhanden! HeapLock Heap sperren (mutal exc.) Nicht vorhanden! HeapUnlock Heap freigabe (mutal exc.) Win32 Systemprogrammierung 70

71 3.4 Memory-Mapped Files: Einführung Rechtfertigung: - Bei der Virtuellenspeicherverwaltung muss Speicher für Objekte (Heap-Bereiche) in der Auslagerrungsdatei (Swaping) bereitgestellt werden. - Wird ein Prozess terminiert, so geht der zugehörige Auslagerrungsdateispeicher verloren. - Lösung: Man nutzt MMF's statt der Auslagerrungsdatei. Vorteile: - Ermöglichen das Einblenden eines Objektes in den virtuellen Adressraum eines Prozesses. - Für MMF s wird keine File-I/O-API benötigt - Inhalte von Datenstrukturen können wiederverwendet werden. - Implementierung für Dateipuffer entfällt! - Bietet die Möglichkeit Daten mit anderen Prozessen zu teilen. - Die Auslagerungsdatei wird entlastet Win32 Systemprogrammierung 71

Windows - Registry. Einführung / Gefahren. Windows Registry - Gliederung. Registry Was ist das? Registry Aufbau. Programmierung.

Windows - Registry. Einführung / Gefahren. Windows Registry - Gliederung. Registry Was ist das? Registry Aufbau. Programmierung. Windows - Registry Einführung / Gefahren Informatikseminar am 14.07.03 Diana Reichwein Windows Registry - Gliederung Registry Was ist das? Registry Aufbau Programmierung Gefahren Windows Registry Registry

Mehr

Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000.

Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000. Aufgabe 1 Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000. Im MSDN-Glossary findet sich zum Thema Handle die Erklärung (englisch): 1. A pointer to a pointer; that is,

Mehr

Windows32 Systemprogrammierung

Windows32 Systemprogrammierung Hochschule RheinMain WS 2009/2010 Allgemeine Informatik (B.Sc.) Vertiefung Bachelor AI Windows32 Systemprogrammierung Eine Gegenüberstellung von Systemaufrufen unter Windows und Linux 1 von 27 Inhalte

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5.

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. www.heimetli.ch. Heimetli Software AG HSWModule........ Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. August 2005 Inhaltsverzeichnis Was ist HSWModule?... 1 Installation...

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

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

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 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

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller Windows Sockets An Open Interface for Network Programming under Microsoft Windows DI. Dr. Peter René Dietmüller Institut für Informationsverarbeitung und Mikroprozessortechnik Johannes Kepler Universität

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

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

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren irc://irc.at.euirc.net/bs Teamwork Arbeitsaufteilung? Zeiteinteilung? Codeeinteilung? Kommunikation! Kommunikation Kommunikation mit dem Team Gruppentreffen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

21 Netzwerkprogrammierung mit Sockets

21 Netzwerkprogrammierung mit Sockets 302 21 Netzwerkprogrammierung mit Sockets Das Socket-API liegt zwischen den transportorientierten und den anwendungsorientierten Netzwerkschichten und tritt in der Praxis in 2 Formen auf: Ursprünglich

Mehr

6.2 FAT32 Dateisystem

6.2 FAT32 Dateisystem 6.2 FAT32 Dateisystem Dateisystem für Windows 98 einige Unterschiede zum Linux-Dateisystem EXT2: keine Benutzeridentifikation für Dateien und Verzeichnisse! Partitionen werden durch Laufwerke repräsentiert,

Mehr

Prozesse. Stefan Janssen. sjanssen@cebitec.uni-bielefeld.de. Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de

Prozesse. Stefan Janssen. sjanssen@cebitec.uni-bielefeld.de. Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Netzwerk - Programmierung Prozesse Stefan Janssen sjanssen@cebitec.uni-bielefeld.de Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Madis Rumming mrumming@cebitec.uni-bielefeld.de Übersicht Prozesse

Mehr

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5 Die DW-LogLibrary ist eine kleine, einfach zu verwendende Softwarebibliothek, um Entwicklern von.net-programmen das Speichern von Ausgaben und Fehlermeldungen ihrer Programme zu erleichtern. Sie unterstützt

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung [RN] Sommer 2012 Socket - Programmierung 1 Überblick Allgemeine Grundlagen für die Socket-Programmierung Elementare

Mehr

Entwicklung eines Winsock2-API-Monitors. Ali Fessi AG Integrierte Kommunikationssysteme, Prof. Müller Betreuer: Bernd Reuther

Entwicklung eines Winsock2-API-Monitors. Ali Fessi AG Integrierte Kommunikationssysteme, Prof. Müller Betreuer: Bernd Reuther Entwicklung eines Winsock2-API-Monitors Ali Fessi AG Integrierte Kommunikationssysteme, Prof. Müller Betreuer: Bernd Reuther Inhaltsverzeichnis 1. Motivation...2 2. Überblick... 2 3 TracePlus/Winsock2...

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

boost::asio-bibliothek 238

boost::asio-bibliothek 238 boost::asio-bibliothek 238 Die von Christopher M. Kohlhoff seit 2003 entwickelte Bibliothek bietet eine für C++ geeignete Schnittstelle auf Basis der BSD-Sockets. Das bedeutet, dass prinzipiell auch alle

Mehr

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung 3 e 3 und Explizite Synchronisation Daniel Prokesch Institut für Technische Informatik Technische Universität Wien 27. April 2015 1 2 3 e Bisher betrachtet... Implizite Synchronisation Blockierende Lese-

Mehr

1. XPhone CTI vtapi 1. Virtuelle TAPI- Schnittstelle (vtapi)

1. XPhone CTI vtapi 1. Virtuelle TAPI- Schnittstelle (vtapi) 1. XPhone CTI vtapi 1 Virtuelle TAPI- Schnittstelle (vtapi) 2 1. XPhone CTI vtapi Inhalt 1 XPhone CTI vtapi 3 2 Systemvoraussetzungen 3 2.1 Systemvoraussetzungen von Server und Client 3 2.2 Unterstützte

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

Netzwerkprogrammierung mit Sockets und C. Ulrich Vogel

Netzwerkprogrammierung mit Sockets und C. Ulrich Vogel Netzwerkprogrammierung mit Sockets und C Ulrich Vogel Netzwerkprogrammierung mit Sockets und C von Ulrich Vogel Dieses Tutorial ist eine Einführung in die Netzwerkprogrammierung mit Hilfe von Sockets.

Mehr

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57 3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

PARAGON Encrypted Disk

PARAGON Encrypted Disk PARAGON Encrypted Disk Anwenderhandbuch Paragon Technologie, Systemprogrammierung GmbH Copyright Paragon Technologie GmbH Herausgegeben von Paragon Technologie GmbH, Systemprogrammierung Pearl-Str. 1 D-79426

Mehr

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:

Mehr

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Zusammenfassung Kapitel 4 Dateiverwaltung 1 Datei logisch zusammengehörende Daten i.d.r. permanent

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Windows-Betriebssysteme

Windows-Betriebssysteme REGIONALES RECHENZENTRUM ERLANGEN [RRZE] Windows-Betriebssysteme Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten, 6.5.2015 Sebastian Schmitt / Sonja Schmidt, RRZE

Mehr

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

Windows Vista Windows Phone 7

Windows Vista Windows Phone 7 Windows Vista Windows Phone 7 Softwarearchitekturen Referent: Frank Urrigshardt Übersicht Windows Vista Historische Entwicklung Programmierung NT Programmierschnittstelle Win32 Programmierschnittstelle

Mehr

Kapitel 7 - Debugger. Universität Mannheim

Kapitel 7 - Debugger. Universität Mannheim Kapitel 7 - Debugger zynamics Hersteller von Reverse Engineering Tools Fünf Produkte BinDiff BinNavi VxClass (Deutscher IT-Sicherheitspreis 2006) BinCrowd PDF Tool 2 Was ist ein Debugger (offiziell)? Ein

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Windows-Multithreading

Windows-Multithreading DOS 2.0: Hintergrundprzesse als TSR-Prgramme : Terminate and Stay Resident (d.h.: keine Speicher-Freigabe) ermöglichte Verfügbarkeit/ Reaktivierbarkeit (meist über Htkey ) z.b.: Verwaltung / Versrgung

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

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

SOLID EDGE INSTALLATION STANDARD PARTS am Server ab ST7 (SQL 2012) INSTALLATION Standard Parts am Server

SOLID EDGE INSTALLATION STANDARD PARTS am Server ab ST7 (SQL 2012) INSTALLATION Standard Parts am Server ^ INSTALLATION Standard Parts am Server Allgemeines Die ST7 Standard Parts benötigen den MS SQL SERVER (EXPRESS) 2005/2008/2012/2014 am SERVER. Auf der Solid Edge DVD befindet sich der MS SQL SERVER 2012

Mehr

Eutaxa Installationsanleitung

Eutaxa Installationsanleitung Eutaxa Installationsanleitung Überprüfen Sie zuerst, ob die technischen Voraussetzungen für eine Installation der Software auf Ihrem Computer gegeben sind. Windows Betriebssysteme: ME, XP, Vista oder Windows

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Effizientes Memory Debugging in C/C++

Effizientes Memory Debugging in C/C++ Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten

Mehr

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 Adressauflösung IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 IP Adresse Physikalische Adresse 128.96.34.15??? 128.96.34.16 85:48:A4:28:AA:18 128.96.34.15

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition

Mehr

5.2 Analyse des File Slack

5.2 Analyse des File Slack 5.2 Analyse des File Slack 109 Es gibt an vielen Stellen eines Betriebssystems Fundorte für Gebrauchsspuren oder Hinweise auf Auffälligkeiten. Diese Stellen sollten grundsätzlich aufgesucht und analysiert

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

Werden automatisch beim Start erstellt.

Werden automatisch beim Start erstellt. Dies ist die Anleitung zur Bedienung des Online-Servers des Spiels Spellforce Master of War. Sämtliche Inhalte sowie deren Erstellung wurden von NeoX durchgeführt. Eine Verwendung des Servers bedarf ausdrücklicher

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 9.1.2013 IAM Institut für Angewandte Mathematik Fortgeschrittene Ein- und Ausgabe Bisher: Ein- und Ausgabe nur über die Kommandozeile Erweiterung: Konzept

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

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht Betriebssysteme Grundlagen Quellen: InSy Folien zum Thema Unix/Linux Wikipedia Das ist nur die Oberfläche... 1 Ziele 2 Übersicht Wissen, was man unter einem Betriebssystem versteht Was Was ist istein einbetriebssystem?

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) {

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) { Universität Mannheim Lehrstuhl für Praktische Informatik 1 Prof. Dr. Felix C. Freiling Dipl.-Inform. Martin Mink Dipl.-Inform. Thorsten Holz Vorlesung Angewandte IT-Sicherheit Herbstsemester 2006 Übung

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Rechnernetze II SS 2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Rechnernetze II SS 2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Rechnernetze II SS 2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. Juli 2015 Betriebssysteme / verteilte Systeme Rechnernetze

Mehr

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout

Mehr

SMB / CIFS Protokoll. Ein Blick hinter die Kulissen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y

SMB / CIFS Protokoll. Ein Blick hinter die Kulissen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y SMB / CIFS Protokoll Ein Blick hinter die Kulissen KMU Windows Umgebung Ein Alltagsbeispiel Wieso dauert das Kopieren eines Files so lange? Wieso stürzt der Windows Explorer immer ab? Wieso dauert es so

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

Windows 7 vernetzen. Windows 7 nutzt für die Freigabe von Ordnern über die Heimnetzgruppe sogenannte Bibliotheken. Dabei handelt.

Windows 7 vernetzen. Windows 7 nutzt für die Freigabe von Ordnern über die Heimnetzgruppe sogenannte Bibliotheken. Dabei handelt. Windows 7 verfügt über die neue Funktion Heimnetzgruppe. Damit lassen sich Dateien und Ordner zwischen Rechnern austauschen. Auf den Rechnern kann Windows XP, Vista und 7 installiert sein. Die mit Windows

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 7 Th Letschert FH Gießen-Friedberg Ressourcen Verwaltung passive Ressourcen aktive Ressourcen

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Inhalt Systemvoraussetzungen... 1 Hintergrund zur Installation... 1 Installation des DBMS auf einem Server... 2 Mehrplatz Installationsvarianten

Mehr

Kurzanleitung - XVA Provider unter Mac OSX 10

Kurzanleitung - XVA Provider unter Mac OSX 10 Kurzanleitung - XVA Provider unter Mac OSX 10 Installation und Bedienung- Inhalt Allgemeine Hinweise:... 1 Kapitel 1 Installation und Konfiguration... 2 Schritt 1: Java SE Development Kit 6 installieren:...

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Halt! Wo bin ich überhaupt?... C:\

Halt! Wo bin ich überhaupt?... C:\ Halt! Wo bin ich überhaupt?... C:\ FAT32 und Co Dateisysteme Datenträger FAT Forensik Bootreihenfolge Einschalten BIOS -> Power-On Self Test (POST) BIOS -> Master Boot Record (MBR) Bootsektor Betriebssystem

Mehr

estos XMPP Proxy 5.1.30.33611

estos XMPP Proxy 5.1.30.33611 estos XMPP Proxy 5.1.30.33611 1 Willkommen zum estos XMPP Proxy... 4 1.1 WAN Einstellungen... 4 1.2 LAN Einstellungen... 5 1.3 Konfiguration des Zertifikats... 6 1.4 Diagnose... 6 1.5 Proxy Dienst... 7

Mehr

Angriffe auf Windowssysteme

Angriffe auf Windowssysteme Angriffe auf Windowssysteme von Markus Diett Ruhr-Universität Bochum Lehrstuhl Kommunikationssicherheit Seminar: IT-Sicherheit Wintersemester 2003/2004 Fachsemster: 5 Matrikel-Nr.: 108 001 21522 6 Betreut

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr