git: c0a1c8e922 - main - Split German developers handbook

From: Sergio Carlavilla Delgado <carlavilla_at_FreeBSD.org>
Date: Sun, 21 Nov 2021 19:04:19 UTC
The branch main has been updated by carlavilla:

URL: https://cgit.FreeBSD.org/doc/commit/?id=c0a1c8e9223b13a174895fc60840f7490728ec1c

commit c0a1c8e9223b13a174895fc60840f7490728ec1c
Author:     Sergio Carlavilla Delgado <carlavilla@FreeBSD.org>
AuthorDate: 2021-11-21 19:03:58 +0000
Commit:     Sergio Carlavilla Delgado <carlavilla@FreeBSD.org>
CommitDate: 2021-11-21 19:03:58 +0000

    Split German developers handbook
---
 .../de/books/developers-handbook/_index.adoc       | 41 ++---------
 .../bibliography/{chapter.adoc => _index.adoc}     |  2 +-
 .../content/de/books/developers-handbook/book.adoc | 84 ++++++++++++++++++++++
 .../books/developers-handbook/chapters-order.adoc  | 29 ++++----
 .../introduction/{chapter.adoc => _index.adoc}     |  2 +-
 .../ipv6/{chapter.adoc => _index.adoc}             |  2 +-
 .../kernelbuild/{chapter.adoc => _index.adoc}      |  2 +-
 .../kerneldebug/{chapter.adoc => _index.adoc}      |  2 +-
 .../l10n/{chapter.adoc => _index.adoc}             |  0
 .../de/books/developers-handbook/parti.adoc        | 18 +++++
 .../de/books/developers-handbook/partii.adoc       | 18 +++++
 .../de/books/developers-handbook/partiii.adoc      | 18 +++++
 .../de/books/developers-handbook/partiv.adoc       | 19 +++++
 .../de/books/developers-handbook/partv.adoc        | 18 +++++
 .../policies/{chapter.adoc => _index.adoc}         |  0
 .../secure/{chapter.adoc => _index.adoc}           |  8 +--
 .../sockets/{chapter.adoc => _index.adoc}          |  2 +-
 .../testing/{chapter.adoc => _index.adoc}          |  2 +-
 .../tools/{chapter.adoc => _index.adoc}            |  0
 .../x86/{chapter.adoc => _index.adoc}              |  4 +-
 20 files changed, 210 insertions(+), 61 deletions(-)

diff --git a/documentation/content/de/books/developers-handbook/_index.adoc b/documentation/content/de/books/developers-handbook/_index.adoc
index 00e1073cdd..3f4829289d 100644
--- a/documentation/content/de/books/developers-handbook/_index.adoc
+++ b/documentation/content/de/books/developers-handbook/_index.adoc
@@ -4,21 +4,22 @@ authors:
   - author: The FreeBSD Documentation Project
 copyright: 1995-2020 The FreeBSD Documentation Project
 trademarks: ["freebsd", "apple", "ibm", "ieee", "intel", "linux", "microsoft", "opengroup", "sun", "general"]
+next: books/developers-handbook/parti
+add_single_page_link: true
 isIndex: true
 ---
 
 = FreeBSD Developers' Handbook
 :doctype: book
 :toc: macro
-:toclevels: 2
+:toclevels: 1
 :icons: font
 :sectnums:
 :sectnumlevels: 6
 :partnums:
 :source-highlighter: rouge
 :experimental:
-:book: true
-:pdf: false
+:images-path: books/developers-handbook/
 
 ifdef::env-beastie[]
 ifdef::backend-html5[]
@@ -56,36 +57,4 @@ Die aktuelle Version dieses Handbuchs ist immer auf dem http://www.FreeBSD.org/[
 
 toc::[]
 
