---
title: Livre de chevet du développeur FreeBSD
authors:
  - author: Le groupe du projet de documentation FreeBSD
copyright: 1995-2020 The FreeBSD Documentation Project
releaseinfo: "$FreeBSD$"  
trademarks: ["freebsd", "apple", "ibm", "ieee", "intel", "linux", "microsoft", "opengroup", "sun", "general"] 
---

= Livre de chevet du développeur FreeBSD
:doctype: book
:toc: macro
:toclevels: 2
:icons: font
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:
:sectnums:
:sectnumlevels: 6
:partnums:
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:toc-title: Table des matières
:part-signifier: Partie
:chapter-signifier: Chapitre
:appendix-caption: Annexe
:table-caption: Tableau
:example-caption: Exemple

ifeval::["{backend}" == "html5"]
include::shared/mirrors.adoc[]
include::shared/authors.adoc[]
include::shared/releases.adoc[]
include::shared/fr/mailing-lists.adoc[]
include::shared/fr/teams.adoc[]
include::shared/fr/urls.adoc[]
:imagesdir: ../../images/books/developers-handbook/
:chapters-path: content/fr/books/developers-handbook/
endif::[]

ifeval::["{backend}" == "pdf"]
include::../../../../shared/mirrors.adoc[]
include::../../../../shared/authors.adoc[]
include::../../../../shared/releases.adoc[]
include::../../../../shared/fr/mailing-lists.adoc[]
include::../../../../shared/fr/teams.adoc[]
include::../../../../shared/fr/urls.adoc[]
:imagesdir: ../../../static/images/books/developers-handbook/
:chapters-path:
endif::[]

ifeval::["{backend}" == "epub3"]
include::../../../../shared/mirrors.adoc[]
include::../../../../shared/authors.adoc[]
include::../../../../shared/releases.adoc[]
include::../../../../shared/fr/mailing-lists.adoc[]
include::../../../../shared/fr/teams.adoc[]
include::../../../../shared/fr/urls.adoc[]
:imagesdir: ../../../static/images/books/developers-handbook/
:chapters-path:
endif::[]

[.abstract-title]
[abstract]
Résumé

Bienvenue dans le livre de chevet du développeur

Version française de Frédéric Praca <frederic.praca@freebsd-fr.org>.

N.d.T.: La version française est publiée sur le link:https://www.FreeBSD.org/[serveur World Wide Web du groupe de traduction en langue française de la documentation de FreeBSD].

N.d.T.: Contactez la liste de diffusion du groupe d'utilisateurs francophones de FreeBSD <freebsd-questions@FreeBSD-fr.org> si vous voulez collaborer à la traduction.

La traduction de ce manuel est "en cours". Dans la table des matières ci-dessous: 

* Les chapitres marqués de deux astérisques sont en cours de traduction.
* Les chapitres marqués de trois astérisques sont à traduire.
* L'astérisque simple est réservé aux chapitres et sections en cours de rédaction dans la version U.S.

