---
title: Kapitel 1. Einführung
prev: books/developers-handbook/
next: books/developers-handbook/tools
---

[[introduction]]
= Einführung
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:figure-caption: Abbildung
:example-caption: Beispiel
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:
:sectnumoffset: 1

include::shared/mirrors.adoc[]
include::shared/authors.adoc[]
include::shared/releases.adoc[]
include::shared/de/mailing-lists.adoc[]
include::shared/de/teams.adoc[]
include::shared/de/urls.adoc[]

toc::[]

[[introduction-devel]]
== Unter FreeBSD entwickeln

Hier sind wir also. Ihr System ist vollständig installiert und Sie wollen mit dem Programmieren beginnen. Aber womit sollen Sie anfangen? Was bietet Ihnen FreeBSD? Was kann es für einen Programmierer tun?

Dies sind einige der Fragen, welche dieses Handbuch zu beantworten versucht. Natürlich gibt es, analog zu anderen Berufen, auch bei Programmierern unterschiedliche Leistungsniveaus. Für die einen ist es ein Hobby, für die anderen ist es der Beruf. Die Informationen in diesem Kapitel dürften eher für den Programmieranfänger geeignet sein; allerdings könnte es auch für Programmierer, die bisher nichts mit der FreeBSD-Plattform zu tun hatten, interessante Informationen enthalten.

[[introduction-bsdvision]]
== Die Vision von BSD

Ziel ist es, das bestmögliche UNIX(R)-artige Betriebssystempaket zu erstellen, mit dem gebührenden Respekt gegenüber der Ideologie der ursprünglichen Software, sowie der Bedienbarkeit, Leistungsfähigkeit und Stabilität.

[[introduction-archguide]]
== Grundlegende Richtlinien

Unsere Ideologie kann durch die folgenden Leitfäden beschrieben werden.

* Füge keine neue Funktionalität hinzu, solange ein Programmierer diese nicht zur Fertigstellung einer realen Anwendung benötigt.
* Zu entscheiden, was ein System ist, ist genauso wichtig wie zu entscheiden, was ein System nicht ist. Versuchen Sie nicht, alle möglichen Wünsche zu erfüllen; machen Sie lieber das System erweiterbar, so dass zusätzliche Bedürfnisse in einer aufwärtskompatiblen Weise bedient werden können.
* Das Einzige, das schlimmer ist, als von einem Beispiel auf die Allgemeinheit zu schließen, ist, von überhaupt keinem Beispiel auf die Allgemeinheit zu schließen.
* Solange ein Problem nicht vollständig verstanden wurde, ist es besser, keine Lösung bereitzustellen.
* Wenn Sie 90% des gewünschten Effektes bei nur 10% des Aufwands erreichen können, sollten Sie besser die einfachere Lösung verwenden.
* Grenzen Sie Komplexität so gut wie möglich ein.
* Stellen Sie Mechanismen anstelle von Strategien bereit. Überlassen Sie insbesondere Strategien für die Benutzerschnittstelle dem Benutzerprogramm.

Aus Scheifler & Gettys: "X Window System"

[[introduction-layout]]
== Der Aufbau von [.filename]#/usr/src#

Der vollständige Quelltext von FreeBSD ist über unser öffentliches Repository verfügbar. Der Quelltext wird normalerweise in [.filename]#/usr/src# abgelegt und enthält die folgenden Unterverzeichnisse:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Verzeichnis
| Beschreibung

|[.filename]#bin/#
|Quelldateien für Dateien in [.filename]#/bin#

|[.filename]#cddl/#
|Quelldateien für Programme, die unter der Common Development and Distribution License stehen

|[.filename]#contrib/#
|Quelldateien für Dateien von beigesteuerter Software

|[.filename]#crypto/#
|Quelldateien für die Kryptographie

|[.filename]#etc/#
|Quelldateien für Dateien in [.filename]#/etc#

|[.filename]#games/#
|Quelldateien für Dateien in [.filename]#/usr/games#

|[.filename]#gnu/#
|Programme, die unter der GNU Public License stehen

|[.filename]#include/#
|Quelldateien für Dateien in [.filename]#/usr/include#

|[.filename]#kerberos5/#
|Quelldateien für Kerberos Version 5

|[.filename]#lib/#
|Quelldateien für Dateien in [.filename]#/usr/lib#

|[.filename]#libexec/#
|Quelldateien für Dateien in [.filename]#/usr/libexec#

|[.filename]#release/#
|Dateien, die für die Erstellung eines FreeBSD-Releases nötig sind

|[.filename]#rescue/#
|Bausystem für die [.filename]#/rescue#-Programme

|[.filename]#sbin/#
|Quelldateien für Dateien in [.filename]#/sbin#

|[.filename]#secure/#
|Quelldateien für FreeSec

|[.filename]#share/#
|Quelldateien für Dateien in [.filename]#/usr/share#

|[.filename]#sys/#
|Kernel-Quelldateien

|[.filename]#tools/#
|Programme zum Verwalten und Testen von FreeBSD

|[.filename]#usr.bin/#
|Quelldateien für Dateien in [.filename]#/usr/bin#

|[.filename]#usr.sbin/#
|Quelldateien für Dateien in [.filename]#/usr/sbin#
|===