-// Section one
-[[basics]]
-= Grundlagen
-
-include::{chapters-path}introduction/chapter.adoc[leveloffset=+1]
-include::{chapters-path}tools/chapter.adoc[leveloffset=+1]
-include::{chapters-path}secure/chapter.adoc[leveloffset=+1]
-include::{chapters-path}l10n/chapter.adoc[leveloffset=+1]
-include::{chapters-path}policies/chapter.adoc[leveloffset=+1]
-include::{chapters-path}testing/chapter.adoc[leveloffset=+1]
-
-// Section two
-[[ipc]]
-= Interprozess-Kommunikation
-include::{chapters-path}sockets/chapter.adoc[leveloffset=+1]
-include::{chapters-path}ipv6/chapter.adoc[leveloffset=+1]
-
-// Section three
-[[kernel]]
-= Kernel
-include::{chapters-path}kernelbuild/chapter.adoc[leveloffset=+1]
-include::{chapters-path}kerneldebug/chapter.adoc[leveloffset=+1]
-
-// Section four
-[[architectures]]
-= Architekturen
-include::{chapters-path}x86/chapter.adoc[leveloffset=+1]
-
-// Appendices
-[[appendices]]
-= Anhang
-
-include::{chapters-path}bibliography/chapter.adoc[leveloffset=+1]
+include::{chapters-path}toc.adoc[]
diff --git a/documentation/content/de/books/developers-handbook/bibliography/chapter.adoc b/documentation/content/de/books/developers-handbook/bibliography/_index.adoc
similarity index 97%
rename from documentation/content/de/books/developers-handbook/bibliography/chapter.adoc
rename to documentation/content/de/books/developers-handbook/bibliography/_index.adoc
index 37c2d499e2..929ecb7a1f 100644
--- a/documentation/content/de/books/developers-handbook/bibliography/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/bibliography/_index.adoc
@@ -1,6 +1,6 @@
 ---
 title: Literaturverzeichnis
-prev: books/developers-handbook/x86
+prev: books/developers-handbook/partv
 ---
 
 [bibliography]