'''

toc::[]

[[introduction]]
= Introduction

[[developmentplatform]]
== Développer sous FreeBSD

Ce document a pour but de décrire FreeBSD comme une plateforme de développement, la vision de BSD, un survol de l'architecture, l'agencement de /usr/src, l'histoire, etc.

Merci d'adopter FreeBSD comme votre plateforme de développement ! Nous espérons qu'elle ne vous laissera pas tomber.

[[bsdvision]]
== La vision BSD

[[archoverview]]
== Survol de l'architecture

[[sourcelayout]]
== L'agencement de /usr/src

Le code source complet de FreeBSD est disponible depuis notre base CVS publique. Le code source est normalement installé sous [.filename]#/usr/src# qui contient les sous-répertoires suivants.

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Répertoire
| Description

|[.filename]#bin/#
|Sources des fichiers de [.filename]#/bin#

|[.filename]#contrib/#
|Sources des fichiers des logiciels fournis ("contributed").

|[.filename]#crypto/#
|Sources du DES

|[.filename]#etc/#
|Sources des fichiers de [.filename]#/etc#

|[.filename]#games/#
|Sources des fichiers de [.filename]#/usr/games#

|[.filename]#gnu/#
|Utilitaires sous licence publique GNU

|[.filename]#include/#
|Sources des fichiers de [.filename]#/usr/include#

|[.filename]#kerberosIV/#
|Sources de Kerbereros version IV

|[.filename]#kerberos5/#
|Sources de Kerbereros version 5

|[.filename]#lib/#
|Sources des fichiers de [.filename]#/usr/lib#

|[.filename]#libexec/#
|Sources des fichiers de [.filename]#/usr/libexec#

|[.filename]#release/#
|Fichiers requis pour la production d'une version stable de FreeBSD

|[.filename]#sbin/#
|Sources des fichiers de [.filename]#/sbin#

|[.filename]#secure/#
|Sources de FreeSec

|[.filename]#share/#
|Sources des fichiers de [.filename]#/sbin#

|[.filename]#sys/#
|Fichiers source du noyau

|[.filename]#tools/#
|Outils utilisés pour la maintenance et les tests de FreeBSD

|[.filename]#usr.bin/#
|Sources des fichiers de [.filename]#/usr/bin#

|[.filename]#usr.sbin/#
|Sources des fichiers de [.filename]#/usr/sbin#
|===

[[Basics]]
= Les fondamentaux

include::{chapters-path}tools/chapter.adoc[leveloffset=+1]
include::{chapters-path}secure/chapter.adoc[leveloffset=+1]

[[kernel]]
= Le noyau

[[kernelhistory]]
== Histoire du noyau Unix

Un peu d'histoire sur le noyau Unix/BSD, les appels système, comment fonctionnent les processus, bloquer, planifier, les threads (noyau), le basculement de contexte, les signaux, les interruptions, les modules, etc.

include::{chapters-path}locking/chapter.adoc[leveloffset=+1]

[[memory]]
= Mémoire et mémoire virtuelle

[[virtualmemory]]
== La mémoire virtuelle

MV, gestion par page, gestion sur disque, allouer de la mémoire, tester les fuites de mémoires, mmap, vnodes, etc.

[[iosystem]]
= Système E/S (Entrées/Sorties)

[[UFS]]
== UFS

UFS, FFS, Ext2FS, JFS, inodes, mémoire tampon, mettre à jour les données d'un disque, verrouillage, metadata, soft-updates, LFS, portalfs, procfs, vnodes, partage de mémoire, objets en mémoire, TLBs, mettre en cache

[[ipc]]
= Communication InterProcessus (IPC)

[[signals]]
== Les signaux

Signaux, tubes, sémaphores, files de message, segments de mémoire partagée, ports, prises, portes

[[networking]]
= Le réseau

[[sockets]]
== Les prises

Prises, bpf, IP, TCP, UDP, ICMP, OSI, ponts, pare-feux, translation d'adresses (NAT), séparation de réseaux, etc

[[networkfs]]
= Systèmes de fichiers en réseau

[[afs]]
== AFS

AFS, NFS, SANs etc]

[[terminal]]
= Gestion du terminal

[[syscons]]
== Syscons

Syscons, tty, PCVT, console en liaison série, économiseurs d'écran, etc

[[sound]]
= Le son

[[oss]]
== OSS

OSS, formes d'ondes, etc

[[devicedrivers]]
= Pilotes de périphérique

include::{chapters-path}driverbasics/chapter.adoc[leveloffset=+1]
include::{chapters-path}pci/chapter.adoc[leveloffset=+1]
include::{chapters-path}scsi/chapter.adoc[leveloffset=+1]
include::{chapters-path}usb/chapter.adoc[leveloffset=+1]

[[newbus]]
== NewBus
Ce chapître traitera de l'architecture NewBus de FreeBSD.

[[architectures]]
= Architectures

[[ia32]]
== IA-32

Traite des spécificités de l'architecture x86 sous FreeBSD.

[[alpha]]
== Alpha

Traite des spécificités de l'architecture Alpha sous FreeBSD.

Explication des erreurs d'alignements, comment les réparer, comment les ignorer.

Exemple de code assembleur pour FreeBSD/alpha.

[[ia64]]
== IA-64

Traite des spécificités de l'architecture IA-64 sous FreeBSD.

[[debuggingpart]]
= Déverminage

[[truss]]
== Truss

diverses descriptions sur les méthodes de déverminage de certains aspects du système utilisant truss, ktrace, gdb, kgdb, etc

[[compatibility]]
= Les couches de compatibilité

[[linux]]
==  Linux

Linux, SVR4, etc

[[appendices]]
[bibliography]
= Bibligraphie

:sectnums!:

== Bibliographie

[[COD,1]] [1] Dave A Patterson and John L Hennessy. Copyright(R) 1998 Morgan Kaufmann Publishers, Inc. 1-55860-428-6. Morgan Kaufmann Publishers, Inc. Computer Organization and Design. The Hardware / Software Interface. 1-2.

[[APUE, 2]] [2] W. Richard Stevens. Copyright(R) 1993 Addison Wesley Longman, Inc. 0-201-56317-7. Addison Wesley Longman, Inc. Advanced Programming in the Unix Environment. 1-2.

[[DIFOS, 3]] [3] Marshall Kirk McKusick and George Neville-Neil. Copyright(R) 2004 Addison-Wesley. 0-201-70245-2. Addison-Wesley. The Design and Implementation of the FreeBSD Operating System. 1-2.

[[Phrack, 4]] [4] Aleph One. Phrack 49; "Smashing the Stack for Fun and Profit".

[[StackGuard, 5]] [5] Chrispin Cowan, Calton Pu, and Dave Maier. StackGuard; Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks.

[[OpenBSD, 6]] [6] Todd Miller and Theo de Raadt. strlcpy and strlcat -- consistent, safe string copy and concatenation.
