Translation

(itstool) path: abstract/para

This text documents some starting points in developing GEOM classes, and kernel modules in general. It is assumed that the reader is familiar with C userland programming.
179/1700
Context English Spanish State
_ translator-credits Sergio Carlavilla carlavilla@FreeBSD.org, 2019
Writing a GEOM Class Escribiendo una clase GEOM

<email>ivoras@FreeBSD.org</email>

<email>ivoras@FreeBSD.org</email>
<personname> <firstname>Ivan</firstname> <surname>Voras</surname> </personname> <affiliation> <_:address-1/> </affiliation> <personname> <firstname>Ivan</firstname> <surname>Voras</surname> </personname> <affiliation> <_:address-1/> </affiliation>
FreeBSD is a registered trademark of the FreeBSD Foundation. FreeBSD is a registered trademark of the FreeBSD Foundation.
Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the <quote>™</quote> or the <quote>®</quote> symbol. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the <quote>™</quote> or the <quote>®</quote> symbol.
$FreeBSD: head/en_US.ISO8859-1/articles/geom-class/article.xml 54291 2020-06-23 13:48:26Z emaste $ $FreeBSD: head/en_US.ISO8859-1/articles/geom-class/article.xml 54291 2020-06-23 13:48:26Z emaste $
This text documents some starting points in developing GEOM classes, and kernel modules in general. It is assumed that the reader is familiar with C userland programming. Este texto documenta algunos puntos de partida en el desarrollo de clases GEOM y módulos del kernel en general. Se asume que el lector está familiarizado con la programación en C.
Introduction Introducción
Documentation Documentación
Documentation on kernel programming is scarce — it is one of few areas where there is nearly nothing in the way of friendly tutorials, and the phrase <quote>use the source!</quote> really holds true. However, there are some bits and pieces (some of them seriously outdated) floating around that should be studied before beginning to code: La documentación sobre la programación del kernel es escasa — es una de las pocas áreas donde casi no hay tutoriales amigables, y la frase, <quote>¡usa el código fuente!</quote>, realmente es cierta. Sin embargo, hay algunos trozos (algunos de ellos muy desactualizados) flotando alrededor que deben estudiarse antes de comenzar a programar:
The <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/developers-handbook/index.html">FreeBSD Developer's Handbook</link> — part of the documentation project, it does not contain anything specific to kernel programming, but rather some general useful information. El <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/developers-handbook/index.html">Manual del desarrollador de FreeBSD</link> — parte del proyecto de documentación, no contiene nada específico sobre la programación del kernel, sino más bien información general de utilidad.
The <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/arch-handbook/index.html">FreeBSD Architecture Handbook</link> — also from the documentation project, contains descriptions of several low-level facilities and procedures. The most important chapter is 13, <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/arch-handbook/driverbasics.html">Writing FreeBSD device drivers</link>. El <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/arch-handbook/index.html">Manual de arquitectura de FreeBSD</link> — también del proyecto de documentación, contiene descripciones de varios recursos y procedimientos de bajo nivel. El capítulo más importante es el 13, <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/arch-handbook/driverbasics.html">Escribir controladores de dispositivos en FreeBSD</link>.
The Blueprints section of <link xlink:href="http://www.freebsddiary.org">FreeBSD Diary</link> web site — contains several interesting articles on kernel facilities. La sección Blueprints del sitio web <link xlink:href="http://www.freebsddiary.org">FreeBSD Diary</link> — contiene varios artículos interesantes sobre recursos del kernel.
The man pages in section 9 — for important documentation on kernel functions. Las páginas man en la sección 9 — para documentación importante sobre las funciones del kernel.
The <citerefentry><refentrytitle>geom</refentrytitle><manvolnum>4</manvolnum></citerefentry> man page and <link xlink:href="http://phk.freebsd.dk/pubs/">PHK's GEOM slides</link> — for general introduction of the GEOM subsystem. La página man de <citerefentry><refentrytitle>geom</refentrytitle><manvolnum>4</manvolnum></citerefentry> y <link xlink:href="http://phk.freebsd.dk/pubs/">las diapositivas GEOM de PHK</link> — para la introducción general del subsistema GEOM.
Man pages <citerefentry><refentrytitle>g_bio</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_event</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_data</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_geom</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_provider</refentrytitle><manvolnum>9</manvolnum></citerefentry> <citerefentry><refentrytitle>g_consumer</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_access</refentrytitle><manvolnum>9</manvolnum></citerefentry> &amp; others linked from those, for documentation on specific functionalities. Las páginas man de <citerefentry><refentrytitle>g_bio</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_event</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_data</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_geom</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_provider</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_consumer</refentrytitle><manvolnum>9</manvolnum></citerefentry>, <citerefentry><refentrytitle>g_access</refentrytitle><manvolnum>9</manvolnum></citerefentry> y otras vinculadas a partir de ellas, para documentación sobre funcionalidades específicas.
The <citerefentry><refentrytitle>style</refentrytitle><manvolnum>9</manvolnum></citerefentry> man page — for documentation on the coding-style conventions which must be followed for any code which is to be committed to the FreeBSD tree. La página man de <citerefentry><refentrytitle>style</refentrytitle><manvolnum>9</manvolnum></citerefentry> — para la documentación sobre las convenciones de estilo de codificación que se deben seguir para cualquier código con el que se haga commit en el árbol de FreeBSD.
Preliminaries Preliminares
The best way to do kernel development is to have (at least) two separate computers. One of these would contain the development environment and sources, and the other would be used to test the newly written code by network-booting and network-mounting filesystems from the first one. This way if the new code contains bugs and crashes the machine, it will not mess up the sources (and other <quote>live</quote> data). The second system does not even require a proper display. Instead, it could be connected with a serial cable or KVM to the first one. La mejor forma de hacer el desarrollo del kernel es tener (al menos) dos ordenadores separados. Uno de ellos debería de tener el entorno de desarrollo y el código fuente, y el otro sería usado para probar el código recién escrito, inicializando a través de la red y montando su sistema de archivos desde el primer ordenador. De esta forma, si el nuevo código contiene errores y bloquea el ordenador, esto no dañará el código fuente (ni ningún otro dato que este ejecutándose en <quote>caliente</quote>). El segundo sistema ni siquiera necesita un monitor adecuado. En su lugar, podría estar conectado con un cable serie o KVM al primer ordenador.
But, since not everybody has two or more computers handy, there are a few things that can be done to prepare an otherwise <quote>live</quote> system for developing kernel code. This setup is also applicable for developing in a <link xlink:href="http://www.vmware.com/">VMWare</link> or <link xlink:href="http://www.qemu.org/">QEmu</link> virtual machine (the next best thing after a dedicated development machine). Pero, dado que no todo el mundo tiene dos o más ordenadores a mano, hay algunas cosas que se pueden hacer para preparar un sistema <quote>live</quote> para desarrollar el código del kernel. Esta configuración también es aplicable para el desarrollo en una máquina virtual <link xlink:href="http://www.vmware.com/">VMWare</link> o <link xlink:href="http://www.qemu.org/">QEMU</link> (la mejor opción después de un ordenador de desarrollo dedicado).
Modifying a System for Development Modificar un sistema para el desarrollo
For any kernel programming a kernel with <option>INVARIANTS</option> enabled is a must-have. So enter these in your kernel configuration file: Para cualquier programación del kernel, es obligatoria tener activada la opción <option>INVARIANTS</option>. Así que añada estas líneas a su archivo de configuración del kernel:

Loading…

User avatar None

New source string

FreeBSD Doc / articles_geom-classSpanish

New source string a year ago
Browse all component changes

Glossary

English Spanish
No related strings found in the glossary.

Source information

Source string comment

(itstool) path: abstract/para

Source string location
article.translate.xml:41
String age
a year ago
Source string age
a year ago
Translation file
articles/es_ES/geom-class.po, string 9