diff --git a/documentation/content/de/books/developers-handbook/book.adoc b/documentation/content/de/books/developers-handbook/book.adoc
new file mode 100644
index 0000000000..f1e3428e0a
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/book.adoc
@@ -0,0 +1,84 @@
+---
+title: FreeBSD Developers' Handbook
+authors:
+  - author: The FreeBSD Documentation Project
+copyright: 1995-2020 The FreeBSD Documentation Project
+trademarks: ["freebsd", "apple", "ibm", "ieee", "intel", "linux", "microsoft", "opengroup", "sun", "general"]
+add_split_page_link: true
+---
+
+= FreeBSD Developers' Handbook
+:doctype: book
+:toc: macro
+:toclevels: 2
+:icons: font
+:sectnums:
+:sectnumlevels: 6
+:partnums:
+:source-highlighter: rouge
+:experimental:
+:book: true
+:pdf: false
+
+ifdef::env-beastie[]
+ifdef::backend-html5[]
+include::shared/authors.adoc[]
+include::shared/mirrors.adoc[]
+include::shared/releases.adoc[]
+include::shared/attributes/attributes-{{% lang %}}.adoc[]
+include::shared/{{% lang %}}/teams.adoc[]
+include::shared/{{% lang %}}/mailing-lists.adoc[]
+include::shared/{{% lang %}}/urls.adoc[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+ifdef::backend-pdf,backend-epub3[]
+:chapters-path:
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+
+[.abstract-title]
+[abstract]
+Zusammenfassung
+
+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 extref:{developers-handbook}[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 {de-doc}.
+
+Die aktuelle Version dieses Handbuchs ist immer auf dem http://www.FreeBSD.org/[FreeBSD-Webserver] verfügbar und kann in verschiedenen Formaten und in komprimierter Form vom link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc[FreeBSD-FTP-Server] oder einem der zahlreichen extref:{handbook}mirrors/[Spiegel, mirrors-ftp] heruntergeladen werden (ältere Versionen finden Sie hingegen unter http://docs.FreeBSD.org/doc/[http://docs.FreeBSD.org/doc/]).
+
+'''
+
+toc::[]
+
+// Section one
+include::{chapters-path}parti.adoc[lines=15..16]
+include::{chapters-path}introduction/_index.adoc[leveloffset=+1]
+include::{chapters-path}tools/_index.adoc[leveloffset=+1]
+include::{chapters-path}secure/_index.adoc[leveloffset=+1]
+include::{chapters-path}l10n/_index.adoc[leveloffset=+1]
+include::{chapters-path}policies/_index.adoc[leveloffset=+1]
+include::{chapters-path}testing/_index.adoc[leveloffset=+1]
+
+// Section two
+include::{chapters-path}partii.adoc[lines=15..16]
+include::{chapters-path}sockets/_index.adoc[leveloffset=+1]
+include::{chapters-path}ipv6/_index.adoc[leveloffset=+1]
+
+// Section three
+include::{chapters-path}partiii.adoc[lines=15..16]
+include::{chapters-path}kernelbuild/_index.adoc[leveloffset=+1]
+include::{chapters-path}kerneldebug/_index.adoc[leveloffset=+1]
+
+// Section four
+include::{chapters-path}partiv.adoc[lines=15..16]
+include::{chapters-path}x86/_index.adoc[leveloffset=+1]
+
+// Appendices
+include::{chapters-path}partv.adoc[lines=15..16]  
+include::{chapters-path}bibliography/_index.adoc[leveloffset=+1]
diff --git a/documentation/content/de/books/developers-handbook/chapters-order.adoc b/documentation/content/de/books/developers-handbook/chapters-order.adoc
index 90183764d6..ef978f645c 100644
--- a/documentation/content/de/books/developers-handbook/chapters-order.adoc
+++ b/documentation/content/de/books/developers-handbook/chapters-order.adoc
@@ -1,12 +1,17 @@
-introduction/chapter.adoc
-tools/chapter.adoc
-secure/chapter.adoc
-l10n/chapter.adoc
-policies/chapter.adoc
-testing/chapter.adoc
-sockets/chapter.adoc
-ipv6/chapter.adoc
-kernelbuild/chapter.adoc
-kerneldebug/chapter.adoc
-x86/chapter.adoc
-bibliography/chapter.adoc
+parti.adoc
+introduction/_index.adoc
+tools/_index.adoc
+secure/_index.adoc
+l10n/_index.adoc
+policies/_index.adoc
+testing/_index.adoc
+partii.adoc
+sockets/_index.adoc
+ipv6/_index.adoc
+partiii.adoc
+kernelbuild/_index.adoc
+kerneldebug/_index.adoc
+partiv.adoc
+x86/_index.adoc
+partv.adoc
+bibliography/_index.adoc
diff --git a/documentation/content/de/books/developers-handbook/introduction/chapter.adoc b/documentation/content/de/books/developers-handbook/introduction/_index.adoc
similarity index 99%
rename from documentation/content/de/books/developers-handbook/introduction/chapter.adoc
rename to documentation/content/de/books/developers-handbook/introduction/_index.adoc
index 12e216ef87..3f8e9f8641 100644
--- a/documentation/content/de/books/developers-handbook/introduction/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/introduction/_index.adoc
@@ -1,6 +1,6 @@
 ---
 title: Kapitel 1. Einführung
-prev: books/developers-handbook/
+prev: books/developers-handbook/parti
 next: books/developers-handbook/tools
 ---
 
diff --git a/documentation/content/de/books/developers-handbook/ipv6/chapter.adoc b/documentation/content/de/books/developers-handbook/ipv6/_index.adoc
similarity index 99%
rename from documentation/content/de/books/developers-handbook/ipv6/chapter.adoc
rename to documentation/content/de/books/developers-handbook/ipv6/_index.adoc
index 6610b447e7..f593b8eddc 100644
--- a/documentation/content/de/books/developers-handbook/ipv6/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/ipv6/_index.adoc
@@ -1,7 +1,7 @@
 ---
 title: Kapitel 8. IPv6 Internals
 prev: books/developers-handbook/sockets
-next: books/developers-handbook/kernelbuild
+next: books/developers-handbook/partiii
 ---
 
 [[ipv6]]
diff --git a/documentation/content/de/books/developers-handbook/kernelbuild/chapter.adoc b/documentation/content/de/books/developers-handbook/kernelbuild/_index.adoc
similarity index 98%
rename from documentation/content/de/books/developers-handbook/kernelbuild/chapter.adoc
rename to documentation/content/de/books/developers-handbook/kernelbuild/_index.adoc
index 2402b2b5b0..6bdfb90624 100644
--- a/documentation/content/de/books/developers-handbook/kernelbuild/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/kernelbuild/_index.adoc
@@ -1,6 +1,6 @@
 ---
 title: Kapitel 9. Einen FreeBSD-Kernel bauen und installieren
-prev: books/developers-handbook/ipv6
+prev: books/developers-handbook/partiii
 next: books/developers-handbook/kerneldebug
 ---
 
diff --git a/documentation/content/de/books/developers-handbook/kerneldebug/chapter.adoc b/documentation/content/de/books/developers-handbook/kerneldebug/_index.adoc
similarity index 99%
rename from documentation/content/de/books/developers-handbook/kerneldebug/chapter.adoc
rename to documentation/content/de/books/developers-handbook/kerneldebug/_index.adoc
index 1e3aabb544..7afb5d9591 100644
--- a/documentation/content/de/books/developers-handbook/kerneldebug/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/kerneldebug/_index.adoc
@@ -5,7 +5,7 @@ authors:
   - author: Jörg Wunsch
   - author: Robert Watson
 prev: books/developers-handbook/kernelbuild
-next: books/developers-handbook/x86
+next: books/developers-handbook/partiv
 ---
 
 [[kerneldebug]]
diff --git a/documentation/content/de/books/developers-handbook/l10n/chapter.adoc b/documentation/content/de/books/developers-handbook/l10n/_index.adoc
similarity index 100%
rename from documentation/content/de/books/developers-handbook/l10n/chapter.adoc
rename to documentation/content/de/books/developers-handbook/l10n/_index.adoc
diff --git a/documentation/content/de/books/developers-handbook/parti.adoc b/documentation/content/de/books/developers-handbook/parti.adoc
new file mode 100644
index 0000000000..922ea617fe
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/parti.adoc
@@ -0,0 +1,18 @@
+---
+title: Teil I. Grundlagen
+prev: books/developers-handbook
+next: books/developers-handbook/introduction
+---
+
+ifdef::env-beastie+backend-html5[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+endif::[]
+
+[[basics]]
+= Grundlagen
+
+include::{chapters-path}toc-1.adoc[]
diff --git a/documentation/content/de/books/developers-handbook/partii.adoc b/documentation/content/de/books/developers-handbook/partii.adoc
new file mode 100644
index 0000000000..c22c2c69b4
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/partii.adoc
@@ -0,0 +1,18 @@
+---
+title: Teil II. Interprozess-Kommunikation
+prev: books/developers-handbook/testing
+next: books/developers-handbook/sockets
+---
+
+ifdef::env-beastie+backend-html5[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+endif::[]
+
+[[ipc]]
+= Interprozess-Kommunikation
+
+include::{chapters-path}toc-2.adoc[]
diff --git a/documentation/content/de/books/developers-handbook/partiii.adoc b/documentation/content/de/books/developers-handbook/partiii.adoc
new file mode 100644
index 0000000000..d60c283535
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/partiii.adoc
@@ -0,0 +1,18 @@
+---
+title: Teil III. Kernel
+prev: books/developers-handbook/ipv6
+next: books/developers-handbook/kernelbuild
+---
+
+ifdef::env-beastie+backend-html5[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+endif::[]
+
+[[kernel]]
+= Kernel
+
+include::{chapters-path}toc-3.adoc[]
diff --git a/documentation/content/de/books/developers-handbook/partiv.adoc b/documentation/content/de/books/developers-handbook/partiv.adoc
new file mode 100644
index 0000000000..ddbb74d94e
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/partiv.adoc
@@ -0,0 +1,19 @@
+---
+title: Teil IV. Architekturen
+prev: books/developers-handbook/kerneldebug
+next: books/developers-handbook/x86
+---
+
+ifdef::env-beastie+backend-html5[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+endif::[]
+
+[[architectures]]
+= Architekturen
+
+include::{chapters-path}toc-4.adoc[]
+ 
diff --git a/documentation/content/de/books/developers-handbook/partv.adoc b/documentation/content/de/books/developers-handbook/partv.adoc
new file mode 100644
index 0000000000..4543335af2
--- /dev/null
+++ b/documentation/content/de/books/developers-handbook/partv.adoc
@@ -0,0 +1,18 @@
+---
+title: Teil V. Anhang
+prev: books/developers-handbook/x86
+next: books/developers-handbook/bibliography
+---
+
+ifdef::env-beastie+backend-html5[]
+:chapters-path: content/{{% lang %}}/books/developers-handbook/
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+endif::[]
+
+[[appendices]]
+= Anhang
+
+include::{chapters-path}toc-5.adoc[]
diff --git a/documentation/content/de/books/developers-handbook/policies/chapter.adoc b/documentation/content/de/books/developers-handbook/policies/_index.adoc
similarity index 100%
rename from documentation/content/de/books/developers-handbook/policies/chapter.adoc
rename to documentation/content/de/books/developers-handbook/policies/_index.adoc
diff --git a/documentation/content/de/books/developers-handbook/secure/chapter.adoc b/documentation/content/de/books/developers-handbook/secure/_index.adoc
similarity index 94%
rename from documentation/content/de/books/developers-handbook/secure/chapter.adoc
rename to documentation/content/de/books/developers-handbook/secure/_index.adoc
index 4407013162..ae66e1e19f 100644
--- a/documentation/content/de/books/developers-handbook/secure/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/secure/_index.adoc
@@ -59,9 +59,9 @@ Eine der Stolperfallen der UNIX(R)-Umgebung ist, dass es sehr einfach ist Annahm
 [[secure-bufferov]]
 == Puffer-Überläufe
 
-Puffer-Überläufe gibt es schon seit den Anfängen der Von-Neuman-Architektur <<COD>>.  Sie erlangten zum ersten Mal durch den Internetwurm Morris im Jahre 1988 öffentliche Bekanntheit. Unglücklicherweise  funktioniert der gleiche grundlegende Angriff noch heute. Die bei weitem häufigste Form eines Puffer-Überlauf-Angriffs basiert darauf, den Stack zu korrumpieren.
+Puffer-Überläufe gibt es schon seit den Anfängen der Von-Neuman-Architektur crossref:bibliography[cod,1].  Sie erlangten zum ersten Mal durch den Internetwurm Morris im Jahre 1988 öffentliche Bekanntheit. Unglücklicherweise  funktioniert der gleiche grundlegende Angriff noch heute. Die bei weitem häufigste Form eines Puffer-Überlauf-Angriffs basiert darauf, den Stack zu korrumpieren.
 
-Die meisten modernen Computer-Systeme verwenden einen Stack, um Argumente an Prozeduren zu übergeben und lokale Variablen zu speichern. Ein Stack ist ein last-in-first-out-Puffer (LIFO) im hohen Speicherbereich eines Prozesses. Wenn ein Programm eine Funktion  aufruft wird ein neuer "Stackframe" erzeugt. Dieser besteht aus den Argumenten, die der Funktion übergeben wurden und einem variabel grossem Bereich für lokale Variablen. Der "Stack-Pointer" ist ein Register, dass die  aktuelle Adresse der Stack-Spitze enthält. Da sich dieser Wert oft ändert, wenn neue Werte auf dem Stack abgelegt werden, bieten viele Implementierungen einen "Frame-Pointer", der nahe am Anfang des Stack-Frames liegt und es so leichter macht lokale Variablen relativ zum aktuellen Stackframe zu adressieren. <<COD>> Die Rücksprungadresse  der Funktionen werden ebenfalls auf dem Stack gespeichert und das ist der Grund für Stack-Überlauf-Exploits. Denn ein böswilliger Nutzer kann die Rücksprungadresse der
  Funktion überschreiben indem er eine lokale Variable in der Funktion überlaufen lässt, wodurch es ihm möglich ist beliebigen Code auszuführen.
+Die meisten modernen Computer-Systeme verwenden einen Stack, um Argumente an Prozeduren zu übergeben und lokale Variablen zu speichern. Ein Stack ist ein last-in-first-out-Puffer (LIFO) im hohen Speicherbereich eines Prozesses. Wenn ein Programm eine Funktion  aufruft wird ein neuer "Stackframe" erzeugt. Dieser besteht aus den Argumenten, die der Funktion übergeben wurden und einem variabel grossem Bereich für lokale Variablen. Der "Stack-Pointer" ist ein Register, dass die  aktuelle Adresse der Stack-Spitze enthält. Da sich dieser Wert oft ändert, wenn neue Werte auf dem Stack abgelegt werden, bieten viele Implementierungen einen "Frame-Pointer", der nahe am Anfang des Stack-Frames liegt und es so leichter macht lokale Variablen relativ zum aktuellen Stackframe zu adressieren. crossref:bibliography[cod,1] Die Rücksprungadresse  der Funktionen werden ebenfalls auf dem Stack gespeichert und das ist der Grund für Stack-Überlauf-Exploits. Denn ein böswilliger Nutzer kann die R
 ücksprungadresse der Funktion überschreiben indem er eine lokale Variable in der Funktion überlaufen lässt, wodurch es ihm möglich ist beliebigen Code auszuführen.
 
 Obwohl Stack-basierte Angriffe bei weitem die Häufigsten sind, ist es auch möglich den Stack mit einem Heap-basierten (malloc/free) Angriff zu überschreiben.
 
@@ -109,7 +109,7 @@ Kann den Puffer str überlaufen lassen
 
 === Puffer-Überlauf Beispiel
 
-Das folgende Quellcode-Beispiel enthält einen Puffer-Überlauf, der darauf ausgelegt ist die Rücksprungadresse zu überschreiben und die Anweisung direkt nach dem Funktionsaufruf zu überspringen. (Inspiriert durch <<Phrack>>)
+Das folgende Quellcode-Beispiel enthält einen Puffer-Überlauf, der darauf ausgelegt ist die Rücksprungadresse zu überschreiben und die Anweisung direkt nach dem Funktionsaufruf zu überspringen. (Inspiriert durch crossref:bibliography[Phrack,4])
 
 [.programlisting]
 ....
@@ -144,7 +144,7 @@ Offensichtlich kann man durch böswilligere Eingaben bereits kompilierten Progra
 
 Die direkteste Lösung, um Stack-Überläufe zu vermeiden, ist immer grössenbegrenzten Speicher und String-Copy-Funktionen zu verwenden. `strncpy` und `strncat` sind Teil der C-Standardbibliothek.  Diese Funktionen akzeptieren einen Längen-Parameter. Dieser Wert sollte nicht größer sein als die Länge des Zielpuffers. Die Funktionen kopieren dann bis zu `length` Bytes von der Quelle zum Ziel. Allerdings gibt es einige Probleme. Keine der Funktionen garantiert, dass die Zeichenkette NUL-terminiert ist, wenn die Größe  des Eingabepuffers so groß ist wie das Ziel. Außerdem wird der Parameter length zwischen strncpy und strncat inkonsistent definiert, weshalb Programmierer leicht bezüglich der korrekten Verwendung durcheinander kommen können. Weiterhin gibt es einen spürbaren Leistungsverlust im Vergleich zu `strcpy`, wenn eine kurze Zeichenkette in einen großen Puffer kopiert wird. Denn `strncpy` fült den Puffer bis zur angegebenen Länge mit NUL auf. 
 
-In OpenBSD wurde eine weitere Möglichkeit zum  kopieren von Speicherbereichen implementiert, die dieses Problem umgeht. Die Funktionen `strlcpy` und `strlcat` garantieren, dass das Ziel immer NUL-terminiert wird, wenn das Argument length ungleich null ist. Für weitere Informationen über diese Funktionen lesen Sie bitte <<OpenBSD>>. Die OpenBSD-Funktionen `strlcpy` und `strlcat` sind seit Version 3.3 auch in FreeBSD verfügbar.
+In OpenBSD wurde eine weitere Möglichkeit zum  kopieren von Speicherbereichen implementiert, die dieses Problem umgeht. Die Funktionen `strlcpy` und `strlcat` garantieren, dass das Ziel immer NUL-terminiert wird, wenn das Argument length ungleich null ist. Für weitere Informationen über diese Funktionen lesen Sie bitte crossref:bibliography[OpenBSD,6]. Die OpenBSD-Funktionen `strlcpy` und `strlcat` sind seit Version 3.3 auch in FreeBSD verfügbar.
 
 ==== Compiler-basierte Laufzeitüberprüfung von Grenzen
 
diff --git a/documentation/content/de/books/developers-handbook/sockets/chapter.adoc b/documentation/content/de/books/developers-handbook/sockets/_index.adoc
similarity index 96%
rename from documentation/content/de/books/developers-handbook/sockets/chapter.adoc
rename to documentation/content/de/books/developers-handbook/sockets/_index.adoc
index 9ec9f3a459..ec674e1759 100644
--- a/documentation/content/de/books/developers-handbook/sockets/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/sockets/_index.adoc
@@ -2,7 +2,7 @@
 title: Kapitel 7. Sockets
 authors:
   - author: G. Adam Stanislav
-prev: books/developers-handbook/testing
+prev: books/developers-handbook/partii
 next: books/developers-handbook/ipv6
 ---
 
diff --git a/documentation/content/de/books/developers-handbook/testing/chapter.adoc b/documentation/content/de/books/developers-handbook/testing/_index.adoc
similarity index 99%
rename from documentation/content/de/books/developers-handbook/testing/chapter.adoc
rename to documentation/content/de/books/developers-handbook/testing/_index.adoc
index ea7fd0efac..7dbde48073 100644
--- a/documentation/content/de/books/developers-handbook/testing/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/testing/_index.adoc
@@ -1,7 +1,7 @@
 ---
 title: Kapitel 6. Regressions- und Performance-Tests
 prev: books/developers-handbook/policies
-next: books/developers-handbook/sockets
+next: books/developers-handbook/partii
 ---
 
 [[testing]]
diff --git a/documentation/content/de/books/developers-handbook/tools/chapter.adoc b/documentation/content/de/books/developers-handbook/tools/_index.adoc
similarity index 100%
rename from documentation/content/de/books/developers-handbook/tools/chapter.adoc
rename to documentation/content/de/books/developers-handbook/tools/_index.adoc
diff --git a/documentation/content/de/books/developers-handbook/x86/chapter.adoc b/documentation/content/de/books/developers-handbook/x86/_index.adoc
similarity index 99%
rename from documentation/content/de/books/developers-handbook/x86/chapter.adoc
rename to documentation/content/de/books/developers-handbook/x86/_index.adoc
index f4830a5735..4ec4bfaf90 100644
--- a/documentation/content/de/books/developers-handbook/x86/chapter.adoc
+++ b/documentation/content/de/books/developers-handbook/x86/_index.adoc
@@ -1,7 +1,7 @@
 ---
 title: Kapitel 11. x86-Assembler-Programmierung
-prev: books/developers-handbook/kerneldebug
-next: books/developers-handbook/bibliography
+prev: books/developers-handbook/partiv
+next: books/developers-handbook/partv
 ---
 
 [[x86]]