Offset 1, 9 lines modified | Offset 1, 9 lines modified |
1 | <?xml·version="1.0"·encoding="iso-8859-1"?> | 1 | <?xml·version="1.0"·encoding="iso-8859-1"?> |
2 | <!DOCTYPE·html·PUBLIC·"-//W3C//DTD·XHTML·1.0·Transitional//EN"·"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html·xmlns="http://www.w3.org/1999/xhtml"><head><meta·http-equiv="Content-Type"·content="text/html;·charset=iso-8859-1"·/><title>FreeBSD·Developers'·Handbook</title><link·rel="stylesheet"·type="text/css"·href="docbook.css"·/><link·rev="made"·href="mailto:doc@FreeBSD.org"·/><meta·name="generator"·content="DocBook·XSL·Stylesheets·V1.78.1"·/><meta·name="description"·content="Willkommen·zum·Entwickler-Handbuch.·Dieses·Handbuch·ist·jederzeit·unter·Bearbeitung·und·das·Ergebnis·der·Arbeit·vieler·Einzelpersonen.·Dies·kann·dazu·führen,·dass·bestimmte·Bereiche·nicht·mehr·aktuell·sind·und·auf·den·neuesten·Stand·gebracht·werden·müssen.·Bei·Unklarheiten·empfiehlt·es·sich·daher·stets,·auch·die·englische·Originalversion·des·Handbuchs·zu·lesen.·Wenn·Sie·bei·der·Übersetzung·dieses·Handbuchs·mithelfen·möchten,·senden·Sie·bitte·eine·E-Mail·an·die·Mailingliste·'FreeBSD·German·Documentation·Project'·de-bsd-tra·✂ | 2 | <!DOCTYPE·html·PUBLIC·"-//W3C//DTD·XHTML·1.0·Transitional//EN"·"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html·xmlns="http://www.w3.org/1999/xhtml"><head><meta·http-equiv="Content-Type"·content="text/html;·charset=iso-8859-1"·/><title>FreeBSD·Developers'·Handbook</title><link·rel="stylesheet"·type="text/css"·href="docbook.css"·/><link·rev="made"·href="mailto:doc@FreeBSD.org"·/><meta·name="generator"·content="DocBook·XSL·Stylesheets·V1.78.1"·/><meta·name="description"·content="Willkommen·zum·Entwickler-Handbuch.·Dieses·Handbuch·ist·jederzeit·unter·Bearbeitung·und·das·Ergebnis·der·Arbeit·vieler·Einzelpersonen.·Dies·kann·dazu·führen,·dass·bestimmte·Bereiche·nicht·mehr·aktuell·sind·und·auf·den·neuesten·Stand·gebracht·werden·müssen.·Bei·Unklarheiten·empfiehlt·es·sich·daher·stets,·auch·die·englische·Originalversion·des·Handbuchs·zu·lesen.·Wenn·Sie·bei·der·Übersetzung·dieses·Handbuchs·mithelfen·möchten,·senden·Sie·bitte·eine·E-Mail·an·die·Mailingliste·'FreeBSD·German·Documentation·Project'·de-bsd-tra·✂ |
3 | ····forms·(SGML,·HTML,·PDF,·PostScript,·RTF·and·so·forth)·with·or·without | 3 | ····forms·(SGML,·HTML,·PDF,·PostScript,·RTF·and·so·forth)·with·or·without |
4 | ····modification,·are·permitted·provided·that·the·following·conditions·are | 4 | ····modification,·are·permitted·provided·that·the·following·conditions·are |
5 | ····met:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Redistributions·of·source·code·(SGML·DocBook)·must·retain·the | 5 | ····met:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Redistributions·of·source·code·(SGML·DocBook)·must·retain·the |
6 | ········above·copyright·notice,·this·list·of·conditions·and·the·following | 6 | ········above·copyright·notice,·this·list·of·conditions·and·the·following |
7 | ········disclaimer·as·the·first·lines·of·this·file·unmodified.</p></li><li·class="listitem"><p>Redistributions·in·compiled·form·(transformed·to·other·DTDs, | 7 | ········disclaimer·as·the·first·lines·of·this·file·unmodified.</p></li><li·class="listitem"><p>Redistributions·in·compiled·form·(transformed·to·other·DTDs, |
8 | ········converted·to·PDF,·PostScript,·RTF·and·other·formats)·must | 8 | ········converted·to·PDF,·PostScript,·RTF·and·other·formats)·must |
9 | ········reproduce·the·above·copyright·notice,·this·list·of·conditions·and | 9 | ········reproduce·the·above·copyright·notice,·this·list·of·conditions·and |
Offset 78, 15 lines modified | Offset 78, 15 lines modified |
78 | ······Support·(NLS)</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#policies">5.·Vorgaben·und·Richtlinien·für·das | 78 | ······Support·(NLS)</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#policies">5.·Vorgaben·und·Richtlinien·für·das |
79 | ····Quelltextverzeichnis</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href="#policies-encumbered">5.4.·Belastende·Dateien</a></span></dt><dt><span·class="sect1"><a·href="#policies-shlib">5.5.·Shared-Libraries</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#testing">6.·Regressions-·und·Performance-Tests</a></span></dt><dd><dl><dt><span·class="section"><a·href="#testing-micro-benchmark">6.1.·Mikro-Benchmark-Checkliste</a></span></dt></dl></dd></dl></dd><dt><span·class="part"><a·href="#ipc">II.·Interprozess-Kommunikation</a></span></dt><dd><dl><dt><span·class="chapter"><a·href="#sockets">7.·Sockets</a></span></dt><dt><span·class="chapter"><a·href="#ipv6">8.·IPv6·Internals</a></span><·✂ | 79 | ····Quelltextverzeichnis</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href="#policies-encumbered">5.4.·Belastende·Dateien</a></span></dt><dt><span·class="sect1"><a·href="#policies-shlib">5.5.·Shared-Libraries</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#testing">6.·Regressions-·und·Performance-Tests</a></span></dt><dd><dl><dt><span·class="section"><a·href="#testing-micro-benchmark">6.1.·Mikro-Benchmark-Checkliste</a></span></dt></dl></dd></dl></dd><dt><span·class="part"><a·href="#ipc">II.·Interprozess-Kommunikation</a></span></dt><dd><dl><dt><span·class="chapter"><a·href="#sockets">7.·Sockets</a></span></dt><dt><span·class="chapter"><a·href="#ipv6">8.·IPv6·Internals</a></span><·✂ |
80 | ······Weise·bauen</a></span></dt><dt><span·class="sect1"><a·href="#kernelbuild-new">9.2.·Einen·Kernel·auf·die·<span·class="quote">„<span·class="quote">neue</span>“</span>·Art·und·Weise | 80 | ······Weise·bauen</a></span></dt><dt><span·class="sect1"><a·href="#kernelbuild-new">9.2.·Einen·Kernel·auf·die·<span·class="quote">„<span·class="quote">neue</span>“</span>·Art·und·Weise |
81 | ······bauen</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#kerneldebug">10.·Kernel-Fehlersuche</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#kerneldebug-obtain">10.1.·Besorgen·eines·Speicherauszugs·nach·einem | 81 | ······bauen</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#kerneldebug">10.·Kernel-Fehlersuche</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#kerneldebug-obtain">10.1.·Besorgen·eines·Speicherauszugs·nach·einem |
82 | ······Kernel-Absturz·(Kernel-Crash-Dump)</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-gdb">10.2.·Fehlersuche·in·einem·Speicherauszug·nach·einem | 82 | ······Kernel-Absturz·(Kernel-Crash-Dump)</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-gdb">10.2.·Fehlersuche·in·einem·Speicherauszug·nach·einem |
83 | ······Kernel-Absturz·mit·<code·class="command">kgdb</code></a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-ddd">10.3.·Fehlersuche·in·einem·Speicherauszug·nach·einem·Absturz·mit | 83 | ······Kernel-Absturz·mit·<code·class="command">kgdb</code></a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-ddd">10.3.·Fehlersuche·in·einem·Speicherauszug·nach·einem·Absturz·mit |
84 | ······DDD</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-online-ddb">10.4.·Online-Kernel-Fehlersuche·mit·DDB</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-online-gdb">10.5.·Online-Kernel-Fehlersuche·mit·GDB·auf·einem·entfernten | 84 | ······DDD</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-online-ddb">10.4.·Online-Kernel-Fehlersuche·mit·DDB</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-online-gdb">10.5.·Online-Kernel-Fehlersuche·mit·GDB·auf·einem·entfernten |
85 | ······System</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-console">10.6.·Fehlersuche·bei·einem·Konsolen-Treiber</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-deadlocks">10.7.·Fehlersuche·bei·Deadlocks</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-options">10.8.·Glossar·der·Kernel-Optionen·zur·Fehlersuche</a></span></dt></dl></dd></dl></dd><dt><span·class="part"><a·href="#architectures">IV.·Architekturen</a></span></dt><dd><dl><dt><span·class="chapter"><a·href="#x86">11.·x86-Assembler-Programmierung</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#x86-intro">11.1.·Synopsis</a></span></dt><dt><span·class="sect1"><a·href="#x86-the-tools">11.2.·Die·Werkzeuge</a></span></dt><dt><span·class="sect1"><a·href="#x86-system-calls">11.3.·Systemaufrufe</a></span></dt><dt><span·class="sect1"><a·href="#x86-return-values">11.4.·Rückgabewerte</a></span></dt><dt><span·class="sect1"><a·href="#x86-portable-code">11.5.·Portablen·Code·erzeugen</a></span></dt><dt><span·class="se·✂ | 85 | ······System</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-console">10.6.·Fehlersuche·bei·einem·Konsolen-Treiber</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-deadlocks">10.7.·Fehlersuche·bei·Deadlocks</a></span></dt><dt><span·class="sect1"><a·href="#kerneldebug-options">10.8.·Glossar·der·Kernel-Optionen·zur·Fehlersuche</a></span></dt></dl></dd></dl></dd><dt><span·class="part"><a·href="#architectures">IV.·Architekturen</a></span></dt><dd><dl><dt><span·class="chapter"><a·href="#x86">11.·x86-Assembler-Programmierung</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#x86-intro">11.1.·Synopsis</a></span></dt><dt><span·class="sect1"><a·href="#x86-the-tools">11.2.·Die·Werkzeuge</a></span></dt><dt><span·class="sect1"><a·href="#x86-system-calls">11.3.·Systemaufrufe</a></span></dt><dt><span·class="sect1"><a·href="#x86-return-values">11.4.·Rückgabewerte</a></span></dt><dt><span·class="sect1"><a·href="#x86-portable-code">11.5.·Portablen·Code·erzeugen</a></span></dt><dt><span·class="se·✂ |
86 | ······<code·class="filename">/usr/src</code></a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#tools">2.·Werkzeuge·zur·Programmierung</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#tools-synopsis">2.1.·Überblick</a></span></dt><dt><span·class="sect1"><a·href="#tools-intro">2.2.·Zusammenfassung</a></span></dt><dt><span·class="sect1"><a·href="#tools-programming">2.3.·Einführung·in·die·Programmierung</a></span></dt><dt><span·class="sect1"><a·href="#tools-compiling">2.4.·Kompilieren·mit·dem·<code·class="command">cc</code></a></span></dt><dt><span·class="sect1"><a·href="#tools-make">2.5.·Make</a></span></dt><dt><span·class="sect1"><a·href="#debugging">2.6.·Debuggen</a></span></dt><dt><span·class="sect1"><a·href="#emacs">2.7.·Emacs·als·Entwicklungsumgebung·verwenden</a></span></dt><dt><span·class="sect1"><a·href="#tools-reading">2.8.·Weiterführende·Literatur</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#secure">3.·Sicheres·Programmieren</a></span></dt><dd><dl><dt><span·class="sec·✂ | 86 | ······<code·class="filename">/usr/src</code></a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#tools">2.·Werkzeuge·zur·Programmierung</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#tools-synopsis">2.1.·Überblick</a></span></dt><dt><span·class="sect1"><a·href="#tools-intro">2.2.·Zusammenfassung</a></span></dt><dt><span·class="sect1"><a·href="#tools-programming">2.3.·Einführung·in·die·Programmierung</a></span></dt><dt><span·class="sect1"><a·href="#tools-compiling">2.4.·Kompilieren·mit·dem·<code·class="command">cc</code></a></span></dt><dt><span·class="sect1"><a·href="#tools-make">2.5.·Make</a></span></dt><dt><span·class="sect1"><a·href="#debugging">2.6.·Debuggen</a></span></dt><dt><span·class="sect1"><a·href="#emacs">2.7.·Emacs·als·Entwicklungsumgebung·verwenden</a></span></dt><dt><span·class="sect1"><a·href="#tools-reading">2.8.·Weiterführende·Literatur</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#secure">3.·Sicheres·Programmieren</a></span></dt><dd><dl><dt><span·class="sec·✂ |
87 | ····I18N</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#l10n-programming">4.1.·I18N-konforme·Anwendungen·programmieren</a></span></dt><dt><span·class="sect1"><a·href="#posix-nls">4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language | 87 | ····I18N</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#l10n-programming">4.1.·I18N-konforme·Anwendungen·programmieren</a></span></dt><dt><span·class="sect1"><a·href="#posix-nls">4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language |
88 | ······Support·(NLS)</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#policies">5.·Vorgaben·und·Richtlinien·für·das | 88 | ······Support·(NLS)</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#policies">5.·Vorgaben·und·Richtlinien·für·das |
89 | ····Quelltextverzeichnis</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href="#policies-encumbered">5.4.·Belastende·Dateien</a></span></dt><dt><span·class="sect1"><a·href="#policies-shlib">5.5.·Shared-Libraries</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#testing">6.·Regressions-·und·Performance-Tests</a></span></dt><dd><dl><dt><span·class="section"><a·href="#testing-micro-benchmark">6.1.·Mikro-Benchmark-Checkliste</a></span></dt></dl></dd></dl></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="introduction"></a>Kapitel·1.·Einführung</h2></div><div><span·class="authorgroup">Beigetragen·von·<span·xmlns·✂ | 89 | ····Quelltextverzeichnis</a></span></dt><dd><dl><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href="#policies-encumbered">5.4.·Belastende·Dateien</a></span></dt><dt><span·class="sect1"><a·href="#policies-shlib">5.5.·Shared-Libraries</a></span></dt></dl></dd><dt><span·class="chapter"><a·href="#testing">6.·Regressions-·und·Performance-Tests</a></span></dt><dd><dl><dt><span·class="section"><a·href="#testing-micro-benchmark">6.1.·Mikro-Benchmark-Checkliste</a></span></dt></dl></dd></dl></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="introduction"></a>Kapitel·1.·Einführung</h2></div><div><span·class="authorgroup">Beigetragen·von·<span·xmlns·✂ |
90 | ······<code·class="filename">/usr/src</code></a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="introduction-devel"></a>1.1.·Unter·FreeBSD·entwickeln</h2></div></div></div><p>Hier·sind·wir·also.·Ihr·System·ist·vollständig | 90 | ······<code·class="filename">/usr/src</code></a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="introduction-devel"></a>1.1.·Unter·FreeBSD·entwickeln</h2></div></div></div><p>Hier·sind·wir·also.·Ihr·System·ist·vollständig |
91 | ······installiert·und·Sie·wollen·mit·dem·Programmieren·beginnen. | 91 | ······installiert·und·Sie·wollen·mit·dem·Programmieren·beginnen. |
92 | ······Aber·womit·sollen·Sie·anfangen?·Was·bietet·Ihnen·FreeBSD? | 92 | ······Aber·womit·sollen·Sie·anfangen?·Was·bietet·Ihnen·FreeBSD? |
Offset 172, 15 lines modified | Offset 172, 15 lines modified |
172 | ······wesentlichen·Methoden·diese·Anweisungen·oder | 172 | ······wesentlichen·Methoden·diese·Anweisungen·oder |
173 | ······<span·class="quote">„<span·class="quote">Befehle</span>“</span>,·wie·man·diese·Anweisungen | 173 | ······<span·class="quote">„<span·class="quote">Befehle</span>“</span>,·wie·man·diese·Anweisungen |
174 | ······üblicherweise·nennt,·zu·geben.·Die·eine·Methode·nutzt·einen | 174 | ······üblicherweise·nennt,·zu·geben.·Die·eine·Methode·nutzt·einen |
175 | ······<em·class="firstterm">Interpreter</em>,·die·andere·einen | 175 | ······<em·class="firstterm">Interpreter</em>,·die·andere·einen |
176 | ······<em·class="firstterm">Compiler</em>.·Da·menschliche·Sprachen | 176 | ······<em·class="firstterm">Compiler</em>.·Da·menschliche·Sprachen |
177 | ······für·einen·Computer·nicht·unmissverständlich·sind, | 177 | ······für·einen·Computer·nicht·unmissverständlich·sind, |
178 | ······werden·diese·Befehle·in·einer·Sprache·geschrieben·die·speziell | 178 | ······werden·diese·Befehle·in·einer·Sprache·geschrieben·die·speziell |
179 | ······für·diesen·Zweck·gedacht·ist.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59546552"></a>2.3.1.·Interpreter</h3></div></div></div><p>Mit·einem·Interpreter·ist·die·Sprache·vielmehr·eine | 179 | ······für·diesen·Zweck·gedacht·ist.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59602744"></a>2.3.1.·Interpreter</h3></div></div></div><p>Mit·einem·Interpreter·ist·die·Sprache·vielmehr·eine |
180 | » Umgebung,·in·der·Sie·ein·Kommando·an·der·Kommandozeile | 180 | » Umgebung,·in·der·Sie·ein·Kommando·an·der·Kommandozeile |
181 | » eingeben·welches·dann·von·der·Umgebung·ausgeführt·wird. | 181 | » eingeben·welches·dann·von·der·Umgebung·ausgeführt·wird. |
182 | » Für·kompliziertere·Programme·können·Sie·die·Befehle | 182 | » Für·kompliziertere·Programme·können·Sie·die·Befehle |
183 | » in·eine·Datei·schreiben·und·den·Interpreter·dazu·bringen·diese | 183 | » in·eine·Datei·schreiben·und·den·Interpreter·dazu·bringen·diese |
184 | » Datei·zu·laden·und·die·enthaltenen·Befehle·auszuführen. | 184 | » Datei·zu·laden·und·die·enthaltenen·Befehle·auszuführen. |
185 | » Falls·etwas·schief·geht·werden·viele·Interpreter·Sie·an·einen | 185 | » Falls·etwas·schief·geht·werden·viele·Interpreter·Sie·an·einen |
186 | » Debugger·weiterleiten.</p><p>Der·Vorteil·hierbei·ist,·das·Sie·das·Ergebnis·ihres | 186 | » Debugger·weiterleiten.</p><p>Der·Vorteil·hierbei·ist,·das·Sie·das·Ergebnis·ihres |
Offset 203, 15 lines modified | Offset 203, 15 lines modified |
203 | » Interpreter·darstellt·und·viele·Leute·schreiben | 203 | » Interpreter·darstellt·und·viele·Leute·schreiben |
204 | » tatsächlich·Shell·<span·class="quote">„<span·class="quote">Scripten</span>“</span>·um·sich·bei | 204 | » tatsächlich·Shell·<span·class="quote">„<span·class="quote">Scripten</span>“</span>·um·sich·bei |
205 | » einigen·<span·class="quote">„<span·class="quote">Haushaltsaufgaben</span>“</span>·auf·ihren·Maschinen | 205 | » einigen·<span·class="quote">„<span·class="quote">Haushaltsaufgaben</span>“</span>·auf·ihren·Maschinen |
206 | » helfen·zu·lassen.·Tatsächlich·war·es·ein·wesentlicher | 206 | » helfen·zu·lassen.·Tatsächlich·war·es·ein·wesentlicher |
207 | » Teil·der·originalen·<span·class="trademark">UNIX</span>®·Philosophie·eine·große·Zahl | 207 | » Teil·der·originalen·<span·class="trademark">UNIX</span>®·Philosophie·eine·große·Zahl |
208 | » an·kleinen·Hilfsprogrammen·zur·Verfügung·zu·stellen, | 208 | » an·kleinen·Hilfsprogrammen·zur·Verfügung·zu·stellen, |
209 | » welche·mittels·eines·Shellskripts·miteinander·kombiniert·werden | 209 | » welche·mittels·eines·Shellskripts·miteinander·kombiniert·werden |
210 | » um·bestimmte·Aufgaben·zu·übernehmen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59575224"></a>2.3.2.·Für·FreeBSD·verfügbare·Interpreter</h3></div></div></div><p>Im·folgenden·eine·Liste·der·über·die·FreeBSD | 210 | » um·bestimmte·Aufgaben·zu·übernehmen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59614904"></a>2.3.2.·Für·FreeBSD·verfügbare·Interpreter</h3></div></div></div><p>Im·folgenden·eine·Liste·der·über·die·FreeBSD |
211 | » Ports-Sammlung·verfügbaren·Interpreter | 211 | » Ports-Sammlung·verfügbaren·Interpreter |
212 | » einschließlich·einer·kurzen·Erörterung·der | 212 | » einschließlich·einer·kurzen·Erörterung·der |
213 | » populären·interpretierten·Sprachen.</p><p>Anleitungen·wie·man·Anwendungen·aus·der·Ports-Sammlung | 213 | » populären·interpretierten·Sprachen.</p><p>Anleitungen·wie·man·Anwendungen·aus·der·Ports-Sammlung |
214 | » erhält·und·installiert·können·Sie·dem·Kapitel·<a·class="link"·href="../../../../doc/de_DE.ISO8859-1/books/handbook/ports-using.html"·target="_top">Benutzen·der | 214 | » erhält·und·installiert·können·Sie·dem·Kapitel·<a·class="link"·href="../../../../doc/de_DE.ISO8859-1/books/handbook/ports-using.html"·target="_top">Benutzen·der |
215 | » Ports-Sammlung</a>·aus·dem·FreeBSD·Handbuch | 215 | » Ports-Sammlung</a>·aus·dem·FreeBSD·Handbuch |
216 | » entnehmen.</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term"><acronym·class="acronym">BASIC</acronym></span></dt><dd><p>Kurz·für·Beginner's·All-purpose·Symbolic | 216 | » entnehmen.</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term"><acronym·class="acronym">BASIC</acronym></span></dt><dd><p>Kurz·für·Beginner's·All-purpose·Symbolic |
217 | » ······Instruction·Code.·Entwickelt·in·den·50er·Jahren·um | 217 | » ······Instruction·Code.·Entwickelt·in·den·50er·Jahren·um |
Offset 290, 26 lines modified | Offset 290, 26 lines modified |
290 | » ······auf·viele·unterschiedliche·Plattformen·eine·weite | 290 | » ······auf·viele·unterschiedliche·Plattformen·eine·weite |
291 | » ······Verbreitung·erfahren·hat.·Sie·kann·sowohl·für·die | 291 | » ······Verbreitung·erfahren·hat.·Sie·kann·sowohl·für·die |
292 | » ······schnelle·Entwicklung·kleinerer·Prototypen,·als·auch·(in | 292 | » ······schnelle·Entwicklung·kleinerer·Prototypen,·als·auch·(in |
293 | » ······Verbindung·mit·Tk,·einem·GUI·Toolkit)·vollwertiger, | 293 | » ······Verbindung·mit·Tk,·einem·GUI·Toolkit)·vollwertiger, |
294 | » ······ausgereifter·Programme·verwendet·werden.</p><p>Es·sind·mehrere·Versionen·von·Tcl·als·Ports | 294 | » ······ausgereifter·Programme·verwendet·werden.</p><p>Es·sind·mehrere·Versionen·von·Tcl·als·Ports |
295 | » ······für·FreeBSD·verfügbar.·Die·aktuellste·Version, | 295 | » ······für·FreeBSD·verfügbar.·Die·aktuellste·Version, |
296 | » ······Tcl·8.5,·ist·unter·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/lang/tcl85/pkg-descr">lang/tcl85</a> | 296 | » ······Tcl·8.5,·ist·unter·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/lang/tcl85/pkg-descr">lang/tcl85</a> |
297 | » ······verfügbar.</p></dd></dl></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59669432"></a>2.3.3.·Compiler</h3></div></div></div><p>Compiler·sind·eher·anders.·Zuerst·schreibt·man·seinen | 297 | » ······verfügbar.</p></dd></dl></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59725624"></a>2.3.3.·Compiler</h3></div></div></div><p>Compiler·sind·eher·anders.·Zuerst·schreibt·man·seinen |
298 | » Code·unter·Verwendung·eines·Editors·in·eine·Datei·(oder | 298 | » Code·unter·Verwendung·eines·Editors·in·eine·Datei·(oder |
299 | » mehrere·Dateien).·Anschließend·ruft·man·den·Compiler·auf | 299 | » mehrere·Dateien).·Anschließend·ruft·man·den·Compiler·auf |
300 | » um·zu·sehen,·ob·dieser·das·Programm·annimmt.·Wenn·das·Programm | 300 | » um·zu·sehen,·ob·dieser·das·Programm·annimmt.·Wenn·das·Programm |
301 | » nicht·kompiliert·werden·konnte,·muß·man·die·Zähne | 301 | » nicht·kompiliert·werden·konnte,·muß·man·die·Zähne |
302 | » zusammenbeissen·und·wieder·zum·Editor·zurückkehren;·falls | 302 | » zusammenbeissen·und·wieder·zum·Editor·zurückkehren;·falls |
303 | » das·Programm·kompiliert·und·eine·ausführbare·Anwendung | 303 | » das·Programm·kompiliert·und·eine·ausführbare·Anwendung |
304 | » erzeugt·wurde,·kann·man·diese·über·eine | 304 | » erzeugt·wurde,·kann·man·diese·über·eine |
305 | » Eingabeaufforderung·oder·über·einen·Debugger·aufrufen·um | 305 | » Eingabeaufforderung·oder·über·einen·Debugger·aufrufen·um |
306 | » zu·sehen,·ob·sie·auch·funktioniert. | 306 | » zu·sehen,·ob·sie·auch·funktioniert. |
| |
307 | » <a·href="#ftn.idp59671480"·class="footnote"·id="idp59671480"><sup·class="footnote">[1]</sup></a> | 307 | » <a·href="#ftn.idp59739960"·class="footnote"·id="idp59739960"><sup·class="footnote">[1]</sup></a> |
308 | ······</p><p>Offensichtlich·ist·diese·Art·der·Programmierung·nicht | 308 | ······</p><p>Offensichtlich·ist·diese·Art·der·Programmierung·nicht |
309 | » so·direkt·wie·die·Verwendung·eines·Interpreters.·Jedoch·sind | 309 | » so·direkt·wie·die·Verwendung·eines·Interpreters.·Jedoch·sind |
310 | » auf·diese·Weise·viele·Dinge·möglich,·die·mit·einem | 310 | » auf·diese·Weise·viele·Dinge·möglich,·die·mit·einem |
311 | » Interpreter·nur·sehr·schwer·oder·überhaupt·nicht | 311 | » Interpreter·nur·sehr·schwer·oder·überhaupt·nicht |
312 | » realisierbar·wären,·wie·z.B.·das·Schreiben·von·Code,·der | 312 | » realisierbar·wären,·wie·z.B.·das·Schreiben·von·Code,·der |
313 | » sehr·eng·mit·dem·Betriebsystem·zusammen·arbeitet—oder | 313 | » sehr·eng·mit·dem·Betriebsystem·zusammen·arbeitet—oder |
314 | » das·Schreiben·eines·eigenen·Betriebsystems·selbst!·Des | 314 | » das·Schreiben·eines·eigenen·Betriebsystems·selbst!·Des |
Offset 356, 15 lines modified | Offset 356, 15 lines modified |
356 | » ··die·Einhaltung·der·Sprachregeln·sicherzustellen.·Wenn·Sie | 356 | » ··die·Einhaltung·der·Sprachregeln·sicherzustellen.·Wenn·Sie |
357 | » ··diese·verletzt·haben·werden·entsprechende·Fehlermeldungen | 357 | » ··diese·verletzt·haben·werden·entsprechende·Fehlermeldungen |
358 | » ··Ihnen·dies·mitteilen!</p></li><li·class="step"><p>Übersetzen·des·Quelltextes·in·Assemblersprache | 358 | » ··Ihnen·dies·mitteilen!</p></li><li·class="step"><p>Übersetzen·des·Quelltextes·in·Assemblersprache |
359 | » ··—diese·ist·dem·eigentlichen·Maschinencode·schon·sehr | 359 | » ··—diese·ist·dem·eigentlichen·Maschinencode·schon·sehr |
360 | » ··nahe,·jedoch·immer·noch·für·Menschen·lesbar. | 360 | » ··nahe,·jedoch·immer·noch·für·Menschen·lesbar. |
361 | » ··Angeblich. | 361 | » ··Angeblich. |
| |
362 | » ··<a·href="#ftn.idp59713720"·class="footnote"·id="idp59713720"><sup·class="footnote">[2]</sup></a> | 362 | » ··<a·href="#ftn.idp59766328"·class="footnote"·id="idp59766328"><sup·class="footnote">[2]</sup></a> |
363 | » </p></li><li·class="step"><p>Übersetzen·der·Assemblersprache·in | 363 | » </p></li><li·class="step"><p>Übersetzen·der·Assemblersprache·in |
364 | » ··Maschinencode—genau,·wir·sprechen·hier·von·Bits·und | 364 | » ··Maschinencode—genau,·wir·sprechen·hier·von·Bits·und |
365 | » ··Bytes,·Einsen·und·Nullen.</p></li><li·class="step"><p>Überprüfen,·ob·Sie·Dinge·wie·Funktionen·und | 365 | » ··Bytes,·Einsen·und·Nullen.</p></li><li·class="step"><p>Überprüfen,·ob·Sie·Dinge·wie·Funktionen·und |
366 | » ··globale·Variablen·in·einheitlicher·Weise·verwendet·haben. | 366 | » ··globale·Variablen·in·einheitlicher·Weise·verwendet·haben. |
367 | » ··Wenn·Sie·z.B.·eine·nicht·existierende·Funktion·aufgerufen | 367 | » ··Wenn·Sie·z.B.·eine·nicht·existierende·Funktion·aufgerufen |
368 | » ··haben,·wird·eine·entsprechende·Fehlermeldung·Ihnen·dies | 368 | » ··haben,·wird·eine·entsprechende·Fehlermeldung·Ihnen·dies |
369 | » ··mitteilen.</p></li><li·class="step"><p>Wenn·aus·mehreren·Quelltextdateien·eine | 369 | » ··mitteilen.</p></li><li·class="step"><p>Wenn·aus·mehreren·Quelltextdateien·eine |
Offset 388, 23 lines modified | Offset 388, 23 lines modified |
388 | ······müssen·Sie·etwas·wie·folgt·eingeben</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·foo.c·bar.c</code></strong></pre><p>Beachten·Sie,·daß·die·Überprüfung·der·Syntax | 388 | ······müssen·Sie·etwas·wie·folgt·eingeben</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·foo.c·bar.c</code></strong></pre><p>Beachten·Sie,·daß·die·Überprüfung·der·Syntax |
389 | ······genau·dies·tut—das·reine·Überprüfen·der·Syntax. | 389 | ······genau·dies·tut—das·reine·Überprüfen·der·Syntax. |
390 | ······Es·findet·keine·Überprüfung·bzgl.·logischer·Fehler | 390 | ······Es·findet·keine·Überprüfung·bzgl.·logischer·Fehler |
391 | ······statt,·die·Sie·vielleicht·gemacht·haben,·wie·z.B.·das·Programm | 391 | ······statt,·die·Sie·vielleicht·gemacht·haben,·wie·z.B.·das·Programm |
392 | ······in·eine·Endlosschleife·zu·versetzen,·oder·Bubble·Sort·zu | 392 | ······in·eine·Endlosschleife·zu·versetzen,·oder·Bubble·Sort·zu |
393 | ······verwenden,·wenn·Sie·eigentlich·Binary·Sort·benutzen·wollten. | 393 | ······verwenden,·wenn·Sie·eigentlich·Binary·Sort·benutzen·wollten. |
| |
394 | ······<a·href="#ftn.idp59760312"·class="footnote"·id="idp59760312"><sup·class="footnote">[3]</sup></a> | 394 | ······<a·href="#ftn.idp59798200"·class="footnote"·id="idp59798200"><sup·class="footnote">[3]</sup></a> |
395 | ····</p><p>Es·gibt·haufenweise·Optionen·für·<code·class="command">cc</code>, | 395 | ····</p><p>Es·gibt·haufenweise·Optionen·für·<code·class="command">cc</code>, |
396 | ······die·alle·in·der·zugehörigen·Manualpage·beschrieben·werden. | 396 | ······die·alle·in·der·zugehörigen·Manualpage·beschrieben·werden. |
397 | ······Im·Folgenden·werden·ein·paar·der·wichtigsten·Optionen·mit | 397 | ······Im·Folgenden·werden·ein·paar·der·wichtigsten·Optionen·mit |
398 | ······Beispielen·ihrer·Anwendung·gezeigt.</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term"><code·class="option">-o·<em·class="replaceable"><code>filename</code></em></code></span></dt><dd><p>Die·Name·der·Ausgabedatei.·Wenn·Sie·diese·Option·nicht | 398 | ······Beispielen·ihrer·Anwendung·gezeigt.</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term"><code·class="option">-o·<em·class="replaceable"><code>filename</code></em></code></span></dt><dd><p>Die·Name·der·Ausgabedatei.·Wenn·Sie·diese·Option·nicht |
399 | » ····verwenden·erstellt·<code·class="command">cc</code>·eine·Datei·mit | 399 | » ····verwenden·erstellt·<code·class="command">cc</code>·eine·Datei·mit |
400 | » ····dem·Namen·<code·class="filename">a.out</code>. | 400 | » ····dem·Namen·<code·class="filename">a.out</code>. |
| |
401 | » ····<a·href="#ftn.idp59783992"·class="footnote"·id="idp59783992"><sup·class="footnote">[4]</sup></a> | 401 | » ····<a·href="#ftn.idp59808312"·class="footnote"·id="idp59808312"><sup·class="footnote">[4]</sup></a> |
402 | » ··</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·foobar.c</code></strong>···············<em·class="lineannotation"><span·class="lineannotation">executable·is·a.out</span></em> | 402 | » ··</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·foobar.c</code></strong>···············<em·class="lineannotation"><span·class="lineannotation">executable·is·a.out</span></em> |
403 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c</code></strong>·····<em·class="lineannotation"><span·class="lineannotation">executable·is·foobar</span></em> | 403 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c</code></strong>·····<em·class="lineannotation"><span·class="lineannotation">executable·is·foobar</span></em> |
404 | » ····</pre></div></dd><dt><span·class="term"><code·class="option">-c</code></span></dt><dd><p>Dies·kompiliert·die·Datei·nur,·verlinkt·sie·jedoch | 404 | » ····</pre></div></dd><dt><span·class="term"><code·class="option">-c</code></span></dt><dd><p>Dies·kompiliert·die·Datei·nur,·verlinkt·sie·jedoch |
405 | » ····nicht.·Nützlich·für·Spielereien,·um·die·Syntax | 405 | » ····nicht.·Nützlich·für·Spielereien,·um·die·Syntax |
406 | » ····auf·Korrektheit·zu·überprüfen,·oder·falls·Sie | 406 | » ····auf·Korrektheit·zu·überprüfen,·oder·falls·Sie |
407 | » ····ein·<code·class="filename">Makefile</code>·verwenden.</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-c·foobar.c</code></strong> | 407 | » ····ein·<code·class="filename">Makefile</code>·verwenden.</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-c·foobar.c</code></strong> |
408 | » ····</pre></div><p>Dieser·Befehl·erzeugt·eine | 408 | » ····</pre></div><p>Dieser·Befehl·erzeugt·eine |
Offset 426, 15 lines modified | Offset 426, 15 lines modified |
426 | » ····Entwicklung·eines·Programms,·und·für·die | 426 | » ····Entwicklung·eines·Programms,·und·für·die |
427 | » ····<span·class="quote">„<span·class="quote">Release-Version</span>“</span>,·wenn·man·von·der | 427 | » ····<span·class="quote">„<span·class="quote">Release-Version</span>“</span>,·wenn·man·von·der |
428 | » ····Korrektheit·des·Programms·überzeugt·ist,·kompiliert | 428 | » ····Korrektheit·des·Programms·überzeugt·ist,·kompiliert |
429 | » ····man·das·Programm·dann·ohne·diese·Option.</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-g·foobar.c</code></strong> | 429 | » ····man·das·Programm·dann·ohne·diese·Option.</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-g·foobar.c</code></strong> |
430 | » ····</pre></div><p>Mit·diesem·Befehl·wird·eine·Debug-Version·des | 430 | » ····</pre></div><p>Mit·diesem·Befehl·wird·eine·Debug-Version·des |
431 | » ····Programms·erzeugt. | 431 | » ····Programms·erzeugt. |
| |
432 | » ····<a·href="#ftn.idp59815096"·class="footnote"·id="idp59815096"><sup·class="footnote">[5]</sup></a> | 432 | » ····<a·href="#ftn.idp59852088"·class="footnote"·id="idp59852088"><sup·class="footnote">[5]</sup></a> |
433 | » ··</p></dd><dt><span·class="term"><code·class="option">-O</code></span></dt><dd><p>Diese·Option·erzeugt·eine·optimierte·Version·der | 433 | » ··</p></dd><dt><span·class="term"><code·class="option">-O</code></span></dt><dd><p>Diese·Option·erzeugt·eine·optimierte·Version·der |
434 | » ····ausführbaren·Datei.·Der·Compiler·verwendet·einige | 434 | » ····ausführbaren·Datei.·Der·Compiler·verwendet·einige |
435 | » ····clevere·Tricks,·um·das·erzeugte·Programm·schneller·zu | 435 | » ····clevere·Tricks,·um·das·erzeugte·Programm·schneller·zu |
436 | » ····machen.·Sie·können·hinter·der·Option | 436 | » ····machen.·Sie·können·hinter·der·Option |
437 | » ····<code·class="option">-O</code>·eine·Zahl·angeben,·um·eine | 437 | » ····<code·class="option">-O</code>·eine·Zahl·angeben,·um·eine |
438 | » ····höheres·Level·der·Optimierung·festzulegen.·Dadurch | 438 | » ····höheres·Level·der·Optimierung·festzulegen.·Dadurch |
439 | » ····wird·jedoch·häufig·eine·fehlerhafte·Optimierung | 439 | » ····wird·jedoch·häufig·eine·fehlerhafte·Optimierung |
Offset 519, 52 lines modified | Offset 519, 52 lines modified |
519 | » ····<code·class="filename">.cpp</code>·(welche·schon·anderweitig | 519 | » ····<code·class="filename">.cpp</code>·(welche·schon·anderweitig |
520 | » ····benutzt·wurde).·Der·<code·class="command">gcc</code>·hat | 520 | » ····benutzt·wurde).·Der·<code·class="command">gcc</code>·hat |
521 | » ····normalerweise·anhand·dieser·Information·entschieden, | 521 | » ····normalerweise·anhand·dieser·Information·entschieden, |
522 | » ····welcher·Compiler·für·die·Quelltextdatei·zum·Einsatz | 522 | » ····welcher·Compiler·für·die·Quelltextdatei·zum·Einsatz |
523 | » ····kommen·soll;·allerdings·gilt·diese·Einschränkung | 523 | » ····kommen·soll;·allerdings·gilt·diese·Einschränkung |
524 | » ····jetzt·nicht·mehr,·und·Sie·können·Ihre·C++-Dateien | 524 | » ····jetzt·nicht·mehr,·und·Sie·können·Ihre·C++-Dateien |
525 | » ····ungestraft·auf·<code·class="filename">.cpp</code>·enden | 525 | » ····ungestraft·auf·<code·class="filename">.cpp</code>·enden |
526 | » ····lassen!</p></dd></dl></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59966264"></a>2.4.1.·Häufig·auftretende·<code·class="command">cc</code>-Fragen·und | 526 | » ····lassen!</p></dd></dl></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60000184"></a>2.4.1.·Häufig·auftretende·<code·class="command">cc</code>-Fragen·und |
527 | » -Probleme</h3></div></div></div><div·class="qandaset"><a·id="idp59968440"></a><dl><dt>2.4.1.1.·<a·href="#idp59969080">Ich·versuche·ein·Programm·zu·schreiben,·welches·die | 527 | » -Probleme</h3></div></div></div><div·class="qandaset"><a·id="idp60015032"></a><dl><dt>2.4.1.1.·<a·href="#idp60015928">Ich·versuche·ein·Programm·zu·schreiben,·welches·die |
528 | » ······Funktion·sin()·verwendet,·erhalte | 528 | » ······Funktion·sin()·verwendet,·erhalte |
529 | » ······jedoch·eine·Fehlermeldung.·Was·bedeutet·diese?</a></dt><dt>2.4.1.2.·<a·href="#idp59995576">So,·ich·habe·jetzt·dieses·einfache·Programm·als | 529 | » ······jedoch·eine·Fehlermeldung.·Was·bedeutet·diese?</a></dt><dt>2.4.1.2.·<a·href="#idp60028088">So,·ich·habe·jetzt·dieses·einfache·Programm·als |
530 | » ······Übung·für·-lm·geschrieben. | 530 | » ······Übung·für·-lm·geschrieben. |
531 | » ······Alles·was·es·macht·ist,·2.1·hoch·6·zu·berechnen.</a></dt><dt>2.4.1.3.·<a·href="#idp60017592">Wie·kann·ich·das·korrigieren?</a></dt><dt>2.4.1.4.·<a·href="#idp60037176">Ich·habe·eine·Datei·mit·dem·Namen | 531 | » ······Alles·was·es·macht·ist,·2.1·hoch·6·zu·berechnen.</a></dt><dt>2.4.1.3.·<a·href="#idp60049848">Wie·kann·ich·das·korrigieren?</a></dt><dt>2.4.1.4.·<a·href="#idp60081080">Ich·habe·eine·Datei·mit·dem·Namen |
532 | » ······foobar.c·kompiliert,·kann·jedoch | 532 | » ······foobar.c·kompiliert,·kann·jedoch |
533 | » ······nirgends·eine·ausführbare·Datei·namens | 533 | » ······nirgends·eine·ausführbare·Datei·namens |
534 | » ······foobar·finden.·Wo·befindet·sich | 534 | » ······foobar·finden.·Wo·befindet·sich |
535 | » ······diese?</a></dt><dt>2.4.1.5.·<a·href="#idp60050872">OK,·ich·habe·eine·ausführbare·Datei·namens | 535 | » ······diese?</a></dt><dt>2.4.1.5.·<a·href="#idp60109368">OK,·ich·habe·eine·ausführbare·Datei·namens |
536 | » ······foobar,·ich·kann·sie·sehen,·wenn | 536 | » ······foobar,·ich·kann·sie·sehen,·wenn |
537 | » ······ich·ls·aufrufe.·Gebe·ich·jedoch | 537 | » ······ich·ls·aufrufe.·Gebe·ich·jedoch |
538 | » ······foobar·in·die·Kommandozeile·ein·wird | 538 | » ······foobar·in·die·Kommandozeile·ein·wird |
539 | » ······mir·gesagt,·daß·eine·Datei·mit·diesem·Namen·nicht | 539 | » ······mir·gesagt,·daß·eine·Datei·mit·diesem·Namen·nicht |
540 | » ······existiert.·Warum·kann·die·Datei·nicht·gefunden | 540 | » ······existiert.·Warum·kann·die·Datei·nicht·gefunden |
541 | » ······werden?</a></dt><dt>2.4.1.6.·<a·href="#idp60084536">Ich·habe·meine·ausführbare·Datei | 541 | » ······werden?</a></dt><dt>2.4.1.6.·<a·href="#idp60128824">Ich·habe·meine·ausführbare·Datei |
542 | » ······test·genannt,·allerdings·passiert | 542 | » ······test·genannt,·allerdings·passiert |
543 | » ······nichts·wenn·ich·diese·aufrufe.·Was·ist·hier·los?</a></dt><dt>2.4.1.7.·<a·href="#idp60101944">Ich·habe·mein·Programm·kompiliert·und·bei·dessen | 543 | » ······nichts·wenn·ich·diese·aufrufe.·Was·ist·hier·los?</a></dt><dt>2.4.1.7.·<a·href="#idp60143928">Ich·habe·mein·Programm·kompiliert·und·bei·dessen |
544 | » ······Aufruf·sah·zuerst·alles·gut·aus.·Jedoch·gab·es·dann·eine | 544 | » ······Aufruf·sah·zuerst·alles·gut·aus.·Jedoch·gab·es·dann·eine |
545 | » ······Fehlermeldung,·welche·irgendetwas·mit·core | 545 | » ······Fehlermeldung,·welche·irgendetwas·mit·core |
546 | » ······dumped·lautete.·Was·bedeutet·das?</a></dt><dt>2.4.1.8.·<a·href="#idp60123320">Faszinierendes·Zeugs,·aber·was·soll·ich·jetzt | 546 | » ······dumped·lautete.·Was·bedeutet·das?</a></dt><dt>2.4.1.8.·<a·href="#idp60181432">Faszinierendes·Zeugs,·aber·was·soll·ich·jetzt |
547 | » ······machen?</a></dt><dt>2.4.1.9.·<a·href="#idp60128952">Als·mein·Programm·den·core·dump·erzeugt·hat,·sagte | 547 | » ······machen?</a></dt><dt>2.4.1.9.·<a·href="#idp60188344">Als·mein·Programm·den·core·dump·erzeugt·hat,·sagte |
548 | » ······es·etwas·von·einem·segmentation | 548 | » ······es·etwas·von·einem·segmentation |
549 | » ······fault.·Was·ist·das?</a></dt><dt>2.4.1.10.·<a·href="#idp60184376">Wenn·ich·einen·core·dump·erhalte·erscheint | 549 | » ······fault.·Was·ist·das?</a></dt><dt>2.4.1.10.·<a·href="#idp60227256">Wenn·ich·einen·core·dump·erhalte·erscheint |
550 | » ······manchmal·die·Meldung·bus·error. | 550 | » ······manchmal·die·Meldung·bus·error. |
551 | » ······In·meinem·UNIX®-Buch·steht,·daß·die·Ursache·ein | 551 | » ······In·meinem·UNIX®-Buch·steht,·daß·die·Ursache·ein |
552 | » ······Hardwareproblem·sei.·Der·Computer·scheint·aber·weiterhin | 552 | » ······Hardwareproblem·sei.·Der·Computer·scheint·aber·weiterhin |
553 | » ······zu·funktionieren.·Ist·dies·wahr?</a></dt><dt>2.4.1.11.·<a·href="#idp60192312">Diese·Sache·mit·den·core·dumps·hört·sich·sehr | 553 | » ······zu·funktionieren.·Ist·dies·wahr?</a></dt><dt>2.4.1.11.·<a·href="#idp60235064">Diese·Sache·mit·den·core·dumps·hört·sich·sehr |
554 | » ······nützlich·an,·wenn·ich·so·etwas·selber·an·beliebiger | 554 | » ······nützlich·an,·wenn·ich·so·etwas·selber·an·beliebiger |
555 | » ······Stelle·bewirken·könnte.·Kann·ich·das·tun,·oder | 555 | » ······Stelle·bewirken·könnte.·Kann·ich·das·tun,·oder |
556 | » ······muß·ich·warten·bis·ein·Fehler·auftritt?</a></dt></dl><table·border="0"·style="width:·100%;"><colgroup><col·align="left"·width="1%"·/><col·/></colgroup><tbody><tr·class="question"><td·align="left"·valign="top"><a·id="idp59969080"></a><a·id="idp59969336"></a><p><strong>2.4.1.1.</strong></p></td><td·align="left"·valign="top"><p>Ich·versuche·ein·Programm·zu·schreiben,·welches·die | 556 | » ······muß·ich·warten·bis·ein·Fehler·auftritt?</a></dt></dl><table·border="0"·style="width:·100%;"><colgroup><col·align="left"·width="1%"·/><col·/></colgroup><tbody><tr·class="question"><td·align="left"·valign="top"><a·id="idp60015928"></a><a·id="idp60016440"></a><p><strong>2.4.1.1.</strong></p></td><td·align="left"·valign="top"><p>Ich·versuche·ein·Programm·zu·schreiben,·welches·die |
557 | » ······Funktion·<code·class="function">sin()</code>·verwendet,·erhalte | 557 | » ······Funktion·<code·class="function">sin()</code>·verwendet,·erhalte |
558 | » ······jedoch·eine·Fehlermeldung.·Was·bedeutet·diese?</p><div·class="informalexample"><pre·class="screen">/var/tmp/cc0143941.o:·Undefined·symbol·`_sin'·referenced·from·text·segment | 558 | » ······jedoch·eine·Fehlermeldung.·Was·bedeutet·diese?</p><div·class="informalexample"><pre·class="screen">/var/tmp/cc0143941.o:·Undefined·symbol·`_sin'·referenced·from·text·segment |
559 | » ······</pre></div></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Wenn·Sie·mathematische·Funktionen·wie | 559 | » ······</pre></div></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Wenn·Sie·mathematische·Funktionen·wie |
560 | » ······<code·class="function">sin()</code>·verwenden·wollen,·müssen | 560 | » ······<code·class="function">sin()</code>·verwenden·wollen,·müssen |
561 | » ······Sie·den·<code·class="command">cc</code>·anweisen,·die | 561 | » ······Sie·den·<code·class="command">cc</code>·anweisen,·die |
562 | » ······Mathematik-Bibliothek·wie·folgt·zu·verlinken:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c·-lm</code></strong> | 562 | » ······Mathematik-Bibliothek·wie·folgt·zu·verlinken:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c·-lm</code></strong> |
563 | » ······</pre></div></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp59995576"></a><a·id="idp59995832"></a><p><strong>2.4.1.2.</strong></p></td><td·align="left"·valign="top"><p>So,·ich·habe·jetzt·dieses·einfache·Programm·als | 563 | » ······</pre></div></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60028088"></a><a·id="idp60029112"></a><p><strong>2.4.1.2.</strong></p></td><td·align="left"·valign="top"><p>So,·ich·habe·jetzt·dieses·einfache·Programm·als |
564 | » ······Übung·für·<code·class="option">-lm</code>·geschrieben. | 564 | » ······Übung·für·<code·class="option">-lm</code>·geschrieben. |
565 | » ······Alles·was·es·macht·ist,·2.1·hoch·6·zu·berechnen.</p><div·class="informalexample"><pre·class="programlisting">#include·<stdio.h> | 565 | » ······Alles·was·es·macht·ist,·2.1·hoch·6·zu·berechnen.</p><div·class="informalexample"><pre·class="programlisting">#include·<stdio.h> |
| |
566 | int·main()·{ | 566 | int·main()·{ |
567 | » float·f; | 567 | » float·f; |
| |
568 | » f·=·pow(2.1,·6); | 568 | » f·=·pow(2.1,·6); |
Offset 577, 15 lines modified | Offset 577, 15 lines modified |
577 | 2.1·^·6·=·1023.000000 | 577 | 2.1·^·6·=·1023.000000 |
578 | » ······</pre></div><p>Das·ist·<span·class="emphasis"><em>nicht</em></span>·die·richtige | 578 | » ······</pre></div><p>Das·ist·<span·class="emphasis"><em>nicht</em></span>·die·richtige |
579 | » ······Antwort!·Was·ist·hier·los?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Wenn·der·Compiler·Ihren·Funktionsaufruf·sieht, | 579 | » ······Antwort!·Was·ist·hier·los?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Wenn·der·Compiler·Ihren·Funktionsaufruf·sieht, |
580 | » ······überprüft·er,·ob·er·schon·einmal·einen | 580 | » ······überprüft·er,·ob·er·schon·einmal·einen |
581 | » ······Prototypen·für·diese·gesehen·hat.·Wenn·nicht·nimmt | 581 | » ······Prototypen·für·diese·gesehen·hat.·Wenn·nicht·nimmt |
582 | » ······er·als·Rückgabewert·den·Typ·<span·class="type">int</span>·an, | 582 | » ······er·als·Rückgabewert·den·Typ·<span·class="type">int</span>·an, |
583 | » ······was·sicherlich·nicht·das·ist,·was·Sie·an·dieser·Stelle | 583 | » ······was·sicherlich·nicht·das·ist,·was·Sie·an·dieser·Stelle |
584 | » ······wollen.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60017592"></a><a·id="idp60018616"></a><p><strong>2.4.1.3.</strong></p></td><td·align="left"·valign="top"><p>Wie·kann·ich·das·korrigieren?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Die·Prototypen·der·mathematischen·Funktionen | 584 | » ······wollen.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60049848"></a><a·id="idp60063032"></a><p><strong>2.4.1.3.</strong></p></td><td·align="left"·valign="top"><p>Wie·kann·ich·das·korrigieren?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Die·Prototypen·der·mathematischen·Funktionen |
585 | » ······befinden·sich·in·der·Datei·<code·class="filename">math.h</code>. | 585 | » ······befinden·sich·in·der·Datei·<code·class="filename">math.h</code>. |
586 | » ······Wenn·Sie·diese·Datei·in·Ihrem·Quelltext·includen·ist·der | 586 | » ······Wenn·Sie·diese·Datei·in·Ihrem·Quelltext·includen·ist·der |
587 | » ······Compiler·in·der·Lage,·den·Prototypen·zu·finden,·und·wird | 587 | » ······Compiler·in·der·Lage,·den·Prototypen·zu·finden,·und·wird |
588 | » ······aufhören,·seltsame·Dinge·mit·Ihrer·Berechnung·zu | 588 | » ······aufhören,·seltsame·Dinge·mit·Ihrer·Berechnung·zu |
589 | » ······machen!</p><div·class="informalexample"><pre·class="programlisting">#include·<math.h> | 589 | » ······machen!</p><div·class="informalexample"><pre·class="programlisting">#include·<math.h> |
590 | #include·<stdio.h> | 590 | #include·<stdio.h> |
| |
Offset 594, 25 lines modified | Offset 594, 25 lines modified |
594 | » ······</pre></div><p>Nach·erneutem·Compilieren·sollte·das·Folgende·bei | 594 | » ······</pre></div><p>Nach·erneutem·Compilieren·sollte·das·Folgende·bei |
595 | » ······der·Ausführung·ausgegeben·werden:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>./a.out</code></strong> | 595 | » ······der·Ausführung·ausgegeben·werden:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>./a.out</code></strong> |
596 | 2.1·^·6·=·85.766121 | 596 | 2.1·^·6·=·85.766121 |
597 | » ······</pre></div><p>Wenn·Sie·irgendwelche·mathematischen·Funktionen | 597 | » ······</pre></div><p>Wenn·Sie·irgendwelche·mathematischen·Funktionen |
598 | » ······verwenden·sollten·Sie·<span·class="emphasis"><em>immer</em></span>·die | 598 | » ······verwenden·sollten·Sie·<span·class="emphasis"><em>immer</em></span>·die |
599 | » ······Datei·<code·class="filename">math.h</code>·includen·und·nicht | 599 | » ······Datei·<code·class="filename">math.h</code>·includen·und·nicht |
600 | » ······vergessen,·Ihr·Programm·gegen·die·Mathematik-Bibliothek | 600 | » ······vergessen,·Ihr·Programm·gegen·die·Mathematik-Bibliothek |
601 | » ······zu·verlinken.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60037176"></a><a·id="idp60037432"></a><p><strong>2.4.1.4.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·eine·Datei·mit·dem·Namen | 601 | » ······zu·verlinken.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60081080"></a><a·id="idp60082104"></a><p><strong>2.4.1.4.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·eine·Datei·mit·dem·Namen |
602 | » ······<code·class="filename">foobar.c</code>·kompiliert,·kann·jedoch | 602 | » ······<code·class="filename">foobar.c</code>·kompiliert,·kann·jedoch |
603 | » ······nirgends·eine·ausführbare·Datei·namens | 603 | » ······nirgends·eine·ausführbare·Datei·namens |
604 | » ······<code·class="filename">foobar</code>·finden.·Wo·befindet·sich | 604 | » ······<code·class="filename">foobar</code>·finden.·Wo·befindet·sich |
605 | » ······diese?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Denken·Sie·daran,·daß·der | 605 | » ······diese?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Denken·Sie·daran,·daß·der |
606 | » ······<code·class="command">cc</code>·die·ausführbare·Datei | 606 | » ······<code·class="command">cc</code>·die·ausführbare·Datei |
607 | » ······<code·class="filename">a.out</code>·nennt,·wenn·Sie·nicht | 607 | » ······<code·class="filename">a.out</code>·nennt,·wenn·Sie·nicht |
608 | » ······explizit·einen·Namen·angeben.·Verwenden·Sie·in·solch | 608 | » ······explizit·einen·Namen·angeben.·Verwenden·Sie·in·solch |
609 | » ······einem·Fall·die·Option | 609 | » ······einem·Fall·die·Option |
610 | » ······<code·class="option">-o <em·class="replaceable"><code>filename</code></em></code>:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c</code></strong> | 610 | » ······<code·class="option">-o <em·class="replaceable"><code>filename</code></em></code>:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·-o·foobar·foobar.c</code></strong> |
611 | » ······</pre></div></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60050872"></a><a·id="idp60052280"></a><p><strong>2.4.1.5.</strong></p></td><td·align="left"·valign="top"><p>OK,·ich·habe·eine·ausführbare·Datei·namens | 611 | » ······</pre></div></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60109368"></a><a·id="idp60110008"></a><p><strong>2.4.1.5.</strong></p></td><td·align="left"·valign="top"><p>OK,·ich·habe·eine·ausführbare·Datei·namens |
612 | » ······<code·class="filename">foobar</code>,·ich·kann·sie·sehen,·wenn | 612 | » ······<code·class="filename">foobar</code>,·ich·kann·sie·sehen,·wenn |
613 | » ······ich·<code·class="command">ls</code>·aufrufe.·Gebe·ich·jedoch | 613 | » ······ich·<code·class="command">ls</code>·aufrufe.·Gebe·ich·jedoch |
614 | » ······<code·class="command">foobar</code>·in·die·Kommandozeile·ein·wird | 614 | » ······<code·class="command">foobar</code>·in·die·Kommandozeile·ein·wird |
615 | » ······mir·gesagt,·daß·eine·Datei·mit·diesem·Namen·nicht | 615 | » ······mir·gesagt,·daß·eine·Datei·mit·diesem·Namen·nicht |
616 | » ······existiert.·Warum·kann·die·Datei·nicht·gefunden | 616 | » ······existiert.·Warum·kann·die·Datei·nicht·gefunden |
617 | » ······werden?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Im·Gegensatz·zu·<span·class="trademark">MS-DOS</span>®·sucht·<span·class="trademark">UNIX</span>®·nicht·im | 617 | » ······werden?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Im·Gegensatz·zu·<span·class="trademark">MS-DOS</span>®·sucht·<span·class="trademark">UNIX</span>®·nicht·im |
618 | » ······aktuellen·Verzeichnis·nach·einem·ausführbaren | 618 | » ······aktuellen·Verzeichnis·nach·einem·ausführbaren |
Offset 622, 38 lines modified | Offset 622, 38 lines modified |
622 | » ······soviel·bedeutet·wie·<span·class="quote">„<span·class="quote">führe·eine·Datei·namens | 622 | » ······soviel·bedeutet·wie·<span·class="quote">„<span·class="quote">führe·eine·Datei·namens |
623 | » ······<code·class="filename">foobar</code>·im·aktuellen·Verzeichnis | 623 | » ······<code·class="filename">foobar</code>·im·aktuellen·Verzeichnis |
624 | » ······aus</span>“</span>,·oder·Sie·können·Ihre·Umgebungsvariable | 624 | » ······aus</span>“</span>,·oder·Sie·können·Ihre·Umgebungsvariable |
625 | » ······<code·class="envar">PATH</code>·so·erweitern,·daß·sie | 625 | » ······<code·class="envar">PATH</code>·so·erweitern,·daß·sie |
626 | » ······ähnlich·wie·folgt·aussieht</p><div·class="informalexample"><pre·class="screen">bin:/usr/bin:/usr/local/bin:. | 626 | » ······ähnlich·wie·folgt·aussieht</p><div·class="informalexample"><pre·class="screen">bin:/usr/bin:/usr/local/bin:. |
627 | » ······</pre></div><p>Der·Punkt·am·Ende·bedeutet·<span·class="quote">„<span·class="quote">siehe·im·aktuellen | 627 | » ······</pre></div><p>Der·Punkt·am·Ende·bedeutet·<span·class="quote">„<span·class="quote">siehe·im·aktuellen |
628 | » ······Verzeichnis·nach,·wenn·es·in·keinem·der·anderen·zu | 628 | » ······Verzeichnis·nach,·wenn·es·in·keinem·der·anderen·zu |
629 | » ······finden·war</span>“</span>.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60084536"></a><a·id="idp60085176"></a><p><strong>2.4.1.6.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·meine·ausführbare·Datei | 629 | » ······finden·war</span>“</span>.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60128824"></a><a·id="idp60130232"></a><p><strong>2.4.1.6.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·meine·ausführbare·Datei |
630 | » ······<code·class="filename">test</code>·genannt,·allerdings·passiert | 630 | » ······<code·class="filename">test</code>·genannt,·allerdings·passiert |
631 | » ······nichts·wenn·ich·diese·aufrufe.·Was·ist·hier·los?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Bei·den·meisten·<span·class="trademark">UNIX</span>®-Systeme·existiert·bereits | 631 | » ······nichts·wenn·ich·diese·aufrufe.·Was·ist·hier·los?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Bei·den·meisten·<span·class="trademark">UNIX</span>®-Systeme·existiert·bereits |
632 | » ······ein·Programm·mit·dem·Namen·<code·class="command">test</code>·im | 632 | » ······ein·Programm·mit·dem·Namen·<code·class="command">test</code>·im |
633 | » ······Verzeichnis·<code·class="filename">/usr/bin</code>,·und·die·Shell | 633 | » ······Verzeichnis·<code·class="filename">/usr/bin</code>,·und·die·Shell |
634 | » ······nimmt·dieses,·bevor·sie·im·aktuellen·Verzeichnis | 634 | » ······nimmt·dieses,·bevor·sie·im·aktuellen·Verzeichnis |
635 | » ······nachsieht.·Sie·können·entweder·den·folgenden·Befehl | 635 | » ······nachsieht.·Sie·können·entweder·den·folgenden·Befehl |
636 | » ······eingeben:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>./test</code></strong> | 636 | » ······eingeben:</p><div·class="informalexample"><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>./test</code></strong> |
637 | » ······</pre></div><p>oder·Sie·können·einen·geeigneteren·Namen | 637 | » ······</pre></div><p>oder·Sie·können·einen·geeigneteren·Namen |
638 | » ······für·Ihr·Programm·wählen!</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60101944"></a><a·id="idp60102456"></a><p><strong>2.4.1.7.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·mein·Programm·kompiliert·und·bei·dessen | 638 | » ······für·Ihr·Programm·wählen!</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60143928"></a><a·id="idp60157112"></a><p><strong>2.4.1.7.</strong></p></td><td·align="left"·valign="top"><p>Ich·habe·mein·Programm·kompiliert·und·bei·dessen |
639 | » ······Aufruf·sah·zuerst·alles·gut·aus.·Jedoch·gab·es·dann·eine | 639 | » ······Aufruf·sah·zuerst·alles·gut·aus.·Jedoch·gab·es·dann·eine |
640 | » ······Fehlermeldung,·welche·irgendetwas·mit·<span·class="errorname">core | 640 | » ······Fehlermeldung,·welche·irgendetwas·mit·<span·class="errorname">core |
641 | » ······dumped</span>·lautete.·Was·bedeutet·das?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Der·Name·<em·class="firstterm">core·dump</em>·stammt | 641 | » ······dumped</span>·lautete.·Was·bedeutet·das?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Der·Name·<em·class="firstterm">core·dump</em>·stammt |
642 | » ······noch·aus·sehr·frühen·Zeiten·von·<span·class="trademark">UNIX</span>®,·als·die | 642 | » ······noch·aus·sehr·frühen·Zeiten·von·<span·class="trademark">UNIX</span>®,·als·die |
643 | » ······Maschinen·noch·Kernspeicher·zum·Speichern·von·Daten | 643 | » ······Maschinen·noch·Kernspeicher·zum·Speichern·von·Daten |
644 | » ······verwendeten.·Einfach·ausgedrückt,·wenn·bei·einem | 644 | » ······verwendeten.·Einfach·ausgedrückt,·wenn·bei·einem |
645 | » ······Programm·unter·bestimmen·Bedingungen·ein·Fehler·auftrat, | 645 | » ······Programm·unter·bestimmen·Bedingungen·ein·Fehler·auftrat, |
646 | » ······hat·das·System·den·Inhalt·des·Kernspeichers·auf·der | 646 | » ······hat·das·System·den·Inhalt·des·Kernspeichers·auf·der |
647 | » ······Festplatte·in·eine·Datei·namens | 647 | » ······Festplatte·in·eine·Datei·namens |
648 | » ······<code·class="filename">core</code>·geschrieben,·welche·der | 648 | » ······<code·class="filename">core</code>·geschrieben,·welche·der |
649 | » ······Programmierer·dann·näher·untersuchen·konnte,·um·die | 649 | » ······Programmierer·dann·näher·untersuchen·konnte,·um·die |
650 | » ······Ursache·des·Fehlers·herauszufinden.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60123320"></a><a·id="idp60123832"></a><p><strong>2.4.1.8.</strong></p></td><td·align="left"·valign="top"><p>Faszinierendes·Zeugs,·aber·was·soll·ich·jetzt | 650 | » ······Ursache·des·Fehlers·herauszufinden.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60181432"></a><a·id="idp60182072"></a><p><strong>2.4.1.8.</strong></p></td><td·align="left"·valign="top"><p>Faszinierendes·Zeugs,·aber·was·soll·ich·jetzt |
651 | » ······machen?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Verwenden·Sie·den·<code·class="command">gdb</code>,·um·das | 651 | » ······machen?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Verwenden·Sie·den·<code·class="command">gdb</code>,·um·das |
652 | » ······Speicherabbild·zu·untersuchen·(siehe·<a·class="xref"·href="#debugging"·title="2.6.·Debuggen">Abschnitt 2.6,·„Debuggen“</a>).</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60128952"></a><a·id="idp60129720"></a><p><strong>2.4.1.9.</strong></p></td><td·align="left"·valign="top"><p>Als·mein·Programm·den·core·dump·erzeugt·hat,·sagte | 652 | » ······Speicherabbild·zu·untersuchen·(siehe·<a·class="xref"·href="#debugging"·title="2.6.·Debuggen">Abschnitt 2.6,·„Debuggen“</a>).</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60188344"></a><a·id="idp60189112"></a><p><strong>2.4.1.9.</strong></p></td><td·align="left"·valign="top"><p>Als·mein·Programm·den·core·dump·erzeugt·hat,·sagte |
653 | » ······es·etwas·von·einem·<span·class="errorname">segmentation | 653 | » ······es·etwas·von·einem·<span·class="errorname">segmentation |
654 | » ······fault</span>.·Was·ist·das?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Diese·Meldung·heißt·im·Prinzip,·daß·Ihr | 654 | » ······fault</span>.·Was·ist·das?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Diese·Meldung·heißt·im·Prinzip,·daß·Ihr |
655 | » ······Programm·eine·illegale·Operation·mit·dem·Speicher | 655 | » ······Programm·eine·illegale·Operation·mit·dem·Speicher |
656 | » ······durchführen·wollte;·<span·class="trademark">UNIX</span>®·wurde·so·entworfen, | 656 | » ······durchführen·wollte;·<span·class="trademark">UNIX</span>®·wurde·so·entworfen, |
657 | » ······daß·es·das·andere·Programme·und·das·Betriebssystem | 657 | » ······daß·es·das·andere·Programme·und·das·Betriebssystem |
658 | » ······selbst·vor·wildgewordenen·Programmen | 658 | » ······selbst·vor·wildgewordenen·Programmen |
659 | » ······schützt.</p><p>Häufige·Ursachen·hierfür·sind:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Der·Versuch,·einen·<span·class="symbol">NULL</span>-Zeiger | 659 | » ······schützt.</p><p>Häufige·Ursachen·hierfür·sind:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Der·Versuch,·einen·<span·class="symbol">NULL</span>-Zeiger |
Offset 688, 23 lines modified | Offset 688, 23 lines modified |
688 | free(foo); | 688 | free(foo); |
689 | free(foo); | 689 | free(foo); |
690 | » » </pre></li></ul></div><p>Einzelne·solcher·Fehler·führen·zwar·nicht | 690 | » » </pre></li></ul></div><p>Einzelne·solcher·Fehler·führen·zwar·nicht |
691 | » ······immer·zu·einem·Fehlverhalten·des·Programms,·stellen | 691 | » ······immer·zu·einem·Fehlverhalten·des·Programms,·stellen |
692 | » ······jedoch·immer·eine·falsche·Verwendung·dar.·Manche·Systeme | 692 | » ······jedoch·immer·eine·falsche·Verwendung·dar.·Manche·Systeme |
693 | » ······und·Compiler·sind·toleranter·als·andere,·weshalb | 693 | » ······und·Compiler·sind·toleranter·als·andere,·weshalb |
694 | » ······Programme·auf·dem·einen·System·einwandfrei·laufen,·auf | 694 | » ······Programme·auf·dem·einen·System·einwandfrei·laufen,·auf |
695 | » ······dem·anderen·System·jedoch·abstürzen.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60184376"></a><a·id="idp60185400"></a><p><strong>2.4.1.10.</strong></p></td><td·align="left"·valign="top"><p>Wenn·ich·einen·core·dump·erhalte·erscheint | 695 | » ······dem·anderen·System·jedoch·abstürzen.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60227256"></a><a·id="idp60227896"></a><p><strong>2.4.1.10.</strong></p></td><td·align="left"·valign="top"><p>Wenn·ich·einen·core·dump·erhalte·erscheint |
696 | » ······manchmal·die·Meldung·<span·class="errorname">bus·error</span>. | 696 | » ······manchmal·die·Meldung·<span·class="errorname">bus·error</span>. |
697 | » ······In·meinem·<span·class="trademark">UNIX</span>®-Buch·steht,·daß·die·Ursache·ein | 697 | » ······In·meinem·<span·class="trademark">UNIX</span>®-Buch·steht,·daß·die·Ursache·ein |
698 | » ······Hardwareproblem·sei.·Der·Computer·scheint·aber·weiterhin | 698 | » ······Hardwareproblem·sei.·Der·Computer·scheint·aber·weiterhin |
699 | » ······zu·funktionieren.·Ist·dies·wahr?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Nein,·glücklicherweise·nicht·(es·sei·denn·Sie | 699 | » ······zu·funktionieren.·Ist·dies·wahr?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Nein,·glücklicherweise·nicht·(es·sei·denn·Sie |
700 | » ······haben·wirklich·ein·Hardwareproblem…). | 700 | » ······haben·wirklich·ein·Hardwareproblem…). |
701 | » ······Üblicherweise·ist·dies·ein·Weg·Ihnen·mitzuteilen, | 701 | » ······Üblicherweise·ist·dies·ein·Weg·Ihnen·mitzuteilen, |
702 | » ······daß·Sie·auf·Speicher·in·einer·Weise·zugegriffen | 702 | » ······daß·Sie·auf·Speicher·in·einer·Weise·zugegriffen |
703 | » ······haben,·in·der·Sie·dies·nicht·tun·sollten.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60192312"></a><a·id="idp60192824"></a><p><strong>2.4.1.11.</strong></p></td><td·align="left"·valign="top"><p>Diese·Sache·mit·den·core·dumps·hört·sich·sehr | 703 | » ······haben,·in·der·Sie·dies·nicht·tun·sollten.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="idp60235064"></a><a·id="idp60236088"></a><p><strong>2.4.1.11.</strong></p></td><td·align="left"·valign="top"><p>Diese·Sache·mit·den·core·dumps·hört·sich·sehr |
704 | » ······nützlich·an,·wenn·ich·so·etwas·selber·an·beliebiger | 704 | » ······nützlich·an,·wenn·ich·so·etwas·selber·an·beliebiger |
705 | » ······Stelle·bewirken·könnte.·Kann·ich·das·tun,·oder | 705 | » ······Stelle·bewirken·könnte.·Kann·ich·das·tun,·oder |
706 | » ······muß·ich·warten·bis·ein·Fehler·auftritt?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Ja,·nehmen·sie·einfach·eine·andere·Konsole·oder | 706 | » ······muß·ich·warten·bis·ein·Fehler·auftritt?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Ja,·nehmen·sie·einfach·eine·andere·Konsole·oder |
707 | » ······XTerm·und·führen·Sie</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>ps</code></strong> | 707 | » ······XTerm·und·führen·Sie</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>ps</code></strong> |
708 | » ····</pre><p>aus,·um·die·Prozess-ID·Ihres·Programms | 708 | » ····</pre><p>aus,·um·die·Prozess-ID·Ihres·Programms |
709 | » ······herauszufinden.·Führen·Sie | 709 | » ······herauszufinden.·Führen·Sie |
710 | » ······anschließend</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>kill·-ABRT·pid</code></strong> | 710 | » ······anschließend</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>kill·-ABRT·pid</code></strong> |
Offset 720, 15 lines modified | Offset 720, 15 lines modified |
720 | » ······<code·class="function">abort()</code>·aufrufen.·Weitere | 720 | » ······<code·class="function">abort()</code>·aufrufen.·Weitere |
721 | » ······Informationen·darüber·können·Sie·in·der | 721 | » ······Informationen·darüber·können·Sie·in·der |
722 | » ······Manualpage·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=abort&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">abort</span>(3)</span></a>·nachlesen.</p><p>Wenn·Sie·einen·core·dump·von·außerhalb·Ihres | 722 | » ······Manualpage·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=abort&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">abort</span>(3)</span></a>·nachlesen.</p><p>Wenn·Sie·einen·core·dump·von·außerhalb·Ihres |
723 | » ······Programms·erzeugen·wollen,·ohne·dabei·den·Prozess | 723 | » ······Programms·erzeugen·wollen,·ohne·dabei·den·Prozess |
724 | » ······abzubrechen,·können·Sie·das·Programm | 724 | » ······abzubrechen,·können·Sie·das·Programm |
725 | » ······<code·class="command">gcore</code>·verwenden.·Weitere | 725 | » ······<code·class="command">gcore</code>·verwenden.·Weitere |
726 | » ······Informationen·dazu·finden·Sie·in·der·zugehörigen | 726 | » ······Informationen·dazu·finden·Sie·in·der·zugehörigen |
727 | » ······Manualpage·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcore&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcore</span>(1)</span></a>.</p></td></tr></tbody></table></div></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="tools-make"></a>2.5.·Make</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60235064"></a>2.5.1.·Was·ist·<code·class="command">make</code>?</h3></div></div></div><p>Wenn·Sie·an·einem·einfachen·Programm·mit·nur·einer·oder | 727 | » ······Manualpage·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcore&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcore</span>(1)</span></a>.</p></td></tr></tbody></table></div></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="tools-make"></a>2.5.·Make</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60275768"></a>2.5.1.·Was·ist·<code·class="command">make</code>?</h3></div></div></div><p>Wenn·Sie·an·einem·einfachen·Programm·mit·nur·einer·oder |
728 | » zwei·Quelltextdateien·arbeiten,·ist·die·Eingabe·von</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·file1.c·file2.c</code></strong></pre><p>zwar·nicht·aufwendig,·wird·aber·mit·zunehmender·Anzahl | 728 | » zwei·Quelltextdateien·arbeiten,·ist·die·Eingabe·von</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·file1.c·file2.c</code></strong></pre><p>zwar·nicht·aufwendig,·wird·aber·mit·zunehmender·Anzahl |
729 | » der·Quelltextdateien·sehr·lästig—und·auch·das | 729 | » der·Quelltextdateien·sehr·lästig—und·auch·das |
730 | » Kompilieren·kann·eine·Weile·dauern.</p><p>Eine·Möglichkeit·dies·zu·umgehen·besteht·in·der | 730 | » Kompilieren·kann·eine·Weile·dauern.</p><p>Eine·Möglichkeit·dies·zu·umgehen·besteht·in·der |
731 | » Verwendung·von·Objektdateien,·wobei·man·nur·die | 731 | » Verwendung·von·Objektdateien,·wobei·man·nur·die |
732 | » Quelltextdateien·neu·kompiliert,·die·verändert·wurden.·So | 732 | » Quelltextdateien·neu·kompiliert,·die·verändert·wurden.·So |
733 | » könnten·wir·etwa·folgendes·erhalten:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·file1.o·file2.o</code></strong>·…·<strong·class="userinput"><code>file37.c</code></strong>·…</pre><p>falls·wir·seit·dem·letzten·Kompiliervorgang·nur·die·Datei | 733 | » könnten·wir·etwa·folgendes·erhalten:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cc·file1.o·file2.o</code></strong>·…·<strong·class="userinput"><code>file37.c</code></strong>·…</pre><p>falls·wir·seit·dem·letzten·Kompiliervorgang·nur·die·Datei |
734 | » <code·class="filename">file37.c</code>·verändert·haben.·Dadurch | 734 | » <code·class="filename">file37.c</code>·verändert·haben.·Dadurch |
Offset 766, 16 lines modified | Offset 766, 16 lines modified |
766 | » <code·class="filename">Makefile</code>·oder | 766 | » <code·class="filename">Makefile</code>·oder |
767 | » <code·class="filename">MAKEFILE</code>·heißen.·Die·meisten | 767 | » <code·class="filename">MAKEFILE</code>·heißen.·Die·meisten |
768 | » Programmierer·verwenden·den·Namen | 768 | » Programmierer·verwenden·den·Namen |
769 | » <code·class="filename">Makefile</code>,·da·diese·Schreibweise | 769 | » <code·class="filename">Makefile</code>,·da·diese·Schreibweise |
770 | » dafür·sorgt,·daß·die·Datei·gut·lesbar·ganz·oben·in | 770 | » dafür·sorgt,·daß·die·Datei·gut·lesbar·ganz·oben·in |
771 | » der·Verzeichnisliste·aufgeführt·wird. | 771 | » der·Verzeichnisliste·aufgeführt·wird. |
| |
772 | » <a·href="#ftn.idp60272440"·class="footnote"·id="idp60272440"><sup·class="footnote">[6]</sup></a> | 772 | » <a·href="#ftn.idp60327224"·class="footnote"·id="idp60327224"><sup·class="footnote">[6]</sup></a> |
773 | ······</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60277048"></a>2.5.2.·Beispielhafte·Verwendung·von·<code·class="command">make</code></h3></div></div></div><p>Hier·ist·eine·sehr·einfache·make·Datei:</p><pre·class="programlisting">foo:·foo.c | 773 | ······</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60342840"></a>2.5.2.·Beispielhafte·Verwendung·von·<code·class="command">make</code></h3></div></div></div><p>Hier·ist·eine·sehr·einfache·make·Datei:</p><pre·class="programlisting">foo:·foo.c |
774 | » cc·-o·foo·foo.c</pre><p>Sie·besteht·aus·zwei·Zeilen,·einer | 774 | » cc·-o·foo·foo.c</pre><p>Sie·besteht·aus·zwei·Zeilen,·einer |
775 | » Abhängigkeitszeile·und·einer·Erzeugungszeile.</p><p>Die·Abhängigkeitszeile·hier·besteht·aus·dem·Namen | 775 | » Abhängigkeitszeile·und·einer·Erzeugungszeile.</p><p>Die·Abhängigkeitszeile·hier·besteht·aus·dem·Namen |
776 | » des·Programms·(auch·<em·class="firstterm">Ziel</em>·genannt), | 776 | » des·Programms·(auch·<em·class="firstterm">Ziel</em>·genannt), |
777 | » gefolgt·von·einem·Doppelpunkt·und·einem·Leerzeichen,·und | 777 | » gefolgt·von·einem·Doppelpunkt·und·einem·Leerzeichen,·und |
778 | » anschließend·dem·Namen·der·Quelltextdatei.·Wenn | 778 | » anschließend·dem·Namen·der·Quelltextdatei.·Wenn |
779 | » <code·class="command">make</code>·diese·Zeile·liest·überprüft | 779 | » <code·class="command">make</code>·diese·Zeile·liest·überprüft |
780 | » es·die·Existenz·von·<code·class="filename">foo</code>;·falls·diese | 780 | » es·die·Existenz·von·<code·class="filename">foo</code>;·falls·diese |
Offset 836, 15 lines modified | Offset 836, 15 lines modified |
836 | » <span·class="quote">„<span·class="quote">hello·world</span>“</span>·und·eine·make·Datei·wie·die·weiter | 836 | » <span·class="quote">„<span·class="quote">hello·world</span>“</span>·und·eine·make·Datei·wie·die·weiter |
837 | » oben·angegebene,·und·experimentieren·damit·selber·ein·bißchen | 837 | » oben·angegebene,·und·experimentieren·damit·selber·ein·bißchen |
838 | » herum.·Als·nächstes·könnten·Sie·mehrere | 838 | » herum.·Als·nächstes·könnten·Sie·mehrere |
839 | » Quelltextdateien·verwenden,·oder·in·Ihrer·Quelltextdatei·eine | 839 | » Quelltextdateien·verwenden,·oder·in·Ihrer·Quelltextdatei·eine |
840 | » Header-Datei·includen.·Der·Befehl·<code·class="command">touch</code>·ist | 840 | » Header-Datei·includen.·Der·Befehl·<code·class="command">touch</code>·ist |
841 | » an·dieser·Stelle·ganz·hilfreich—er·verändert·das | 841 | » an·dieser·Stelle·ganz·hilfreich—er·verändert·das |
842 | » Datum·einer·Datei,·ohne·das·Sie·diese·extra·editieren | 842 | » Datum·einer·Datei,·ohne·das·Sie·diese·extra·editieren |
843 | » müssen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60347576"></a>2.5.3.·Make·und·include-Dateien</h3></div></div></div><p>C-Code·beginnt·häufig·mit·einer·Liste·von·Dateien, | 843 | » müssen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60401976"></a>2.5.3.·Make·und·include-Dateien</h3></div></div></div><p>C-Code·beginnt·häufig·mit·einer·Liste·von·Dateien, |
844 | » die·included·werden·sollen,·zum·Beispiel·stdio.h.·Manche | 844 | » die·included·werden·sollen,·zum·Beispiel·stdio.h.·Manche |
845 | » dieser·Dateien·sind·include-Dateien·des·Systems,·andere | 845 | » dieser·Dateien·sind·include-Dateien·des·Systems,·andere |
846 | » gehören·zum·aktuellen·Projekt,·an·dem·Sie·gerade | 846 | » gehören·zum·aktuellen·Projekt,·an·dem·Sie·gerade |
847 | » arbeiten:</p><pre·class="programlisting">#include·<stdio.h> | 847 | » arbeiten:</p><pre·class="programlisting">#include·<stdio.h> |
848 | #include·"foo.h" | 848 | #include·"foo.h" |
| |
849 | int·main(....</pre><p>Um·sicherzustellen,·daß·diese·Datei·neu·kompiliert | 849 | int·main(....</pre><p>Um·sicherzustellen,·daß·diese·Datei·neu·kompiliert |
Offset 867, 15 lines modified | Offset 867, 15 lines modified |
867 | » von·Objekt-Dateien,·C-Dateien·und·den·include-Dateien | 867 | » von·Objekt-Dateien,·C-Dateien·und·den·include-Dateien |
868 | » auftauchen:</p><pre·class="programlisting">foo.o:·foo.c·foo.h</pre><p>Falls·Sie·<code·class="filename">foo.h</code>·verändern | 868 | » auftauchen:</p><pre·class="programlisting">foo.o:·foo.c·foo.h</pre><p>Falls·Sie·<code·class="filename">foo.h</code>·verändern |
869 | » werden·beim·nächsten·Aufruf·von·<code·class="command">make</code> | 869 | » werden·beim·nächsten·Aufruf·von·<code·class="command">make</code> |
870 | » alle·Dateien,·die·von·<code·class="filename">foo.h</code> | 870 | » alle·Dateien,·die·von·<code·class="filename">foo.h</code> |
871 | » abhängen,·neu·kompiliert.</p><p>Vergessen·Sie·nicht·jedes·mal | 871 | » abhängen,·neu·kompiliert.</p><p>Vergessen·Sie·nicht·jedes·mal |
872 | » <code·class="command">make·depend</code>·aufzurufen,·wenn·Sie·eine | 872 | » <code·class="command">make·depend</code>·aufzurufen,·wenn·Sie·eine |
873 | » include-Datei·zu·einer·Ihrer·Dateien·hinzugefügt | 873 | » include-Datei·zu·einer·Ihrer·Dateien·hinzugefügt |
874 | » haben.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60382392"></a>2.5.4.·FreeBSD·Makefiles</h3></div></div></div><p>Makefiles·können·eher·schwierig·zu·schreiben·sein. | 874 | » haben.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60490936"></a>2.5.4.·FreeBSD·Makefiles</h3></div></div></div><p>Makefiles·können·eher·schwierig·zu·schreiben·sein. |
875 | » Glücklicherweise·kommen·BSD-basierende·Systeme·wie | 875 | » Glücklicherweise·kommen·BSD-basierende·Systeme·wie |
876 | » FreeBSD·mit·einigen·sehr·mächtigen·solcher·Dateien·als | 876 | » FreeBSD·mit·einigen·sehr·mächtigen·solcher·Dateien·als |
877 | » Teil·des·Systems·daher.·Ein·sehr·gutes·Beispiel·dafür·ist | 877 | » Teil·des·Systems·daher.·Ein·sehr·gutes·Beispiel·dafür·ist |
878 | » das·FreeBSD·Portssystem.·Hier·ist·der·grundlegende·Teil·eines | 878 | » das·FreeBSD·Portssystem.·Hier·ist·der·grundlegende·Teil·eines |
879 | » typischen·<code·class="filename">Makefile</code>s·des | 879 | » typischen·<code·class="filename">Makefile</code>s·des |
880 | » Portssystems:</p><pre·class="programlisting">MASTER_SITES=···ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/ | 880 | » Portssystems:</p><pre·class="programlisting">MASTER_SITES=···ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/ |
881 | DISTFILES=······scheme-microcode+dist-7.3-freebsd.tgz | 881 | DISTFILES=······scheme-microcode+dist-7.3-freebsd.tgz |
Offset 930, 15 lines modified | Offset 930, 15 lines modified |
930 | » eigene·make-Datei·einfügt!</p><p>Falls·Sie·einen·Blick·in·die·makefiles·des·Systems·werfen | 930 | » eigene·make-Datei·einfügt!</p><p>Falls·Sie·einen·Blick·in·die·makefiles·des·Systems·werfen |
931 | » möchten,·finden·Sie·diese·in | 931 | » möchten,·finden·Sie·diese·in |
932 | » <code·class="filename">/usr/share/mk</code>.·Es·ist·aber·wahrscheinlich | 932 | » <code·class="filename">/usr/share/mk</code>.·Es·ist·aber·wahrscheinlich |
933 | » besser,·wenn·Sie·damit·noch·warten,·bis·Sie·ein·bißchen·mehr | 933 | » besser,·wenn·Sie·damit·noch·warten,·bis·Sie·ein·bißchen·mehr |
934 | » Praxiserfahrung·mit·makefiles·gesammelt·haben,·da·die·dortigen | 934 | » Praxiserfahrung·mit·makefiles·gesammelt·haben,·da·die·dortigen |
935 | » makefiles·sehr·kompliziert·sind·(und·wenn·Sie·sich·diese | 935 | » makefiles·sehr·kompliziert·sind·(und·wenn·Sie·sich·diese |
936 | » ansehen·sollten·Sie·besser·eine·Kanne·starken·Kaffee | 936 | » ansehen·sollten·Sie·besser·eine·Kanne·starken·Kaffee |
937 | » griffbereit·haben!)</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60490296"></a>2.5.5.·Fortgeschrittene·Verwendung·von | 937 | » griffbereit·haben!)</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60548280"></a>2.5.5.·Fortgeschrittene·Verwendung·von |
938 | » <code·class="command">make</code></h3></div></div></div><p><code·class="command">Make</code>·ist·ein·sehr·mächtiges | 938 | » <code·class="command">make</code></h3></div></div></div><p><code·class="command">Make</code>·ist·ein·sehr·mächtiges |
939 | » Werkzeug·und·kann·noch·sehr·viel·mehr·als·die·gezeigten | 939 | » Werkzeug·und·kann·noch·sehr·viel·mehr·als·die·gezeigten |
940 | » einfachen·Beispiele·weiter·oben.·Bedauerlicherweise·gibt·es | 940 | » einfachen·Beispiele·weiter·oben.·Bedauerlicherweise·gibt·es |
941 | » mehrere·verschiedene·Versionen·von·<code·class="command">make</code>, | 941 | » mehrere·verschiedene·Versionen·von·<code·class="command">make</code>, |
942 | » und·sie·alle·unterscheiden·sich·beträchtlich·voneinander. | 942 | » und·sie·alle·unterscheiden·sich·beträchtlich·voneinander. |
943 | » Der·beste·Weg·herauszufinden·was·sie·können·ist | 943 | » Der·beste·Weg·herauszufinden·was·sie·können·ist |
944 | » wahrscheinlich·deren·Dokumentation·zu·lesen—hoffentlich | 944 | » wahrscheinlich·deren·Dokumentation·zu·lesen—hoffentlich |
Offset 959, 15 lines modified | Offset 959, 15 lines modified |
959 | » <code·class="filename">/usr/local/info</code>·um·einen·entsprechenden | 959 | » <code·class="filename">/usr/local/info</code>·um·einen·entsprechenden |
960 | » Eintrag·erweitern.·Dies·beinhaltet·das·Einfügen·einer | 960 | » Eintrag·erweitern.·Dies·beinhaltet·das·Einfügen·einer |
961 | » Zeile·wie</p><pre·class="programlisting">·*·Make:·(make).·················The·GNU·Make·utility.</pre><p>in·die·Datei.·Nachdem·Sie·dies·getan·haben·können | 961 | » Zeile·wie</p><pre·class="programlisting">·*·Make:·(make).·················The·GNU·Make·utility.</pre><p>in·die·Datei.·Nachdem·Sie·dies·getan·haben·können |
962 | » Sie·<strong·class="userinput"><code>info</code></strong>·eingeben·und·dann·den | 962 | » Sie·<strong·class="userinput"><code>info</code></strong>·eingeben·und·dann·den |
963 | » Menüeintrag·<span·class="guimenuitem">make</span> | 963 | » Menüeintrag·<span·class="guimenuitem">make</span> |
964 | » auswählen·(oder·Sie·können·in | 964 | » auswählen·(oder·Sie·können·in |
965 | » <span·class="application">Emacs</span>·die·Tastenkombination | 965 | » <span·class="application">Emacs</span>·die·Tastenkombination |
966 | » <strong·class="userinput"><code>C-h·i</code></strong>·verwenden).</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="debugging"></a>2.6.·Debuggen</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60535352"></a>2.6.1.·Der·Debugger</h3></div></div></div><p>Der·Debugger·bei·FreeBSD·heißt | 966 | » <strong·class="userinput"><code>C-h·i</code></strong>·verwenden).</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="debugging"></a>2.6.·Debuggen</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60592440"></a>2.6.1.·Der·Debugger</h3></div></div></div><p>Der·Debugger·bei·FreeBSD·heißt |
967 | » <code·class="command">gdb</code>·(<span·class="application">GNU | 967 | » <code·class="command">gdb</code>·(<span·class="application">GNU |
968 | » debugger</span>).·Sie·können·Ihn·durch·die·Eingabe | 968 | » debugger</span>).·Sie·können·Ihn·durch·die·Eingabe |
969 | » von</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>gdb·progname</code></strong></pre><p>starten,·wobei·viele·Leute·ihn·vorzugsweise | 969 | » von</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>gdb·progname</code></strong></pre><p>starten,·wobei·viele·Leute·ihn·vorzugsweise |
970 | » innerhalb·von·<span·class="application">Emacs</span>·aufrufen.·Sie | 970 | » innerhalb·von·<span·class="application">Emacs</span>·aufrufen.·Sie |
971 | » erreichen·dies·durch·die·Eingabe·von:</p><pre·class="screen"><strong·class="userinput"><code>M-x·gdb·RET·progname·RET</code></strong></pre><p>Die·Verwendung·eines·Debuggers·erlaubt·Ihnen·Ihr | 971 | » erreichen·dies·durch·die·Eingabe·von:</p><pre·class="screen"><strong·class="userinput"><code>M-x·gdb·RET·progname·RET</code></strong></pre><p>Die·Verwendung·eines·Debuggers·erlaubt·Ihnen·Ihr |
972 | » Programm·unter·kontrollierteren·Bedingungen·ausführen·zu | 972 | » Programm·unter·kontrollierteren·Bedingungen·ausführen·zu |
973 | » können.·Typischerweise·können·Sie·so·Zeile·für | 973 | » können.·Typischerweise·können·Sie·so·Zeile·für |
Offset 983, 15 lines modified | Offset 983, 15 lines modified |
983 | » wir·in·diesem·Abschnitt·behandeln·werden.</p><p>Der·<code·class="command">gdb</code>·besitzt·eine·recht·gute | 983 | » wir·in·diesem·Abschnitt·behandeln·werden.</p><p>Der·<code·class="command">gdb</code>·besitzt·eine·recht·gute |
984 | » Online-Hilfe,·sowie·einen·Satz·von·Info-Seiten,·weshalb·sich | 984 | » Online-Hilfe,·sowie·einen·Satz·von·Info-Seiten,·weshalb·sich |
985 | » dieser·Abschnitt·auf·ein·paar·grundlegende·Befehle | 985 | » dieser·Abschnitt·auf·ein·paar·grundlegende·Befehle |
986 | » beschränken·wird.</p><p>Falls·Sie·den·textbasierten·Kommandozeilen-Stil | 986 | » beschränken·wird.</p><p>Falls·Sie·den·textbasierten·Kommandozeilen-Stil |
987 | » abstoßend·finden·gibt·es·ein·graphisches·Front-End | 987 | » abstoßend·finden·gibt·es·ein·graphisches·Front-End |
988 | » dafür·(<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/devel/xxgdb/pkg-descr">devel/xxgdb</a>)·in·der·Ports-Sammlung.</p><p>Dieser·Abschnitt·ist·als·Einführung·in·die | 988 | » dafür·(<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/devel/xxgdb/pkg-descr">devel/xxgdb</a>)·in·der·Ports-Sammlung.</p><p>Dieser·Abschnitt·ist·als·Einführung·in·die |
989 | » Verwendung·des·<code·class="command">gdb</code>·gedacht·und·beinhaltet | 989 | » Verwendung·des·<code·class="command">gdb</code>·gedacht·und·beinhaltet |
990 | » nicht·spezielle·Themen·wie·das·Debuggen·des·Kernels.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60553016"></a>2.6.2.·Ein·Programm·im·Debugger·ausführen</h3></div></div></div><p>Sie·müssen·das·Programm·mit·der·Option | 990 | » nicht·spezielle·Themen·wie·das·Debuggen·des·Kernels.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60614968"></a>2.6.2.·Ein·Programm·im·Debugger·ausführen</h3></div></div></div><p>Sie·müssen·das·Programm·mit·der·Option |
991 | » <code·class="option">-g</code>·kompiliert·haben·um·den | 991 | » <code·class="option">-g</code>·kompiliert·haben·um·den |
992 | » <code·class="command">gdb</code>·effektiv·einsetzen·zu·können.·Es | 992 | » <code·class="command">gdb</code>·effektiv·einsetzen·zu·können.·Es |
993 | » geht·auch·ohne·diese·Option,·allerdings·werden·Sie·dann·nur | 993 | » geht·auch·ohne·diese·Option,·allerdings·werden·Sie·dann·nur |
994 | » den·Namen·der·Funktion·sehen,·in·der·Sie·sich·gerade·befinden, | 994 | » den·Namen·der·Funktion·sehen,·in·der·Sie·sich·gerade·befinden, |
995 | » anstatt·direkt·den·zugehörigen·Quelltext.·Falls·Sie·eine | 995 | » anstatt·direkt·den·zugehörigen·Quelltext.·Falls·Sie·eine |
996 | » Meldung·wie·die·folgende·sehen:</p><pre·class="screen">…·(no·debugging·symbols·found)·…</pre><p>wenn·der·<code·class="command">gdb</code>·gestartet·wird,·dann | 996 | » Meldung·wie·die·folgende·sehen:</p><pre·class="screen">…·(no·debugging·symbols·found)·…</pre><p>wenn·der·<code·class="command">gdb</code>·gestartet·wird,·dann |
997 | » wissen·Sie,·daß·das·Programm·nicht·mit·der·Option | 997 | » wissen·Sie,·daß·das·Programm·nicht·mit·der·Option |
Offset 1078, 15 lines modified | Offset 1078, 15 lines modified |
1078 | » ··<code·class="command">up</code>·und·<code·class="command">down</code>·im | 1078 | » ··<code·class="command">up</code>·und·<code·class="command">down</code>·im |
1079 | » ··Aufruf-Stack·umher·bewegen.·Dabei·wird·der·Name·der·Funktion | 1079 | » ··Aufruf-Stack·umher·bewegen.·Dabei·wird·der·Name·der·Funktion |
1080 | » ··sowie·der·übergebenen·Argumente·angezeigt,·was·uns | 1080 | » ··sowie·der·übergebenen·Argumente·angezeigt,·was·uns |
1081 | » ··dabei·hilft,·die·Übersicht·zu·behalten.·(Der·Stack·ist | 1081 | » ··dabei·hilft,·die·Übersicht·zu·behalten.·(Der·Stack·ist |
1082 | » ··ein·Speicherbereich,·in·dem·ein·Programm·Informationen | 1082 | » ··ein·Speicherbereich,·in·dem·ein·Programm·Informationen |
1083 | » ··über·die·an·eine·Funktion·übergebenen·Argumente | 1083 | » ··über·die·an·eine·Funktion·übergebenen·Argumente |
1084 | » ··ablegt,·sowie·die·Rücksprungadresse·eines | 1084 | » ··ablegt,·sowie·die·Rücksprungadresse·eines |
1085 | » ··Funktionsaufrufes).</p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60664376"></a>2.6.3.·Eine·Kernspeicherdatei·untersuchen</h3></div></div></div><p>Eine·Kernspeicherdatei·ist·im·Prinzip·eine·Datei,·die·den | 1085 | » ··Funktionsaufrufes).</p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60727224"></a>2.6.3.·Eine·Kernspeicherdatei·untersuchen</h3></div></div></div><p>Eine·Kernspeicherdatei·ist·im·Prinzip·eine·Datei,·die·den |
1086 | » vollständigen·Zustand·eines·Prozesses·enthält,·als | 1086 | » vollständigen·Zustand·eines·Prozesses·enthält,·als |
1087 | » dieses·abgestürzt·ist.·In·<span·class="quote">„<span·class="quote">den·guten·alten | 1087 | » dieses·abgestürzt·ist.·In·<span·class="quote">„<span·class="quote">den·guten·alten |
1088 | » Zeiten</span>“</span>·mußten·Programmierer·hexadezimale·Listen | 1088 | » Zeiten</span>“</span>·mußten·Programmierer·hexadezimale·Listen |
1089 | » der·Kernspeicherdatei·ausdrucken·und·über | 1089 | » der·Kernspeicherdatei·ausdrucken·und·über |
1090 | » Maschinencodehandbüchern·schwitzen,·aber·heutzutage·ist | 1090 | » Maschinencodehandbüchern·schwitzen,·aber·heutzutage·ist |
1091 | » das·Leben·etwas·einfacher·geworden.·Zufälligerweise·wird | 1091 | » das·Leben·etwas·einfacher·geworden.·Zufälligerweise·wird |
1092 | » die·Kernspeicherdatei·unter·FreeBSD·und·anderen | 1092 | » die·Kernspeicherdatei·unter·FreeBSD·und·anderen |
Offset 1124, 15 lines modified | Offset 1124, 15 lines modified |
1124 | » auszugeben:</p><pre·class="screen">(gdb)·<strong·class="userinput"><code>bt</code></strong> | 1124 | » auszugeben:</p><pre·class="screen">(gdb)·<strong·class="userinput"><code>bt</code></strong> |
1125 | #0··0x164a·in·bazz·(anint=0x5)·at·temp.c:17 | 1125 | #0··0x164a·in·bazz·(anint=0x5)·at·temp.c:17 |
1126 | #1··0xefbfd888·in·end·() | 1126 | #1··0xefbfd888·in·end·() |
1127 | #2··0x162c·in·main·()·at·temp.c:11 | 1127 | #2··0x162c·in·main·()·at·temp.c:11 |
1128 | (gdb)</pre><p>Die·Funktion·<code·class="function">end()</code>·wird·aufgerufen, | 1128 | (gdb)</pre><p>Die·Funktion·<code·class="function">end()</code>·wird·aufgerufen, |
1129 | » wenn·ein·Programm·abstürzt;·in·diesem·Fall·wurde·die | 1129 | » wenn·ein·Programm·abstürzt;·in·diesem·Fall·wurde·die |
1130 | » Funktion·<code·class="function">bazz()</code>·aus·der | 1130 | » Funktion·<code·class="function">bazz()</code>·aus·der |
1131 | » <code·class="function">main()</code>-Funktion·heraus·aufgerufen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60710328"></a>2.6.4.·Ein·bereits·laufendes·Programm·untersuchen</h3></div></div></div><p>Eine·der·tollsten·Features·des·<code·class="command">gdb</code> | 1131 | » <code·class="function">main()</code>-Funktion·heraus·aufgerufen.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60769208"></a>2.6.4.·Ein·bereits·laufendes·Programm·untersuchen</h3></div></div></div><p>Eine·der·tollsten·Features·des·<code·class="command">gdb</code> |
1132 | » ist·die·Möglichkeit,·damit·bereits·laufende·Programme·zu | 1132 | » ist·die·Möglichkeit,·damit·bereits·laufende·Programme·zu |
1133 | » untersuchen.·Dies·bedeutet·natürlich,·daß·Sie·die | 1133 | » untersuchen.·Dies·bedeutet·natürlich,·daß·Sie·die |
1134 | » erforderlichen·Rechte·dafür·besitzen.·Ein·häufig | 1134 | » erforderlichen·Rechte·dafür·besitzen.·Ein·häufig |
1135 | » auftretendes·Problem·ist·das·Untersuchen·eines·Programmes, | 1135 | » auftretendes·Problem·ist·das·Untersuchen·eines·Programmes, |
1136 | » welches·sich·selber·forkt.·Vielleicht·will·man·den·Kindprozess | 1136 | » welches·sich·selber·forkt.·Vielleicht·will·man·den·Kindprozess |
1137 | » untersuchen,·aber·der·Debugger·erlaubt·einem·nur·den·Zugriff | 1137 | » untersuchen,·aber·der·Debugger·erlaubt·einem·nur·den·Zugriff |
1138 | » auf·den·Elternprozess.</p><p>Was·Sie·an·solch·einer·Stelle·machen·ist,·Sie·starten | 1138 | » auf·den·Elternprozess.</p><p>Was·Sie·an·solch·einer·Stelle·machen·ist,·Sie·starten |
Offset 1155, 20 lines modified | Offset 1155, 20 lines modified |
1155 | » » sleep(10);» /*·Wait·until·someone·attaches·to·us·*/ | 1155 | » » sleep(10);» /*·Wait·until·someone·attaches·to·us·*/ |
1156 | » <em·class="lineannotation"><span·class="lineannotation">…</span></em> | 1156 | » <em·class="lineannotation"><span·class="lineannotation">…</span></em> |
1157 | }·else·{» » » /*·parent·*/ | 1157 | }·else·{» » » /*·parent·*/ |
1158 | » <em·class="lineannotation"><span·class="lineannotation">…</span></em></pre><p>Alles·was·Sie·jetzt·noch·tun·müssen·ist,·sich·an | 1158 | » <em·class="lineannotation"><span·class="lineannotation">…</span></em></pre><p>Alles·was·Sie·jetzt·noch·tun·müssen·ist,·sich·an |
1159 | » den·Kindprozess·ranzuhängen,·<span·class="symbol">PauseMode</span> | 1159 | » den·Kindprozess·ranzuhängen,·<span·class="symbol">PauseMode</span> |
1160 | » auf·<code·class="literal">0</code>·zu·setzen·und·auf·den | 1160 | » auf·<code·class="literal">0</code>·zu·setzen·und·auf·den |
1161 | » <code·class="function">sleep()</code>·Funktionsaufruf·zu·warten,·um | 1161 | » <code·class="function">sleep()</code>·Funktionsaufruf·zu·warten,·um |
1162 | » zurückzukehren!</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="emacs"></a>2.7.·Emacs·als·Entwicklungsumgebung·verwenden</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60744376"></a>2.7.1.·Emacs</h3></div></div></div><p>Leider·werden·<span·class="trademark">UNIX</span>®-Systeme·nicht·mit·einem | 1162 | » zurückzukehren!</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="emacs"></a>2.7.·Emacs·als·Entwicklungsumgebung·verwenden</h2></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60791480"></a>2.7.1.·Emacs</h3></div></div></div><p>Leider·werden·<span·class="trademark">UNIX</span>®-Systeme·nicht·mit·einem |
1163 | » alles-was-du-jemals-brauchst-und-vieles-mehr-megapaket·an | 1163 | » alles-was-du-jemals-brauchst-und-vieles-mehr-megapaket·an |
1164 | » integrierten·Entwicklungsumgebungen·ausgestattet,·die·bei | 1164 | » integrierten·Entwicklungsumgebungen·ausgestattet,·die·bei |
1165 | » anderen·Systemen·dabei·sind. | 1165 | » anderen·Systemen·dabei·sind. |
| |
1166 | » <a·href="#ftn.idp60752312"·class="footnote"·id="idp60752312"><sup·class="footnote">[7]</sup></a> | 1166 | » <a·href="#ftn.idp60795192"·class="footnote"·id="idp60795192"><sup·class="footnote">[7]</sup></a> |
| |
1167 | » Trotzdem·ist·es·möglich,·seine·eigene | 1167 | » Trotzdem·ist·es·möglich,·seine·eigene |
1168 | » Entwicklungsumgebung·aufzusetzen.·Diese·wird·vielleicht·nicht | 1168 | » Entwicklungsumgebung·aufzusetzen.·Diese·wird·vielleicht·nicht |
1169 | » so·hübsch·und·integriert·sein,·aber·dafür | 1169 | » so·hübsch·und·integriert·sein,·aber·dafür |
1170 | » können·Sie·sie·Ihren·eigenen·Wünschen·anpassen.·Und | 1170 | » können·Sie·sie·Ihren·eigenen·Wünschen·anpassen.·Und |
1171 | » sie·ist·frei.·Und·Sie·haben·die·Quelltexte·davon.</p><p>Der·Schlüssel·zu·all·dem·ist·Emacs.·Es·gibt·zwar·ein | 1171 | » sie·ist·frei.·Und·Sie·haben·die·Quelltexte·davon.</p><p>Der·Schlüssel·zu·all·dem·ist·Emacs.·Es·gibt·zwar·ein |
1172 | » paar·Leute·die·ihn·hassen,·es·gibt·jedoch·auch·viele·die·ihn | 1172 | » paar·Leute·die·ihn·hassen,·es·gibt·jedoch·auch·viele·die·ihn |
Offset 1262, 15 lines modified | Offset 1262, 15 lines modified |
1262 | » eingeben.·Falls·Sie·noch·irgendwelche·ungespeicherten·Dateien | 1262 | » eingeben.·Falls·Sie·noch·irgendwelche·ungespeicherten·Dateien |
1263 | » offen·haben·wird·Emacs·Sie·fragen·ob·Sie·diese·speichern | 1263 | » offen·haben·wird·Emacs·Sie·fragen·ob·Sie·diese·speichern |
1264 | » wollen.·(Ignorieren·Sie·bitte·die·Stelle·der·Dokumentation,·an | 1264 | » wollen.·(Ignorieren·Sie·bitte·die·Stelle·der·Dokumentation,·an |
1265 | » der·gesagt·wird,·daß·<code·class="command">C-z</code>·der | 1265 | » der·gesagt·wird,·daß·<code·class="command">C-z</code>·der |
1266 | » übliche·Weg·ist,·Emacs·zu·verlassen—dadurch·wird | 1266 | » übliche·Weg·ist,·Emacs·zu·verlassen—dadurch·wird |
1267 | » der·Emacs·in·den·Hintergrund·geschaltet,·was·nur·nützlich | 1267 | » der·Emacs·in·den·Hintergrund·geschaltet,·was·nur·nützlich |
1268 | » ist,·wenn·Sie·an·einem·System·ohne·virtuelle·Terminals | 1268 | » ist,·wenn·Sie·an·einem·System·ohne·virtuelle·Terminals |
1269 | » arbeiten).</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60827320"></a>2.7.2.·Emacs·konfigurieren</h3></div></div></div><p>Emacs·kann·viele·wundervolle·Dinge;·manche·dieser·Dinge | 1269 | » arbeiten).</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60884664"></a>2.7.2.·Emacs·konfigurieren</h3></div></div></div><p>Emacs·kann·viele·wundervolle·Dinge;·manche·dieser·Dinge |
1270 | » sind·schon·eingebaut,·andere·müssen·erst·konfiguriert | 1270 | » sind·schon·eingebaut,·andere·müssen·erst·konfiguriert |
1271 | » werden.</p><p>Anstelle·einer·proprietären·Macrosprache·verwendet | 1271 | » werden.</p><p>Anstelle·einer·proprietären·Macrosprache·verwendet |
1272 | » der·Emacs·für·die·Konfiguration·eine·speziell·für | 1272 | » der·Emacs·für·die·Konfiguration·eine·speziell·für |
1273 | » Editoren·angepaßte·Version·von·Lisp,·auch·bekannt·als | 1273 | » Editoren·angepaßte·Version·von·Lisp,·auch·bekannt·als |
1274 | » Emacs·Lisp.·Das·Arbeiten·mit·Emacs·Lisp·kann·sehr·hilfreich | 1274 | » Emacs·Lisp.·Das·Arbeiten·mit·Emacs·Lisp·kann·sehr·hilfreich |
1275 | » sein,·wenn·Sie·darauf·aufbauend·etwas·wie·Common·Lisp·lernen | 1275 | » sein,·wenn·Sie·darauf·aufbauend·etwas·wie·Common·Lisp·lernen |
1276 | » möchten.·Emacs·Lisp·hat·viele·Features·von·Common·Lisp | 1276 | » möchten.·Emacs·Lisp·hat·viele·Features·von·Common·Lisp |
Offset 1280, 15 lines modified | Offset 1280, 15 lines modified |
1280 | » Tutorial</a>·herunterzuladen.</p><p>Es·ist·jedoch·keine·Kenntnis·von·Lisp·erforderlich,·um | 1280 | » Tutorial</a>·herunterzuladen.</p><p>Es·ist·jedoch·keine·Kenntnis·von·Lisp·erforderlich,·um |
1281 | » mit·der·Konfiguration·von·Emacs·zu·beginnen,·da·ich·eine | 1281 | » mit·der·Konfiguration·von·Emacs·zu·beginnen,·da·ich·eine |
1282 | » beispielhafte·<code·class="filename">.emacs</code>-Datei·hier | 1282 | » beispielhafte·<code·class="filename">.emacs</code>-Datei·hier |
1283 | » eingefügt·habe,·die·für·den·Anfang·ausreichen | 1283 | » eingefügt·habe,·die·für·den·Anfang·ausreichen |
1284 | » sollte.·Kopieren·Sie·diese·einfach·in·Ihr·Heimverzeichnis·und | 1284 | » sollte.·Kopieren·Sie·diese·einfach·in·Ihr·Heimverzeichnis·und |
1285 | » starten·Sie·den·Emacs·neu,·falls·dieser·bereits·läuft;·er | 1285 | » starten·Sie·den·Emacs·neu,·falls·dieser·bereits·läuft;·er |
1286 | » wird·die·Befehle·aus·der·Datei·lesen·und·Ihnen·(hoffentlich) | 1286 | » wird·die·Befehle·aus·der·Datei·lesen·und·Ihnen·(hoffentlich) |
1287 | » eine·brauchbare·Grundeinstellung·bieten.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63337272"></a>2.7.3.·Eine·beispielhafte·<code·class="filename">.emacs</code>-Datei</h3></div></div></div><p>Bedauerlicherweise·gibt·es·hier·viel·zu·viel,·um·es·im | 1287 | » eine·brauchbare·Grundeinstellung·bieten.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63132472"></a>2.7.3.·Eine·beispielhafte·<code·class="filename">.emacs</code>-Datei</h3></div></div></div><p>Bedauerlicherweise·gibt·es·hier·viel·zu·viel,·um·es·im |
1288 | » Detail·zu·erklären;·es·gibt·jedoch·ein·oder·zwei·Punkte, | 1288 | » Detail·zu·erklären;·es·gibt·jedoch·ein·oder·zwei·Punkte, |
1289 | » die·besonders·erwähnenswert·sind.</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Alles·was·mit·einem·<code·class="literal">;</code>·anfängt | 1289 | » die·besonders·erwähnenswert·sind.</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Alles·was·mit·einem·<code·class="literal">;</code>·anfängt |
1290 | » ····ist·ein·Kommentar·und·wird·von·Emacs·ignoriert.</p></li><li·class="listitem"><p>In·der·ersten·Zeile·mit | 1290 | » ····ist·ein·Kommentar·und·wird·von·Emacs·ignoriert.</p></li><li·class="listitem"><p>In·der·ersten·Zeile·mit |
1291 | » ····<code·class="literal">-*- Emacs-Lisp -*-</code>·sorgt | 1291 | » ····<code·class="literal">-*- Emacs-Lisp -*-</code>·sorgt |
1292 | » ····dafür,·daß·wir·die·Datei | 1292 | » ····dafür,·daß·wir·die·Datei |
1293 | » ····<code·class="filename">.emacs</code>·in·Emacs·selber·editieren | 1293 | » ····<code·class="filename">.emacs</code>·in·Emacs·selber·editieren |
1294 | » ····können·und·uns·damit·alle·tollen·Features·zum | 1294 | » ····können·und·uns·damit·alle·tollen·Features·zum |
Offset 1322, 16 lines modified | Offset 1322, 16 lines modified |
1322 | » ····Server·zu·agieren,·so·daß·wenn·Sie·etwas | 1322 | » ····Server·zu·agieren,·so·daß·wenn·Sie·etwas |
1323 | » ····außerhalb·von·Emacs·machen·und·eine·Datei·editieren | 1323 | » ····außerhalb·von·Emacs·machen·und·eine·Datei·editieren |
1324 | » ····möchten,·Sie·einfach·das·folgende·eingeben | 1324 | » ····möchten,·Sie·einfach·das·folgende·eingeben |
1325 | » ····können</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>emacsclient·filename</code></strong> | 1325 | » ····können</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>emacsclient·filename</code></strong> |
1326 | » ··</pre><p>und·dann·die·Datei·in·Ihrem·Emacs·editieren | 1326 | » ··</pre><p>und·dann·die·Datei·in·Ihrem·Emacs·editieren |
1327 | » ····können! | 1327 | » ····können! |
| |
1328 | » ····<a·href="#ftn.idp63349816"·class="footnote"·id="idp63349816"><sup·class="footnote">[8]</sup></a> | 1328 | » ····<a·href="#ftn.idp63394872"·class="footnote"·id="idp63394872"><sup·class="footnote">[8]</sup></a> |
1329 | » ··</p></li></ul></div><div·class="example"><a·id="idp63351736"></a><div·class="example-title">Beispiel·2.1.·Eine·einfache·<code·class="filename">.emacs</code>-Datei</div><div·class="example-contents"><pre·class="programlisting">;;·-*-Emacs-Lisp-*- | 1329 | » ··</p></li></ul></div><div·class="example"><a·id="idp63396792"></a><div·class="example-title">Beispiel·2.1.·Eine·einfache·<code·class="filename">.emacs</code>-Datei</div><div·class="example-contents"><pre·class="programlisting">;;·-*-Emacs-Lisp-*- |
| |
1330 | ;;·This·file·is·designed·to·be·re-evaled;·use·the·variable·first-time | 1330 | ;;·This·file·is·designed·to·be·re-evaled;·use·the·variable·first-time |
1331 | ;;·to·avoid·any·problems·with·this. | 1331 | ;;·to·avoid·any·problems·with·this. |
1332 | (defvar·first-time·t | 1332 | (defvar·first-time·t |
1333 | ··"Flag·signifying·this·is·the·first·time·that·.emacs·has·been·evaled") | 1333 | ··"Flag·signifying·this·is·the·first·time·that·.emacs·has·been·evaled") |
| |
1334 | ;;·Meta | 1334 | ;;·Meta |
Offset 1606, 15 lines modified | Offset 1606, 15 lines modified |
| |
1606 | ;;·No·need·to·debug·anything·now | 1606 | ;;·No·need·to·debug·anything·now |
| |
1607 | (setq·debug-on-error·nil) | 1607 | (setq·debug-on-error·nil) |
| |
1608 | ;;·All·done | 1608 | ;;·All·done |
1609 | (message·"All·done,·%s%s"·(user-login-name)·".") | 1609 | (message·"All·done,·%s%s"·(user-login-name)·".") |
1610 | » </pre></div></div><br·class="example-break"·/></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63353400"></a>2.7.4.·Erweitern·des·von·Emacs·unterstützten·Sprachbereichs</h3></div></div></div><p>Das·ist·jetzt·alles·sehr·schön·wenn·Sie | 1610 | » </pre></div></div><br·class="example-break"·/></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63398456"></a>2.7.4.·Erweitern·des·von·Emacs·unterstützten·Sprachbereichs</h3></div></div></div><p>Das·ist·jetzt·alles·sehr·schön·wenn·Sie |
1611 | » ausschließlich·in·einer·der·Sprachen·programmieren | 1611 | » ausschließlich·in·einer·der·Sprachen·programmieren |
1612 | » wollen,·um·die·wir·uns·bereits·in·der | 1612 | » wollen,·um·die·wir·uns·bereits·in·der |
1613 | » <code·class="filename">.emacs</code>-Datei·gekümmert·haben·(C, | 1613 | » <code·class="filename">.emacs</code>-Datei·gekümmert·haben·(C, |
1614 | » C++,·Perl,·Lisp·und·Scheme),·aber·was·passiert·wenn·eine·neue | 1614 | » C++,·Perl,·Lisp·und·Scheme),·aber·was·passiert·wenn·eine·neue |
1615 | » Sprache·namens·<span·class="quote">„<span·class="quote">whizbang</span>“</span>·herauskommt,·mit·jeder | 1615 | » Sprache·namens·<span·class="quote">„<span·class="quote">whizbang</span>“</span>·herauskommt,·mit·jeder |
1616 | » Menge·neuen·tollen·Features?</p><p>Als·erstes·muß·festgestellt·werden,·ob·whizbang·mit | 1616 | » Menge·neuen·tollen·Features?</p><p>Als·erstes·muß·festgestellt·werden,·ob·whizbang·mit |
1617 | » irgendwelchen·Dateien·daherkommt,·die·Emacs·etwas·über | 1617 | » irgendwelchen·Dateien·daherkommt,·die·Emacs·etwas·über |
Offset 1678, 35 lines modified | Offset 1678, 35 lines modified |
1678 | » Addison-Wesley·1991 | 1678 | » Addison-Wesley·1991 |
1679 | » ISBN·0-201-53992-6</p></li><li·class="listitem"><p>W.·Richard·Stevens | 1679 | » ISBN·0-201-53992-6</p></li><li·class="listitem"><p>W.·Richard·Stevens |
1680 | » ··<span·class="emphasis"><em>Advanced·Programming·in·the·Unix·Environment</em></span> | 1680 | » ··<span·class="emphasis"><em>Advanced·Programming·in·the·Unix·Environment</em></span> |
1681 | » ··Addison-Wesley·1992 | 1681 | » ··Addison-Wesley·1992 |
1682 | » ··ISBN·0-201-56317-7</p></li><li·class="listitem"><p>W.·Richard·Stevens | 1682 | » ··ISBN·0-201-56317-7</p></li><li·class="listitem"><p>W.·Richard·Stevens |
1683 | » ··<span·class="emphasis"><em>Unix·Network·Programming</em></span> | 1683 | » ··<span·class="emphasis"><em>Unix·Network·Programming</em></span> |
1684 | » ··Prentice-Hall·1990 | 1684 | » ··Prentice-Hall·1990 |
1685 | » ··ISBN·0-13-949876-1</p></li></ul></div></div><div·class="footnotes"><br·/><hr·class="footnote-hr"·/><div·id="ftn.idp59671480"·class="footnote"><p><a·href="#idp59671480"·class="para"><sup·class="para">[1]·</sup></a>Wenn·die·Anwendung·über·eine·Eingabeaufforderung | 1685 | » ··ISBN·0-13-949876-1</p></li></ul></div></div><div·class="footnotes"><br·/><hr·class="footnote-hr"·/><div·id="ftn.idp59739960"·class="footnote"><p><a·href="#idp59739960"·class="para"><sup·class="para">[1]·</sup></a>Wenn·die·Anwendung·über·eine·Eingabeaufforderung |
1686 | » ····gestartet·wird·könnte·bei·Auftreten·eines | 1686 | » ····gestartet·wird·könnte·bei·Auftreten·eines |
1687 | » ····Programmfehlers·dieses·abgebrochen·und·ein·Speicherabbild | 1687 | » ····Programmfehlers·dieses·abgebrochen·und·ein·Speicherabbild |
1688 | » ····erzeugt·werden.</p></div><div·id="ftn.idp59713720"·class="footnote"><p><a·href="#idp59713720"·class="para"><sup·class="para">[2]·</sup></a>Um·genau·zu·sein·übersetzt·der | 1688 | » ····erzeugt·werden.</p></div><div·id="ftn.idp59766328"·class="footnote"><p><a·href="#idp59766328"·class="para"><sup·class="para">[2]·</sup></a>Um·genau·zu·sein·übersetzt·der |
1689 | » ······<code·class="command">cc</code>·den·Quelltext·an·dieser·Stelle | 1689 | » ······<code·class="command">cc</code>·den·Quelltext·an·dieser·Stelle |
1690 | » ······nicht·in·Assemblersprache,·sondern·in·seine·eigene, | 1690 | » ······nicht·in·Assemblersprache,·sondern·in·seine·eigene, |
1691 | » ······maschinenunabhängige·Sprache·namens | 1691 | » ······maschinenunabhängige·Sprache·namens |
1692 | » ······<em·class="firstterm">p-code</em>.</p></div><div·id="ftn.idp59760312"·class="footnote"><p><a·href="#idp59760312"·class="para"><sup·class="para">[3]·</sup></a>Falls·Sie·es·nicht·wußten,·Binary·Sort·ist,·im | 1692 | » ······<em·class="firstterm">p-code</em>.</p></div><div·id="ftn.idp59798200"·class="footnote"><p><a·href="#idp59798200"·class="para"><sup·class="para">[3]·</sup></a>Falls·Sie·es·nicht·wußten,·Binary·Sort·ist,·im |
1693 | » ··Gegensatz·zu·Bubble·Sort,·eine·effektive·Möglichkeit, | 1693 | » ··Gegensatz·zu·Bubble·Sort,·eine·effektive·Möglichkeit, |
1694 | » ··Dinge·zu·sortieren.</p></div><div·id="ftn.idp59783992"·class="footnote"><p><a·href="#idp59783992"·class="para"><sup·class="para">[4]·</sup></a>Der·Grund·dafür·ist·im·Haufen·der·Geschichte | 1694 | » ··Dinge·zu·sortieren.</p></div><div·id="ftn.idp59808312"·class="footnote"><p><a·href="#idp59808312"·class="para"><sup·class="para">[4]·</sup></a>Der·Grund·dafür·ist·im·Haufen·der·Geschichte |
1695 | » » begraben.</p></div><div·id="ftn.idp59815096"·class="footnote"><p><a·href="#idp59815096"·class="para"><sup·class="para">[5]·</sup></a>Beachten·Sie,·daß·an·dieser·Stelle·die | 1695 | » » begraben.</p></div><div·id="ftn.idp59852088"·class="footnote"><p><a·href="#idp59852088"·class="para"><sup·class="para">[5]·</sup></a>Beachten·Sie,·daß·an·dieser·Stelle·die |
1696 | » » Option·<code·class="option">-o</code>·zum·Festlegen·des·Namens | 1696 | » » Option·<code·class="option">-o</code>·zum·Festlegen·des·Namens |
1697 | » » der·ausführbaren·Datei·nicht·verwendet·wurde, | 1697 | » » der·ausführbaren·Datei·nicht·verwendet·wurde, |
1698 | » » weswegen·an·dieser·Stelle·die·erzeugte·Datei | 1698 | » » weswegen·an·dieser·Stelle·die·erzeugte·Datei |
1699 | » » <code·class="filename">a.out</code>·heißt.·Die·Erzeugung | 1699 | » » <code·class="filename">a.out</code>·heißt.·Die·Erzeugung |
1700 | » » einer·Debug-Version·namens·<code·class="filename">foobar</code> | 1700 | » » einer·Debug-Version·namens·<code·class="filename">foobar</code> |
1701 | » » ist·als·Übung·dem·Leser·überlassen!</p></div><div·id="ftn.idp60272440"·class="footnote"><p><a·href="#idp60272440"·class="para"><sup·class="para">[6]·</sup></a>Verwenden·Sie·nicht·<code·class="filename">MAKEFILE</code>·mit | 1701 | » » ist·als·Übung·dem·Leser·überlassen!</p></div><div·id="ftn.idp60327224"·class="footnote"><p><a·href="#idp60327224"·class="para"><sup·class="para">[6]·</sup></a>Verwenden·Sie·nicht·<code·class="filename">MAKEFILE</code>·mit |
1702 | » ····lauter·Großbuchstaben,·da·diese·Schreibweise | 1702 | » ····lauter·Großbuchstaben,·da·diese·Schreibweise |
1703 | » ····häufig·für·Dokumentationsdateien·wie | 1703 | » ····häufig·für·Dokumentationsdateien·wie |
1704 | » ····<code·class="filename">README</code>·benutzt·wird.</p></div><div·id="ftn.idp60752312"·class="footnote"><p><a·href="#idp60752312"·class="para"><sup·class="para">[7]·</sup></a>Es·gibt·jetzt·einige·mächtige·und·freie·IDEs·in | 1704 | » ····<code·class="filename">README</code>·benutzt·wird.</p></div><div·id="ftn.idp60795192"·class="footnote"><p><a·href="#idp60795192"·class="para"><sup·class="para">[7]·</sup></a>Es·gibt·jetzt·einige·mächtige·und·freie·IDEs·in |
1705 | » ····der·Ports-Sammlung·wie·etwa·KDevelop.</p></div><div·id="ftn.idp63349816"·class="footnote"><p><a·href="#idp63349816"·class="para"><sup·class="para">[8]·</sup></a>Viele·Emacs-Benutzer·setzen·Ihre | 1705 | » ····der·Ports-Sammlung·wie·etwa·KDevelop.</p></div><div·id="ftn.idp63394872"·class="footnote"><p><a·href="#idp63394872"·class="para"><sup·class="para">[8]·</sup></a>Viele·Emacs-Benutzer·setzen·Ihre |
1706 | » ········<code·class="envar">EDITOR</code>-Umgebungsvariable·auf | 1706 | » ········<code·class="envar">EDITOR</code>-Umgebungsvariable·auf |
1707 | » ········<code·class="literal">emacsclient</code>,·so·daß·dies | 1707 | » ········<code·class="literal">emacsclient</code>,·so·daß·dies |
1708 | » ········immer·passiert,·wenn·sie·eine·Datei·editieren | 1708 | » ········immer·passiert,·wenn·sie·eine·Datei·editieren |
1709 | » ········müssen.</p></div></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="secure"></a>Kapitel·3.·Sicheres·Programmieren</h2></div><div><span·class="authorgroup">Contributed·by·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Murray</span>·<span·class="surname">Stokely</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Hagen</span>·<span·class="surname">Kühl</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#secure-synopsis">3.1.·Zusammenfassung</a></span></dt><dt><span·class="sect1"><a·href="#secure-philosophy">3.2.·Methoden·des·sicheren·Entwurfs</a></span></dt><dt><span·class="sect1"><a·href="#secure-bufferov">3.3.·Puffer-Überläufe</a></span></dt><dt><span·class="sect1"><a·href="#secur·✂ | 1709 | » ········müssen.</p></div></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="secure"></a>Kapitel·3.·Sicheres·Programmieren</h2></div><div><span·class="authorgroup">Contributed·by·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Murray</span>·<span·class="surname">Stokely</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Hagen</span>·<span·class="surname">Kühl</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#secure-synopsis">3.1.·Zusammenfassung</a></span></dt><dt><span·class="sect1"><a·href="#secure-philosophy">3.2.·Methoden·des·sicheren·Entwurfs</a></span></dt><dt><span·class="sect1"><a·href="#secure-bufferov">3.3.·Puffer-Überläufe</a></span></dt><dt><span·class="sect1"><a·href="#secur·✂ |
1710 | ······<span·class="trademark">UNIX</span>®-Programmierer·seit·Jahrzehnten·quälen,·und | 1710 | ······<span·class="trademark">UNIX</span>®-Programmierer·seit·Jahrzehnten·quälen,·und |
1711 | ······inzwischen·verfügbare·Werkzeuge,·die·Programmierern·helfen, | 1711 | ······inzwischen·verfügbare·Werkzeuge,·die·Programmierern·helfen, |
1712 | ······Sicherheitslücken·in·ihrem·Quelltext·zu·vermeiden.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-philosophy"></a>3.2.·Methoden·des·sicheren·Entwurfs</h2></div></div></div><p>Sichere·Anwendungen·zu·schreiben·erfordert·eine·sehr | 1712 | ······Sicherheitslücken·in·ihrem·Quelltext·zu·vermeiden.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-philosophy"></a>3.2.·Methoden·des·sicheren·Entwurfs</h2></div></div></div><p>Sichere·Anwendungen·zu·schreiben·erfordert·eine·sehr |
Offset 1723, 53 lines modified | Offset 1723, 53 lines modified |
1723 | ······zu·machen.·Anwendungen·sollten·Nutzereingaben·(in·allen·Formen) | 1723 | ······zu·machen.·Anwendungen·sollten·Nutzereingaben·(in·allen·Formen) |
1724 | ······niemals·trauen,·genauso·wenig·wie·den·System-Ressourcen, | 1724 | ······niemals·trauen,·genauso·wenig·wie·den·System-Ressourcen, |
1725 | ······der·Inter-Prozess-Kommunikation·oder·dem·zeitlichen·Ablauf·von | 1725 | ······der·Inter-Prozess-Kommunikation·oder·dem·zeitlichen·Ablauf·von |
1726 | ······Ereignissen.·<span·class="trademark">UNIX</span>®-Prozesse·arbeiten·nicht·synchron.·Daher·sind | 1726 | ······Ereignissen.·<span·class="trademark">UNIX</span>®-Prozesse·arbeiten·nicht·synchron.·Daher·sind |
1727 | ······logische·Operationen·selten·atomar.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-bufferov"></a>3.3.·Puffer-Überläufe</h2></div></div></div><p>Puffer-Überläufe·gibt·es·schon·seit·den | 1727 | ······logische·Operationen·selten·atomar.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-bufferov"></a>3.3.·Puffer-Überläufe</h2></div></div></div><p>Puffer-Überläufe·gibt·es·schon·seit·den |
1728 | ······Anfängen·der·Von-Neuman-Architektur·<a·class="xref"·href="#COD">1</a>. | 1728 | ······Anfängen·der·Von-Neuman-Architektur·<a·class="xref"·href="#COD">1</a>. |
| |
1729 | ······<a·id="idp63439416"·class="indexterm"></a> | 1729 | ······<a·id="idp63500856"·class="indexterm"></a> |
1730 | ······<a·id="idp63439928"·class="indexterm"></a> | 1730 | ······<a·id="idp63501368"·class="indexterm"></a> |
| |
1731 | ······Sie·erlangten·zum·ersten·Mal·durch·den·Internetwurm·Morris·im | 1731 | ······Sie·erlangten·zum·ersten·Mal·durch·den·Internetwurm·Morris·im |
1732 | ······Jahre·1988·öffentliche·Bekanntheit.·Unglücklicherweise | 1732 | ······Jahre·1988·öffentliche·Bekanntheit.·Unglücklicherweise |
| |
1733 | ······<a·id="idp63440440"·class="indexterm"></a> | 1733 | ······<a·id="idp63501880"·class="indexterm"></a> |
| |
1734 | ······funktioniert·der·gleiche·grundlegende·Angriff·noch·heute.··Die·bei·weitem | 1734 | ······funktioniert·der·gleiche·grundlegende·Angriff·noch·heute.··Die·bei·weitem |
1735 | ······häufigste·Form·eines·Puffer-Überlauf-Angriffs·basiert·darauf, | 1735 | ······häufigste·Form·eines·Puffer-Überlauf-Angriffs·basiert·darauf, |
1736 | ······den·Stack·zu·korrumpieren.</p><a·id="idp63441080"·class="indexterm"></a><a·id="idp63441592"·class="indexterm"></a><p>Die·meisten·modernen·Computer-Systeme·verwenden·einen | 1736 | ······den·Stack·zu·korrumpieren.</p><a·id="idp63502520"·class="indexterm"></a><a·id="idp63503032"·class="indexterm"></a><p>Die·meisten·modernen·Computer-Systeme·verwenden·einen |
1737 | ······Stack,·um·Argumente·an·Prozeduren·zu·übergeben·und | 1737 | ······Stack,·um·Argumente·an·Prozeduren·zu·übergeben·und |
1738 | ······lokale·Variablen·zu·speichern.·Ein·Stack·ist·ein | 1738 | ······lokale·Variablen·zu·speichern.·Ein·Stack·ist·ein |
1739 | ······last-in-first-out-Puffer·(LIFO)·im·hohen·Speicherbereich | 1739 | ······last-in-first-out-Puffer·(LIFO)·im·hohen·Speicherbereich |
1740 | ······eines·Prozesses.·Wenn·ein·Programm·eine·Funktion | 1740 | ······eines·Prozesses.·Wenn·ein·Programm·eine·Funktion |
| |
1741 | ······<a·id="idp63442360"·class="indexterm"></a> | 1741 | ······<a·id="idp63503800"·class="indexterm"></a> |
1742 | ······<a·id="idp63442872"·class="indexterm"></a> | 1742 | ······<a·id="idp63504312"·class="indexterm"></a> |
| |
1743 | ······aufruft·wird·ein·neuer·"Stackframe"·erzeugt.·Dieser·besteht·aus | 1743 | ······aufruft·wird·ein·neuer·"Stackframe"·erzeugt.·Dieser·besteht·aus |
1744 | ······den·Argumenten,·die·der·Funktion·übergeben·wurden·und | 1744 | ······den·Argumenten,·die·der·Funktion·übergeben·wurden·und |
1745 | ······einem·variabel·grossem·Bereich·für·lokale·Variablen.·Der | 1745 | ······einem·variabel·grossem·Bereich·für·lokale·Variablen.·Der |
1746 | ······"Stack-Pointer"·ist·ein·Register,·dass·die | 1746 | ······"Stack-Pointer"·ist·ein·Register,·dass·die |
| |
1747 | ······<a·id="idp63444024"·class="indexterm"></a> | 1747 | ······<a·id="idp63505464"·class="indexterm"></a> |
1748 | ······<a·id="idp63444536"·class="indexterm"></a> | 1748 | ······<a·id="idp63505976"·class="indexterm"></a> |
| |
1749 | ······aktuelle·Adresse·der·Stack-Spitze·enthält. | 1749 | ······aktuelle·Adresse·der·Stack-Spitze·enthält. |
1750 | ······Da·sich·dieser·Wert·oft·ändert,·wenn·neue·Werte | 1750 | ······Da·sich·dieser·Wert·oft·ändert,·wenn·neue·Werte |
1751 | ······auf·dem·Stack·abgelegt·werden,·bieten·viele·Implementierungen | 1751 | ······auf·dem·Stack·abgelegt·werden,·bieten·viele·Implementierungen |
1752 | ······einen·"Frame-Pointer",·der·nahe·am·Anfang·des·Stack-Frames | 1752 | ······einen·"Frame-Pointer",·der·nahe·am·Anfang·des·Stack-Frames |
1753 | ······liegt·und·es·so·leichter·macht·lokale·Variablen·relativ·zum | 1753 | ······liegt·und·es·so·leichter·macht·lokale·Variablen·relativ·zum |
1754 | ······aktuellen·Stackframe·zu·adressieren.·<a·class="xref"·href="#COD">1</a> | 1754 | ······aktuellen·Stackframe·zu·adressieren.·<a·class="xref"·href="#COD">1</a> |
1755 | ······Die·Rücksprungadresse | 1755 | ······Die·Rücksprungadresse |
| |
1756 | ······<a·id="idp63445432"·class="indexterm"></a> | 1756 | ······<a·id="idp63506872"·class="indexterm"></a> |
1757 | ······<a·id="idp63458232"·class="indexterm"></a> | 1757 | ······<a·id="idp63507384"·class="indexterm"></a> |
1758 | ······<a·id="idp63459384"·class="indexterm"></a> | 1758 | ······<a·id="idp63508536"·class="indexterm"></a> |
1759 | ······<a·id="idp63459896"·class="indexterm"></a> | 1759 | ······<a·id="idp63509048"·class="indexterm"></a> |
| |
1760 | ······der·Funktionen·werden·ebenfalls·auf·dem·Stack | 1760 | ······der·Funktionen·werden·ebenfalls·auf·dem·Stack |
1761 | ······gespeichert·und·das·ist·der·Grund·für | 1761 | ······gespeichert·und·das·ist·der·Grund·für |
1762 | ······Stack-Überlauf-Exploits.·Denn·ein·böswilliger·Nutzer | 1762 | ······Stack-Überlauf-Exploits.·Denn·ein·böswilliger·Nutzer |
1763 | ······kann·die·Rücksprungadresse·der·Funktion·überschreiben | 1763 | ······kann·die·Rücksprungadresse·der·Funktion·überschreiben |
1764 | ······indem·er·eine·lokale·Variable·in·der·Funktion | 1764 | ······indem·er·eine·lokale·Variable·in·der·Funktion |
1765 | ······überlaufen·lässt,·wodurch·es·ihm·möglich·ist | 1765 | ······überlaufen·lässt,·wodurch·es·ihm·möglich·ist |
Offset 1788, 15 lines modified | Offset 1788, 15 lines modified |
1788 | » ······lassen</p></td></tr><tr><td><code·class="function">gets</code>(char·*s)</td><td><p>Kann·den·Puffer·s·überlaufen | 1788 | » ······lassen</p></td></tr><tr><td><code·class="function">gets</code>(char·*s)</td><td><p>Kann·den·Puffer·s·überlaufen |
1789 | » ······lassen</p></td></tr><tr><td><code·class="function">[vf]scanf</code>(const·char | 1789 | » ······lassen</p></td></tr><tr><td><code·class="function">[vf]scanf</code>(const·char |
1790 | » ······*format,·...)</td><td><p>Kann·sein·Argument·überlaufen | 1790 | » ······*format,·...)</td><td><p>Kann·sein·Argument·überlaufen |
1791 | » ······lassen</p></td></tr><tr><td><code·class="function">realpath</code>(char·*path, | 1791 | » ······lassen</p></td></tr><tr><td><code·class="function">realpath</code>(char·*path, |
1792 | » ······char·resolved_path[])</td><td><p>Kann·den·Puffer·path·überlaufen | 1792 | » ······char·resolved_path[])</td><td><p>Kann·den·Puffer·path·überlaufen |
1793 | » ······lassen</p></td></tr><tr><td><code·class="function">[v]sprintf</code>(char·*str, | 1793 | » ······lassen</p></td></tr><tr><td><code·class="function">[v]sprintf</code>(char·*str, |
1794 | » ······const·char·*format,·...)</td><td><p>Kann·den·Puffer·str·überlaufen | 1794 | » ······const·char·*format,·...)</td><td><p>Kann·den·Puffer·str·überlaufen |
1795 | » ······lassen</p></td></tr></tbody></table></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63473592"></a>3.3.1.·Puffer-Überlauf·Beispiel</h3></div></div></div><p>Das·folgende·Quellcode-Beispiel·enthält·einen | 1795 | » ······lassen</p></td></tr></tbody></table></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63535032"></a>3.3.1.·Puffer-Überlauf·Beispiel</h3></div></div></div><p>Das·folgende·Quellcode-Beispiel·enthält·einen |
1796 | » Puffer-Überlauf,·der·darauf·ausgelegt·ist·die | 1796 | » Puffer-Überlauf,·der·darauf·ausgelegt·ist·die |
1797 | » Rücksprungadresse·zu·überschreiben·und·die | 1797 | » Rücksprungadresse·zu·überschreiben·und·die |
1798 | » Anweisung·direkt·nach·dem·Funktionsaufruf·zu | 1798 | » Anweisung·direkt·nach·dem·Funktionsaufruf·zu |
1799 | » überspringen.·(Inspiriert·durch | 1799 | » überspringen.·(Inspiriert·durch |
1800 | » <a·class="xref"·href="#Phrack">4</a>)</p><pre·class="programlisting">#include·<stdio.h> | 1800 | » <a·class="xref"·href="#Phrack">4</a>)</p><pre·class="programlisting">#include·<stdio.h> |
| |
1801 | void·manipulate(char·*buffer)·{ | 1801 | void·manipulate(char·*buffer)·{ |
Offset 1816, 81 lines modified | Offset 1816, 81 lines modified |
1816 | printf("The·value·of·i·is·:·%d\n",i); | 1816 | printf("The·value·of·i·is·:·%d\n",i); |
1817 | return·0; | 1817 | return·0; |
1818 | }</pre><p>Betrachten·wir·nun,·wie·das·Speicherabbild·dieses | 1818 | }</pre><p>Betrachten·wir·nun,·wie·das·Speicherabbild·dieses |
1819 | » Prozesses·aussehen·würde,·wenn·wir·160·Leerzeichen | 1819 | » Prozesses·aussehen·würde,·wenn·wir·160·Leerzeichen |
1820 | » in·unser·kleines·Programm·eingeben,·bevor·wir·Enter | 1820 | » in·unser·kleines·Programm·eingeben,·bevor·wir·Enter |
1821 | » drücken.</p><p>[XXX·figure·here!]</p><p>Offensichtlich·kann·man·durch·böswilligere·Eingaben | 1821 | » drücken.</p><p>[XXX·figure·here!]</p><p>Offensichtlich·kann·man·durch·böswilligere·Eingaben |
1822 | » bereits·kompilierten·Programmtext·ausführen·(wie·z.B. | 1822 | » bereits·kompilierten·Programmtext·ausführen·(wie·z.B. |
1823 | » exec(/bin/sh)).</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63476664"></a>3.3.2.·Puffer-Überläufe·vermeiden</h3></div></div></div><p>Die·direkteste·Lösung,·um | 1823 | » exec(/bin/sh)).</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63550392"></a>3.3.2.·Puffer-Überläufe·vermeiden</h3></div></div></div><p>Die·direkteste·Lösung,·um |
1824 | » Stack-Überläufe·zu·vermeiden,·ist·immer | 1824 | » Stack-Überläufe·zu·vermeiden,·ist·immer |
1825 | » grössenbegrenzten·Speicher·und·String-Copy-Funktionen | 1825 | » grössenbegrenzten·Speicher·und·String-Copy-Funktionen |
1826 | » zu·verwenden. | 1826 | » zu·verwenden. |
1827 | » <code·class="function">strncpy</code>·und·<code·class="function">strncat</code> | 1827 | » <code·class="function">strncpy</code>·und·<code·class="function">strncat</code> |
1828 | » sind·Teil·der·C-Standardbibliothek. | 1828 | » sind·Teil·der·C-Standardbibliothek. |
| |
1829 | » <a·id="idp63478328"·class="indexterm"></a> | 1829 | » <a·id="idp63552056"·class="indexterm"></a> |
1830 | » <a·id="idp63479480"·class="indexterm"></a> | 1830 | » <a·id="idp63553208"·class="indexterm"></a> |
| |
1831 | » Diese·Funktionen·akzeptieren·einen·Längen-Parameter.·Dieser | 1831 | » Diese·Funktionen·akzeptieren·einen·Längen-Parameter.·Dieser |
1832 | » Wert·sollte·nicht·größer·sein·als·die·Länge | 1832 | » Wert·sollte·nicht·größer·sein·als·die·Länge |
1833 | » des·Zielpuffers.·Die·Funktionen·kopieren·dann·bis·zu | 1833 | » des·Zielpuffers.·Die·Funktionen·kopieren·dann·bis·zu |
1834 | » `length'·Bytes·von·der·Quelle·zum·Ziel.·Allerdings·gibt·es | 1834 | » `length'·Bytes·von·der·Quelle·zum·Ziel.·Allerdings·gibt·es |
1835 | » einige·Probleme.·Keine·der·Funktionen·garantiert,·dass | 1835 | » einige·Probleme.·Keine·der·Funktionen·garantiert,·dass |
1836 | » die·Zeichenkette·NUL-terminiert·ist,·wenn·die | 1836 | » die·Zeichenkette·NUL-terminiert·ist,·wenn·die |
1837 | » Größe | 1837 | » Größe |
| |
1838 | » <a·id="idp63480632"·class="indexterm"></a> | 1838 | » <a·id="idp63554360"·class="indexterm"></a> |
| |
1839 | » des·Eingabepuffers·so·groß·ist·wie·das·Ziel. | 1839 | » des·Eingabepuffers·so·groß·ist·wie·das·Ziel. |
1840 | » Außerdem·wird·der·Parameter·length·zwischen·strncpy | 1840 | » Außerdem·wird·der·Parameter·length·zwischen·strncpy |
1841 | » und·strncat·inkonsistent·definiert,·weshalb·Programmierer | 1841 | » und·strncat·inkonsistent·definiert,·weshalb·Programmierer |
1842 | » leicht·bezüglich·der·korrekten·Verwendung·durcheinander | 1842 | » leicht·bezüglich·der·korrekten·Verwendung·durcheinander |
1843 | » kommen·können.·Weiterhin·gibt·es·einen·spürbaren | 1843 | » kommen·können.·Weiterhin·gibt·es·einen·spürbaren |
1844 | » Leistungsverlust·im·Vergleich·zu | 1844 | » Leistungsverlust·im·Vergleich·zu |
1845 | » <code·class="function">strcpy</code>,·wenn·eine·kurze·Zeichenkette·in | 1845 | » <code·class="function">strcpy</code>,·wenn·eine·kurze·Zeichenkette·in |
1846 | » einen·großen·Puffer·kopiert·wird.·Denn | 1846 | » einen·großen·Puffer·kopiert·wird.·Denn |
1847 | » <code·class="function">strncpy</code>·fült·den·Puffer·bis·zur | 1847 | » <code·class="function">strncpy</code>·fült·den·Puffer·bis·zur |
1848 | » angegebenen·Länge·mit·NUL·auf. | 1848 | » angegebenen·Länge·mit·NUL·auf. |
1849 | ······</p><p>In·OpenBSD·wurde·eine·weitere·Möglichkeit·zum | 1849 | ······</p><p>In·OpenBSD·wurde·eine·weitere·Möglichkeit·zum |
| |
1850 | » <a·id="idp63482296"·class="indexterm"></a> | 1850 | » <a·id="idp63556024"·class="indexterm"></a> |
| |
1851 | » kopieren·von·Speicherbereichen·implementiert,·die·dieses | 1851 | » kopieren·von·Speicherbereichen·implementiert,·die·dieses |
1852 | » Problem·umgeht.·Die·Funktionen·<code·class="function">strlcpy</code> | 1852 | » Problem·umgeht.·Die·Funktionen·<code·class="function">strlcpy</code> |
1853 | » und·<code·class="function">strlcat</code>·garantieren,·dass·das·Ziel | 1853 | » und·<code·class="function">strlcat</code>·garantieren,·dass·das·Ziel |
1854 | » immer·NUL-terminiert·wird,·wenn·das·Argument·length·ungleich | 1854 | » immer·NUL-terminiert·wird,·wenn·das·Argument·length·ungleich |
1855 | » null·ist.·Für·weitere·Informationen·über·diese | 1855 | » null·ist.·Für·weitere·Informationen·über·diese |
1856 | » Funktionen·lesen·Sie·bitte·<a·class="xref"·href="#OpenBSD">6</a>.·Die | 1856 | » Funktionen·lesen·Sie·bitte·<a·class="xref"·href="#OpenBSD">6</a>.·Die |
1857 | » OpenBSD-Funktionen·<code·class="function">strlcpy</code>·und | 1857 | » OpenBSD-Funktionen·<code·class="function">strlcpy</code>·und |
1858 | » <code·class="function">strlcat</code>·sind·seit·Version·3.3·auch·in | 1858 | » <code·class="function">strlcat</code>·sind·seit·Version·3.3·auch·in |
1859 | » FreeBSD·verfügbar.</p><a·id="idp63501240"·class="indexterm"></a><a·id="idp63502392"·class="indexterm"></a><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63503544"></a>3.3.2.1.·Compiler-basierte·Laufzeitüberprüfung | 1859 | » FreeBSD·verfügbar.</p><a·id="idp63562680"·class="indexterm"></a><a·id="idp63563832"·class="indexterm"></a><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63564984"></a>3.3.2.1.·Compiler-basierte·Laufzeitüberprüfung |
1860 | » ··von·Grenzen</h4></div></div></div><a·id="idp63504184"·class="indexterm"></a><p>Unglücklicherweise·gibt·es·immer·noch·sehr·viel | 1860 | » ··von·Grenzen</h4></div></div></div><a·id="idp63565624"·class="indexterm"></a><p>Unglücklicherweise·gibt·es·immer·noch·sehr·viel |
1861 | » ··Quelltext,·der·allgemein·verwendet·wird·und·blind·Speicher | 1861 | » ··Quelltext,·der·allgemein·verwendet·wird·und·blind·Speicher |
1862 | » ··umherkopiert,·ohne·eine·der·gerade·besprochenen·Funktionen, | 1862 | » ··umherkopiert,·ohne·eine·der·gerade·besprochenen·Funktionen, |
1863 | » ··die·Begrenzungen·unterstützen,·zu·verwenden. | 1863 | » ··die·Begrenzungen·unterstützen,·zu·verwenden. |
1864 | » ··Glücklicherweise·gibt·es·einen·Weg,·um·solche·Angriffe·zu | 1864 | » ··Glücklicherweise·gibt·es·einen·Weg,·um·solche·Angriffe·zu |
1865 | » ··verhindern·-··Überprüfung·der·Grenzen·zur·Laufzeit,·die·in | 1865 | » ··verhindern·-··Überprüfung·der·Grenzen·zur·Laufzeit,·die·in |
1866 | » ··verschiedenen·C/C++·Compilern·eingebaut·ist.</p><a·id="idp63505720"·class="indexterm"></a><a·id="idp63506232"·class="indexterm"></a><a·id="idp63506744"·class="indexterm"></a><p>ProPolice·ist·eine·solche·Compiler-Eigenschaft·und·ist·in·den | 1866 | » ··verschiedenen·C/C++·Compilern·eingebaut·ist.</p><a·id="idp63567160"·class="indexterm"></a><a·id="idp63567672"·class="indexterm"></a><a·id="idp63568184"·class="indexterm"></a><p>ProPolice·ist·eine·solche·Compiler-Eigenschaft·und·ist·in·den |
1867 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcc&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcc</span>(1)</span></a>·Versionen·4.1·und·höher·integriert.··Es·ersetzt·und | 1867 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcc&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcc</span>(1)</span></a>·Versionen·4.1·und·höher·integriert.··Es·ersetzt·und |
1868 | » ··erweitert·die·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcc&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcc</span>(1)</span></a>·StackGuard-Erweiterung·von | 1868 | » ··erweitert·die·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=gcc&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">gcc</span>(1)</span></a>·StackGuard-Erweiterung·von |
1869 | » ··früher.</p><p>ProPolice·schützt·gegen·stackbasierte | 1869 | » ··früher.</p><p>ProPolice·schützt·gegen·stackbasierte |
1870 | » ··Pufferüberläufe·und·andere·Angriffe·durch·das·Ablegen·von | 1870 | » ··Pufferüberläufe·und·andere·Angriffe·durch·das·Ablegen·von |
1871 | » ··Pseudo-Zufallszahlen·in·Schlüsselbereichen·des·Stacks·bevor·es | 1871 | » ··Pseudo-Zufallszahlen·in·Schlüsselbereichen·des·Stacks·bevor·es |
1872 | » ··irgendwelche·Funktionen·aufruft.··Wenn·eine·Funktion·beendet·wird, | 1872 | » ··irgendwelche·Funktionen·aufruft.··Wenn·eine·Funktion·beendet·wird, |
1873 | » ··werden·diese·<span·class="quote">„<span·class="quote">Kanarienvögel</span>“</span>·überprüft | 1873 | » ··werden·diese·<span·class="quote">„<span·class="quote">Kanarienvögel</span>“</span>·überprüft |
1874 | » ··und·wenn·festgestellt·wird,·dass·diese·verändert·wurden·wird·das | 1874 | » ··und·wenn·festgestellt·wird,·dass·diese·verändert·wurden·wird·das |
1875 | » ··Programm·sofort·abgebrochen.··Dadurch·wird·jeglicher·Versuch,·die | 1875 | » ··Programm·sofort·abgebrochen.··Dadurch·wird·jeglicher·Versuch,·die |
1876 | » ··Rücksprungadresse·oder·andere·Variablen,·die·auf·dem·Stack | 1876 | » ··Rücksprungadresse·oder·andere·Variablen,·die·auf·dem·Stack |
1877 | » ··gespeichert·werden,·durch·die·Ausführung·von·Schadcode·zu | 1877 | » ··gespeichert·werden,·durch·die·Ausführung·von·Schadcode·zu |
1878 | » ··manipulieren,·nicht·funktionieren,·da·der·Angreifer·auch·die | 1878 | » ··manipulieren,·nicht·funktionieren,·da·der·Angreifer·auch·die |
1879 | » ··Pseudo-Zufallszahlen·unberührt·lassen·müsste.</p><a·id="idp63055288"·class="indexterm"></a><p>Ihre·Anwendungen·mit·ProPolice·neu·zu·kompilieren·ist | 1879 | » ··Pseudo-Zufallszahlen·unberührt·lassen·müsste.</p><a·id="idp63571384"·class="indexterm"></a><p>Ihre·Anwendungen·mit·ProPolice·neu·zu·kompilieren·ist |
1880 | » ··eine·effektive·Maßnahme,·um·sie·vor·den·meisten | 1880 | » ··eine·effektive·Maßnahme,·um·sie·vor·den·meisten |
1881 | » ··Puffer-Überlauf-Angriffen·zu·schützen,·aber·die | 1881 | » ··Puffer-Überlauf-Angriffen·zu·schützen,·aber·die |
1882 | » ··Programme·können·noch·immer·kompromittiert·werden.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63056312"></a>3.3.2.2.·Bibliotheks-basierte·Laufzeitüberprüfung | 1882 | » ··Programme·können·noch·immer·kompromittiert·werden.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63572408"></a>3.3.2.2.·Bibliotheks-basierte·Laufzeitüberprüfung |
1883 | » ··von·Grenzen</h4></div></div></div><a·id="idp63511736"·class="indexterm"></a><p>Compiler-basierte·Mechanismen·sind·bei·Software, | 1883 | » ··von·Grenzen</h4></div></div></div><a·id="idp63601848"·class="indexterm"></a><p>Compiler-basierte·Mechanismen·sind·bei·Software, |
1884 | » ··die·nur·im·Binärformat·vertrieben·wird,·und·die·somit | 1884 | » ··die·nur·im·Binärformat·vertrieben·wird,·und·die·somit |
1885 | » ··nicht·neu·kompiliert·werden·kann·völlig·nutzlos. | 1885 | » ··nicht·neu·kompiliert·werden·kann·völlig·nutzlos. |
1886 | » ··Für·diesen·Fall·gibt·es·einige·Bibliotheken,·welche | 1886 | » ··Für·diesen·Fall·gibt·es·einige·Bibliotheken,·welche |
1887 | » ··die·unsicheren·Funktionen·der·C-Bibliothek | 1887 | » ··die·unsicheren·Funktionen·der·C-Bibliothek |
1888 | » ··(<code·class="function">strcpy</code>,·<code·class="function">fscanf</code>, | 1888 | » ··(<code·class="function">strcpy</code>,·<code·class="function">fscanf</code>, |
1889 | » ··<code·class="function">getwd</code>,·etc..)·neu·implementieren·und | 1889 | » ··<code·class="function">getwd</code>,·etc..)·neu·implementieren·und |
1890 | » ··sicherstellen,·dass·nicht·hinter·den·Stack-Pointer | 1890 | » ··sicherstellen,·dass·nicht·hinter·den·Stack-Pointer |
Offset 1899, 32 lines modified | Offset 1899, 32 lines modified |
1899 | » ··schützen·nur·vor·einer·kleinen·Gruppe·von | 1899 | » ··schützen·nur·vor·einer·kleinen·Gruppe·von |
1900 | » ··Sicherheitslücken·und·sie·können·das | 1900 | » ··Sicherheitslücken·und·sie·können·das |
1901 | » ··eigentliche·Problem·nicht·lösen.·Diese | 1901 | » ··eigentliche·Problem·nicht·lösen.·Diese |
1902 | » ··Maßnahmen·können·versagen,·wenn·die·Anwendung | 1902 | » ··Maßnahmen·können·versagen,·wenn·die·Anwendung |
1903 | » ··mit·-fomit-frame-pointer·kompiliert·wurde. | 1903 | » ··mit·-fomit-frame-pointer·kompiliert·wurde. |
1904 | » ··Außerdem·kann·der·Nutzer·die·Umgebungsvariablen | 1904 | » ··Außerdem·kann·der·Nutzer·die·Umgebungsvariablen |
1905 | » ··LD_PRELOAD·und·LD_LIBRARY_PATH·überschreiben·oder | 1905 | » ··LD_PRELOAD·und·LD_LIBRARY_PATH·überschreiben·oder |
1906 | » ··löschen.</p></div></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-setuid"></a>3.4.·SetUID-Themen</h2></div></div></div><a·id="idp63518008"·class="indexterm"></a><p>Es·gibt·zu·jedem·Prozess·mindestens·sechs·verschiedene | 1906 | » ··löschen.</p></div></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-setuid"></a>3.4.·SetUID-Themen</h2></div></div></div><a·id="idp63608120"·class="indexterm"></a><p>Es·gibt·zu·jedem·Prozess·mindestens·sechs·verschiedene |
1907 | ······IDs,·die·diesem·zugeordnet·sind.·Deshalb·müssen·Sie | 1907 | ······IDs,·die·diesem·zugeordnet·sind.·Deshalb·müssen·Sie |
1908 | ······sehr·vorsichtig·mit·den·Zugriffsrechten·sein,·die·Ihr·Prozess | 1908 | ······sehr·vorsichtig·mit·den·Zugriffsrechten·sein,·die·Ihr·Prozess |
1909 | ······zu·jedem·Zeitpunkt·besitzt.·Konkret·bedeutet·dass,·das·alle | 1909 | ······zu·jedem·Zeitpunkt·besitzt.·Konkret·bedeutet·dass,·das·alle |
1910 | ······seteuid-Anwendungen·ihre·Privilegien·abgeben·sollten,·sobald | 1910 | ······seteuid-Anwendungen·ihre·Privilegien·abgeben·sollten,·sobald |
1911 | ······sie·diese·nicht·mehr·benötigen.</p><a·id="idp63518904"·class="indexterm"></a><a·id="idp63520056"·class="indexterm"></a><p>Die·reale·Benutzer-ID·kann·nur·von·einem | 1911 | ······sie·diese·nicht·mehr·benötigen.</p><a·id="idp63609016"·class="indexterm"></a><a·id="idp63610168"·class="indexterm"></a><p>Die·reale·Benutzer-ID·kann·nur·von·einem |
1912 | ······Superuser-Prozess·geändert·werden.·Das·Programm | 1912 | ······Superuser-Prozess·geändert·werden.·Das·Programm |
1913 | ······<span·class="application">login</span>·setzt·sie,·wenn·sich·ein | 1913 | ······<span·class="application">login</span>·setzt·sie,·wenn·sich·ein |
1914 | ······Benutzer·am·System·anmeldet,·und·sie·wird·nur·selten | 1914 | ······Benutzer·am·System·anmeldet,·und·sie·wird·nur·selten |
1915 | ······geändert.</p><p>Die·effektive·Benutzer-ID·wird·von·der·Funktion | 1915 | ······geändert.</p><p>Die·effektive·Benutzer-ID·wird·von·der·Funktion |
1916 | ······<code·class="function">exec()</code>·gesetzt,·wenn·ein·Programm | 1916 | ······<code·class="function">exec()</code>·gesetzt,·wenn·ein·Programm |
1917 | ······das·seteuid-Bit·gesetzt·hat.·Eine·Anwendung·kann | 1917 | ······das·seteuid-Bit·gesetzt·hat.·Eine·Anwendung·kann |
1918 | ······<code·class="function">seteuid()</code>·jederzeit·aufrufen,·um·die | 1918 | ······<code·class="function">seteuid()</code>·jederzeit·aufrufen,·um·die |
1919 | ······effektive·Benutzer-ID·entweder·auf·die·reale·Benutzer-ID·oder | 1919 | ······effektive·Benutzer-ID·entweder·auf·die·reale·Benutzer-ID·oder |
1920 | ······die·gespeicherte·set-user-ID·zu·setzen.·Wenn·eine·der | 1920 | ······die·gespeicherte·set-user-ID·zu·setzen.·Wenn·eine·der |
1921 | ······<code·class="function">exec()</code>-Funktionen·die·effektive | 1921 | ······<code·class="function">exec()</code>-Funktionen·die·effektive |
1922 | ······Benutzer-ID·setzt,·wird·der·vorherige·Wert·als | 1922 | ······Benutzer-ID·setzt,·wird·der·vorherige·Wert·als |
1923 | ······gespeicherte·set-user-ID·abgelegt.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-chroot"></a>3.5.·Die·Umgebung·ihrer·Programme·einschränken</h2></div></div></div><a·id="idp63524536"·class="indexterm"></a><p>Die·herkömmliche·Methode,·um·einen·Prozess | 1923 | ······gespeicherte·set-user-ID·abgelegt.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-chroot"></a>3.5.·Die·Umgebung·ihrer·Programme·einschränken</h2></div></div></div><a·id="idp63614648"·class="indexterm"></a><p>Die·herkömmliche·Methode,·um·einen·Prozess |
1924 | ······einzuschränken,·besteht·in·dem·Systemaufruf | 1924 | ······einzuschränken,·besteht·in·dem·Systemaufruf |
1925 | ······<code·class="function">chroot()</code>.·Dieser·Aufruf | 1925 | ······<code·class="function">chroot()</code>.·Dieser·Aufruf |
1926 | ······ändert·das·Wurzelverzeichnis,·auf·das·sich·alle | 1926 | ······ändert·das·Wurzelverzeichnis,·auf·das·sich·alle |
1927 | ······Pfadangaben·des·Prozesses·und·jegliche·Kind-Prozesse·beziehen. | 1927 | ······Pfadangaben·des·Prozesses·und·jegliche·Kind-Prozesse·beziehen. |
1928 | ······Damit·dieser·Systemaufruf·gelingt,·muss·der·Prozess | 1928 | ······Damit·dieser·Systemaufruf·gelingt,·muss·der·Prozess |
1929 | ······Ausführungsrechte·(Durchsuchungsrechte)·für·das | 1929 | ······Ausführungsrechte·(Durchsuchungsrechte)·für·das |
1930 | ······Verzeichnis·haben,·auf·das·er·sich·bezieht.·Die·neue·Umgebung | 1930 | ······Verzeichnis·haben,·auf·das·er·sich·bezieht.·Die·neue·Umgebung |
Offset 1944, 15 lines modified | Offset 1944, 15 lines modified |
1944 | ······mit·EPERM·fehlschlagen,·wenn·irgendwelche·Verzeichnisse | 1944 | ······mit·EPERM·fehlschlagen,·wenn·irgendwelche·Verzeichnisse |
1945 | ······geöffnet·sind.·Wenn·die·Variable·auf·den·Standardwert·1 | 1945 | ······geöffnet·sind.·Wenn·die·Variable·auf·den·Standardwert·1 |
1946 | ······gesetzt·ist,·wird·<code·class="function">chroot()</code>·mit·EPERM | 1946 | ······gesetzt·ist,·wird·<code·class="function">chroot()</code>·mit·EPERM |
1947 | ······fehlschlagen,·wenn·irgendwelche·Verzeichnisse·geöffnet | 1947 | ······fehlschlagen,·wenn·irgendwelche·Verzeichnisse·geöffnet |
1948 | ······sind·und·sich·der·Prozess·bereits·in·einer | 1948 | ······sind·und·sich·der·Prozess·bereits·in·einer |
1949 | ······<code·class="function">chroot()</code>-Umgebung·befindet.·Bei·jedem | 1949 | ······<code·class="function">chroot()</code>-Umgebung·befindet.·Bei·jedem |
1950 | ······anderen·Wert·wird·die·Überprüfung·auf | 1950 | ······anderen·Wert·wird·die·Überprüfung·auf |
1951 | ······geöffnete·Verzeichnisse·komplett·umgangen.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63529272"></a>3.5.1.·Die·Jail-Funktionalität·in·FreeBSD</h3></div></div></div><a·id="idp63529912"·class="indexterm"></a><p>Das·Konzept·einer·Jail·(Gefängnis)·erweitert | 1951 | ······geöffnete·Verzeichnisse·komplett·umgangen.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63619384"></a>3.5.1.·Die·Jail-Funktionalität·in·FreeBSD</h3></div></div></div><a·id="idp63620024"·class="indexterm"></a><p>Das·Konzept·einer·Jail·(Gefängnis)·erweitert |
1952 | » <code·class="function">chroot()</code>,·indem·es·die·Macht·des | 1952 | » <code·class="function">chroot()</code>,·indem·es·die·Macht·des |
1953 | » Superusers·einschränkt,·um·einen·echten·'virtuellen | 1953 | » Superusers·einschränkt,·um·einen·echten·'virtuellen |
1954 | » Server'·zu·erzeugen.·Wenn·ein·solches·Gefängnis·einmal | 1954 | » Server'·zu·erzeugen.·Wenn·ein·solches·Gefängnis·einmal |
1955 | » eingerichtet·ist,·muss·die·gesamte·Netzwerkkommunikation | 1955 | » eingerichtet·ist,·muss·die·gesamte·Netzwerkkommunikation |
1956 | » über·eine·bestimmte·IP-Adresse·erfolgen·und·die | 1956 | » über·eine·bestimmte·IP-Adresse·erfolgen·und·die |
1957 | » "root-Privilegien"·innerhalb·der·Jail·sind·sehr·stark | 1957 | » "root-Privilegien"·innerhalb·der·Jail·sind·sehr·stark |
1958 | » eingeschränkt.</p><p>Solange·Sie·sich·in·einer·Jail·befinden,·werden·alle | 1958 | » eingeschränkt.</p><p>Solange·Sie·sich·in·einer·Jail·befinden,·werden·alle |
Offset 1984, 50 lines modified | Offset 1984, 50 lines modified |
1984 | » auszuführen,·aber·sie·haben·auch·ihre·Nachteile. | 1984 | » auszuführen,·aber·sie·haben·auch·ihre·Nachteile. |
1985 | » Derzeit·wurden·die·IPC-Mechanismen·noch·nicht·an | 1985 | » Derzeit·wurden·die·IPC-Mechanismen·noch·nicht·an |
1986 | » <code·class="function">suser_xxx</code>·angepasst,·so·dass·Anwendungen | 1986 | » <code·class="function">suser_xxx</code>·angepasst,·so·dass·Anwendungen |
1987 | » wie·MySQL·nicht·innerhalb·einer·Jail·ausgeführt·werden | 1987 | » wie·MySQL·nicht·innerhalb·einer·Jail·ausgeführt·werden |
1988 | » können.·Der·Superuser-Zugriff·hat·in·einer·Jail·nur·eine | 1988 | » können.·Der·Superuser-Zugriff·hat·in·einer·Jail·nur·eine |
1989 | » sehr·eingeschränkte·Bedeutung,·aber·es·gibt·keine | 1989 | » sehr·eingeschränkte·Bedeutung,·aber·es·gibt·keine |
1990 | » Möglichkeit·zu·definieren·was | 1990 | » Möglichkeit·zu·definieren·was |
1991 | » "sehr·eingeschränkt"·heißt.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63580856"></a>3.5.2.·<span·class="trademark">POSIX</span>®.1e·Prozess·Capabilities</h3></div></div></div><a·id="idp63585976"·class="indexterm"></a><a·id="idp63586488"·class="indexterm"></a><p><span·class="trademark">POSIX</span>®·hat·einen·funktionalen·Entwurf·(Working·Draft) | 1991 | » "sehr·eingeschränkt"·heißt.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63650488"></a>3.5.2.·<span·class="trademark">POSIX</span>®.1e·Prozess·Capabilities</h3></div></div></div><a·id="idp63651512"·class="indexterm"></a><a·id="idp63652024"·class="indexterm"></a><p><span·class="trademark">POSIX</span>®·hat·einen·funktionalen·Entwurf·(Working·Draft) |
1992 | » herausgegeben,·der·Ereignisüberprüfung, | 1992 | » herausgegeben,·der·Ereignisüberprüfung, |
1993 | » Zugriffskontrolllisten,·feiner·einstellbare·Privilegien, | 1993 | » Zugriffskontrolllisten,·feiner·einstellbare·Privilegien, |
1994 | » Informationsmarkierung·und·verbindliche·Zugriffskontrolle | 1994 | » Informationsmarkierung·und·verbindliche·Zugriffskontrolle |
1995 | » enthält.</p><p>Dies·ist·im·Moment·in·Arbeit·und·das·Hauptziel·des·<a·class="link"·href="http://www.trustedbsd.org/"·target="_top">TrustedBSD</a>-Projekts. | 1995 | » enthält.</p><p>Dies·ist·im·Moment·in·Arbeit·und·das·Hauptziel·des·<a·class="link"·href="http://www.trustedbsd.org/"·target="_top">TrustedBSD</a>-Projekts. |
1996 | » Ein·Teil·der·bisherigen·Arbeit·wurde·in·FreeBSD-CURRENT | 1996 | » Ein·Teil·der·bisherigen·Arbeit·wurde·in·FreeBSD-CURRENT |
1997 | » übernommen·(cap_set_proc(3)).</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-trust"></a>3.6.·Vertrauen</h2></div></div></div><p>Eine·Anwendung·sollte·niemals·davon·ausgehen,·dass | 1997 | » übernommen·(cap_set_proc(3)).</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-trust"></a>3.6.·Vertrauen</h2></div></div></div><p>Eine·Anwendung·sollte·niemals·davon·ausgehen,·dass |
1998 | ······irgendetwas·in·der·Nutzerumgebung·vernünftig·ist. | 1998 | ······irgendetwas·in·der·Nutzerumgebung·vernünftig·ist. |
1999 | ······Das·beinhaltet·(ist·aber·sicher·nicht·darauf | 1999 | ······Das·beinhaltet·(ist·aber·sicher·nicht·darauf |
2000 | ······beschränkt):·Nutzereingaben,·Signale, | 2000 | ······beschränkt):·Nutzereingaben,·Signale, |
2001 | ······Umgebungsvariablen,·Ressourcen,·IPC,·mmaps,·das | 2001 | ······Umgebungsvariablen,·Ressourcen,·IPC,·mmaps,·das |
2002 | ······Arbeitsverzeichnis·im·Dateisystem,·Dateideskriptoren, | 2002 | ······Arbeitsverzeichnis·im·Dateisystem,·Dateideskriptoren, |
2003 | ······die·Anzahl·geöffneter·Dateien,·etc..</p><a·id="idp63590072"·class="indexterm"></a><a·id="idp63590584"·class="indexterm"></a><p>Sie·sollten·niemals·annehmen,·dass·Sie·jede·Art·von | 2003 | ······die·Anzahl·geöffneter·Dateien,·etc..</p><a·id="idp63655608"·class="indexterm"></a><a·id="idp63656120"·class="indexterm"></a><p>Sie·sollten·niemals·annehmen,·dass·Sie·jede·Art·von |
2004 | ······inkorrekten·Eingaben·abfangen·können,·die·ein·Nutzer | 2004 | ······inkorrekten·Eingaben·abfangen·können,·die·ein·Nutzer |
2005 | ······machen·kann.·Stattdessen·sollte·Ihre·Anwendung·positive | 2005 | ······machen·kann.·Stattdessen·sollte·Ihre·Anwendung·positive |
2006 | ······Filterung·verwenden,·um·nur·eine·bestimmte·Teilmenge·an | 2006 | ······Filterung·verwenden,·um·nur·eine·bestimmte·Teilmenge·an |
2007 | ······Eingaben·zuzulassen,·die·Sie·für·sicher·halten. | 2007 | ······Eingaben·zuzulassen,·die·Sie·für·sicher·halten. |
2008 | ······Ungeeignete·Datenüberprüfung·ist·die·Ursache | 2008 | ······Ungeeignete·Datenüberprüfung·ist·die·Ursache |
2009 | ······vieler·Exploits,·besonders·für·CGI-Skripte·im·Internet. | 2009 | ······vieler·Exploits,·besonders·für·CGI-Skripte·im·Internet. |
2010 | ······Bei·Dateinamen·müssen·Sie·besonders·vorsichtig·sein, | 2010 | ······Bei·Dateinamen·müssen·Sie·besonders·vorsichtig·sein, |
2011 | ······wenn·es·sich·um·Pfade·("../",·"/"),·symbolische | 2011 | ······wenn·es·sich·um·Pfade·("../",·"/"),·symbolische |
2012 | ······Verknüpfungen·und·Shell-Escape-Sequenzen·handelt.</p><a·id="idp63591480"·class="indexterm"></a><p>Perl·bietet·eine·wirklich·coole·Funktion,·den·sogenannten | 2012 | ······Verknüpfungen·und·Shell-Escape-Sequenzen·handelt.</p><a·id="idp63657016"·class="indexterm"></a><p>Perl·bietet·eine·wirklich·coole·Funktion,·den·sogenannten |
2013 | ······"Taint"-Modus,·der·verwendet·werden·kann,·um·zu·verhindern, | 2013 | ······"Taint"-Modus,·der·verwendet·werden·kann,·um·zu·verhindern, |
2014 | ······dass·Skripte·Daten,·die·von·außerhalb·des·Programmes | 2014 | ······dass·Skripte·Daten,·die·von·außerhalb·des·Programmes |
2015 | ······stammen,·auf·unsichere·Art·und·Weise·verwenden.·Dieser | 2015 | ······stammen,·auf·unsichere·Art·und·Weise·verwenden.·Dieser |
2016 | ······Modus·überprüft·Kommandozeilenargumente, | 2016 | ······Modus·überprüft·Kommandozeilenargumente, |
2017 | ······Umgebungsvariablen,·Lokalisierungsinformationen,·die | 2017 | ······Umgebungsvariablen,·Lokalisierungsinformationen,·die |
2018 | ······Ergebnisse·von·Systemaufrufen | 2018 | ······Ergebnisse·von·Systemaufrufen |
2019 | ······(<code·class="function">readdir()</code>, | 2019 | ······(<code·class="function">readdir()</code>, |
2020 | ······<code·class="function">readlink()</code>, | 2020 | ······<code·class="function">readlink()</code>, |
2021 | ······<code·class="function">getpwxxx()</code>) | 2021 | ······<code·class="function">getpwxxx()</code>) |
2022 | ······und·alle·Dateieingaben.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-race-conditions"></a>3.7.·Race-Conditions</h2></div></div></div><p>Eine·Race-Condition·ist·ein·unnormales·Verhalten,·das·von | 2022 | ······und·alle·Dateieingaben.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="secure-race-conditions"></a>3.7.·Race-Conditions</h2></div></div></div><p>Eine·Race-Condition·ist·ein·unnormales·Verhalten,·das·von |
2023 | ······einer·unerwarteten·Abhängigkeit·beim·Timing·von·Ereignissen | 2023 | ······einer·unerwarteten·Abhängigkeit·beim·Timing·von·Ereignissen |
2024 | ······verursacht·wird.·Mit·anderen·Worten·heißt·das,·ein | 2024 | ······verursacht·wird.·Mit·anderen·Worten·heißt·das,·ein |
2025 | ······Programmierer·nimmt·irrtümlicher·Weise·an,·dass·ein | 2025 | ······Programmierer·nimmt·irrtümlicher·Weise·an,·dass·ein |
2026 | ······bestimmtes·Ereignis·immer·vor·einem·anderen·stattfindet.</p><a·id="idp63594808"·class="indexterm"></a><a·id="idp63595704"·class="indexterm"></a><a·id="idp63596600"·class="indexterm"></a><p>Einige·der·häufigsten·Ursachen·für | 2026 | ······bestimmtes·Ereignis·immer·vor·einem·anderen·stattfindet.</p><a·id="idp63660344"·class="indexterm"></a><a·id="idp63661240"·class="indexterm"></a><a·id="idp63662136"·class="indexterm"></a><p>Einige·der·häufigsten·Ursachen·für |
2027 | ······Race-Conditions·sind·Signale,·Zugriffsprüfungen·und·das | 2027 | ······Race-Conditions·sind·Signale,·Zugriffsprüfungen·und·das |
2028 | ······Öffnen·von·Dateien.·Signale·sind·von·Natur·aus | 2028 | ······Öffnen·von·Dateien.·Signale·sind·von·Natur·aus |
2029 | ······asynchrone·Ereignisse,·deshalb·ist·besondere·Vorsicht·im | 2029 | ······asynchrone·Ereignisse,·deshalb·ist·besondere·Vorsicht·im |
2030 | ······Umgang·damit·geboten.·Das·Prüfen·des·Zugriffs·mittels | 2030 | ······Umgang·damit·geboten.·Das·Prüfen·des·Zugriffs·mittels |
2031 | ······der·Aufrufe·<code·class="function">access(2)</code>·gefolgt·von | 2031 | ······der·Aufrufe·<code·class="function">access(2)</code>·gefolgt·von |
2032 | ······<code·class="function">open(2)</code>·ist·offensichtlich·nicht·atomar. | 2032 | ······<code·class="function">open(2)</code>·ist·offensichtlich·nicht·atomar. |
2033 | ······Benutzer·können·zwischen·den·beiden·Aufrufen·Dateien | 2033 | ······Benutzer·können·zwischen·den·beiden·Aufrufen·Dateien |
Offset 2035, 29 lines modified | Offset 2035, 29 lines modified |
2035 | ······<code·class="function">seteuid()</code>·direkt·gefolgt·von | 2035 | ······<code·class="function">seteuid()</code>·direkt·gefolgt·von |
2036 | ······<code·class="function">open()</code>·aufrufen.·Auf·die·gleiche·Art | 2036 | ······<code·class="function">open()</code>·aufrufen.·Auf·die·gleiche·Art |
2037 | ······sollte·eine·Anwendung·immer·eine·korrekte·Umask·vor·dem | 2037 | ······sollte·eine·Anwendung·immer·eine·korrekte·Umask·vor·dem |
2038 | ······Aufruf·von·<code·class="function">open()</code>·setzen,·um | 2038 | ······Aufruf·von·<code·class="function">open()</code>·setzen,·um |
2039 | ······störende·Aufrufe·von·<code·class="function">chmod()</code>·zu | 2039 | ······störende·Aufrufe·von·<code·class="function">chmod()</code>·zu |
2040 | ······umgehen.</p></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="l10n"></a>Kapitel·4.·Lokalisierung·und·Internationalisierung·-·L10N·und | 2040 | ······umgehen.</p></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="l10n"></a>Kapitel·4.·Lokalisierung·und·Internationalisierung·-·L10N·und |
2041 | ····I18N</h2></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Jochen</span>·<span·class="surname">Neumeister</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#l10n-programming">4.1.·I18N-konforme·Anwendungen·programmieren</a></span></dt><dt><span·class="sect1"><a·href="#posix-nls">4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language | 2041 | ····I18N</h2></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Jochen</span>·<span·class="surname">Neumeister</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#l10n-programming">4.1.·I18N-konforme·Anwendungen·programmieren</a></span></dt><dt><span·class="sect1"><a·href="#posix-nls">4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language |
2042 | ······Support·(NLS)</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="l10n-programming"></a>4.1.·I18N-konforme·Anwendungen·programmieren</h2></div></div></div><a·id="idp63604152"·class="indexterm"></a><a·id="idp63604664"·class="indexterm"></a><p>Um·Ihre·Anwendung·verwendbarer·für·andere | 2042 | ······Support·(NLS)</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="l10n-programming"></a>4.1.·I18N-konforme·Anwendungen·programmieren</h2></div></div></div><a·id="idp63681976"·class="indexterm"></a><a·id="idp63682488"·class="indexterm"></a><p>Um·Ihre·Anwendung·verwendbarer·für·andere |
2043 | ······Sprachen·zu·machen,·hoffen·wir,·dass·Sie·I18N-konform | 2043 | ······Sprachen·zu·machen,·hoffen·wir,·dass·Sie·I18N-konform |
2044 | ······programmieren.·Der·GNU·gcc-Compiler·und·Bibliotheken | 2044 | ······programmieren.·Der·GNU·gcc-Compiler·und·Bibliotheken |
2045 | ······für·grafische·Benutzeroberflächen·wie·QT·und·GTK | 2045 | ······für·grafische·Benutzeroberflächen·wie·QT·und·GTK |
2046 | ······unterstützen·I18N·durch·eine·spezielle·Verarbeitung·von | 2046 | ······unterstützen·I18N·durch·eine·spezielle·Verarbeitung·von |
2047 | ······Zeichenketten.·Das·Erstellen·eines·I18N-konformen·Programms | 2047 | ······Zeichenketten.·Das·Erstellen·eines·I18N-konformen·Programms |
2048 | ······ist·sehr·einfach·und·erlaubt·anderen·Mitwirkenden,·Ihre | 2048 | ······ist·sehr·einfach·und·erlaubt·anderen·Mitwirkenden,·Ihre |
2049 | ······Programme·leichter·in·andere·Sprachen·zu·übersetzen. | 2049 | ······Programme·leichter·in·andere·Sprachen·zu·übersetzen. |
2050 | ······Lesen·Sie·die·Bibliothek-spezifischen·I18N-Dokumentationen | 2050 | ······Lesen·Sie·die·Bibliothek-spezifischen·I18N-Dokumentationen |
2051 | ······für·weitere·Details.</p><p>Im·Gegensatz·zur·allgemeinen·Meinung·ist·I18N-konformer | 2051 | ······für·weitere·Details.</p><p>Im·Gegensatz·zur·allgemeinen·Meinung·ist·I18N-konformer |
2052 | ······Code·einfach·zu·programmieren.·Üblicherweise·umfasst | 2052 | ······Code·einfach·zu·programmieren.·Üblicherweise·umfasst |
2053 | ······dies·nur·das·Einbetten·Ihrer·Zeichenketten·in | 2053 | ······dies·nur·das·Einbetten·Ihrer·Zeichenketten·in |
2054 | ······Bibliothek-spezifische·Funktionen.·Stellen·Sie·außerdem | 2054 | ······Bibliothek-spezifische·Funktionen.·Stellen·Sie·außerdem |
2055 | ······bitte·sicher,·dass·Sie·Unterstützung·für·Unicode-·und | 2055 | ······bitte·sicher,·dass·Sie·Unterstützung·für·Unicode-·und |
2056 | ······Multibyte-Zeichen·vorsehen.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63605944"></a>4.1.1.·Ein·Aufruf,·die·I18N-Bemühungen·zu | 2056 | ······Multibyte-Zeichen·vorsehen.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63683768"></a>4.1.1.·Ein·Aufruf,·die·I18N-Bemühungen·zu |
2057 | » vereinheitlichen</h3></div></div></div><p>Wir·sind·darauf·aufmerksam·geworden,·dass·die | 2057 | » vereinheitlichen</h3></div></div></div><p>Wir·sind·darauf·aufmerksam·geworden,·dass·die |
2058 | » einzelnen·I18N-/L10N-Bemühungen·für·jedes·Land | 2058 | » einzelnen·I18N-/L10N-Bemühungen·für·jedes·Land |
2059 | » wiederholt·wurden.·Viele·von·uns·haben·somit·unproduktiverweise | 2059 | » wiederholt·wurden.·Viele·von·uns·haben·somit·unproduktiverweise |
2060 | » das·Rad·immer·wieder·neu·erfunden.·Wir·hoffen,·dass·die | 2060 | » das·Rad·immer·wieder·neu·erfunden.·Wir·hoffen,·dass·die |
2061 | » verschiedenen·großen·Gruppen·für·I18N·Ihre | 2061 | » verschiedenen·großen·Gruppen·für·I18N·Ihre |
2062 | » Bemühungen·in·einer·Gruppe·vereinen·können, | 2062 | » Bemühungen·in·einer·Gruppe·vereinen·können, |
2063 | » ähnlich·der·Zuständigkeit·des·Core-Teams.</p><p>Derzeit·hoffen·wir,·dass·wenn·Sie·I18N-konforme | 2063 | » ähnlich·der·Zuständigkeit·des·Core-Teams.</p><p>Derzeit·hoffen·wir,·dass·wenn·Sie·I18N-konforme |
Offset 2065, 15 lines modified | Offset 2065, 15 lines modified |
2065 | » betreffenden·FreeBSD-Mailinglisten·jedes·Landes·schicken,·um | 2065 | » betreffenden·FreeBSD-Mailinglisten·jedes·Landes·schicken,·um |
2066 | » sie·testen·zu·lassen.·Wir·hoffen·in·Zukunft,·Anwendungen·zu | 2066 | » sie·testen·zu·lassen.·Wir·hoffen·in·Zukunft,·Anwendungen·zu |
2067 | » entwickeln,·die·in·allen·Sprachen·direkt·und·ohne·unsaubere | 2067 | » entwickeln,·die·in·allen·Sprachen·direkt·und·ohne·unsaubere |
2068 | » Änderungen·funktionieren.</p><p>Die·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-i18n"·target="_top">FreeBSD | 2068 | » Änderungen·funktionieren.</p><p>Die·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-i18n"·target="_top">FreeBSD |
2069 | ··internationalization</a>-Mailingliste·ist·eingerichtet·worden.·Wenn | 2069 | ··internationalization</a>-Mailingliste·ist·eingerichtet·worden.·Wenn |
2070 | » Sie·I18N-/L10N-Entwickler·sind,·schicken·Sie·bitte·Ihre | 2070 | » Sie·I18N-/L10N-Entwickler·sind,·schicken·Sie·bitte·Ihre |
2071 | » Kommentare,·Ideen,·Fragen·und·alles,·das·Sie·mit·dem·Thema·in | 2071 | » Kommentare,·Ideen,·Fragen·und·alles,·das·Sie·mit·dem·Thema·in |
2072 | » Verbindung·bringen,·dorthin.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63608376"></a>4.1.2.·Perl·und·Python</h3></div></div></div><a·id="idp63609016"·class="indexterm"></a><a·id="idp63609784"·class="indexterm"></a><p>Perl·und·Python·bieten·Bibliotheken·für·I18N·und·zur | 2072 | » Verbindung·bringen,·dorthin.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63686200"></a>4.1.2.·Perl·und·Python</h3></div></div></div><a·id="idp63686840"·class="indexterm"></a><a·id="idp63687608"·class="indexterm"></a><p>Perl·und·Python·bieten·Bibliotheken·für·I18N·und·zur |
2073 | » Behandlung·von·Unicode-Zeichen.·Bitte·nutzen·Sie·diese | 2073 | » Behandlung·von·Unicode-Zeichen.·Bitte·nutzen·Sie·diese |
2074 | » für·I18N-Konformität.</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="posix-nls"></a>4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language | 2074 | » für·I18N-Konformität.</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="posix-nls"></a>4.2.·Lokalisierte·Nachrichten·mit·POSIX.1·Native·Language |
2075 | ······Support·(NLS)</h2></div><div><span·class="authorgroup">Beigetragen·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Gábor</span>·<span·class="surname">Kövesdán</span></span>.·</span></div></div></div><p>Über·die·Basisfunktionen·von·I18N·hinaus,·wie·das·Bereitstellen | 2075 | ······Support·(NLS)</h2></div><div><span·class="authorgroup">Beigetragen·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Gábor</span>·<span·class="surname">Kövesdán</span></span>.·</span></div></div></div><p>Über·die·Basisfunktionen·von·I18N·hinaus,·wie·das·Bereitstellen |
2076 | ······von·verschiedenen·Eingabecodierungen·oder·die·diversen·nationalen | 2076 | ······von·verschiedenen·Eingabecodierungen·oder·die·diversen·nationalen |
2077 | ······Konventionen,·zum·Beispiel·die·verschiedenen·Dezimalpunkte,·ist·es | 2077 | ······Konventionen,·zum·Beispiel·die·verschiedenen·Dezimalpunkte,·ist·es |
2078 | ······auf·einem·höheren·Level·von·I18N·möglich,·die·Ausgabe | 2078 | ······auf·einem·höheren·Level·von·I18N·möglich,·die·Ausgabe |
2079 | ······von·Programmen·zu·lokalisieren.··Ein·Weg·dies·zu·tun·besteht·in·der | 2079 | ······von·Programmen·zu·lokalisieren.··Ein·Weg·dies·zu·tun·besteht·in·der |
Offset 2175, 15 lines modified | Offset 2175, 15 lines modified |
2175 | printf(getstr(1)); | 2175 | printf(getstr(1)); |
| |
2176 | ... | 2176 | ... |
| |
2177 | #ifndef·WITHOUT_NLS | 2177 | #ifndef·WITHOUT_NLS |
2178 | ·catclose(catalog); | 2178 | ·catclose(catalog); |
2179 | #endif | 2179 | #endif |
2180 | » </pre><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63642424"></a>4.2.3.1.·Reduzierung·von·zu·lokalisierenden·Zeichenketten</h4></div></div></div><p>Es·gibt·einen·guten·Weg,·Zeichenketten·die·lokaliesert | 2180 | » </pre><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63740728"></a>4.2.3.1.·Reduzierung·von·zu·lokalisierenden·Zeichenketten</h4></div></div></div><p>Es·gibt·einen·guten·Weg,·Zeichenketten·die·lokaliesert |
2181 | » ····werden·müssen,·durch·den·Einsatz·von | 2181 | » ····werden·müssen,·durch·den·Einsatz·von |
2182 | » ····<span·class="application">libc</span>-Fehlermeldungen·zu·reduzieren. | 2182 | » ····<span·class="application">libc</span>-Fehlermeldungen·zu·reduzieren. |
2183 | » ····Dadurch·vermeidet·man·Duplikate·und·erstellt·gleiche·Meldungen | 2183 | » ····Dadurch·vermeidet·man·Duplikate·und·erstellt·gleiche·Meldungen |
2184 | » ····für·häufige·Fehlermeldungen,·die·bei·vielen | 2184 | » ····für·häufige·Fehlermeldungen,·die·bei·vielen |
2185 | » ····Programmen·auftreten·können.</p><p>Als·erstes·ist·hier·ein·Beispiel,·dass·keine | 2185 | » ····Programmen·auftreten·können.</p><p>Als·erstes·ist·hier·ein·Beispiel,·dass·keine |
2186 | » ····<span·class="application">libc</span>-Fehlermeldungen·benutzt:</p><pre·class="programlisting"> | 2186 | » ····<span·class="application">libc</span>-Fehlermeldungen·benutzt:</p><pre·class="programlisting"> |
2187 | #include·<err.h> | 2187 | #include·<err.h> |
Offset 2252, 18 lines modified | Offset 2252, 18 lines modified |
2252 | » ··überschrieben·werden.··Es·gibt·noch·weitere·Optionen,·um | 2252 | » ··überschrieben·werden.··Es·gibt·noch·weitere·Optionen,·um |
2253 | » ··eine·Feinabstimmung·zur·Verarbeitung·der·Katalogdateien | 2253 | » ··eine·Feinabstimmung·zur·Verarbeitung·der·Katalogdateien |
2254 | » ··zu·erreichen.··Da·sie·nicht·notwendig·sind,·werden·sie·hier | 2254 | » ··zu·erreichen.··Da·sie·nicht·notwendig·sind,·werden·sie·hier |
2255 | » ··nicht·weiter·beschrieben.··Weitere·Informationen·über | 2255 | » ··nicht·weiter·beschrieben.··Weitere·Informationen·über |
2256 | » ··<code·class="filename">bsd.nls.mk</code>·finden·Sie·in·der·Datei·selbst. | 2256 | » ··<code·class="filename">bsd.nls.mk</code>·finden·Sie·in·der·Datei·selbst. |
2257 | » ··Der·Text·ist·kurz·und·leicht·zu·verstehen.</p></div></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="policies"></a>Kapitel·5.·Vorgaben·und·Richtlinien·für·das | 2257 | » ··Der·Text·ist·kurz·und·leicht·zu·verstehen.</p></div></div></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="policies"></a>Kapitel·5.·Vorgaben·und·Richtlinien·für·das |
2258 | ····Quelltextverzeichnis</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Poul-Henning</span>·<span·class="surname">Kamp</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Giorgos</span>·<span·class="surname">Keramidas</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Axel</span>·<span·class="surname">Gruner</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href=·✂ | 2258 | ····Quelltextverzeichnis</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Poul-Henning</span>·<span·class="surname">Kamp</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Giorgos</span>·<span·class="surname">Keramidas</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Axel</span>·<span·class="surname">Gruner</span></span>.·</span></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#policies-style">5.1.·Stil-Richtlinien</a></span></dt><dt><span·class="sect1"><a·href="#policies-maintainer">5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</a></span></dt><dt><span·class="sect1"><a·href="#policies-contributed">5.3.·Beigesteuerte·Software</a></span></dt><dt><span·class="sect1"><a·href=·✂ |
2259 | ····Richtlinien·für·das·FreeBSD-Quelltextverzeichnis.</p><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-style"></a>5.1.·Stil-Richtlinien</h2></div></div></div><a·id="idp63686584"·class="indexterm"></a><p>Ein·konsistenter·Code-Stil·ist·extrem·wichtig,·besonders | 2259 | ····Richtlinien·für·das·FreeBSD-Quelltextverzeichnis.</p><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-style"></a>5.1.·Stil-Richtlinien</h2></div></div></div><a·id="idp63768504"·class="indexterm"></a><p>Ein·konsistenter·Code-Stil·ist·extrem·wichtig,·besonders |
2260 | ······in·einem·so·grossen·Projekt·wie·FreeBSD.··Der·Code·sollte·dem | 2260 | ······in·einem·so·grossen·Projekt·wie·FreeBSD.··Der·Code·sollte·dem |
2261 | ······FreeBSD·Code-Stil·entsprechen,·welcher·in·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=style&sektion=9&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">style</span>(9)</span></a>·und | 2261 | ······FreeBSD·Code-Stil·entsprechen,·welcher·in·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=style&sektion=9&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">style</span>(9)</span></a>·und |
2262 | ······<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=style.Makefile&sektion=5&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">style.Makefile</span>(5)</span></a>·genauer·beschrieben·ist.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-maintainer"></a>5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</h2></div></div></div><a·id="idp63690168"·class="indexterm"></a><p>Wenn·ein·bestimmter·Bereich·der·FreeBSD | 2262 | ······<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=style.Makefile&sektion=5&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">style.Makefile</span>(5)</span></a>·genauer·beschrieben·ist.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-maintainer"></a>5.2.·<code·class="varname">MAINTAINER</code>·eines·Makefiles</h2></div></div></div><a·id="idp63772088"·class="indexterm"></a><p>Wenn·ein·bestimmter·Bereich·der·FreeBSD |
2263 | ······<code·class="filename">src/</code>-Distribution·von·einer·Person·oder·Gruppe | 2263 | ······<code·class="filename">src/</code>-Distribution·von·einer·Person·oder·Gruppe |
2264 | ······gepflegt·wird,·kann·dies·durch·einen·Eintrag·in·die·Datei | 2264 | ······gepflegt·wird,·kann·dies·durch·einen·Eintrag·in·die·Datei |
2265 | ······<code·class="filename">src/MAINTAINERS</code>·der·Öffentlichkeit | 2265 | ······<code·class="filename">src/MAINTAINERS</code>·der·Öffentlichkeit |
2266 | ······mitgeteilt·werden.··Maintainer·eines·Ports·in·der·Ports-Sammlung | 2266 | ······mitgeteilt·werden.··Maintainer·eines·Ports·in·der·Ports-Sammlung |
2267 | ······können·ihre·Verantwortung·über·den·Port·durch·einen·Eintrag·in | 2267 | ······können·ihre·Verantwortung·über·den·Port·durch·einen·Eintrag·in |
2268 | ······die·<code·class="varname">MAINTAINER</code>-Zeile·im·<code·class="filename">Makefile</code> | 2268 | ······die·<code·class="varname">MAINTAINER</code>-Zeile·im·<code·class="filename">Makefile</code> |
2269 | ······des·Ports·der·Welt·mitteilen.</p><pre·class="programlisting"><code·class="varname">MAINTAINER</code>=·<em·class="replaceable"><code>email-addresses</code></em></pre><div·xmlns=""·class="tip"><h3·class="admontitle">Tipp:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Für·andere·Teile·des·Repositories·oder·andere·Abschnitte,·die | 2269 | ······des·Ports·der·Welt·mitteilen.</p><pre·class="programlisting"><code·class="varname">MAINTAINER</code>=·<em·class="replaceable"><code>email-addresses</code></em></pre><div·xmlns=""·class="tip"><h3·class="admontitle">Tipp:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Für·andere·Teile·des·Repositories·oder·andere·Abschnitte,·die |
Offset 2287, 15 lines modified | Offset 2287, 15 lines modified |
2287 | ··········nicht·antwortet,·können·die·Änderungen,·die·mit·dem·Commit | 2287 | ··········nicht·antwortet,·können·die·Änderungen,·die·mit·dem·Commit |
2288 | ··········in·Kraft·treten,·auch·ohne·Überprüfung·durch·den·Maintainer | 2288 | ··········in·Kraft·treten,·auch·ohne·Überprüfung·durch·den·Maintainer |
2289 | ··········vollzogen·werden.··Dennoch·wird·empfohlen,·dass·die·Änderungen, | 2289 | ··········vollzogen·werden.··Dennoch·wird·empfohlen,·dass·die·Änderungen, |
2290 | ··········falls·möglich,·von·jemand·anderem·überprüft | 2290 | ··········falls·möglich,·von·jemand·anderem·überprüft |
2291 | ··········werden.</p></li><li·class="listitem"><p>Es·ist·natürlich·nicht·akzeptabel,·einer·Person·oder·Gruppe | 2291 | ··········werden.</p></li><li·class="listitem"><p>Es·ist·natürlich·nicht·akzeptabel,·einer·Person·oder·Gruppe |
2292 | ··········den·Status·eines·Maintainers·zu·geben,·so·lange·sie·nicht·zustimmt, | 2292 | ··········den·Status·eines·Maintainers·zu·geben,·so·lange·sie·nicht·zustimmt, |
2293 | ··········diese·Pflicht·auf·sich·zu·nehmen.·Andererseits·muss·es·kein·einzelner | 2293 | ··········diese·Pflicht·auf·sich·zu·nehmen.·Andererseits·muss·es·kein·einzelner |
2294 | ··········Mensch·sein.·Eine·Gruppe·von·Menschen·ist·genauso·in·Ordnung.</p></li></ul></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-contributed"></a>5.3.·Beigesteuerte·Software</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Poul-Henning</span>·<span·class="surname">Kamp</span></span>,·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">David</span>·<span·class="surname">O'Brien</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Gavin</span>·<span·class="surname">Atkinson</span></span>.·</span></div></div></div><a·id="idp63726520"·class="indexterm"></a><p>Einige·Teile·der·FreeBSD-Distribution·enthalten·Software, | 2294 | ··········Mensch·sein.·Eine·Gruppe·von·Menschen·ist·genauso·in·Ordnung.</p></li></ul></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-contributed"></a>5.3.·Beigesteuerte·Software</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Poul-Henning</span>·<span·class="surname">Kamp</span></span>,·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">David</span>·<span·class="surname">O'Brien</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Gavin</span>·<span·class="surname">Atkinson</span></span>.·</span></div></div></div><a·id="idp63783864"·class="indexterm"></a><p>Einige·Teile·der·FreeBSD-Distribution·enthalten·Software, |
2295 | ······die·aktiv·außerhalb·des·FreeBSD-Projektes·gepflegt·wird. | 2295 | ······die·aktiv·außerhalb·des·FreeBSD-Projektes·gepflegt·wird. |
2296 | ······Aus·historischen·Gründen·nennen·wir·dies | 2296 | ······Aus·historischen·Gründen·nennen·wir·dies |
2297 | ······<span·class="emphasis"><em>contributed</em></span>·Software.·Beispiele·dafür | 2297 | ······<span·class="emphasis"><em>contributed</em></span>·Software.·Beispiele·dafür |
2298 | ······sind·<span·class="application">sendmail</span>, | 2298 | ······sind·<span·class="application">sendmail</span>, |
2299 | ······<span·class="application">gcc</span>·und | 2299 | ······<span·class="application">gcc</span>·und |
2300 | ······<span·class="application">patch</span>.</p><p>Über·die·Jahre·wurden·verschiedene·Methoden·genutzt, | 2300 | ······<span·class="application">patch</span>.</p><p>Über·die·Jahre·wurden·verschiedene·Methoden·genutzt, |
2301 | ······um·solche·Software·zu·verwalten,·und·jede·hat·Vor- | 2301 | ······um·solche·Software·zu·verwalten,·und·jede·hat·Vor- |
Offset 2564, 17 lines modified | Offset 2564, 17 lines modified |
2564 | » ······einfach·zu·halten).</p></li><li·class="listitem"><p>Sollten·sich·immer·in·<code·class="filename">LINT</code> | 2564 | » ······einfach·zu·halten).</p></li><li·class="listitem"><p>Sollten·sich·immer·in·<code·class="filename">LINT</code> |
2565 | » ······befinden,·jedoch·entscheidet·das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> | 2565 | » ······befinden,·jedoch·entscheidet·das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> |
2566 | » ······je·nach·Fall,·ob·es | 2566 | » ······je·nach·Fall,·ob·es |
2567 | » ······auskommentiert·wird·oder·nicht.·Das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> | 2567 | » ······auskommentiert·wird·oder·nicht.·Das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> |
2568 | » ······kann·sich·zu·einem·späteren·Zeitpunkt | 2568 | » ······kann·sich·zu·einem·späteren·Zeitpunkt |
2569 | » ······immer·noch·anders·entscheiden.</p></li><li·class="listitem"><p>Der·<em·class="firstterm">Release-Engineer</em> | 2569 | » ······immer·noch·anders·entscheiden.</p></li><li·class="listitem"><p>Der·<em·class="firstterm">Release-Engineer</em> |
2570 | » ······entscheidet,·ob·es·in·ein·Release·aufgenommen·wird·oder | 2570 | » ······entscheidet,·ob·es·in·ein·Release·aufgenommen·wird·oder |
2571 | » ······nicht.</p></li></ol></div></li><li·class="listitem"><p>Userland-Dateien:</p><div·class="orderedlist"><ol·class="orderedlist"·type="a"><li·class="listitem"><a·id="idp63860536"·class="indexterm"></a><p>Das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> | 2571 | » ······nicht.</p></li></ol></div></li><li·class="listitem"><p>Userland-Dateien:</p><div·class="orderedlist"><ol·class="orderedlist"·type="a"><li·class="listitem"><a·id="idp63946552"·class="indexterm"></a><p>Das·<a·class="link"·href="../../../../administration.html#t-core"·target="_top">Core-Team</a> |
2572 | » ······entscheidet,·ob·der·Code·von | 2572 | » ······entscheidet,·ob·der·Code·von |
2573 | » ······<code·class="command">make·world</code>·gebaut·wird·oder·nicht.</p></li><li·class="listitem"><a·id="idp63862712"·class="indexterm"></a><p>Der·<a·class="link"·href="../../../../administration.html#t-re"·target="_top">Release-Engineer</a> | 2573 | » ······<code·class="command">make·world</code>·gebaut·wird·oder·nicht.</p></li><li·class="listitem"><a·id="idp63948728"·class="indexterm"></a><p>Der·<a·class="link"·href="../../../../administration.html#t-re"·target="_top">Release-Engineer</a> |
2574 | » ······entscheidet,·ob·es·in·das·Release | 2574 | » ······entscheidet,·ob·es·in·das·Release |
2575 | » ······aufgenommen·wird·oder·nicht.</p></li></ol></div></li></ol></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-shlib"></a>5.5.·Shared-Libraries</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Satoshi</span>·<span·class="surname">Asami</span></span>,·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Peter</span>·<span·class="surname">Wemm</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">David</span>·<span·class="surname">O'Brien</span></span>.·</span></div></div></div><p>Sollten·Sie·die·Unterstützung·für | 2575 | » ······aufgenommen·wird·oder·nicht.</p></li></ol></div></li></ol></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="policies-shlib"></a>5.5.·Shared-Libraries</h2></div><div><span·class="authorgroup">Beigesteuert·von·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Satoshi</span>·<span·class="surname">Asami</span></span>,·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Peter</span>·<span·class="surname">Wemm</span></span>·und·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">David</span>·<span·class="surname">O'Brien</span></span>.·</span></div></div></div><p>Sollten·Sie·die·Unterstützung·für |
2576 | ······Shared-Libraries·bei·einem·Port·oder·einem·Stück·Software, | 2576 | ······Shared-Libraries·bei·einem·Port·oder·einem·Stück·Software, |
2577 | ······das·dies·nicht·hat,·hinzufügen,·sollten·die·Versionsnummern | 2577 | ······das·dies·nicht·hat,·hinzufügen,·sollten·die·Versionsnummern |
2578 | ······dessen·Regeln·folgen.·Im·Allgemeinen·hat·die·sich·daraus | 2578 | ······dessen·Regeln·folgen.·Im·Allgemeinen·hat·die·sich·daraus |
2579 | ······resultierende·Nummer·nichts·mit·der·Release-Version·der·Software | 2579 | ······resultierende·Nummer·nichts·mit·der·Release-Version·der·Software |
2580 | ······zu·tun.</p><p>Die·drei·Grundsätze·zum·Erstellen·von·Shared-Libraries | 2580 | ······zu·tun.</p><p>Die·drei·Grundsätze·zum·Erstellen·von·Shared-Libraries |
Offset 2756, 15 lines modified | Offset 2756, 15 lines modified |
2756 | ····Lesen·Sie·bitte·<a·class="link"·href="../../../../doc/en_US.ISO8859-1/books/developers-handbook/sockets.html"·target="_top"> | 2756 | ····Lesen·Sie·bitte·<a·class="link"·href="../../../../doc/en_US.ISO8859-1/books/developers-handbook/sockets.html"·target="_top"> |
2757 | ····das·Original·in·englischer·Sprache</a>.··Wenn·Sie·helfen | 2757 | ····das·Original·in·englischer·Sprache</a>.··Wenn·Sie·helfen |
2758 | ····wollen,·dieses·Kapitel·zu·übersetzen,·senden·Sie·bitte | 2758 | ····wollen,·dieses·Kapitel·zu·übersetzen,·senden·Sie·bitte |
2759 | ····eine·E-Mail·an·die·Mailingliste·'FreeBSD·German·Documentation·Project' | 2759 | ····eine·E-Mail·an·die·Mailingliste·'FreeBSD·German·Documentation·Project' |
2760 | ··<code·class="email"><<a·xmlns=""·class="email"·href="mailto:de-bsd-translators@de.FreeBSD.org">de-bsd-translators@de.FreeBSD.org</a>></code>.</p></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6"></a>Kapitel·8.·IPv6·Internals</h2></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#ipv6-implementation">8.1.·IPv6/IPsec-Implementierung</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="ipv6-implementation"></a>8.1.·IPv6/IPsec-Implementierung</h2></div><div><span·class="authorgroup">Contributed·by·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Yoshinobu</span>·<span·class="surname">Inoue</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/19·✂ | 2760 | ··<code·class="email"><<a·xmlns=""·class="email"·href="mailto:de-bsd-translators@de.FreeBSD.org">de-bsd-translators@de.FreeBSD.org</a>></code>.</p></div><div·class="chapter"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6"></a>Kapitel·8.·IPv6·Internals</h2></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="sect1"><a·href="#ipv6-implementation">8.1.·IPv6/IPsec-Implementierung</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="ipv6-implementation"></a>8.1.·IPv6/IPsec-Implementierung</h2></div><div><span·class="authorgroup">Contributed·by·<span·xmlns="http://www.w3.org/1999/xhtml"·class="author"><span·class="firstname">Yoshinobu</span>·<span·class="surname">Inoue</span></span>.·</span></div><div><span·class="authorgroup">Übersetzt·von·<span·xmlns="http://www.w3.org/19·✂ |
2761 | ······IPsec-Implementierung·abhängigen·Internas.·Die | 2761 | ······IPsec-Implementierung·abhängigen·Internas.·Die |
2762 | ······Funktionalitäten·wurden·vom·<a·class="link"·href="http://www.kame.net/"·target="_top">KAME-Projekt</a> | 2762 | ······Funktionalitäten·wurden·vom·<a·class="link"·href="http://www.kame.net/"·target="_top">KAME-Projekt</a> |
2763 | ······abgeleitet</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6details"></a>8.1.1.·IPv6</h3></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64005560"></a>8.1.1.1.·Konformität</h4></div></div></div><p>Die·IPv6·abhängigen·Funktionen·richten·sich·nach, | 2763 | ······abgeleitet</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6details"></a>8.1.1.·IPv6</h3></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64058808"></a>8.1.1.1.·Konformität</h4></div></div></div><p>Die·IPv6·abhängigen·Funktionen·richten·sich·nach, |
2764 | » ··oder·versuchen·sich·nach·den·neuesten·IPv6-Spezifikationen | 2764 | » ··oder·versuchen·sich·nach·den·neuesten·IPv6-Spezifikationen |
2765 | » ··zu·richten.·(<span·class="emphasis"><em>Achtung</em></span>:·Dies·ist·keine | 2765 | » ··zu·richten.·(<span·class="emphasis"><em>Achtung</em></span>:·Dies·ist·keine |
2766 | » ··vollständige·Liste·-·es·wäre·zu·aufwändig, | 2766 | » ··vollständige·Liste·-·es·wäre·zu·aufwändig, |
2767 | » ··diese·zu·pflegen...).</p><p>Für·weitere·Details·beachten·sie·bitte·die | 2767 | » ··diese·zu·pflegen...).</p><p>Für·weitere·Details·beachten·sie·bitte·die |
2768 | » ··entsprechenden·Kapitel,·RFCs,·manual·pages,·oder·Kommentare | 2768 | » ··entsprechenden·Kapitel,·RFCs,·manual·pages,·oder·Kommentare |
2769 | » ··in·den·Quelltexten.</p><p>Konformitätsprüfungen·wurden·basierend·auf | 2769 | » ··in·den·Quelltexten.</p><p>Konformitätsprüfungen·wurden·basierend·auf |
2770 | » ··KAME-STABLE-Kit·des·TAHI-Projekts·durchgeführt.·Die | 2770 | » ··KAME-STABLE-Kit·des·TAHI-Projekts·durchgeführt.·Die |
Offset 2938, 15 lines modified | Offset 2938, 15 lines modified |
2938 | » ··Spezifikationen·beschreiben.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6-pnp"></a>8.1.1.4.·Plug·and·Play</h4></div></div></div><p>Der·grösste·Teil·der·statuslosen | 2938 | » ··Spezifikationen·beschreiben.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipv6-pnp"></a>8.1.1.4.·Plug·and·Play</h4></div></div></div><p>Der·grösste·Teil·der·statuslosen |
2939 | » ··IPv6-Adress-Autokonfiguration·ist·im·Kernel·implementiert. | 2939 | » ··IPv6-Adress-Autokonfiguration·ist·im·Kernel·implementiert. |
2940 | » ··Neighbor-Discovery-Funktionen·sind·als·ganzes·im·Kernel | 2940 | » ··Neighbor-Discovery-Funktionen·sind·als·ganzes·im·Kernel |
2941 | » ··implementiert.·Router-Advertisement·(RA)·Eingabe·für | 2941 | » ··implementiert.·Router-Advertisement·(RA)·Eingabe·für |
2942 | » ··Hosts·ist·im·Kernel·implementiert.·Router-Solicitation·(RS) | 2942 | » ··Hosts·ist·im·Kernel·implementiert.·Router-Solicitation·(RS) |
2943 | » ··Ausgabe·für·Hosts,·RS-Eingabe·für·Router·und | 2943 | » ··Ausgabe·für·Hosts,·RS-Eingabe·für·Router·und |
2944 | » ··RA-Ausgabe·für·Router·ist·im·Userland | 2944 | » ··RA-Ausgabe·für·Router·ist·im·Userland |
2945 | » ··implementiert.</p><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64108216"></a>8.1.1.4.1.·Zuweisung·von·link-local·und·speziellen | 2945 | » ··implementiert.</p><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64145080"></a>8.1.1.4.1.·Zuweisung·von·link-local·und·speziellen |
2946 | » ····Adressen</h5></div></div></div><p>Die·IPv6·link-local-Adresse·wird·aus·einer | 2946 | » ····Adressen</h5></div></div></div><p>Die·IPv6·link-local-Adresse·wird·aus·einer |
2947 | » ····IEEE802-Adresse·(Ethernet·MAC·address)·erzeugt.·Jeder | 2947 | » ····IEEE802-Adresse·(Ethernet·MAC·address)·erzeugt.·Jeder |
2948 | » ····Schnittstelle·wird·automatisch·eine·IPv6 | 2948 | » ····Schnittstelle·wird·automatisch·eine·IPv6 |
2949 | » ····link-local-Adresse·zugewiesen,·sobald·die·Schnittstelle | 2949 | » ····link-local-Adresse·zugewiesen,·sobald·die·Schnittstelle |
2950 | » ····aktiv·ist·(IFF_UP).·Ebenso·wird·eine·direkte·Route | 2950 | » ····aktiv·ist·(IFF_UP).·Ebenso·wird·eine·direkte·Route |
2951 | » ····für·die·link-local-Adresse·zur·Routing-Tabelle | 2951 | » ····für·die·link-local-Adresse·zur·Routing-Tabelle |
2952 | » ····hinzugefügt.</p><p>Hier·ist·eine·Ausgabe·des·netstat-Kommandos:</p><pre·class="screen">Internet6: | 2952 | » ····hinzugefügt.</p><p>Hier·ist·eine·Ausgabe·des·netstat-Kommandos:</p><pre·class="screen">Internet6: |
Offset 2971, 15 lines modified | Offset 2971, 15 lines modified |
2971 | » ····fe80::1:ff01:6317·und·ff02::1,·jeweils·zu·der·Verbindung, | 2971 | » ····fe80::1:ff01:6317·und·ff02::1,·jeweils·zu·der·Verbindung, |
2972 | » ····an·die·die·Schnittstelle·verbunden·ist).·zusätzlich | 2972 | » ····an·die·die·Schnittstelle·verbunden·ist).·zusätzlich |
2973 | » ····zu·einer·link-local-Adresse·wird·eine·loopback-Adresse | 2973 | » ····zu·einer·link-local-Adresse·wird·eine·loopback-Adresse |
2974 | » ····(::1)·einer·loopback-Schnittstelle·zugewiesen. | 2974 | » ····(::1)·einer·loopback-Schnittstelle·zugewiesen. |
2975 | » ····Außerdem·werden·::1/128·und·ff01::/32·automatisch | 2975 | » ····Außerdem·werden·::1/128·und·ff01::/32·automatisch |
2976 | » ····zur·Routing-Tabelle·hinzugefügt·und·die | 2976 | » ····zur·Routing-Tabelle·hinzugefügt·und·die |
2977 | » ····loopback-Schnittstelle·verbindet·sich·mit·der·node-local | 2977 | » ····loopback-Schnittstelle·verbindet·sich·mit·der·node-local |
2978 | » ····multicast·Gruppe·ff01::1.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64111288"></a>8.1.1.4.2.·Stateless·address·autoconfiguration·beim·Host</h5></div></div></div><p>In·der·IPv6-Spezifikation·werden·Knoten·in·zwei | 2978 | » ····multicast·Gruppe·ff01::1.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63623864"></a>8.1.1.4.2.·Stateless·address·autoconfiguration·beim·Host</h5></div></div></div><p>In·der·IPv6-Spezifikation·werden·Knoten·in·zwei |
2979 | » ····Kategorien·unterteilt:·<span·class="emphasis"><em>Router</em></span>·und | 2979 | » ····Kategorien·unterteilt:·<span·class="emphasis"><em>Router</em></span>·und |
2980 | » ····<span·class="emphasis"><em>Hosts</em></span>.·Router·leiten·Pakete,·die·an | 2980 | » ····<span·class="emphasis"><em>Hosts</em></span>.·Router·leiten·Pakete,·die·an |
2981 | » ····andere·adressiert·sind,·weiter,·Hosts·leiten·Pakete·nicht | 2981 | » ····andere·adressiert·sind,·weiter,·Hosts·leiten·Pakete·nicht |
2982 | » ····weiter.·net.inet6.ip6.forwarding·definiert,·ob·dieser | 2982 | » ····weiter.·net.inet6.ip6.forwarding·definiert,·ob·dieser |
2983 | » ····Knoten·ein·Router·oder·ein·Host·ist·(Router·falls·es·1 | 2983 | » ····Knoten·ein·Router·oder·ein·Host·ist·(Router·falls·es·1 |
2984 | » ····ist,·Host,·falls·es·0·ist).</p><p>Sobald·ein·Host·ein·Router-Advertisement·vom·Router | 2984 | » ····ist,·Host,·falls·es·0·ist).</p><p>Sobald·ein·Host·ein·Router-Advertisement·vom·Router |
2985 | » ····hört,·kann·er·sich·selbst·mit·statusloser | 2985 | » ····hört,·kann·er·sich·selbst·mit·statusloser |
Offset 3172, 15 lines modified | Offset 3172, 15 lines modified |
3172 | » ······der·Paketlänge·erleben·können.</p></li><li·class="listitem"><p>Irrigerweise·prüfen·wir·das·ip6_plen-Feld·des | 3172 | » ······der·Paketlänge·erleben·können.</p></li><li·class="listitem"><p>Irrigerweise·prüfen·wir·das·ip6_plen-Feld·des |
3173 | » ······IPv6-Header·für·packet·payload·length·an | 3173 | » ······IPv6-Header·für·packet·payload·length·an |
3174 | » ······verschiedenen·Stellen.·Wir·sollten·mbuf·pkthdr.len | 3174 | » ······verschiedenen·Stellen.·Wir·sollten·mbuf·pkthdr.len |
3175 | » ······stattdessen·prüfen.·ip6_input()·wird·bei·der | 3175 | » ······stattdessen·prüfen.·ip6_input()·wird·bei·der |
3176 | » ······Eingabe·eine·Prüfung·der·Jumbo·-Payload-Option | 3176 | » ······Eingabe·eine·Prüfung·der·Jumbo·-Payload-Option |
3177 | » ······durchführen·und·wir·können·danach·mbuf | 3177 | » ······durchführen·und·wir·können·danach·mbuf |
3178 | » ······pkthdr.len·sicher·benutzen.</p></li><li·class="listitem"><p>Natürlich·braucht·der·TCP-Kode·an·einigen | 3178 | » ······pkthdr.len·sicher·benutzen.</p></li><li·class="listitem"><p>Natürlich·braucht·der·TCP-Kode·an·einigen |
3179 | » ······Stellen·eine·sorgfältige·Aktualisierung.</p></li></ul></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64187960"></a>8.1.1.8.·Verhindern·von·Schleifen·beim·Verarbeiten·von | 3179 | » ······Stellen·eine·sorgfältige·Aktualisierung.</p></li></ul></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64212536"></a>8.1.1.8.·Verhindern·von·Schleifen·beim·Verarbeiten·von |
3180 | » ··Headern</h4></div></div></div><p>Die·IPv6-Spezifikation·erlaubt·eine·willkürliche | 3180 | » ··Headern</h4></div></div></div><p>Die·IPv6-Spezifikation·erlaubt·eine·willkürliche |
3181 | » ··Zahl·von·Erweiterungs-Headern,·die·in·einem·Paket·platziert | 3181 | » ··Zahl·von·Erweiterungs-Headern,·die·in·einem·Paket·platziert |
3182 | » ··werden·können.·Wenn·wir·IPv6-Kode·für·die | 3182 | » ··werden·können.·Wenn·wir·IPv6-Kode·für·die |
3183 | » ··Paketverarbeitung·auf·die·Art·und·Weise·implementieren·wie | 3183 | » ··Paketverarbeitung·auf·die·Art·und·Weise·implementieren·wie |
3184 | » ··wir·es·beim·BSD-IPv4-Kode·geschehen·ist,·dann·würde | 3184 | » ··wir·es·beim·BSD-IPv4-Kode·geschehen·ist,·dann·würde |
3185 | » ··wegen·einer·lange·Kette·von·Funktionsaufrufen·der | 3185 | » ··wegen·einer·lange·Kette·von·Funktionsaufrufen·der |
3186 | » ··Kernel-Stack·überlaufen.·sys/netinet6-Kode·ist | 3186 | » ··Kernel-Stack·überlaufen.·sys/netinet6-Kode·ist |
Offset 3200, 22 lines modified | Offset 3200, 22 lines modified |
3200 | » ··IPSec-Header·jeder·einzelne·IPSec-Header·jede | 3200 | » ··IPSec-Header·jeder·einzelne·IPSec-Header·jede |
3201 | » ··IPSec-Prüfung·durchlaufen.·So·wird·es·einem·anonymen | 3201 | » ··IPSec-Prüfung·durchlaufen.·So·wird·es·einem·anonymen |
3202 | » ··Angreifer·unmöglich·gemacht·eine·Attacke | 3202 | » ··Angreifer·unmöglich·gemacht·eine·Attacke |
3203 | » ··durchzuführen.)</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="icmpv6"></a>8.1.1.9.·ICMPv6</h4></div></div></div><p>Nachdem·RFC2463·veröffentlicht·worden·war,·hat | 3203 | » ··durchzuführen.)</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="icmpv6"></a>8.1.1.9.·ICMPv6</h4></div></div></div><p>Nachdem·RFC2463·veröffentlicht·worden·war,·hat |
3204 | » ··die·IETF-ipngwg·beschlossen·ICMPv6-Fehler-Pakete·gegen | 3204 | » ··die·IETF-ipngwg·beschlossen·ICMPv6-Fehler-Pakete·gegen |
3205 | » ··ICMPv6·umzuleiten,·um·einen·ICMPv6-Sturm·auf·einem | 3205 | » ··ICMPv6·umzuleiten,·um·einen·ICMPv6-Sturm·auf·einem |
3206 | » ··Netzwerkmedium·zu·unterbinden.·Dies·ist·bereits·im·Kernel | 3206 | » ··Netzwerkmedium·zu·unterbinden.·Dies·ist·bereits·im·Kernel |
3207 | » ··implementiert.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64190776"></a>8.1.1.10.·Anwendungen</h4></div></div></div><p>Für·Programmierung·des·Userland·unterstützen | 3207 | » ··implementiert.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64215352"></a>8.1.1.10.·Anwendungen</h4></div></div></div><p>Für·Programmierung·des·Userland·unterstützen |
3208 | » ··wir·das·IPv6-Socket-API·wie·es·in·RFC2553,·RFC2292·und·in | 3208 | » ··wir·das·IPv6-Socket-API·wie·es·in·RFC2553,·RFC2292·und·in |
3209 | » ··aufkommenden·Internet-Konzepten·beschrieben·ist.</p><p>TCP/UDP·über·IPv6·ist·verfügbar·und·ziemlich | 3209 | » ··aufkommenden·Internet-Konzepten·beschrieben·ist.</p><p>TCP/UDP·über·IPv6·ist·verfügbar·und·ziemlich |
3210 | » ··stabil.·Man·kann·sich·an·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=telnet&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">telnet</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ftp&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ftp</span>(1)</span></a>, | 3210 | » ··stabil.·Man·kann·sich·an·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=telnet&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">telnet</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ftp&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ftp</span>(1)</span></a>, |
3211 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=rlogin&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">rlogin</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=rsh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">rsh</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ssh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ssh</span>(1)</span></a>,·usw.·erfreuen. | 3211 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=rlogin&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">rlogin</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=rsh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">rsh</span>(1)</span></a>,·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ssh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ssh</span>(1)</span></a>,·usw.·erfreuen. |
3212 | » ··Diese·Anwendungen·sind·unabhängig·vom·Protokoll.·Das | 3212 | » ··Diese·Anwendungen·sind·unabhängig·vom·Protokoll.·Das |
3213 | » ··liegt·daran,·weil·diese·Programme·automatisch·IPv4·oder·IPv6 | 3213 | » ··liegt·daran,·weil·diese·Programme·automatisch·IPv4·oder·IPv6 |
3214 | » ··entsprechend·des·DNS·auswählen.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64196152"></a>8.1.1.11.·Kernel·Interna</h4></div></div></div><p>Während·ip_forward()·ip_output()·aufruft,·ruft | 3214 | » ··entsprechend·des·DNS·auswählen.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64220728"></a>8.1.1.11.·Kernel·Interna</h4></div></div></div><p>Während·ip_forward()·ip_output()·aufruft,·ruft |
3215 | » ··ip6_forward()·direkt·if_output()·auf,·da·Router·IPv6-Pakete | 3215 | » ··ip6_forward()·direkt·if_output()·auf,·da·Router·IPv6-Pakete |
3216 | » ··nicht·in·Fragmente·teilen·dürfen.</p><p>ICMPv6·sollte·das·original·Paket·so·lang·wie | 3216 | » ··nicht·in·Fragmente·teilen·dürfen.</p><p>ICMPv6·sollte·das·original·Paket·so·lang·wie |
3217 | » ··möglich·bis·maximal·1280·halten.·UDP6/IP6·port | 3217 | » ··möglich·bis·maximal·1280·halten.·UDP6/IP6·port |
3218 | » ··unreach,·zum·Beispiel,·sollte·alle·Erweiterungs-Header·und | 3218 | » ··unreach,·zum·Beispiel,·sollte·alle·Erweiterungs-Header·und |
3219 | » ··die·unveränderten·UDP6-·und·IP6-Header·enthalten.·Um | 3219 | » ··die·unveränderten·UDP6-·und·IP6-Header·enthalten.·Um |
3220 | » ··das·originale·Paket·zu·erhalten,·konvertieren·alle | 3220 | » ··das·originale·Paket·zu·erhalten,·konvertieren·alle |
3221 | » ··IP6-Funktionen·außer·TCP·niemals·Network-Byte-Order·in | 3221 | » ··IP6-Funktionen·außer·TCP·niemals·Network-Byte-Order·in |
Offset 3340, 42 lines modified | Offset 3340, 42 lines modified |
3340 | » ··umschreiben,·dass·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=getaddrinfo&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">getaddrinfo</span>(3)</span></a>·benutzt·wird,·wann·man | 3340 | » ··umschreiben,·dass·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=getaddrinfo&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">getaddrinfo</span>(3)</span></a>·benutzt·wird,·wann·man |
3341 | » ··Zeit·dazu·hat.</p><p>Wenn·man·Anwendungen·schreibt,·die·ausgehende | 3341 | » ··Zeit·dazu·hat.</p><p>Wenn·man·Anwendungen·schreibt,·die·ausgehende |
3342 | » ··Verbindungen·herstellen,·wird·die·Geschichte·viel·einfacher, | 3342 | » ··Verbindungen·herstellen,·wird·die·Geschichte·viel·einfacher, |
3343 | » ··wenn·man·AF_INET·und·AF_INET6·als·total·getrennte | 3343 | » ··wenn·man·AF_INET·und·AF_INET6·als·total·getrennte |
3344 | » ··Adressfamilien·behandelt.·{set,get}sockopt·funktioniert | 3344 | » ··Adressfamilien·behandelt.·{set,get}sockopt·funktioniert |
3345 | » ··viel·einfacher,·DNS-Angelegenheiten·werden·einfacher | 3345 | » ··viel·einfacher,·DNS-Angelegenheiten·werden·einfacher |
3346 | » ··gemacht.·Wir·empfehlen·sich·nicht·auf·IPv4-Mapped-Adressen | 3346 | » ··gemacht.·Wir·empfehlen·sich·nicht·auf·IPv4-Mapped-Adressen |
3347 | » ··zu·verlassen.</p><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64208056"></a>8.1.1.12.1.·Einheitlicher·TCP-und·INPCB-Kode</h5></div></div></div><p>FreeBSD·4.x·benutzt·shared·TCP-Kode·zwischen·IPv4 | 3347 | » ··zu·verlassen.</p><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64273592"></a>8.1.1.12.1.·Einheitlicher·TCP-und·INPCB-Kode</h5></div></div></div><p>FreeBSD·4.x·benutzt·shared·TCP-Kode·zwischen·IPv4 |
3348 | » ····und·IPv6·(von·sys/netinet/tcp*)·und·separaten·udp4/6-Kode. | 3348 | » ····und·IPv6·(von·sys/netinet/tcp*)·und·separaten·udp4/6-Kode. |
3349 | » ····Es·benutzt·eine·vereinheitlichte·inpcb-Struktur.</p><p>Die·Plattform·kann·für·eine·Unterstützung | 3349 | » ····Es·benutzt·eine·vereinheitlichte·inpcb-Struktur.</p><p>Die·Plattform·kann·für·eine·Unterstützung |
3350 | » ····von·IPv4-mapped-Adressen·konfiguriert·werden.·Die | 3350 | » ····von·IPv4-mapped-Adressen·konfiguriert·werden.·Die |
3351 | » ····Kernel-Konfiguration·läßt·sich·wie·folgt | 3351 | » ····Kernel-Konfiguration·läßt·sich·wie·folgt |
3352 | » ····zusammenfassen:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>By·default,·AF_INET6·socket·will·grab·IPv4 | 3352 | » ····zusammenfassen:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>By·default,·AF_INET6·socket·will·grab·IPv4 |
3353 | » » connections·in·certain·condition,·and·can·initiate | 3353 | » » connections·in·certain·condition,·and·can·initiate |
3354 | » » connection·to·IPv4·destination·embedded·in·IPv4·mapped | 3354 | » » connection·to·IPv4·destination·embedded·in·IPv4·mapped |
3355 | » » IPv6·address.</p></li><li·class="listitem"><p>Man·kann·es·wie·unten·beschrieben | 3355 | » » IPv6·address.</p></li><li·class="listitem"><p>Man·kann·es·wie·unten·beschrieben |
3356 | » » abschalten.</p><p><code·class="command">sysctl | 3356 | » » abschalten.</p><p><code·class="command">sysctl |
3357 | » » net.inet6.ip6.mapped_addr=0</code></p></li></ul></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64224184"></a>8.1.1.12.1.1.·Hörende·Seite</h6></div></div></div><p>Jeder·Socket·kann·für·eine·Unterstützung | 3357 | » » net.inet6.ip6.mapped_addr=0</code></p></li></ul></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64277432"></a>8.1.1.12.1.1.·Hörende·Seite</h6></div></div></div><p>Jeder·Socket·kann·für·eine·Unterstützung |
3358 | » ······eines·speziellen·AF_INET6·wildcard·bind | 3358 | » ······eines·speziellen·AF_INET6·wildcard·bind |
3359 | » ······(Standardmäßig·eingeschaltet)·konfiguriert | 3359 | » ······(Standardmäßig·eingeschaltet)·konfiguriert |
3360 | » ······werden.·Man·kann·es·auf·Socket-Basis·mit | 3360 | » ······werden.·Man·kann·es·auf·Socket-Basis·mit |
3361 | » ······<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setsockopt&sektion=2&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setsockopt</span>(2)</span></a>·wie·unten·beschrieben | 3361 | » ······<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setsockopt&sektion=2&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setsockopt</span>(2)</span></a>·wie·unten·beschrieben |
3362 | » ······abschalten.</p><pre·class="screen">»int·on; | 3362 | » ······abschalten.</p><pre·class="screen">»int·on; |
| |
3363 | » setsockopt(s,·IPPROTO_IPV6,·IPV6_BINDV6ONLY, | 3363 | » setsockopt(s,·IPPROTO_IPV6,·IPV6_BINDV6ONLY, |
3364 | » » ···(char·*)&on,·sizeof·(on))·<·0));</pre><p>Wildcard-AF_INET6-Socket·schnappt·sich·die | 3364 | » » ···(char·*)&on,·sizeof·(on))·<·0));</pre><p>Wildcard-AF_INET6-Socket·schnappt·sich·die |
3365 | » ······IPv4-Verbindung,·wenn,·und·nur·wenn·folgende·Bedingungen | 3365 | » ······IPv4-Verbindung,·wenn,·und·nur·wenn·folgende·Bedingungen |
3366 | » ······erfüllt·sind::</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Es·gibt·keinen·AF_INET-Socket,·der·zu·einer | 3366 | » ······erfüllt·sind::</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Es·gibt·keinen·AF_INET-Socket,·der·zu·einer |
3367 | » » ··IPv4-Verbindung·passt</p></li><li·class="listitem"><p>Der·AF_INET6-Socket·ist·so·konfiguriert,·dass·er | 3367 | » » ··IPv4-Verbindung·passt</p></li><li·class="listitem"><p>Der·AF_INET6-Socket·ist·so·konfiguriert,·dass·er |
3368 | » » ··IPv4-Datenverkehr·akzeptiert,·z.B.·gibt | 3368 | » » ··IPv4-Datenverkehr·akzeptiert,·z.B.·gibt |
3369 | » » ··getsockopt(IPV6_BINDV6ONLY)·0·zurück.</p></li></ul></div><p>Es·gibt·kein·Problem·mit·der | 3369 | » » ··getsockopt(IPV6_BINDV6ONLY)·0·zurück.</p></li></ul></div><p>Es·gibt·kein·Problem·mit·der |
3370 | » ······Öffnen/Schließen-Reihenfolge.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64241464"></a>8.1.1.12.1.2.·initiating·side</h6></div></div></div><p>FreeBSD·4.x·unterstützt·ausgehende | 3370 | » ······Öffnen/Schließen-Reihenfolge.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64282424"></a>8.1.1.12.1.2.·initiating·side</h6></div></div></div><p>FreeBSD·4.x·unterstützt·ausgehende |
3371 | » ······Verbindungen·zu·IPv4·mapped·Adressen·(::ffff:10.1.1.1), | 3371 | » ······Verbindungen·zu·IPv4·mapped·Adressen·(::ffff:10.1.1.1), |
3372 | » ······falls·der·Knoten·so·konfiguriert·ist,·dass·er·IPv4 | 3372 | » ······falls·der·Knoten·so·konfiguriert·ist,·dass·er·IPv4 |
3373 | » ······mapped·Adressen·unterstützt.</p></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64242872"></a>8.1.1.13.·sockaddr_storage</h4></div></div></div><p>Als·RFC2553·kurz·vor·der·Vollendung·stand,·gab·es·eine | 3373 | » ······mapped·Adressen·unterstützt.</p></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64283832"></a>8.1.1.13.·sockaddr_storage</h4></div></div></div><p>Als·RFC2553·kurz·vor·der·Vollendung·stand,·gab·es·eine |
3374 | » ··Diskussion,·wie·struct·sockaddr_storage·Mitglieder·benannt | 3374 | » ··Diskussion,·wie·struct·sockaddr_storage·Mitglieder·benannt |
3375 | » ··werden·sollten.·Ein·Vorschlag·war·"__"·den·Mitgliedern·(wie | 3375 | » ··werden·sollten.·Ein·Vorschlag·war·"__"·den·Mitgliedern·(wie |
3376 | » ··"__ss_len")·voranzustellen·und·es·sollten·sie·nicht | 3376 | » ··"__ss_len")·voranzustellen·und·es·sollten·sie·nicht |
3377 | » ··verändert·werden.·Der·andere·Vorschlag·war,·nichts | 3377 | » ··verändert·werden.·Der·andere·Vorschlag·war,·nichts |
3378 | » ··voranzustellen·(wie·"ss_len")·also·mußten·wir·solche | 3378 | » ··voranzustellen·(wie·"ss_len")·also·mußten·wir·solche |
3379 | » ··Mitglieder·direkt·verändern.·Es·gab·keinen·klaren | 3379 | » ··Mitglieder·direkt·verändern.·Es·gab·keinen·klaren |
3380 | » ··Konsens.</p><p>Als·Ergebnis·definiert·RFC2553·die·Struktur | 3380 | » ··Konsens.</p><p>Als·Ergebnis·definiert·RFC2553·die·Struktur |
Offset 3397, 27 lines modified | Offset 3397, 27 lines modified |
3397 | » ··umzugehen:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Man·versichert·sich,·dass·ss_family·und/oder | 3397 | » ··umzugehen:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Man·versichert·sich,·dass·ss_family·und/oder |
3398 | » ······ss_len·für·die·Plattform·verfügbar·sind,·indem | 3398 | » ······ss_len·für·die·Plattform·verfügbar·sind,·indem |
3399 | » ······man·GNU·autoconf·verwendet,</p></li><li·class="listitem"><p>Man·benutzet·-Dss_family=__ss_family·um·alle | 3399 | » ······man·GNU·autoconf·verwendet,</p></li><li·class="listitem"><p>Man·benutzet·-Dss_family=__ss_family·um·alle |
3400 | » ······Vorkommen·(einschließlich·der·Header-Files)·zu | 3400 | » ······Vorkommen·(einschließlich·der·Header-Files)·zu |
3401 | » ······__ss_family·zu·vereinheitlichen,·oder</p></li><li·class="listitem"><p>Man·benutzt·niemals·__ss_family.·Man·führe | 3401 | » ······__ss_family·zu·vereinheitlichen,·oder</p></li><li·class="listitem"><p>Man·benutzt·niemals·__ss_family.·Man·führe |
3402 | » ······einen·Typecast·nach·sockaddr·*·durch·und·verwendet | 3402 | » ······einen·Typecast·nach·sockaddr·*·durch·und·verwendet |
3403 | » ······sa_family·wie·folgt:</p><pre·class="screen">»struct·sockaddr_storage·ss; | 3403 | » ······sa_family·wie·folgt:</p><pre·class="screen">»struct·sockaddr_storage·ss; |
3404 | » family·=·((struct·sockaddr·*)&ss)->sa_family</pre></li></ol></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64254136"></a>8.1.2.·Netzwerktreiber</h3></div></div></div><p>Die·beiden·folgenden·Dinge·müssen·zwingend·von | 3404 | » family·=·((struct·sockaddr·*)&ss)->sa_family</pre></li></ol></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64295096"></a>8.1.2.·Netzwerktreiber</h3></div></div></div><p>Die·beiden·folgenden·Dinge·müssen·zwingend·von |
3405 | » Standardtreibern·unterstützt·werden:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Mbuf-Clustering-Erfordernis.·In·diesem·stabilen | 3405 | » Standardtreibern·unterstützt·werden:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Mbuf-Clustering-Erfordernis.·In·diesem·stabilen |
3406 | » ····Release·haben·wir·für·alle·Betriebssystem·MINCLSIZE | 3406 | » ····Release·haben·wir·für·alle·Betriebssystem·MINCLSIZE |
3407 | » ····in·MHLEN+1·geändert,·damit·sich·alle·Treiber·wie | 3407 | » ····in·MHLEN+1·geändert,·damit·sich·alle·Treiber·wie |
3408 | » ····erwartet·verhalten.</p></li><li·class="listitem"><p>Multicast.·Falls·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ifmcstat&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ifmcstat</span>(8)</span></a>·keine | 3408 | » ····erwartet·verhalten.</p></li><li·class="listitem"><p>Multicast.·Falls·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ifmcstat&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ifmcstat</span>(8)</span></a>·keine |
3409 | » ····Multicast-Gruppe·für·die·Schnittstelle·liefert,·dann·muss | 3409 | » ····Multicast-Gruppe·für·die·Schnittstelle·liefert,·dann·muss |
3410 | » ····diese·Schnittstelle·überarbeitet·werden.</p></li></ol></div><p>Falls·keiner·der·Treiber·die·Erfordernisse·erfüllt, | 3410 | » ····diese·Schnittstelle·überarbeitet·werden.</p></li></ol></div><p>Falls·keiner·der·Treiber·die·Erfordernisse·erfüllt, |
3411 | » dann·können·die·Treiber·nicht·für | 3411 | » dann·können·die·Treiber·nicht·für |
3412 | » IPv6/IPSec-Kommunikation·verwendet·werden.·Falls·man·ein | 3412 | » IPv6/IPSec-Kommunikation·verwendet·werden.·Falls·man·ein |
3413 | » Problem·beim·Einsatz·von·IPv6/IPSec·mit·seiner·Karte·hat,·dann | 3413 | » Problem·beim·Einsatz·von·IPv6/IPSec·mit·seiner·Karte·hat,·dann |
3414 | » melde·es·bitte·bei·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs"·target="_top">FreeBSD·problem·reports</a>.</p><p>(Beachte:·In·der·Vergangenheit·haben·wir·gefordert,·dass | 3414 | » melde·es·bitte·bei·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs"·target="_top">FreeBSD·problem·reports</a>.</p><p>(Beachte:·In·der·Vergangenheit·haben·wir·gefordert,·dass |
3415 | » alle·PCMCIA-Treiber·einen·Aufruf·nach·in6_ifattach()·haben. | 3415 | » alle·PCMCIA-Treiber·einen·Aufruf·nach·in6_ifattach()·haben. |
3416 | » Inzwischen·haben·wir·keine·solche·Forderung·mehr)</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64259256"></a>8.1.3.·Translator</h3></div></div></div><p>Wir·kategorisieren·einen·IPv4/IPv6-Translator·in·4 | 3416 | » Inzwischen·haben·wir·keine·solche·Forderung·mehr)</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64300216"></a>8.1.3.·Translator</h3></div></div></div><p>Wir·kategorisieren·einen·IPv4/IPv6-Translator·in·4 |
3417 | » Typen:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><span·class="emphasis"><em>Translator·A</em></span>·---·Er·wird·im | 3417 | » Typen:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><span·class="emphasis"><em>Translator·A</em></span>·---·Er·wird·im |
3418 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu | 3418 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu |
3419 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv6-Host | 3419 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv6-Host |
3420 | » ····auf·einer·IPv6-Insel·zu·einem·IPv4-Host·im·IPv4-Ozean | 3420 | » ····auf·einer·IPv6-Insel·zu·einem·IPv4-Host·im·IPv4-Ozean |
3421 | » ····hergestellt·wird.</p></li><li·class="listitem"><p><span·class="emphasis"><em>Translator·B</em></span>·---·Er·wird·im | 3421 | » ····hergestellt·wird.</p></li><li·class="listitem"><p><span·class="emphasis"><em>Translator·B</em></span>·---·Er·wird·im |
3422 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu | 3422 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu |
3423 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv4-Host | 3423 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv4-Host |
Offset 3430, 15 lines modified | Offset 3430, 15 lines modified |
3430 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu | 3430 | » ····frühen·Stadium·des·Übergangs·benutzt·um·es·zu |
3431 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv6-Host | 3431 | » ····ermöglichen,·dass·eine·Verbindung·von·einem·IPv6-Host |
3432 | » ····im·IPv6-Ozean·zu·einem·IPv4-Host·auf·einer·IPv4-Insel | 3432 | » ····im·IPv6-Ozean·zu·einem·IPv4-Host·auf·einer·IPv4-Insel |
3433 | » ····hergestellt·wird.</p></li></ul></div><p>Ein·TCP-Relay-Translator·der·Kategorie·A·wird | 3433 | » ····hergestellt·wird.</p></li></ul></div><p>Ein·TCP-Relay-Translator·der·Kategorie·A·wird |
3434 | » unterstützt.·Er·wird·"FAITH"·genannt.·Wir·stellen | 3434 | » unterstützt.·Er·wird·"FAITH"·genannt.·Wir·stellen |
3435 | » ebenso·einen·IP-Header-Translator·der·Kataegorie·A·zur | 3435 | » ebenso·einen·IP-Header-Translator·der·Kataegorie·A·zur |
3436 | » Verfügung·(Letzterer·ist·noch·nicht·in·FreeBSD·4.x | 3436 | » Verfügung·(Letzterer·ist·noch·nicht·in·FreeBSD·4.x |
3437 | » übernommen).</p><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64281528"></a>8.1.3.1.·FAITH·TCP-Relay-Translator</h4></div></div></div><p>Das·FAITH-System·benutzt·mit·Hilfe·des·Kernels·den | 3437 | » übernommen).</p><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64310200"></a>8.1.3.1.·FAITH·TCP-Relay-Translator</h4></div></div></div><p>Das·FAITH-System·benutzt·mit·Hilfe·des·Kernels·den |
3438 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=faithd&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">faithd</span>(8)</span></a>·genannten·TCP-Relay-Daemon.·FAITH·wird·einen | 3438 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=faithd&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">faithd</span>(8)</span></a>·genannten·TCP-Relay-Daemon.·FAITH·wird·einen |
3439 | » ··IPv6-Adress-Präfix·reservieren·und·eine | 3439 | » ··IPv6-Adress-Präfix·reservieren·und·eine |
3440 | » ··TCP-Verbindungen·an·diesen·Präfix·zum·IPv4-Ziel | 3440 | » ··TCP-Verbindungen·an·diesen·Präfix·zum·IPv4-Ziel |
3441 | » ··weiterleiten.</p><p>Wenn·beispielsweise·der·IPv6-Präfix | 3441 | » ··weiterleiten.</p><p>Wenn·beispielsweise·der·IPv6-Präfix |
3442 | » ··2001:0DB8:0200:ffff::·ist·und·das·IPv6-Ziel·für | 3442 | » ··2001:0DB8:0200:ffff::·ist·und·das·IPv6-Ziel·für |
3443 | » ··TCP-Verbindungen·2001:0DB8:0200:ffff::163.221.202.12·ist, | 3443 | » ··TCP-Verbindungen·2001:0DB8:0200:ffff::163.221.202.12·ist, |
3444 | » ··dann·wird·die·Verbindung·an·das·IPv4-Ziel·163.221.202.12 | 3444 | » ··dann·wird·die·Verbindung·an·das·IPv4-Ziel·163.221.202.12 |
Offset 3447, 35 lines modified | Offset 3447, 35 lines modified |
3447 | » ··|·IPv4·tcp·toward·163.221.202.12 | 3447 | » ··|·IPv4·tcp·toward·163.221.202.12 |
3448 | » FAITH-relay·dual·stack·node | 3448 | » FAITH-relay·dual·stack·node |
3449 | » ··^ | 3449 | » ··^ |
3450 | » ··|·IPv6·TCP·toward·2001:0DB8:0200:ffff::163.221.202.12 | 3450 | » ··|·IPv6·TCP·toward·2001:0DB8:0200:ffff::163.221.202.12 |
3451 | » source·IPv6·node</pre><p><a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=faithd&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">faithd</span>(8)</span></a>·muss·auf·FAITH-relay·dual·stack·node | 3451 | » source·IPv6·node</pre><p><a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=faithd&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">faithd</span>(8)</span></a>·muss·auf·FAITH-relay·dual·stack·node |
3452 | » ··aufgerufen·werden.</p><p>Für·weitere·Details·siehe | 3452 | » ··aufgerufen·werden.</p><p>Für·weitere·Details·siehe |
3453 | » ··<code·class="filename">src/usr.sbin/faithd/README</code></p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipsec-implementation"></a>8.1.4.·IPsec</h3></div></div></div><p>IPsec·besteht·hauptsächlich·aus·drei | 3453 | » ··<code·class="filename">src/usr.sbin/faithd/README</code></p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="ipsec-implementation"></a>8.1.4.·IPsec</h3></div></div></div><p>IPsec·besteht·hauptsächlich·aus·drei |
3454 | » Komponenten.</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Policy·Management</p></li><li·class="listitem"><p>Key·Management</p></li><li·class="listitem"><p>AH·und·ESP·Behandlung</p></li></ol></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64289848"></a>8.1.4.1.·Regel·Management</h4></div></div></div><p>Im·Kernel·ist·experimenteller·Kode·für | 3454 | » Komponenten.</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Policy·Management</p></li><li·class="listitem"><p>Key·Management</p></li><li·class="listitem"><p>AH·und·ESP·Behandlung</p></li></ol></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64330808"></a>8.1.4.1.·Regel·Management</h4></div></div></div><p>Im·Kernel·ist·experimenteller·Kode·für |
3455 | » ··Regel-Management·implementiert.·Es·gibt·zwei·Wege·eine | 3455 | » ··Regel-Management·implementiert.·Es·gibt·zwei·Wege·eine |
3456 | » ··Sicherheitsregel·zu·handhaben.·Einer·ist·eine·Regel | 3456 | » ··Sicherheitsregel·zu·handhaben.·Einer·ist·eine·Regel |
3457 | » ··für·jeden·Socket·mithilfe·von·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setsockopt&sektion=2&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setsockopt</span>(2)</span></a>·zu | 3457 | » ··für·jeden·Socket·mithilfe·von·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setsockopt&sektion=2&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setsockopt</span>(2)</span></a>·zu |
3458 | » ··konfigurieren.·Für·diesen·Fall·ist·die·Konfiguration | 3458 | » ··konfigurieren.·Für·diesen·Fall·ist·die·Konfiguration |
3459 | » ··der·Regel·in·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ipsec_set_policy&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ipsec_set_policy</span>(3)</span></a>·beschrieben.·Der | 3459 | » ··der·Regel·in·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ipsec_set_policy&sektion=3&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ipsec_set_policy</span>(3)</span></a>·beschrieben.·Der |
3460 | » ··andere·Weg·ist·eine·auf·einem·Kernel-Packet-Filter | 3460 | » ··andere·Weg·ist·eine·auf·einem·Kernel-Packet-Filter |
3461 | » ··basierende·Regel·mithilfe·der·PF_KEY-Schnittstelle·mittels | 3461 | » ··basierende·Regel·mithilfe·der·PF_KEY-Schnittstelle·mittels |
3462 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setkey&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setkey</span>(8)</span></a>·zu·konfigurieren.</p><p>Der·Regeleintrag·mit·seinen·Indices·wird·nicht | 3462 | » ··<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=setkey&sektion=8&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">setkey</span>(8)</span></a>·zu·konfigurieren.</p><p>Der·Regeleintrag·mit·seinen·Indices·wird·nicht |
3463 | » ··sortiert,·so·dass·es·sehr·wichtig·ist,·wann·ein·Eintrag | 3463 | » ··sortiert,·so·dass·es·sehr·wichtig·ist,·wann·ein·Eintrag |
3464 | » ··hinzugefügt·wird.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64293688"></a>8.1.4.2.·Key·Management</h4></div></div></div><p>Der·in·dieser·Bibliothek·(sys/netkey)·implementierte | 3464 | » ··hinzugefügt·wird.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64346936"></a>8.1.4.2.·Key·Management</h4></div></div></div><p>Der·in·dieser·Bibliothek·(sys/netkey)·implementierte |
3465 | » ··Kode·für·das·key·management·ist·eine·Eigenentwicklung | 3465 | » ··Kode·für·das·key·management·ist·eine·Eigenentwicklung |
3466 | » ··der·PFKEYv2-Implementierung. | 3466 | » ··der·PFKEYv2-Implementierung. |
3467 | » ··Er·ist·konform·zu·RFC2367.</p><p>Die·Eigenentwicklung·des·IKE-Daemons·"racoon"·ist·in | 3467 | » ··Er·ist·konform·zu·RFC2367.</p><p>Die·Eigenentwicklung·des·IKE-Daemons·"racoon"·ist·in |
3468 | » ··der·Bibliothek·(kame/kame/racoon)·implementiert. | 3468 | » ··der·Bibliothek·(kame/kame/racoon)·implementiert. |
3469 | » ··Grundsätzlich·muss·man·racoon·als·Dämonprozess | 3469 | » ··Grundsätzlich·muss·man·racoon·als·Dämonprozess |
3470 | » ··laufen·lassen,·dann·setzt·man·eine·Regel·auf,·die | 3470 | » ··laufen·lassen,·dann·setzt·man·eine·Regel·auf,·die |
3471 | » ··Schlüssel·erwartet·(ähnlich·wie·<code·class="command">ping·-P | 3471 | » ··Schlüssel·erwartet·(ähnlich·wie·<code·class="command">ping·-P |
3472 | » ··'out·ipsec·esp/transport//use'</code>).·Der·Kernel·wird | 3472 | » ··'out·ipsec·esp/transport//use'</code>).·Der·Kernel·wird |
3473 | » ··den·racoon-Dämon·wegen·des·notwendigen·Austauschs·der | 3473 | » ··den·racoon-Dämon·wegen·des·notwendigen·Austauschs·der |
3474 | » ··Schlüssel·kontaktieren.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64295608"></a>8.1.4.3.·AH-·und·ESP-Handhabung</h4></div></div></div><p>Das·IPsec-Modul·ist·als·"hook"·in·die | 3474 | » ··Schlüssel·kontaktieren.</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64348856"></a>8.1.4.3.·AH-·und·ESP-Handhabung</h4></div></div></div><p>Das·IPsec-Modul·ist·als·"hook"·in·die |
3475 | » ··Standard-IPv4/IPv6-Verarbeitung·implementiert.·Sobald·ein | 3475 | » ··Standard-IPv4/IPv6-Verarbeitung·implementiert.·Sobald·ein |
3476 | » ··Paket·gesendet·wird,·prüft·ip{,6_output(),·ob·eine | 3476 | » ··Paket·gesendet·wird,·prüft·ip{,6_output(),·ob·eine |
3477 | » ··ESP/AH-Verarbeitung·notwendig·ist.·Es·findet·eine | 3477 | » ··ESP/AH-Verarbeitung·notwendig·ist.·Es·findet·eine |
3478 | » ··Überprüfung·statt,·ob·eine·passende·SPD·(Security | 3478 | » ··Überprüfung·statt,·ob·eine·passende·SPD·(Security |
3479 | » ··Policy·Database)·gefunden·wurde.·Wenn·ESP/AH·benötigt | 3479 | » ··Policy·Database)·gefunden·wurde.·Wenn·ESP/AH·benötigt |
3480 | » ··wird,·dann·wird·{esp,ah}{4,6}_output()·aufgerufen·und·mbuf | 3480 | » ··wird,·dann·wird·{esp,ah}{4,6}_output()·aufgerufen·und·mbuf |
3481 | » ··wird·folglich·aktualisiert.·Wenn·ein·Paket·empfangen·wird, | 3481 | » ··wird·folglich·aktualisiert.·Wenn·ein·Paket·empfangen·wird, |
Offset 3502, 15 lines modified | Offset 3502, 15 lines modified |
3502 | » ······aufbaut.·Die·Meinungen·gehen·auseinander,·ob·es·besser | 3502 | » ······aufbaut.·Die·Meinungen·gehen·auseinander,·ob·es·besser |
3503 | » ······ist·dies·zu·vereinheitlichen,·oder·nicht.</p></li><li·class="listitem"><p>Die·Betrachtung·von·MTU·und·des·"Don't | 3503 | » ······ist·dies·zu·vereinheitlichen,·oder·nicht.</p></li><li·class="listitem"><p>Die·Betrachtung·von·MTU·und·des·"Don't |
3504 | » ······Fragment"-Bits·(IPv4)·müssen·mehr·geprüft | 3504 | » ······Fragment"-Bits·(IPv4)·müssen·mehr·geprüft |
3505 | » ······werden,·aber·grundsätzlichen·arbeiten·sie | 3505 | » ······werden,·aber·grundsätzlichen·arbeiten·sie |
3506 | » ······gut.</p></li><li·class="listitem"><p>Das·Authentifizierungsmodel·für·einen | 3506 | » ······gut.</p></li><li·class="listitem"><p>Das·Authentifizierungsmodel·für·einen |
3507 | » ······AH-Tunnel·muss·überarbeitet·werden.·Man·muss | 3507 | » ······AH-Tunnel·muss·überarbeitet·werden.·Man·muss |
3508 | » ······eventuell·die·"policy·management·engine" | 3508 | » ······eventuell·die·"policy·management·engine" |
3509 | » ······überarbeiten.</p></li></ul></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64300600"></a>8.1.4.4.·Konformität·zu·RFCs·und·IDs</h4></div></div></div><p>Der·IPsec-Kode·im·Kernel·ist·konform·(oder·versucht | 3509 | » ······überarbeiten.</p></li></ul></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64357944"></a>8.1.4.4.·Konformität·zu·RFCs·und·IDs</h4></div></div></div><p>Der·IPsec-Kode·im·Kernel·ist·konform·(oder·versucht |
3510 | » ··konform·zu·sein)·zu·den·folgenden·Standards:</p><p>Die·"alte·IPsec"-Spezifikation,·die·in | 3510 | » ··konform·zu·sein)·zu·den·folgenden·Standards:</p><p>Die·"alte·IPsec"-Spezifikation,·die·in |
3511 | » ··<code·class="filename">rfc182[5-9].txt</code>·dokumentiert·ist</p><p>Die·"neue·IPsec"-Spezifikation,·die | 3511 | » ··<code·class="filename">rfc182[5-9].txt</code>·dokumentiert·ist</p><p>Die·"neue·IPsec"-Spezifikation,·die |
3512 | » ··<code·class="filename">rfc240[1-6].txt</code>, | 3512 | » ··<code·class="filename">rfc240[1-6].txt</code>, |
3513 | » ··<code·class="filename">rfc241[01].txt</code>, | 3513 | » ··<code·class="filename">rfc241[01].txt</code>, |
3514 | » ··<code·class="filename">rfc2451.txt</code>·und | 3514 | » ··<code·class="filename">rfc2451.txt</code>·und |
3515 | » ··<code·class="filename">draft-mcdonald-simple-ipsec-api-01.txt</code> | 3515 | » ··<code·class="filename">draft-mcdonald-simple-ipsec-api-01.txt</code> |
3516 | » ··(Der·Entwurf·ist·erloschen,·aber·man·kann·ihn·sich·von | 3516 | » ··(Der·Entwurf·ist·erloschen,·aber·man·kann·ihn·sich·von |
Offset 3591, 15 lines modified | Offset 3591, 15 lines modified |
3591 | » ······handhabt,·dann·benutzt·man·"RFC2401"·(Sysctl-Wert | 3591 | » ······handhabt,·dann·benutzt·man·"RFC2401"·(Sysctl-Wert |
3592 | » ······-1).</p></li><li·class="listitem"><p>in·den·anderen·Fällen·benutzt·man·"ECN | 3592 | » ······-1).</p></li><li·class="listitem"><p>in·den·anderen·Fällen·benutzt·man·"ECN |
3593 | » ······verboten"·(Sysctl-Wert·0).</p></li></ul></div><p>Der·Standard·ist·"ECN·verboten"·(Sysctl-Wert·0).</p><p>Für·weitere·Informationen·siehe·auch:</p><p><a·class="link"·href="http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt"·target="_top"> | 3593 | » ······verboten"·(Sysctl-Wert·0).</p></li></ul></div><p>Der·Standard·ist·"ECN·verboten"·(Sysctl-Wert·0).</p><p>Für·weitere·Informationen·siehe·auch:</p><p><a·class="link"·href="http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt"·target="_top"> |
3594 | » ··http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt</a>, | 3594 | » ··http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt</a>, |
3595 | » ··RFC2481·(Explicit·Congestion·Notification), | 3595 | » ··RFC2481·(Explicit·Congestion·Notification), |
3596 | » ··src/sys/netinet6/{ah,esp}_input.c</p><p>(Dank·gebührt·Kenjiro·Cho | 3596 | » ··src/sys/netinet6/{ah,esp}_input.c</p><p>(Dank·gebührt·Kenjiro·Cho |
3597 | » ··<code·class="email"><<a·xmlns=""·class="email"·href="mailto:kjc@csl.sony.co.jp">kjc@csl.sony.co.jp</a>></code>·für·seine·detailliert | 3597 | » ··<code·class="email"><<a·xmlns=""·class="email"·href="mailto:kjc@csl.sony.co.jp">kjc@csl.sony.co.jp</a>></code>·für·seine·detailliert |
3598 | » ··Analyse)</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64355384"></a>8.1.4.6.·Interoperabilität</h4></div></div></div><p>Hier·sind·einige·Plattformen·angegeben,·die·in·der | 3598 | » ··Analyse)</p></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp64425016"></a>8.1.4.6.·Interoperabilität</h4></div></div></div><p>Hier·sind·einige·Plattformen·angegeben,·die·in·der |
3599 | » ··Vergangenheit·die·IPsec/IKE-Interoperabilität·mit·dem | 3599 | » ··Vergangenheit·die·IPsec/IKE-Interoperabilität·mit·dem |
3600 | » ··KAME-Kode·getestet·haben.·Beachte,·dass·beide·Enden | 3600 | » ··KAME-Kode·getestet·haben.·Beachte,·dass·beide·Enden |
3601 | » ··vielleicht·ihre·Implementierung·verändert·haben, | 3601 | » ··vielleicht·ihre·Implementierung·verändert·haben, |
3602 | » ··deshalb·sollte·man·folgende·Liste·nur·für | 3602 | » ··deshalb·sollte·man·folgende·Liste·nur·für |
3603 | » ··Referenzzwecke·benutzen.</p><p>Altiga,·Ashley-laurent·(vpcom.com),·Data·Fellows | 3603 | » ··Referenzzwecke·benutzen.</p><p>Altiga,·Ashley-laurent·(vpcom.com),·Data·Fellows |
3604 | » ··(F-Secure),·Ericsson·ACC,·FreeS/WAN,·HITACHI,·IBM·<span·class="trademark">AIX</span>®, | 3604 | » ··(F-Secure),·Ericsson·ACC,·FreeS/WAN,·HITACHI,·IBM·<span·class="trademark">AIX</span>®, |
3605 | » ··IIJ,·Intel,·<span·class="trademark">Microsoft</span>®·<span·class="trademark">Windows NT</span>®,·NIST·(linux·IPsec·+ | 3605 | » ··IIJ,·Intel,·<span·class="trademark">Microsoft</span>®·<span·class="trademark">Windows NT</span>®,·NIST·(linux·IPsec·+ |
Offset 8555, 20 lines modified | Offset 8555, 20 lines modified |
8555 | ······FreeBSD·im·Besonderen.</p><p>Thomas·M.·Sommers·öffnete·die·Türen·für | 8555 | ······FreeBSD·im·Besonderen.</p><p>Thomas·M.·Sommers·öffnete·die·Türen·für |
8556 | ······mich.·Seine·<a·class="link"·href="http://www.codebreakers-journal.com/content/view/262/27/"·target="_top">Wie | 8556 | ······mich.·Seine·<a·class="link"·href="http://www.codebreakers-journal.com/content/view/262/27/"·target="_top">Wie |
8557 | ······schreibe·ich·"Hallo·Welt"·in·FreeBSD-Assembler?</a>·Webseite | 8557 | ······schreibe·ich·"Hallo·Welt"·in·FreeBSD-Assembler?</a>·Webseite |
8558 | ······war·mein·erster·Kontakt·mit·Assembler-Programmierung·unter | 8558 | ······war·mein·erster·Kontakt·mit·Assembler-Programmierung·unter |
8559 | ······FreeBSD.</p><p>Jake·Burkholder·hat·die·Tür·offen·gehalten·durch·das | 8559 | ······FreeBSD.</p><p>Jake·Burkholder·hat·die·Tür·offen·gehalten·durch·das |
8560 | ······bereitwillige·Beantworten·all·meiner·Fragen·und·das | 8560 | ······bereitwillige·Beantworten·all·meiner·Fragen·und·das |
8561 | ······Zurverfügungstellen·von·Assembler-Codebeispielen.</p><p>Copyright·©·2000-2001·G.·Adam·Stanislav.·Alle·Rechte | 8561 | ······Zurverfügungstellen·von·Assembler-Codebeispielen.</p><p>Copyright·©·2000-2001·G.·Adam·Stanislav.·Alle·Rechte |
8562 | ······vorbehalten.</p></div></div></div><div·class="part"><div·xmlns=""·class="titlepage"><div><div><h1·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="appendices"></a>Teil V. Anhang</h1></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="bibliography"><a·href="#idp66116920">Literaturverzeichnis</a></span></dt></dl></div><div·class="bibliography"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp66116920"></a>Literaturverzeichnis</h2></div></div></div><div·class="biblioentry"><a·id="COD"></a><p>[1]·<span·class="authorgroup"><span·class="firstname">Dave</span>·<span·class="othername">A</span>·<span·class="surname">Patterson</span>·und·<span·class="firstname">John</span>·<span·class="othername">L</span>·<span·class="surname">Hennessy</span>.·</span><span·class="copyright">Copyright·©·1998·Morgan·Kaufmann·Publishers,·Inc..·</span><span·class="biblioid">1-55860-428-6.·</span><span·clas·✂ | 8562 | ······vorbehalten.</p></div></div></div><div·class="part"><div·xmlns=""·class="titlepage"><div><div><h1·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="appendices"></a>Teil V. Anhang</h1></div></div></div><div·class="toc"><div·class="toc-title">Inhaltsverzeichnis</div><dl·class="toc"><dt><span·class="bibliography"><a·href="#idp66190648">Literaturverzeichnis</a></span></dt></dl></div><div·class="bibliography"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp66190648"></a>Literaturverzeichnis</h2></div></div></div><div·class="biblioentry"><a·id="COD"></a><p>[1]·<span·class="authorgroup"><span·class="firstname">Dave</span>·<span·class="othername">A</span>·<span·class="surname">Patterson</span>·und·<span·class="firstname">John</span>·<span·class="othername">L</span>·<span·class="surname">Hennessy</span>.·</span><span·class="copyright">Copyright·©·1998·Morgan·Kaufmann·Publishers,·Inc..·</span><span·class="biblioid">1-55860-428-6.·</span><span·clas·✂ |
8563 | » ····Inc..·</span></span><span·class="citetitle"><em·class="citetitle">Computer·Organization·and·Design</em>.·</span><span·class="subtitle">The·Hardware·/·Software·Interface.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="idp66124344"></a><p>[2]·<span·class="authorgroup"><span·class="firstname">W.</span>·<span·class="othername">Richard</span>·<span·class="surname">Stevens</span>.·</span><span·class="copyright">Copyright·©·1993·Addison·Wesley·Longman,·Inc..·</span><span·class="biblioid">0-201-56317-7.·</span><span·class="publisher"><span·class="publishername">Addison·Wesley·Longman,·Inc..·</span></span><span·class="citetitle"><em·class="citetitle">Advanced·Programming·in·the·Unix·Environment</em>.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="idp66133816"></a><p>[3]·<span·class="authorgroup"><span·class="firstname">Marshall</span>·<span·class="othername">Kirk</span>·<span·class="surname">McKusick</span>·und·<span·class="firstname">Georg·✂ | 8563 | » ····Inc..·</span></span><span·class="citetitle"><em·class="citetitle">Computer·Organization·and·Design</em>.·</span><span·class="subtitle">The·Hardware·/·Software·Interface.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="idp66198072"></a><p>[2]·<span·class="authorgroup"><span·class="firstname">W.</span>·<span·class="othername">Richard</span>·<span·class="surname">Stevens</span>.·</span><span·class="copyright">Copyright·©·1993·Addison·Wesley·Longman,·Inc..·</span><span·class="biblioid">0-201-56317-7.·</span><span·class="publisher"><span·class="publishername">Addison·Wesley·Longman,·Inc..·</span></span><span·class="citetitle"><em·class="citetitle">Advanced·Programming·in·the·Unix·Environment</em>.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="idp66203448"></a><p>[3]·<span·class="authorgroup"><span·class="firstname">Marshall</span>·<span·class="othername">Kirk</span>·<span·class="surname">McKusick</span>·und·<span·class="firstname">Georg·✂ |
8564 | » ··System</em>.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="Phrack"></a><p>[4]·<span·class="authorgroup"><span·class="firstname">Aleph</span>·<span·class="surname">One</span>.·</span><span·class="citetitle"><em·class="citetitle">Phrack·49;·"Smashing·the·Stack·for·Fun·and | 8564 | » ··System</em>.·</span><span·class="pagenums">1-2.·</span></p></div><div·class="biblioentry"><a·id="Phrack"></a><p>[4]·<span·class="authorgroup"><span·class="firstname">Aleph</span>·<span·class="surname">One</span>.·</span><span·class="citetitle"><em·class="citetitle">Phrack·49;·"Smashing·the·Stack·for·Fun·and |
8565 | » ··Profit"</em>.·</span></p></div><div·class="biblioentry"><a·id="StackGuard"></a><p>[5]·<span·class="authorgroup"><span·class="firstname">Chrispin</span>·<span·class="surname">Cowan</span>,·<span·class="firstname">Calton</span>·<span·class="surname">Pu</span>·und·<span·class="firstname">Dave</span>·<span·class="surname">Maier</span>.·</span><span·class="citetitle"><em·class="citetitle">StackGuard;·Automatic·Adaptive·Detection·and·Prevention | 8565 | » ··Profit"</em>.·</span></p></div><div·class="biblioentry"><a·id="StackGuard"></a><p>[5]·<span·class="authorgroup"><span·class="firstname">Chrispin</span>·<span·class="surname">Cowan</span>,·<span·class="firstname">Calton</span>·<span·class="surname">Pu</span>·und·<span·class="firstname">Dave</span>·<span·class="surname">Maier</span>.·</span><span·class="citetitle"><em·class="citetitle">StackGuard;·Automatic·Adaptive·Detection·and·Prevention |
8566 | » ··of·Buffer-Overflow·Attacks</em>.·</span></p></div><div·class="biblioentry"><a·id="OpenBSD"></a><p>[6]·<span·class="authorgroup"><span·class="firstname">Todd</span>·<span·class="surname">Miller</span>·und·<span·class="firstname">Theo</span>·<span·class="surname">de·Raadt</span>.·</span><span·class="citetitle"><em·class="citetitle">strlcpy·and·strlcat·--·consistent,·safe·string·copy·and | 8566 | » ··of·Buffer-Overflow·Attacks</em>.·</span></p></div><div·class="biblioentry"><a·id="OpenBSD"></a><p>[6]·<span·class="authorgroup"><span·class="firstname">Todd</span>·<span·class="surname">Miller</span>·und·<span·class="firstname">Theo</span>·<span·class="surname">de·Raadt</span>.·</span><span·class="citetitle"><em·class="citetitle">strlcpy·and·strlcat·--·consistent,·safe·string·copy·and |
8567 | » ··concatenation.</em>.·</span></p></div></div></div><div·class="index"><div·xmlns=""·class="titlepage"><div><div><h1·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp66154040"></a>Stichwortverzeichnis</h1></div></div></div><div·class="index"><div·class="indexdiv"><h3>A</h3><dl><dt>Arguments,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>B</h3><dl><dt>Beigesteuerte·Software,·<a·class="indexterm"·href="#policies-contributed">Beigesteuerte·Software</a></dt><dt>Benutzer-IDs</dt><dd><dl><dt>effective·Benutzer-ID,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt><dt>reale·Benutzer-ID,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt></dl></dd></dl></div><div·class="indexdiv"><h3>C</h3><dl><dt>chroot(),·<a·class="indexterm"·href="#secure-chroot">Die·Umgebung·ihrer·Programme·einschränken</a></dt><dt>Core-Team,·<a·class="indexterm"·href="#policies-encumbered">Belastende·Dateien</a></dt></dl></div><div·class="index·✂ | 8567 | » ··concatenation.</em>.·</span></p></div></div></div><div·class="index"><div·xmlns=""·class="titlepage"><div><div><h1·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp66223672"></a>Stichwortverzeichnis</h1></div></div></div><div·class="index"><div·class="indexdiv"><h3>A</h3><dl><dt>Arguments,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>B</h3><dl><dt>Beigesteuerte·Software,·<a·class="indexterm"·href="#policies-contributed">Beigesteuerte·Software</a></dt><dt>Benutzer-IDs</dt><dd><dl><dt>effective·Benutzer-ID,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt><dt>reale·Benutzer-ID,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt></dl></dd></dl></div><div·class="indexdiv"><h3>C</h3><dl><dt>chroot(),·<a·class="indexterm"·href="#secure-chroot">Die·Umgebung·ihrer·Programme·einschränken</a></dt><dt>Core-Team,·<a·class="indexterm"·href="#policies-encumbered">Belastende·Dateien</a></dt></dl></div><div·class="index·✂ |
8568 | » ··von·Grenzen</a></dt><dt>GTK,·<a·class="indexterm"·href="#l10n-programming">I18N-konforme·Anwendungen·programmieren</a></dt></dl></div><div·class="indexdiv"><h3>J</h3><dl><dt>Jail,·<a·class="indexterm"·href="#idp63529272">Die·Jail-Funktionalität·in·FreeBSD</a></dt></dl></div><div·class="indexdiv"><h3>L</h3><dl><dt>LIFO,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>M</h3><dl><dt>Morris·Internetwurm,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>N</h3><dl><dt>NUL-Terminierung,·<a·class="indexterm"·href="#idp63476664">Puffer-Überläufe·vermeiden</a></dt></dl></div><div·class="indexdiv"><h3>O</h3><dl><dt>OpenBSD,·<a·class="indexterm"·href="#idp63476664">Puffer-Überläufe·vermeiden</a></dt></dl></div><div·class="indexdiv"><h3>P</h3><dl><dt>Perl,·<a·class="indexterm"·href="#idp63608376">Perl·und·Python</a></dt><dt>Perl·Taint-Modus,·<a·class="indexterm"·href="#secure-trust">Vertrauen</a></dt><dt·✂ | 8568 | » ··von·Grenzen</a></dt><dt>GTK,·<a·class="indexterm"·href="#l10n-programming">I18N-konforme·Anwendungen·programmieren</a></dt></dl></div><div·class="indexdiv"><h3>J</h3><dl><dt>Jail,·<a·class="indexterm"·href="#idp63619384">Die·Jail-Funktionalität·in·FreeBSD</a></dt></dl></div><div·class="indexdiv"><h3>L</h3><dl><dt>LIFO,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>M</h3><dl><dt>Morris·Internetwurm,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>N</h3><dl><dt>NUL-Terminierung,·<a·class="indexterm"·href="#idp63550392">Puffer-Überläufe·vermeiden</a></dt></dl></div><div·class="indexdiv"><h3>O</h3><dl><dt>OpenBSD,·<a·class="indexterm"·href="#idp63550392">Puffer-Überläufe·vermeiden</a></dt></dl></div><div·class="indexdiv"><h3>P</h3><dl><dt>Perl,·<a·class="indexterm"·href="#idp63686200">Perl·und·Python</a></dt><dt>Perl·Taint-Modus,·<a·class="indexterm"·href="#secure-trust">Vertrauen</a></dt><dt·✂ |
8569 | » Capabilities,·<a·class="indexterm"·href="#idp63580856">POSIX®.1e·Prozess·Capabilities</a></dt><dt>ProPolice,·<a·class="indexterm"·href="#idp63503544">Compiler-basierte·Laufzeitüberprüfung | 8569 | » Capabilities,·<a·class="indexterm"·href="#idp63650488">POSIX®.1e·Prozess·Capabilities</a></dt><dt>ProPolice,·<a·class="indexterm"·href="#idp63564984">Compiler-basierte·Laufzeitüberprüfung |
8570 | » ··von·Grenzen</a></dt><dt>Prozessabbild</dt><dd><dl><dt>Frame-Pointer,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt><dt>Stack-Pointer,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></dd><dt>Prüfung·von·Grenzen</dt><dd><dl><dt>Bibliotheks-basiert,·<a·class="indexterm"·href="#idp63056312">Bibliotheks-basierte·Laufzeitüberprüfung | 8570 | » ··von·Grenzen</a></dt><dt>Prozessabbild</dt><dd><dl><dt>Frame-Pointer,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt><dt>Stack-Pointer,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></dd><dt>Prüfung·von·Grenzen</dt><dd><dl><dt>Bibliotheks-basiert,·<a·class="indexterm"·href="#idp63572408">Bibliotheks-basierte·Laufzeitüberprüfung |
8571 | » ··von·Grenzen</a></dt><dt>Compiler-basiert,·<a·class="indexterm"·href="#idp63503544">Compiler-basierte·Laufzeitüberprüfung | 8571 | » ··von·Grenzen</a></dt><dt>Compiler-basiert,·<a·class="indexterm"·href="#idp63564984">Compiler-basierte·Laufzeitüberprüfung |
8572 | » ··von·Grenzen</a></dt></dl></dd><dt>Puffer-Überlauf,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a>,·<a·class="indexterm"·href="#idp63503544">Compiler-basierte·Laufzeitüberprüfung | 8572 | » ··von·Grenzen</a></dt></dl></dd><dt>Puffer-Überlauf,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a>,·<a·class="indexterm"·href="#idp63564984">Compiler-basierte·Laufzeitüberprüfung |
8573 | » ··von·Grenzen</a></dt><dt>Python,·<a·class="indexterm"·href="#idp63608376">Perl·und·Python</a></dt></dl></div><div·class="indexdiv"><h3>Q</h3><dl><dt>Qt,·<a·class="indexterm"·href="#l10n-programming">I18N-konforme·Anwendungen·programmieren</a></dt></dl></div><div·class="indexdiv"><h3>R</h3><dl><dt>Race-Conditions</dt><dd><dl><dt>Öffnen·von·Dateien,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt><dt>Signale,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt><dt>Zugriffsprüfungen,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt></dl></dd><dt>Release-Engineer,·<a·class="indexterm"·href="#policies-encumbered">Belastende·Dateien</a></dt><dt>Rücksprungadresse,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>S</h3><dl><dt>seteuid,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt><dt>Stack,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt><·✂ | 8573 | » ··von·Grenzen</a></dt><dt>Python,·<a·class="indexterm"·href="#idp63686200">Perl·und·Python</a></dt></dl></div><div·class="indexdiv"><h3>Q</h3><dl><dt>Qt,·<a·class="indexterm"·href="#l10n-programming">I18N-konforme·Anwendungen·programmieren</a></dt></dl></div><div·class="indexdiv"><h3>R</h3><dl><dt>Race-Conditions</dt><dd><dl><dt>Öffnen·von·Dateien,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt><dt>Signale,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt><dt>Zugriffsprüfungen,·<a·class="indexterm"·href="#secure-race-conditions">Race-Conditions</a></dt></dl></dd><dt>Release-Engineer,·<a·class="indexterm"·href="#policies-encumbered">Belastende·Dateien</a></dt><dt>Rücksprungadresse,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt></dl></div><div·class="indexdiv"><h3>S</h3><dl><dt>seteuid,·<a·class="indexterm"·href="#secure-setuid">SetUID-Themen</a></dt><dt>Stack,·<a·class="indexterm"·href="#secure-bufferov">Puffer-Überläufe</a></dt><·✂ |