IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traduction LDD3 Discussion :

Chapitre 1 : An Introduction to Device Drivers partie 3


Sujet :

Traduction LDD3

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut Chapitre 1 : An Introduction to Device Drivers partie 3
    Discussion réservée à la traduction de la partie 3 du chapitre 1 "An Introduction to Device Drivers"


    Pour travailler, vous devez télécharger les xml en pièce jointe et joindre le xml une fois que vous avez fini. Vous ne devez en aucun cas toucher aux balises ni à l'indentation sinon ça va mettre la pagaille dans le xml final. J'ai utilisé kwrite comme éditeur de texte avec les paramètres par défaut.




  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 8 870
    Points
    8 870
    Par défaut
    Security Issues

    Security is an increasingly important concern in modern times. We will discuss security-related issues as they come up throughout the book. There are a few general concepts, however, that are worth mentioning now.
    Problèmes de sécurité

    La sécurité est un souci de plus en plus important dans les temps modernes. Nous discuterons des problèmes de sécurité au fur et à mesure qu’ils apparaissent dans ce livre. Il y a quelques concepts généraux, néanmoins, qu’il vaut la peine de mentionner maintenant.
    ___

    Any security check in the system is enforced by kernel code. If the kernel has security holes, then the system as a whole has holes. In the official kernel distribution, only an authorized user can load modules; the system call init_module checks if the invoking process is authorized to load a module into the kernel. Thus, when running an official kernel, only the superuser, (Technically, only somebody with the CAP_SYS_MODULE capability can perform this operation. We discuss capabilities in Chapter 6.) or an intruder who has succeeded in becoming privileged, can exploit the power of privileged code.
    Chaque contrôle dans le système est imposé par le code du noyau. Si le noyau contient des trous de sécurité, alors tout le système tout entier en contient. Dans la distribution officielle du noyau, seul un utilisateur autorisé peut charger des modules. L’appel système <i>init_module</i> contrôle si le processus est invoqué est autorisé à charger des modules dans le noyau. De cette manière, quand est un noyau officiel est actif, seul l’administrateur système (techniquement, seulement quelqu’un avec la capacité de < i>CAP_SYS_MODULE</i> peut accomplir cette opération. Nous discuterons des capacités dans le chapitre 6), ou un intrus qui a réussi à obtenir ces droits, peut exploiter le pouvoir du code privilégié.
    ___

    When possible, driver writers should avoid encoding security policy in their code. Security is a policy issue that is often best handled at higher levels within the kernel, under the control of the system administrator. There are always exceptions, however.
    Si possible, les programmeurs de pilotes devraient éviter de coder la police de sécurité dans leur code. La sécurité est une question de politique qui est souvent mieux manipulée à des niveaux plus élevés dans le noyau, sous le contrôle de l’administrateur système. Néanmoins, il y a toujours des explications.
    ___

    As a device driver writer, you should be aware of situations in which some types of device access could adversely affect the system as a whole and should provide adequate controls. For example, device operations that affect global resources (such as setting an interrupt line), which could damage the hardware (loading firmware, for example), or that could affect other users (such as setting a default block size on a tape drive), are usually only available to sufficiently privileged users, and this check must be made in the driver itself.
    En tant que programmeur de pilote, vous devriez être conscient des situations dans lesquelles quelques types d’accès aux périphériques pourraient compromettre l’ensemble du système et devrait fournir des contrôles proportionnés. Par exemple, les opérations de périphériques qui affectent les ressources globales (comme placer une ligne d’interruption), qui pourrait endommager le matériel (chargement de firmware par exemple) ou qui pourrait affecter d’autres utilisateurs (comme placer un bloc par défaut sur une bande magnétique) sont habituellement seulement disponible aux utilisateurs suffisamment privilégiés et ce contrôle doit être effectuer dans le pilote lui-même.
    ___

    Driver writers must also be careful, of course, to avoid introducing security bugs. The C programming language makes it easy to make several types of errors. Many current security problems are created, for example, by buffer overrun errors, in which the programmer forgets to check how much data is written to a buffer, and data ends up written beyond the end of the buffer, thus overwriting unrelated data. Such errors can compromise the entire system and must be avoided. Fortunately, avoiding these errors is usually relatively easy in the device driver context, in which the interface to the user is narrowly defined and highly controlled.

    Les programmeurs de pilotes doivent donc être prudent, bien sûr, à éviter d’introduire des bugs de sécurité. Le langage de programmation C rend facile le fait de faire des erreurs de ce type. Plusieurs des problèmes de sécurité actuels sont créés, par exemple, par des erreurs de <i>dépassement de tampon</i> dans lesquels le programmeurs oublie de contrôler combien de données sont écrites dans le tampon et les données finissent par être écrites à la fin du tampon, recouvrant de ce fait des données indépendantes. De telles erreurs peuvent compromettre le système et doivent être évitées. Heureusement, éviter ces erreurs est habituellement relativement simple dans le contexte du pilote de périphérique, dans lequel, l’interface utilisateur est étroitement défini et hautement contrôlé.
    ___

    Some other general security ideas are worth keeping in mind. Any input received from user processes should be treated with great suspicion; never trust it unless you can verify it. Be careful with uninitialized memory; any memory obtained from the kernel should be zeroed or otherwise initialized before being made available to a user process or device. Otherwise, information leakage (disclosure of data, passwords, etc.) could result. If your device interprets data sent to it, be sure the user cannot send anything that could compromise the system. Finally, think about the possible effect of device operations; if there are specific operations (e.g., reloading the firmware on an adapter board or formatting a disk) that could affect the system, those operations should almost certainly be restricted to privileged users.
    Quelques autres idées de sécurité générale valent la peine d’être gardé en mémoire. Chaque entrée reçue par le processus utilisateur devrait être traité avec la plus grande suspicion, ne jamais y croire sans que vous ayez un moyen de le vérifier. Soyez prudent avec l’espace mémoire non alloué et de la mémoire obtenue à partir du noyau doit être remise à zéro ou être autrement initialisée avant de la rendre disponible à un processus utilisateur ou périphérique. Autrement, les fuites d’informations (révélation de données, mots de passes, etc.) pourrait être révélé. Si votre périphérique interprète les données transmises, soyez sûr que l’utilisateur ne puisse pas envoyer tout ce qui pourrait compromettre le système. Finalement, envisagez les effets possibles des opérations de périphériques. S’il y a des opérations spécifiques (par exemple, rechargé le firmware sur un panneau ou formater un disque) qui peuvent affecter le système, ces opérations devraient certainement restreintes aux utilisateurs privilégiés.
    ___

    Be careful, also, when receiving software from third parties, especially when the kernel is concerned: because everybody has access to the source code, everybody can break and recompile things. Although you can usually trust precompiled kernels found in your distribution, you should avoid running kernels compiled by an untrusted friend-if you wouldn't run a precompiled binary as root, then you'd better not run a precompiled kernel. For example, a maliciously modified kernel could allow anyone to load a module, thus opening an unexpected back door via init_module.
    Soyez prudent, aussi, quand vous recevez des logiciels d’une tierce personne, et plus particulièrement quand le noyau est concerné: car tout le monde a accès au code source, tout le monde peut le corrompre et recompiler certaines choses. Bien que vous puissiez faire confiance aux noyaux précompilés trouvés dans votre distribution, vous devriez éviter d’utiliser des noyaux par une personne à qui vous ne pouvez pas faire confiance. Si vous ne voulez pas exécuter les fichiers binaires précompilés en tant qu’administrateur système, alors vous ne devriez pas utiliser un noyau précompilé. Par exemple, un noyau malicieux modifié pourrait autoriser n’importe qui à charger un module, ceci ouvrant une porte secrète inattendue via <i>init_module</i>.
    ___

    Note that the Linux kernel can be compiled to have no module support whatsoever, thus closing any module-related security holes. In this case, of course, all needed drivers must be built directly into the kernel itself. It is also possible, with 2.2 and later kernels, to disable the loading of kernel modules after system boot via the capability mechanism.
    Notez que le noyau Linux peut être compilé pour de telle sorte à ce que les modules ne soit plus supportés, ceci fermant tous les trous de sécurité relatif aux modules. Dans ce cas, bien sûr, tous les pilotes requis doivent être directement écrits en dur dans le noyau. Il est aussi possible, avec les versions 2.2 du noyau et supérieures, de désactiver le chargement de modules dans le noyau après le système de démarrage par l’intermédiaire du mécanisme approprié.
    ___

    La suite viendra bientôt
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 8 870
    Points
    8 870
    Par défaut
    Une partie un peu corsée et maladroitement traduite pour ma part, une relecture est plus qu'indispensable

    Version Numbering

    Before digging into programming, we should comment on the version numbering scheme used in Linux and which versions are covered by this book.
    Avant d’approfondir le côté programmation, nous devrions commenter le schéma de numérotation des versions utilisée dans Linux, lesquelles sont couvertes par ce livre.
    ______


    First of all, note that every software package used in a Linux system has its own release number, and there are often interdependencies across them: you need a particular version of one package to run a particular version of another package. The creators of Linux distributions usually handle the messy problem of matching packages, and the user who installs from a prepackaged distribution doesn't need to deal with version numbers. Those who replace and upgrade system software, on the other hand, are on their own in this regard. Fortunately, almost all modern distributions support the upgrade of single packages by checking interpackage dependencies; the distribution's package manager generally does not allow an upgrade until the dependencies are satisfied.

    Tout d’abord, notez que <i>chaque</i> progiciel utilisé dans un système Linux à son propre numéro de parution et il y a souvent des interdépendances entre eux: vous avez besoin d’une version particulière d’un package pour faire tourner une autre version d’un package particulier. Les créateurs de distributions Linux manient habituellement le sale problème d’assortir les paquets, et l’utilisateur qui installe une distribution préemballée n’a pas besoin de s’occuper avec les numéros de versions. Ceux qui remplacent et mettent à jour les logiciels systèmes, de l’autre côté, ont leur propre point de vue. Heureusement, presque toutes les distributions modernes supportent la mise à jour de package unique en contrôlant les dépendances interpackage. Le gestionnaire de packages de la distribution n’autorise généralement pas la mise à jour si les dépendances ne sont pas satisfaites.
    ______


    To run the examples we introduce during the discussion, you won't need particular versions of any tool beyond what the 2.6 kernel requires; any recent Linux distribution can be used to run our examples. We won't detail specific requirements, because the file Documentation/Changes in your kernel sources is the best source of such information if you experience any problems.

    Pour exécuter les exemples nous introduisons au cours de la discussion, vous n’avez pas besoin de versions particulières de chaque outil au-delà de la version 2.6, n’importe quel distribution récente de Linux peut être utilisée pour exécuter nos exemples. Nous n’allons pas détailler les besoins spécifiques car le fichier <i>Documentation/Changes</i> dans les sources de votre noyau est la meilleure source d’information si vous rencontrez des problèmes.
    ______

    As far as the kernel is concerned, the even-numbered kernel versions (i.e., 2.6.x) are the stable ones that are intended for general distribution. The odd versions (such as 2.7.x), on the contrary, are development snapshots and are quite ephemeral; the latest of them represents the current status of development, but becomes obsolete in a few days or so.

    En ce qui concerne le noyau, les versions paires du noyau (par exemple, 2.6.x) sont stables, ils sont prévus pour la distribution générale. Les versions impaires (par exemple, 2.7.x), au contraire, sont en développement et sont tout à fait éphémères. La dernière d’entre elles représente l’état actuel du développement, mais deviendra obsolète dans quelques jours à peu près.
    ______


    This book covers Version 2.6 of the kernel. Our focus has been to show all the features available to device driver writers in 2.6.10, the current version at the time we are writing. This edition of the book does not cover prior versions of the kernel. For those of you who are interested, the second edition covered Versions 2.0 through 2.4 in detail. That edition is still available online at <link href="http://lwn.net/Kernel/LDD2/">http://lwn.net/Kernel/LDD2/</link>.

    Ce livre couvre la version 2.6 du noyau. Notre objectif a été de montrer toutes les nouvelles fonctionnalités disponibles aux programmeurs de pilotes de périphériques dans la version 2.6.10, la version actuelle à l’heure ou nous écrivons. Cette édition du livre ne couvre pas les versions antérieures du noyau. Pour ceux d’entre vous qui sont intéressés, la seconde édition montre le noyau 2.4 en détails. Cette édition est encore disponible en ligne à l’adresse <link href="http://lwn.net/Kernel/LDD2/">http://lwn.net/Kernel/LDD2/</link>.
    ______


    Kernel programmers should be aware that the development process changed with 2.6. The 2.6 series is now accepting changes that previously would have been considered too large for a "stable" kernel. Among other things, that means that internal kernel programming interfaces can change, thus potentially obsoleting parts of this book; for this reason, the sample code accompanying the text is known to work with 2.6.10, but some modules don't compile under earlier versions. Programmers wanting to keep up with kernel programming changes are encouraged to join the mailing lists and to make use of the web sites listed in the bibliography. There is also a web page maintained at <link href="http://lwn.net/Articles/2.6-kernel-api/">http://lwn.net/Articles/2.6-kernel-api/</link>, which contains information about API changes that have happened since this book was published.

    Les programmeurs du noyau devraient se rendre compte que le procédé de développement à changer avec la version 2.6. Les séries 2.6 acceptent maintenant les changements qui précédemment auraient été considérées comme trop grand pour un noyau « stable ». Entre autres, cela signifie que l’interface de développement interne au noyau peut changer, ceci rendant potentiellement obsolète certaines parties de ce livre. Pour cette raison, le code exemple accompagnant le texte est connu pour fonctionner avec la version 2.6.10, mais quelques modules ne compilent pas sur des versions précédentes. Les programmeurs voulant suivre les modifications de la programmation du noyau sont encouragés à joindre les mailing lists et utiliser les sites web listés dans la bibliographie. Il y a aussi une page web maintenue à l’adresse <link href="http://lwn.net/Articles/2.6-kernel-api/">http://lwn.net/Articles/2.6-kernel-api/</link> qui contient les informations à propos des changements de l’API qui sont produits depuis que ce livre a été édité.
    ______

    This text doesn't talk specifically about odd-numbered kernel versions. General users never have a reason to run development kernels. Developers experimenting with new features, however, want to be running the latest development release. They usually keep upgrading to the most recent version to pick up bug fixes and new implementations of features. Note, however, that there's no guarantee on experimental kernels,(Note that there's no guarantee on even-numbered kernels as well, unless you rely on a commercial provider that grants its own warranty.) and nobody helps you if you have problems due to a bug in a noncurrent odd-numbered kernel. Those who run odd-numbered versions of the kernel are usually skilled enough to dig in the code without the need for a textbook, which is another reason why we don't talk about development kernels here.
    Ce texte ne parle pas particulièrement des versions impaires du noyau. Les simples utilisateurs n’ont jamais de raison de tourner sur une version en développement. Les développeurs expérimentant les nouvelles caractéristiques, par contre, veulent tourner sur la dernière version en développement. Ils continuent habituellement à améliorer la version la plus récente pour corriger les bugs et les nouvelles implémentations de caractéristiques. Notez, par contre, qu’il n’y a aucune garantie sur les noyaux expérimentaux (notez qu’il n’y a pas non plus de garantie sur les versions «stables», à moins que vous comptiez sur un fournisseur commercial qui accorde sa propre garantie), et que personne ne vous aide si vous avez des problèmes dus à un bug dans noyau en cours de développement. Ceux qui exécutent une version impaire du noyau sont habituellement assez qualifiés pour plonger dans le code sans avoir besoin de livre, ce qui est une autre raison pour laquelle nous ne parlons pas des noyaux de développement ici.
    ______

    Another feature of Linux is that it is a platform-independent operating system, not just "a Unix clone for PC clones" anymore: it currently supports some 20 architectures. This book is platform independent as far as possible, and all the code samples have been tested on at least the x86 and x86-64 platforms. Because the code has been tested on both 32-bit and 64-bit processors, it should compile and run on all other platforms. As you might expect, the code samples that rely on particular hardware don't work on all the supported platforms, but this is always stated in the source code.
    Une autre caractéristique de Linux est qu’il est indépendant de la plate-forme indépendante du système d’exploitation, non plus juste «un clone Unix pour des clones PC»: il supporte actuellement quelques 20 architectures. Ce livre est indépendant de la plate-forme loin que possible et tous les exemples de codes ont été testés sur les plates-formes x86 et x86-64 au minimum. Car le code a été testé sur les processeurs 32 et 64 bits, il devrait compiler et tourner sur toutes les plates-formes. Comme vous pourriez le prévoir, les exemples de codes qui se fondent sur un périphérique spécifique ne fonctionnent pas sur toutes les plates-formes supportées, mais ceci est toujours énoncé dans le code source.
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut
    License terms

    Linux is licensed under Version 2 of the GNU General Public License (GPL), a document devised for the GNU project by the Free Software Foundation. The GPL allows anybody to redistribute, and even sell, a product covered by the GPL, as long as the recipient has access to the source and is able to exercise the same rights. Additionally, any software product derived from a product covered by the GPL must, if it is redistributed at all, be released under the GPL.
    Termes de licence

    Linux est sous licence GNU General Public License (GPL) dans sa version 2, un document conçu pour le projet GNU de la Free Software Foundation. La GPL autorise n'importe qui à redistribuer, et même vendre, un produit publié sous GPL du moment que le destinataire a accès aux sources et est capable de bénéficier des mêmes droits. De plus, n'importe quel logiciel publié sous GPL doit, s'il est distribué, être sous licence GPL.
    -------------------------------

    The main goal of such a license is to allow the growth of knowledge by permitting everybody to modify programs at will; at the same time, people selling software to the public can still do their job. Despite this simple objective, there's a never-ending discussion about the GPL and its use. If you want to read the license, you can find it in several places in your system, including the top directory of your kernel source tree in the COPYING file.
    Le principal but de cette licence est d'autoriser le développement des connaissances en permettant à tout le monde de modifier les programmes comme bon leur semble; dans le même temps, les gens vendant des logiciels au public peuvent continuer à faire leur travail. Malgré cet objectif simple, il existe une discussion sans fin à propos de la GPL et son utilisation. Si vous voulez lire la licence, vous pouvez la trouver à différents endroits dans votre système, y compris dans le répertoire de base contenant l'arborescence des sources du noyau dans le fichier COPYING.
    -------------------------------

    Vendors often ask whether they can distribute kernel modules in binary form only. The answer to that question has been deliberately left ambiguous. Distribution of binary modules - as long as they adhere to the published kernel interface - has been tolerated so far. But the copyrights on the kernel are held by many developers, and not all of them agree that kernel modules are not derived products. If you or your employer wish to distribute kernel modules under a nonfree license, you really need to discuss the situation with your legal counsel. Please note also that the kernel developers have no qualms against breaking binary modules between kernel releases, even in the middle of a stable kernel series. If it is at all possible, both you and your users are better off if you release your module as free software.
    Les fournisseurs demande souvent s'ils peuvent distribuer des modules du noyau sous forme binaire seulement. La réponse à cette question a été délibérémment laissée ambiguë. La distribution de modules binaires - dès qu'ils adhèrent à l'interface du noyau - sont tolérés depuis longtemps. Mais les droits de copies du noyau sont maintenus par beaucoup de développeurs, et tous n'acceptent pas que les modules ne soient pas des produits dérivés. Si vous ou votre employeur veut distribuer des modules du noyau sous une licence non libre, vous aurez vraiment besoin avec votre service juridique. Veuillez également prendre note que les développeurs du noyau n'ont aucun scrupule à casser les modules binaires entre les publications du noyau, même en plein milieu d'une série stable de noyaux. Si c'est possible, vos utilisateurs et vous même préféreront que vous publiez votre module comme du code libre.
    -------------------------------

    If you want your code to go into the mainline kernel, or if your code requires patches to the kernel, you must use a GPL-compatible license as soon as you release the code. Although personal use of your changes doesn't force the GPL on you, if you distribute your code, you must include the source code in the distribution-people acquiring your package must be allowed to rebuild the binary at will.
    Si vous voulez que votre code soit intégré officiellement dans le noyau, ou si votre code requiert de patcher le noyau, vous devez utiliser une licence compatible avec la GPL dès que vous publierez votre code. Quoique l'utilisation personnelle de vos changements ne vous force pas à la licence GPL, si vous fournissez le code, vous devez inclure le code source dans sa distribution - les gens qui récupèrent votre paquet doivent pouvoir reconstruire le fichier binaire à volonté.
    -------------------------------

    As far as this book is concerned, most of the code is freely redistributable, either in source or binary form, and neither we nor O'Reilly retain any right on any derived works. All the programs are available at <link href="ftp://ftp.ora.com/pub/examples/linux/drivers/">ftp://ftp.ora.com/pub/examples/linux/drivers/</link>, and the exact license terms are stated in the LICENSE file in the same directory.
    Puisque ce livre est concerné, la plupart du code est redistribuable gratuitement, aussi bien sous forme de sources que sous forme binaire, et ni nous ni O'Reilly se réservent de droits sur tous les travaux dérivés. Tous les programmes sont disponibles à <link href="ftp://ftp.ora.com/pub/examples/linux/drivers/">ftp://ftp.ora.com/pub/examples/linux/drivers/</link>, et les termes exacts de licence sont situés dans le fichier LICENSE du même répertoire.

  5. #5
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut
    attention à ceux qui ont téléchargé le xml ! il y a une petite erreur dedans. veuillez récupérer la nouvelle version dans le premier post de la discussion


  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 8 870
    Points
    8 870
    Par défaut
    Michaël

    Voici la fin... Houleuse ...

    __________________________________________________
    Joining the Kernel Development Community

    As you begin writing modules for the Linux kernel, you become part of a larger community of developers. Within that community, you can find not only people engaged in similar work, but also a group of highly committed engineers working toward making Linux a better system. These people can be a source of help, ideas, and critical review as well-they will be the first people you will likely turn to when you are looking for testers for a new driver.
    Joignez la communauté de développement du noyau
    Comme vous commencez à écrire des modules pour le noyau Linux, vous ferez partie d'une plus grande communauté de développeurs. Dans cette communauté, vous pouvez trouver non seulement des personnes engagées dans un travail semblable, mais aussi un groupe d'ingénieurs fortement engagés travaillant pour faire de Linux un système meilleur. Ces personnes peuvent être une source d'aide, d’idées et de revue critique. Ils seront les premiers vers qui vous vous tournerez quand vous chercherez des testeurs pour un nouveau pilote.

    __________________________________________________


    The central gathering point for Linux kernel developers is the linux-kernel mailing list. All major kernel developers, from Linus Torvalds on down, subscribe to this list. Please note that the list is not for the faint of heart: traffic as of this writing can run up to 200 messages per day or more. Nonetheless, following this list is essential for those who are interested in kernel development; it also can be a top-quality resource for those in need of kernel development help.


    L’assemblée centrale de développeurs Linux est la mailing-list <i>linux-kernel</i>. Tous les développeurs en chef, de Linus Torvalds et inférieur, ont souscrit à cette liste. Notez s'il vous plaît que la liste n'est pas là pour les peines de cœur: le trafic de cette liste peut être de 200 messages par jour, voire plus. Néanmoins, suivre cette liste est essentielle pour ceux qui sont intéressés dans le développement du noyau. Elle peut donc être une ressource de première qualité pour ceux qui ceux qui aident au développement du noyau.

    __________________________________________________


    To join the linux-kernel list, follow the instructions found in the linux-kernel mailing list FAQ : <link href="http://www.tux.org/lkml">http://www.tux.org/lkml</link>. Read the rest of the FAQ while you are at it; there is a great deal of useful information there. Linux kernel developers are busy people, and they are much more inclined to help people who have clearly done their homework first.

    Pour joindre cette liste, suivez les instructions trouvées sur la FAQ de cette mailing-list: http://www.tux.org/lkml. Lisez le reste de la FAQ pendant que vous y êtes. Il y a un grand nombre d’informations ici. Les développeurs du noyau Linux sont des personnes occupées, et elles sont plus enclines des personnes qui ont clairement fait leurs devoirs personnels en premier.

    __________________________________________________


    Overview of the Book

    From here on, we enter the world of kernel programming. Chapter 2 introduces modularization, explaining the secrets of the art and showing the code for running modules. Chapter 3 talks about char drivers and shows the complete code for a memory-based device driver that can be read and written for fun. Using memory as the hardware base for the device allows anyone to run the sample code without the need to acquire special hardware.

    Vue d’ensemble du livre

    À partir d’ici, on entre dans le monde de la programmation du noyau. Le chapitre 2 introduit la modularisation, expliquant les secrets de l’art et montrant le code pour faire tourner les modules. Le chapitre 3 traite des pilotes de caractères et montre le code complet pour les pilotes périphériques basés sur la mémoire qui peut être lu et écrit pour le fun. Employer la mémoire pour le matériel de base pour le périphérique permet à n’importe qui d’exécuter les codes exemples sans avoir besoin d’acquérir du matériel spécial.

    __________________________________________________


    Debugging techniques are vital tools for the programmer and are introduced in Chapter 4. Equally important for those who would hack on contemporary kernels is the management of concurrency and race conditions. Chapter 5 concerns itself with the problems posed by concurrent access to resources and introduces the Linux mechanisms for controlling concurrency.

    Les techniques de débogage sont des outils vitaux pour le programmeur et est introduit dans le chapitre 4. Egalement important pour ceux qui veulent pirater les noyaux contemporains est la gestion de la concurrence et de courses. Les soucis du chapitre 5 lui-même avec les problèmes posés par l'accès simultané aux ressources et présentent les mécanismes Linux pour contrôler la concurrence.

    __________________________________________________


    With debugging and concurrency management skills in place, we move to advanced features of char drivers, such as blocking operations, the use of select, and the important ioctl call; these topics are the subject of Chapter 6.

    Avec le débogage et les compétences de gestion de concurrence en place, nous nous déplaçons aux fonctions avancées des pilotes caractères, comme le blocage d'opérations, l'utilisation de <i>select</i>, et l'appel important d'<i>ioctl</i>. Ces parties sont le sujet du Chapitre 6.

    __________________________________________________


    Before dealing with hardware management, we dissect a few more of the kernel's software interfaces: Chapter 7 shows how time is managed in the kernel, and Chapter 8 explains memory allocation.

    Avant de traiter avec la gestion du matériel, nous disséquons encore plus des interfaces logicielles du noyau: le chapitre 7 montre comment le temps est géré dans le noyau et le chapitre 8 explique l'assignation de la mémoire.

    __________________________________________________


    Next we focus on hardware. Chapter 9 describes the management of I/O ports and memory buffers that live on the device; after that comes interrupt handling, in Chapter 10. Unfortunately, not everyone is able to run the sample code for these chapters, because some hardware support is actually needed to test the software interface interrupts. We've tried our best to keep required hardware support to a minimum, but you still need some simple hardware, such as a standard parallel port, to work with the sample code for these chapters.

    Ensuite nous nous penchons sur le matériel. Le chapitre 9 décrit la gestion des ports d’entrées/sorties et les tampons mémoire qui sont sur le périphérique. Après ça vient la manipulation des interruptions dans le chapitre 10. Malheureusement, tout le monde n’est pas capable d’exécuter les exemples de code pour ce chapitre, car un peu de support matériel est en réalité encore nécessaire pour tester l’interface des interruptions logicielles. Nous avons fait notre possible pour garder le support de matériel nécessaire au minimum, mais vous avez encore besoin d’un peu de matériel basique, comme un port parallèle standard pour travailler avec les exemples de codes pour ces chapitres.

    __________________________________________________


    Chapter 11 covers the use of data types in the kernel and the writing of portable code.

    Le chapitre 11 couvre l’utilisation des types de données et l’écriture de code portable.

    __________________________________________________


    The second half of the book is dedicated to more advanced topics. We start by getting deeper into the hardware and, in particular, the functioning of specific peripheral buses. Chapter 12 covers the details of writing drivers for PCI devices, and Chapter 13 examines the API for working with USB devices.

    La seconde moitié de ce livre est dédiée à des sujets plus avancés. Nous commençons par entrer plus profondément dans le matériel et, plus particulièrement le fonctionnement de certains bus périphériques. Le chapitre 12 couvre en détail l’écriture de pilotes de périphériques pour les périphériques PCI, et le chapitre 13 décortique l’API pour travailler avec les périphériques USB.

    __________________________________________________

    With an understanding of peripheral buses in place, we can take a detailed look at the Linux device model, which is the abstraction layer used by the kernel to describe the hardware and software resources it is managing. Chapter 14 is a bottom-up look at the device model infrastructure, starting with the kobject type and working up from there. It covers the integration of the device model with real hardware; it then uses that knowledge to cover topics like hot-pluggable devices and power management.


    Avec une compréhension des bus périphériques, nous pouvons faire une vue détaillée du modèle de périphériques Linux, lequel est la couche d’abstraction utilisée par le noyau pour décrire la gestion des ressources matérielles et logicielles. Le chapitre 14 est une vue d'ensemble de l'infrastructure du modèle de périphérique. Il couvre l’intégralité des modèles de périphériques avec le vrai matériel. Il utilise alors cette connaissance pour couvrir le sujet des périphériques connectables à chaud et la gestion de l’alimentation.

    __________________________________________________


    In Chapter 15, we take a diversion into Linux memory management. This chapter shows how to map kernel memory into user space (the mmap system call), map user memory into kernel space (with get_user_pages), and how to map either kind of memory into device space (to perform direct memory access [DMA] operations).
    Dans le chapitre 15, nous faisons une déviation dans la gestion de la mémoire dans Linux. Ce chapitre montre comment organiser la mémoire du noyau dans l’espace utilisateur (l’appel système <i>nmap</i>), organiser la mémoire dans l’espace du noyau (avec < i>get_user_page</i>) et comment organiser l’une ou l’autre mémoire dans l’espace périphérique (pour accomplir les opérations d’accès direct de la mémoire [DMA]).

    __________________________________________________


    Our understanding of memory will be useful for the following two chapters, which cover the other major driver classes. Chapter 16 introduces block drivers and shows how they are different from the char drivers we have worked with so far. Then Chapter 17 gets into the writing of network drivers. We finish up with a discussion of serial drivers (Chapter 18) and a bibliography.

    Vos connaissances sur la mémoire vont être utile pour suivre les deux prochains chapitres, qui couvrent les autres principales classes de pilotes. Le chapitre 16 introduit les pilotes en mode bloc et montre en quoi ils sont différents des pilotes en mode caractère avec lesquels nous avons travaillé jusqu’ici. Ensuite, le chapitre 17 rentre dans la manière d’écrire des pilotes réseau. Nous conclurons avec une discussion sur les pilotes séries (chapitre 18) et une bibliographie.








    Fin du premier chapitre
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  7. #7
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut
    Il y a quelques concepts généraux, néanmoins, qu’il vaut la peine de mentionner maintenant.
    devient
    Il y a néanmoins quelques concepts généraux qu’il vaut la peine de mentionner maintenant.
    Chaque contrôle dans le système est imposé par le code du noyau
    devient
    Chaque contrôle de sécurité dans le système est imposé par le code du noyau
    Si le noyau contient des trous de sécurité, alors tout le système tout entier en contient
    devient
    Si le noyau contient des trous de sécurité, alors tout le système en contient
    De cette manière, quand est un noyau officiel est actif
    devient
    De cette manière, quand un noyau officiel est actif
    Si possible, les programmeurs de pilotes devraient éviter de coder la police de sécurité dans leur code
    devient
    Si possible, les programmeurs de pilotes devraient éviter de coder la politique de sécurité dans leur code
    Néanmoins, il y a toujours des explications.
    devient
    Néanmoins, il y a toujours des exceptions
    rechargé le firmware sur un panneau
    devient
    recharger le firmware d'une carte d'extension
    ces opérations devraient certainement restreintes aux utilisateurs privilégiés.
    devient
    ces opérations devraient certainement être restreintes aux utilisateurs privilégiés.
    Notez que le noyau Linux peut être compilé pour de telle sorte
    devient
    Notez que le noyau Linux peut être compilé de telle sorte
    Tout d’abord, notez que <i>chaque</i> progiciel utilisé
    devient
    Tout d’abord, notez que <i>chaque</i> paquet logiciel utilisé
    tous les package à remplacer par paquet

    Les créateurs de distributions Linux manient habituellement le sale problème d’assortir les paquets, et l’utilisateur qui installe une distribution préemballée n’a pas besoin de s’occuper avec les numéros de versions
    devient
    Les créateurs de distributions Linux gèrent habituellement le problème de dépendances et l'utilisateur qui installe une distribution précompilée n'ont pas besoin de s'occuper des numéros de versions
    Heureusement, presque toutes les distributions modernes supportent la mise à jour de package unique en contrôlant les dépendances interpackage. Le gestionnaire de packages de la distribution n’autorise généralement pas la mise à jour si les dépendances ne sont pas satisfaites.
    devient
    Heureusement, presque toutes les distributions modernes supportent la mise à jour de paquets unique en contrôlant les dépendances interpaquets. Le gestionnaire de paquets de la distribution n’autorise généralement pas la mise à jour si les dépendances ne sont pas satisfaites.
    Pour exécuter les exemples nous introduisons au cours de la discussion
    devient
    Pour exécuter les exemples que nous introduisons au cours de la discussion

  8. #8
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 8 870
    Points
    8 870
    Par défaut
    Je me suis permis de déplacer le post dans la bonne discussion, c'est plus pratique pour corriger

    Sinon, j'ai mis le XML à jour à une exception prête :
    l'utilisateur qui installe une distribution précompilée n'ont pas besoin
    devient :
    l'utilisateur qui installe une distribution précompilée n'a pas besoin
    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  9. #9
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut
    Les séries 2.6 acceptent maintenant les changements qui précédemment auraient été considérées comme trop grand pour un noyau « stable »
    devient
    Les séries 2.6 acceptent maintenant les changements qui précédemment auraient été considérées comme trop importants pour un noyau « stable »
    Ceux qui exécutent une version impaire du noyau sont habituellement assez qualifiés
    devient
    Ceux qui utilisent une version impaire du noyau sont habituellement assez qualifiés
    Une autre caractéristique de Linux est qu’il est indépendant de la plate-forme indépendante du système d’exploitation
    devient
    Une autre caractéristique de Linux est qu’il est indépendant de la plate-forme du système d’exploitation
    Ce livre est indépendant de la plate-forme loin que possible
    devient
    Ce livre est indépendant de la plate-forme autant que possible
    Car le code a été testé sur les processeurs 32 et 64 bits
    deivent
    Étant donné que le code a été testé sur les processeurs 32 et 64 bits
    Comme vous pourriez le prévoir
    devient
    Comme vous pourriez vous y attendre
    vous aurez vraiment besoin avec votre service juridique
    devient
    vous aurez vraiment besoin d'en discuter avec votre service juridique
    et elles sont plus enclines des personnes qui
    devient
    et elles sont plus enclines à aider des personnes qui
    Employer la mémoire pour le matériel de base pour le périphérique
    devient
    Employer la mémoire comme matériel de base pour le périphérique
    Egalement important pour ceux qui veulent pirater les noyaux contemporains est la gestion de la concurrence et de courses.
    devient
    La gestion de la concurrence et de courses sont également importantes pour ceux qui veulent modifier les noyaux contemporains.
    Les soucis du chapitre 5 lui-même avec les problèmes posés par l'accès simultané aux ressources et présentent les mécanismes Linux pour contrôler la concurrence.
    devient
    Le chapitre 5 est dédié aux problèmes posés par l'accès simultané aux ressources et présente les mécanismes Linux pour contrôler la concurrence.
    Avant de traiter avec la gestion du matériel
    devient
    Avant de traiter la gestion du matériel
    le chapitre 8 explique l'assignation de la mémoire.
    devient
    le chapitre 8 explique l'allocation de la mémoire.
    Après ça vient la manipulation des interruptions dans le chapitre 10
    devient
    Après vient la manipulation des interruptions dans le chapitre 10
    Le chapitre 11 couvre l’utilisation des types de données et l’écriture de code portable.
    devient
    Le chapitre 11 couvre l’utilisation des types de données du noyau et l’écriture de code portable.
    matériel et, plus particulièrement
    devient
    matériel et plus particulièrement
    relecture orthographique maintenant

  10. #10
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 8 870
    Points
    8 870
    Par défaut
    Corrigé et XML mis à jour

    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  11. #11
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2005
    Messages : 3 905
    Points : 4 453
    Points
    4 453
    Par défaut
    Je t'ai envoyé le mp de la correction de ton fichier xml en fr.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  12. #12
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 497
    Points : 8 201
    Points
    8 201
    Par défaut
    merci j'ai apporté les corrections

    chapitre 1 complètement fini

  13. #13
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2005
    Messages : 3 905
    Points : 4 453
    Points
    4 453
    Par défaut
    Citation Envoyé par Michaël Voir le message
    chapitre 1 complètement fini
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chapitre 3 : Char drivers partie 2
    Par Arnaud F. dans le forum Traduction LDD3
    Réponses: 4
    Dernier message: 31/08/2008, 12h29
  2. Chapitre 3 : Char drivers partie 1
    Par Arnaud F. dans le forum Traduction LDD3
    Réponses: 14
    Dernier message: 28/08/2008, 20h52
  3. Chapitre 3 : Chars drivers partie 4
    Par Arnaud F. dans le forum Traduction LDD3
    Réponses: 3
    Dernier message: 18/08/2008, 11h08
  4. Chapitre 1 : An Introduction to Device Drivers partie 2
    Par Michaël dans le forum Traduction LDD3
    Réponses: 23
    Dernier message: 21/09/2007, 20h33
  5. Chapitre 1 : An Introduction to Device Drivers partie 1
    Par Michaël dans le forum Traduction LDD3
    Réponses: 54
    Dernier message: 19/07/2007, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo