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