# Livre de chevet du développeur FreeBSD

Le groupe du projet de documentation FreeBSD
Août 2000
2000
2001
2002
2003
Le groupe du projet de documentation FreeBSD

&bookinfo.legalnotice;

Bienvenue dans le livre de chevet du développeur

&trans.a.praca;

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

N.d.T.: Contactez la &a.fr-doc; 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.

## Introduction

### 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.

### La vision BSD

### Survol de l'architecture

### 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 `/usr/src` qui contient les sous-répertoires suivants.

Répertoire | Description
--- | ---
`bin/` | Sources des fichiers de `/bin`
`contrib/` | Sources des fichiers des logiciels fournis ("contributed").
`crypto/` | Sources du DES
`etc/` | Sources des fichiers de `/etc`
`games/` | Sources des fichiers de `/usr/games`
`gnu/` | Utilitaires sous licence publique GNU
`include/` | Sources des fichiers de `/usr/include`
`kerberosIV/` | Sources de Kerbereros version IV
`kerberos5/` | Sources de Kerbereros version 5
`lib/` | Sources des fichiers de `/usr/lib`
`libexec/` | Sources des fichiers de `/usr/libexec`
`release/` | Fichiers requis pour la production d'une version stable de FreeBSD
`sbin/` | Sources des fichiers de `/sbin`
`secure/` | Sources de FreeSec
`share/` | Sources des fichiers de `/sbin`
`sys/` | Fichiers source du noyau
`tools/` | Outils utilisés pour la maintenance et les tests de FreeBSD
`usr.bin/` | Sources des fichiers de `/usr/bin`
`usr.sbin/` | Sources des fichiers de `/usr/sbin`

## Les fondamentaux

&chap.tools; &chap.secure;

## Le noyau

### 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.

&chap.locking;

## Mémoire et mémoire virtuelle

### 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.

## Système E/S (Entrées/Sorties)

### 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

## Communication InterProcessus (IPC)

### Les signaux

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

## Le réseau

### Les prises

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

## Systèmes de fichiers en réseau

### AFS

AFS, NFS, SANs etc]

## Gestion du terminal

### Syscons

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

## Le son

### OSS

OSS, formes d'ondes, etc

## Pilotes de périphérique

&chap.driverbasics; &chap.pci; &chap.scsi; &chap.usb;

### NewBus

Ce chapître traitera de l'architecture NewBus de FreeBSD.

## Architectures

### IA-32

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

### 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.

### IA-64

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

## Déverminage

### Truss

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

## Les couches de compatibilité

### Linux

Linux, SVR4, etc

## Bibligraphie

Dave
A
Patterson
John
L
Hennessy
1998
Morgan Kaufmann Publishers, Inc.
1-55860-428-6
Morgan Kaufmann Publishers, Inc.

#### Computer Organization and Design

The Hardware / Software Interface
1-2
W.
Richard
Stevens
1993
Addison Wesley Longman, Inc.
0-201-56317-7
Addison Wesley Longman, Inc.

#### Advanced Programming in the Unix Environment

1-2
Marshall
Kirk
McKusick
Keith
Bostic
Michael
J
Karels
John
S
Quarterman
1996
Addison-Wesley Publishing Company, Inc.
0-201-54979-4
Addison-Wesley Publishing Company, Inc.

#### The Design and Implementation of the 4.4 BSD Operating System

1-2
Aleph
One

#### Phrack 49; "Smashing the Stack for Fun and Profit"

Chrispin
Cowan
Calton
Pu
Dave
Maier

#### StackGuard; Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks

Todd
Miller
Theo
de Raadt

#### strlcpy and strlcat -- consistent, safe string copy and concatenation.