Version 188.1 by Thomas Schwotzer on 2024/01/24 09:11

Show last authors
1 Es ist enorm hilfreich, wenn Sie zuvor die Veranstaltung [[Praktische Grundlagen der Informatik>>url:http://christianherta.de/lehre/praktischeInformatik/praktischeInformatik.php||shape="rect"]] erfolgreich abschlossen. Ich gehe davon aus, dass Sie mit einen Rechner auch auf der Shell-Ebene arbeiten können.
2
3 Betriebssysteme und Netzwerke werden in vielen Studiengängen in zwei getrennten Kursen gegeben. Dabei wurden die Betriebssysteme, mit denen wir arbeiten sehr stark von den Netzwerken beeinflusst. Den ersten [[drahtlosen Telegrafen entwickelte Gauss bereits 1833>>url:https://de.wikipedia.org/wiki/Carl_Friedrich_Gau%C3%9F#Magnetismus,_Elektrizit%C3%A4t_und_Telegrafie||shape="rect"]]. In der Zeit diskutierte und entwickelte man auch Programmiersprachen. Die Grundlagen unserer Betriebssysteme wurden aber 1940er Jahren gelegt. Multitaskingsysteme waren zwingend notwendig, um gleichzeitig Netzwerkverkehr und Eingaben von Menschen zu bearbeiten. Wir folgen in diesem Kurs daher auch dieser Historie, fangen mit Netzwerken an und beschäftigen uns dann mit Betriebssystemen, wenn wir merken, dass single-threaded nicht ausreicht für das was wir tun wollen.
4
5 == {{id name="B23BetriebssystemeundNetzwerke-Prüfungsleistungen"/}}Prüfungsleistungen ==
6
7 Am Ende der Veranstaltung steht eine **Klausur**. Sie werden eine schriftliche Arbeit schreiben.
8
9 Als** semesterbegleitende Leistung** implementieren Sie ein kleines dezentrales Programm. Die Arbeit daran beginnt in der 1. Übung. Das Programm unterstützt Sie beim Lernen der Konzepte und zeigt umgekehrt, ob Sie sich mit den Themen während des Semesters beschäftigten. Am Ende des Semester sind Sie in der Lage, ein Programm zu schreiben, dass eine TCP-Verbindung zu einem anderen Prozess herstellt und mit diesem wohl definierte PDUs austauscht. Das wird am Ende der Vorlesungszeit in einem kleinen Programmiertest geprüft. **Diesen Test müssen Sie bestehen. Erst dann gibt es Punkte. Es gibt keine Punkte für eine nicht fertige Lösung.** Bestehen Sie den Test nicht, sind Sie auch nicht zur Klausur zugelassen.
10
11 Wir sind eine Hochschule für angewandte (!) Wissenschaften. Sie müssen grundlegende Dinge praktisch umsetzen können. Das ist auch gar kein Problem, wenn Sie sich aktiv an den Übungen beteiligen. Wirklich gar kein Problem. Es kann ein ernsthaftes Problem werden, wenn Sie die Übungen ignorieren.
12
13 Es gilt:
14
15 * Haben Sie den Test nicht bestanden, bekommen keine Prozentpunkte und sind //nicht// zur Klausur zugelassen.
16 * Haben Sie den Test bestanden, haben Sie wenigstens einen Punkt und sind zur Klausur zugelassen.
17 * Die Tests unterscheiden sich je Semester. Möglicherweise werden weitere Kriterien zur Bewertung genutzt wie z.B. Einhaltung von Regeln für gutes Programmieren, die Dauer, die zum Implementieren benötigt wurde o.ä. Erfüllen Sie alle Kriterien perfekt, erhalten Sie 100 Prozentpunkte.
18
19 Die Klausur in diesem Modul erfolgt schriftlich ohne weitere Hilfsmittel. Für die Klausur werden Punkte vergegen. Erreichen Sie alle Punkte in der Klausur haben Sie damit 100% erreicht, haben Sie keine Punkte entsprechend 0%. Meisten liegen die Ergebnisse dazwischen.
20
21 Das prozentuale **Endergebnis** dieses Kurses ergibt sich so: (Prozentzahl der semesterbegleitenden Leistung (das ist der Test) * 0,30) + (Prozentzahl der Klausur * 0,7). Ab 50% haben Sie bestanden. Die Klausur hat damit nahezu das doppelte Gewicht des Programmes. Sie können den Kurs ohne Punkte in der Klausur nicht bestehen.
22
23 Beispiele:
24
25 1. Perfekter Test, keine Klausur: 100*0,3 + 0*0,7 = 30% → nicht bestanden
26 1. Test nicht bestanden → keine Klausurzulassung → nicht bestanden
27 1. Perfekter Test, eher schlechte Klausur: (100*0,3 + 50*0,7) = 65% → bestanden mit 3,0
28 1. Perfekter Test, schlechte Klausur mit der man gerade noch besteht: (100*0,3 + 30*0,7) = 51% → bestanden mit 4,0
29 1. Perfekter Test, perfekte Klausur (100*0,3 + 100*0,7) = 100% → bestanden mit 1,0
30
31 Denkvorschlag: Sie machen einen perfekten Test und dann brauchen Sie minimal noch 30 Prozent in der Klausur. Dann haben Sie bestanden. Aber tatsächlich wollen Sie 100 Prozentpunkte in der Klausur, weil Sie sehr gut sind und das auch auf Ihren Zeugnis sehen wollen. Und im übrigen sind das sehr grundsätzliche Dinge der IT mit denen wir uns hier beschäftigen. Als zukünftige:r IT-Expert:in wollen Sie das beherrschen.
32
33 Beispiele von Klausurfragen finden Sie am Ende dieser Seite.
34
35 Die folgende Tabelle beschreibt den geplanten Ablauf. Aber wie wir [[alle wissen, haben Pläne die Tendenz, sich ständig zu ändern>>url:https://www.lyrikline.org/de/gedichte/ballade-von-der-unzulaenglichkeit-menschlichen-planens-770||shape="rect"]]; das kann auch diesem geschehen.
36
37 [[Einige Foliensätze habe ich kommentiert auch in die Mediathek gestellt>>url:https://mediathek.htw-berlin.de/album/view/aid/334||shape="rect"]].
38
39 (% class="wrapped relative-table" style="width: 100.0%;" %)
40 |=(((
41 #
42 )))|=(((
43 Lehreinheit
44 )))|=(((
45 Inhalt
46 )))|=(((
47 Kapitel zum Selbststudium
48 )))|=(((
49 Übung
50 )))
51 |(((
52 1
53 )))|(((
54 **Punkt-zu-Punkt Datenübertragung**
55 )))|(((
56 Wir fangen mit den Netzwerken an. Und der Anfang ist prosaisch: Man nehme ein Kabel und verbinden zwei Parteien, die darüber nun Daten austauschen. Und damit fangen die interessanten Fragen bereits an.
57
58 Wir nutzen physikalische Effekte, um Daten zu übertragen. Solche Effekte können gestört werden sodass die Signale nicht mehr in Informationen umgewandelt werden können. Wir stehen hier vor Raten von manchmal 50%. Wir diskutieren wie wir damit umgehen können. Das ist nichts, was Sie im täglichen Leben als Entwickler:in betreffen wird. Sollte man als Träger: in eines Bachelor of Science (⚠️) trotzdem wissen.
59 )))|(((
60 [4] 1.4 + 2
61
62 [[Mediathek: Fehlerkorrektur und -erkennung>>url:https://mediathek.htw-berlin.de/album/video/Fehlererkennung-behebung-Hamming-Frames-Synchronisation-OSI-Layer-2/9d682f6b9ef2cac57be9795f35a57a29/334||shape="rect"]]
63 )))|(((
64 Sie finde das [[NWAppTemplate>>url:https://github.com/thsc42/NWAppTemplate||shape="rect"]] auf Github. Wir nehmen das als Basis, um in streambasierte Netzwerkprogrammierung einzusteigen. Sie bekommen in der Übung ein Skeleton das wir schrittweise bis zum Ende des Semesters erweitern.
65
66 Wir beschäftigen uns mit [[Streams>>url:https://mediathek.htw-berlin.de/album/video/Streams/ef694bc868aa397a1bb42507db7fc33d/334||shape="rect"]] und [[DataStreams>>url:https://mediathek.htw-berlin.de/album/video/DataStreams/55d82930517c4795a6089dce9512c409/334||shape="rect"]].
67 )))
68 |(((
69 2
70 )))|(((
71 **Layer 2 (Medienzugriff, Fehlererkennung / - korrektur)**
72 )))|(((
73 ALOHA,CSMA / CD und CA. Hidden sender problem, Repeater. Wir beschäftigen uns mit vorrangig mit drahtgebundenen Protokollen. Die drahtlosen werden im aufbauenden Modul mobile Betriebssysteme und Netze sein.
74 )))|(((
75 [3]: 2.11
76
77 [4] 3, 4.2
78
79 [[Mediathek:CSMA>>url:https://mediathek.htw-berlin.de/video/Carrier-Sense-Multiple-Access-CSMA/dc16139e4522ef04e708c69ae0000abf||shape="rect"]]
80 )))|(((
81 Wir beschäftigen uns mit Unit Tests, konkret JUnit. Der Einschub ist wichtig, weil unser Programm immer komplexer wird die Fehlersuche immer schwerer. Bei verteilten Systemen sowieso ein richtiges Problem.
82 )))
83 |(((
84 3
85 )))|(((
86 **Layer 2 (Ethernet)**
87 )))|(((
88 Wir sprechen über Layer2 Topologien und die Infrastruktur von drahtbasierten Layer 2 Netzwerken (Ethernetframes, Bridges & Switches. Geht schnell. Wir sparen uns zu vielen Details. Wir reden über ARP (vielleicht auch DHCP) aber noch nicht IP.
89 )))|(((
90 [3]: 3.2 - 3.6, 3.8
91
92 [4] 4.3, 4.8
93
94 [[~[10~]>>url:https://datatracker.ietf.org/doc/html/rfc826||shape="rect"]]
95
96 [[Mediathek:IEEE 802.3 / Ethernet>>url:https://mediathek.htw-berlin.de/video/IEEE-8023-Ethernet/b3dbf8aa99e6251a51e5a1e875f48b9c||shape="rect"]]
97 )))|(((
98 (% class="content-wrapper" %)
99 (((
100 {{view-file att--filename="AdderProtocolEngine.zip" display="thumbnail" height="250"/}}Wir implementieren eine Protokollmaschine. Hier das Beispiel, dass wir in der Vorlesung diskutieren.
101 )))
102 )))
103 |(((
104 4
105 )))|(((
106 **Layer 3 (Internet Protocol)**
107 )))|(((
108 Internet Protocol (IP) Ab dieser Einheit sagen Sie nie wieder //Internetseite// (das ist das falscheste Wort das mir derzeit bekannt ist.) Bitte. Nie nie wieder.. Adressschema, Subnetze, adressbasiertes Routing. Vielleicht brauchen wir auch zwei Einheiten dafür.
109
110 Lässt sich super programmieren - UDP-Socket.
111
112 Wir müssen hier ein wenig über Geschichte reden.. Lesen Sie unbedingt einmal in [[~[6~]>>url:https://www.rand.org/content/dam/rand/pubs/research_memoranda/2006/RM3420.pdf||shape="rect"]] einfach die ersten vier Sätze auf Seite 15. Das war die Motivation für das Internet. Glasklar.
113 )))|(((
114 [3] 3.1.1, [4] 5.6, [13]
115
116 Ich hörte einmal folgenden weisen Hinweis: //Vor Erfolgen, die "über Nacht" entstehen liegen Jahre der Vorbereitung.// Sie lesen daher in tiefer Andacht [[~[5~]>>url:https://datatracker.ietf.org/doc/html/rfc791||shape="rect"]] und [[~[6~]>>url:https://www.rand.org/content/dam/rand/pubs/research_memoranda/2006/RM3420.pdf||shape="rect"]].
117
118 [[Mediathek:IP>>url:https://mediathek.htw-berlin.de/album/video/Internet-Protocol-IP/dccfad000b93bacfe0d4563f583a42c5/334||shape="rect"]]
119 )))|(((
120 \\
121 )))
122 |(((
123 5
124 )))|(((
125 **Layer 4 (TCP)**
126 )))|(((
127 Wir beschäftigen uns ausschließlich mit TCP. Die übergroße Mehrheit aller Dienste, die aktuell via Internet laufen nutzen TCP. Dieses Protokoll ist tatsächlich die wahre Basis programmiertechnische Basis von all den Diensten die wir //im Netz// heute kennen. Das lässt sich hervorragend programmieren und zwar mit dem Streamkonzept das wir bereits von dem Betriebssystemen kennen.
128 )))|(((
129 [4] 6.4 (UDP) 6.5. (TCP)
130
131 [7]
132
133 [[Mediathek: Layer1-4>>url:https://mediathek.htw-berlin.de/album/video/OSI-Layer-1-4/cfe6541e4a0ecb5092a4ffd650334182/334||shape="rect"]]
134 )))|(((
135 \\
136 )))
137 |(((
138 6
139 )))|(((
140 **Verzeichnisdienste DNS**, LDAP, X.500
141 )))|(((
142 Wir diskutieren den Domain Name Service.
143 )))|(((
144 [4] S. 690ff
145
146 [[https:~~/~~/www.icann.org/>>url:https://www.icann.org/||shape="rect"]]
147 [[https:~~/~~/www.iana.org/>>url:https://www.iana.org/||rel="nofollow" shape="rect" class="external-link"]]
148 [[https:~~/~~/datatracker.ietf.org/doc/html/rfc1035>>url:https://datatracker.ietf.org/doc/html/rfc1035||rel="nofollow" shape="rect" class="external-link"]]
149 [[https:~~/~~/de.wikipedia.org/wiki/Nslookup>>url:https://de.wikipedia.org/wiki/Nslookup||rel="nofollow" shape="rect" class="external-link"]]
150 [[https:~~/~~/www.denic.de/>>url:https://www.denic.de/||rel="nofollow" shape="rect" class="external-link"]]
151 )))|(((
152 \\
153 )))
154 |(((
155 7
156 )))|(((
157 **Betriebssysteme - Einstieg
158 **
159 )))|(((
160 Betriebssysteme - wozu dient alle das und wer hats erfunden. Wir beginnen mit der Keilschrift und hören bei UNIX auf.
161 )))|(((
162 [2] 1.1 - 1.4
163
164 [[Algorithmen und Genies>>url:http://www.sharksystem.net/htw/Prog1/ImperativesProgrammierenVonNeumann.pdf||shape="rect"]]
165
166 [[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/Betriebssysteme-und-Netzwerke-Einstieg-Betriebssysteme/1cc396fd6ac3354b598b93915297a83a/334||shape="rect"]]
167 )))|(((
168 \\
169 )))
170 |(((
171 8
172 )))|(((
173 **Von Programmcode zum laufenden Prozess**
174 )))|(((
175 Ein Programm ist laufender Maschinecode. Den können wir im Prinzip direkt implementieren. Das ist nur enorm zeitaufwendig. Wir können mit Assembler anfangen. Liest sich besser, löst kein Problem. Wir können mit einer //Hochsprache// wie C anfangen. Gute Idee. Wie aber wird aus dem C-Code Maschinencode? Was ist ein Compiler und ein Compiler-Compiler? Was ist eine Shell, wie passt die Java Virtuelle Maschine (JVM) in all das ... und die Frage aller Fragen: was ist die Matrix? (Okay, die Matrix diskutieren wir leider nicht). Wir lernen aber bereits den Scheduler kennen, über den wir später noch einmal wieder treffen werden.
176 )))|(((
177 [2] 1.5.1, 2.1
178
179 [[Assember, Maschinencode, Java und JVM>>url:http://www.sharksystem.net/htw/Prog1/Java.pdf||shape="rect"]]
180
181 [[Mediathek>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Vom-Programmcode-zum-laufenden-Prozess/51827ebfe20ed06ba810758d1b71dbef||shape="rect"]]
182
183 [11] start command
184
185 [12] am Ende der Zeile "&" - launch background process
186 )))|(((
187 (% class="content-wrapper" %)
188 (((
189 Wir implementieren ein Multithreaded Java-Programm.
190
191 {{view-file att--filename="ThreadTemplate.zip" display="thumbnail" height="250"/}}
192
193 [[LN:Threads mit Java>>url:http://www.sharksystem.net/htw/GMA/LN/Threads_Java_Android.pdf||shape="rect"]]
194 )))
195 )))
196 |(((
197 9
198 )))|(((
199 Speichermanagement
200 )))|(((
201 Wir sprechen über Daten, der Speicherung und Verwaltung in einem laufenden Programm. Und endlich wissen wir was dieser legendäre Stackoverflow ist. Und wir werden sehen, dass wir es mit einer Stackmaschine zu tun haben. Und dann verstehen wir auch, warum wir ITler:innen als ersten Index immer die 0 nehmen und nicht die 1 wie diese eigenartigen anderen Menschen...
202 )))|(((
203 [[LN:Funktionsstack>>url:http://www.sharksystem.net/htw/Prog1/MethodenUndStack.pdf||shape="rect"]] , [[LN:Rekursion / Stack und Heap>>url:http://www.sharksystem.net/htw/Prog1/RekursionUndStack.pdf||shape="rect"]], [[LN:eindimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/EindimensionaleArrays.pdf||shape="rect"]], [[LN:mehrdimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/MehrdimensionaleArrays.pdf||shape="rect"]],
204 )))|(((
205 Wir machen einmal Pause von unserem Projekt und implementieren ein simples rekursives Java-Programm das ein mehrdimensionales Array füllt und schauen uns Stack und Speicherstruktur einmal genauer an.
206 )))
207 |(((
208 10
209 )))|(((
210 **Threads + Race Conditions** (Problembeschreibung)
211 )))|(((
212 Betriebssysteme sind schon sehr sehr lange in der Lage mehrere Prozesse (quasi-) parallel auszuführen. Anwendungsentwickler:innen kommen häufiger mit Threads in Kontakt, weshalb wir in den Übungen mit Threads arbeiten. Schnell aber kommt treten //Race Conditions (Wettlaufbedingungen)// auf. Die sind oft gar nicht so schnell zu erkennen. Es gibt einen Grund warum //Multithreading// schon eine Herausforderung ist. Wir beschäftigen uns mit Threads, wie wir die programmieren und welche Probleme dabei entstehen können, bis hin zum Deadlock. Wir erfahren was ein kritischer Abschnitt (//critical section//) ist.
213 )))|(((
214 [[Codebeispiel: Account Example (bad)>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions/accountExample/bad||shape="rect"]]
215
216 \\
217 )))|(((
218 Wir versuchen Threads zu synchronisieren.
219 )))
220 |(((
221 11
222 )))|(((
223 **Synchronisation von Prozessen und Threads**
224 )))|(((
225 Nachdem wir uns mit den Herausforderungen gleichzeitig laufender Kontrollflüsse beschäftigten, kommen wir zu Lösungen. Wir reden über Semaphoren, Signale (technisch Interrupts), Mutex.
226 )))|(((
227 [2] 2.3.1 - 2.3.9, 2.4
228
229 [2] 1.5.2, 3
230
231 [[Codebeispiel: Synchronisation>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions||shape="rect"]]
232 )))|(((
233 Wir diskutieren das Lese-Schreibe-Problem und den schlafenden Friseur, siehe Moodle.
234 )))
235 |(((
236 \\
237 )))|(((
238 Inter Process Communications (IPC): Shared Memory
239
240 (optional)
241 )))|(((
242 Man muss Dinge opfern, wenn man Betriebssysteme UND Netzwerke in einem Modul bearbeitet. Ich ernenne IPC konkret Shared Memory und Pipes zum optionalen Thema. Wir werden aber aber mit TCP-Stream arbeiten und programmieren, was in der Praxis auch deutlich häufiger vorkommt. Sie verstehen also wie man mit Pipes programmiert und arbeitet, müssten sich bei Bedarf aber selber in die konkreten OS-Calls reinlesen.
243 )))|(((
244 [2] 2.3
245
246 \\
247 )))|(((
248 \\
249 )))
250 |(((
251 12.1
252 )))|(((
253 **Scheduling**
254 )))|(((
255 Scheduler. Vielleicht kommen wir soweit und Sie wissen, was sich hinter dem Kommando shell Kommando //nice// auf verbirgt.
256 )))|(((
257 [1] S.151, 158ff
258
259 [2] S.93-99, 150-166
260
261 [[Mediathek>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Scheduling/394e546de01c41a388ac2afc2d9cdd6c||shape="rect"]]
262 )))|(((
263 \\
264 )))
265 |(((
266 12.2
267 )))|(((
268 **Deadlocks**
269 )))|(((
270 Wir reden über verhungernde Philosophen etc.
271 )))|(((
272 [1] S. 192ff, 214, 239, 242ff
273
274 [2] S.181, 186ff
275
276 [[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/deadlocks/a74ffe24a122016f66a28e377b4de5ab/334||shape="rect"]]
277 )))|(((
278 \\
279 )))
280 |(((
281 \\
282 )))|(((
283 Dateinsysteme, Speicherverwaltung / Paging / Caching
284 )))|(((
285 spannend, aber optional
286 )))|(((
287 [2] 6
288 )))|(((
289 \\
290 )))
291 |(((
292 \\
293 )))|(((
294 Virtualisierung
295 )))|(((
296 optional
297 )))|(((
298 \\
299 )))|(((
300 \\
301 )))
302 |(((
303 13
304 )))|(((
305 E-Mail**
306 **
307 )))|(((
308 Wir schauen uns SMTP und ein wenig POP und IMAP an. Wir werfen aber vor allem auch einen Blick in das Format einer Mail; in dem Kontext entstand nämlich MIME was man dann auch in HTTP nutzte.**
309 **
310 )))|(((
311 [[~[8~]>>url:http://www.sharksystem.net/paper/diplom_schwotzer.pdf||shape="rect"]] 2.2 (POP und IMAP)
312
313 [4] S.708ff
314
315 [[https:~~/~~/www.rfc-editor.org/rfc/rfc5322>>url:https://www.rfc-editor.org/rfc/rfc5322#page-8||shape="rect"]]
316 [[https:~~/~~/www.rfc-editor.org/rfc/rfc5321.html>>url:https://www.rfc-editor.org/rfc/rfc5321.html#page-10||shape="rect"]]
317 )))|(((
318 \\
319 )))
320 |(((
321 \\
322 )))|(((
323 Einige Protokolle und Formate
324 )))|(((
325 HTTP, MQTT.
326 )))|(((
327 \\
328 )))|(((
329 \\
330 )))
331 |(((
332 \\
333 )))|(((
334 Architekturen
335 )))|(((
336 monolithisch, zentralisiert, verteilt, wenigstens 3 Arten von P2P, Agenten.
337
338 Wir müssen einmal über DDoS Attacken reden.
339 )))|(((
340 [2]: 1.7
341
342 [[~[9~]>>url:http://www.sharksystem.net/paper/Dissertationsschrift_Thomas_Schwotzer.pdf||shape="rect"]]: 2.3 (Agenten)
343
344 [[Mediathek:Distributed Systems>>url:https://mediathek.htw-berlin.de/album/video/Verteilte-Anwendungsmuster-P2P-Client-Server-Agenten-SharkASAP/db6b10a1014fbda7eeb9b49eadead34b/329||shape="rect"]]
345 )))|(((
346 \\
347 )))
348 |(((
349 13
350 )))|(((
351 //Grundlagen der Verschlüsselung//
352
353 //(Bereits im Kurs davor..)//
354 )))|(((
355 TODO: Wir sollten die Verschlüsselung einmal praktisch üben....
356
357 //Wir sprechen über symmetrische, asymmetrische Verschlüsselung. Wir gehen nicht auf die mathematischen Grundlagen ein (oder vielleicht doch, wenn Sie unbedingt wollen). Asymmetrische Schlüssel sind die Basis von Public Key Infrastrukturen (PKI) und damit Zertifikaten. Das wird uns beschäftigen.//
358 )))|(((
359 [2] 9.2
360
361 [[Mediathek: Schlüsselverfahren PKI und Zertifikate>>url:https://mediathek.htw-berlin.de/album/video/SEPrinzipienKryptografie/20ac30ae9d0301ebc1e5c66b9c33bf18/253||shape="rect"]]
362 )))|(((
363 \\
364 )))
365 |(((
366 \\
367 )))|(((
368 Virtuelle (private) Netze, TOR
369 )))|(((
370 optional
371 )))|(((
372 \\
373 )))|(((
374 \\
375 )))
376
377 == {{id name="B23BetriebssystemeundNetzwerke-Literatur"/}}Literatur ==
378
379 [1] Eduard Glatz: //Betriebssysteme//, dpunkt Verlag
380
381 [2] Andrew S. Tanenbaum: //Moderne Betriebssysteme (2. aktualisierte Auflage)//, Prentice Hall (2002)
382
383 [3] Rüdiger Schreiner: //Computer-Netzwerke (7. Auflage)//, Hanser Verlag
384
385 [4] Andrew S. Tanenbaum, David J. Wetherall: //Computernetzwerke (5. aktualisierte Auflage)//, Pearson (2012) - deutlich genauer als [3]
386
387 [5] John Postel (editor): [[//RFC 791: Internet Protocol//>>url:https://datatracker.ietf.org/doc/html/rfc791||shape="rect"]]  (1981)
388
389 [6] [[Paul Baran>>url:https://de.wikipedia.org/wiki/Paul_Baran||shape="rect"]]//: //[[//On Distributed Communications (I. Introduction..)//>>url:https://www.rand.org/content/dam/rand/pubs/research_memoranda/2006/RM3420.pdf||shape="rect"]]  (1964)
390
391 [7] John Postel (editor): [[//RFC 793: Transmission//>>url:https://datatracker.ietf.org/doc/html/rfc791||shape="rect"]][[ Control Protocol>>url:https://datatracker.ietf.org/doc/html/rfc793||shape="rect"]]  (1981)
392
393 [8] Thomas Schwotzer: //[[Entfernter Postzugriff auf RPC-Basis>>url:http://www.sharksystem.net/paper/diplom_schwotzer.pdf||shape="rect"]] (Diplomarbeit, TU Chemnitz-Zwickau)// (1994)
394
395 [9] Thomas Schwotzer: //[[E>>url:http://www.sharksystem.net/paper/diplom_schwotzer.pdf||shape="rect"]][[in Peer-to-Peer Knowledge Management System...>>url:http://www.sharksystem.net/paper/Dissertationsschrift_Thomas_Schwotzer.pdf||shape="rect"]] (Doktorarbeit, TU Berlin)// (2006)
396
397 [10] David C. Plummer: [[//RFC 826: //An Ethernet Address Resolution Protocol>>url:https://datatracker.ietf.org/doc/html/rfc826||shape="rect"]]  (1982)
398
399 [11] [[Windows command shell reference>>url:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands||shape="rect"]]
400
401 [12] [[Bash build-in command>>url:https://manpages.ubuntu.com/manpages/trusty/man1/bash.1.html#shell%20builtin%20commands||shape="rect"]]
402
403 [13] [[ISO: Open Systems Interconnection (OSI)>>url:https://www.iso.org/ics/35.100/x/||shape="rect"]]
404
405 == {{id name="B23BetriebssystemeundNetzwerke-weiterführende(s)Literatur/Material"/}}weiterführende(s) Literatur / Material ==
406
407 * Georg Dyson: //Turings Kathedrale//, Ullstein Verlag (verborge ich auch)
408 * [[Tron (der Film)>>url:https://de.wikipedia.org/wiki/Tron_%28Film%29||shape="rect"]]
409 * [[Edward Snowden>>url:https://de.wikipedia.org/wiki/Edward_Snowden||shape="rect"]]
410 * [[Das Dilemma der sozialen Medien>>url:https://de.wikipedia.org/wiki/Das_Dilemma_mit_den_sozialen_Medien||shape="rect"]]
411
412 == {{id name="B23BetriebssystemeundNetzwerke-KlausurenvonVorsemestern"/}}Klausuren von Vorsemestern ==
413
414 \\
415
416 {{view-file att--filename="BS_NW_22_1.pdf" display="thumbnail" height="250"/}}{{view-file att--filename="BS_NW_22_2.pdf" display="thumbnail" height="250"/}}{{view-file att--filename="BS_NW_22_23_1.pdf" display="thumbnail" height="250"/}}
417
418 {{view-file att--filename="BS_NW_23_1.pdf" display="thumbnail" height="250"/}}
419
420 {{view-file att--filename="BS_NW_24_1.pdf" display="thumbnail" height="250"/}}
421
422 \\
423
424 \\
425
426 \\
427
428 \\
429
430 \\
431
432 \\
433
434 \\
435
436 \\
437
438 \\