You are on page 1of 263

Manual de FreeBSD

Proyecto de Documentación de FreeBSD

Manual de FreeBSD
por Proyecto de Documentación de FreeBSD
Publicado Febrero 1999
Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 por The FreeBSD Documentation Project

Bienvenido a FreeBSD!. Este manual cubre la instalación y uso diario de FreeBSD 4.6.2-RELEASE. Este manual
está en constante evolución y es el resultado del trabajo de muchas personas. Algunas secciones no están completas y
otras necesitan ser actualizadas. Si estás interesado en colaborar en este proyecto, envía un mail a FreeBSD
documentation project mailing list <freebsd-doc@FreeBSD.org>. La última versión de este documento está
siempre disponible en el servidor World Wide Web de FreeBSD (../../../../index.html). También está disponible en
diferentes formatos y opciones de compresión en el servidor FTP de FreeBSD
(ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/) o en los numerosos mirrors. Si se prefiere disponer de una copia en papel
de este manual, se puede adquirir en FreeBSD Mall (http://www.freebsdmall.com/). También es posible realizar
búsquedas (../../../../search/index.html) en este manual.

Redistribution and use in source (SGML DocBook) and ’compiled’ forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions
and the following disclaimer as the first lines of this file unmodified.
2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other
formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

Importante: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Tabla de contenidos
I. Empezamos ............................................................................................................................................................. vii
1. Introducción ......................................................................................................................................................1
1.1. Sinopsis.................................................................................................................................................1
1.2. ¡Bienvenido a FreeBSD!.......................................................................................................................1
1.3. Acerca del proyecto FreeBSD ..............................................................................................................4
2. Instalando FreeBSD ..........................................................................................................................................9
2.1. Configuraciones soportadas ................................................................................................................11
2.2. Preparándonos para la instalación ......................................................................................................15
2.3. Instalando FreeBSD............................................................................................................................19
2.4. Preguntas y Respuestas para usuarios de MS-DOS............................................................................20
3. Conceptos Básicos de Unix.............................................................................................................................22
3.1. Sinópsis...............................................................................................................................................22
3.2. Permisos..............................................................................................................................................22
3.3. Estructura de directorios .....................................................................................................................23
3.4. Intérpretes de órdenes (Shells)............................................................................................................23
3.5. Editores de texto .................................................................................................................................25
3.6. Para más información .........................................................................................................................26
4. Instalando Aplicaciones: Paquetes y Ports......................................................................................................28
4.1. Sinópsis...............................................................................................................................................28
4.2. Generales sobre la Instalación de Software ........................................................................................28
4.3. Localizando su Aplicación .................................................................................................................30
4.4. Usando el Sistema de Paquetes...........................................................................................................30
4.5. Usando la Colección de Ports .............................................................................................................32
4.6. Actividades Post-Instalación...............................................................................................................38
4.7. Resolución de Problemas....................................................................................................................38
5. El sistema X Window ......................................................................................................................................45
II. Administración del sistema. ..................................................................................................................................46
6. El Proceso de Arranque en FreeBSD ..............................................................................................................47
6.1. Sinópsis...............................................................................................................................................47
6.2. El Problema que representa Arrancar el Sistema ...............................................................................47
6.3. El RMA, y las Etapas de Arranque Uno, Dos y Tres .........................................................................48
6.4. Interacción con el Kernel Durante el Arranque ..................................................................................52
6.5. Init: Inicialización del Proceso de Control .........................................................................................53
6.6. Secuencia de Apagado........................................................................................................................54
7. Usuarios y administración básica de cuentas ..................................................................................................55
7.1. Sinopsis...............................................................................................................................................55
7.2. Introducción........................................................................................................................................55
7.3. La cuenta superusuario .......................................................................................................................57
7.4. Cuentas de sistema..............................................................................................................................57
7.5. Cuentas de usuario..............................................................................................................................57
7.6. Modificación de cuentas .....................................................................................................................57
7.7. Limitar a los usuarios..........................................................................................................................62
7.8. Personalizar a los usuarios..................................................................................................................65
7.9. Grupos.................................................................................................................................................65
8. Configurando el Kernel de FreeBSD...............................................................................................................67

iii

8.1. Sinópsis...............................................................................................................................................67
8.2. ¿Porqué Construir un Kernel Propio?.................................................................................................67
8.3. Compilación e Instalación de un Kernel Personalizado .....................................................................68
8.4. El Fichero de Configuración...............................................................................................................70
8.5. Creando Nodos para los Dispositivos .................................................................................................82
8.6. En Caso de que Algo No Funcione.....................................................................................................83
9. Seguridad.........................................................................................................................................................85
10. Imprimiendo ..................................................................................................................................................86
10.1. Sinópsis.............................................................................................................................................86
10.2. Introducción......................................................................................................................................86
10.3. Configuración Básica........................................................................................................................87
10.4. Configuración Avanzada de una Impresora ....................................................................................101
10.5. Uso de las Impresoras.....................................................................................................................130
10.6. Alternativas al Sistema de Impresión Estándar ..............................................................................138
10.7. Resolución de Problemas................................................................................................................138
11. Discos ..........................................................................................................................................................143
11.1. Utilizando Sysinstall.......................................................................................................................143
11.2. Usando la línea de comandos .........................................................................................................144
11.3. * Discos no tradicionales ................................................................................................................144
12. Localizacion ................................................................................................................................................146
13. Sonido..........................................................................................................................................................147
13.1. Sinópsis...........................................................................................................................................147
13.2. Identificar el Dispositivo Correcto..................................................................................................147
13.3. Recompilar el Kernel ......................................................................................................................149
13.4. Creando y Probando Nodos de Dispositivoss.................................................................................149
13.5. Problemas Comunes .......................................................................................................................150
13.6. Audio MP3......................................................................................................................................150
14. Comunicaciones Serie .................................................................................................................................154
15. PPP y SLIP ..................................................................................................................................................155
15.1. Sinópsis...........................................................................................................................................155
15.2. Utilizando User PPP .......................................................................................................................155
15.3. Usando Kernel PPP.........................................................................................................................170
15.4. Usando PPP sobre Ethernet (PPPoE).............................................................................................177
15.5. Usando PPP sobre ATM (PPPoA) .................................................................................................179
15.6. Usando SLIP...................................................................................................................................182
16. Networking Avanzado .................................................................................................................................193
17. Correo Electrónico ......................................................................................................................................194
18. Lo último de lo último.................................................................................................................................195
18.1. Sinopsis...........................................................................................................................................195
18.2. FreeBSD-CURRENT vs. FreeBSD-STABLE................................................................................195
18.3. Sincronizando tu código fuente ......................................................................................................199
18.4. Usando make world .....................................................................................................................200
19. Emulacion Linux .........................................................................................................................................213

iv

III. Apéndices ............................................................................................................................................................214
20. Obteniendo FreeBSD ..................................................................................................................................215
20.1. Servidores FTP ...............................................................................................................................215
21. Bibliografía..................................................................................................................................................216
21.1. Libros y revistas específicas sobre FreeBSD..................................................................................216
21.2. Guías de usuario .............................................................................................................................216
21.3. Guías de administrador ...................................................................................................................217
21.4. Guías de programadores .................................................................................................................217
21.5. El sistema operativo por dentro ......................................................................................................218
21.6. Referencia de seguridad..................................................................................................................218
21.7. Referencia de hardware ..................................................................................................................218
21.8. Historia de UNIX............................................................................................................................219
21.9. Diarios y revistas ............................................................................................................................219
A. Recursos en Internet .....................................................................................................................................221
A.1. Listas de Correo ...............................................................................................................................221
A.2. Grupos de Noticias de Usenet..........................................................................................................232
A.3. Servidores WWW ............................................................................................................................233
A.4. Direcciones de Correo Electrónico ..................................................................................................235
A.5. Cuentas Shell ...................................................................................................................................235
B. PGP Keys......................................................................................................................................................236
B.1. Officers.............................................................................................................................................236
B.2. Core Team Members ........................................................................................................................236
B.3. Developers........................................................................................................................................237
Colophon....................................................................................................................................................................256

v

.............................................................................65 7-8..........53 7-1............ Cambio de la contraseña de otro usuario como superusuario ......................................................... Añadir a alguien a un grupo usando pw(8)..............................................49 6-3........... Descargando un Paquete e Instalandolo Localmente .................................................................................................................................30 6-1...................................................................................................... Configuración de adduser .......................................................60 7-3.....................................................................65 vi .....................................58 7-2...............................60 7-4................... Pantalla de boot2 ..................... chpass interactivo ejecutado por el superusuario................................................................. Añadir un grupo usando pw(8)......Tabla de ejemplos 4-1....................65 7-9..........................................................61 7-6............................................................................... Una Consola Insegura en /etc/ttys ........................................ Eliminación interactiva de cuenta con rmuser..... chpass interactivo ejecutado por un usuario normal.....................................................................61 7-7...................... Pantalla boot0............................................48 6-2......................................................................................61 7-5.................................................................................................................................................................................................................................................................. Cambio de tu contraseña.............................. Determinar pertenencia a grupos con id(1) ....................................................

Estos capítulos: • Realizan una introducción a FreeBSD. el sistema de ventanas de Unix y detallan como configurar un entorno de escritorio más productivo. • Explican información básica sobre Unix. • Guían a través de una instalación de FreeBSD. • Introducen a las X. • Explican como instalar la gran cantidad de software de terceros disponible para FreeBSD. Empezamos Esta parte del manual de FreeBSD es para usuarios y administradores nuevos en FreeBSD. Se ha intentado minimizar el número de referencias a otras secciones de este documento para evitar el salto entre páginas y facilitar la lectura continuada. I. .

proporcionando importantes funciones como NFS (acceso a ficheros remotos) y 1 . 1. • Los fundamentos del modelo de desarrollo de código abierto de FreeBSD. y NIS. y que pueden establecerse límites sobre recursos concretos para usuarios o grupos de usuarios. 1. modelo de desarrollo. Se está trabajando también en versiones para otras arquitecturas. incluso bajo la mayor de las cargas. por ejemplo. Esto quiere decir que tu máquina FreeBSD puede interoperar fácilmente con otros sistemas y hacer de servidor en una empresa. Algunas de ellas son: • Multitarea expropiativa con prioridades dinámicamente ajustadas para asegurar que distintas aplicaciones y usuarios compartan el ordenador de un modo equitativo.. ¿Qué puede hacer FreeBSD? FreeBSD tiene muchas características notables. and parts rewritten by Jim Mock.2. ¡Bienvenido a FreeBSD! FreeBSD es un sistema operativo basado en 4. PPP. Esto significa. protegiendo de este modo al sistema de posibles abusos.. DHCP. que los periféricos del sistema como impresoras y dispositivos de cinta son compartidos adecuadamente por varios usuarios del sistema o la red. hardware. como su historia. • Y por supuesto: de dónde procede el nombre "FreeBSD". mírate el artículo Contribuir a FreeBSD (. billetes sin marcar). Después de leer este capítulo sabrás: • Qué relación guarda FreeBSD con otros sistemas operativos.1. Introducción Restructured. o sobre la distribución actual. Para una breve perspectiva general de FreeBSD consulta la siguiente sección./articles/contributing/index. 1. NFS. objetivos. • Servicios multiusuario que permiten a mucha gente usar un sistema FreeBSD simultáneamente para distintas cosas.4BSD-Lite para la arquitectura Intel (x86) y sistemas basados en DEC Alpha. • La historia del Proyecto FreeBSD. Puedes también leer sobre la historia de FreeBSD./. con soporte para estándares industriales como SLIP. reorganized. Si estás interesado en contribuir de algún modo al proyecto (código.Capítulo 1.html).1. Sinopsis ¡Gracias por tu interés en FreeBSD! El siguiente capítulo trata varios temas relativos al Proyecto FreeBSD. • Conexión de redes TCP/IP muy robusta. etc. • Los objetivos del Proyecto FreeBSD.2.

• X Window System (X11R6). • La protección de memoria garantiza que las aplicaciones (o los usuarios) no pueden interferirse. frecuentemente disponibles por poco o ningún coste. cuyo número aumenta cada día. y de maneras generalmente no posibles con los sistemas operativos de la mayoría de los fabricantes comerciales. y Perl. C++. • FreeBSD es un sistema operativo de 32-bits (de 64-bits sobre Alpha) y fue diseñado como tal desde el comienzo. ¿Para qué ligarte a una solución propietaria a la merced de un fabricante cuando puedes tener un verdadero sistema abierto? • Extensa documentación en línea. Un error fatal en una aplicación no afecta al resto. Mientras que muchos de los gigantes comerciales se esfuerzan en dotar a los sistemas operativos para PCs de esas características. FTP. el sistema puede ser también personalizado en un grado nunca visto para aplicaciones o proyectos especiales. BSDI y NetBSD. FreeBSD tiene un código fuente compatible con el de los más populares sistemas Unix comerciales y por ello la mayoría de las aplicaciones tan sólo necesitan unos pocos cambios. y viene con los fuentes completos. rendimiento y fiabilidad. Muchos más lenguajes adicionales para investigación y desarrollo avanzados se encuentran también disponibles en la colección de ports y paquetes. FreeBSD también se beneficia de las literalmente miles de aplicaciones de alta calidad desarrolladas en centros de investigación y universidades de todo el mundo. desde control de inventarios hasta corrección de azimut de antenas de satélites remotos. provee a los usuarios de una interfaz gráfica (GUI) por el coste de una tarjeta VGA y un monitor comunes. el Proyecto FreeBSD ha invertido miles de horas en ajustar el sistema para conseguir un rendimiento y una fiabilidad máximos en situaciones de carga reales. estándar de la industria. SVR4. Introducción servicios de correo electrónico. • Miles de aplicaciones listas para ser usadas se hallan disponibles en la colección de ports y paquetes. • Una colección completa de herramientas de desarrollo en C. • Disponer del código fuente del sistema entero significa contar con el mayor nivel de control posible sobre tu entorno. • ¡Y mucho más! FreeBSD está basado en la versión 4. si puede realizarse con un Unix comercial lo más seguro es que también pueda llevarse a cabo con FreeBSD. Capítulo 1. para compilar. Además del excelente trabajo del CSRG. También se dispone de aplicaciones comerciales. FreeBSD puede ofrecerlas ¡ya! Las posibles aplicaciones en las que puede usarse FreeBSD están en verdad limitadas tan sólo por tu imaginación.4BSD-Lite del Computer Systems Research Group (CSRG) de la Universidad de California en Berkeley. • El diseño de la memoria virtual con paginación bajo demanda y de la “caché unificada de VM/buffer” satisface a aplicaciones que requieren grandes cantidades de memoria de forma eficiente aun dando respuestas interactivas a otros usuarios. ¿Para qué buscar en la red si puedes encontrarlo todo aquí mismo? • Miles de aplicaciones fáciles de portar se encuentran disponibles en Internet. • Compatibilidad binaria con muchos programas nativos de Linux. Aquí damos tan sólo una muestra de aplicaciones en las que se está actualmente usando FreeBSD: 2 . Fortran. o poniendo a tu organización en Internet con WWW. Desde desarrollo de programas hasta automatización de fábricas. SCO. si alguno. servicios de enrutado y cortafuegos. • Soporte para SMP en máquinas con múltiples CPUs. y continúa la distinguida tradición de desarrollo de sistemas BSD. Dado que el código fuente de FreeBSD está disponible.

ya sea usando el libremente disponible servidor XFree86 o uno de los excelentes servidores comerciales de X Inside. • Redes: ¿Necesitas un nuevo enrutador? ¿Un servidor de nombres (DNS)? ¿Un cortafuegos para mantener a la gente fuera de tu red interna? FreeBSD puede convertir aquel 386 o 486 arrinconado en un enrutador avanzado con sofisticadas capacidades de filtrado de paquetes fácilmente. Los fuentes y binarios de FreeBSD se hallan disponibles en CDROM y por FTP anómimo. ¿Quién usa FreeBSD? Sobre FreeBSD corren algunos de los más grandes sitios web incluyendo: • Yahoo! (http://www. si así se quiere. • Desarrollo de software: El sistema base de FreeBSD viene con una completa colección de herramientas de desarrollo que incluyen el famoso compilador y depurador de C/C++ de GNU. A diferencia de las terminales X.. • Investigación: Encontrándose disponible el código fuente del sistema entero. Introducción • Servicios de Internet: La robusta conectividad TCP/IP integrada en FreeBSD hace de este sistema una plataforma ideal para servicios Internet como: • servidores FTP • Servidores web (estándares o seguros [SSL]) • Cortafuegos y pasarelas NAT (“enmascaramiento IP”). • Servidores de correo electrónico • USENET y BBSs • Y más. Con FreeBSD puedes empezar fácilmente con un económico 386 e ir actualizando tu equipo hasta un tetraprocesador Xeon con almacenamiento RAID a medida que tu proyecto crezca. etc.. diseño gráfico. consulta Capítulo 20 para más información sobre cómo conseguir FreeBSD. Por favor. Capítulo 1. que hacen de FreeBSD un sistema verdaderamente útil.2.com/) • Apache (http://www. 1.. arquitectura de computadores y redes que la experiencia a bajo nivel que FreeBSD puede aportar. aligerando de este modo la carga soportada por un servidor central. • Estación de trabajo X: FreeBSD es una magnífica elección como terminal X de bajo coste.org/) 3 . FreeBSD puede incluso arrancar “sin disco”. Para aquéllos cuyo principal interés en los ordenadores no es otro que el de poder realizar su trabajo existe una serie de paquetes gratuitos de CAD.apache.2. FreeBSD es una excelente plataforma para la investigación en sistemas operativos y otras ramas de la informática. FreeBSD permite ejecutar muchas aplicaciones localmente. El hecho de que FreeBSD esté disponible gratuitamente hace posible que grupos remotos puedan colaborar con ideas o compartan desarrollos sin tener que preocuparse de acuerdos en licencias especiales o de limitaciones acerca de lo que puede discutirse en foros públicos. • Educación: ¿Eres estudiante de informática o de algún campo de la ingeniería relacionado? No hay mejor modo de estudiar sistemas operativos. matemáticas. permitiendo que las estaciones sean aún más económicas y fáciles de administrar.yahoo.

microsoft. 1.3.com/) • Pair Networks (http://www. Breve historia de FreeBSD Contributed by Jordan Hubbard. aun sin el soporte de Bill. No tardamos mucho en decidir que el objetivo seguía valiendo la pena.sony. debido a David Greenman. Algunos quizá recordéis que el primer nombre del proyecto fue “386BSD 0. es bastante improbable que FreeBSD hubiera logrado tanto y tan rápido como ha logrado hoy por hoy.hotmail.pair. 386BSD era el sistema operativo de Bill Jolitz.com/) • Hotmail (http://www. Aquellos planes fueron bruscamente interrumpidos cuando Bill Jolitz de repente decidió retirar su aprobación al proyecto sin ninguna indicación clara de lo que en su lugar debería hacerse. publicado en diciembre de 1993.whistle.com/) • Whistle Communications (http://www. que hasta ese punto había estado sufriendo severamente las consecuencias de prácticamente un año que más vale olvidar. 4 .jp/) y muchos más. objetivos.3. y modelo de desarrollo. que tuvo un gran éxito. 1.com/) • Microsoft (http://www.com/) • Sony Japón (http://www. La génesis del proyecto FreeBSD se remonta a comienzos de 1993.co. una breve historia. Capítulo 1.1. y cuando quedó claro que el proyecto estaba en marcha y que podía llegar a ser una realidad contacté con Walnut Creek CDROM con la idea de mejorar los canales de distribución de FreeBSD en CD.1 en mayo de 1994.com/) • Blue Mountain Arts (http://www. nosotros estuvimos unánimente de acuerdo en que algo se tenía que hacer y decidimos ayudar a Bill ofreciendo esta instantánea “limpia” como ínterin. Sin la fe casi sin precedentes que tuvo Walnut Creek CDROM en lo que era por aquel tiempo un proyecto completamente desconocido. Berkeley del 4. Acerca del proyecto FreeBSD En la siguiente sección se explican ciertos aspectos del proyecto. Introducción • Be. Nuestros objetivos iniciales se fijaron una vez consultamos a los usuarios del sistema. (http://www. La primera distribución en CDROM (y disponible por la red) fue FreeBSD 1. Inc. Estaba basado en la cinta de U. A medida que el patchkit se iba haciendo más incómodo día a día. Rod Grimes y yo mismo.5” o “386BSD Interim” en referencia a ese hecho. y fue así que adoptamos el nombre “FreeBSD”.be.3BSD-Lite (“Net/2”). pero hasta llegamos a disponer de una máquina con la que trabajar y una conexión a Internet rápida. y le siguió FreeBSD 1.0.C. en parte como una extensión del “Unofficial 386BSD Patchkit” debida a los tres últimos coordinadores del patchkit: Nate Williams. Nuestro objetivo original era producir una instantánea de 386BSD intermedia para arreglar una serie de problemas que no se podían solventar vía patchkits. con bastantes componentes de 386BSD y la Free Software Foundation.bluemountain. Fue un logro bastante razonable para una primera versión.

en la red) se hallan contínuamente disponibles desde el servidor de instantáneas (ftp://current.1-STABLE. en esa rama (RELENG_2_1_0) sólo se harían ya mejoras en seguridad y correcciones de errores críticos. Ésa fue FreeBSD 2. De la 3. Los objetivos del Proyecto FreeBSD son proveer software que pueda ser usado con cualquier propósito y sin compromiso alguno.1. pero decididamente no estamos dispuestos a insitir en ello.4 para Intel era muy incompleta. en ese punto sacó FreeBSD 2.0 en CDROM (y.0-CURRENT. 3.C.4 en septiembre de 2001.0 en la red y en CDROM (a finales de diciembre). No fue hasta noviembre de 1994 que el proyecto realizó esa transición.X-STABLE (RELENG_4) entrado 2002. de manera que el código sea tan usado y dé tanto provecho como sea posible. e instantáneas de la 5.X-STABLE.4BSD-Lite.0-CURRENT y 3. Las versiones “Lite” eran ligeras en parte porque el CSRG de Berkeley quitó grandes partes del código necesario para construir un sistema que pudiera arrancar (debido a diversos requisitos legales) y porque la versión del 4. cuando saliera.1. Ésa fue la última versión de la rama 3. y 4.2.2. Introducción Por entonces se formaron unos inesperados nubarrones en el horizonte ya que Novell y U. se le permitía al proyecto sacar una última versión antes de la fecha límite.4 el 20 de diciembre de 1999. Se hicieron más versiones de la rama 2. Objetivos del Proyecto FreeBSD Contributed by Jordan Hubbard. 4. considerada ahora la "actual rama -stable".0-RELEASE salió en marzo de 2000.0 oficial salió en octubre de 1998 y marcó el inicio del fin de la rama 2. publicada en febrero de 1997. esta distribución fue un éxito significativo y le siguió el más robusto y fácil de instalar FreeBSD 2.1. esa versión fue FreeBSD 1.4BSD-Lite. que incorporaba mejoras de seguridad de última hora para Kerberos. que marcó el final de la línea principal de desarrollo en 2. 1. Han habido varias versiones de la misma desde entonces: 4.1. Habrá más versiones de la rama 4. naturalmente. FreeBSD se ramificó desde la línea principal de desarrollo (“-CURRENT”) en noviembre de 1996 como la rama RELENG_2_2.5.8) apareció en noviembre de 1998.0.1 salió el 15 de febrero de 1999. la 3. Esto incluía a FreeBSD.3 en abril de 2001.5 en agosto de 1996.2.1) salió en abril de 1997. y se dio hasta julio de 1994 para dejar de sacar su propio producto basado en Net/2.2 en verano y otoño de 1997. y 3. Bajo los términos de aquel acuerdo. Capítulo 1.5. 5 . que dió lugar a la rama 4. Sacamos FreeBSD 2.3 el 16 de septiembre de 1999. 3.1.X.5 en junio de 1995. la última de las cuales (2. Proyectos a largo plazo siguen teniendo lugar en la rama (principal) 5. Hubo otra ramificación el 13 de marzo de 2000. y la primera versión completa (2. y pareció ser suficientemente popular entre ISPs y otras comunidades comerciales como para que mereciera otra versión de la rama 2.1.X-STABLE.3. El árbol se ramificó de nuevo el 20 de enero de 1999. Creemos que nuestra más importante y primordial “misión” es dar código a todo el que venga.C.7.X-STABLE. Una condición del acuerdo fue la concesión por parte de U.FreeBSD.org/pub/FreeBSD/snapshots/) a medida que el trabajo progresa. Berkeley resolvieron el largo juicio acerca del estatus legal de la cinta de Berkeley Net/2.5 el 24 de junio de 2000. Berkeley obtuvo a cambio de Novell el “beneplácito” para que 4. A pesar de no estar suficientemente pulida. Muchos de nosotros participamos significativamente en el código (y en el proyecto) y ciertamente no nos importaría recibir una pequeña compensación económica de vez en cuando. 3. dando lugar a las ramas 4.2 el 15 de mayo de 1999.1-STABLE. a la que siguió pocos días después una actualización menor. FreeBSD tuvo entonces que acometer la árdua tarea de literalmente reinventarse a sí mismo a partir de trozos nuevos y bastante incompletos de 4. Berkeley de que una gran parte de Net/2 era código “gravado” y propiedad de Novell.2. fuera declarado como no-gravado y se instara a los usuarios de Net/2 a cambiar. quien a su vez lo había adquirido de AT&T anteriormente. 3. y para lo que quiera. Una vez en modo mantenimiento. La primera versión 3.

org>. una herramienta de control de versiones de código fuente que se halla libremente disponible y viene con FreeBSD.cgi) principal reside en una máquina en Santa Clara CA. consulta la sección Sincronizando el árbol de código fuente para más información sobre cómo hacerlo. si bien de cara a garantizar acceso al mismo. Debido a las complicaciones adicionales que pueden surgir en el uso comercial de software con licencia GPL. La mejor manera de enviar aportaciones para que sean revisadas por los committers es usar el comando send-pr(1). El equipo core fue elegido de un conjunto de committers candidatos en octubre de 2000.org/) (Concurrent Versions System). y están por tanto autorizados a realizar modificaciones en los fuentes de FreeBSD (el término “committer” viene del comando commit de cvs(1). El repositorio CVS (http://www. que sirve para subir nuevos cambios al repositorio del CVS). La lista de committers Los committers son gente que tienen permisos de escritura en el árbol del CVS.cvshome. El código fuente de nuestro árbol que se halla bajo la GNU General Public License (GPL) o la Library General Public License (LGPL) viene con algunas restricciones más. Introducción Creo que éste es uno de los objetivos más fundamentales del software libre y uno que nosotros apoyamos con entusiasmo. La principal tarea de este equipo es la de garantizar que el proyecto.FreeBSD. El árbol del CVS.org>.org/cgi/cvsweb. ya sea trabajando de forma independiente on en estrecha cooperación: El repositorio CVS El árbol de código fuente central de FreeBSD se mantiene con CVS (http://www.org> también se halla disponible para quienes deseen dar a conocer a otros usuarios de FreeBSD grandes áreas de trabajo. El modelo de desarrollo de FreeBSD Contributed by Satoshi Asami. Invitar a desarrolladores comprometidos y responsables a unirse a nuestro grupo de committers es una de las funciones del equipo core. Estamos constantemente a la búsqueda de nuevos desarrolladores e ideas. USA desde la que es replicado a numerosos mirrors distribuidos por todo el mundo./articles/contributors/article. tiene salud y sigue las direcciones correctas. aunque si pareciera que algo va mal en el sistema también puedes contactarlos por mail en FreeBSD committer’s mailing list <cvs-committers@FreeBSD./. preferimos que el software contribuido lo sea bajo la licencia BSD. El equipo core de FreeBSD El equipo core de FreeBSD sería lo equivalente a una junta directiva si el Proyecto FreeBSD fuese una compañía. Capítulo 1. como un todo. pueden ser replicados fácilmente en tu máquina también. 1.. no al contrario que es lo habitual. La lista FreeBSD announcements mailing list <freebsd-announce@FreeBSD. estando FreeBSD construido literalmente a partir de las contribuciones de centenares de personas de todo el mundo. 6 . menos estricta. El desarrollo de FreeBSD es un proceso muy abierto y flexible. Cosas útiles de saber sobre el Proyecto FreeBSD y su proceso de desarrollo. y aquéllos interesados en vincularse más al proyecto tan sólo tienen que ponerse en contacto con nostros en FreeBSD technical discussions mailing list <freebsd-hackers@FreeBSD. como puede verse en nuestra lista de contribuidores (.3. así como el reclutamiento de nuevos miembros del equipo cuando otros se van.. así como los árboles -CURRENT y -STABLE que se extraen del mismo.html).3. Se celebran elecciones cada 2 años. Por favor. cuando ésa sea una opción razonable.

/index. y la Free Software Foundation.html). El modelo centralizado está diseñado para conveniencia de los “usuarios” de FreeBSD./. soporte para transacciones TCP..html). que así tienen un modo sencillo de estar al día con una base de código central. sino que también reduce el consumo de memoria de FreeBSD.. con algunas mejoras provenientes de NetBSD. tienes un lista más completa de cosas que hay que hacer en el sitio web del Proyecto FreeBSD (. conjunto de funcionalidades..0 de FreeBSD de finales del 94./. y este modelo funciona bien para lograrlo. El último cambio consiste en un rediseño del sistema de memoria virtual con una caché unificada de VM/buffer que no sólo aumenta el rendimiento. Pentium III (o compatible) y DEC Alpha./. Lo único que pedimos a quienes quisieran unirse a nosotros como desarrolladores de FreeBSD es la misma dedicación que los integrantes actuales tienen para mantener su éxito. Desde la versión 2. La actual distribución FreeBSD FreeBSD está libremente disponible. Capítulo 1. Nota: La mayoría de los miembros del equipo core son voluntarios a la hora de desarrollar FreeBSD y no se benefician económicamente del proyecto. Otras mejoras incluyen soporte completo para clientes y servidores NIS. quienes constantemente aportan feedback y correcciones de errores. todo el código fuente de la distribución basada en 4.3.. haciendo que una configuración de 5MB sea un mínimo más aceptable. así que ¿por qué no te apuntas y contribuyes a FreeBSD hoy mismo? Aportar código no es la única manera de contribuir al proyecto. La principal manera de estar en contacto con el más descentralizado desarrollo de FreeBSD es suscribirse a FreeBSD technical discussions mailing list <freebsd-hackers@FreeBSD. i486. Hay una lista completa de desarrolladores de FreeBSD con sus áreas de responsabilidad respectivas. Está principalmente basado en software del grupo CSRG de U./.4. Berkeley./articles/contributors/article./articles/contributors/article. el rendimiento. OpenBSD./. consulta la Lista de contribuidores (..html) es larga y no cesa de crecer... y estabilidad del sistema han mejorado drásticamente. Celeron.C. 1. Introducción Algunos miembros del equipo core tienen también áreas de responsabilidad específicas. nuestro modelo de desarrollo está organizado como un conjunto de círculos concéntricos. ¡no para excluir a contribuidores potenciales! Nuestro deseo es presentar un sistema operativo estable con un gran conjunto de aplicaciones coherentes que los usuarios puedan instalar y usar fácilmente.. Pentium Pro.4BSD-Lite para sistemas bajo Intel i386. el mayor grupo de desarrolladores está formado por los mismos usuarios. Pentium II. En resumen. 386BSD. y no por ello menos importante. llamada bajo demanda 7 . en cuanto a que se encargan de garantizar que cierta parte extensa del sistema funciona según lo previsto. La anterior analogía de la “junta directiva” en realidad no es del todo exacta.org> (ver información sobre listas de distribución) donde se discuten ese tipo de cosas. La lista de contribuidores (. quizá fuera más acertado decir que ésa es la gente que dedica su vida a FreeBSD ¡en contra de lo que les aconseja su propio juicio! Contribuidores externos Por último. por ello “compromiso” no debería confundirse con “soporte garantizado”.

editores..org/ (.html).FreeBSD./index.html El FAQ de FreeBSD /usr/share/doc/faq/index. Algunos documentos que pueden ser de ayuda en el proceso de instalación y al utilizar FreeBSD pueden también encontrarse en el directorio /usr/share/doc de cualquier máquina bajo FreeBSD 2. todos ellos expresados como “deltas” de sus fuentes originales. Capítulo 1. lenguages. ¡En el momento de escribir esto hay unos 7. escribe make install. de modo que sólo necesitas el espacio usado para construir los ports que tu quieras. Introducción PPP.html También puedes ver la copia original (y más frecuentemente actualizada) en http://www.. 8 .. La distribución original completa de cada port que construyes se recupera dinámicamente de un CDROM o un sitio FTP.0. Puedes ver los manuales que están instalados en local con cualquier navegador que pueda mostrar HTML vía las siguientes URLs: El manual de FreeBSD /usr/share/doc/handbook/index.1 o posterior. hasta juegos. soporte para ATM. La mayoría de los ports también están disponibles precompilados en “paquetes”. FreeBSD ofrece una colección de software con miles de programas comúnmente solicitados. que pueden instalarse con un simple comando (pkg_add) para aquéllos que no quieran compilar sus propios ports a partir de los fuentes. FDDI. ¡Tu feedback sobre este proceso (en constante evolución) es especialmente bienvenido! Además de las distribuciones base./. soporte para ISDN. También hemos considerado los comentarios y sugerencias de muchos de nuestros usuarios y hemos intentado ofrecer lo que esperamos sea un proceso de instalación más sensato y fácil de entender. Para compilar un port uno simplemente se sitúa bajo el directorio del programa que desea instalar. y deja que el sistema se encargue del resto. y cientos de correcciones de errores. La colección de ports completa requiere un espacio de aproximadamente 100MB. y prácticamente cualquier cosa intermedia.. un subsistema SCSI mejorado. soporte para DHCP integrado. y reduce de un modo importante el espacio en disco que necesitaba la anterior colección de ports 1./. soporte mejorado para los últimos controladores Adaptec./.000 ports! La lista de ports comprende desde servidores HTTP (WWW). Esto hace que nos sea mucho más fácil actualizar ports. adaptadores Fast y Gigabit Ethernet (1000Mbit).

si tienes conexion de red.6. FreeBSD puede ser instalado desde una gran cantidad de soportes incluyendo CDROM. y podrás obtener gran cantidad de información sobre la compatibilidad del hardware de tu ordenador y FreeBSD. Este intentará arrancar la instalación de FreeBSD desde DOS. aunque no estés pensando en realizar la instalación. para empezar a caminar. además de una descripción más exacta sobre las diferentes posibilidades de instalación.FreeBSD. Revisa la sección configuraciones soportadas de esta guía de instalación para asegurarte de que tu hardware es soportado por FreeBSD. floppies. como controladoras SCSI.bat incluido en el CD. Arranca tu ordenador con el instalador de FreeBSD. Para más información sobre cómo obtener la última distribución de FreeBSD. y tu sistema soporta arranque directo desde CDROM (muchos sistemas antiguos no). ya sea ethernet o PPP. Nota: Debes hacer esto desde el DOS y no desde una máquina Windows. mira la sección Obteniendo FreeBSD en el Apéndice. 2. Instalando FreeBSD Así que te gustaría probar FreeBSD en tu máquina?. puedes pasar por alto el resto de esta sección. Bién. puedes empezar por crear los discos de instalación como se describe más abajo. ejecuta primero el programa setup para copiar los ficheros adecuados del CD a la partición. ejecuta el fichero install. Esta lista debería incluir parámatros relevantes de configuración como interrupciones (IRQ) y direcciones de entrada/salida (IO ports). tarjetas de red o tarjetas de sonido. • Si cualquiera de los dos métodos anteriores funciona. en caso contrario. Si tienes pensado hacer la instalación vía FTP. sólo necesitas el disco de arranque. ya que él solo se encarga de gestionar todo lo referente a la conexión. cintas magnéticas. 9 . Sea cual sea el soporte de instalación que elijas. una partición MS-DOS y. Si quieres instalar FreeBSD desde una partición DOS (por ejemplo. Si no tienes una distribución en CDROM. vía FTP anónimo o NFS. • Si estás ejecutando DOS y tienes los drivers adecuados para acceder al lector de CDROM.Capítulo 2. Sería de gran ayuda que hicieses una lista de cualquier tarjeta especial que tengas instalada.flp. Si estás instalando FreeBSD desde un CDROM tienes diferentes opciones de instalación: • Si el CD ha sido grabado con el soporte de arranque El Torito. por favor. A continuación ejecuta el programa de instalación. simplemente bájate los discos de instalación y arranque (ftp://ftp. Salta al paso 4 para instrucciones sobre como hacerlo. Nota: Estas imágenes solo se pueden usar con discos de 1. asegurándote de que tu navegador grabe el fichero en lugar de mostrarlo.ORG/pub/FreeBSD/4. Esta sección es una guía rápida sobre lo que necesitas hacer.2-RELEASE/floppies/boot. 3. por que FreeBSD no soporta tu lector de CDROM). tu opción final es crear un disco de arranque con la imágen floppies\boot. sigue los siguientes pasos: 1.flp) a tu disco duro. simplemente inserta el CD en el lector y arranque directamente desde él.44Mb.

Cuando el proceso de arranque finaliza.. Si tu hardware está soportado. Cuando FreeBSD arranca. • Si estás instalando un sistema UNIX para crear las imágenes de disco: # dd if=boot.. el menú principal de instalación de FreeBSD se muestra en pantalla.exe en el CDROM y ejecútalo de la siguiente manera: E:\ tools\fdimage floppies\boot.ORG/pub/FreeBSD/tools/fdimage. después de una pausa de 5 segundos. rearranca tu sistema. Si algo va mal.FreeBSD.. la prueba para este driver conflictivo deberí ser desactivada. resetea el ordenador y cuando aparece el prompt Boot: teclea -c. En este caso. es imposible para el programa de prueba de hardware ser 100 por 100 fiable. primero mira la sección configuraciones soportadas en esta guía de instalación para asegurar que tu hardware es soportado por FreeBSD. direcciones de memoria. Haz el disco de instalación a partir del fichero imágen: • Si estás usando MS-DOS o Windows bájate el programa fdimage.flp en é:l (asumiendo que estás en el nivel superior de la distribució de FreeBSD y que las imágenes están en el subdirectorio floppies . Deberías obtener un prompt de arranque como este: FreeBSD BOOT .a)]/kernel][-abcCdhrsv] Use 1:sd(0. También es posible que la prueba de un dispositivo no existente provoque una correcta detección de un dispositivo que sí está presente.flp of=disk_device disk_device es el dispositivo /dev para la disquetera.exe (ftp://ftp. 6. En sistemas FreeBSD.exe) o cógelo de tools\fdimage. canales DMA. FreeBSD arrancará automáticamente con su configuración por defecto. Esto hará que FreeBSD entre en modo de configuración de hardware. o que el proceso de prueba cuelgue la máquina.flp a: El programa fdimage formateará el disco A: y copiará la imágen boot. tal y como suele ser habitual).a)kernel to boot sd0 if it is BIOS drive 1 Use ? for file list or press Enter for defaults Boot: Si no tecleas nada. Si tu hardware ha sido reconfigurado. El kernel de FreeBSD en el disco de intalación está configurado asumiendo que la mayorí de dispositivos hardware están configurados tal y como viene de fábrica en lo referente a IRQ’s. éste es /dev/rfd0 para el disco A: y /dev/rfd1 para el disco B:. El resultado de estas comprobaciones es mostrado en la pantalla. Debido a limitaciones en la arquitectura de los PC’s. En el caso de que tu hardware sea identificado incorrectamente.. Instalando FreeBSD 4. etc. Con el disco de instalación en el disco A:. 5. Capítulo 2. 10 . necesitarás usar la opción -c en el arranque para indicarle a FreeBSD donde se encuentra cada cosa. Usage: [[[0:][wd](0. comprueba tu ordenador para determinar el hardware instalado.

etc. Para ejecutar el Sistema X Window. Otras configuraciones posiblemente funcionen también. Capítulo 2. Un mínimo de cuatro megabytes de RAM son requeridos para ejecutar FreeBSD. cubriendo desde un 386sx hasta Pentiums (piensa que 386sx no es recomendado). También se soportan configuraciones IDE o ESDI. teclea help para más información sobre los comandos disponibles. • Desactivar los drivers de hardware no instalado en tu sistema. DRQ y direcciones IO usadas por los drivers de dispositivo. ocho megabytes de RAM es el mínimo recomendado.1. VLB. 2. Instalando FreeBSD AvisoNo desactives ningún dispositivo que necesitas durante la instalación. tarjetas de red y serie. teclea quit en el prompt config para continuar el arranque con la nueva instalación. Controladoras de disco • WD1003 (any generic MFM/RLL) • WD1007 (any generic IDE/ESDI) • IDE • ATA • Adaptec 1505 ISA SCSI controller • Adaptec 152x series ISA SCSI controllers • Adaptec 1535 ISA SCSI controllers • Adaptec 154x series ISA SCSI controllers • Adaptec 174x series EISA SCSI controller in standard and enhanced mode. es aconsejable que te crees un kernel personalizado para optimizar el sistema. Configuraciones soportadas Actualmente FreeBSD se ejecuta en una variedad de buses ISA. diferentes controladoras SCSI.1. pero no hemos tenido noticias de ello. Mira en Configuración del kernel para crear un kernel personalizado. como la pantalla (sc0). En el modo de configuración puedes: • Listar los drivers de dispositivos presentes en el kernel. A continuación te presentamos una lista de todas las controladores de disco y tarjetas de red que actualmente funcionan en FreeBSD. Aún así. Después  de ajustar los parámetros del kernel con el hardware que tienes instalado. • Adaptec 274x/284x/2940/2940U/3940 (Narrow/Wide/Twin) series EISA/VLB/PCI SCSI controllers 11 . los cambios hechos en el modo de configuración serán guardados permanentemente para que no tengas que reconfigurar el sistema cada vez que arranques. 2. Una vez FreeBSD está instalado.  Mientras aparece el prompt config .1. • Cambiar la IRQ. EISA y PCI basados en PC’s.

• Seagate ST01/02 SCSI controllers. Son perfectamente usables para cintas externas. y lectores de CDROM. etc. la cual es necesaria para mapear el dispositivo de arranque en los vectores de Entrada/Salida. DAT. • Buslogic 545S & 545c Nota: Buslogic was formerly known as “Bustek”. • UltraStor 14F/24F/34F SCSI controllers. which includes the AHA-152x and SoundBlaster SCSI cards. • Future Domain 8xx/950 series SCSI controllers. incluyendo discos. Instalando FreeBSD • Adaptec AIC7850 on-board SCSI controllers • Adaptec AIC-6360 based boards. • NCR5380/NCR53400 (“ProAudio Spectrum”) SCSI controller. Algunos sistemas tienen una ROM de arranque. cintas. Con todas las controladoras SCSI soportadas. Capítulo 2. Lo mismo se aplica a cualquier otra tarjeta basada en la AIC-6x60 sin ROM de arranque. Los siguientes tipos de CDROM son soportados actualmente: • SoundBlaster SCSI and ProAudio Spectrum SCSI (cd) • Mitsumi (all models) proprietary interface (mcd) • Matsushita/Panasonic (Creative) CR-562/CR-563 proprietary interface (matcd) • Sony proprietary interface (scd) • ATAPI IDE interface (experimental and should be considered ALPHA quality!) (wcd) 12 . Revisa la configuración de tu sistema/placa para más detalles. • DTC 3290 EISA SCSI controller in 1542 emulation mode. • WD7000 SCSI controllers. CDROM’s. • Buslogic 445S/445c VLB SCSI controller • Buslogic 742A/747S/747c EISA SCSI controller. la cual es mostrada de alguna manera cuando el sistema arranca. Nota: No puedes arrancar desde tarjeta SounBlaster ya que no tienen BIOS. • Buslogic 946c PCI SCSI controller • Buslogic 956c PCI SCSI controller • NCR 53C810/53C815/53C825/53C860/53C875 PCI SCSI controller. se consigue ofrecer soporte completo para periféricos SCSI-I & SCSI-II.

Tarjetas de red • Allied-Telesis AT1700 and RE2000 cards • SMC Elite 16 WD8013 Ethernet interface. WD8003S. Instalando FreeBSD 2. WD8003EBT. WD8003W. • Novell NE1000. and DE205) • DEC EtherWORKS II NICs (DE200. SMC Elite Ultra and 9432TX based cards are also supported. DE201.1. 13 . Capítulo 2. and most other WD8003E.2. and NE2100 ethernet interface. • Isolan AT 4141-0 (16 bit) • Isolink 4110 (8 bit) • Lucent WaveLAN wireless networking interface. and DE422) • DEC DC21040/DC21041/DC21140 based NICs: • ASUS PCI-L101-TB • Accton ENI1203 • Cogent EM960PCI • Compex CPXPCI/32C • D-Link DE-530 • DEC DE435 • Danpex EN-9400P3 • JCIS Condor JC1260 • Kingston KNE100TX • Linksys EtherPCI • Mylex LNP101 • SMC EtherPower 10/100 (Model 9332) • SMC EtherPower (Model 8432) • SMC EtherPower (2) • Zynx ZX314 • Zynx ZX342 • DEC FDDI (DEFPA/DEFEA) NICs • Fujitsu FMV-181 and FMV-182 • Fujitsu MB86960A/MB86965A • Intel EtherExpress • Intel EtherExpress Pro/100B 100Mbit. NE2000. DE202. DE204. WD8003SBT and WD8013EBT based clones. WD8013W. • DEC EtherWORKS III NICs (DE203.

• Creative Labs Video spigot frame grabber. • Adlib. 3C595 Etherlink III • 3Com 3C90x cards. • X-10 power controllers. • STB 4 port card using shared IRQ. • BOCA 2016 16 port serial card using shared IRQ. 2. SoundBlaster. Gravis UltraSound MAX and Roland MPU-401 sound cards. • Omnimedia Talisman frame grabber. SoundBlaster Pro. Capítulo 2. • PC joystick and speaker. Si tu tarjeta tiene Pnp y te está dando problemas.3. • BOCA IOAT66 6 port serial card using shared IRQ. • SDL Communications RISCom/N2 and N2pci sync serial cards. • SDL Communications Riscom/8 Serial Board. Nota: Actualmente FreeBSD no soporta las características PnP (plug-n-play) de algunas tarjetas. 3C579. ProAudioSpectrum. • ARNET 8 port serial card using shared IRQ. • Digiboard Sync/570i high-speed sync serial card. • HP PC Lan Plus (27247B and 27252A) • Toshiba ethernet cards • PCMCIA ethernet cards from IBM and National Semiconductor are also supported. 3C589 (PCMCIA) Etherlink III • 3Com 3C590. Gravis UltraSound. 14 . • Cyclades Cyclom-y Serial Board. • Brooktree BT848 chip based frame grabbers. Dispositivos varios • AST 4 port serial card using shared IRQ. • Decision-Computer Intl. Instalando FreeBSD • 3Com 3C501 cards • 3Com 3C503 Etherlink II • 3Com 3c505 Etherlink/+ • 3Com 3C507 Etherlink 16/TP • 3Com 3C509. “Eight-Serial” 8 port serial cards using shared IRQ. • Matrox Meteor video frame grabber.1. intenta desactivarle el PnP.

bat o atapiflp. deberís ser capaz de poder seleccionar el CDROM como el soporte de instalación en el menú Media y cargar la distribución completa desde el CDROM. pasa a la sección Preparación en MSDOS. por favor.bat.2. La siguiente sección describe la preparación necesaria para cada tipo de instalación. usa los ficheros inst_ide. si quieres que tus usuarios puedan instalar FreeBSD vía FTP directamente desde el CDROM de tu máquina. puedes montar el CDROM en cualquier momento tecleando: mount /cdrom Antes de poder quitar el CDROM.bat. 2. Capítulo 2. Finalmente. Preparándonos para la instalación Existen diferentes métodos de instalación de FreeBSD.bat o puedes hacer los discos de arranque ejecutando el programa makeflp. Antes de instalar desde CDROM Si tu lector de CDROM no está soportado. Nota: Antes de ejecutar el programa de instalación asegúrate de tener el CDROM en el lector para que éste pueda ser detectado durante la fase de pruebas de hardware. mira el principio de esta guía . Puedes arrancar directamente el programa de instalación desde DOS usando el fichero install. Una vez tienes la máquina completamente instalada. y tampoco sabemos como están hechos). Si estás creando el disco de arranque desde un sistema UNIX. sólo tienes que añdir la siguiente línea al fichero de passwords (usando el comando vipw): ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent 15 .1-RELEASE y tienes un CDROM IDE. Después de instalar por completo el sistema y arrancar desde el disco duro.1. lo puedes hacer de manera muy sencilla. Una vez hayas arrancado desde DOS o floppy. No se requiere ningús soporte adicional para la instalación. es necesario teclear: umount /cdrom. ejecuta el comando view. 2. Para acceder al interface más sencillo de todos (desde DOS).2. No hay mucho trabajo de preparación previo para realizar una instalación satisfactoria desde uno de los CDROM’s de Walnut Creek (otras distribuciones en CDROM también es posible que funcionen pero no tenemos manera de asegurarlo ya que no hemos podido probar ninguno. Nota: Si estás ejecutando FreeBSD 2. Instalando FreeBSD FreeBSD actualmente no soporta el bus microcanal de IBM (MCA). Aparecerá una utilidad DOS con un menú a través del cual puedes acceder a todas las opciones de instalación disponibles. Esto es necesario también si quieres que el CDROM sea añadido automáticamente a la configuración inicial del sistema.

Muchos de los problemas reportados en el pasado por usuarios. Una vez llegues a la pantalla de selección del soporte de la instalación.44Mb. Capítulo 2.1200 y floppy5 para discos de 5. Utiliza todos los discos necesarios para incluir en ellos todas las distribuciones que quieras instalar. Ahora puedes montar los disquettes y escribir en ellos como en cualquier otro sistema de ficheros. y así hasta completar la distribución. Instalando FreeBSD Cualquiera con conectividad en tu red (y permisos para acceder a ella) puede seleccionar ahora como soporte de la instalación el tipo FTP y teclear: ftp://tu_maquina después de seleccionar “Other” en el menú de servidores FTP. 2.2. siendo preguntado por el resto de parámetros necesarios.2MB). como mínimo.44MB o 1.1440 # disklabel -w -r fd0. Los ficheros de la distribución están convenientemente distribuidos para que quepan 5 de ellos en cada disquette de 1. a:\bin\bin.1440 floppy3 # newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0 Nota: Usa fd0. Si estás preparando estos disquettes bajo DOS. Puedes usar el comando disklabel y newfs para formatearlos e incluir en ellos el sistema de ficheros UFS. sólo para estar seguro.25" (o 1. Antes de instalar desde una partición MS-DOS Para realizar la instalación desde una partición MS-DOS. antes debes preparar algunos disquettes. Después de formatear los disquettes. entonces ESTOS disquettes deben estar formateados con el comando FORMAT de MS-DOS. necesitarás copiar los ficheros en ellos. bién por problemas de compatibilidad de hardware o por que te guste hacer las cosas de la manera más complicada. para preparar una instalación mínima de FreeBSD: C:\ MD C:\FREEBSD C:\ XCOPY /S E:\BIN C:\FREEBSD\BIN\ 16 . tantos disquettes de 1. 2. Cada distribución debe estar en un subdirectorio del floppy. Necesitarás. Formatéalos tú mismo.2MB como espacio ocupe la distribución en el directorio bin.3. por ejemplo: a:\bin\bin.2. Para hacerlo.2. han tenido que ver con disquettes mal formateados o defectuosos.aa. Si estás creando los disquettes desde una máquina FreeBSD. Por ejemplo.ab. selecciona “Floppy” . Antes de instalar desde Floppy Si debes instalar desde disquettes. NO te fíes de los discos preformateados. copia los ficheros de la distribución en un directorio llamado C:\FREEBSD. usa el comando format del administrador de ficheros. Si utilizas Windows. puedes seguir la siguiente secuencia de comandos: # fdformat -f 1440 fd0. formatear los discos tampoco es mala idea. por lo que te aconsejamos usar el comando xcopy. La estructura de directorios del CDROM tiene que ser parcialmente reproducida dentro de éste directorio.

El programa de instalación espera que los ficheros estén en formato tar en la cinta. 2. Asegúrate de tener la información de tu proveedor a mano ya que el proceso de instalación te la pedirá de manera inmediata. PPP es tu única opción. la cual aconsejamos usar siempre que sea posible.2. Si usas PAP o CHAP. para que el programa de instalación pueda recuperar todo el contenido de la cinta.2. 2.. y limitado a conexiones punto a punto como una cable serie entre un portátil y otro ordenador.. Nota: Es imprescindible que la cinta esté en el lector antes de arrancar con el disco de instalación. deberís asegurarte de dejar suficiente espacio libre en algún directorio temporal (el cual podrás elegir). por lo que sólo tienes que seleccionar la distribución a instalar y copiarla en una cinta en formato tar con un comando como: # cd /freebsd/distdir # tar cvf /dev/rwt0 dist1 . Dado al acceso no aleatorio de las cintas. Instalando FreeBSD C:\ XCOPY /S E:\MANPAGES C:\FREEBSD\MANPAGES\ Asumiendo que C: es donde tienes espacio libre y E: es la unidad de tu lector de CDROM. dist2 Cuando ejecutas la instalación. Antes de instalar desde una cinta QIC/SCSI Instalar desde una cinta es probablemente el método más sencillo. aparte de una instalación on-line. Si estás usando un módem. Necesitarás tanto espacio temporal como contenidos hayan en la cinta. vía FTP o CDROM. bajo C:\FREEBSD — la distribución BIN es sólo la mínima requerida.4. necesitarás teclear los comandos set authname y set authkey antes de teclear el comando 17 . Tienes que copiar cada distribución que quieras instalar desde MS-DOS. esta facilidad se ofrece mediante la utilidad PPP. El soporte de SLIP es bastante primitivo. Necesitarás saber como llamar a tu proveedor usando “comando AT” específicos de tu módem por que el marcador PPP sólo ofrece un simple emulador de terminal. La conexión debe ser mediante un cable cruzado serie ya que la instalación SLIP no ofrece posibilidad de marcado telefónico. este método exige un poco de espacio temporal. Capítulo 2. Antes de instalar sobre una red Puedes hacer instalaciones de red mediante 3 tipos de conexión: Puerto serie SLIP o PPP Puerto paralelo PLIP (cable laplink) Ethernet Tarjeta ethernet estandar (incluye algunas PCMCIA).5.

. Pásate por el manual ppp y las secciones de las FAQ (. definitivamente debes hablar con tu administrador de sistemas antes de intentar éste tipo de instalación.1. asegúrate de tener la tarjeta insertada antes de encender el portátil.2. Si tienes problemas. actualmente FreeBSD no soporta la "inserción en caliente" de tarjetas PCMCIA durante el proceso de instalación. si el directorio de tu distribución de FreeBSD 4. FreeBSD soporta muchas de las tarjetas ethernet del mercado. Si obtienes el mensaje Permission Denied por parte del servidor.6.5.6. significa que no tienes esta opción activada de manera adecuada. También necesitarás saber tu dirección IP en la red. Instalando FreeBSD term. La velocidad es mucho mayor que la que podemos conseguir sobre una conexión serie (por encima de los 50k/seg). 2. el log puede ser dirigido a la pantalla usando el comando set log local . Desafortunadamente. Si vas a acceder a otras máquinas por nombre en lugar de dirección IP. la instalación puede continuar sobre NFS o FTP. Una URL también puede ser una dirección IP. con ratios de transferencia muy pobres. también deberías activar el flag apropiado en el menú Options. necesitarás la dirección de un servidor de nombres y posiblemente la dirección de un gateway (si usas PPP es la dirección IP de tu proveedor).html) para más información.0R o superior).2 reside en: ziggy:/usr/archive/stuff/FreeBSD Entonces ziggy debe permitir montar directamete /usr/archive/stuff/FreeBSD. de manera que lo siguiente funcionaría en la ausencia de un servidor de nombres: 18 . el servidor debe soportar el acceso a subdirectorios exportados..2. Un completo menú de elecciones razonables para prácticamente cualquier parte del mundo está disponible en el menú de instalación FTP. Si tienes una conexión de red de poca calidad. Capítulo 2. puedes especificar tu propia URL seleccionando la opción “Other” en el menú. Preparando una instalación por FTP La instalación por FTP se puede realizar desde cualquiera de los servidores mirror que contengan una versión razonablemente actualizada de FreeBSD 4. Si estás instalando desde cualquier otro servidor no listado en ese menú. Preparando la instalación sobre NFS La instalación sobre NFS es muy sencilla: simplemente copia los ficheros de las distribuciones de FreeBSD que necesites en algún lugar del servidor.. Otros servidores NFS pueden usar opciones diferentes. En fichero /etc/exports de FreeBSD. 2. necesitarás activar esta opción en el menú Options antes de proceder con la instalación. o tienes problemas con la configuración del servidor de nombres o la resolución correcta. obteniendo una instalación más rápida. una tarjeta ethernet es siempre una buena elección. Si este servidor sólo soporta accesos a “puertos seleccionados” (como ocurre generalmente con las estaciones de trabajo SUN).5. Finalmente. Si estás usando una de las tarjeta PCMCIA soportadas. Tu administrador de sistemas puede darte todos los valores adecuados a la configuración de tu red.. Si no conoces las respuestas a la mayoría de estas preguntas.2. Si puedes disponer de una conexión punto a punto a otro sistema FreeBSD (2. y apunta el soporte de instalación de NFS hacia él. una tabla de las tarjetas soportadas (y sus características requeridas) está disponible en la sección Hardware soportado. por ejemplo./FAQ/userppp. Para que la instalación por NFS funcione. y no sólo /usr o /usr/archive/stuff. el valor de la máscara de tu clase de direcciones y el nombre de tu máquina. para la instalación de red más rápida posible. esto es controlado por la opción -alldirs . deberías considerar la instalación sobre el puerto paralelo con un cable “laplink”. Una vez tienes una conexión de red de cualquier tipo funcionando.2.

bar.81/pub/FreeBSD/4. normalmente deberías darle el nombre del servidor real al que quieres conectar como parte del nombre de usuario después de una @-sign. Si estás teniendo problemas de hardware. Para un servidor proxy FTP.freebsd.freebsd. Nota: Los modos Activos y Pasivos no son lo mismo que una conexión a través de “proxy”. Como medio de instalación .2.org>. y tu dirección de correo como password. tienes que ir al menú de opciones.com.org usando el servidor proxy FTP foo. Esto no funcionará a través de firewalls. El servidor proxy reenviará la petición al servidor adecuado. Instalando FreeBSD Una vez has tomado nota de los pasos apropiados en la preinstalación. permitiendote realizar la instalación desde esa máquina (la cual coge los ficheros de ftp.freebsd.-RELEASE Hay dos modos de instalación FTP que puedes usar: FTP Activo Para todas las transferencias FTP.113. intenta con el modo activo!. Esto permite al usuario conectar a través de firewalls que no aceptan conexiones entrantes en direcciones de puertos aleatorias. especifica FTP (o FTP pasivo. donde un servidor proxy FTP está escuchando y reenviando las peticiones FTP!.org a medida que la instalación los necesita). Si no es así. 2. El disco de arranque de FreeBSD contiene toda la documentación on-line que deberís necesitar para realizar la instalación.org es "cacheado" bajo foo. pero funcionará sin problemas con servidores FTP antiguos que no soportan el modo pasivo.121. FTP Pasivo Para todas las transferencias FTP usa el modo “Pasivo”. o FreeBSD se niega a arrancar.com.6. puedes encontrar útil esta “típica secuencia de instalación”: 19 . lee la Guía de Hardware que puedes encontrar en el disco de arranque para posibles soluciones.bar. deberís poder instalar FreeBSD sin ningún tipo de problema. El objetivo del programa de instalación de FreeBSD (sysinstall) es estar suficientemente documentado para poder realizar una instalación sin problemas. si el proxy lo soporta) y la URL ftp://foo. y poner el nombre de usuario de FTP como ftp@ftp. Si tu conexión se cuelga con el modo pasivo. nos gustaría saber que es lo que te ha confundido o dónde has tenido más problemas. Un ejemplo: digamos que quieres realizar la instalación desde ftp.3. Capítulo 2. En este caso. deberías vover atrás y releer la sección de preparación aplicable a tu medio de instalación. Instalando FreeBSD ftp://165.bar.org.com:1234/pub/FreeBSD /pub/FreeBSD de ftp.freebsd. Si tienes algún problema. Enví tus comentarios a FreeBSD documentation project mailing list <freebsd-doc@FreeBSD. Mientras tanto. que está escuchando en el puerto 1234. usa el modo “Activo”.

2.4. Algunas secciones. Lo agradecerás enormemente!. la instalación Novice es la más recomendada. Selecciona la opción Options y configura las preferencias que puedas tener o necesitas. Instalando FreeBSD 1. Selecciona la instalación Novice. tu disco D: será /dev/sd0s5. pueden ser importantes si has hecho la instalación desde CDROM/Cinta/Floppy y no has configurado todavía tus interfaces de red (asumiendo que exista alguno). dependiendo del hardware. Preguntas y Respuestas para usuarios de MS-DOS Muchos usuarios de FreeBSD querrán instalar FreeBSD en PC’s habitados por MS-DOS. Para discos IDE. Quizás encuentres útil la utilidad FIPS. Puedo usar sistemas de ficheros comprimidos desde FreeBSD? No. Mira el menú Distributions para hacer una estimación de la cantidad de espacio necesario para el tipo de instalación que deseas hacer. Configurando adecuadamente en este momento los interfaces permitiráa que FreeBSD esté activo en la red cuando reinicies por primera vez desde el disco duro. sustituye wd por sd. FIPS te permite repartir una partición MS-DOS en dos partes. 2. Primero debes defragmentar tu partición MS-DOS usando el programa DEFRAG de DOS 6. Necesito borrarlo todo? Si tu máquina está todavía ejecutando MS-DOS y tienes poco o ningún espacio libre disponible para la instalación de FreeBSD. o en cualquiera de los mirrors de FreeBSD. Arranca con el disco de arranque. 3. El menú de configuración final te permite configurar tu instalación de FreeBSD a través de un sistema guiado por menús. Capítulo 2. preservando la partición original permitiendo la instalación en la segunda. 4. Las particiones extendidas de DOS son mapeadas al final del otro “slices” en FreeBSD. que tu partición extendida está en el disco SCSI 0. Deberías ver unas instrucciones básicas sobre el sistema de menús y del programa en general. Finalmente puedes reiniciar la máquina e instalar FreeBSD en la segunda partición. Aquí están algunas de las pregunas (y respuestas) más comunes sobre la instalación de FreeBSD en estos sistemas. El resto del sistema de ficheros se mostrarás como un único fichero.x o las utilidades Norton. lee la sección Q&A de la Guía de Hardware para conocer las posibles causas. Pulsa F1. El propio programa te preguntará todos los datos que necesite conocer. Después de la secuencia de arranque que puede tardar entre 30 segundos y 3 minutos. Si el disco no arranca o el arranque se cuelga en algún momento. Custom o Express. 5. por favor léelo. como la de red. disponible en el directorio tools del CDROM de FreeBSD. por ejemplo. dependiendo de la ayuda que quieras recibir del programa de instalación durante todo el proceso. Es mejor solución crear otra partición primaria de MS-DOS no comprimida y usarla para la comunicación entre MS-DOS y FreeBSD. Este ejemplo asume. Puedo montar mis particiones MS-DOS extendidad? Sí. Si no has usado este sistema de menú anteriormente. Después ejecuta FIPS. debería aparecer un menú de opciones iniciales. por supuesto. Si nunca has usado FreeBSD anteriormente. FreeBSD solo será capaz de usar la parte del sistema de ficheros no comprimida. Para montar las particiones extendidas tienes que hacerlo exactamente igual que cualquier otra partición o disco DOS: 20 . tu disco E: será /dev/sd0s6 y así respectivamente. Ayuda! No tengo espacio. No borres este fichero. Si estás usando una utilidad como Stacker(tm) o DoubleSpace(tm). no todo está perdido!.

21 . Instalando FreeBSD # mount -t msdos /dev/sd0s5 /dos_d Puedo ejecutar binarios MS-DOS bajo FreeBSD? BSDI ha donado su emulador DOS al mundo BSD y éste ha sido portado a FreeBSD. Capítulo 2. Hay también una (tecnicamente) buena aplicación disponible en la Colección de Ports llamada pcemu. la cual te permite ejecutar muchos binarios en modo texto emulando por completo una CPU 8088.

muestran los permisos para el resto del mundo. los permisos para este archivo serían 644. El siguiente capítulo cubre la funcionalidad y órdenes básicas del sistema operativo FreeBSD. ejecutar rwx Si se muestra un listado expandido de directorio mediante ls -l. los permisos están asignados de tal manera que el propietario puede leer y escribir en el archivo. no ejecutar rw- 7 Leer. y más remarcado. r-. periféricos. Los últimos tres caracteres. Debido a que el sistema es capaz de soportar múltiples usuarios. donde cada cifra representa las tres 22 . de izquierda a derecha. un socket. todo lo que el sistema administra tiene un conjunto de permisos que gobiernan quién puede leer. Estos permisos se guardan como octetos divididos en tres partes: una para el propietario del archivo. no ejecutar r-- 5 Leer. Esta representación numérica funciona así: Valor Permiso Listado de Directorio 0 No leer. no escribir. En el caso de este archivo. El sistema es el responsable de compartir y administrar peticiones de dispositivos de hardware. seguramente querrá leer este capítulo antes de buscar ayuda.bsdi. ejecutar -wx 4 Leer. no ejecutar --- 1 No leer. Si se es nuevo en FreeBSD. no escribir. Sinópsis Reescrito por Chris Shumway <cshumway@osd. Un guión indica que el permiso está desactivado. memoria y tiempo de Unidad Central de Proceso (CPU) de manera equitativa para cada usuario. no escribir. un directorio. 3. El primero. Conceptos Básicos de Unix 3. grupo y todos los demás. ejecutar r-x 6 Leer. El sistema puede manejar varios usuarios trabajando todos simultáneamente y en tareas que no guardan relación entre sí. otra para el grupo al que el archivo pertenece. escribir. Los siguientes tres caracteres. tiene sus fundamentos basados en varios conceptos clave de UNIX. Permisos FreeBSD. escribir.muestran los permisos para el grupo al que el archivo pertenece. Veamos como se descompone: -rw-r--r-- El primer carácter. Los siguientes tres caracteres. es que FreeBSD es un sistema operativo multi-usuario. cuya raiz histórica es el UNIX BSD.1. escribir. no escribir. es un carácter especial que indica si se trata de un archivo normal.muestran los permisos para el propietario del archivo. y el resto del mundo sólo puede leer el archivo. el grupo puede leer el archivo. y otra para cualquier otro.Capítulo 3. De acuerdo con la tabla que se muestra más arriba. o cualquier otro dispositivo de pseudo-archivo. expresados como rw. escribir y ejecutar el elemento. se mostrarán en una columna los permisos de fichero para el propietario. r--. ejecutar --x 2 No leer.com>. no ejecutar -w- 3 No leer. 10 Mar 2000. escribir. un dispositivo especial de tipo carácter o bloque.2.

gran parte del trabajo diario se realiza a través de un interfaz de la linea de órdenes llamado "shell". 3. expansión de expresiones regulares en nombres de archivo y variables del sistema. como bash y tcsh. Este directorio es el primero en ser montado al arrancar y contiene contiene el sistema básico necesario a la hora de iniciar. Conceptos Básicos de Unix partes de los permisos del archivo. Todo ésto está muy bien. Estos archivos especiales de dispositivos se encuentran en el directorio /dev. Cuando un directorio está marcado como ejecutable significa que se puede mirar dentro. no la vamos a repetir aquí. pero ¿cómo controla el sistema los permisos de los dispositivos? FreeBSD en realidad trata la mayoría de los dispositivos hardware como un archivo que los programas pueden abrir. Dado que la página de manual de hier(7) proporciona una descripción completa de la estructura de directorios. Hay disponibles muchos otros shells en la "FreeBSD Ports Collection" que son mucho más potentes. un shell con una sintaxis similar al C. macros de órdenes. como sh. Hay más permisos. El asunto es que cada shell posee unas propiedades únicas que pueden o no funcionar con el entorno de trabajo preferido y se ha de efectuar una elección sobre el shell a usar. el directorio /. /etc/fstab es una tabla que sirve como referencias al sistema y contiene los diferentes sistemas de archivos y sus respectivos puntos de montaje. edición de líneas de órdenes. La mayoría de los sistemas de archivos que figuran en /etc/fstab son montados automáticamente al arrancar por el guión de órdenes (script) rc(8) a no ser que contengan la opción noauto. el shell Bourne y csh. Muchos shells tienen también integradas funciones para ayudarnos en las tareas cotidianas tales como la manipulación de archivos. se puede probar con bash. el shell C. Si se es programador de C se puede sentir más cómodo con tcsh. El directorio raiz también contiene puntos de montaje para cualquier otro sistema de archivos que se desee montar. la jerarquía del sistema de archivos es extremadamente importante. /mnt y /cdrom. pero se usan principalmente en circunstancias especiales como los binarios ejecutables de tipo "setuid" y los los directorios de tipo "sticky". Si desea más información acerca de los permisos de archivos y cómo establecerlos. Si se proviene del mundo Linux o se es nuevo en el interfaz de órdenes de Unix. Tienen permisos de lectura. Los directorios también son tratados como archivos. Estos directorios directorios se corresponden habitualmente con entradas en en archivo /etc/fstab. 23 . leer y en los que pueden escribir datos como si de cualquier otro archivo se tratara. El principal trabajo del shell es recoger órdenes del canal de entrada y ejecutarlas. escritura y ejecución. FreeBSD viene con un conjunto de shells. Los puntos de montaje convencionales incluyen /usr. /var. 3. Capítulo 3. por ejemplo. Consúltese la página del manual fstab(5) para más información acerca del formato del archivo /etc/fstab y de las opciones que se pueden especificar. asegúrese de mirar la página de manual de chmod(1). El bit de ejecución en un directorio tiene un significado ligéramente distinto que para los archivos. Intérpretes de órdenes (Shells) En FreeBSD. Un punto de montaje es un directorio donde se pueden injertar al sistema de archivos raiz otros sistemas de ficheros adicionales. Para más información. puede consultar hier(7).3. De una especial importancia es el raiz (root) de todos los directorios. Estructura de directorios Como FreeBSD utiliza sus sistemas de archivos (file systems) para determinar muchas operaciones fundamentales en el sistema. se podría hacer un listado de ese directorio. ¿Qué shell usar? Es cuestión de gustos.4.

y de nuevo TAB. en él se encuentra bastante información relativa a la configuración de programas. FreeBSD.[TAB]. SHELL El shell actual. Conceptos Básicos de Unix Una de las propiedades comunes de un shell es que completa los nombres de archivo. Otra función del shell son las variables de entorno. TERMCAP Base de datos donde encontrar los códigos de escape necesarios para realizar diferentes funciones en el terminal. separada por puntos y coma. se usaría setenv para establecer y visualizar las variables de entorno actuales.bar. el shell será capaz de introducir el resto del nombre por nosotros. Supongamos que se tienen dos archivos llamados foobar y foo. OSTYPE Tipo de sistema operativo.bar comienzan por fo. EDITOR El editor de texto preferido por el usuario. Las variables de entorno son parejas de valores clave almacenados en el espacio de entorno del shell. Por ejemplo. DISPLAY Nombre en la red de la pantalla de X11 a la que conectarse. MANPATH Lista de directorios en los que se busca páginas de manual. El [BEEP] es el pitido de consola (console bell): es el shell diciéndonos que fue incapaz de completar totalmente el nombre de archivo porque hay más de una coincidencia. PATH Lista de directorios. Siguiendo el ejemplo. por tanto. Visualizar o establecer una variable de entorno difiere ligeramente de shell a shell. Dada la introducción de las primeras letras de una orden o del nombre de un archivo.bar. Se usa para determinar las posibilidades del terminal de datos. en los shells al estilo C como tcsh y csh. Capítulo 3. pero solo se pudo completar hasta foo. Aquí va un ejemplo. Tanto foobar como foo. Lo que habría que teclear es: rm fo[TAB]. El shell nos mostraría rm foo[BEEP]. si se encuentra disponible. Se quiere borrar foo. MACHTYPE Arquitectura de la CPU en la que el sistema se está ejecutando. Si se teclea . en los que se busca ejecutables. se puede hacer que el shell complete automáticamente el resto de la orden o el nombre del archivo pulsando la tecla TAB.. Este espacio puede ser leído por cualquier programa invocado por el shell y. Lo siguiente es una lista de las variables de entorno más comunes y su significado: Variable Descripción USER Nombre de usuario con el que se ha entrado al sistema. TERM El nombre del terminal del usuario. Por ejemplo. PAGER El paginador de texto preferido por el usuario. para establecer o modificar el valor de EDITOR.bar. separados por puntos y coma. bajo csh o tcsh una orden como la siguiente establecería el valor de EDITOR a /usr/local/bin/emacs: % setenv EDITOR /usr/local/bin/emacs Bajo los shells tipo Bourne (Bourne Shells): % export EDITOR="/usr/local/bin/emacs" 24 .

echo $TERM mostrará cualquiera que sea el valor que se le haya establecido a TERM. Al ejecutar chsh se nos situará dentro del editor de texto que figure en la variable de entorno EDITOR o. se pueden salvar poniendo el carácter contrabarra (\) delante de ellos. echo $TERM muestra cualquiera que sea el valor establecido para el terminal que estamos usando. porque el shell expande el valor de TERM y se lo pasa al programa echo. cuyo nombre proviene del inglés "easy editor" (editor fácil). se nos abrirá vi. A causa de esto. debería hacer: # echo "/usr/local/bin/bash" /etc/shells Y entonces volver a ejecutar chsh. Para iniciar ee se debería teclear en la línea de órdenes ee filename. echo \$TERM muestra $TERM tal cual. Editores de texto Gran parte de la configuración de FreeBSD se realiza modificando archivos de texto.4. Por ejemplo. Conceptos Básicos de Unix También se puede hacer que la mayoría de los shells muestren el contenido de una variable de entorno situando el carácter $ delante del nombre de la variable desde la línea de órdenes. 3. de no estar configurada. llamados meta-caracteres. lo siguiente realizará el ajuste: % chsh -s /usr/local/bin/bash Ejecutar chsh sin parámetros y cambiar el shell desde allí tambien funcionaría. El editor de textos más fácil y rápido de aprender es uno llamado ee. También se le puede suministrar a chsh la opción -s. Estos meta-caracteres especiales se pueden usar para la expansión de nombres de archivos. entonces esto ya se habrá realizado. que representa cualquier número de caracteres en un nombre de archivo.5. teclear echo * es casi lo mismo que introducir ls porque el shell recoge todos los archivos que coinciden con * y se los pone en la línea de órdenes a echo para que los vea. Nota: El shell que se desee usar debe figurar en el archivo /etc/shells. Capítulo 3. Cambiando de shell La manera más fácil de cambiar de shell es usando la orden chsh. Por ejemplo. Si se ha instalado manualmente el shell. Cámbiese la línea “Shell:” adecuadamente. Por ejemplo. FreeBSD viene con unos cuantos como parte del sistema base y muchos más se encuentran disponibles en la colección de ports. es una buena idea familiarizarse con un editor de texto. como representaciones especiales de datos. El mas común es el carácter *. ésto establecerá el shell por nosotros sin necesidad de entrar en el editor de texto. si se instaló manualmente bash y se situó en /usr/local/bin. Por ejemplo. Los shells manejan muchos caracteres especiales. Si se ha instalado un shell desde la colección de ports. si se desea cambiar el shell a bash.1. se debe realizar el cambio pertinente. Para evitar que el shell interprete estos caracteres especiales. 3. donde filename es el nombre 25 .

Por ejemplo. 3. aprender un editor más potente como vim o emacs le ahorrará mucho tiempo a largo plazo. tecléese ee /etc/rc. 5. 3. De cualquier manera. Por ejemplo. El uso del programa man es sencillo: % man command command es el nombre del programa del que se quiere saber algo.6.conf. para editar /etc/rc. se debe pulsar la tecla escape y elegir abandonar (leave) el editor. para saber algo acerca del programa ls tecléese: % man ls El manual en línea está dividido en secciones numeradas: 1. 8. Casi todos los programas del sistema vienen con un sucinto manual de referencia explicando el funcionamiento básico y los diferentes argumentos. Páginas de manual La documentación más exhaustiva de FreeBSD se encuentra en la forma de páginas de manual. Desarrolladores del Kernel. Funciones de las librerías de C. Una vez dentro de ee. Programas relativos al mantenimiento y operación del sistema. Juegos y otros divertimentos. FreeBSD viene también con editores de texto mucho más potentes. LLamadas de sistema y códigos numéricos de error. 9. Para más información 3. En algunos casos. si se planea editar muchos textos. 7. 6. Manejadores de Dispositivos. todas las posibles órdenes para manipular las funciones del editor se presentan en la parte superior de la pantalla. el mismo epígrafe puede aparecer en más de una sección del manual en línea. Para abandonar ee. Información miscelánea. 2. Hay. Estos manuales pueden ser revisados con el programa man. por ejemplo.1. El editor preguntará entonces si se desean conservar los cambios si el archivo hubiera sido modificado. vi como componente del sistema básico y emacs o vim como parte de la colección de ports. Estos editores ofrecen mucha más funcionalidad y potencia a expensas de un aprendizaje un poco más complicado. Formatos de Archivos. Capítulo 3. un programa de usuario llamado chmod y una llamada de sistema chmod(). Por ejemplo. El carácter acento circunflejo ^ representa a la tecla de control en el teclado. Órdenes/programas de usuario.6. 4. En este caso se le puede especificar a man cuál se desea especificando la sección: % man 1 chmod 26 . o sea que ^e significa pulsar simultáneamente la tecla control y la letra e.conf. Conceptos Básicos de Unix del archivo que deseamos editar.

Capítulo 3. Esto está muy bien si se conoce el nombre del programa y simplemente se quiere saber cómo usarlo. hágase un sencillo: % cd /usr/bin % man -f * o % cd /usr/bin % whatis * que hace exactamente lo mismo. si se ha instalado emacs. 3. Las referencias a una sección concreta del manual en línea se sitúan tradicionalmente entre paréntesis en la documentación impresa. que pueden ser revisados con el programa info o. Pero. Archivos de información GNU FreeBSD incluye muchas aplicaciones y utilidades producidas por la Free Software Foundation (FSF). el modo "info" de emacs. ¿qué si se recuerda el nombre del programa? Se puede usar man para que realice una búsqueda mediante palabras clave en las descripciones de programas usando el argumento -k: % man -k mail Con esta orden se nos mostrará una lista de programas que contienen la palabra clave “mail” en sus descripciones. De manera adicional a las páginas de manual estos programas vienen con documentos de hipertexto más detallados. Si se está mirando todos esos curiosos programas que residen en /usr/bin y no se tiene ni puñetera idea de que narices hacen realmente. Conceptos Básicos de Unix Esto nos mostrará la página del manual en línea del programa de usuario chmod. de tal manera que chmod(1) se refiere al programa de usuario chmod y chmod(2) se refiere a la llamada de sistema. tecléese h. llamados archivos info. 27 . Ésto equivale a usar el programa apropos. Para usar el programa info(1) simplemente tecléese: % info Para una descripción breve.6. tecléese ?.2. Para una referencia rápida de un programa.

que estan disponibles de esta manera. Los paquetes descargados. • Como remover paquetes o ports instalados previamente. pueden ser manipulados con los comandos de manejo de paquetes de FreeBSD. pkg_info(1). de forma local o directamente desde la red. AL momento de escribir esto. Descargar el software. o binario. para lo cual se necesita instalar software adicional de terceros. tales como: pkg_add(1). Desempacar el software de su formato de distribución (normalmente en un tarball comprimido ya sea con compress(1) o gzip(1)). • Como compilar software de terceros desde la Colección de Ports. Cualquiera de los dos sistemas puede ser usado para instalar las versiones más recientes. Los paquetes contienen copia de binarios pre-compilados de la aplicación.Capítulo 4. FreeBSD ofrece dos tecnologías complementarias para instalar software de terceros en nuestro sistema: la Colección de Ports de FreeBSD y Paquetes binarios. Sinópsis FreeBSD esta colmado de una excelente colección de herramientas de sistema. son un simple fichero que debe descargar. existe gran cantidad de cosas que uno requiere hacer para poner las cosas realmente en marcha. Los paquetes de FreeBSD. como parte del sistema base. usted sabrá: • Como instalar paquetes binarios de software de terceros. pkg_delete(1). así como cualquier fichero de configuración necesario o documentación. Ver la documentación (quizás un fichero README. Si usted esta instalando un software que no ha sido creado específicamente para FreeBSD. existen más de 7. compilarlo. Esto puede requerir que editemos el fichero Makefile o que ejecutemos el script configure. Y esto solamente si todo marcha bien. 4. Si el software es distribuido como fuentes. etc. puede que sea necesario editar el código para que trabaje correctamente. puede continuar instalando software de la forma “tradicional” bajo FreeBSD. Instalar y probar el software. sabrá que el procedimiento típico para instalar software de terceros es algo similar a esto: 1.1. para cualquier aplicación. A pesar de esto. o los ficheros del subdirectorio doc/) para ver como instalar el software. Generales sobre la Instalación de Software Si usted ha usado un sistema Unix con anterioridad. Aunque FreeBSD le provee de dos tecnologís que le pueden ahorrar gran cantidad de tiempo y esfuerzo: los paquetes y ports. 4. 28 . 5. Si usted lo desea.000 aplicaciones de terceros. 3. que puede distribuirse en formato de código fuente.2. 2. Después de leer este capítulo. Instalando Aplicaciones: Paquetes y Ports 4. entre otras.

es una colección de ficheros diseñados para automatizar el proceso de compilación del software. Usted ejecuta un conjunto de comandos simples y el código fuente es descargado. tomar partes prestadas (si la licencia lo permite. modificarlo. claro esta). 29 . En algunos casos. • Los paquetes no requieren que usted comprenda el proceso que envuelve el compilar software bajo FreeBSD. parchar. compilado e instalado. existen varios paquetes para la misma aplicación con diferentes opciones. prohiben la distribución de binarios. parchado. Ghostscript esta disponible como paquete ghostscript o bien como paquete ghostscript-nox11. dependiendo si usted cuenta o no con el servidor X11. desempacado. Al menos con el código fuente. en virtud del gran numero de equipos donde serán instalados. Beneficios de los Paquetes • El típico fichero tarball de un paquete. permiten automatizar esto por usted. para poder leerlo en ratos de ocio. Recuerde que existen ciertos pasos que deberá llevar a cabo para efecto de compilar un programa por usted mismo (desempacar. • Los paquetes no requiere de compilación adicional. y procederán a instalar la librería en primer término. Los Paquetes y los Ports cuentan con sus propias fortalezas. quizás se pregunte por que FreeBSD se toma la molestía de contar con ambas. el sistema de ports también se puede usar para crear paquetes que posteriormente manipule con pkg_add y las otras utilidades del manejo de paquetes que veremos en breve. Por otro lado un Port de FreeBSD. Solo permiten la distribución del código fuente. De hecho. es normalmente más pequeño que el tarball comprimido que cuenta con el código fuente del software. KDE. Suponga que desea instalar una aplicación que depende de que una librería específica este instalada. usted puede editar las preferencias para (por ejemplo) ejecutarse bajo un procesador Athlon o Pentium III. puede seleccionar cuales opciones desea. Por ejemplo. Si utiliza el comando pkg_add o el sistema de ports para instalar la aplicación. cuando compila grandes aplicaciones tales como Mozilla. y cual utlizar dependerá de sus preferencias. usted puede (en teoría) revisarlo y localizar problemas potenciales. necesitará el código fuente para poder aplicarlos. En este caso decidir puede ser sencillo. Este punto puede ser de gran importancia. desde el código fuente. • Algunas aplicaciones opciones relacionadas con lo que pueden y lo que no pueden hacer. ambos notaran que la librería no esta instalada. y tal. Los ficheros que conforman un port. • Existe gente que le gusta contar con el código fuente. Dado que ambas tecnologís son similares. pero esto se puede volver un problema si cuenta con más de una o dos opciones al momento de la compilación. • Existe gente que no confia en los binarios. o GNOME. Tanto la librería como la aplicación existen en FreeBSD como paquete o port. compilar e instalar). Capítulo 4. Por ejemplo Apache puede ser configurado con una gran variedad de opciones. Al compilarlo desde los ports usted no tiene por que aceptar todas. Instalando Aplicaciones: Paquetes y Ports EL instalar una aplicación nueva puede realizarse con un simple comando. • Las condiciones de licenciamiento de algunas aplicaciones. • Si cuenta con parches locales. Beneficios del Sistema de Ports • Normalmente los paquetes son compilados con opciones conservadoras. Al instalar desde el port. principalmente en equipos lentos. Tanto el sistema de ports como el de paquetes entienden las dependencias.

1. Ejemplo 4-1. 4. desde un fichero local o desde un servidor remoto que esta en red. FreshPorts verifica los cambios en las aplicaciones del árbol de ports. para ver si la aplicación ha sido portada a FreeBSD. suscribase a FreeBSD ports mailing list <freebsd-ports@FreeBSD.. Afortunadamente existen varias formas de localizar lo que busca: • El sitio web de FreeBSD mantiene una base actualizada de todas las aplicaciones disponibles para FreeBSD. Instalando un Paquete Puede usar la utilidad pkg_add(1) para instalar software de un paquete bajo FreeBSD. 4. VA. Descargando un Paquete e Instalandolo Localmente # ftp -a ftp2. Usando el Sistema de Paquetes Contribuido porChern Lee.. • Si no conoce el nombre de la aplicación que desea.net/) para encontrar una aplicación.FreshPorts. USA.org FTP server (Version 6. 4. El resto de este capítulo le explicará como usar los ports y paquetes para instalar software de terceros en FreeBSD. usted debe saber que desea instalar y como se llama dicha aplicación..00LS) ready. • Dan Langille mantiene FreshPorts./.org>. La lista de software disponible para FreeBSD crece constantemente. access restrictions apply.net. y le permite “observar” uno o más ports. Remote system type is UNIX. pruebe usar un sitio como FreshMeat (http://www.3. This machine is in Vienna. Esta base esta segmentadas por categorías. Localizando su Aplicación Antes de poder instalar cualquier software.FreeBSD.html). en la dirección http://www./. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 30 .FreeBSD.org Connected to ftp2. 331 Guest login ok.org. 230- 230. 230- 230- 230 Guest login ok. en http://www.FreeBSD..org/ports/ (.org/. Using binary mode to transfer files. Instalando Aplicaciones: Paquetes y Ports Para poder estar actualizado en sus ports. y le enviará un correo cada vez que se actualicen./. 220 ftp2.verio.4.freshmeat. Capítulo 4. Questions? E-mail freebsd@vienna.FreeBSD./ports/index. send your email address as password. y usted puede buscar por nombre (si lo sabe) o bien listas las aplicaciones disponibles en cierta categoría. hosted by Verio.4. 230. posteriormente verifique en el sitio de FreeBSD.

1 4. 4.org/pub/FreeBSD/ports/packages/).4. Los paquetes son distribuidos en formato .tgz remote: lsof-4. es similar al árbol de /usr/ports. Manejo de Paquetes pkg_info(1) es una utilidad que muestra y describe todos los paquetes que tenemos instalados. o bien.60 seconds (16. pkg_add(1) utiliza pkg_add(1) para descargar los ficheros.56.4.3.56.4.FreeBSD.56. También puede notar que en el ejemplo anterior usamos lsof en vez de lsof-4. Cada CD de la distribución de 4 CDs (y del PowerPak. La estructura del directorio de paquetes es identica a la de ports. si se encuentra detrás de un firewall. etc) contiene los paquetes en el directorio /packages. ftp> get lsof-4. El orden de dicho directorio.tgz.tgz local: lsof-4. para que posteriormente lo descargue y lo instale desde un sitio FTP. # pkg_add -r lsof En el ejemplo anterior.1 A general network file distribution system optimized for CV docbook-1. pudiese ser que su mejor alternativa sea usar pkg_add(1).56.tgz 200 PORT command successful.7. que incluyen FTP_PASSIVE_MODE. en el CDROM de FreeBSD. el paquete correspondiente será descargado e instalado sin mayor intervención del usuario.4. 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete.org/pub/FreeBSD/ports/packages/ (ftp://ftp. FTP_PROXY y FTP_PASSWORD. 31 . 92375 bytes received in 5. puede encontrarlos en ftp://ftp. la versión del paquete debe ser removida. Capítulo 4. Vea la página de ayuda fetch(3) para una lista completa.4. El programa pkg_add(1) obtendrá automáticamente la versión más reciente. Cuando hacemos uso de “fetch” de forma remota.11 KB/s) ftp> exit # pkg_add lsof-4. # pkg_info cvsup-16. que toma como referencia varias variables de entorno.4. estos trabajan en conjunto para formar el sistema de paquetes/ports.4.4. Instalando Aplicaciones: Paquetes y Ports 250 CWD command successful.. Cada categoría cuenta con su subdirectorio. Quizás deba modificar alguna de estas.2..tgz Si usted no cuenta con una fuente local de paquetes (como pudiese ser un CDROM de FreeBSD). Esto provocará que la utilidad determine automáticamente el formato del objeto correcto. 150 Opening BINARY mode data connection for ’lsof-4.FreeBSD. # pkg_delete xchat-1.2 Meta-port for the different versions of the DocBook DTD . Eliminando un Paquete Para eliminar un paquete previemante instalado.56.tgz’ (92375 bytes). utilice la utilidad pkg_delete(1). y todos los paquetes estan disponibles en el directorio All.56. o bien usar un proxy FTP/HTTP.

puede seguir estas instrucciones para obtener dicha colección: Metodo por Sysinstall Este metodo implica el uso del programa sysinstall nuevamente. así como una descripción de los mismos. el programa Sysinstall le pregunto si deseaba instalar la Colección de Ports.1. Usando la Colección de Ports La siguiente sección le provee de las instrucciones básicas para instalar o remover programas de su sistema. Si contesto que no. Obteniendo la Colección de Ports Antes de poder instalar ports. 4. Símbolo Significado = La versión del paquete instalado es igual a la versión del árbol local de ports.4.5. Miscelaneos Toda la información relacionada con los paquetes. nos indican la edad relativa de la versión instalada. Capítulo 4. ? El paquete instalado no se ha localizado en el índice (index) de los ports. primero debe de hacerse de la Colección de Ports— que escencialmente esta compuesta de ficheros Makefiles. parches y ficheros con la descripción de los ports.5. # pkg_version cvsup = docbook = . Instalando Aplicaciones: Paquetes y Ports pkg_version(1) es una utilidad que resume las versiones de los paquetes instalados. La versión instalada es más reciente que la que se  encuentra en el árbol local de ports (probablemente el árbol de ports esta desactualizado). 32 . 4. 4. La versión instalada es más antigua a la versión del árbol local de ports. ubicados en /usr/ports. se guarda en el directorio /var/db/pkg. puede encontrarse en este subdirectorio. Estas son comparadas con las versiones actuales del árbol de ports. usando la Colección de Ports. Cuando instaló su sistema FreeBSD. para instalar Colección de Ports. Los paquetes instalados.. Los símbolos de la segunda columna. comparada con la versión disponible en el árbol local de ports. * Existen multiples versiones del paquete..4.

Si desea mantener su árbol de ports actualizado. tal como CDROM. En sí mismo. y presione Enter. Estos son en formato de texto plano. Instale el port net/cvsup.5. Al ejecutar esto posteriormente.FreeBSD. Siga los menus para salir de sysinstall. Vea Mirrors de CVSup para ver una lista completa de los servidores CVSup. Vea Instalación de CVSup para mádetalles. en /usr/share/examples/cvsup/ports-supfile. El metodo alternativo para obtener y mantener actualizada la Colección de Ports. Posicionese en la opción Configure. Edite el fichero ports-supfile. 4.2. Este fichero contiene varias sentencias. 4. que incluyen algunos cambios. Cambie CHANGE_THIS. y presione Enter. Dirijase a la opción Exit. que le indican al sistema como compilarlo y donde deberá instalarlo en su sistema. Seleccione la opción Distributions. Lea el fichero de ports para CVSup. Este directorio contiene los parches necesarios para compilar e instalar en su sistema FreeBSD. sin corrupciones. 6. 4. como puede ser el directorio /root o bien su propio directorio home. 3. Cada esqueleto incluye: • Un fichero Makefile. ejecute el programa /stand/sysinstall como se muestra: # /stand/sysinstall 2. 3. Metodo por CVSup Este es un metodo rápido de obtener la Colección de Ports usando CVSup. un esqueleto de port. Ejecute cvsup: # cvsup -g -L 2 /root/ports-supfile 6. Vea el capítulo Usando CVSup para ver más información en el uso de CVSup y del fichero mencionado. 1. Seleccione la opción ports. es una serie mínima de ficheros. FTP y tal. es usando CVSup. Capítulo 4. Instalando Ports Al hablar de la Colección de Ports. Seleccione el medio de instalación deseado. y básicamente dicen cosas como “Remove line 10” (Remover la línea 10) o “Change line 26 to 33 . y presione Enter. aprender más acerca de CVSup. para asegurarse se han descargado correctamente. o bien. copie el fichero /usr/share/examples/cvsup/ports-supfile a una nueva ubicación. Este fichero contiene información de los ficheros que debe ser descargados para efecto de compilar el programa. lo primero que debemos comentar es. Instalando Aplicaciones: Paquetes y Ports 1. • Un fichero distinfo. los parches son pequeños ficheros. 2. 5. lea los documentos comentados anteriormente. se descargaran las actualizaciones de la Colección de Ports. así como el identificador checksum. Como usuario root. 7. Siendo usuario root. y presione la Barra Espaciadora. a que nos referimos cuando hablamos de un “esqueleto” (skeleton). • Un directorio files.org a un servidor CVSup cercano. Básicamente. que le indican a FreeBSD como compilar e instalar un programa. 5.

Capítulo 4. Instalando Aplicaciones: Paquetes y Ports

this...” (Cambiar la línea 26 por esto...). Los parches también son conocidos como “diffs”, ya que son generados
por el programa del mismo nombre; diff(1).
Es posible que este directorio tambié contenga algun otro fichero necesario para compilar e instalar el port.

• Un fichero pkg-comment. Este es una descripcion del programa en una sola línea.
• Un fichero pkg-descr. Esta es una descripcion más detallada del programa. En ocasiones multi-línea.
• Un fichero pkg-plist. Esta es una lista de todos los ficheros que serán instalados por el port. También le indica
al sistema de ports, que ficheros remover, en caso de una desinstalación.
Algunos ports cuentan con otros ficheros, tal como pkg-message. El sistema de ports usa estos, para manejar
situaciones especiales. Si desea saber más detalles al respecto, o bien de ports en general, vea el libro FreeBSD
Porter’s Handbook (../porters-handbook/index.html).
Ahora que tiene suficientes antecedentes sobre que hacer con la Colección de Ports, esta listo para instalar su primer
port. Existen dos formas de lllevar esto a cabo, y cada una de ellas se explican a continuación.
Pero, antes de que podamos proceder con la instalación, usted necesita seleccionar un port para instalar. Existen
varias formas de hacer esto, siendo el metodo más sencillo los ports listados en el sitio web de FreeBSD
(../../../../ports/index.html). Puede navegar entre los ports listados ahí o bien, usar la función de buscar en el sitio.
Cada port incluye una descripción, para que pueda leer un poco acerca de cada port antes de decidirse a instalarlo.
Otro metodo es por medio del comando whereis(1). Simplemente teclee whereis fichero, donde fichero es el
programa que desea instalar. Si se encuentra en su sistema, se le indicara donde se localiza, tal como:

# whereis lsof
lsof: /usr/ports/sysutils/lsof

Esto nos indica que lsof (una utilidad de sistema) puede encontrarse en /usr/ports/sysutils/lsof.
Incluso otra forma de encontrar un port en particular, es usando el mecanismo de búsqueda incluido en el sistema de
ports. Para efecto de usar esta habilidad, debe estar situado en el directorio /usr/ports. Una vez que este ahí,
ejecute make search name=nombre-del-programa donde nombre-del-programa es el nombre del
programa que desea encontrar. Por ejemplo, si busca lsof:

# cd /usr/ports
# make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:

De esta información, la parte que debe prestar atención es la que se refiere a la ruta, esto es; la línea “Path:”, en virtud
de que esta le indica la ubicación del programa. El resto de la información no es necesaria para la instalación, por lo
que no se verá aqui.
Para una búsqueda más profunda, puede usar el comando make search key=cadena donde cadena es algun
texto a buscar. Esto busca nombres de ports, descripciones y dependencia y puede usarse para buscar ports que se
relacionan a un determinado texto, si no sabe el nombre del port que esta buscando.

34

Capítulo 4. Instalando Aplicaciones: Paquetes y Ports

En ambos casos, la búsqueda es indistinto el uso de mayúsculas o minusculas. El buscar “LSOF” y “lsof” arrojaran
los mismos resultados.

Nota: Usted debe ser usuario root , para instalar ports.

Ahora que hemos encontrado un port que deseamos instalar, estamos listos para llevar a cabo la instalación. El port
incluye las instrucciones necesarias para compilar el código fuente, pero no contiene el código. Puede obtener el
código de un CDROM o desde Internet. El código fuente es distribuido de cualquier manera que el autor del software
lo desee. Frecuentemente esto es en un fichero tar.gz, pero puede estar comprimido con algun otro programa o de
hecho sin estar comprimido. De cualquier forma que se presente, el código fuente del programa, le llamamos
“distfile”. Puede obtener los “distfiles” desde Internet o bien desde un CDROM.

4.5.2.1. Instalando Ports desde un CDROM
Los CDROMs oficiales del Proyecto de FreeBSD, ya no incluyen distfiles. Estos ocupan gran espacio, que en su
lugar se ha usado para incluir paquetes precompilados. CDROMs como el PowerPak de FreeBSD, si inlcuyen
distfiles, y puede ordenar estos de distribuidores como FreeBSD Mall (http://www.freebsdmall.com/). Esta sección
asume que usted cuenta con un juego de CDROMs de FreeBSD.
Coloque su CDROM en la unidad correspondiente. Montelo en /cdrom. (Si utiliza un punto de montaje diferente la
instalación no será exitosa). Para comenzar dirijase al directorio donde se localiza el port que desea instalar:

# cd /usr/ports/sysutils/lsof

Una vez que este en el directorio lsof, verá el esqueleto del port. El próximo paso es la compilación del port. Esto
lo hacemos, simplemente tecleando make en la línea de comandos. Una vez que ha hecho esto, verá algo similar a lo
siguiente:


# make

 
 lsof_4.57D.freebsd.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.

===

Attempting to fetch from file:/cdrom/ports/distfiles/.
Extracting for lsof-4.57
...
[extraction output snipped]


...


Checksum OK for lsof_4.57D.freebsd.tar.gz.
===

Patching for lsof-4.57
===
===

Applying FreeBSD patches for lsof-4.57
Configuring for lsof-4.57
...
[configure output snipped]
...
===

Building for lsof-4.57
...
[compilation output snipped]
...
#

35

Capítulo 4. Instalando Aplicaciones: Paquetes y Ports

Note que una vez que ha terminado la compilación, regresara a la línea de comandos. El siguiente paso es instalar el
port. Para efecto de instalarlo, simplemente debemos añadir una palabra al comando make, y esa palabra es
install:

===

# make install
Installing for lsof-4.57
...
[installation output snipped]
...

===
 Generating temporary packing list
===
 Compressing manual pages for lsof-4.57
===
===
 Registering installation for lsof-4.57
SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
#

Una vez que regrese a la línea de comandos, le será posible ejecutar la aplicación que recien instalo. Dado que el
programa lsof se ejecuta con privilegios, nos aparece una advertencia de seguridad. Debe tomar nota de cualquier
otra advertencia que aparezca durante la compilación e instalación.

Nota: Puede ahorrarse algo de tiempo al ejecutar make install en un solo comando, en lugar de ejecutar make
y make install en dos pasos diferentes.

Nota: Algunos shells cuentan con un cache de los comandos disponibles bajo los directorios incluidos en la
variable de entorno PATH, para agilizar las operaciones de búsqueda de los ejecutables de estos ficheros. Si
usted esta haciendo uso de alguno de estos shells, puede usar el comando rehash una vez que ha terminado
de instalar el port, para poder hacer uso de su nuevo programa. Esto es válido para ambos shells que forman
parte del sistema base (tal como tcsh) y shells que estan disponibles como ports (por ejemplo shells/zsh).

Nota: Por favor, tenga en cuenta que algunos ports cuentan con una licencia que no permite su inclusión en el
CDROM. Probablemente esto es a consecuencia de un registro que se debe hacer previo a la descarga, así
mismo algunos no permiten su re-distribución, y tal. Si desea instalar un port que no se encuentra en el
CDROM, deberá encontrarse conectado a Internet, para poder hacerlo (vea la siguiente sección).

4.5.2.2. Instalando Ports desde Internet
Como en la sección anterior, en este sección se asume que usted cuenta con una conexión activa a Internet. Si no es
así, deberá de llevar a cabo la instalación por medio de CDROM, como se menciono anteriormente.
El instalar un port desde Internet, se hace exactamente de la misma forma que se hace desde un CDROM. La única
diferencia entre estos dos metodos, es que el fichero distfile es descargado de Internet, en lugar de tomarlo del
CDROM.
Los pasos que implica son identicos:

36

Capítulo 4. Instalando Aplicaciones: Paquetes y Ports


# make install

 
 lsof_4.57D.freebsd.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.
Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%

===

439860 bytes transferred in 18.0 seconds (23.90 kBps)
Extracting for lsof-4.57
...
[extraction output snipped]


...


Checksum OK for lsof_4.57D.freebsd.tar.gz.
===

Patching for lsof-4.57
===
===

Applying FreeBSD patches for lsof-4.57
Configuring for lsof-4.57
...
[configure output snipped]
...
===

Building for lsof-4.57
...
[compilation output snipped]
...
===

Installing for lsof-4.57
...
[installation output snipped]
...

===
Generating temporary packing list
===
Compressing manual pages for lsof-4.57
===
===
Registering installation for lsof-4.57
SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
#

Como puede ver, la única diferencia es la línea que indica de donde esta descargando el sistema el código.
El sistema de ports utiliza fetch(1) para descargar los ficheros, que hace uso de varias variables de entorno, como son
FTP_PASSIVE_MODE, FTP_PROXY, y FTP_PASSWORD. Puede ser necesario que modifique una o más de estas, si se
encuentra detrás de un cortafuegos (firewall), o si requiere usar de un proxy FTP/HTTP. Vea la página de ayuda
fetch(3) para una lista completa de las opciones.

4.5.3. Eliminando Ports Instalados
Ahora que sabe instalar ports, probablemente se este preguntando como eliminarlos, sólo en caso de que haya
instalado alguno y posteriormente se de cuenta que ha instalado el port incorrecto. Vamos a eliminar el port instalado
(que era lsof, para todos aquellos que no prestaron atención). Como cuando instalamos ports, lo primero que
debemos hacer es ubicarnos en el directorio del port que deseamos eliminar, que en este caso es
/usr/ports/sysutils/lsof. Una vez que se ha ubicado en este directorio, estamos listos para eliminar lsof.
Esto se hace con el comando make deinstall:

# cd /usr/ports/sysutils/lsof
# make deinstall

37

Capítulo 4. Instalando Aplicaciones: Paquetes y Ports

===
 Deinstalling for lsof-4.57

Esto fué sencillo. Ha eliminado lsof de su sistema. Si desea reinstalarlo, lo puede hacer al ejecutar make
reinstall estando en el directorio /usr/ports/sysutils/lsof.

Los comandos make deinstall y make reinstall no funcionan una vez que ha ejecutado el comando make
clean. Si desea desintalar un port, una vez que ha ejecutado make clean, deberá hacer uso del comando
pkg_delete(1) como se describe en la sección de Paquetes del Handbook.

4.6. Actividades Post-Instalación
Una vez que ha instalado una nueva aplicación, normalmente deberá leer la documentación incluida, editar los
ficheros de configuración necesarios, asegurarse de que la aplicación se ejecute al arrancar el sistema (si es un
daemonio), etc.
Obviamente los pasos exactos para configurar cada aplicación varian de una a otra. De cualquier forma, si recien ha
instalado una nueva aplicación y se pregunta “¿Y ahora qué?”, estos consejos puede que le sean de ayuda:

• Use pkg_info(1) para ver que ficheros se instalaron y donde. Por ejemplo, si recien instaló el paquete FooPackage
1.0.0, el siguiente comando:
# pkg_info -L foopackage-1.0.0 | less

le mostrará los ficheros instalados por el paquete. Preste especial atención a los ficheros en el directorio man/ que
son las páginas de ayuda y los del directorio etc/, que contiene los ficheros de configuración, y bajo el directorio
doc/ podrá encontrar información más detallada.
Si no esta seguro de cual es la versión del paquete instalado, simplemente teclee algo así
# pkg_info | grep foopackage

y le mostrara todos los paquetes que tienen como nombre foopackage. Reemplace foopackage de acuerdo a
sus necesidades en la línea de comandos.

• Una vez que ha identificado donde se localizan las paginas de ayuda de la aplicación, reviselas usando man(1). De
forma similar revise los ficheros de configuración de ejemplo (N. de T. Generalmente estos ficheros son aquellos
que tienen la terminación .sample), así como cualquier documentación adicional que se incluya.
• Si la aplicación cuenta con un sitio web, visitelo en busca de documentación adicional, ficheros de preguntas
frecuentes (FAQ), etc. Si no esta seguro del sitio web, vea la salida del comando
# pkg_info foopackage-1.0.0

este incluye en ocasiones una línea WWW:, que describe el sitio web de la aplicación.

38

¿Qué es eso de tarballs? Es un fichero con extensión .gz % tar xzvf foobar. Básicamente.bz2. Tambié son conocidos como ficheros diff.Z.tar. 4.tgz. 3.tar o con alguna variación tal como . 2. que ha sido archivado en un solo fichero (. ¿Qué no es una discusión acerca de módems? Ah. Si alguno de los caracteres cambia. Capítulo 4.tar. He hecho lo que se indica para compilar ports desde un CDROM y funciona de maravilla hasta que he intentado instalar el port de Kermit. es un pequeño fichero que especifíca como ir de una versión a otra.tar. así como que hacer si encontramos un port roto.gz.gz % tar tvf foobar. ¿Qué es un parche (patch)? Una parche (patch).7. . Tape ARchives).tar. 5.gz doesn’t seem to exist on this system. 39 . “add these two lines after line 468” (añadir estas dos líneas después de la línea 468). Resolución de Problemas La siguiente sección cubre algunas de las preguntas más frecuentes relacionadas a la colección de ports.  # make install cku190.tar 4. Contiene texto plano y cuenta con indicaciones similares a “delete line 23” (borrar la línea 23).tar) y en ocasiones comprimido (. ¿Y un checksum? Es un numero generado por la suma de los datos en el fichero que desea consultar. de la siguiente manera: % tar tvzf foobar. que se encuentran en la parte trasera de su computadora. o incluso . pero es ampliamente usado para distribuir código fuente por todo Internet. Algunas Preguntas y Respuestas 1.tar. o “change line 197 to this” (cambiar la línea 197 por esto). es un árbol de directorio. que se incluye con el sistema base de FreeBSD.tar. Instalando Aplicaciones: Paquetes y Ports 4. y algunas técnicas básicas para la resolución de problemas.1. . o incluso extraerlos usando el programa estandar de Unix tar(1). Usted puede ver que ficheros se encuentran archivados. Aqui nos referimos al término “port” como resultado de aquellas aplicaciones que han sido “portadas” de una versión de Unix a otra. Esta técnica se uso originalmente para archivar en cintas (que es de donde proviene su nombre.7. ya que son generados por el programa diff(1).gz). de tal suerte que esta simple comparación le permite detectar una diferencia. usted debe estar pensando en puertos (ports) seriales.tar % tar xvf foobar. el checksum ya no será igual al total.

así que tendrá descargarlo “a mano”. no permiten su inclusión en el CDROM. Ya hice esto. algunos ports de Perl ignoran la variable PREFIX y proceden a instalar bajo el árbol de Perl. Algunos ports que usan imake(1) (una parte del Sistema de Ventanas X) no trabajan bien con PREFIX..edu/kermit/archives/. debido a restricciones de licenciamiento. algunos ports no se pueden incluir en CDROM. Hacer que estos ports respeten la variable PREFIX es una tarea difícil si no imposible. De forma similar. Capítulo 4. es una buena idea incluir estas variables en sus variables de entorno. en el subdirectorio /usr/ports/distfiles. ¿El esquema de ports trabaja solamente si se tiene todo en /usr/ports? Mi administrador de sistema dice que todo lo debo tener en /u/people/guests/wurzburger. # make PREFIX=/u/people/guests/wurzburger/local install compilará todo en /usr/ports e instalará todo bajo el directorio /u/people/guests/wurzburger/local. ¿Por qué no lo puede encontrar? ¿Acaso tengo un CDROM defectuoso? Como se explico en la sección Instalando Ports desde un CDROM. Si no le agrada estar tecleando todo esto cada vez que desea instalar un port. pero parece que no funciona de esta manera. Si esta es su situación. pero muchos administradores de sistema crean un enlace de este directorio a un servidor remoto o a una unidad local de CDROM de solo lectura. pero cuando intento guardarlo en el subdirectorio /usr/ports/distfiles obtengo un error diciendo algo acerca de que no cuento por los permisos. # make PORTSDIR=/u/people/guests/wurzburger/ports install compilará el port en /u/people/guests/wurzburger/ports e instalará todo bajo el directorio /usr/local. para indicarle al mecanismo de ports que directorios utilizar. Los términos de la licencia de Kermit. Y claro esta que. 6. Kermit es un ejemplo de esto.columbia. puede continuar con el proceso de instalación. es por que no cuenta con una conexión a Internet en ese momento. # make PORTSDIR=.. El sistema de ports. pero debe darnos una buena idea). Una vez que lo haya descargado de alguno de los sitios disponibles (MASTER_SITES listados en el fichero Makefile). Lea la documentación de su shell para ver las instrucciones para hacer esto./local install combinará ambos (lo cual es muy largo para escribir aqui./ports PREFIX=. con el siguiente comando: # make DISTDIR=/directorio/local/con/permisos/de/escritura install 7. una disculpa!. e insistiran en instalar todo bajo /usr/X11R6. entonces deberá especificar un directorio diferente para guardar sus ficheros distfiles. La razón por la cual obtiene esos mensajes de error. Por ejemplo. Puede usar las variables PORTSDIR y PREFIX. descarga los ficheros tarball. Instalando Aplicaciones: Paquetes y Ports  Attempting to fetch from ftp://kermit. 40 .

con el cual se detendra el proceso. si usted sabe que ftp.FreeBSD. gracias por su esfuerzo! 13. Y por cierto. ¿Existe algo similar a make extract.1. pero es un poco cansado tener que verlo y pulsar Ctrl+C a cada momento. make patch es lo que usted busca. Estoy tratando de hacer mi propio port. ¿Existe alguna forma de indicarle al port que descargue los ficheros de un servidor diferente a los listados en MASTER_SITES?.3 de gcc (que es la versión distribuida con FreeBSD 2. He escuchado que algunas opciones del compilador pueden causar errores. Por ejemplo. con algo similar a: # make CFLAGS=’-O2 -fno-strength-reduce’ install 41 . Instalando Aplicaciones: Paquetes y Ports 8.6. una vez que se han descargado y extraido los ficheros necesarios. Usted debe poder indicarle al compilador las opciones. No cuento con un CDROM de FreeBSD. con la versión 2. pero me gustaría contar con todos los ficheros tar a la mano en mi sistema. ¿Hay alguna forma de obtener todos de una sola vez? Para obtener todos y cada uno de los ficheros tar de la Colección de Ports. pero para parches? Si. a menos que utilice también la opción -fno-strength-reduce (la mayoría de los ports no hacen uso de la opción -O2). 11. y quiero poder detener el proceso. ¿Existe alguna forma de detener la compilación del port? Deseo editar un poco el código.org esta más próximo que los servidores listados en MASTER_SITES. Quizás la opción PATCH_DEBUG le sea de gran utilidad.5).FreeBSD. Quisiera saber cuales son los ficheros que make va a necesitar antes de los descargue.org/pub/FreeBSD/ports/distfiles/ fetch 10. quizás ya lo adivinó. antes de instalarlo. más cercano. hasta que verifique que mis parches funcionan correctamente. 9. haga lo siguiente: # cd /usr/ports # make fetch Para todos los tarball de un directorio concreto haga: # cd /usr/ports/directorio # make fetch y para un solo port—bueno. 12. Puede usar el comando make extract. para no tener que descargarlos cada vez que deseo instalar un port.0 y 2. make fetch-list desplegara una lista de los ficheros necesarios para la compilación del port. la opción -O2 puede ocasionar un código con errores. haga lo siguiente: # cd /usr/ports/directorio # make MASTER_SITE_OVERRIDE= \ ftp://ftp. Claro. ¿Es cierto? ¿Cómo puedo asegurarme de compilar los ports con las opciones correctas? Si. Tengo conocimiento de que probablemente es más rápido descargar los ficheros tarball desde un servidor réplica (mirror) de FreeBSD. Capítulo 4.1.

¿Se supone que uno debe saber el numero de versión para usar este comando? Hablando en serio. ¿o si? No del todo. puede encontrar ports relevantes al lenguaje de programación LISP usando: % cd /usr/ports % make search key=lisp 15.5 . ¿Qué esta pasando? El port foo necesita algo del port bar — por ejemplo. He instalado el programa grizzle desde los ports y francamente es un desperdicio de espacio en disco. Lac opciones que por default utiliza el compilador de FreeBSD son muy conservadoras. editando el fichero /etc/make. La mejor forma es ejecutar make configure. Quiero eliminarlo. Instalando Aplicaciones: Paquetes y Ports o bien. ¿Existe en algún lado una lista de los ports disponibles? Vea el fichero INDEX. localizado en /usr/ports. O bien bar puede ser una herramienta necesaria para compilar el port foo. por lo que si no las ha modificado. pero desafortunadamente no todos los ports respetan esto.5 Otra alternativa es teclear: # cd /usr/ports/cualquierlugar/grizzle # make deinstall 17. lo puede saber haciendo: # pkg_info -I ’grizzle*’ Information for grizzle-6. es posible que bar cuente con librerías con rutinas para procesar gráficos. El numero de versión se puede saber usando el comando pkg_info o bien al teclear: ls /var/db/pkg 42 . no debe tener problemas. no esperas que recuerde todo esto. si foo utiliza gráficos. y después dirijirse al directorio con el código fuente e inspeccionar y editar el fichero Makefile. 16. Existen muchos ports y es difícil encontrar el que quiero. Deseo instalar el port foo pero de repente el sistema se detuvo y comenzo a compilar el port bar. 14. pero esto puede ser tedioso si se cuenta con muchos subdirectorios.conf. Si desea. LOGO interpreter and shoot ’em up arcade game. simplemente teclee: # pkg_delete grizzle-6.the combined piano tutorial. y en cada uno su propio fichero Makefile.5: grizzle-6. pero no se donde se instalaron sus ficheros. ¿Alguna pista? No hay problema. Aguarda un momento. Capítulo 4. Por ejemplo. también puede buscar en la Colección de Ports por medio de una palabra clave.

Sugerencia: Es posible que obtengamos el mismo efecto. ¿Existe una forma de instalar todos los ports en un solo paso? Simplemente haga: # cd /usr/ports # make install Tenga cuidado. lo deje corriendo y me fui a dormir. el directorio de ports parece que ocupa mucho espacio. el problema es que algunos ports requieren preguntarle cosas que no podemos contestar por usted (por ejemplo. 20. 19. Capítulo 4. Hablando de espacio en disco. 22. He intentado eso y aun cuento con los tarballs o como se llamen. y requieren de alguien que les dé respuesta. ¿Alguna mejor idea? OK. ya que algunos ports pueden instalar ficheros con el mismo nombre. Me gusta contar con muchos. también los puede eliminar. Por ejemplo. he intentado esto. si ha instalado un programa y esta seguro de que ya no necesita el código fuente. ¿Es seguro eliminar algo de este directorio? Asi es. ¿He hecho algo incorrectamente?. puede eliminar directamente todos los subdirectorios work/ con el comando: # find /usr/ports -depth -name work -exec rm -rf {} \. “¿En qué tipo de papel desea imprimir. no hay una razón para contar con él. si esta totalmente seguro de que ha terminado con ellos. y procederá a eliminar todo lo que encuentre. Realmente no me interesa pasar todo el dí frente al monitor. solo había terminado tres ports y medio. en el directorio distfiles. pero como supuse que tomaria mucho tiempo. Estos se pueden eliminar manualmente. haga lo siguiente antes de irse a la cama/trabajo/el parque local: # cd /usr/ports # make -DBATCH install 43 . salvo los esqueletos del port. En la mañana al ver mi computadora. ¿Puedo eliminarlos también? Si. en A4 o en Carta?”). o bien usando el comando make distclean. muchos programas para jugar con ellos. OK. 21. No. En el caso de que instale dos programas de gráficos y que ambos instalen /usr/local/bin/plot obviamente le va ocasionar problemas. pero sin que necesariamente se llame de forma recursiva a cada Makefile. Instalando Aplicaciones: Paquetes y Ports 18. La forma más segura de hacer esto es: # cd /usr/ports # make clean este comando revisará todos los subdirectorios.

haga: # cd /usr/ports # make -DINTERACTIVE install para terminar el trabajo. existen varias alternativas. a que tener que compilar las fuentes. para que se ajuste a nuestras necesidades. Instalando Aplicaciones: Paquetes y Ports Con esta opción se instalarán todos los ports que no requieren intervención del usuario. se les aconseja abstenerse de ver los ficheros de este directorio. pero lo hemos editado un poco. Si no obtiene respuesta de la persona que da mantenimiento al port. Descargue el paquete de un servidor FTP cercano. de tal forma que pueda arreglar los ports que ocasionalmente estan defectuosos o inclusive para crear y enviar su propio port! 2./porters-handbook/index.org/pub/FreeBSD/ports/packages/). Estoy deseperado por saber ¿Cúal es el secreto? No hay secreto.subdir. asumiendo que usted sabe como crear los parches de sus cambios. 3./. # make package 24.2. (Los lectores que tiene aversión a los scripts de shell. Teclee make maintainer o lea el Makefile para ver el correo de esta persona. simplemente vea los ficheros bsd.org en el directorio de paquetes (ftp://ftp. puede hacer lo siguiente: # cd /usr/ports/algunlugar/frobble # make extract # cd work/frobble-2.mk y bsd. 23.. 44 .FreeBSD. puede usar send-pr(1) para enviar un reporte de error. que se encuentra la Colección de Ports. Arreglelo!! El libro Porter’s Handbook (.8 [Aplicar sus parches] # cd .FreeBSD. No hay problema.7. Es mas seguro que estos trabajen. En mi trabajo usamos frobble. ¿Existe alguna forma de hacer nuestro paquete.mk que se localizan en /usr/ports/Mk/. para poder distribuirlo más facilmente en nuestros sitios?. también es más rápido. Notifiquelo—por correo solamente! Envie un correo a la persona que da mantenimiento al port.html) incluye información detallada de la infraestructura de los "Ports". La colección “maestra” de paquetes se localiza en ftp.. Use el programa pkg_add(1) para instalar paquetes en su sistema. pero asegurese primero de verificar en un servidor réplica (mirror)!. Una vez que regrese. Capítulo 4.port. Esto de los ports es muy inteligente.port. Ayuda! Este Port Esta Roto! (Broken) Si se encuentra con port que no trabaj como lo esperaba.) 4.. Recuerde incluir el nombre y la versión del port (puede enviar la línea $FreeBSD: del Makefile) así como la salida del error que da el port. que incluyen: 1.

El sistema X Window El sistema X Window 45 .Capítulo 5.

explicando también los conocimientos mínimos necesarios para un entendimiento satisfactorio. Cada capítulo comienza describiendo lo que será aprendido una vez finalizada la lectura. Los restantes capítulos de este Manual de FreeBSD cubren todos los aspectos de administración de un sistema FreeBSD. Administración del sistema. II. . Estos capítulos están diseñados para ser leidos cuando se necesita la información. No es necesario leerlos en un determinado orden ni tampoco es necesario leerlos todos antes de comenzar con el uso de FreeBSD.

el BIOS busca en el disco duro el Registro Maestro de Arranque (RMA) (N de T. para sistemas FreeBSD que corren en plataformas Intel x86. • Las opciones que puede manejar con los componentes del mecanismo de arranque de FreeBSD.1. Una vez que concluya con la lectura de este capítulo. Só x86: El presente capítulo describe únicamente el proceso de inicio. El Problema que representa Arrancar el Sistema El encender una computadora e iniciar el sistema operativo. El proceso de arranque de FreeBSD provee de gran flexibilidad al configurar lo que ocurre cuando se inicia el sistema. Sinópsis Al proceso de inicio del sistema y carga del sistema operativo se le conoce como “mecanismo de arranque” (bootstrap). o inclusive diferentes versiones del mismo sistema oprativo o kernels instalados. o simplemente “arranque” (booting).Capítulo 6. El Proceso de Arranque en FreeBSD 6. En caso de que usted desconozca cuando ocurre todo esto. y ha podido salir al tomarse de las cintas de sus botas y jalarse hacia fuera. Para hacer esto. Donde un personaje ha caido parcialmente en un hoyo. el término utilizado para hablar sobre el proceso de carga del sistema operativo era mecanismo de arranque (bootstrap). trae consigo un dilema interesante. usted sabrá: • Cuales son los componentes del mecanismo de arranque de FreeBSD. Conocido como MBR—Master Boot Record). cambia de blanco a gris. permitiendole seleccionar de diferentes sistemas operativos instalados en el mismo ordenador. y el sistema operativo es un conjunto de programas que residen en el disco duro. para controlar el proceso de inicio del sistema. hasta que el sistema operativo ha sido cargado. que por efectos de simplificación ahora conocemos como “arranque” (booting). la computadora no sabe hacer nada. Así que este es el dilema. si la computadora no sabe hacer nada hasta que se cargue el sistema operativo. En los años mozos de la computación. Por definición. En equipos con arquitectura x86.2. El BIOS cuenta con suficiente información. y como es que interactuan entre sí. 6. Esto incluye la ejecución de programas desde el disco duro. esto sucede cuando el color del texto que aparece al iniciar el sistema. y asumir que el RMA puede encargarse del resto de las tareas necesarias en la carga del sistema operativo. el Sistema Básico de Entrada/Salida (BIOS) es el responsable de cargar el sistema operativo. Esto incluye todo lo que sucede hasta que el kernel de FreeBSD comienza con la comprobación de dispositivos y se inicializa init(8). para cargar y ejecutar el RMA. 47 . Este capítulo detalla las opciones de configuración que puede manejar y como personalizar el proceso de arranque de FreeBSD. el cual debe localizarse en un lugar específico del disco. ¿Cómo es que arranca el sistema operativo? Este problema se asemeja a un problema del libro Las Aventuras del Barón Munchausen.

durante las etapas uno y dos. dado que el programa en el RMA sólo puede ser de 512 bytes. se localiza en /boot/boot0. el resto del mecanismo de arranque. que monta los sistemas de ficheros. Pantalla boot0 F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 Default: F2 Es sabido que otros sistemas. uno que despliegue una lista de los diferentes sistemas operativos. La primer etapa es ejecutada por al RMA. quien se asegura de que los discos se encuentren en buen estado para su uso. entonces puede utilizar los siguientes comandos. para efecto de completar la carga del sistema operativo. en cuanto al tamaño de los programas a ejecutar. y prepararlos para su uso. Si usted cuenta con varios sistemas operativos instalados en su disco. así como otros distribuidores de sistemas operativos cuentan con RMAs alternativos. FreeBSD cuenta con un RMA de este tipo que puede ser instalado. El fichero boot0 es muy simple.3. El trabajo es dividido en tres etapas.1. sobreescriben el RMA con el suyo. fuera de la área de FreeBSD. # fdisk -B -b /boot/boot0 dispositivo 48 . ya que el RMA real debe localizarse en una parte especial del disco duro. Capítulo 6. Ejemplo 6-1. En el caso de FreeBSD. el kernel transfiere el control al proceso de usuario init(8). está dividido en tres etapas. le permiten a FreeBSD contar con un arrancador más flexible. La segunda etapa puede hacer un poco más que esto. configura las tarjetas de red para que pueden comunicarse en la red. entonces puede hacer uso de un RMA diferente. Posteriormente init(8) inicia la configuración fuente a nivel de usuario. el RMA estándar será suficiente. La tercer etapa finaliza el trabajo de carga del sistema operativo. Si usted ha instalado el RMA de FreeBSD y ha instalado varios sistemas operativos en sus discos duros. entonces al momento de arrancar el sistema. El RMA. visualizará una pantalla similar a la siguiente. 6. o bien desea reemplazar su RMA actual con el RMA de FreeBSD. antes de ejecutar la tercer etapa. debido a las limitantes que tiene una PC. /boot/boot0 El RMA de FreeBSD. Una vez que el proceso de arranque del kernel ha finalizado. que sabe lo suficiente como para poner a la computadora en un estado específico y ejecutar la segunda etapa. Este RMA buscará la primer partición del disco que pueda arrancar. y le permita escoger cual de ellos desea que se cargue. Si esto le sucede. y posteriormente ejecutará el código restante de dicha partición. Dos y Tres 6. Este es una copia del RMA. RMA. y las Etapas de Arranque Uno. en particular Windows 95. Posteriormente el kernel es inicializado y comienza con la comprobación de dispositivos. y comunmente inicia todos los procesos que normalmente son ejecutados en un sistema FreeBSD al arrancar el mismo. El Proceso de Arranque en FreeBSD Si usted sólo cuenta con un sistema operativo instalado en su disco duro. El encadenar estas tareas.3.

El Proceso de Arranque en FreeBSD Donde dispositivo es aquel. para efecto de localizar y ejecutar boot2. 6. pero estas siempre se instalaran de manera conjunta. boot2 la ejecuta normalmente. puede editar el fichero /etc/lilo. y Etapa Dos. puede arrancar Linux y modificar el fichero de configuración de LILO. y puede proveer una interfaz simple. y conocer simplemente del etiquetador de discos de FreeBSD (disklabel).2.conf. desde el cual usted pretende arrancar el sistema. Si ha instalado el gestor de arranque de FreeBSD. Nota: N de T: La opción mencionada como. En nuestro ejemplo hemos utilizado XY para especificar el disco utilizado y su partición. El fichero boot1 es muy simple. tal como ad0 para el disco conectado al primer IDE. /boot/boot2 Conceptualmente las estapas uno y dos. y provee una configuración de arranque más sencilla de utilizar. Etapa Uno. en la misma área del disco. Si usted utiliza un sistema SCSI. /etc/lilo.b puede omitirse si usted cuenta con ambos sistemas operativos en el mismo disco. son parte del mismo programa. o cualquier otro programa del RMA espera encontrar el programa que dará continuación al proceso de arranque. y comprende lo suficiente del sistema de ficheros de FreeBSD como para localizar ficheros en el. lo cual deberá verificarse con los mensajes que aparezcan en pantalla. Por otro lado. Ejemplo 6-2. una vez que ha terminado la fase de partición del disco duro. deberá cambiar /dev/hdXY por algo similar a /dev/sdXY. Una vez que esto se ha completado. /boot/boot1. si usted es un usuario de Linux. de la partición de arranque. Capítulo 6.b label=FreeBSD lo que permitirá el arranque de FreeBSD y Linux. se mostrará “tal cual” aparece en este documento. En virtud de que el cargador (loader) es mucho más sofisticado. Pantalla de boot2  FreeBSD/i386 BOOT 49 . en virtud de que sólo puede tener un tamaño de 512 bytes. que nuevamente utiliza la sintáxis XY. el cual almacena la información de las particiones. Leave The Master Boot Record Untouched. La opción loader=/boot/chain.3. por medio de LILO. una vez que ha terminado de solicitar el arranque del kernel directamente. que se localizan fuera del sistema de ficheros de FreeBSD. añadiendo la siguiente opción: other=/dev/hdXY table=/dev/hdb loader=/boot/chain. Los ficheros localizados bajo el directorio /boot son copias de los ficheros reales. y así sucesivamente. puede ejecutar /sbin/lilo -v para que se actualicen los cambios en el sistema. y prefiere que la aplicación LILO controle el proceso de arranque. para seleccionar el kernel o cargador que deberá ejecutarse. da0 para el primer disco SCSI. Por cuestiones de espacio se han dividido en dos. Estas son localizadas en el sector de arranque. ad2 para el disco maestro conectado al IDE secundario. o bien seleccionar la opción Leave The Master Boot Record Untouched durante el proceso de instalación. que es donde boot0. El fichero boot2 es un poco más sofisticado.conf para incluir a FreeBSD.

tal como ad0s1 para la primer partición del disco Mastro—Primario. Flujo del Programa Cargador Durante la inicialización del sistema. Finalmente. En el caso de que al hacer esta pausa.rc. para establecer valores de las variables modificadas. y donde el usuario puede ajustar ciertas variables. por favor consulte la página de ayuda loader(8) 50 . el cargador hará una comprobación en busca de una consola y discos. procederá a arrancar el kernel. Capítulo 6. y sabra de que disco se encuentra arrancando. el proceso será interrumpido y se nos mostrará un interprete de comandos (prompt). utilizando una serie de comandos integrados de fácil uso.2. # disklabel -B partición Donde partición es el disco y partición del cual pretende arrancar el sistema. así que asegurese dos veces antes de presionar la tecla Return cuando utilice disklabel(8). Etapa Tres. tal como ad0.conf que a su vez. que por default lee la información del fichero /boot/defaults/loader. respaldado por un intérprete más poderoso. que entiende el conjunto de comandos de fácil-uso. establece las variables correspondientes y verifica en el fichero /boot/loader.3. 6.3. loader. cargando cualquier módulo y kernel seleccionado. cargar y descargar todos los modulos.conf los cambios locales que se hayan hecho. Para ver una descripción detallada de los mismos. Establecerá las variables necesarias.3.3. Seguramente esto no es lo que desea hacer. Una vez llevado a cabo esto.rc actua sobre estas variables. de no ser así. Modo Peligrosamente DedicadoSi sólo utiliza el nombre del disco.1. /boot/loader (cargador de arranque) El cargador es la etapa final de las tres etapas del mecanismo de arranque. y posteriormente es iniciado el intérprete donde se pueden ingresar comandos desde un fichero script o de manera interactiva. utilice disklabel(8). y por default. Comandos Internos del Cargador A continuación se presentan los comandos más comunes del cargador. 6. normalmente como /boot/loader. y esta localizado en el sistema de ficheros.3. se haya presionado una tecla (diferente de Return). sin partición alguna. Posteriormente el cargador leerá el fichero /boot/loader. el cargador hace una pausa contando 10 segundos y en espera de que al presionar una tecla se interrumpa el proceso. al usar el comando disklabel(8) creará un disco peligrosamente dedicado. El cargador pretende ser un metodo amistoso de configuración.a)/kernel boot: Si alguna vez requiere reemplazar los ficheros boot1 y boot2 instalados. 6.3. El Proceso de Arranque en FreeBSD Default: 0:ad(0. con una serie de comandos de mayor complejidad. y finalmente arrancar o reiniciar el sistema.

. lsdev [-v] Nos muestra una lista de todos los dispositivos desde los cuales puede ser posible cargar modulos. si es que se especifica alguno. Cualquier argumento que se añada. o el fichero del tipo dado. se mostraran más detalles. el listado que se obtiene cuenta con más detalle. o en el directorio raíz. en base al fichero especificado. Si se incluye la opción -v. como sucede al arrancar. será pasado al fichero. El fichero es leido e interpretado línea por línea. Capítulo 6. lsmod [-v] Despliega los módulos cargados. que lee del fichero /boot/loader. entonces se mostrará una lista de todos los temas disponibles. Cualquier error detendrá inmediatamente al comando include. también se mostrara el tamaño de los ficheros. si es que fuera el caso y el kernel especificado. si es que no se le especifica ruta alguna.help. si en primer lugar hemos usado el comando unload. Despliega una cuenta regresiva. 51 . Si se utiliza la opción -l. load [-t tipo] fichero Carga el kernel. haciendo una pausa a cada numero determinado de LINEAS mostradas. include fichero . modulo del kernel. . Si se utiliza la opción -v. boot [-opciones] [nombre_del_kernel] Procede a iniciar el kernel de manera inmediata. Procesa el fichero que se ha especificado. Esta opción sólo tiene sentido utilizarla. y hemos modificado alguna variable. y el tiempo dado es de 10 segundos. Si el tema que se indica es index. si es que no es interrumpido el periodo dado. more fichero Despliega el contenido del fichero especificado. set variable set variable=valor Especifica los valores de las variables de entorno del cargador. en segundos. siendo lo más común el kernel. El Proceso de Arranque en FreeBSD autoboot segundos Procede a iniciar el arranque del sistema. help [tema] Muestra la ayuda de un tema específico. ls [-l] [ruta] Despliega un listado de todos los ficheros que se localizan en la ruta especificada. boot-conf Rehace la configuración automática de modulos en función a las variables definidas. con las opciones dadas. reboot Reinicia el sistema de forma inmediata.

en busca de cambios. Nota: Utilice lo siguiente para cargar sus módulos actuales con otro kernel: unload set kernel="kernel. • Para arrancar simplemente su kernel usual. o bien puede utilizar kernel.old Puede utilizar kernel. El Proceso de Arranque en FreeBSD unload Remueve todos los módulos cargados. 6. ya sea por el cargador (que es lo común) o bien por boot2 (sobrepasando el cargador).1. deberá hacer lo siguiente: boot -s • Para descargar su kernel usual y sus módulos correspondientes. pero en modo mono-usuario. Ejemplos de Uso del Cargador He aqui unos ejemplos prácticos sobre el uso correcto del cargador. y ajustar su comportamiento en caso de ser necesario. examinará las opciones de arranque.3.GENERIC para referirse al kernel generico actual que viene con la instalación. cuando ha actualizado su sistema o ha recompilado su propio kernel).conf 6. Opciones de Arranque del Kernel He aqui las opciones de arranque más comunes: 52 .4. 6.4. Capítulo 6.old para hacer referencia al kernel anterior (por ejemplo.3. Interacción con el Kernel Durante el Arranque Una vez que el kernel ha sido iniciado. y posteriormente cargar su kernel anterior (o cualquier otro): unload load kernel.3.old" boot-conf • Para cargar un escrito de configuración (script que de forma automática hará todo lo que normalmente hace usted de forma manual al momento de ejecutarse el configurador de arranque): load -t escrito_de_configuración /boot/kernel.

-s arranca el sistem en modo mono-usuario. antes de ingresar al sistema en modo mono-usuario.5.5. para montar el sistema de ficheros raíz. o bien en la ruta especificada por la variable de entorno init_path del cargador. 6. -v imprime mensajes informativos durante el arranque del kernel Nota: Existen otras opciones de arranque. pregunta por los dispositivos a utilizar.2. 6. o por medio de la opción -s en el arranque de usuario o al establecer la variable boot_single en el cargador. El Proceso de Arranque en FreeBSD -a durante la inicialización del kernel. Si no lo son. Capítulo 6. de tal forma que el administrador pueda ingresar en él y arreglar los problemas directamente. Si la consola del sistema esta configurada de modo inseguro en el fichero /etc/ttys. pasará el control a un proceso de usuario llamado init. 53 . por favor vea la página de ayuda boot(8) para más información al respecto. al utilizar el comando shutdown sin la opción de reinicio (-r) o la de apagado (-h) del sistema. y el programa fsck no puede arreglar estas inconsistencias.1.5. init envia el sistema a modo monousuario. -C arranque desde una unidad de CDROM. También desde el modo multi-usuario se puede acceder. la utilidad de configuración de arranque del kernel. 6. -c ejecuta UserConfig. Secuencia Automática de Reinicio La secuencia automática de reinicio se asegura de que los sistemas de ficheros disponibles en el sistema sean consistentes. entonces el sistema solicitará la contraseña del superusuario (root). el cual se localiza en /sbin/init. Init: Inicialización del Proceso de Control Ya que el kernel ha finalizado de arrancar. Modo Mono-Usuario A este modo se puede llegar por medio de la secuencia automática de reinicio.

conf. 6.3. así como varios demonios del sistema.3.5. y no que desea ejecutar la consola inseguramente.6. Esto es. y posteriormente procede a montar los sistemas de ficheros del sistema. 6. el sistema entrará al modo multi-usuario. y subsecuentemente la señal KILL a cualquiera que no haya terminado en tiempo. en donde comienzan los ficheros de configuración-fuente del sistema. 54 .1. Modo Multi-Usuario En el caso de que init encuentre en buen estado al sistema de ficheros. Configuración-Fuente(rc) La configuración fuente lee la configuración por default del fichero /etc/defaults/rc. La página de ayuda rc(8) es una buena referencia para conocer más de este tipo de ficheros. localmente. así como examinar los mismos ficheros. para finalmente ejecutar los escritos (scripts) de configuración instalados por paquetes. Capítulo 6. y detalles específicos del sistema desde el fichero /etc/rc. si desea contar con seguridad escoja la opción insecure. por lo que desea asegurarse de que sólo quien conoce la contraseña del superusuario puede ingresar al sistema en modo mono-usuario. then init will ask for the root password # when going to single-user mode. Secuencia de Apagado Una vez que el apagado sea controlado. para posteriormente enviar a todos los procesos la señal TERM.shutdown. iniciar servicios de red. El Proceso de Arranque en FreeBSD Ejemplo 6-3. Una Consola Insegura en /etc/ttys # name getty type status comments # # If console is marked "insecure". console none unknown off insecure Nota: Una consola insegura significa que usted considera como insegura físicamente su consola. init ejecutará el escrito /etc/rc.conf. descritos en /etc/fstab.5. por medio del comando shutdown. 6. y no secure. o una vez que el usuario ha terminado del modo mono-usuario.

Sinopsis FreeBSD permite que varios usuarios usen el mismo ordenador. Usuarios y administración básica de cuentas Contributed by Neil Blakey-Milner. 55 . • Cómo eliminar cuentas. por ello la administración de usuarios y cuentas es de una gran importancia en sistemas FreeBSD. como el nombre completo del usuario. en cuyo caso no se requerirá ninguna para acceder al sistema. Después de leer este capítulo sabrás: • Cuáles son las diferencias entre las distintas cuentas de usuario en sistemas FreeBSD. o su shell preferida. • Cómo establecer límites por cuenta. • Cómo cambiar detalles de las cuentas. Obviamente. cada cuenta debería tener una constraseña no vacía. Existen algunas reglas para la creación de nombres de usuario válidos documentadas en passwd(5). 7. • Cómo usar grupos para facilitar la administración de cuentas. Cada cuenta en un sistema FreeBSD tiene cierta información asociada que la identifica. no puede haber dos usuarios con el mismo nombre de usuario. para controlar los recursos como memoria o tiempo de CPU que las cuentas y grupos de cuentas pueden emplear. Introducción Todos los accesos al sistema se consiguen vía cuentas. • Cómo añadir cuentas. 7. pero cualquier número de usuarios puede entrar por la red para hacer su trabajo. La contraseña puede ser vacía.2. sólo uno de estos usuarios puede sentarse frente al monitor y al teclado en un momento dado 1 . y todos los procesos son ejecutados por usuarios. típicamente se usarían nombres de usuario de a lo sumo ocho caracteres. Esto normalmente es una mala idea. todos ellos en minúscula. Antes de leer este capítulo deberías: • Entender los conceptos básicos de Unix y FreeBSD (Capítulo 3). Los nombres de usuario han de ser únicos en la computadora. Contraseña Cada cuenta tiene una contraseña asociada.1.Capítulo 7. Nombre de usuario El nombre de usuario como se le entraría al prompt login:. Para usar el sistema cada usuario ha de tener una cuenta.

Esta información puede ser asociada a la cuenta. pero no refleja su verdadero nombre necesariamente. 56 . las cuentas de usuarios son usadas por gente real. Usuarios y administración básica de cuentas Identificador de usuario (UID) El UID es un numero entre 0 y 65536 que sirve para identificar unívocamente al usuario en el sistema. que pueden expresarse en la configuración de su cuenta. Es improbable que alguna vez tengas que hacer algo así. Un usuario puede pertencer a más de un grupo. en vez del UID. FreeBSD usa el UID para identificar usuarios y cualquier comando de FreeBSD que permita especificar un nombre de usuario convertirá éste al UID antes de trabajar con él. Una convención usual consiste en poner todos los directorios home en /home/nombre_de_usuario o en /usr/home/nombre_de_usuario. Identificador de grupo (GID) El GID es un número entre 0 y 65536 que sirve para identificar unívocamente el grupo principal al cual pertenece un usuario. Existen varios tipos de shell y los usuarios experimentados tendrán sus propias preferencias. La cuenta de superusuario. Una vez vencido su tiempo de expiración una cuenta no puede ser usada para entrar en el sistema. Tiempo de cambio de contraseña Por defecto FreeBSD no obliga a los usuarios a cambiar su contraseña periódicamente. haciendo que algunos o todos deban cambiar sus contraseñas al cabo de cierto periodo de tiempo. Finalmente. entonces puedes especificar cuándo expiran. Se puede requerir esto a determinados usuarios. leen correo. Los usuarios guardarían sus archivos personales en sus directorios home. normalmente llamada root. Tiempo de expiración de cuentas Por defecto las cuentas en FreeBSD no expiran. las cuentas de los estudiantes de una escuela. etcétera. por ejemplo. Esto significa que puedes tener varias cuentas con nombres de usuario distintos pero con el mismo UID. se usa para administrar el sistema sin limitaciones en los privilegios. aquellos que entran. Nombre completo de usuario El nombre de usuario identifica unívocamente a una cuenta para FreeBSD. Los grupos son un mecanismo para controlar el acceso a recursos del sistema en base al GID. Internamente. y en cualquier directorio que creasen allí. tales cuentas son un solo usuario. Existen principalmente tres tipos de cuentas. la cuenta de superusuario. Los usuarios del sistema utilizan servicios del mismo. Esto puede reducir significativamente el tamaño de algunos ficheros de configuración. las cuentas de usuarios del sistema. Si estás creando cuentas que sabes que van a tener un tiempo limitado de vida. si bien sus directorios y archivos serán conservados. y las de usuarios. Directorio home El directorio home es el camino completo de un directorio en el sistema en el que el usuario se hallará cuando entre. En lo que a FreeBSD respecta. Clase de login Las clases de login son una extensión al mecanismo de grupos que ofrecen una mayor flexibilidad a la hora de adaptar el sistema a distintos usuarios. Capítulo 7. Shell de usuario La shell provee el entorno por defecto mediante el cual los usuarios interactúan con el sistema.

y news. Modificación de cuentas Existe una variedad de comandos disponible en el entorno Unix para modificar cuentas de usuario. y un mal uso de la cuenta de superusuario puede conllevar desastres espectaculares. exploración general del sistema. La cuenta superusuario La cuenta superusuario. Esto es así porque el superusuario. Deberías comprobar siempre un par o tres de veces los comandos que ejecutas como superusuario. más ficheros y procesos estarán asociados con dicho usuario. si todos los servicios corrieran como superusuario podrían actuar sin ninguna restricción. por ello es generalmente mejor utilizar cuentas de usuario normales cuando sea posible. Cada persona que acceda a tu sistema debería tener una sola cuenta de usuario. nobody es el usuario de sistema sin privelegios genérico. Así pues. 57 . evita que interfieran las configuraciones de distintos usuarios. No obstante. Cada usuario puede configurar su entorno para acomodarlo al uso que hace del sistema. Estas cuentas aíslan al usuario del entorno. explicamos cómo crear cuentas adicionales. Los comandos más comunes se hallan resumidos a continuación. atajos de teclado e idioma alternativos. operator. en este mismo capítulo. Esto es así por seguridad. es importante tener en cuenta que cuantos más servicios use nobody. y no debería ser utilizada para tareas cotidianas como enviar o recibir correo. puede operar sin límites. 7.6. Capítulo 7. etc. Esto aplica tanto si trabajas en una máquina con varios usuarios como si trabajas en una máquina con un solo usuario. etcétera. 7. a no ser que especialmente necesites privilegios extra. y permitiendo a su vez que pueda personalizar su entorno sin que esto afecte a otros. que unos puedan leer el correo de otros. y en consecuencia más privilegiado será. y cómo cambiar de usuario normal a superusuario.3.4. utilizando shells. Con frecuencia. viene preconfigurada para facilitar la administración del sistema. Las cuentas de usuario no pueden destruir el sistema por un error. impidiendo que pueda dañar al sistema o a otros usuarios. a diferencia de las cuentas de usuario. servidores web. bind (para el DNS). Algunos ejemplos de usuarios de sistema son daemon. Esto te permite averiguar quién está haciendo qué. correo. Más adelante. seguidos de ejemplos más detallados de su uso. o programación.5. 7. Usuarios y administración básica de cuentas 7. Cuentas de usuario Las cuentas de usuario constituyen la principal vía de acceso al sistema para la gente real. editores. normalmente llamada root. Cuentas de sistema Los usuarios de sistema son aquéllos que corren servicios como DNS. lo primero que deberías hacer después de leer este capítulo es crear una cuenta sin privilegios de uso general para ti si aún no la tienes. los administradores de sistemas crean el usuario httpd para que ejecute los servidores web que instalan. ya que un espacio de más o un carácter omitido pueden significar una pérdida de datos irreparable.

chpass Una herramienta flexible para modificar la base de datos de usuarios. Configuración de adduser # adduser -v Use option “-silent” if you don’t want to see all warnings and questions. 2 A continuación configuramos valores por defecto para adduser y creamos nuestra primera cuenta de usuario. pw Una herramienta potente y flexible para modificar cualquier aspecto de las cuentas de usuario. I will give you the chance later to correct any input.6. passwd Una herramienta de línea de comandos simple para cambiar contraseñas de usuario.1. También crea un directorio home para el nuevo usuario. 7. dado que utilizar root para uso normal del sistema es pernicioso y peligroso.message]: no Do not send message Use passwords (y/n) [y]: y Write your changes to /etc/adduser. Para crear el fichero inicial de configuración usa adduser -s -config_create. Don’t worry about mistakes. Check /etc/shells Check /etc/master. Ejemplo 7-1.message no [/etc/adduser.passwd Check /etc/group  Enter your default shell: csh date no sh tcsh zsh [sh]: zsh Your default shell is: zsh . Crea entradas en los archivos de sistema passwd y group. Enter username [a-z0-9_-]: jru Enter full name []: J. Capítulo 7. rmuser La aplicación de línea de comandos recomendada para eliminar usuarios. adduser adduser es un programa simple para añadir usuarios. Random User Enter shell csh date no sh tcsh zsh [zsh]: Enter home directory (full path) [/home/jru]: Uid [1001]: Enter login class: default []: Login group jru [jru]: 58 ./usr/local/bin/zsh Enter your default HOME partition: [/home]: Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: Send message from file: /etc/adduser. copia allí ficheros de configuración por defecto (“dotfiles”) de /usr/share/skel.conf? (y/n) [n]: y Ok. y opcionalmente puede enviar al usuario un mensaje de bienvenida. let’s go. Usuarios y administración básica de cuentas Comando Resumen adduser La aplicación de línea de comandos recomendada para añadir nuevos usuarios.

y deshabilitamos el envío de un mensaje de bienvenida a nuevos usuarios. y nos aseguramos de que jru esté en el grupo wheel (de modo que puede asumir el papel de root vía el comando su). Usuarios y administración básica de cuentas Login group is “jru”. Nota: Usa adduser sin argumentos en adelante. Si el programa te pide modificarlas sal y prueba con la opción -s. 3. creamos una cuenta para jru. tampoco se muestran asteriscos. Mata todos los procesos pertenecientes al usuario. Asegúrate de no entrar dos veces una contraseña equivocada. rmuser Puedes usar rmuser para eliminar completamente del sistema a un usuario. 5. Elimina la entrada del usuario en crontab(1) (si tiene alguna). Invite jru into other groups: guest no [no]: wheel Enter password []: Enter password again []: Name: jru Password: **** Fullname: J. Elimina los archivos de correo entrante del usuario de /var/mail. Elimina las tareas at(1) pertenecientes al usuario. Luego grabamos la configuración. 7. rmuser efectúa los siguientes pasos: 1.6. 7. 6. 59 . Borra todos los ficheros del usuario de áreas en las que se guardan archivos temporales como /tmp. 2. Nota: La contraseña que escribes no se muestra. no necesitarás cambiar las opciones por defecto. 4. cambiamos la shell por defecto a zsh (una shell alternativa incluida en la colección de ports). Random User Uid: 1001 Gid: 1001 (jru) Class: Groups: jru wheel HOME: /home/jru Shell: /usr/local/bin/zsh OK? (y/n) [y]: y Added user “jru” Copy files from /usr/share/skel to /home/jru Add another user? (y/n) [y]: n Goodbye! # En resumen. Borra el directorio home del usuario (si le pertenece). Capítulo 7.2. Elimina al usuario del fichero local de contraseñas del sistema.

# 7. Cuando se sale del editor la base de datos de usuarios se actualiza con la nueva información. Capítulo 7.recover: done. Removing user’s incoming mail file /var/mail/jru: done. Nota: Si un grupo queda vacío y el nombre del grupo coincide con el del usuario. Updating group file: trusted (removing group jru -. Por defecto existe un modo interactivo que intenta asegurar que uno sabe lo que hace. el grupo es eliminado.6. Login: jru Password: * Uid [#]: 1000 Gid [# or name]: 1000 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jru Shell: /usr/local/bin/tcsh 60 . Usuarios y administración básica de cuentas 8. Random User:/home/jru:/usr/local/bin/tcsh Is this the entry you wish to remove? y Remove user’s home directory (/home/jru)? y Updating password file. Finalmente. como el superusuario. Removing files belonging to jru from /var/tmp: done. updating databases. Removing files belonging to jru from /tmp: done. son los únicos que pueden modificar la información y contraseñas de otros usuarios con chpass. chpass chpass cambia información de los usuarios en base de datos como contraseñas.3. elimina el nombre de usuario de todos aquellos grupos a los que pertenece en /etc/group. salvo un nombre de usuario opcional. Ejemplo 7-2. rmuser no puede ser usado para eliminar cuentas de superusuario. Los administradores del sistema. Cuando no le pasamos más opciones. chpass muestra un editor con información de usuario. Ejemplo 7-3. Removing files belonging to jru from /var/tmp/vi. Eliminación interactiva de cuenta con rmuser # rmuser jru Matching password entry: jru:*:1001:1001::0:0:J. dado que algo así es casi siempre señal de masiva destrucción.personal group is empty) done. done. shells y datos personales. esto complementa la creación de grupos por usuario de adduser(8). chpass interactivo ejecutado por el superusuario #Changing user database information for jru.

Cambio de tu contraseña % passwd Changing local password for jru. como también lo son ypchpass. NIS será tratado en el Capítulo 16. por lo que no es necesario especificar el yp antes del comando. Random User Office Location: Office Phone: Home Phone: Other information: Nota: chfn y chsh son enlaces a chpass. passwd: done Ejemplo 7-6.. 7. Ejemplo 7-5. e ypchsh. Usuarios y administración básica de cuentas Full Name: J. Cambio de la contraseña de otro usuario como superusuario # passwd jru Changing local password for jru.4. ypchfn.. y sólo para sí mismo. New password: 61 . Old password: New password: Retype new password: passwd: updating the database. El soporte para NIS es automático.6. Nota: Los usuarios han de introducir su contraseña original antes de cambiarla para prevenir que gente no autorizada pueda hacerlo cuando no se encuentren en la consola. como superusuario. Random User Office Location: Office Phone: Home Phone: Other information: Un usuario normal puede modificar un pequeño subconjunto de esta información. Capítulo 7. Shell: /usr/local/bin/tcsh Full Name: J. chpass interactivo ejecutado por un usuario normal #Changing user database information for jru. Ejemplo 7-4. passwd passwd es el comando que se usa normalmente para cambiar tu propia contraseña como usuario o. Si esto te resulta algo confuso no te preocupes. la de otros usuarios.

Usuarios y administración básica de cuentas Retype new password: passwd: updating the database.conf(5)). yppasswd es un enlace a passwd. Limitar a los usuarios En un sistema multiusuario es probable que no confíes en que el sistema no vaya a ser dañado por ningún usuario.. La semántica precisa está fuera del alcance de esta sección. junto con el resto de capacidades de login. En segundo lugar. de manera que NIS funciona con ambos comandos. Un límite blando puede ser ajustado por el usuario o una aplicación.5. memoria. donde nombre es un identificador conocido y valor una cadena de texto arbitraria que se procesa en función del nombre. pero se describe con detalle en la página de manual login. a continuación veremos los límites de recursos más comúnmente usados (el resto. además. en realidad no constituyen un caso especial de capacidades de login). que estas diferencias vienen impuestas por cómo se tratan los límites específicamente. no por la implementación del marco de capacidades de login (es decir. En primer lugar.conf(5). Capítulo 7. no obstante. aunque los nuevos usuarios puede que lo encuentren algo más complicado que el resto de comandos que presentamos aquí. passwd: done Nota: Como ocurre con chpass.conf(5). pw tiene un conjunto de opciones de línea de comandos bastante potente que lo hacen adecuado para su uso en scripts de shell. Las cuotas se estudian en el capítulo de quotas. Éste último puede ser disminuido por el usuario pero nunca aumentado. Es suficiente decir que cada usuario es asignado a una clase de login (default por defecto). Las cuotas de disco permiten al administrador decirle al sistema de ficheros qué cantidad de espacio de disco puede utilizar un usuario. y que cada clase de login tiene un conjunto de capacidades asociado. El resto de límites de recursos incluyen cantidad de CPU. eliminar. Establecer clases y capacidades de login es bastante sencillo y también se describe en login. Nótese. Sin más. ofrecen una manera rápida de comprobar el uso de disco de un usuario sin tener que calcularlo cada vez.6. modificar. Una capacidad de login es un par nombre=valor .conf. 7. y mostrar usuarios y grupos.7. Los límites de recursos son diferentes de las capacidades de login en dos sentidos. pero no puede ser más alto que el límite duro.. Las clases de login se definen en /etc/login. puede encontrarse en login. para cada límite existe un límite blando (actual) y uno duro. la mayoría de los límites de recursos aplican a un usuario concreto por proceso. y otros recursos que el usuario puede utilizar. 7. no globalmente. Hace de interfaz a los archivos del sistema de usuarios y grupos. coredumpsize 62 . pw pw(8) es una utilidad de línea de comandos para crear.

cc(1). no para el conjunto de todos los archivos que posee.. Aun y así. ej. maxproc Éste es el máximo número de procesos que un usuario puede ejecutar a la vez. por razones obvias. emacs) deja de funcionar abruptamente.. Nota: Éste es un límite sobre el tiempo de CPU consumido. y demás preprocesadores intermedios).. este límite se especifica para ficheros individuales. A diferencia de las cuotas de disco. Algunas tareas. activar este límite puede evitar que agoten el espacio de disco de que disponen si algún programa grande (p. ej. Usuarios y administración básica de cuentas El tamaño de un fichero core generado por un programa está. Algunos programas críticos para el sistema. lanzan múltiples procesos (p. 63 . Capítulo 7. este límite no puede ser mayor que el límite de sistema especificado por kern. filesize Éste es el tamaño máximo que puede llegar a tener un fichero del usuario. cputime Ésta es la máxima cantidad de tiempo de CPU que los procesos de un usuario pueden consumir. ej.maxproc sysctl. y sería bastante inútil: un compilador —probablemente una tarea legítima— puede usar prácticamente el 100% de la CPU durante algún tiempo con facilidad. como amd(8). subordinado a otros límites sobre uso de disco (p. make(1). filesize. se usa frecuentemente como un método menos severo de controlar consumo de espacio de disco. dado que los usuarios no generan ficheros core por ellos mismos. Un límite de ese tipo no es posible a día de hoy. o cuotas de disco). no el porcentaje de uso de CPU que se muestra en algunos campos de top(1) y ps(1).. Por razones obvias. ej. incluidos tanto los procesos en primer plano como los procesos en segundo plano. y a menudo no los borran. ver mlock(2)). se quedan bloqueados en la memoria principal de manera que en caso de ser llevados a swap no contribuyan a la basura del sistema si hay algún problema. como compilar largos programas. Obsérvese también que si asignamos un valor demasiado bajo a este límite podemos mermar la productividad de un usuario: frecuentemente es útil entrar múltiples veces en el sistema o ejecutar pipelines. memorylocked Ésta es la máxima cantidad de memoria que un proceso puede haber solicitado tener bloqueada en memoria principal (p.

no al usuario en general. Hay unas pocas cosas más a recordar cuando establecemos límites de recursos. Esto también aplica al uso de memoria. y por lo tanto mbufs. en consecuencia. openfiles Ésta es la máxima cantidad de archivos que un proceso puede tener abiertos. getrlimit(2). Se originó como respuesta a un viejo ataque DoS que creaba muchos sockets. login. Usuarios y administración básica de cuentas memoryuse Ésta es la mayor cantidad de memoria que un proceso puede consumir en todo momento. En FreeBSD. No se trata de un límite para restringir el consumo de memoria en general. consulta las páginas de manual relevantes: cap_mkdb(1).maxfiles sysctl. los archivos se usan tambien para representar sockets y canales IPC. sugerencias. el límite para esto lo define kern. A nivel de sistema. • A los usuarios del X Window System (X11) probablemente se les debería conceder más recursos que al resto. X11 de por sí consume muchos recursos. • Recuerda que hay muchos límites que aplican a procesos individuales. Por sí solo no es suficiente para limitar la cantidad de memoria que puede usar un programa. pero es un buen comienzo. debería ser usado junto con otros límites. la cantidad de ficheros que un usuario puede abrir es el valor de openfiles multiplicado por el valor de maxproc. puedes saber lo que es apropiado para tu sistema. Capítulo 7. y comentarios varios. 64 . Para más información acerca de límites de recursos y clases y capacidades de login en general. • Aunque el /etc/login. poner openfiles a 50 significa que cada uno de los procesos que ejecute un usuario puede abrir a lo máximo 50 ficheros. Incluye tanto memoria normal como uso de swap. el administrador. Así. pero puede ser usado en general para limitar las comunicaciones por red. sbsize Éste es el límite de cantidad de memoria de red. A continuación vienen algunas recomendaciones.conf que viene con el sistema tiene valores razonables para la mayoría de los límites. que un usuario puede consumir. Por ejemplo.conf(5). pero además contribuye a que los usuarios ejecuten más programas simultáneamente. sólo tú. cuida de no poner este límite demasiado bajo. • Los procesos que se ponen en marcha cuando arranca el sistema por /etc/rc están asignados a la clase de login daemon. así. stacksize Éste es el tamaño máximo que puede alcanzar la pila de un proceso.

Ejemplo 7-8. Si no quieres editar /etc/group manualmente. Añadir a alguien a un grupo usando pw(8) # pw groupmod teamtwo -M jru # pw groupshow teamtwo teamtwo:*:1100:jru El argumento de la opción -M es una lista con los usuarios que son miembros del grupo separados por comas. pw(8) sólo manipula el fichero /etc/group. nunca tratará de leer datos adicionales de /etc/passwd. 7. Capítulo 7. no constará como miembro cuando usemos el comando groupshow con pw(8). Sabemos de secciones anteriores que el fichero de contraseñas también contiene un grupo para cada usuario. Se trata de un fichero de texto plano con cuatro campos separados por el signo dos puntos. Éste tema se trata en el capítulo Localización. puedes usar el comando pw(8) para añadir y modificar grupos. por supuesto.9. Para una descripción más completa de la sintaxis. el tercero el ID de grupo. pero sí cuando la información se consulte con id(1) u otra herramienta similar. que no se cometan errores de sintaxis!). juegos de caracteres. Ejemplo 7-9. La correspondencia entre nombres e IDs de grupo está en /etc/group. el segundo la contraseña encriptada. Determinar pertenencia a grupos con id(1) % id jru uid=1001(jru) gid=1001(jru) groups=1001(jru). Los grupos se identifican por su nombre de grupo y gid (ID de grupo). ver la página de manual group(5). Usuarios y administración básica de cuentas 7. estándares sobre fechas y horas. En FreeBSD (y en la mayoría de sistemas Unix).8. En otras palabras. Por ejemplo. los dos factores que tiene en cuenta el núcleo para decidir si un proceso puede hacer algo es su ID de usuario y la lista de grupos a los que pertenece. En ocasiones encontrarás menciones al "ID de grupo" de un usuario o de un proceso. A diferencia del ID de usuario. Personalizar a los usuarios La localización es un entorno establecido por el administrador o el usuario para dar soporte a distintos lenguajes. para añadir un grupo llamado teamtwo y luego confirmar que existe puedes usar: Ejemplo 7-7. la mayoría de las veces referirán simplemente al primero de los grupos de la lista. El primer campo es el nombre de grupo. Puede ser editado a mano sin peligro (¡suponiendo. 1100(teamtwo) 65 . Ahora mismo teamtwo no tiene miembros. El usuario es automáticamente añadido a la lista de grupos por el sistema. un proceso tiene una lista de grupos asociados. Grupos Un grupo es simplemente una lista de usuarios. y es por tanto bastante inútil. Añadir un grupo usando pw(8) # pw groupadd teamtwo # pw groupshow teamtwo teamtwo:*:1100: El número 1100 en el ejemplo anterior es el ID de grupo del grupo teamtwo. y el cuarto la lista de miembros separados por comas. Cambiemos eso invitando a jru a formar parte del grupo teamtwo. etcétera.

2. Más tarde usamos -v cuando queremos cambiar valores por defecto. La -s hace que adduser sea silencioso por defecto. a menos que conectes múltiples terminales. Capítulo 7. Bueno. y para más información acerca del formato de /etc/group. pero dejaremos ese tema para el Capítulo 14. Notas 1. jru es miembro de los grupos jru y teamtwo. 66 . Usuarios y administración básica de cuentas Como puedes ver. consulta la página de manual de group(5). Para más información acerca de pw(8). consulta su página de manual.

como son: Nota: N de T. Es responsable del manejo y control de la memoria. para crear y compilar un nuevo kernel. traerá grandes beneficios a su sistema FreeBSD. y que si se deseaba modificar el comportamiento del kernel. del cual su fichero de configuracion lleva el mismo nombre. donde la funcionalidad del kernel esta basada en módulos. • Como crear un fichero de configuración del kernel. Esto quiere decir que el kernel era un gran y único programa que soportaba una lista previa de dispositivos. editar un fichero existente. Este proceso. si algo sale mal. los cuales pueden ser cargados y descargados dinámicamente. El construir un kernel propio. ¿Porqué Construir un Kernel Propio? Tradicionalmente FreeBSD ha contado con lo que se conoce como un kernel “monolítico”. manejo de redes. Esto permite que el kernel se adapte a nuevo hardware que sale al mercado (tal como las tarjetas PCMCIA en las laptop). o bien. para escribir un modulo que pueda ser cargado dinámicamente por el kernel. 8. A diferencia del kernel GENERIC. que no eran necesarias al momento de su compilación original. que no puede realizarse por medio de carga dinámica de los modulos. • Como utilizar el fichero de configuración. hacía un modelo. en ocasiones es aún necesario reconfigurar y recompilar un kernel hecho a la medida de nuestras necesidades. Configurando el Kernel de FreeBSD Actualizado y reestructurado por Jim Mock. Esto conlleva a grandes beneficios. un kernel propio unicamente contiene soporte para el hardware de su PC.2.: El kernel GENERIC es el kernel “GENERICO” que instala el sistema por default. Sinópsis El kernel de FreeBSD es el corazón del sistema operativo.Capítulo 8. A pesar de lo anterior. 67 . que casi todo usuario de UNIX debe afrontar. usted sabrá: • Por que puede ser necesario que compile un kernel personalizado. 8.1. es uno de los más importantes rituales. En algunos casos esto se debe a que la funcionalidad del sistema esta tan ligada al kernel. de acuerdo a las necesidades del kernel. y reiniciar el sistema con el nuevo kernel. Al término de este capítulo. Hoy en día. o bien el añadir nuevas funcionalidades al kernel. Contribución original por Jake Hamby. reforzamiento de los controles de seguridad. para esa funcionalidad específica. En otros casos puede ser simplemente por que nadie se ha tomado el tiempo. acceso a dispositivos. y mucho más. FreeBSD esta moviendose rápidamente. aun cuando lleva un tiempo. Mientras que FreeBSD se torna a un sistema más dinámico y configurable. aun es necesario llevar a cabo cierta configuración estática en la configuración del kernel. se debia compilar un nuevo kernel. • Como crear los ficheros en /dev que pudiesen ser necesarios. • Como resolver algunos problemas. que contiene soporte para todo el hardware soportado por el sistema. • Como instalar un kernel nuevo. El término coloquial para esto es KLDs.

Existen gran cantidad de subdirectorios. mediante /sys. y tiene acceso a un CDROM “oficial” de FreeBSD. 68 . lo cual es importante.[a-d]* | tar -xzvf Posteriormente. Note la organización lógica de la estructura de los directorios. dirijase al directorio arch/conf y copie el fichero de configuración GENERIC con el nombre que desee. igual que el nombre de host de cada maquina.3. le llamaremos MYKERNEL . Si a usted no le agrada mucho utilizar sysinstall. las cuales no estan incluidas en el kernel GENERIC. 8. que representan diferentes partes del kernel. sistema de ficheros y opciones. Por ejemplo: # cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL Tradicionalmente. hagamos un breve recorrido por el directorio donde se lleva a cabo la compilación del kernel. en su propio subdirectorio. por lo que puede ser i386. con diferente hardware. el resto del código es común para todas las plataformas a las que FreeBSD es potencialmente portable. después src y finalmente sys. es específico para dicha arquitectura. el tiempo que toma a su sistema arrancar. El directorio arch representa la arquitectura del sistema. por medio de la línea de comandos. • Soporte para hardware adicional. siendo usuario root. un kernel personalizado puede ser de gran utilidad en sistemas con pequeña cantidad de memoria RAM. que es donde se llevara a cabo la edición del fichero de configuración y la compilación (compile) del mismo. y seleccionando Configure. es una buena idea nombrar el kernel. ya que el kernel debe encontrarse presente en memoria real. Compilación e Instalación de un Kernel Personalizado En primer lugar. este nombre se escribe con mayúsuculas y. Generalmente un kernel personalizado utiliza menos recursos de memoria que un kernel GENERIC. si usted cuenta con varias maquinas FreeBSD. La forma más sencilla de hacer esto es mediante el programa /stand/sysinstall. Configurando el Kernel de FreeBSD • Mayor rapidez en el arranque del sistema. Por esta razón. En virtud de que el kernel solo tiene que probar el hardware que realmente esta en su sistema. que es el punto de partida para la personalización del kernel. Todo lo que existe dentro de un directorio de una arquitectura en particular. con cada soporte para dispositivos. alpha o bien pc98 (una arquitectura alternativa. Un kernel personalizado le permite añadir dispositivos tal como tarjetas de sonido. Nota: Si no existe el directorio /usr/src/sys en su sistema. pero el más importante para lo que deseamos hacer son arch y /conf. Capítulo 8. para efectos de este ejemplo. similar a PC muy popular en Japón). Todos los directorios mencionados hacen referencia al directorio principal. • Menor uso de memoria. quiere decir que las fuentes del kernel no fueron instaladas. que es /usr/src/sys. de la siguiente forma: # mount /cdrom # mkdir -p /usr/src/sys # ln -s /usr/src/sys /sys # cat /cdrom/sys/ssys. entonces puede instalar las fuentes. En este caso. al cual también podemos acceder. se reducirá dramáticamente. posteriormente Distributions.

Existen dos procedimientos para llevar esto a cabo. Nota: Asegurese siempre de verificar el fichero /usr/src/UPDATING. De cualquier manera FreeBSD ofrece un editor de uso muy sencillo. llamado ee. si usted esta emigrando de otros sistemas operativos como DOS. utilice el procedimiento 1. sin actualizar el código fuente (quizás solo para añadir una nueva opción como IPFIREWALL) puede utilizar cualquier de los dos procedimientos. • Si esta reconstruyendo su kernel. puede ser tentador simplemente eliminar /usr/src y comenzar de nuevo. puede ser una mala idea. Si usted esta experimentando problemas. como parte del proceso de actualización por medio de make world.0. se dará cuenta de que ha eliminado el fichero de configuración de su kernel. puede ver algunos en la bibliografía. Sientase en libertad de modificar los comentarios en la parte superior. pero existen bastantes libros que detallan su uso. antes de realizar cualquier actualización del sistema. utilice el procedimiento 1.0 o mayor. Ahora edite el fichero de configuración MYKERNEL. Por ejemplo: # cd /usr/src/sys/i386/conf # mkdir /root/kernels # cp GENERIC /root/kernels/MYKERNEL # ln -s /root/kernels/MYKERNEL Nota: Todo esto deberá llevarse a cabo como superusuario (root). del cual es complicado explicar su uso detallado en este documento. para que reflejen su configuración o bien los cambios realizados. entonces utilice el metodo 2. el fichero GENERIC puede parecerle intimidante. esta información deberá estar más actualizada que la provista por el handbook. Configurando el Kernel de FreeBSD Sugerencia: El guardar su fichero de configuración directamente bajo el directorio /usr/src. con su editor de textos favorito. Cinco segundos después de haber hecho esto. Al ser distribuida con FreeBSD. seguramente la información de este fichero le será muy familiar. para diferenciarlo del fichero GENERIC. para contar con la última versión de FreeBSD. o de lo contrario se tendra como resultado errores de negación de permisos (permission denied). Capítulo 8. 69 . así como la versión de FreeBSD que este utilizando. El fichero /usr/src/UPDATING cuenta con toda la información importante. • Si usted esta ejecutando un versión de FreeBSD anterior a 4. el cual. Si ha compilado un kernel. y no esta actualizando a la versión 4. y el que usted utilice dependerá del por que esta personalizando su kernel. Ahora es momento de llevar a cabo la compilación del código fuente del kernel. bajo SunOS o algun otro sistema operativo BSD. Una alternativa es guardar este fichero de configuración en cualquier otra parte y crear un enlace simbólico al fichero localizado bajo el directorio i386. si usted es principiante. relacionada con actualizaciones. será el editor de su elección. Si se trata de una instalación reciente probablemente el único editor disponible sea vi. mediante el procedimiento make world. en el caso de que se sincronice con el source-tree. • Si esta personalizando su kernel. así que siga las instrucciones descritas en El Fichero de Configuración detenidamente y con sumo cuidado. Por otro lado. • Si unicamente ha instalado el código fuente del kernel.

Ejecute config(8) para generar el código fuente del kernel. Ahora deberá reiniciar su sistema. hay algunos consejos para la resolución de problemas. Dirijase al directorio /usr/src . hacia el directorio de compilación. Instale el nuevo kernel. # /usr/sbin/config MYKERNEL 2. Cambie de ruta. Para más información al respecto. bajo el directorio /dev. Compilando el Kernel de la forma “tradicional” 1. 70 . El kernel nuevo será copiado al directorio raíz como /kernel y el antiguo kernel.2 y anteriores. Para versiones 4. entonces deberia utilizar la siguiente secuencia de comandos. Compile el kernel./. make depend. Si usted aun no ha actualizado su sistema fuente (“source tree”) (no ha ejecutado CVSup. make install. será renombrado como /kernel. Compilando el kernel de una “nueva” forma 1. Nota: Si usted ha añadido nuevos dispositivos (tales como tarjetas de sonido) puede ser necesario que deba crear los ficheros de dispositivos. # make buildkernel KERNCONF=MYKERNEL 3. Compile el kernel. config. Capítulo 8. utilizando su nuevo kernel. antes de poder utilizarlos.. # cd /usr/src 2. al final de este capítulo. en caso de que su kernel no desee “bootear”. # cd ..2-STABLE que fueron obtenidas posterior al 2 de Febrero del 2001. Instale el nuevo kernel. Asegurese de leer la sección que explica como recuperar el sistema. CTM o bien usado anoncvs). deberá reemplazar KERNCONF= con KERNEL=. Configurando el Kernel de FreeBSD Procedimiento 1. make. # make depend # make 4./compile/MYKERNEL 3. si se reconoce este parámetro como KERNCONF=. En caso de que se presente algun problema. # make installkernel KERNCONF=MYKERNEL Nota: Para versiones de FreeBSD 4.old. # make install Procedimiento 2. revise la sección "Creando Ficheros de Dispositivos" más adelante en este capítulo.

# # GENERIC -. el proceso de config(8) requiere que el uso de numeros como cadenas de texto. otherwise always see the # FreeBSD World Wide Web server (http://www. así como explicaciones detalladas de cada dispositivo. Cada línea contiene una palabra clave con uno o más argumentos. Para ver mas detalles sobre las posibles opciones del kernel. Este ejemplo debe ser igual. Capítulo 8.). Si usted tiene alguna duda sobre si es necesaria alguna línea u opción. En caso de que algún comentario del fichero sea traducido (por claridad). If you are # in doubt as to the purpose or necessity of a line. deben encontrarse entre comillas dobles.FreeBSD. revise los ficheros /usr/src/sys/i386/conf/LINT y /usr/src/sys/i386/conf/GENERIC de su sistema para ver algunos ejemplos. he decidido dejar lo que corresponde al fichero GENERIC. # # $FreeBSD: src/sys/i386/conf/GENERIC. consulte el fichero LINT.4. localizado en el mismo subdirectorio que GENERIC. y sólo traducir los comentarios previos de cada opción. podrán encontrarse en el fichero de configuración de ayuda LINT./LINT configuration file. La siguiente sección describe cada palabra clave. en el fichero de configuración.v 1. check first in LINT.ORG/) for the # latest information.html # # The handbook is also available locally in /usr/share/doc/handbook # if you’ve installed the doc distribution.ISO8859-1/books/handbook/kernelconfig-config.org/doc/en_US. que no encontrará en su fichero original. en el orden que normalmente encontrará en el fichero GENERIC.X. desde la rama 4. Configurando el Kernel de FreeBSD 8. Para efecto de simplificar. que es la que estamos cubriendo en este libro. please read the handbook section on # Kernel Configuration Files: # # http://www.FreeBSD. con algunos comentarios adicionales para aclaraciones donde haya sido necesario. vea el fichero /usr/src/sys/i386/conf/LINT.246 2000/03/09 16:32:55 jlemon Exp $ Las siguientes palabras claves son obligatorias en todo kernel que se vaya a recompilar: 71 . o muy simlar. favor de considerarlo como un “extra”. Cualquier cosa que precede a # es considerado como un comentario. y por lo tanto es ignorado. por lo que si usted cuenta con un sistema anterior a 4. El uso de numeros: En todas las versiones de FreeBSD posteriores e incluyendo la 3. aun cuando las podrá encontrar dispersas en el fichero GENERIC. Este requerimiento ha sido removido. Gracias por su comprensión. El Fichero de Configuración En realidad el formato general de un fichero de configuración es simple. A continuación encontrará un ejemplo del fichero GENERIC. aunque algunas palabras claves han sido agrupadas de acuerdo a su uso (como es el caso de lo que se refiere a redes).X.X. la mayoría de las líneas contienen sólo un argumento. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the .Generic kernel configuration file for FreeBSD/i386 # # For more information on this file. tal como usted lo verá. a su copia localizada en /usr/src/sys/i386/conf/GENERIC . Una mayor lista de opciones. Nota: N de T: En virtud de que el fichero que usted encontrará en su sistema es un fichero en inglés .

si llega a notar su tabla de proc llena (proc table full).FreeBSD. al tratar de iniciar algún proceso. MYKERNEL. le permitira ejecutar 1044 procesos simultaneamente. y los 15 que se ejecutaran al arrancar el Sistema de Ventanas X. Este numero supuestamente debe ser muy similar al numero de usuarios que usted espera ejecutar simultaneamente en su sistema. lo cual se establece como. Si usted no esta seguro del tipo de procesador con que cuenta su sistema. debe estar utilizando un tipo de CPU descrito en la parte superior. establece el tamaño de un numero importante de tablas del sistema.org). descomprimir y visualizar. Esta opción deberá cambiarla a como desee nombrar su kernel. o bien usted desea controlar este parámetro. el sistema automáticamente configurará esta opción para usted. siempre puede incrementar este numero y recompilar su kernel. o bien esta ejecutando un servidor con bastantes usuarios simultaneos (como ftp. como leer una pagina de ayuda man. de tal forma que es recomendable personalizar este parámetro. si es que explicitamente le asigna el valor de 0 a esta opción1. El valor que asigne en la opción ident. en el caso de que desee contar con un kernel experimental). Capítulo 8. especialmente si usted utiliza el Sistema de Ventanas X. o pc98. quiere decir que podrá ejecutar 36 procesos simultaneamente. al momento de iniciar el kernel del sistema. Establecer un valor de 64 a maxusers. puede utilizar el comando dmesg. De cualquier forma.5. deberá establecer cuando menos un valor de 4. como en el ejemplo anterior. En este caso puede dejar varias opciones (por ejemplo en el caso de que no este seguro si su procesador es I586_CPU o bien I686_CPU). La cual debe ser i386. incuyendo los de inicio. o compila software. maxusers n La opción maxusers. cpu I386_CPU cpu I486_CPU cpu I586_CPU cpu I686_CPU Lo anterior especifíca el tipo de procesador con que cuenta su sistema. Incluso una simple tarea. más aun si usted piensa contar con un kernel diferente al usual (por ejemplo. es la que controla el numero máximo de procesos que se pueden ejecutar simultaneamente en el sistema. Configurando el Kernel de FreeBSD machine i386 Esto se refiere a la arquitectura de la maquina. de cualquier forma para un kernel personalizado siempre es preferible especificar el tipo de procesador con que cuenta su sistema. para ver los mensajes de envió el kernel al arrancar el sistema. para efecto de filtrar. y donde podrá ver como detecto el CPU. Si usted esta utilizando una versión de FreeBSD anterior. algo así como 18. será el nombre que aparecerá en la pantalla. La arquitectura Alpha cuenta con diferentes valores para el cpu. Los cuales incluyen: cpu EV4 cpu EV5 Si usted utiliza un sistema Alpha. Nota: La opción maxusers no limita el numero de usuarios que pueden ingresar al sistema. Comenzando con FreeBSD 4. Simplemente establece valores. que debe ser suficiente para casi cualquier uso. considerando el numero de usuarios que usted espera tener en su sistema y el numero de procesos que cada uno de estos usuarios 72 . a valores razonables. alpha. 20 + 16 * maxusers. ident GENERIC Este es el identificador del kernel. por lo que si establece este valor como 1. incia como nueve procesos. La razón de esto es que una de las tablas más importantes que controla maxusers. para el tamaño de varias tablas del sistema.

Configurando el Kernel de FreeBSD requiere correr.do not disable. loopback. Si usted hace telnet o FTP a localhost (ej. aunque esto implique sacrificar algo de memoria adicional. con lo cual la línea será ignorada). por cuestiones de licencia. #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols options MATH_EMULATE #Support for x87 emulation Mediante esta línea podemos indicarle al kernel que simule un co-procesador matemático. Capítulo 8. Todo lo que veremos a continuación. para más información al respecto. Este no es opcional. Deje esta opción incluida. La mayoría de los programas requieren cuando menos conexión con el dispositivo loopback (ej. el cual es parte del hardware como co-procesador o bien el software emulador matemático.0. o una 387 o 486SX (con chip separado de 387 o 487). Este es obligatorio. Nota: La rutina de emulación del co-procesador matemático que viene con FreeBSD. options UFS_DIRHASH #Improve performance on big directories Esta opción incluye código para acelerar las operaciones del disco duro en directorios de gran tamaño. 127. Usted normalmente dejaria esta opción si es para un servidor grande o 73 .1). es recomendable que modifique esta opción a quedar como GPL_MATH_EMULATE. etc. que no se incluye por omisión. Si usted cuenta con una 486DX. Pentium II. # Pseudo devices . Una palabra clave que efectivamente limita el numero de logins remotos. o más actual (Pentium. Incluyalo si desea arrancar su sistema del disco duro. es más o menos opcional. es pseudo-device pty 16 . el enlace se realiza por medio de este pseudo-dispositivo. Para comentar las líneas de este fichero deberá agregar el simbolo # antes de la línea. Si usted no cuenta con un co-procesador metamático. options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] Esto es el sistema de ficheros básico del disco duro. no es muy exacta. # Floating point support .the number indicates how many units to allocate. Vea las notas debajo de cada opción. options INET #InterNETworking Soporte para redes. device npx0 at nexus? port IO_NPX irq 13 El dispositivo npx0 es la interfaz del punto flotante en FreeBSD. si su maquina no cuenta con uno (386 o 486SX). options INET6 #IPv6 communications protocols Esto habilita los protocolos de comunicación IPv6. pseudo-device loop # Network loopback Este es el dispositivo genérico de TCP/IP. asi que esto es obligatorio. puede comentar esta línea sin problemas (N de T.0. y requiere la mayor exactitud posible. aun si no planea esta conectado a una red. al hacer conexión con su propia maquina). para usar el soporte de GNU.).

options SOFTUPDATES #Enable FFS soft updates support Esta opción habilita soft updates en el kernel. 74 . options COMPAT_43 #Compatible with BSD 4. Comente esta opción si usted no cuenta con una unidad de CDROM o bien sólo monta CDs de datos ocasionalmente (en virtud de que será cargado dinámicamente la primera vez que se utilice para un CD de datos). options MSDOSFS #MSDOS Filesystem El sistema de ficheros de MS-DOS. Configurando el Kernel de FreeBSD bien una estación de trabajo interactiva y eliminarlo si esta utilizando FreeBSD en un sistema pequeño donde es importante conservar la memoria o bien si la velocidad del disco duro no es tan importante. A menos de que planee montar una partición con formato de DOS. Capítulo 8. como se explicó anteriormente. lo cual acelera la escritura en los discos.3BSD. tal como un firewall. Revise la respuesta que le da mount(8) para verificar si cuenta con esta opción. deberá activarla usando tunefs(8) o newfs(8) para nuevos sistemas de ficheros. de la cual desee tomar ventaja. Así mismo la excelente aplicación mtools (que esta disponible de la colección de ports). al momento de arrancar el sistema. montado en /proc. Los CDs de audio no requieren de esta opción.3 [KEEP THIS!] Compatibilidad con 4. Este es un sistema de ficheros “virtual”. CD9660 required El sistema de ficheros ISO 9660 para CDROMs. Esta opción se habilita por default desde la rama 4. que permite que programas como ps(1) le den mayor información sobre los procesos que se están ejecutando. Un sitio perfecto para montar la partición MFS es el directorio /tmp.X. algunos programas se comportaran de una forma extraña si esta opción es comentada. sin necesidad de montarlos o desmontarlos (y no requiere para nada de MSDOSFS). pero es posible que no este habilitada. Automáticamente será cargado la primera vez que monte una partición DOS. Si no ve la opción soft-updates. NFS required El sistema de ficheros de red. options CD9660 #ISO 9660 Filesystem options CD9660_ROOT #CD-ROM usable as root. Conserve esta opción. esto lo puede hacer añadiendo la siguiente línea al fichero /etc/fstab: /dev/ad1s2b /tmp mfs rw 0 0 Ahora simplemente necesita reiniciar su sistema o bien. options PROCFS #Process filesystem El sistema de ficheros de procesos. puede deshabilitar esta opción sin problema alguno. esta línea puede ser comentada. A menos de que planee montar particiones desde un servidor Unix através de TCP/IP. Esto basicamente es el mapeo de la memoria RAM del disco para acceso rápido y almacenar ficheros temporales. útil si cuenta con bastante memoria swap. le permite accesar a diskettes con formato DOS. options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device. options MFS #Memory Filesystem options MD_ROOT #MD is a potential root device Este es el sistema de mapeo de memoria. ejecutar el comando mount /tmp.

desde el menú de arranque. deberá incrementar este valor nuevamente. sólo añadirá unos cientos de bytes a su kernel. que es de utilidad para efecto de depuración. para contar con mayor velocidad. o bien. Si usted sólo cuenta con dispositivos IDE. Capítulo 8. puede ignorar esta opción. así como enviar (usando write) mensajes. sin necesidad de salir de su entorno gráfico. que servira para desplegar mensajes (usando talk). Claro esta. options USERCONFIG #boot -c editor Esta opción le permite ejecutar el editor de configuración. de otra forma quizás desee reducir el tiempo a 5 segundos. que es muy útil para usuarios del sistema X. options KTRACE #ktrace(1) support Esta opción habilita el proceso de rastreo del kernel. desde el menú de arranque. para efecto de acelerar el arranque. toman ventaja. options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING Extensiones de tiempo-real añadidas en POSIX en 1993. del cual muchos programas de gráficos-intensos. El uso más común de esto es la extensión XSHM del servidor X. para el System V. puede crear una consola xterm. options SYSVMSG #SYSV-style message queues Soporte para mensajes de System V. que si hace esto. options VISUAL_USERCONFIG #visual boot -c editor Esta opción le permite ejecutar el editor visual de configuración. options UCONSOLE #Allow users to grab the console Permite el uso de la consola. Por ejemplo. y FreeBSD tiene problemas para reconocer sus dispositivos SCSI. options SYSVSHM #SYSV-style shared memory Esta opción provee memoria compartida. Nuevamente. options ICMP_BANDLIM #Rate limit bad replies 75 . utilizan estas extensiones (tal como StarOffice). Nota: El comando ipcs(1) le mostrará cualquier proceso que haga uso de estas componentes de System V. Con menos uso que el anterior. Si usted utiliza el entorno gráfico X. pero sólo agregará unos cuantos cientos de bytes a su kernel. visualizar cualquier otro mensaje enviado por el kernel. al teclear xterm -C. Configurando el Kernel de FreeBSD options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI Esta opción le indica al kernel hacer una pausa de 15 segundos antes de realizar una prueba en cada dispositivo SCSI de sus sistema. definitivamente querra incluir esta opción. Algunas aplicaciones de la colección de ports. options SYSVSEM #SYSV-style semaphores Soporte para los semaforos del System V.

Es recomendable dejar esta opción tal cual. # To make an SMP kernel. device atapist # ATAPI tape drives Este es necesario junto con device ata para controladores de cintas ATAPI. the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O Las opciones anteriores son necesarias si desea soporte para SMP. para que el kernel detecte todos los dispositivos PCI ATA/ATAPI de sus sistema. # Floppy drives device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 device fd1 at fdc0 drive 1 Este es el controlador para diskettes. Usted sólo necesita incluir esta opción una sola vez (device ata). Capítulo 8. en este momento usted no puede ejecutar FreeBSD (se esta trabajando en este soporte). device eisa Incluya esta opción. device ata Este controlador da soporte a todos los dispositivos ATA y ATAPI. Esto habilita la autodetección y configuración del soporte para los dispositivos que hacen uso del bus EISA. si cuenta con una tarjeta madre de tipo EISA. device pci Incluya esta opción si cuenta con una tarjeta madre basada en PCI. device atapicd # ATAPI CDROM drives Este es necesario junto con device ata para controladores de CDROM ATAPI. device isa Todas las PCs soportadas por FreeBSD cuentan con uno de estos. Configurando el Kernel de FreeBSD Esta opción permite a ICMP manejar errores. 76 . El dispositivo fd0 corresponde a la disquetera A: y fd1 corresponde a la disquetera B:.DoS). en virtud de que le permite protejer su sistema contra ataques de paquetes de Negación de Servicio (Denial of Service . device atadisk # ATA disk drives Este es necesario junto con device ata para controladores de discos ATAPI. Si usted cuenta con una IBM PS/2 (Arquitectura de Micro Canal).en cuanto al límite de ancho de banda a utilzar. device atapifd # ATAPI floppy drives Este es necesario junto con device ata para controladores de disqueteras ATAPI. Esto habilita la auto-detección de las tarjetas PCI y de los canales a utilizar en los buses PCI e ISA.

Configurando el Kernel de FreeBSD options ATA_STATIC_ID #Static device numbering Esta hace que el numero de controlador sea estático (como en el viejo controlador) o de lo contrario este numero es asignado dinámicamente. Este controlador es necesario para el teclado (atkbdc) y el dispositivo puntero (N de T: Mejor conocido como “ratón”) tipo PS/2 (psm). # RAID controllers device ida # Compaq Smart RAID device amr # AMI MegaRAID device mlx # Mylex DAC960 family Controladores de soporte RAID. # SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) Periféricos SCSI. puede eliminarlos por completo. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD Este controlador (atkbdc) provee servicios de E/S a teclados AT y dispositivos de tipo PS/2.See LINT for options! device isp # Qlogic family device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) device adv0 at isa? device adw device bt0 at isa? device aha0 at isa? device aic0 at isa? Controladores SCSI. Si su sistema no cuenta con estos. puede eliminar todos. si sólo cuenta con hardware IDE. Nuevamente. puede comentarlos o eliminarlos. comente todos los que no esten presentes en su sistema. # ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15 Utilice estos para sistemas antiguos no-PCI. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices device amd # AMD 53C974 (Teckram DC-390(T)) device dpt # DPT Smartcache . Comente cualquiera que no se encuentre en su sitema. Si cuenta con un sistema unicamente IDE. device atkbd0 at atkbdc? irq 1 77 . Capítulo 8.

provee acceso al teclado AT 84 o bien al teclado de tipo AT mejorado. accesan a su consola por medio de una librería de base de datos para terminales. establezca su variable TERM a scoansi. que es conectado al controlador de teclado AT. Debe conservar estas si usted utiliza una laptop. device psm0 at atkbdc? irq 12 Utilice este controlador si su ratón se conecta al puerto PS/2. Capítulo 8. donde las entradas para termcap o terminfo para el dispositivo sc0 no están disponibles — vt100 debe estar disponible en practicamente cualquier plataforma. Si cuando accesa al sistema. Este controlador ha probado ser de gran utilidad en diferentes máquinas en una red. que recuerda a la consola SCO. # splash screen/screen saver pseudo-device splash Pantalla Splash al arranque! El protector de pantallas requiere de esto también. como termcap. Dado que la mayoría de los programas de pantalla—completa. # Serial (COM) ports device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 irq 3 78 . uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std Este es el controlador de consola compatible con VT220. resembling an SCO console device sc0 at isa? El dispositivo sc0 es el controlador por defaault. También es recomendable establecer su variable de entorno TERM como vt100 o vt220. anteriormente compatible con VT100/102. # PCCARD (PCMCIA) support device card device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000 device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable Soporte para tarjetas PCMCIA. Este sirve para algunas laptops que tienen incompatibilidad de hardware con sc0. # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD. tiene problemas para manejar programas que utilizan pantalla completa. Configurando el Kernel de FreeBSD El controlador atkbd. device vga0 at isa? El controlador para la tarjeta de video. # syscons is the default console driver. Muy útil en laptops. junto con el controlador atkbdc. el controlador de compatibilidad de VT220. cuando ingrese al sistema. no debe importar si utiliza este o bien vt0. # Power management support (see LINT for more options) device apm0 at nexus? disable flags 0x20 # Advanced Power Management Soporte para la Administración Avanzada de Energía.

donde se permite el compartir IRQs). de manera que pueda accederlo desde FreeBSD. device ppi # Parallel port interface device El puerto de E/S para propósitos generales (“geek port”) + E/S IEEE1284. # Parallel port device ppc0 at isa? irq 7 Esta es la interfaz para el puerto paralelo ISA. #device vpo # Requires scbus and da Este es para la unidad Iomega Zip.9. Es necesario que cada puerto serial cuente con su propia dirección IRQ (a menos que este utilizando una tarjeta de puertos múltiples. Se tiene conocimiento de un mejor desempeño con puertos en modo EPP 1. y dado que muchos chips no decodifican completamente el espacio de dirección de E/S de 16-bit. haciendo que el uso del puerto COM4 sea prácticamente imposible. Nota: Si usted cuenta con un módem interno conectado al puerto COM4 y un puerto serial en COM2. 82558) device tx # SMC 9432TX (83c170 “EPIC”) device vx # 3Com 3c590. Configurando el Kernel de FreeBSD device sio2 at isa? disable port IO_COM3 irq 5 device sio3 at isa? disable port IO_COM4 irq 9 Estos son los cuatro puertos seriales. device lpt # Printer Soporte para impresoras de puerto en paralelo. no pueden ser utilizados. deberá cambiar el IRQ del módem al 2 (por alguna obscura razón el IRQ 2 = IRQ 9). Capítulo 8. se congelan con estas tarjetas. device plip # TCP/IP over parallel Este es el controlador para dispositivos de red que utilizan el el puerto en paralelo. Algunas tarjetas de video (principalmente aquellas basadas en chips S3) utilizan direcciones de E/S de la forma 0x*2e8. verifique la página de ayuda sio(4) para más información sobre los valores que debe utilizar en estas líneas. Si usted cuenta con una tarjeta serial de puertos múltiples. Que requiere soporte scbus y da. # PCI Ethernet NICs. Nota: Los tres anteriores son necesarios para habilitar el soporte para impresoras que esten conectadas al puerto en paralelo. conocidos en el mundo MS-DOS/Windows como COM1 a COM4. device ppbus # Parallel port bus (required) Provee soporte para el bus del puerto en paralelo. device de # DEC/Intel DC21x4x (“Tulip”) device fxp # Intel EtherExpress PRO/100B (82557. 3c595 (“Vortex”) 79 . así que los IRQs que por default manejan los puertos COM3 y COM4.

y por cuales controladores. device wi # Aironet 4500/4800 802. Vea el fichero /usr/src/sys/i386/conf/LINT para ver que tarjetas están soportadas. Puede comentar o eliminar todas aquellas que no esten presentes en su sistema. device ed0 at isa? port 0x280 irq 10 iomem 0xd8000 device ex device ep # WaveLAN/IEEE 802. device miibus # MII bus support El soporte del bus MII. device ie0 at isa? port 0x300 irq 10 iomem 0xd0000 device fe0 at isa? port 0x300 device le0 at isa? port 0x300 irq 5 iomem 0xd0000 device lnc0 at isa? port 0x280 irq 10 drq 0 device cs0 at isa? port 0x300 device sn0 at isa? port 0x300 irq 10 # requires PCCARD (PCMCIA) support to be activated #device xe0 at isa? Controladores para tarjetas Ethernet ISA. Capítulo 8. 80 . as well as ISA cards set to ISA PnP # mode (the factory default). # PCI Ethernet NICs that use the common MII bus controller code.11 wireless NICs. Note: the WaveLAN/IEEE really # exists only as a PCMCIA device.c. # ISA Ethernet NICs. device dc # DEC/Intel 21143 and various workalikes device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (“Starfire”) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device ste # Sundance ST201 (D-Link DFE-550TX) device tl # Texas Instruments ThunderLAN device vr # VIA Rhine. If you set the switches on your ISA # card for a manually chosen I/O address and IRQ. Configurando el Kernel de FreeBSD device wx # Intel Gigabit Ethernet Card (“Wiseman”) Varios controladores de tarjetas de red PCI. es requerido por algunas tarjetas de red Ethernet PCI 10/100. específicamente aquellas con transistores dependientes de MII o bien aquellos con transistores que operan igual que MII. Note: the declaration below will # work for PCMCIA and PCI cards. Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (“Boomerang”. so there is no ISA attachment needed # and resources will always be dynamically assigned by the pccard code. “Cyclone”) Controladores que utilizan el código del bus MII. incluyendo los genéricos de PHY para los cuales no hay un controlador específico. you must specify # those parameters here.11 wireless NICs. device an # The probe order of these is presently determined by i386/isa/isa_compat. El añadir el soporte device miibus al fichero de configuración del kernel nos permite contar con soporte para todos los dispositivos API genericos de MII y controladores de PHY.

IPv4 sobre IPv4 e IPv6 sobre IPv6. especifíca cuantas sesiones simultaneas se pueden soportar por SLIP. Existe también una versión de PPP como aplicación (“userland”). pesudo-device gif o pseudo-device gif 4 # IPv6 and IPv4 tunneling Esto permite el envío de IPv6 sobre IPv4. Configurando el Kernel de FreeBSD pseudo-device ether # Ethernet support El soporte ether sólo es necesario si cuenta con una tarjeta Ethernet. Vea la sección PPP de este libro. especifíca el soporte máximo de sesiones PPP simultaneas. más adecuado para conexiones de módem a módem y más poderoso. que es más sencillo de configurar. Si usted requiere de más de las 16 xterm y/o logins remotos que se crean por default. pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation) Este pseudo-dispositivo captura los paquetes que han sido enviados y los redirecciona hacia el demonio “traductor” de IPv4/IPv6. y usted debiese utilizar el primer ejemplo (sin el numero después de gif). El cual casi ha sido suplantado por PPP. sin exceder el máximo de 256. Desde la versión 4. IPv4 sobre IPv6. pseudo-device pty # Pseudo-ttys (telnet etc) Esta es una “pseudo-terminal” o bien un puerto de acceso simulado. y algunas otras aplicaciones tal como emacs. Es utilizado para conexiones por medio de telnet y sesiones rlogin. Un numero después de pty indica el numero de ptys a crear. Este dispositivo es utilizado por la aplicación PPP userland. # Be aware of the administrative consequences of enabling this! pseudo-device bpf # Berkeley packet filter 81 . El numero posterior a tun. pseudo-device md # Memory “disks” Pseudo-dispositivos para la memoria de discos. El numero posterior a ppp especifíca cuantas conexiones PPP se pueden mantener de manera simultanea. para mayor información al respecto.4 de FreeBSD. asegurese de incrementar el numero de acuerdo a sus necesidades. # The ‘bpf’ pseudo-device enables the Berkeley Packet Filter. Este incluye el soporte genérico para el código Ethernet. el dispositivo gif es “auto-clonable”. que utiliza el dispositivo tun y ofrece mayor flexibilidad y funciones. xterm. por medio de teléfono. Versiones anteriores de FreeBSD requieren de este numero. pseudo-device ppp 1 # Kernel PPP Este es el soporte del kernel para conexiones PPP. pseudo-device tun # Packet tunnel. El numero posterior a sl. Capítulo 8. pseudo-device sl 1 # Kernel SLIP El dispositivo sl es el soporte para SLIP. tal como el marcado a petición.

encontrará que ahora existen los ficheros acd0c y racd0c en el directorio /dev. Capítulo 8. bajo el directorio /dev. # USB support  #device #device uhci ohci # #  UHCI PCI. Para más información y para ver todos los dispositivos soportados por FreeBSD. y si no es así crearlas. debe ejecutar el siguiente comando para crear las entradas correspondientes: 82 . Aun así no los crea a todos. Resulta que esos ficheros no existen en el directorio /dev. o bien precedido de una letra como r. Este pseudo-dispositivo permite a las interfaces de red colocarse en modo promiscuo. Estos paquetes pueden ser capturados y examinados por medio del programa tcpdump(1). es importante asegurarse de que existen las entradas correspondientes en este directorio. Configurando el Kernel de FreeBSD Este es el Filtro de Paquetes de Berkeley. Creando Nodos para los Dispositivos Casi todo dispositivo señalado en el kernel. así que debe dirijirse a este directorio y teclear lo siguiente: # sh MAKEDEV acd0 Cuando este script termine. Si usted utiliza DHCP. Estos nodos parecen ficheros comunes. requires mii #device aue # ADMtek USB ethernet #device cue # CATC USB ethernet #device kue # Kawasaki LSI USB ethernet Soporte para varios dispositivos USB.Requires scbus and da #device ums # Mouse # USB Ethernet.USB interface OHCI PCI. cuenta con su correspondiente “fichero nodo”. Para tarjetas de sonido. El script de shell /dev/MAKEDEV. que es ejecutado cuando usted instala por primera vez el sistema operativo. pero de hecho son ficheros especiales que indican que dispositivos deben ser utilizados por cada programa. He aqui un pequeño ejemplo: Supongamos que ha añadido soporte en su kernel para un dispositivo CDROM tipo IDE.5. crea el nodo para casi todos los dispositivos soportados. tal como c. 8. La línea a añadir es: device acd0 Esto significa que debe buscar alguna entrada que comience con acd0 en el directorio /dev. una Ethernet). deje esta opción habilitada. que significa que es el dispositivo “raw” . así que cuando recompila su kernel y agrega soporte para un nuevo dispositivo. posiblemente seguido de una letra. de tal forma que sabrá que se ha ejecutado con exito. favor de consultar el fichero /usr/src/sys/i386/conf/LINT. capturando cada paquete en una transmisión de red (ej.USB interface #device usb # USB Bus (required) #device ugen # Generic #device uhid # “Human Interface Devices” #device ukbd # Keyboard #device ulpt # Printer #device umass # Disks/Mass storage . Nota: La opción bpf pseudo-device también es utilizada por dhclient(8) para obtener la dirección IP del ruteador por default (gateway).

Asegurese de que la palabra clave ha sido escrita correctamente. las tarjetas de red y pseudo-dispositivos de tipo SLIP/PPP. Revise nuevamente su fichero y si aun así no puede detectar el error. cuando cree ficheros-nodo para dispositivos tales como tarjetas de sonido. generalmente es indicio de que el fichero de configuración tiene un error. puede ser que simplemente haya cometido un error de tipografía en su documento personal de configuración (que habiamos llamado “MYKERNEL”). como es el numero de línea que contiene el error.6. por lo que tampoco tiene por que preocuparse de estas. para el cual no existan las entradas apropiadas. Al instalar el nuevo kernel se presenta una falla Si el kernel termino de compilarse correctamente. pero presenta una falla al instalarlo (esto es cuando el comando make install o make installkernel da como resultado un Error). añadiendolos al fichero /etc/fbtab. y debiese ser diagnosticado rápidamente. Así mismo. así que no es necesario crearlas. pero que este error no es tan grave como para que config lo detecte. 8. lo primero que es necesario revisar. En Caso de que Algo No Funcione Existen cinco tipos de problemas que se pueden presentar al momento de estar personalizando/compilando un kernel. Por ejemplo si visualiza: config: line 17: syntax error Puede ir directamente al problema en vi. Nota: Todos los controladores SCSI utilizan las mismas entradas en /dev.org> adjuntando el fichero personalizado de su kernel. Configurando el Kernel de FreeBSD # sh MAKEDEV snd0 Nota: Si existen otras personas con acceso a su sistema. Estas son: Que el comando config de como resultado un error: Si el comando config da como resultado un error al momento de de su ejecución. Aqui lo que sucede es que la 83 . de tal forma que puede dirijirse directamente a dicha línea con vi y corregir el error. es si su sistema esta ejecutandose en securelevel 1 o mayor (vea init(8)). no cuentan con entradas en el directorio /dev. El procedimiento mencionado puede servirle para añadir cualquier otro dispositivo no-generico o bien que no exista en el fichero /usr/src/sys/i386/conf/GENERIC. Vea la página de ayuda fbtab(5) para más información al respecto. Capítulo 8. al compararla con la que corresponde al fichero GENERIC o alguna otra referencia. es recomendable proteger estos dispositivos. Afortunadamente el comando config le dará información sobre el error. envíe un correo a FreeBSD general questions mailing list <freebsd-questions@FreeBSD. Cuando el comando make falla: Cuando el comando make da como resultado un error. al teclear 17G en el modo de comando.

establece para maxusers la cantidad igual a la cantidad de memoria en el sistema. que no es una buena idea utilizar un kernel de una versión diferente al resto del sistema operativo. Nota: Recuerde que si tiene problemas para personalizar su kernel. Y en virtud de que securelevel 1 o mayor evita que dicha marca sea removida de cualquier fichero del sistema. siempre es buena idea contar con un kernel que sabemos que su funcionamiento es correcto. Cuand personalice un kernel. Posteriormente puede regresar este al valor original. con mínimo de 32 y un máximo de 384. Deberá recompilar la librería libkvm. posteriormente teclee unload y posteriormente teclee boot kernel. en cuanto le sea posible. También recuerde que. o algún otro que tenga la seguridad de su funcionamiento y que tenga un nombre que no será borrado en la siguiente compilación de kernel. este se sustituye con el último kernel instalado. El algoritmo de “auto-configuración”. como son: ps(1) y vmstat(8) ya no van a funcionar. así como sus utilidades. gran variedad de comandos de sistema. un kernel 4. que pudiese se un kernel no funcional. de tal forma que no pueda ser movido o modificado. No puede confiar en el kernel.old.old . no entre en pánico! Afortunadamente BSD cuenta con un excelente mecanismo para recuperarse de un kernel recien instalado que presenta este tipo de errores. por ejemplo. o cualquier otro fichero. el cargador de arranque (boot loader). comandos como ps(1) no trabajarán correctamente. cuando este contento con su nuevo kernel. Pulse cualquier tecla excepto la tecla enter.X. Puede accesar a este cuando su sistema se encuentra en cuenta regresiva desde 10. probablemente su sistema se este ejecutando en un valor mayor a cero de securelevel(8). Notas 1. a la mano. Capítulo 8. o bien el nombre de fichero de cualquier otro kernel que usted sabe que arranacará correctamente. El comando para “desbloquear” el fichero del kernel que instala el comando make (para efecto de usar permanentemente otro kernel) es: # chflags noschg /kernel Si no puede ejecutar esto. Edite la línea kern_securelevel del fichero /etc/rc.conf y establezca este valor como -1. y reinicie su sistema.X sobre un sistema 3. o bien falla en reconocer sus dispositivos. El nuevo kernel no arranca: Si su nuevo kernel no se ejecuta correctamente al arrancar el sistema. Y si usted desea “bloquear” su nuevo kernel en su ubicación. 84 . es recomendable asegurarse de contar con un kernel de tipo GENERIC. la instalación del nuevo kernel debe ser realizada en securelevel 0 o menor. debe mover el kernel funcional a la ubicación correcta del kernel. al momento que se esta incializado en su sistema FreeBSD. o bien. Simplemente seleccione el kernel que desea arrancar. Es por esta razón. Configurando el Kernel de FreeBSD instalación del kernel intenta remover la “marca” (flag) de inmutable del kernel actual y colocar dicha marca al nuevo kernel. ya que en cada instalación de un nuevo kernel. puede hacerlo con el comando: # chflags schg /kernel El kernel funciona. pero ps ha dejado de funcionar!: Si usted ha instalado un kernel que pertenece a una versión diferente a la del sistema en cuestión.

Seguridad Seguridad 85 .Capítulo 9.

y puede mantener estadísticas sobre que usuario y maquina son los que más imprimen. puede saltar a la sección Configurando el sistema de Cola de Impresión. desde cualquier aplicación que este utilizando. para trabajar con el sistema de cola de impresión de Berkeley. FreeBSD también puede ser configurado para actuar como servidor de impresión en una red. • Como imprimir en impresoras conectadas a otras computadoras • Como imprimir en impresoras conectadas directamente a la red. FreeBSD puede recibir peticiones de impresión de una gran cantidad de computadoras. Windows y MacOS.Capítulo 10. en esta modalidad.1. y todo lo que existe en medio de estas. y restringiendo la impresión a ciertos usuarios. • Como instalar filtros de impresión. permitiendole crear impresiones de alta calidad. Sinópsis FreeBSD puede ser utilizado para imprimir en una gran variedad de impresoras. antes de cada trabajo para verificar de quien es cada impresión. para manejar diferentes trabajos especiales. Este capítulo introduce en el sistema LPD. llamado comunmente sólo LPD. usted sabrá: • Como configurar la cola de impresión en FreeBSD. es necesario que configure estas. Antes de leer este capítulo. o titularess en sus impresiones. y cuentas para el uso de la impresora. Si usted esta familiarizado con el sistema de cola de impresión LPD. e introduce en la configuración del mismo. Introducción Para efecto de poder utilizar impresoras con FreeBSD. incluyendo computadoras corriendo FreeBSD.2. Imprimiendo Aportado por Sean Kelly. FreeBSD verifica que un trabajo sea impreso a la vez. • Como mantener estadísticas de impresión. incluyendo la conversión de documentos a formatos aptos para la impresora. usted debería: • Saber como compilar e instalar un nuevo kernel (Capítulo 8). Al concluir el presente capítulo. incluyendo limitantes en el tamaño de los trabajos de impresión. 86 . 10. Reestructurado y actualizado por Jim Mock. Este es el sistema de control de impresión estándar en FreeBSD. • Como controlar restricciones de impresión. 10. insertar una página de aviso (“titulares” o “páginas de encabezado”). con algun otro sistema de impresión. también conocido como Sistema de Cola LPD. • Como solucionar problemas de impresión comunes. hasta las más modernas impresoras laser. o bien. • Como habilitar encabezados. desde las antiguas impresoras de matriz de punto. y más.

que usted no tiene que esperar a que los datos sean pasados a la impresora para continuar trabajando. probablemente se pregunte por que preocuparse por utilizar un sistema de cola de impresión. Por medio de un fichero de configuración (/etc/printcap).3. por las siguientes razones: • El sistema LPD opera los trabajos de impresión es segundo plano. estos envios se conocen como trabajos (“jobs”). • Se ocupa de los parámetros para impresoras conectadas a puertos seriales. • Puede enviar trabajos de impresión por medio de una red. • Previene el hecho de que varios usuarios accesen a la impresora al mismo tiempo. 10.1. al mantener un orden en la cola de impresión (“queue”) para cada impresora. Es responsable de un gran numero de cosas. para añadir caracteres de día/hora o bien convertir un fichero con formato especial (tal como ficheros TeX DVI) a un formato que la impresora entiende. • Muchos programas. • Convenientemente LPD puede ejecutar un trabajo para que sea filtrado. Configuración Básica Para efecto de utilizar impresoras con el sistema de cola LPD. usted podrá soportar otro software que instale en el futuro o el que tiene actualmente. y por medio de programas especiales de filtraje. Mientras que es posible habilitar un acceso a su impresora de forma directa. • Puede ejecutar filtros especiales para dar formato a trabajos que requieren de un manejo de lenguaje de impresión diferente o impresoras de diferentes capacidades. tales como: • Controla el acceso a las impresoras conectadas directamente al ordenador y las impresoras conectadas a otras máquinas de la red. para una gran variedad de impresoras. de una pila de impresiones. • Puede mantener un registro por uso de la impresora. encabezados o cuentas para imprimir. usted debe utilizar el sistema de cola de impresión. • Puede imprimir encabezados (“header”) (también conocidos como titularess o páginas de aviso). Al configurar su sistema de cola de impresión. Capítulo 10. • Habilita a usuarios. proveen de un sistema de impresión que esta basado en el sistema de cola de impresión. cuando no requiere acceso a controles. De tal manera que usted no tenga que hacer estos pasos manualmente. Imprimiendo La aplicación LPD es responsable de controlar todo lo que se refiere a impresión. para efecto de que puedan enviar ficheros a imprimir. 10.2. libres y comerciales. esto es. es necesario que se instale físicamente la impresora y el software de LPD. Este documento describe estos dos niveles de configuración: 87 . ¿Por qué utilizar una Cola de Impresión? Si usted es la única persona que hace uso de su sistema. de tal forma que los usuarios identifiquen fácilmente sus impresiones. usted puede habilitar al sistema LPD para hacer todo o una parte de lo mencionado anteriormente. a una cola LPD de una maquina remota.

puede resultar un tanto complicada. En ocasiones las interfaces seriales requieren de cables especiales y posiblemente cierta configuración compleja de opciones de comunicación. Si ya ha conectado su impresora y ha impreso exitosamente trabajando en otro sistema operativo. La interfaz serial es común en la industria de la computación y los cables existen disponibles facilmente e incluso sencillos de hacer. Imprimiendo • Vea la sección Configuración Simple de una Impresora. Normalmente no existen opciones de comunicación. Las interfaces en paralelo son comunes en el mercado de las PCs. Los cables son fáciles de conseguir.1. Configuración Simple de una Impresora La presente sección le mostrará como instalar físicamente la impresora.3. Capítulo 10. • Vea la sección Configuración Avanzada de una Impresora. para aprender a conectar una impresora. para imprimir por medio de una red.1. Le mostrará lo básico de: • La sección Instalación Física. Conseguir que su impresora trabaje con su ordenador y con la cola de impresión LPD es la parte más compleja. controlar acceso a las impresoras y crear cuentas de impresión. haciendo su configuración mucho más sencilla. e imprimir ficheros de texto plano en dicha impresora. así como la configuración que debe tener en su kernel.3. 10.1.1. son sencillas una vez que su impresora está trabajando. 88 . cuenta con soporte para una o ambas interfaces que se presentan a continuación: • La interfaz serial. • La interfaz en paralelo utiliza el puerto paralelo de su computadora para enviar datos a la impresora. tal como imprimir encabezados y crear cuentas. Puertos y Cables Practicamente cualquier impresora que adquiera hoy en día para PC. Se describen los tipos de puertos y cables. Si usted esta instalando una impresora que utiliza protocolos de red para imprimir en lugar de una conexión directa a su puerto serial o paralelo.3. probablemente desee brincar a la sección Configuración del Software. para ver como imprimir gran variedad de formatos especiales. 10. indicarle a LPD como comunicarse con ella. imprimir encabezados. • La sección Instalación de Software. utiliza el puerto serial de su computadora para enviar datos a la impresora. para permitir que FreeBSD se pueda comunicar con su impresora. pero un poco más complicados de hacer a mano. así como el software de LPD para usar dicha impresora. Las opciones avanzadas.1. le muestra como instalar y configurar el fichero de configuración de LPD (/etc/printcap). le da algunos consejos sobre como instalar su impresora a los puertos de su computadora. Instalación Física Esta sección le informa sobre varias fomras en que puede usted conectar la impresora a su PC. vea la sección Impresoras con Interfaces de Red para Secuencia de Datos. Aun cuando esta sección se llama “Configuración Simple de una Impresora”.1. 10.

conecte el cable Centronics entre la impresora y la computadora. es utilizando dos vías de comunicación: usted solicita a la impresora el conteo de impresiones (esto es. En términos generales los interfaces seriales son más lentos que las interfaces en paralelo.1. que puede ser: ninguno o XON/XOFF (también conocido como “in-band” o 89 . Por otro lado los interfaces en paralelo sólo ofrecen comunicación de una vía (de la computadora a la impresora). que tanto su ordenador como impresora soporten.1. los trabajos PostScript. algunos otros son compartidos (envia datos para recibir datos. pueden comunicarse en ambas direcciones bajo FreeBSD. Recuerde cual es el puerto en paralelo que utilizó en su computadora. la mejor forma de contabilizar con impresoras PostScript. pero este envia señales a su contraparte. deben ser suficientes para llevar esto a cabo.1. También es necesario que configure los parámetros de comunicación para la impresora. puede intentar alguna de las siguientes alternativas: • Un cable de módem conecta cada pin del conector de un extremo. Puertos Seriales Para conectar una impresora. el primer puerto paralelo es /dev/lpt0. el único escenario donde requiere de una comunicación de ambas vías con la impresora. computadora o ambas. en lugar de que internamente se deshabilite. Este tipo de cable también se le conoce como cable “DTE-a-DCE”.3.3. en virtud del tipo de conector en la impresora. Este tipo de cable también se le conoce como cable “DTE-a-DTE”. los cuales no requieren de papel y pueden enviar la salida directamente a la computadora. igual o aleatoria y 1 o 2 en bits de paro. También seleccione un protocolo para el control de flujo. por ejemplo). • Un cablde de módem-nulo conecta de fomra directa algunos pins. posteriormente envia el trabajo del usuario y repite la solicitud de conteo. con el conector del otro extremo. PostScript utiliza una comunicación de dos vías. • Un cable de impresora serial. nomralmente esto lo realiza desde los controles de la misma o interruptores DIP en la impresora. Las instrucciones que vienen con su impresora. todas las impresiones hechas en su vida). Las instrucciones que vienen con su impresora. son programas enviados a la impresora. sólo es requerido por algunas impresoras poco comunes. es cuando la impresora maneja PostScript. Puertos Paralelos Para conectar una impresora usando el puerto en paralelo. con su computadora o ambas. Seleccione 7 u 8 bits de datos. Si usted no esta seguro de cual es el “cable serial apropiado”. Normalmente.1. 10. usando el puerto serial. Capítulo 10.3. mientras que los seriales ofrecen de dos vías.2. es similar al cable de módem-nulo. tal como errores en los programas PostScript o papeles atascados. la paridad establezcala en: ninguna. para informar al ordenador de los problemas que se puedan presentar. De hecho. Imprimiendo En ocasiones las interfaces en paralelo son conocidas como interfaces “Centronics”. deben ser una buena guía para llevar esto a cabo. Sus usuarios pueden apreciar este tipo de información. el segundo puerto es /dev/lpt1 y así sucesivamente. Gran cantidad de recientes impresoras y puertos paralelos. Más allá de esto. Para FreeBSD. Las impresoras que manejan PostScript detallan gran cantidad de información. conecte el cable apropiado entre la impresora y el ordenador. de manera directa. y algunos otros internamente son deshabilitados en los conectores. 10. cuando se utiliza un cable compatible con IEEE1284. Resta los dos valores obtenidos y sabra cuanto debe cobrar al usuario por uso de papel. Selecciones el bps (bits por segundo y en ocasiones llamado velocidad de baudio) más alto.

veremos como se lleva a cabo esto. Imprimiendo “software”). El puerto serial o paralelo de su computadora es parte de los dispositivos que debe incluirse en la compilación del kernel. puede que sea necesario recompilar el kernel incluyendo el soporte para el o los puertos serial y/o paralelo. para efecto de que su kernel cuente con el soporte para el puerto serial o paralelo que este utilizando su impresora. Si observa una salida similar a la siguiente: sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A entonces su kernel ya cuenta con soporte para el puerto. Posteriormente en este capítulo. 10. si es necesario. En la sección Configuración del Kernel encontrará toda la información necesaria. que veremos en la siguiente sección. bajo FreeBSD. Configuración del Software La presente sección describe la configuración necesaria para poder imprimir usando el sistema de cola LPD. Configuración del Kernel El kernel del sistema operativo es compilado para trabajar con ciertos dispositivos. 4. Establecer en modo de comunicación el puerto en paralelo. comenzando desde cero.3. si es que el kernel no cuente ya con dicho soporte. si es que esta usando dicho puerto. Configurar LPD para su uso con la impresora. Aqui presentamos un resumen de los pasos necesarios: 1. 90 . 10.2. teclee lo siguiente: # dmesg | grep sioN Donde N es el numero de puerto serial.1. modificando el fichero /etc/printcap. Si observa una salida similar a la siguiente: lpt0 at 0x378-0x37f on isa entonces su kernel cuenta con soporte para el puerto. Puede que sea necesario recompilar su kernel. La sección Verificando la Comunicación con la Impresora le puede dar detalles sobre como hacer esto. Para averiguar si su kernel cuenta con soporte para el puerto en paralelo. Configure su kernel. cuenta con soporte para el puerto serial. 2. Compruebe si el sistema operativo puede enviar datos a la impresora. Capítulo 10.1.3. para la configuración del software. Por lo tanto. teclee: # dmesg | grep lptN Donde N es el numero de puerto serial. para llevar esto a cabo. Recuerde las opciones que haya seleccionado en esta parte.1. 3. La sección Estableciendo el Modo de Comunicación en el Puerto en Paralelo le da detalles al respecto.2. Para averiguar si el kernel que tiene instalado actualmente. comenzando desde cero. para habilitar el uso del puerto al que esta conectado su impresora.

10. Para añadir soporte para el puerto paralelo. utilizando el programa lptcontrol(8). aun deberá de contar con las interfaces necesarias en su sistema.3. Cambiar su posición al directorio /dev de la siguiente forma: # cd /dev 3. Una vez que ha obtenido respuesta.3. deberá: 91 . Teclear: # . vea la sección en Configuración del Kernel. Para establecerlo configurando su kernel. Configurando el modo de Comunicación para el Puerto Paralelo Cuando utiliza el puerto paralelo. Capítulo 10. Con este método el sistema operativo utiliza un IRQ para determinar si la impresora esta lista para recibir datos./MAKEDEV PUERTO Donde PUERTO es la entrada del dispositivo que desea crear. Algunas impresoras funcionan en ambos métodos. pero nos ocupa un preciado IRQ. por medio de las cuales el sistema puede enviar y recibir los datos. para sus puertos.3. lpt1 para el segundo puerto. en el directorio /dev deberá: 1. En el directorio /dev es donde encontrará dichas interfaces en su sistema. el kernel comienza a transferir los datos. 2. Para establecer el método de comunicación. • El método a petición le indica al sistema operativo que constantemente le pregunte a la impresora si esta lista para recibir datos. y para el segundo ttyd1 y así sucesivamente. para el primer puerto serial puede utilizar ttyd0. Cambiar de usuario a root con el comando su(1). y así sucesivamente.1.3. Imprimiendo Para añadir soporte para el puerto serial. 10. Normalmente el método por medio de interruptores es más rápido.1. Puede utilizar lpt0 para el primer puerto en paralelo. 4. puede seleccionar si FreeBSD va a utilizar un modo de comunicación por medio de interruptores o a petición. pero son dolorosamente lentas usando el método por medio de interruptores. Ingresar la contraseña de root cuando le sea solicitada. Añadiendo Dispositivos de Puertos en /dev Aun cuando el kernel cuente con el soporte de comunicaciones para puertos seriales o en paralelo. Estas impresoras necesitan el método a petición.1. con la impresora. Se sabe que algunas impresoras nuevas de HP no funcionan muy bien con este método aparentemente debido (sin que aun se entienda el por que) a un problema de tiempos. • El método por medio de interruptores es el método que utiliza el kernel GENERICO de FreeBSD. vea esa sección y la siguiente sección. Es conveniente que utilice el método que se ajuste a sus necesidades. puede hacerlo de dos formas: configurando su kernel o bien. Para añadir una entrada. Teclee: # ls -l PUERTO para asegurarase de que la entrada del dispositivo correspondiente se ha creado.

Imprimiendo 1.1. 10. Para un tercer puerto paralelo utilice lpt2 y así sucesivamente. añada el especificador de irq: device lpt0 at isa? port? tty irq N vector lptintr Donde N es el numero de IRQ del puerto paralelo de su computadora. es conveniente verificar que nuestro sistema operativo pueda enviar datos exitosamente a nuestra impresora. Para probar nuestra impresora. use lpt1. después reinicie el sistema. el programa lptest(1) es perfecto: este genera todos los 96 caracteres ASCII imprimibles en 96 líneas. Es mucho más sencillo detectar errores cuando se configura por separado el método de comunicación y el sistema de cola de impresión. como el siguiente. 92 . Si esta configurando su segundo puerto en paralelo. Estos comandos los podría incluir en su fichero /etc/rc. Un pequeño programa PostScript. Para impresoras PostScript (o de otro lenguaje de impresión). Busque una línea que contenga lpt0.3. Teclee: # lptcontrol -p -d /dev/lptN para establecer el modo a petición para lptN . recompilación e instalación del kernel.2. 2. Vea lptcontrol(8) para más información al respecto. vamos a necesitar una prueba más sofisticada. Editar su fichero de configuración del kernel.local para que el sistema reconozca estos modos cada vez que inicia el sistema. enviaremos un poco de texto. Vea Configuración del Kernel para más información al respecto. • Si desea utilizar el modo a petición. si esta no existe añadala. Para establecer el modo de comunicación usando lptcontrol(8): 1. Verificando la Comunicación de la Impresora Antes de proceder a configurar el sistema de cola de impresión. Guarde el fichero. no necesita agregar el especificador de irq: device lpt0 at isa? port? tty vector lptintr 2. Teclee: # lptcontrol -i -d /dev/lptN para indicar el modo por medio de interruptor para lptN . Para impresoras que inmediatamente pueden imprimir caracteres.3. • Si desea utilizar el modo por medio de interruptor. será suficiente: %!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage El código PostScript descrito puede guardarse en un fichero y usarse en el ejemplo que aparece en la siguiente sección. Capítulo 10. Posteriormente termine el proceso de configuración.

Capítulo 10. o cualquier tecla que funcione para efecto de especificar un fin de fichero. • Si la impresora utiliza PostScript u otro lenguaje de impresión. Añadiendo la siguiente entrada: printer:dv=/dev/puerto:br#bps:pa=paridad 93 . bajo FreeBSD. línea por línea teclee el programa. Cambiar a root usando su(1).3. Verificando una Impresora Serial Esta sección explica como verificar la comunicación.1. Para probar una impresora conectada el puerto serial: 1.1. pueden acabar mezclandose caracteres de escape con el texto plano. 10. Teclee: # lptest  /dev/lptN Donde N es el numero del puerto en paralelo. es guardar el programa en un fichero y teclear: # cat fcihero  /dev/lptN Donde fichero es el nombre del fichero que le dio al programa. No se preocupe si el texto no aparece bien. Cambiar a root con el comando su(1) 2. Teclee: # cat  /dev/lptN Posteriormente.2.2. bajo FreeBSD. Edite el fichero /etc/remote. presiona las teclas CONTROL+D.2. Una vez que ha terminado de introducir el programa. Para probar una impresora en paralelo: 1. de una impresora conectada al puerto serial. para el cual necesitaremos realizar ajustes especiales. entonces envie un pequeño programa a la impresora.3. Enviar datos a la impresora. Imprimiendo Nota: Cuando este documento se refiere a lenguaje de impresión.1. comenzando desde cero. usar el comando lptest(1). Otra manera de hacer esto.3. En este punto debe ver alguna impresión. 10. se asume lenguaje como PostScript y no el PCL de Hewlett Packard. Aun cuando PCL tiene gran funcionalidad. y ese es el tipo de lenguaje de impresión. cuidadosamente en virtud de que no puede editar una línea ya que presionado la tecla RETURN o ENTER. que desea enviar a imprimir. 2. • Si la impresora puede imprimir texto plano.3. Verificando Impresoras en Paralelo Esta sección le indica como comprobar la comunicación de una impresora en paralelo. es algo que arreglaremos más adelante.

Habilitando la Cola de Impresión: El fichero /etc/printcap En este punto. He aqui un ejemplo para una impresora conectada por medio de un puerto serial. utilice las teclas CONTROL+D. etc. en virtud de que así deberán especificarse en la configuración. línea por línea. presione la tecla correspondiente a fin de archivo. guardar el programa en un fichero y teclear: %  fichero Donde fichero es el nombre del fichero que contiene el programa. su kernel configurado con el soporte de comunicación. 4. Para impresoras PostScript. como la de retroceso son significativas para la impresora. posteriormente arreglaremos esto. Imprimiendo Donde puerto es el dispositivo usado por el puerto serial (ttyd0. Puede ser que también necesite un caracter especial para marcar el fin-de-fichero y que la impresora sepa que ha recibido el programa completo. none o zero). Una vez que tip(1) envia el programa. • Si la impresora puede imprimir texto plano. Conectarse a la impresora por medio de tip(1). 10. odd. en bits-por-segundo.4. bps se refiere a la velocidad. 94 . a la que se comunica la impresora. entonces envie un pequeño programa a la impresora. Capítulo 10. edite nuevamente el fichero /etc/remote e intente utilizando /dev/cuaaN en lugar de utilizar /dev/ttydN .). Envio de datos a la impresora. Ahora estamos listos para configurar LPD para controlar el accesos a nuestra impresora. No se preocupe si el texto no se ve del todo bien. y debe haber podido enviar datos a su impresora.1. y paridad es la paridad requerida por la impresora (ya sea even. ttyd1. Otra variante es. Nota: N de T: Las opciones de paridad se han dejado en inglés. muy cuidadosamente ya que algunas teclas. entonces utilice lptest(1).3. su impresora debe estar conectada. Teclee el programa. Usted debe ver algo de impresión. Teclee: % $lptest • Si es una impresora PostScript o que utilice otro lenguaje. Teclee: # tip printer Si este paso no funciona. sin paridad: printer:dv=/dev/ttyd2:br#19200:pa=none 3. el tercer puerto a 19200 bps.

2. no pueden imprimir texto plano directamente. de tal forma que los cambios que se realicen en este fichero. si la impresora esta conectada a un dispositivo serial. entonces lp será la impresora por default a utilizar. al imprimir algo con el comando lpr(1). 5. Capítulo 10. así como las siguientes secciones. 4. Así mismo. el nombre de la impresora a utilizar. Probar la configuración. Para más detalles vea las secciones Probando la Configuración y Resolución de Problemas. surten efecto inmediatamente. Desactive el encabezado de páginas (el cual esta activado por default). 95 . xs y xc para establecer los parámetros de comunicación.4. Los pasos de configuración mencionados anteriormente. al ejecutar cualquier comando de LPD.3. 6. Seleccione un nombre (y algunos alias convenientes) para la impresora. En realidad no importa mucho si este nombre es funcional o un tanto abstracto. De un modo simple. y especifique su ubicación con la característica sd. fc. asumen que si usted cuenta con una impresora de este tipo. sólo va a imprimir ficheros que la impresora puede manejar. vea la sección Identificando el Dispositivo de Impresión para mayor información. Utilice su editor de texto favorito para hacer cambios en /etc/printcap. esto se detalla en la sección Configurando los Parámetros de Comunicación de la Cola de Impresión. vea la sección Eliminando las Páginas de Encabezados para más información al respecto. Nombrando la Impresora El primer paso (sencillo) es escojer un nombre para su impresora. Cuando menos una de las impresoras señaladas en el fichero /etc/printcap debe contar con el alias lp. Instalar un filtro de entrada de texto plano. tal como /usr/share/misc/termcap y /etc/remote. en virtud de que usted podrá asignar alias para la impresora. 3. Normalmente los usuarios esperan poder imprimir texto plano a cualquier impresora conectada al sistema. vea la sección Instalando un Filtro de Texto para más detalles. Ubique el dispositivo /dev a usar por la impresora e indiquelo en el fichero /etc/printcap con la característica lp. Los programas que usan como interfaz de impresión a LPD.1. la configuración de una cola consiste en los siguientes pasos: 1. asumen lo mismo. La sección Acomodando Trabajos de Texto Plano en Impresoras PostScript le indica como debe hacerse esto. Este es el nombre de la impresora por default. Imprimiendo Para efecto de configurar LPD. y especifíquelos en el fichero /etc/printcap . Cree un directorio para la cola. El formato que mantiene el fichero printcap(5) es muy concreto. Para ver mayor información con respecto al formato. Si los usuarios del sistema no cuentan con la variable de entorno PRINTER o bien no especifican en la línea de comando.1. es importante considerar que debe añadir un paso adicional a los mencionados anteriormente: instalar un programa de conversión detexto-plano-a-PostScript (u otro lenguaje). Nota: Las impresoras basadas en un lenjuaje. vea la sección Nombrando la Impresora para más información al respecto. 10. El formato es idéntico al que guardan los ficheros que describen capacidades. El sistema de cola de LPD lee este fichero cada vez que se utiliza. vea la sección Creando el Directorio de la Cola para mayor información. tal como PostScript. al insertar la característica sh. vea la página de ayuda cgetent(3). es necesario editar el fichero /etc/printcap. Si usted cuenta con una impresora basada en lenguaje y desea poder imprimir en el lenguaje de la impresora así como texto plano. utilice las características fs.

3.3. comenzaremos con el esqueleto del fichero /etc/printcap.4:\ :sh: Note como hemos utilizado el formato correcto: donde la primer línea comienza en la primer columna de la izquierda y las líneas subsecuentes estan cuentan con sangría de un solo tabulador (TAB). Cada línea termina con una diagonal invertida. el host del cual se envio el trabajo y el nombre del trabajo. Desafortunadamente.sin paginas de encabezado # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. 10. panasonic. se suele asignar el último alias a la descripción completa de la impresora.4. incluyendo marca y modelo.4: En este caso. ya que rehacerlos es tan simple como ejecutar mkdir(1). Capítulo 10. diablo. Dada la naturaleza variante de los directorios de cola. es crear el directorio de cola de impresión. Para eliminar las páginas de encabezado. y donde otros ficheros de soporte se localizan. Eliminando las Páginas de Encabezados El sistema de cola de impresión LPD. y Diablo 630 Line Printer. Dado que tiene el alias lp. S. un directorio en el cual residen los trabajos de impresión hasta que son llevados a cabo. es costumbre que estos se localicen en /var/spool. interfiere con el trabajo de depuración de la configuración básica de la impresora.1. PS. todo esta impresión extra. y cuenta con los aliases ps. Creando el Directorio de la Cola El siguiente paso en la configuración de la cola. He aqui un ejemplo del fichero /etc/printcap con sh incluida en él: # # FIchero /etc/printcap para el host rose . ingreselos en el fichero /etc/printcap.4. tambié se considera la impresora por default. Una vez que ha seleccionado un nombre y algunos aliases. 96 . Imprimiendo También. añada shen la entrada de la impresora del fichero /etc/printcap. 10. Esta página contiene el nombre del usuario que solicitó la impresión. En el siguiente ejemplo.4. por default. la primer impresora se llama rattan y tiene como aliases line.1. como práctica común. excepto la última. y Panasonic KX-P4455 PostScript v51. Separe cada alias con una barra vertical e incluya dos puntos después del último alias. que define dos impresoras (una de matriz Diablo 630 y una impresora laser PostScript Panasonic KX-P4455): # # Fichero /etc/printcap para el host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. lp. todo en letras grandes. El nombre de la impresora deberá colocarse en la columna izquierda máxima.2. imprimirá una página de encabezado para cada trabajo. por lo que vamos a deshabilitar esta opción. No es necesario respaldar el contenido de estos directorios.3. La segunda impresora se llama bamboo.

de tal forma que no sea de acceso público. Para efecto de indicar esto. Identificando el Dispositivo de Impresión En la sección Añadiendo Dispositivos de Puertos en /dev.4:\ :sh:sd=/var/spool/lpd/bamboo: Notese que el nombre de la impresora inicia en la primer columna mientras que el resto debe contar con sangría de un tabulador y todas las líneas. abrirá el dispositivo especificado en nombre del programa filtro (reponsable de pasar los datos a la impresora). como se muestra a continuación: # mkdir /var/spool/nombre-impresora Aunque si cuenta con bastantes impresoras en su red. en la entrada de la impresora en el fichero /etc/printcap. 97 .3. En el caso de que usted no especifique directorio alguno con sd. vimos que dispositivo bajo el directorio /dev iba a utilizar FreeBSD para comunicarse con la impresora. terminar con una diagonal invertida. Esta indicación se hace por medio de la característica sd : # # Fichero /etc/printcap para el host rose . puede que desee proteger el directorio de cola. Ahora le indicaremos esto a LPD.4. y debe contar con permisos de lectura. puede que desee crear todos los directorios de cola.4. el sistema de cola usara como default /var/spool/lpd . en el fichero /etc/printcap. 10. Capítulo 10. En nuestro ejemplo haremos esto con nuestras dos impresoras de ejemplo rattan y bamboo: # mkdir /var/spool/lpd # mkdir /var/spool/lpd/rattan # mkdir /var/spool/lpd/bamboo Nota: Si a usted le preocupa la privacidad de los trabajos que imprimen los usuarios. usaremos la característica lp. escritura y navegación por estos y nadie más. Haremos esto para nuestros ejemplos: # chown daemon:daemon /var/spool/lpd/rattan # chown daemon:daemon /var/spool/lpd/bamboo # chmod 770 /var/spool/lpd/rattan # chmod 770 /var/spool/lpd/bamboo Finalmente. excepto la última.1. debe indicar a LPD acerca de estos directorios. Cuando el sistema de cola tiene un trabajo por imprimir. bajo un sólo directorio reservado para todas aquellas que imprimen usando LPD. Los directorios de cola deben pertenecer al usuario daemon y grupo daemon.incluyendo directorios de cola # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. Imprimiendo También es una buena costumbre crear el directorio con el mismo nombre que tenga la impresora.

fs#establece-bits Establece la marca de bits establece-bits en la estructura de sgttyb.5. 134. 10. o 38400 bits-por-segundo. he aqui lo que tendriamos que añadir a /etc/printcap: # # Fichero /etc/printcap para el host rose . Configurando los Parámetros de Comunicación del la Cola de Impresión Para impresoras conectadas a un puerto serial.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5: Si usted no indica la característica lp en el fichero /etc/printcap. utilizarmos lo siguiente: br#bps-velocidad Establece la velocidad de comunicación del dispositivo. 300. 110. 98 . con la característica lp. xc#limpia-bits Limpieza del modo bits.4. 19200. 9600. Esto es una ventaja dado lo siguiente: • Le permite probar diferentes parámetros de comunicación. asumiremos que rattan esta conectada al primer puerto paralelo. fc#limpiar-bits Limpia la marca de bits. Si la impresora que esta instalando esta conectada a un puerto en paralelo. 75. y otros parámetros de comunicación en lugar del programa filtro que manda los datos a la impresora. 4800.3. Para efecto de controlar los parámetros de comunicación por medio de un puerto serial. 2400. 600. De otra manera. • Habilita el sistema de cola de impresión para hacer uso del mismo programa filtro. LPD usará el dispositivo /dev/lp por default. con el simple hecho de modificar el fichero /etc/printcap.1.identificando los dispositivos a usar # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. en el fichero /etc/printcap. 200. y bamboo en el sexto puerto serial. Capítulo 10. de forma local limpia-bits una vez que se ha abierto la comunicación con el dispositivo. Imprimiendo En el ejemplo que hemos visto. donde limpiar-bits afecta en la estructura de sgttyb una vez que se ha entablado la comunicación con el dispositivo. asegurese de seguir las instrucciones de la siguiente sección. 1200. la paridad. 150. donde bps-velocidad puede ser 50. puede saltar la siguiente parte y dirijirse a la sección Instalando un Filtro de Texto. LPD puede especificar la velocidad de bps. con lo cual no es necesario recompilar el programa filtro. para varias impresoras que pueden contar con diferentes configuraciones de comunicación. El dispositivo /dev/lp actualmente no existe en FreeBSD. 1800.

hacer el trabajo de traducción necesario para la impresora. Capítulo 10.6. vea el fichero /usr/include/sys/ioctl_compat. /bin/cat && exit 0 exit 2 Haga el fichero ejecutable: # chmod 555 /usr/local/libexec/if-simple Ahora indiquele a LPD que lo use. Un filtro de texto. Para las marcas de bits usaremos TANDEM. El mismo procedimiento se sigue en el modo de bits local. LITOUT. el filtro de texto puede ser un pequeño script que sólo ejecute /bin/cat para enviar el trabajo a la impresora. y PASS8. FreeBSD cuenta con otro filtro llamado lpf que controla los caracteres de regreso y subrayado en impresoras que pueden presentar problemas con dichos caracteres. ANYP. Ahora añadamos la impresora de ejemplo que esta conectada al puerto serial numero seis.Filtro de texto simple para lpd # Instalado en la ruta /usr/local/libexec/if-simple # # Simplemente copia stdin a stdout. en el fichero /etc/printcap. al añadirlo con la característica if. y la salida estandar a la impresora indicada en la característica lp. también conocido como filtro de entrada. Y desde luego. Este filtro. Cuando LPD abre el canal de comunicación con el dispositivo especificado por lp. Introduzca el siguiente texto en un fichero. Instalando un Filtro de Texto Ahora estamos listos para indicarle a LPD que filtro de texto debe utilizar para enviar los trabajos a la impresora. de forma local establece-bits. configura de manera estandar la entrada para el trabajo a imprimir. El filtro espera leer el trabajo de la entrada estandar. La velocidad de bps la estableceremos en 38400 bps. fs. en el fichero /etc/printcap: 99 .4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: 10. En el caso de nuestro ejemplo. xc. es un programa que ejecuta LPD cuando tiene un trabajo para imprimir. y enviar los resultados a la salida estandar. Para mayor información en los filtros de texto.h. limpia cualquier bit en la característica fc y establece bits en la característica fs. El filtro lpf se describe a detalle en la sección titulada lpf: un Filtro de Texto. Para mayor información con respecto al uso de las caractrística de bits: fc.1. FLUSHO. Ignora todos los argumentos del filtro. lo vamos a añadir en ambas impresoras de nuestro ejemplo. lo cual será impreso. para posteriormente aplicar la configuración resultante. Cuando LPD ejecuta el filtro de texto para una impresora. y xs. usted puede utilizar cualquier filtro que desee. Imprimiendo xs#establece-bits Establece el modo bits.4. lee la marca de bits en la estructura sgttyb. con su eitor de texto favorito: #!/bin/sh # # if-simple . Para el modo local de bits.3. estableceremos LITOUT y PASS8 : bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. En primer lugar hagamos del script /usr/local/libexec/if-simple un simple filtro de texto. vea la sección Como Trabajan los Filtros.

y posteriormente puede reiniciar su sistema o ejecutar lpd(8). Si esta usando lptest(1).-.4.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\ :if=/usr/local/libexec/if-simple: 10. aun no es momento de una felicitación. Para imprimir con el sistema LPD.7.3. Probando la Configuración Usted ha llegado al fin de una configuración sencilla de LPD. Para efecto de probar la configuración. Encienda LPD lpd(8) se puede correr desde /etc/rc. intente imprimir algo.-.8. para generar un texto de prueba. Para una impresora PostScript. añadala de la siguiente forma: lpd_enable="YES" al fichero /etc/rc. teclee lpr(1) sin la opción -P./01234567 100 . Para probar con la impresora por default.4./012345 #$%&’()*+. Nuevamente. Simplemente para probar la configuración de LPD. si esta probando una impresora que espera recibir PostScript. dado que aun debemos probar la configuración y resolver cualquier problema que se presente. controlado por la variable lpd_enable. Imprimiendo # # Fichero /etc/printcap para host rose .conf. Si usted no cuenta con esta línea. usted debe visualizar el resultado del programa. entonces su resultado debe verse algo similar a lo siguiente: !"#$%&’()*+. intente: Teclee: # lptest 20 5 | lpr -Pnombre-impresora Donde nombre-impresora es uno de los nombres (o alias) que aparecen especificados en el fichero /etc/printcap para las impresoras. # lpd 10. en lugar de usar lptest(1). el cual envia el trabajo para su impresión.-. Puede combinar lpr(1) con el programa lptest(1).1./01234 "#$%&’()*+./0123456 $%&’()*+. Puede hacer esto poniendo el programa en un fichero y tecleando lpr fichero.1.-.añadiendo el filtro de texto # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. el cual se ve en la sección Verificando la Comunicación con la impresora. Capítulo 10. utilice el comando lpr(1).3. Desafortunadamente. Esta variable por default esta deshabilitada con NO. envie un programa PostScript en ese lenguaje.

incluido) escriben código PostScript directamente. Esto puede representar un problema para las impresoras PostScript (o que manejen otro lenguaje de impresión). Si la impresora no funcionó. He aqui lo que encontrará en esta sección: • La sección Como Trabajan los Filtros intenta dar un repaso general al papel que juegan los filtros en el proceso de impresión. son sencillos de escribir. y cuando no. Este conocimiento puede ayudarle a anticiparse y resolver problemas que puede encontrar cuando instala más y más filtros en cada impresora. 10. En el ejemplo de la impresora simple. intente descargar programas más largos (para impresoras basadas en un lenguaje) o ejecutar lptest(1) con diferentes opciones. Pero las impresoras PostScript son caras. Capítulo 10. La sección Acomodando Trabajos de Texto Plano en Impresoras PostScript le indica que debe de hacer si se le presenta este problema. • PostScript es un formato de salida muy popular. Configuración Avanzada de una Impresora Esta sección describe el uso de filtros para formatos especiales. Existen también una gran cantidad de filtros y componentes de estos. (Maneja caracteres de regreso y tabulador en el fichero. En virtud de que todos estos aspectos son la responsabilidad de estos filtros. Incluso algunas personas (yo. Y la mala noticia es. controles de acceso./012345678 Para más pruebas de la impresora. la mayor parte del trabajo real se lleva a cabo por los filtros.4. Es importante que lea esta sección para ver que sucede “tras bambalinas” cuando LPD usa filtros. encabezados de página. 10.4. pero se puede decir que eso es todo).-. que la mayor parte del tiempo usted debe proveerse de estos filtros. que trabaja con muchas impresoras que pueden imprimir texto plano. disponibles en la Colección de Ports de FreeBSD. para tomar ventaja de la conversión de formatos. Imprimiendo %&’()*+. es importante saber como trabajan los filtros. Es importante que lea esta sección si usted cuenta con una impresora PostScript. impresión en red. las cuales no pueden imprimir texto plano directamente. Por ejemplo lptest 80 60 producirá 60 líneas de 80 caracteres cada una. requisiciones y otros aspectos de la impresión.1. Filtros Aun cuando LPD maneja con protocolos de red. La buena noticia es normalmente estos ya existen disponibles. trucos específicos de las impresoras y demás. De cualquier manera. y restricción de uso de la impresora por cuenta. Los Filtros son programas que se comunican con la impresora y controlan las dependendcias de su dispositivo y requerimientos especiales. FreeBSD tambié cuenta con un /usr/libexec/lpr/lpf. La sección Simulando PostScript en Impresoras 101 . vea la sección Resolución de Problemas. así como conteo. cuentas de impresión. instalamos un muy sencillo filtro de texto plano—un ejemplo extremadamente sencillo que debiese trabajar con la mayoría de las impresoras (en la sección Instalando un Filtro de Texto). • Normalmente LPD espera poder imprimir texto plano en todas las impresoras.

normalmente al llevar la cuenta de las líneas impresas y comparandolas con el numero de líneas soportadas por página. Si usted necesita una forma rápida de tener un contador de trabajos de impresión para texto plano. responsable de la comunicación con la impresora. si el usuario teclea lpr -t. el filtro de texto también debe llevar un conteo de páginas impresas. de tal forma que la impresora no se confunda. Por ejemplo. tal como gráficos o datos de un determinado tipo. depende en lo especificado en el fichero /etc/printcap y los argumentos que hayan sido utilizados por el usuario al momento de usar en la línea de comandos: lpr(1).1. 10. y a la impresora como salida estandar. el que se encarga de manejar los caracteres de retroceso y tabulador. El filtro de texto se comienza con los siguientes argumentos: nombre-del-filtro [-c] -wanchura -llongitud -isangrado -n login -h host fichero-act donde -c aparece si el trabajo se envio utilizando lpr -l 102 . A menos que usted haya habilitado la impresión de páginas de encabezado (vea Páginas de Encabezado). para mayor información. erroneamente llamado filtro de entrada en la documentación de LPD. vea la sección Filtros de Salida). Existen tres tipos de filtros que puede declarar en el fichero /etc/printcap: • El filtro de texto. Cuando LPD desea imprimir un trabajo. inicia un programa filtro. LPD espera que todas las impresoras puedan imprimir texto plano y es el filtro de texto. Cual filtro debe ser iniciado por LPD y con que argumentos. para impresoras de matriz de puntos (e impresoras laser que actuan como estas) que viene con FreeBSD.1. • La sección Filtros de Salida explica todo acerca de las utilidades que no son muy usadas de LPD: filtros de salida. acepte e imprima datos PostScript. • La sección Filtros de Conversión. Como Trabajan los Filtros Como se menciono anteriormente. Establece como entrada estandar del filtro al fichero. un filtro es un programa ejecutable que se inicia por LPD. en el fichero /etc/printcap o por default como /dev/console).4. Es recomendable que lea esta sección si cuenta con una impresora no-PostScript. a un formato que la impresora puede entender. Si el usuario desea imprimir texto plano iniciará el filtro if (esto casi es así. Piense en este como en el filtro por default. Capítulo 10. • La sección lpf: Un Filtro de Texto detalla el uso de lpf. para manejar el dispositivo dependiente. listado en las características tf para la impresora destino. Imprimiendo No-PostScript le indica como puede hacer. definitivamente debe considerar lpf como su alternativa. Si en su sistema se debe llevar un conteo de impresiones. o bien lpr -v para imprimir datos de imagen y así sucesivamente. para que una impresora no-PostScript. este se encarga de manejar la impresión de texto simple. un sencillo filtro de texto. le indica la forma en que puede automatizar la conversión de ciertos formatos específicos de ficheros. puede saltar toda esta sección. Después de leer esta sección usted podrá configurar su impresora de tal forma que los usuarios puedan teclear lpr -t para imprimir datos troff o lpr -d para imprimir datos de tipo TeX DVI. LPD iniciará el filtro para ficheros troff. y como error estandard al fichero log (indicado con la cracterística lf. o bien si tiene una impresora que al ver caracteres de regreso (backspace) comienza a echar humo. Recomiendo la lectura de esta sección.

LPD reiniciará el filtro si sale con esta clave. 103 . La sección Filtros de Conversión explica todo lo que usted necesita saber sobre ellos. En mi experiencia. por default es 0. datos de tipo ditroff no pueden imprimirse directamente. Imprimiendo anchura es el valor de la característica pw (ancho de página). pero desea que LPD intente de nuevo el trabajo de impresión. • Un filtro de conversión convierte un formato específico. indicado en /etc/printcap. La sección Filtros de Salida describe el uso de estos. por default se usa un valor de 132 longitud es el valor de la característica pl (longitud de página). o bien si las páginas de encabezado están habilitadas. Los filtros de conversión también requieren de llevar un conteo. pero puede instalar un filtro de conversión para ficheros ditroff. del cual se ha enviado el trabajo de impresión fichero-act es el nombre del fichero contador. La salida de los filtros debe ser con el siguiente resultado: exit 0 Esto es si el resultado de la impresión es satisfactorio. de tal forma que los datos ditroff se conviertan a un formato que entiende la impresora. de la característica af. Capítulo 10. Los filtros de conversión se inicializan con estos argumentos: nombre-del-filtro -xancho-pixel -yalto-pixel -n login -h host fichero-act donde ancho-pixel es el valor de la característica px (default 0) y alto-pixel es el valor de la característica py (default 0). exit 1 Si el filtro falló en la impresión. • El filtro de salida es usado solamente si no existe un filtro de texto. por default su valor es 66 sangrado se refiere a los espacios que se considerarán para lpr -i. a uno que la impresora puede plasmar en un papel. los filtros de salida raramente se utilizan. Sólo existen dos argumentos: nombre-filtro -wancho -llargo los cuales son idénticos a los argumentos -w y -l de los filtros de texto. Por ejemplo. login es el nombre de la cuenta del usuario que imprime el trabajo host es el nombre del host. si usted requiere de este control.

entonces creelos pensando en soportar estos argumentos y códigos de salida.Imprime PostScript o texto plano en impresoras PostScript # Script version. Posteriormente utiliza lprps para enviar el trabajo a la impresora. entonces se considera PostScript y puede pasar el resto del trabajo de forma directa. compilar e instalarlo. entonces el filtro hará la conversión del texto a PostScript e imprimirá el resultado. y promete nunca enviar texto plano a su impresora o bien hacer uso de algunos programas que probablemente envien texto plano a su impresora.4. Si esos no son los primeros dos caracteres. Si lo son. que lprps requiere). Una vez que instale lprps. el cual detecta si el trabajo que se ha enviado es texto plano. Claro esta. simplemente especifique la ruta al programa psif que a su vez es parte de lprps. Capítulo 10. una buena forma de hacer esto es instalando lprps. Actualiza el fichero de estatus de la impresora. ¿Cómo se hace esto? Si usted cuenta con una impresora serial. El programa lprps es parte de la Colección de Ports de FreeBSD (vea la sección La Colección de Ports). Para efecto de hacer esto. Si usted esta buscando adquirir filtros. Si esos son los dos primeros caracteres de su trabajo. toma ventaja de los argumentos de ancho y largo. lprps es un filtro de impresión PostScript que lleva a cabo una comunicación de dos vías con la impresora. entonces es altamente recomendable que prepare la configuración de su impresora. contamos con el filtro de texto. puede utilizar el siguiente script de shell como filtro de texto: #!/bin/sh # # psif . que usted puede descargar. vea la documentación de su impresora). en el fichero /etc/printcap: :if=/usr/local/libexec/psif: También deberá especificar la característica rw. conectada a un puerto paralelo (y por lo tanto no cuenta con la comunicación de dos vías con la impresora. Pero más importante es el programa que incluye llamado psif. Acomodando Trabajos de Texto Plano en Impresoras PostScript Si usted es el único usuario de su computadora e impresora PostScript (u otro lenguaje de impresoras). Si usted planea escribir filtros para uso general.1. El filtro de texto /usr/libexec/lpr/lpf que viene con FreeBSD. 10. de tal forma que los usuarios y administradores pueden ver exactamente el estado que guarda la impresora (tal como toner bajo o papel atorado). así como el fichero de conteo. añada lo siguiente. para convertir el texto plano a PostScript. Imprimiendo exit 2 Si el filtro falla imprimiendo el fichero y no desea que LPD lo intente de nuevo. que le indica a LPD abrir la impresora en modo de lectura-escritura. para detectar si los trabajos que se han mandado son de texto plano o PostScript. para llevar el control de este registro. NO la version que viene con lprps 104 . deben comenzar con %! (para otros lenguajes de impresión. Utiliza el host y login. Si ha instalado lprps de la Colección de Ports. con lo cual llama a textps (otro programa que viene con lprps). Todos los trabajos de tipo PostScript. en la parte correspondiente a su impresora Serial-PostScript. Si usted cuenta con una impresora PostScript. como PostScript a su impresora. entonces usted no debe preocuparse por leer esta sección. si usted desea enviar tanto texto plano. deberan soportar los argumentos descritos anteriormente. verifique que ellos son compatibles con LPD. por medio de información actualizada. LPD desechará el fichero. para determinar cuando alimentar la impresora y como llevar el conteo de uso de la impresora.2. Pero.

contamos con el filtro de texto que detecta si se esta imprimiendo un fichero PostScript. Usted puede utilizar cualquier cualquier programa de conversión de texto plano a PostScript que desee. substituya el argumento -sDEVICE del comando gs (Ghostscript). textps es un programa que hemos instalado por separado. Para efecto de simular PostScript. cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi En este script.\)’‘ if [ "$first_two_chars" = "%!" ].4. convertirlo e imprimirlo. También puede descargarlo. Ghostscript puede leer la mayoría de los ficheros PostScript y volcarlos en una gran variedad de dispositivos. 10. puede hacer que su impresora no-PostScript actue como una impresora PostScript real.Impresion simulada-Ghostscript PostScript en una DeskJet 500 # Instalada en /usr/local/libexec/hpif # # Trate a LF como CR+LF: # 105 . Aunque en realidad PostScript resulta ser un estandar algo caro. Teclee gs -h para obtener una lista de todos los dispositivos soportados por Ghostscript en su sistema). Si no es así. # ( echo "$first_line". La Colección de Ports de FreeBSD incluye un programa muy completo llamado a2ps que quizás desee investigar. Afortunadamente la Empresa Alladin. para convertir texto plano a PostScript. Capítulo 10. de otra forma utilizará Ghostscript para convertir primero el fichero a un formato que la impresora entienda. el filtro pasará el trabajo directamente a la impresora. Simulando PostScript en Impresoras No-PostScript PostScript es el estandar por excelencia en impresiones de alta calidad.. Ghostscript se encuentra en la Colección de Ports de FreeBSD por lo que puede realizar la instalación desde este medio. llamado Ghostscript que corre bajo FreeBSD. compilarlo e instalarlo de una manera fácil. imprimirlo.1. then # # Trabajo PostScript. Imprimiendo # Instalado en /usr/local/libexec/psif # read first_line first_two_chars=‘expr "$first_line" : ’\(. #!/bin/sh # # ifhp . Al instalar Ghostscript y usando un filtro de texto especial para su impresora.3. cuenta con un emulador PostScript. Para otras impresoras. # echo "$first_line" && cat && printf "\004" && exit 0 exit 2 else # # Texto Plano. Aqui tenemos un ejemplo: el siguiente script es un filtro de texto para impresoras Hewlett Packard DeskJet 500. incluyendose gran variedad de impresoras no-PostScript.

#  exec 3 &1 1 &2  /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=/dev/fd/3 .. # Un ejercicio para el lector astuto: capture la salida del error estandar # de Ghostscript y envielo por correo de regreso al usuario original.\)’‘ if [ "$first_two_chars" = "%!" ]. para la # salida estandar. lo que puede # confundir la salida impresa.plano y lpr cualquier. Filtros de Conversión Una vez que se ha completado la configuración descrita en la sección Configuración Simple de una Impresora. # permita la alimentacion de forma al final. Imprimiendo printf "\033&k2G" || exit 2 # # Read first two characters of the file # read first_line first_two_chars=‘expr "$first_line" : ’\(. probablemente lo primero que deba hacer es instalar filtros de conversión para su formato de fichero favorito (aparte de text plano ASCII). y crearemos una clave de salida 3.4. necesita notificar a LPD de la característica if. then # # Se trata de PostScript.1. 10. y haremos que Ghostscript escriba su salida a esta. que corresponde al filtro a utilizar: :if=/usr/local/libexec/ifhp: Y eso es todo. use Ghostscript para convertir e imprimir. De tal forma que redireccionaremos la salida # estandar a error estandar.&& exit 0 # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=. para expulsar la ultima # pagina. Puede teclear lpr texto. # # Note que los ficheros PostScript son . # echo $first_line && cat && printf "\033&l0H" && exit 0 fi exit 2 Finalmente. # y esos programas se permiten escribir en la salida estandar.\ && exit 0 else # # Texto plano o PCL de HP. asi que solo vamos a imprimirlo directamente. que # genero el trabajo de impresion. Capítulo 10.ps y ambos deben imprimirse exitosamente.4. de hecho. 106 .. programas interpretados.

suponga que requiere imprimir un buen numero de ficheros desarrollados con el sistema de escritura TeX. el uso de lpr -d indica que la impresora requiere de la característica df.4. o -l En nuestro ejemplo. Como ejemplo.4. cada vez que generemos un fichero DVI. Si cuenta con bastantes ficheros troff por imprimir. en su entrada del fichero /etc/printcap. En la siguiente tabla encontrará un resúmen de los filtros con que trabaja LPD.dvi Con esto le hemos indicado a LPD que haga la conversión del fichero DVI. supongamos que desea imprimir ficheros de tipo Printerleaf (que son ficheros generados por el programa de promoción de escritorio Interleaf) de forma directa. La sección Opciones de Formato y Conversión enumera las opciones de conversión. pero que nunca imprime ficheros 107 . un ejemplo de su entrada en /etc/printcap y como hacer uso de estos con el comando lpr : Tipo de Fichero Característica /etc/printcap Opción lpr cifplot cf -c DVI df -d plot gf -g ditroff nf -n FORTRAN texto rf -f troff rf -f raster vf -v texto plano if ninguna. entonces un filtro troff sería una buena idea. Imprimiendo 10. así como a cualquier otro con el simple hecho de instalar los filtros adecuados.1. Cada vez que generemos un fichero DVI desde TeX. formatos como texto de FORTRAN o plot. 10. podemos omitir llevar a cabo la conversión manual. no podremos imprimirlo directamente hasta que hagamos una conversión de este a PostScript. Si imprime gran cantidad de documentos DVI. sólo estaremos a un paso de su impresión: % lpr -d fichero-prueba.1. el filtro convierte el fichero a un formato que la impresora puede entender. usted puede encontrar nuevos usos de estos formatos. Por cada una de las opciones que desea que una impresora reconozca.2. ¿Por qué Instalar Filtros de Conversión? Los filtros de conversión sirven para instalar de una manera sencilla varios tipos de formatos especiales.4. ¿Qué Filtros de Conversión Debo Instalar? Usted debe instalar los filtros de conversión que vaya a necesitar. A su gusto. -p. Un filtro de conversión es como el filtro de texto usado en la configuración de una impresora simple (vea la sección Instalando un Filtro de Texto para una referencia) excepto de que en lugar de imprimir texto plano.dvi % lpr fichero-prueba.1. es recomendable que instal un filtro de conversión para DVI. y contamos con una impresora PostScript. La secuencia de comandos a seguir es algo así: % dvips fichero-prueba. Esto se lleva a cabo por medio de la opción -d. instale un filtro de conversión y señale su ruta en el fichero /etc/printcap. son probablemnte obsoletos. Capítulo 10. A pesar de lo que otros puedan opinar. Ahora.ps Al instalar un filtro de conversión. y permitir que LPD se haga cargo por nosotros.4. Por ejemplo.

para la impresora bamboo. Más Ejemplos de Filtros de Conversión Considerando que no existe una serie de pasos establecida. que es el trabajo a imprimir. los usuarios comunes no necesitarán ejecutarlos nunca. me permito mostrar algunos ejemplos más. si es que se ajustan a sus necesidades.3. El directorio /usr/local/libexec es un lugar común. Instalando Filtros de Conversión Considerando que los filtros de conversión son programas que usted instala independientemente de la instalación base de FreeBSD. # # Fichero /etc/printcap para host rose . en virtud de que estos son programas especiales que sólo serán ejecutados por LPD. 10. deberá especificar su ruta bajo la característica adecuada. para la impresora llamada bamboo.4. Capítulo 10. He aqui un ejemplo del fichero /etc/printcap que hemos estado utilizando. con la nueva característica df. Puede usarlos tal como aparecen. Posteriormente inicia el filtro de impresión PostScript lprps (vea la sección Acomodando Trabajos de Texto Plano en Impresoras PostScript). Para habilitar un filtro de conversión. con las opciones que LPD haya pasado al script.4. Imprimiendo plot.añadiendo df a bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. en la entrada de la impresora correspondiente en el fichero /etc/printcap.1.4.4.4. para instalar filtros de conversión. 108 .4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: El filtro DVI es un script de shell llamado /usr/local/libexec/psdf.1. Aqui presentamos el script: #!/bin/sh # # psdf . Podría instalar un filtro de conversión de Printerleaf bajo la característica gf y posteriormente educar a sus usuarios a que utilicen el comando lpr -g para llevar a cabo “impresiones de ficheros Printleaf”. 10. El comando lprps hará uso de esas opciones para llevar la cuenta de las páginas impresas. añadiremos el filtro de conversión DVI. En nuestro ejemplo.Filtro de impresion DVI a PostScript # Instalado en /usr/local/libexec/psdf # # Llamado por lpd cuando el usuario ejecuta lpr -d # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" Este script ejecuta dvips en modo de filtro (la opción -f) con la entrada estandar. probablemente el mejor lugar para colocarlos sería bajo el directorio /usr/local.

de hecho se trata de un fichero GIF). Es un filtro de texto para FORTRAN. posteriormente los imprime # Instalado en /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH. y conviritendo eso a un mapa en escala de grises.Convierte datos groff a PS. usando impresoras que pueden imprimir directamente texto plano. Si la impresora se encontrase en un puerto paralelo. para una impresora Hewlett Packard LaserJet III-Si: #!/bin/sh # # hpvf . y finalmente eso a datos compatibles con HP/PCL. # Instalado en /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@" El script de arriba. entendible por la impresora LaserJet. usariamos el siguiente script: #!/bin/sh # # pstf . para la impresora PostScript denominada bamboo: #!/bin/sh # # pstf . Aqui esta un ejemplo del fichero /etc/printcap usando el filtro anterior. y los imprime. # Instalado en /usr/local/libexec/pstf # exec grops Eso es todo. para manejar la comunicación con la impresora.Convierte ficheros GIF a HP/PCL. Imprimiendo Este ejemplo es de un filtro de conversión raster (bueno. nuevamente hace uso del comando lprps. y los imprime. Aqui presentamos la entrada necesaria en /etc/printcap para habilitar el filtro: :tf=/usr/local/libexec/pstf: Aqui presentamos un ejemplo que puede hacer que los viejos usuarios de FORTRAN se ruboricen. con la impresora mencionada. Lo instalaremos para la impresora teak: 109 . Capítulo 10.Convierte datos de troff tipo groff a PS. y ese mapa de regreso a un fichero portable de mapa de bits. export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2 Esto trabaja convirtiendo el fichero GIF a cualquier tipo de fichero mapa portable. # # Fichero /etc/printcap para el host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf: El siguiente script es un filtro de conversión de datos de tipo troff desde un sistema groff.

vamos a necesitar un programa de conversión de DVI-a-LaserJet/PCL. El programa dvilj2p hace que el filtro hpdf sea más complejo. dvilj2p. Finalmente. el cual será el directorio de la cola de impresión (especificado en /etc/printcap por la característica sd). especialmente que aqui existe más espacio (algunas veces) en disco duro. LaserJet III y LaserJet 2000 y códigos compatibles. El filtro puede crear el enlace. Y el directorio /tmp cuenta con el bit “pegajoso” activado.Filtro de Texto FORTRAN para LaserJet 3si: # Instalado en /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2 Y añadiremos esta línea al fichero /etc/printcap para la impresora teak. Capítulo 10. Y lo que es peor.dvi. el cual convierte ficheros DVI a ficheros compatibles con LaserJet IIp. El único punto negativo que nos queda por resolver.Impresion de datos DVI en una impresora HP/PCL # Instalado en /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH. el filtro creará el enlace simbólico en el directorio de trabajo actual. El filtro de ejecuta como usuario daemon.dvi) a /dev/fd/0. el nombre del paquete es: dvi2xx. Esto lo podremos solucionar. la parte sencilla: actualizaremos /etc/printcap con la ubicación del filtro DVI: :df=/usr/local/libexec/hpdf: Ahora la parte complicada: crar el filtro. es que el nombre del fichero debe contar con la terminación . el cual servira para la cola de impresion de # la impresora. ya que pertenece a un usuario diferente. que bajo el directorio /tmp. aqui presentamos el filtro: #!/bin/sh # # hpdf . Los enlaces simbólicos son propiedad del grupo y usuario bin. de tal forma que usar /dev/fd/0 como entrada estandar representa un problema. creando un enlace (simbólico) de un fichero temporal (uno que su tenga como extensión . nos brinda la funcionalidad que buscamos. Primero. export PATH # # Definir una funcion para limpiar nuestros ficheros temporales. Estos existen # en el directorio de trabajo actual. Vamos a añadir un filtro DVI para la impresora LaseJet teak comentada anteriormente. y por tanto forzando a dvilj2p a leer la entrada estandar. En lugar de esto. Para eso. La Colección de Ports de FreeBSD (vea La Colección de Ports) cuenta con uno. Este lugar es perfecto para que los filtros hagan su trabajo. para efecto de habilitar el filtro: :rf=/usr/local/libexec/hprf: Aqui presentamos el último ejemplo que puede resultar algo complicado. en virtud de que dvilj2p no puede leer desde la entrada estandar. pero no podrá limpiarlo una vez que termine y eliminarlo. es que no podemos utilizar /tmp para el enlace temporal. Al instalar este programa. 110 . Este desea trabajar desde un nombre de fichero. Imprimiendo #!/bin/sh # # hprf .

dvi } # # Definir funcion para el manejo de errores fatales: imprimir un mensaje dado y salir # con codigo de salida 2. LPD enviara un SIGINT. Capítulo 10.dvi # # Limpiar y salir # cleanup exit 0 111 . Regresar valor de dvilj2p no parece my confiable. Imprimiendo # cleanup() { rm -f hpdf$$. # cleanup # # Crear el enlace de la entrada DVI a la entrada estandar (el fichero a imprimir). # trap cleanup 1 2 15 # # Asegurarse de que no estamos creando un conflicto con ficheros existentes.dvi || fatal "Cannot symlink /dev/fd/0" # # Hacer LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Convertir e imprimir. para que SIGINT # (y algunas otros avisos) limpien despues de nosotros. # fatal() {  echo "$@" 1 &2 cleanup exit 2 } # # Si el usuario elimina el trabajo. Al salir con 2.dfhp$$. # asi que es ignorado. # ln -s /dev/fd/0 hpdf$$. le indica a LPD que no intente la impresion # de nuevo. # dvilj2p -M1 -q -e.

vea la sección Instalando un Filtro de Texto . De hecho. en lugar de hacerlo para cada fichero del trabajo. para la impresora en cuestión. al filtro de salida. el filtro de salida no hará este trabajo. dado que LPD no otorga información del usuario o host. pero con el inconveniente de que cada usuario debe especificar cual filtro es el que se debe utilizar (cuando se invoca el comando lpr(1)). para buscar alguna marca especial y enviarse señas él mismo. Y lo que es peor. por lo tanto no esta diseñado para llevar un conteo por usuario. De cualquier forma. • En el filtro de salida.4. LPD no realiza un trabajo extra para identificar el comienzo o el fin del trabajo.4.1. Conversión Automática: Una Alternativa A Los Filtros De Conversión Todos estos filtros de conversión realizan una gran labor en pro de sus labores de impresión. entonces: • LPD inicia el filtro de salida para el trabajo completo. este sólo maneja dos argumentos: nombre-filtro -wancho -llargo Donde ancho es tomado de la característica pw y largo es tomado de la característica pl. Posteriormente LPD espera que el filtro de salida se detenga por sí mismo al enviarle dos bytes al filtro: ASCII 031 seguido de ASCII 001. Si sus usarios no son lo que podemos llamar aficionados a la computación. PostScript y ficheros DVI. ejecutar la conversión adecuada e imprimir. Claro esta. 001). En este caso. un filtro de salida es necesario si usted desea páginas de encabezado y requiere de enviar un secuencia de escape u otras cadenas de inicialización para habilitar la impresión de encabezados. puede que algunos tipos de ficheros puede ser difícil determinar de que tipo son. En lugar de instalar filtros de conversión. Cuando un filtro de salida recibe estos dos bytes (031. Si usted desea que cada fichero de un trabajo sea impreso en una página diferente. Mas allá. como el filtro de texto. • Para el filtro de salida. Este puede detectar texto plano. Un filtro de salida esta diseñado para imprimir texto plano únicamente. que aun no hemos explicado aqui: un filtro de salida. el filtro de salida es de hecho más complicado en ese aspecto dado que examina la cadena de bytes que se ha enviado. LPD iniciará el filtro de salida para imprimir las páginas de encabezado (vea la sección Páginas de Encabezado) únicamente. el especificar que filtro utilizar puede volverse algo molesto. Es importante que no se deje seducir por la simplicidad del filtro de salida. En cuyo caso. Utilice un filtro de texto (también conocido como filtro de entrada).) En una sola impresora.5. el uso de un filtro inadecuado puede causar que su impresora termine imprimiendo cientos de hojas de papel de manera incorrecta. pero de una forma más simplificada. herramientas como file pueden ser de mucha utilidad. pero siempre puede contar con filtros especiales para ellos. LPD no utiliza como argumento el nombre de usuario o host. 112 .5. llamado apsfilter. quizás le interese intentar que su filtro de texto (dado que es el filtro por default) determine que tipo de fichero se esta enviando a imprimir y automáticamente ejecute el filtro adecuado.4. LPD permite el uso tanto del filtro de salida como el filtro de texto. Si usted esta usando un filtro de salida pero no filtro de texto. deberá pararse.1. Filtros de Salida El sistema de cola de impresión de LPD soporta otro tipo de filtros. (Aunque también es trivial si desea cobrar de acuerdo a las páginas encabezado de cada usuario. La Colección de Ports de FreeBSD cuenta con un filtro de texto que ejecuta de forma automática la conversión. Capítulo 10. a nombre de LPD. 10. Imprimiendo 10.

El obvio lado negativo de estas páginas es que se debe imprimir una hoja adicional. y contabiliza las páginas impresas. Imprimiendo enviandose a sí mismo una señal SIGSTOP.) El sistema LPD puede proveerle de las páginas de encabezado de forma automática para sus impresiones. es muy sencillo escribir un script de shell para llevar a cabo la inicialización y posteriormente ejecutar lpf. puede usar lpf. Como se comento anteriormente. 113 . El programa lpf. 10. para que controle cualquier código de inicialización que la impresora requiera. necesitará un programa externo para generar estas páginas. si su impresora soporta de la impresión de texto plano directamente. terminando en una bandeja de reciclaje. sin intervención de alimentación u otras ventajas con lo que al papel se refiere. de tal manera que el deperdicio de papel no es tan grave. En base a estos. reiniciará el filtro de salida. También puede funcionar como un filtro de salida. Si desea un trabajo rápido-y-sucio del filtro de salida. Para mayor información al respecto. vea la sección Contabilidad del Uso de la Impresora. 10. por cada trabajo enviado a la impresora.6. lpf: Un Filtro de Texto El programa /usr/libexec/lpr/lpf que viene con los binarios de FreeBSD. una vez que han sido impresos. que comentamos anteriormente como un filtro de texto. ajusta la posición de impresión para caracteres de retroceso y tabulador. el filtro de salida imprimirá cada fichero del trabajo en secuencia.4. también conocidas como titulares o páginas de aviso identifican a quien pertenece el trabajo enviado a imprimir. También puede incluir lpf en un script de shell. que permite el envío literal de caracteres (con el comando lpr -l). no dura más que unos minutos. vea la sección Páginas de Encabezado en Impresoras PostScript.2. también es capaz de ejecutar un filtro de salida. pero no desea que se escriban bytes de detección. Capítulo 10. Estas permiten a los usuarios localizar rápidamente sus impresiones. su utilidad efímera. no con cada página impresa. Para efecto de que lpf lleve un conteo correcto. el enviarle una señal SIGCONT. LPD utilizará el filtro de salida para hacer el trabajo. Si existe un filtro de salida. Una vez que LPD ha terminado de ejecutar otros filtros.1. Páginas de Encabezado Si usted cuenta con gran cantidad de usuarios. En casi todos los casos usted necesitará un filtro de texto. Si usted cuenta con una impresora PostScript. y todos imprimiendo en varias impresoras. (Note que las páginas de encabezado se imprimen con cada trabajo enviado a la impresora. determina cuanto texto puede existir en una página y cuantas páginas existen en el trabajo de un usuario. Normalmente estas son impresas en letras grandes y de color negro remarcado (negritas). entonces sería conveniente considerar las páginas de encabezado como un mal necesario. requiere que se tengan los valores adecuados de las características pw y pl. ni envien códigos. pero no existe un filtro de texto y LPD esta trabajando con un trabajo en texto plano. como un filtro de texto (filtro de entrada) que puede darle sangía a los trabajos (usando la opción lpr -i). Las páginas de encabezados. y quizás con bordes decorativos. en el fichero /etc/printcap. de tal forma que puedan distinguirse entre el resto de las páginas enviadas a imprimir. lpf se ajusta a la configuración de gran cantidad de impresoras. y seguramente que esto no es lo que usted desea. Y aunque no tiene la habilidad de enviar secuencias de inicialización a la impresora.4.

Aqui tenemos un ejemplo de un filtro de salida para impresoras compatibles con PCL de Hewlett Packard: #!/bin/sh # # hpof . pueden deshabilitar la impresión de esta página con el comando lpr -h. así como el filtro de salida mencionado anteriormente: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:\ :of=/usr/local/libexec/hpof: Ahora. Aqui podrá ver un ejemplo de un fichero /etc/printcap para la impresora teak que trabajamos anteriormente.2. LPD produce un encabezado largo. Controlando las Páginas de Encabezado Al habilitar las páginas de encabezado. en la característica of. deshabilitamos la impresión de estas páginas al especificar sh (que son siglas en inglés para “supress header”. Es probable que deba proveer de un filtro de salida.4. especifíquelo en el fichero /etc/printcap. para efecto de que se mande la cadena de inicialización a la impresora. Aqui tenemos un ejemplo (kelly ha impreso un trabajo llamado outline. para más información sobre las opciones de lpr(1). hemos añadido las páginas de encabezado.Filtro de salida para impresoras compatibles con Hewlett Packard PCL # Instalado en /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf Especifique la ruta del filtro de salida.2. Para efecto de habilitar la impresión de páginas de encabezado.4. desde el host rose): 114 . Si los usuarios desean pasar un tiempo buscando sus impresiones. bajo la característica ff. ¿Suena demasiado fácil. Capítulo 10.2. ellos obtendrán una página de encabezado por cada trabajo que manden a imprimir.1. Vea la sección Filtros de Salida para más información al respecto. verdad? Efectivamente. la maquina host. Habilitando las Páginas de Encabezado En la sección Configuración Simple de una Impresora. Nota: El sistema LPD envia a la impresora un caracter de alimentación de página. una página completa con letras largas que identifican el usuario. Imprimiendo 10. y el trabajo. 10. vea la sección Opciones de Páginas de Encabezado. Si su impresora utiliza un caracter diferente de alimentación de página. algo así como “eliminar encabezados”) en el fichero /etc/printcap. cuando los usuarios impriman sus trabajos a la impresora teak. simplemente elimine la característica sh del fichero.

que es “eliminación de alimentación de página”) en el fichero /etc/printcap). Capítulo 10. Imprimiendo k ll ll k l l k l l k k eeee l l y y k k e e l l y y k k eeeeee l l y y kk k e l l y y k k e e l l y yy k k eeee lll lll yyy y y y y yyyy ll t l i t l oooo u u ttttt l ii n nnn eeee o o u u t l i nn n e e o o u u t l i n n eeeeee o o u u t l i n n e o o u uu t t l i n n e e oooo uuu u tt lll iii n n eeee r rrr oooo ssss eeee rr r o o s s e e r o o ss eeeeee r o o ss e r o o s s e e r oooo ssss eeee Job: outline Date: Sun Sep 17 11:04:58 1995 Después de esta página. LPD manda un caracter de alimentación de página. para que el trabajo sea impreso en una hoja blanca nueva (a menos que cuente con sf (por sus siglas en inglés “supress form feed”. 115 .

2. pero usted no puede ofrecer incentivo alguno para que se utilice.4. 10. Y el filtro de salida puede pasar el texto de la página encabezado generado por LPD. Esto implica que se le podrían cobrar hojas que ellos no imprimieron. Tampoco es una buena alternativa que cada filtro genere sus páginas de encabezado (y por lo tanto poder cobrar por ellas). puede incluirlo en el código del filtro de salida. para los trabajos en texto plano. Tampoco es conveniente. en virtud de que LPD no tiene transfiere la opción -h a los filtros. Esta diseñado para páginas de encabezado y trabajos en texto plano (cuando no existe algun filtro de texto (entrada)). refuerza el paradigma de que. todo esto podría resultar muy complicado. Básicamente el comando lpr -h sería la opción preferida de los usuarios concientes del sistema. Para efecto de facilitar este paso. pero si usted cuenta con un fichero establecido para llevar esta cuenta. Para cambiar este comportamiento. ¿Por qué? Por que el filtro de salida es el único programa externo que puede llevar un conteo de las páginas impresas. • Escribir un filtro de salida inteligente. cuando tiene el control. de tal forma que no tiene idea de a quien cargar estas impresiones. al especificar sb en el fichero /etc/printcap. es necesario incluir la característica hl (encabezado a lo último por sus siglas en inglés). utilice la característica sh (encabezado corto) del fichero /etc/printcap. y los usuarios estaran muy agradecidos con el generoso administrador del sistema que genera las páginas de encabezado gratis. y este no es provisto con información de un usuario o host o algun fichero contador. La sección Alternativas al Sistema de Impresión Estándar le informa sobre otros programas que puede utilizar. LPD imprime la página de encabezado en primer término y posteriormente el trabajo. Normalmente. que sustituyan a LPD. Capítulo 10. que no sea inicializar la impresora o bien hacer alguna conversión sencilla de caracteres. tal como LPRng. ¿Qué opciones tenemos? Usted puede: • Aceptar el paradigma de LPD y no cobrar por las páginas de encabezado. simplemente “cargar una impresión” al total de las impresiones del filtro de texto o filtro de conversión (esos que cuentan con información del usuario y host). esto en virtud de que los usuarios pueden suprimir el uso de estas páginas con lpr -h. puede hacer esto. Si los usuarios desean suprimirlas usando la opción lpr -h. un filtro de salida no esta diseñado para hacer otra cosa. • Instalar una alternativa a LPD. 116 .3. Nuevamente. cuando se refiere al conteo de impresiones: las páginas de encabezados deben ser sin coto alguno. para determinar el usuario y el host al cual se le cobrará dicha impresión. LPD puede generar un encabezado pequeño. entonces LPD sólo hará uso del filtro de salida para las páginas de encabezado. aún obtendrán estas páginas y les serán cobradas. Así que. Conteo de P´ginas de Encabezado Cuando se utiliza la utilidad integrada de conteo de LPD. Imprimiendo Si lo prefiere. Pero cuando si existe un filtro de texto. El único problema con este metodo es que el filtro de salida aún no sabe que fichero usar para llevar la cuenta de las impresiones (la característica af no pasa el nombre del fichero). en el fichero /etc/printcap. La página de encabezado que será impresa se vera así: rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 Por default.

Lo malo de este metodo es que los usuarios siempre obtendrán una página de encabezado. # page_width=612 page_height=792 border=72 # # Verificar argumentos # if [ $# -ne 3 ]. mas abajo. y nombre del trabajo) y genera una página simple de encabezado PostScript: #!/bin/sh # # make-ps-header . de tal forma que la habilidad de imprimir estas páginas de LPD.4.2. LPD puede generar páginas encabezado en texto plano para gran cantidad de impresoras. Claro esta. Los filtros deberán utilizar el nombre de usuario y host. El siguiente script considera tres argumentos (nombre del login del usuario. Imprimiendo 10. Exploremos este metodo. Una forma obvia de crear las páginas de encabezado. # exec cat  EOF %!PS % % Segurese de no interferir con el trabajo del usuario c continuacion % save 117 . es hacer que cada filtro de conversión y de texto. Páginas de Encabezado en Impresoras PostScript Como se ha descrito anteriormente. Capítulo 10. principalmente para lectura de PostScript. que PostScript no puede imprimir texto plano directamente. # user=$1 host=$2 job=$3 date=‘date‘ # # Enviar el codigo PostScript a la salida estandar. para generar esta página personalizada.crea una pagina de encabezado PostScript a stdout # Instalado en /usr/local/libexec/make-ps-header # # # Estas son unidades PostScript (72 a la pulgada). creen sus páginas de encabezado.4. es inservible—o casi. Modifiquelo para A4 o # cualquier tamano de papel que este utilizando. aun cuando usen en sus impresiones lpr -h. then echo "Usage: ‘basename $0‘ user  host    job " 1 &2 exit 1 fi # # Salvar estos. nombre del host.

pueden invocar este script. para en primer lugar generar esta página y después imprimir el trabajo del usuario. % $border $border moveto $page_width $border 2 mul sub 0 rlineto 0 $page_height $border 2 mul sub rlineto currentscreen 3 -1 roll pop 100 3 1 roll setscreen $border 2 mul $page_width sub 0 rlineto closepath 0. Capítulo 10. bonito largo y prominente % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Ahora mostrar los aburridos detalle generales % /Helvetica findfont 14 scalefont setfont /y 200 def [ (Job:) (Host:) (Date:) ] { 200 y moveto show /y y 18 sub def } forall /Helvetica-Bold findfont 14 scalefont setfont /y 200 def [ ($job) ($host) ($date) ] { 270 y moveto show /y y 18 sub def } forall % % Eso es todo % restore showpage EOF Ahora.8 setgray 10 setlinewidth stroke 0 setgray % % Desplegar nombre de login del usuario. modificado para generar páginas de encabezado: #!/bin/sh # # psdf . cada uno de los filtros de conversión y de texto. Imprimiendo % % Crear un grueso y poco placentero borde alrededor del borde de la pagina. Aqui tenemos el filtro de conversión DVI que revisamos anteriormente en este documento.DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # orig_args="$@" 118 .

en un host. Si los usuarios desean salvar algunos arboles (o algunos centavos si usted cobra por estas páginas). Y por otro lado se habilita LPD para poder imprimir desde otros hosts de la red. La impresión en red. Note que psof no cobra por las páginas de encabezado. normalmente se cuenta con dos escenarios: • Accesando a una impresora que esta conectada a un host remoto. ya que cada filtro imprimirá una página de encabezado con cada trabajo impreso. puede usar lprps.4. # Ignore n) login=$OPTARG . El filtro de texto tiene una pequeña variación (vea la sección Como Trabajan los Filtros).. para efecto de determinar el nombre de usuario y host." 1 &2  exit 2 . entonces LPD no generará una página encabezado. Imprimiendo fail() { echo "$@" 1 &2  exit 2 } while getopts "x:y:n:h:" option. echo "LPD started ‘basename $0‘ wrong. como puerto serial o paralelo. do case $option in x|y) . no podrán deshabilitar esta opción. su filtro de salida tomará los datos de LPD y enviará el código PostScript apropiado para la impresión de la página de encabezado.. y tampoco su filtro de salida. Si el usuario utiliza lpr -h. Capítulo 10. Si usted cuenta con una impresora PostScript conectada a un puerto serial. será necesario que utilice el truco del que hablamos en la sección Conteo de Páginas de Encabezado: escribir un filtro de salida que pase la página generada por LPD y produzca una versión PostScript de la misma. El procedimiento para los otros filtros de conversión es identico. La sección Impresoras Instaladas en Hosts Remotos le indica como hacer esto.3. que hace lo mencionado. Como hemos mencionado anteriormente. h) *) host=$OPTARG . psof. una impresora que esta conectada por algun medio convencional.. 119 . 10. Para permitir que los usuarios desactiven las páginas de encabezado en cada trabajo. que cuenta con un filtro de salida. De otra forma. Impresión en Red FreeBSD cuenta con soporte para impresión en red: envío de trabajos a impresoras remotas. Esto es. este esquema simplemente nos sirve para deshabilitar la opción “eliminar encabezados” (la opción -h) de lpr. esac done [ "$login" ] || fail "No login name" [ "$host" ] || fail "No host name" ( /usr/local/libexec/make-ps-header $login $host "DVI File" /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args Note como el filtro debe pasar los argumentos en orden..

También es útil con impresoras que cuentan con interfaces de red que comprenden el protocolo de LPD. entonces el host de impresión mencionado más adelante. 2. LPD utilizará este directorio para almacenar los trabajos antes de que sean enviados al host de impresión. Si usted esta utilizando una impresora que cuenta con un dispositivo de red. 10. Aplique el procedimiento revisado en Impresoras Instaladas en Hosts Remotos para efecto de configurar estas impresoras. La sección Impresoras con Interfaces de Red para Secuencia de Datos le da algunos consejos y sugerencias sobre como instalar estas impresoras. Para simplificar. Y de esta manera. La característica lp dejela en blanco. En este caso la impresora cuenta con un dispositivo de red en adición (o en su lugar) del convencional paralelo o serial. Para habilitar la funcionalidad de impresión remota.3. 3. de la administración de los trabajos en la cola de impresión y su envio a la impresora. así como las funciones de LPD que haya habilitado. Esta habilidad le permite instalar una impresora en un host. será la misma impresora. compatible con LPD. actua tal como un host normal que esta ejecutando LPD. de acuerdo a lo descrito en la sección Configuración Avanzada de una Impresora. Esta impresora puede funcionar de la siguiente manera: • Puede comprender el protocolo de LPD e inclusive hacer consulta de trabajos en hosts remotos. y el nombre de la impresora será el nombre que usted le haya asignado a la impresora.1. 5. a dicho host. Realice cualquier configuración adicional adicional que se requiera. primero instale la impresora en un host. Nombre la entrada como desee. Sugerencia: Si usted esta utilizando una impresora LaserJet Hewlett Packard entonces la impresora nombre automáticamente hará la conversión de LF a CRLF. al hacer responsable. que contenga lo siguiente: 1. 4. usted “conecta” la impresora a un host de la red. También asegurese de que el host local cuenta con autorización para usar el servicio de LPD en el host remoto (vea la sección Restricción de Trabajos de Impresoras Remotas). deberá crear una entrada en su fichero /etc/printcap. de tal forma que no será necesario el uso del script hpif. Añada el nombre de la impresora en el host de impresión en la característica rp. Impresoras Instaladas en Hosts Remotos El sistema de cola de impresión de LPD cuenta con soporte integrado para enviar trabajos de impresión a un host remoto que cuente con LPD (o alguna sistema compatible con LPD). Vea la documentación que incluye su impresora y/o el dispositivo de impresión en red para detalles al respecto. Asegurese de probar la impresora y de que esta funcionando correctamente. Esto lo podemos hacer utilizando los pasos descritos en la sección Configuración Simple de una impresora. quizás desee darle el mismo nombre y alias usado en el host de impresión. En este caso. que será el host de impresión. En este caso. Imprimiendo • Accesando a una impresora que esta conectada directamente a la red. para los hosts que desee que tengan acceso a la impresora. Añada el nombre del host de impresión a la característica rm. 120 . Capítulo 10.4. de manera explícita (:lp=:). y hacerla accesible desde otros hosts. • Puede contar con soporte para envío de datos por medio de la conexión de red. Cree un directorio para la cola de impresión y especifique su ruta en la característica sd.

en rose. El fichero quedará en espera en la cola de rose hasta que sea impreso.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: Posteriormente. esta conectada directamente a orchid: # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: # # rattan esta conectada a rose. copiará el trabajo al directorio de cola /var/spool/lpd/bamboo y notará que se trata de un trabajo DVI. No es necesario listar los filtros de conversión. o algo adicional en el fichero /etc/printcap. dimensiones de la página. por ejemplo. un usuario en orchid teclea % lpr -P bamboo -d sushi-review. los dos LPDs transferirán el fichero a rose.anadiendo impresoras # (remotas) del host rose # # # teak es impresora local. El host rose cuenta con dos impresoras. Tan pronto como el host rose tenga espacio en el directorio de cola de impresión de bamboo. Aqui tenemos el fichero /etc/printcap para el host orchid (usado en la sección Habilitando las Páginas de Encabezado).dvi el sistema de cola de LPD en el host orchid. Aqui tenemos un ejemplo. y hemos añadido las entradas para las impresoras del host rose: # # Fichero /etc/printcap para el host orchid . envio de trabajos para rattan en rose: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # bamboo tambien esta conectada a rose: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51. Ya cuenta con la entrada para la impresora teak. 121 . Capítulo 10. Este será convertido de DVI a PostScript (dado que bamboo es una impresora PostScript). bamboo y rattan. Imprimiendo Eso es todo. Si. Vamos a habilitar a usuarios en el host orchid para que puedan imprimir en esas impresoras. sólo necesitamos crear los directorios para la cola de impresión en el host orchid: # mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo # chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo # chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo Ahora los usuarios de orchid pueden imprimir en rattan y bamboo.

Capítulo 10. Imprimiendo

10.4.3.2. Impresoras con Interfaces de Red para Secuencia de Datos
Comunmente, cuando usted adquiere una tarjeta de red para impresoras, puede obtener dos versiones: una que emula
la cola de impresión (que son las de mayor valor), o bien, otra que simplemente le permite recibir datos tal como lo
hace un puerto serial o paralelo (la versió económica). Esta sección le explica como utilizar la versión económica.
Para el uso de la versión de mayor valor, vea la sección Impresoras Instaladas en Hosts Remotos.
El formato del fichero /etc/printcap le permite especificar que puerto serial o paralelo utilizar, y (en caso de que
utilice un puerto serial) la velocidad de baudio, si utiliza control de flujo, retraso en tabulador, conversión de nuevas
líneas y más. Pero no hay manera de indicar la conexión de una impresora que escucha en un puerto TCP/IP u otro
puerto de red.
Para efecto de enviar datos a una impresora en red, usted necesita crear un programa de comunicación que pueda ser
llamado desde un filtro de texto o de conversión. Aqui tenemos un ejemplo de dicho programa: el script netprint,
que toma todos los datos de la entrada estandar y los envia a un impresora conectada a la red. Hemos especificado el
nombre de host de la impresora como primer argumento y el puerto al que esta conectado como segundo argumento,
en netprint. Note que este tipo de soporte sólo trabaja en una vía (de FreeBSD a la impresora); gran cantidad de
impresoras cuentan con soporte de ambas vías, y quizás desee tomar ventaja de esto (para obtener estatus de
impresión, contabilidad, desempeño, etc.).

#!/usr/bin/perl
#
# netprint - Filtro de texto para impresoras en red
# Instalado en /usr/local/libexec/netprint
#
$#ARGV eq 1 || die "Usage: $0 printer-hostname port-number ";
 
$printer_host = $ARGV[0];
$printer_port = $ARGV[1];

require ’sys/socket.ph’;

($ignore, $ignore, $protocol) = getprotobyname(’tcp’);
($ignore, $ignore, $ignore, $ignore, $address)
= gethostbyname($printer_host);

$sockaddr = pack(’S n a4 x8’, &AF_INET, $printer_port, $address);

socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
|| die "Can’t create TCP/IP stream socket: $!";


connect(PRINTER, $sockaddr) || die "Can’t contact $printer_host: $!";
while ( STDIN ) { print PRINTER; }
exit 0;

Una vez hecho este script, podemos utilizarlo en varios filtros. Supongamos que contamos con la impresora de línea
Diablo 750-N conectada a la red. La impresora acepta datos para impresión en el puerto 5100. El nombre de host que
tiene la impresora es scrivener. El filtro de texto a usar quedaría de la siguiente manera:

#!/bin/sh
#
# diablo-if-net - Filtro de texto para la impresora Diable en ‘scrivener’ usando
# el puerto 5100. Instalado en /usr/local/libexec/diablo-if-net
#

122

Capítulo 10. Imprimiendo

exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100

10.4.4. Restricción del Uso de la Impresora
Esta sección le da información sobre la restricción en el uso de la impresora. El sistema de LPD le permite controlar
quien puede acceder a la impresora de ambas formas, local y remota, si los usuarios pueden imprimir múltiples
copias, que tan grandes pueden ser los trabajos de impresión, y limitar el tamaño de la cola de impresión.

10.4.4.1. Restricción de Copias Multiples
El sistema de LPD le facilita a los usuarios el imprimir múltiples copias de un mismo fichero. Los usuarios pueden
usar (por ejemplo) lpr -#5 para imprimir 5 copias de cada fichero enviado. El hecho de que esto sea bueno o no es
algo que depende de usted.
Si usted siente que las copias múltiples causan trabajo inecesario a su impresora, puede deshabilitar la opción -# de
lpr(1), al incluir la característica sc en su fichero /etc/printcap. Cuando los usuarios utilicen la opción -# al
momento de imprimir, verán el siguiente aviso:

lpr: multiple copies are not allowed

Recuerde que si usted a configurado una impresora para su acceso de forma remota (vea la sección Impresoras
Instaladas en Hosts Remotos), será necesario que también cuente con la característica sc en el fichero
/etc/printcap del host remoto, o bien, los usuarios aun podrán hacer uso de la opción -#, al usar un host
diferente.
Aqui presentamos un ejemplo. Este es un ejemplo del fichero /etc/printcap, del host rose. La impresora
rattan es “de batalla” por lo que permitiremos las copias múltiples, pero la impresora laser bamboo es más
delicada por lo que vamos a deshabilitar las copias múltiples, al añadir la característica sc:

#
# Fichero /etc/printcap del host rose - restringe copias multiples en bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:\
:lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:

Ahora, tambié debemos añadir la característica sc en el fichero /etc/printcap del host orchid (y ya que estamos
en eso, deshabiltemos las copias múltiples para la impresora teak):

#
# Fichero /etc/printcap del host orchid - sin copias multiples para la
# impresora local teak o impresora remota bamboo
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\

123

Capítulo 10. Imprimiendo

:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:

rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:

Al incluir la característica sc, hemos prevenido el uso de lpr -#, pero eso no previene el uso de lpr(1) gran
cantidad de veces, o el envío del mismo trabajo varias veces, tal como:

% lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign

Existen gran cantidad de formas para prevenir este abuso (incluyendo el ignorarlo), que usted queda en libertad de
explorar.

10.4.4.2. Restricción de Acceso a Impresoras
Usted puede controlar quien puede imprimir y en que impresoras, haciendo uso del mecanismo de grupos de Unix y
de la característica rg en el fichero /etc/printcap. Simplemente añada en un grupo determinado, a los usuarios
que desea puedan imprimir en cierta impresora, y después añada el nombre del grupo a la característica rg.
Todos los usuarios que no pertenezcan a este grupo (incluyendo al superusuario (root)), y que deseen imprimir en la
impresora controlada, les aparecerá este mensaje: lpr: Not a member of the restricted group
De la misma forma que hicimos con sc (la eliminación de copias múltiples), con rg deber´ indicarla en los hosts
remotos que tengan acceso a sus impresoras si lo cree conveniente (vea la sección Impresoras Instaladas en Hosts
Remotos).
Por ejemplo, vamos a permitir que cualquiera imprima en rattan, pero solo aquellos que forman parte del grupo
artistas podrán usar la impresora bamboo. Nuevamente tenemos el fichero /etc/printcap para el host rose:

#
# Fichero /etc/printcap del host rose - grupo restringido para bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artistas:\
:lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:

Vamos a dejar de lado el otro fichero /etc/printcap de ejemplo (el del host orchid). Claro esta, que cualquier
usuario desde orchid puede imprimir en bamboo. En este caso podriamos aceptar sólo ciertos accesos desde
orchid, y esto les daría acceso a la impresora. O no.

124

Capítulo 10. Imprimiendo

Nota: Sólo puede haber un grupo restringido por impresora.

10.4.4.3. Controlando el Tamaño de los Trabajos Enviados
Si usted cuenta con gran cantidad de usuarios accesando sus impresoras, probablemente necesite establecer un límite
máximo en el tamaño que deban tener los trabajos enviados a imprimir. Después de todo, sólo existe tanto espacio
libre en el sistema de ficheros como el que se tiene en los directorios de cola, y también usted debe asegurarse de que
exista el espacio suficiente para otros usuarios.
El sistema de LPD, le permite especificar un monto maximo de tamaño en bytes para un trabajo, con la característica
mx. Las unidades están indicadas en blques BUFSIZ, que son de 1024 bytes. Si usted le agrega un cero a esta
característica, no habrá límite en el tamaño de los trabajos que se puedan enviar a imprimir; por otro lado, si no se
especifica la característica mx, el límite por default será de 1000 bloques.

Nota: El límite es válido para los ficheros del trabajo, y no para el tamaño total del trabajo.

El sistema de LPD no rehusará imprimir los trabajos que exceden el límite, en su lugar procederá con la impresión
hasta el límite indicado. El resto del trabajo quedará descartado. El hecho de que este comportamiento sea correcto o
no, aun es tema de debate.
Ahora permitamonos incluir límites a nuestras impresoras de ejemplo rattan y bamboo. En virtud de que esos
“artistas” tienden a imprimir grandes trabajos en PostScript, los vamos a limitar a cinco megabytes. En la impresora
de línea no vamos a especificar límite:

#
# Fichero /etc/printcap del host rose
#

#
# Sin limite de tamano en el trabajo:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:mx#0:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:

#
# Con limite de cinco megabytes:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:

Nuevamente, los límites aplican sólo para los usuarios locales. Si se han configurado las impresoras para su acceso de
forma remota, los usuarios que accesen remotamente no tendrán esta limitante. Para efecto de que esto sea válido en

125

Capítulo 10. Imprimiendo

los usuarios remotos, deberá agregar la característica mx en el fichero /etc/printcap de los hosts remotos. Vea la
sección Impresoras Instaladas en Hosts Remotos para mayor información sobre la instalación de impresoras en red.
Existe otra forma especializada para limitar el tamaño de los trabajos, desde impresoras remotas, vea la sección
Restricción de Trabajos de Impresoras Remotas.

10.4.4.4. Restricción de Trabajos de Impresoras Remotas
El sistema de cola de LPD cuenta con varios metodos para restringir la impresión de trabajos enviados por hosts
remotos:

Restricciones del Host
Haciendo uso de los ficheros /etc/hosts.equiv y /etc/hosts.lpd, usted puede controlar el LPD local,
para determinar de que hosts remotos se acepten conexiones. En este caso, LPD verifica, en caso de una
petición, que el host remoto se encuentre listado en agluno de estos dos ficheros. Si no es así, LPD rechazará la
petición.
El formato de estos ficheros es simple: el nombre de un host por línea. Note que el fichero /etc/hosts.equiv
también es usado por el protocolo ruserok(3), y afecta programas como rsh(1) y rcp(1), así que tenga cuidado al
editarlo.
Por ejemplo, este es el fichero /etc/hosts.lpd del host rose:
orchid
violet
madrigal.fishbaum.de
Esto significa que rose aceptará peticiones de los hosts orchid, violet y madrigal.fishbaum.de. Si
cualquier otro host intenta accesar el LPD de rose, el acceso será denegado.

Restricciones de Tamaño
Usted puede controlar cuanto espacio libre se requiere, en el sistema de fichero donde se localiza el directorio
del sistema de impresión. Cree un fichero llamado minfree, en el directorio local de la cola de impresión. En
ese fichero añada un numero que representa el numero de bloques libres que deben haber en el disco (512
bytes), para efecto de aceptar un trabajo de forma remota.
Esto permite asegurarle que los usuarios remotos no llenaran su disco duro. Esto también puede usarse para dar
cierta prioridad a los usuarios locales: ya que podrá colocar sus trabajos en espera en la cola de impresión, hasta
que la cantidad de espacio libre sea inferior a la indicada en el fichero minfree.
Por ejemplo, incluyamos a minfree en la impresora bamboo. Para esto, primero examinamos el fichero
/etc/printcap, para encontrar los datos de la impresora; aqui tenemos la entrada de bamboo:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:

126

desde su propio departamento de sistemas. el conteo es inmediato. ¿Y por qué no?. los patrones de uso. y algunos usuarios traspasan las fronteras departamentales. Cuando rs aparece en la entrada de una impresora que esta conectada localmente. • El contador por tiempo es menos conocido. Esta característica es particularmente útil en medios donde (por ejemplo) existen varias areas que comparten una red. o por-loquesea). 10. ¿Cómo empezar a llevar una contabilidad de las impresiones?. Bueno. Esto no podrá llevarse a cabo con un simple filtro de salida. la mala noticia es que LPD no provee de mucha ayuda en esta area. quizás por que es la más sencilla. Cuando alguien envia una impresión. Vea la sección Filtros. tenga alguna cuenta. De otra forma LPD no hará el trabajo. puede asignarles cuentas “tontas” (token accounts). Cada mes. Vamos a dejar tres megabytes (que son 6144 bloques de disco) como espacio libre que debe existir en el sistema de ficheros. y costos de mantenimiento y ha llegado a un costo por-página (o por-pie. Capítulo 10. año o cualquier periodo de tiempo que prefiera. con el mismo nombre de usuario en el host local. LPD aceptará trabajos de usuarios remotos. para efecto de llevar un conteo de páginas o peticiones a la impresora para imprimir. Contabilidad del Uso de la Impresora Así que usted requiere de cobrar por las impresiones.5.4. al incluir la característica rs en /etc/printcap. dado que no puede llevar un conteo. siempre y cuando el usuario que ha enviado el trabajo. por-metro. Ahora bien. el papel y la tinta cuestan dinero. Si solo desea permitirles hacer uso de sus impresoras y no de los recursos de su sistema. Después de limpiar estos ficheros puede empezar un nuevo periodo de cero. deberá modificar el filtro de texto (para cobrar por impresiones en texto plano) y los filtros de conversión (para cobrar por impresiones en otro formato). el formato en que se imprime y de sus requerimientos para cobrar por el uso de la impresora. semestre. Este metodo hace que sus filtros cobren al usuario por sus impresiones. pueden hacer uso de sus impresoras. y 127 . puede revisar estos ficheros. en cuanto hacen uso de las impresoras. para que LPD acepte trabajos remotos: # echo 6144  /var/spool/lpd/bamboo/minfree Restricciones por Usuario Usted puede controlar que usuarios remotos pueden imprimir en impresoras locales. El conteo depende en gran parte en el tipo de impresora con que usted cuenta. Para implementar un contador. host y numero de páginas en un fichero contador. Con esto. el filtro registra el usuario. Imprimiendo El directorio de la cola de impresión es indicado por la característica sd. Y también están los costos de mantenimiento—las impresoras estan llenas de partes móviles que tienden a descomponerse. Al otorgarles una cuenta en su sistema. Como las cuotas de disco. Usted ha analizado sus impresoras. de tal forma que sepa cuantas impresiones ha realizado cada usuario y poder cobrar por las mismas. usted puede prevenir que usuarios impriman cuando sus cuentas están en numeros rojos. En términos generales existen dos formas de hacer esto: • El contador periodico es la forma más comun. quizás por su dificultad de uso. que no cuentan con un directorio home y con un un shell inservible como /usr/bin/false.

El nombre de este fichero se indica en la característica af del fichero /etc/printcap. ejecute el programa pac(8). LPD inicia lpf con los argumentos de alto y ancho del papel (tomados de pw y pl). un programa para reunir y totalizar la información de los ficheros de contador de impresiones.00 orchid:zhang Deberá usar un fichero contador para cada impresora.00 rose:kelly 3. descrito en la sección lpf: un Filtro de Texto.4.00 154 $ 6.00 104 $ 3. dado que lpf no cuenta con una lógica de bloqueo de ficheros incluida. Por ejemplo. puede utilizar un contador periodico o por tiempo.74 Estos son los argumentos que puede pasar a pac(8): 128 .00 1 $ 0.00 1 $ 0. Imprimiendo quizás en cierto modo proveer a sus usuarios de una forma de verificar sus “cuotas de impresión”.52 total 337.1. se escribe en el fichero contador un registro.5. Contabilidad de Impresiones Rápida y Sucia FreeBSD cuenta con dos programas que pueden auxiliarlo para instalar un simple contador periodico. Pero este metodo requiere de uso de bases de datos.00 orchid:mary 5.00 rose:andy 3. el filtro de texto lpf.00 1 $ 0. Pero hay un lado positivo: usted cuenta con una enorme flexibilidad en cuanto a metodos de contabilidad se refiere. Una vez enviado el fichero a impresión. 10. es usar af=acct en el fichero /etc/printcap. y pac(8). del cual desea recabar la información y teclee pac. Usted selecciona que información debe quedar registrada: nombre de usuario. Ellos son. De esta forma contaremos con el fichero contador de cada impresora por separado.74 rose:root 26. Usted obtendrá un resumen similar al siguiente: Login pages/feet runs price orchid:kelly 5.54 rose:mary 87. y así sucesivamente. tiempo que duro en imprimir el trabajo. Sólo dirijase al directorio de cola. lpf usa estos argumentos para determinar cuanto papel será necesario. para dar seguimiento a los usuarios y sus cuotas.18 rose:andy 2.00 32 $ 1.04 rose:kelly 177.00 3 $ 0.00 12 $ 0. LPD inicia los filtros de texto y conversión con el nombre del fichero contador a usar en la línea de comando del filtro. en un fichero llamado acct.62 orchid:zhang 9. páginas impresas.10 orchid:mary 31. y si no se indica su ruta completa. nombre del host. tipo de trabajo. en el directorio de la cola de impresión. medidas del papel usado. también debe proveer del código para el contador. casi todo el tiempo). se hará referencia al directorio de la cola de impresión. Una forma segura para garantizar el uso de ficheros distintos por impresora. sólo debe modificar sus filtros. El sistema de cola de LPD cuenta con soporte para ambos metodos: en virtud de que usted debe proveer los filtros (bueno. y dos lpf escribiendo al mismo tiempo en un fichero podrian corromperlo. Capítulo 10. Como se menciono en la sección de filtros (Como Trabajan los Filtros). Los filtros pueden usar este argumento para saber en donde registrar la información. Cuando sea el momento de cobrar a los usuraios.00 orchid:mary 2. Y para hacer esto. Este registro es así: 2.

ejecute pac -m. en esta característica. Capítulo 10. -r Invertir el orden de acomodo. o dos centavos (precio por default).50 hace que cada página tenga un costo de un dolar con cincuenta centavos.64 mary 118. nombre . solo si existe una ruta absoluta. Puede reemplazar este valor cuando ejecuta pac(8) con la opción -p. Esta opción funciona. En el resumen que genera pac(8) por default. pac(8) utiliza la característica pc del fichero /etc/printcap (que por default utiliza 200. el usuario smith del host alpha. Si en su sitio.00 154 $ 6.52 zhang 9. -m Ignorar el nombre de host. 129 . o 2 centavos por página).04 kelly 182. Puede indicar el precio como un numero de punto flotante.36 root 26. se consideran usuarios diferentes. Imprimir la información del usuario nombre unicamente. en lugar del precio tomado de la característica pc del fichero /etc/printcap... que desea cobrar. -c Ordenar la salida por costo en lugar de por usuario alfabeticamente. es el mismo usuario smith del host gamma. Especifique en cientos de centavos el precio a cobrar por página o por pie. Con esta opción. Realmente se puede exceder en las utilidades usando esta opción. y no en cientos de centavos.00 105 $ 3.00 1 $ 0. el host no es importante (por que los usuarios pueden usar cualquier host). Imprimiendo -Pimpresora De que impresora hacer el resumen. Por ejemplo. # pac -p1. podrá observar el numero de páginas impresas por cada usuario desde diferentes hosts.74 Para calcular el monto adeudado.00 35 $ 2. -s Crear un fichero de resumen y reiniciar el fichero contador.18 total 337. Sin esta opción.00 1 $ 0.00 12 $ 0. en la característcia af del fichero /etc/printcap. -pprecio Computar cargos con tal precio en dólares por página o por pie. para producir el siguiente resumen: Login pages/feet runs price andy 2. Las unidades de esta opción estan expresadas en dólares.

este problema no es tan difícil de resolver: puede contabilizar el numero de líneas que tiene un trabajo y dividirlas entre el numero de líneas totales por página que maneja la impresora. se pueden atorar. o explotar—y el usuario de todas formas se le cobrará. ejecutando pac -s puede guardar la el resumen. Claro esta que usted puede ser muy generoso y no cobrar por las impresiones.2. Posteriormente reinicia el fichero contador. Modifique los filtros de estas impresoras para que lleven un conteo de las oáginas impresas y que almacenen los registros basados en el valor only. El filtro de texto lpf (introducido en lpf: un Filtro de Texto) toma en cuenta todas estas cosas cuando hace el conteo. acabarse la tinta. 10. ¿Cómo Contabilizar las Páginas Impresas? Para efecto de que pueda obtener un conteo más cercano a la realidad. las impresoras en red Imagen laser). Po ejemplo. Pero estos metodos sufren del hecho de que la impresora puede no imprimir estas páginas.4. Para impresiones en texto. para obtener los totales y posteriormente añade la información del fichero contador normal. Este es el problema esencial del conteo de impresiones.5. ¿qué puede hacer? Sólo existe una forma segura de llevar un conteo confiable. que es nombrado al igual que el fichero contador de la impresora. Entonces. necesita poder determinar cuanto papel utiliza cada trabajo.5. Si usted esta escribiendo un filtro de texto que requiere contabilizar. No se requiere de un conteo de líneas o de examinar el fichero de errores. Aqui tenemos los comandos de usuario mas comunes: lpr(1) Imprime trabajos lpq(1) Verifica los trabajos pendientes 130 . para conversiones DVI-a-LaserJet o DVI-a-PostScript. Capítulo 10. Pero. 10. Puede hacer cosas similares con otros formatos y filtros de conversión. en un fichero. Casi todas las impresoras PostScript cuentan con soporte para esto. Imprimiendo Finalmente. pero con _sum al inicio del fichero. Adquiera una impresora que pueda indicarle cuanto papel utiliza. quizás desee examinar el código fuente del lpf. Cuando ejecuta pac(8) nuevamente. lee el fichero resumen. Uso de las Impresoras Esta sección le indica como usar las impresoras que ha instalado con FreeBSD. ¿Cómo manejar otros formatos? Bueno. Existen otras marcas u modelos que también cuentan con el soporte (por ejemplo. No olvide contabilizar los retrocesos del fichero que sobreimprimen líneas. puede hacer que su filtro pase la información de salida a dvilj o dvips y ver cuantas páginas fueron convertidas. y conectela por medio de un puerto serial o en red. o de las largas líneas lógicas que se justifican en en una o más líneas físicas.

Finalmente. este comando imprime algunos ficheros importantes del sistema: % lpr /etc/host. aceptan el argumento -Pimpresora para especificar en que impresora realizar la impresión/petición. lpr(1) leerá los datos a imprimir de la entrada estandar. Por lo tanto. y lpq(1). generar copias multiples. Por ejemplo. lprm(1)..1. hace referencia a la impresora definida en la variable de entorno PRINTER. vea la sección Opciones de Impresión. Cada impresora cuenta con un orden de impresión de trabajos. y su trabajo espera su turno en este orden. el cual es enviado al sistema de cola de LPD. Verificando los Trabajos Cuando usted utiliza lpr(1) para imprimir. Este ejemplo imprime una larga lista del directorio actual. junto con otros trabajos suyos y de otros usuarios. Trabajos de Impresión Para imprimir un fichero. Lo anterior imprimirá los ficheros nombrados. en la impresora por default. Imprimiendo lprm(1) Elimina un trabajo de la cola de impresión También se cuenta con un comando de administración. EL comando lpr(1) también puede aceptar gran variedad de opciones para controlar el formato. el comando 131 . lpr toma los datos de la entrada estandar. estos comandos haran uso de la impresora especificada en la variable de entorno PRINTER. Para ver los trabajos pendientes de la impresora por default. Para una impresora en especial. en la impresora nombrada rattan: % ls -l | lpr -P rattan En virtud de que no se le paso fichero alguno para imprimir a lpr(1). teclee lpq(1). Las tres opciones lpr(1).. o en su defecto a la impresora nombrada lp.. Si no indica el nombre del fichero. Para mayor información. El criterio del orden será los primeros-en-llegar son los primeros-en-salir. Si no usa el argumento -P.conf /etc/hosts. aplicar conversiones a los ficheros. use la opción -P..equiv Para seleccionar una impresora. etc. lpc(8).5.. Capítulo 10. Esto le permite imprimir. 10. descrito en la sección Administración de la Cola de Impresión de LPD. el termino impresora por default. teclee: % lpr fichero . 10. si no cuenta con la variable de entorno PRINTER definida. de acuerdo a lo indicado en /etc/printcap. estos comandos utilizarán la impresora por default. teclee: % lpr -P nombre-de-la-impresora fichero . cuando no este definida la variable de entorno PRINTER.2.5. que en este caso es la salida del comando ls -l. que es lp. remover o consultar los trabajos en varias impresoras. Por ejemplo. usado para controlar las impresoras y sus peticiones. los datos que desea imprimir se colocan juntos en un paquete llamado “trabajo de impresión”.

Imprimiendo % lpq -P bamboo le muestra los trabajos pendientes de la impresora bamboo. La primer línea de la salida de lpq(1) también es de utilidad: esta le indica que esta haciendo la impresora en este momento (o cuando menos. estos son tratados como parte de un solo trabajo. de tal forma que lpq(1) solo lo representa con tres puntos. Despué teclee: % lprm numero-trabajo Para eliminar un trabajo de un a impresora especifica. con el comando lprm(1). que la impresora debe estar imprimiendo este trabajo. El primer trabajo enviado por el usuario kelly. Aqui tenemos un ejemplo de lpq -l: waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host. Cada trabajo en una impresora. Aqui tenemos un ejemplo de la salida del comando lpq: bamboo is ready and printing Rank Owner Job Files Total Size active kelly 9 /etc/host. El tercer trabajo proviene del usuario mary. Eliminando Trabajos Si cambia de parecer con respecto a imprimir un trabajo. activo (note la palabra active bajo la columna “Rank”). La ruta que esta tratando de ser descrita es muy larga. El segundo trabajo consiste en datos pasados al comando lpr(1) por la entrada estandar.conf 73 bytes /etc/hosts.5. El siguiente comando elimina el trabajo numero 10 de los trabajos pendientes de la impresora bamboo: 132 . que es lo que LPD piensa que la impresora esta haciendo). puede eliminarlo de los trabajos pendientes. El comando lpq(1) tambien cuenta con la opción -l. al pasar varios trabajos a lpr(1).equiv 88 bytes 2nd kelly 10 (standard input) 1635 bytes 3rd mary 11 . pero este será necesario en caso de que desee cancelar el trabajo. que quiere decir. tiene asignado en “numero de trabajo” 9. se le asigna un numero único. La mayor parte del tiempo puede ignorar el numero de trabajo. Este es el trabajo actual. /etc/hosts. pero algunos o todos los demas trabajos aun seran impresos. El trabajo numero nueve consiste en dos ficheros..conf. que es un trabajo mucho mas grande.. para generar una salida mas detallada. 78519 bytes Esto muestra que hay tres trabajos en espera. vea la sección Eliminando Trabajos para mas detalles al respecto. Para eliminar un trabajo de la impresoras por default. primero use lpq(1) para saber el numero de trabajo. Incluso puede usar el comando lprm(1) para elminar un trabajo activo.equiv 15 bytes kelly: 2nd [job 010rose] (standard input) 1635 bytes mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes 10. Capítulo 10.3. para bamboo. utilice la opción -P.

4. conversión de gráficos y otros formatos. si este le pertenece. El superusuario puede eliminar cualquier trabajo activo. solo le permitira eliminar trabajos del host del cual se enviaron dichos trabajos. El superusuario puede eliminar trabajos de otros: usted solo puede eliminar sus trabajos. para que apliquen en una impresora especifica. Imprimiendo % lprm -P bamboo 10 El comando lprm(1) cuenta con algunas opciones: lprm - Elimina todos los trabajos (de la impresora por default) y que le pertenezcan a usted. y más. lprm usuario Elimina todos los trabajos (de la impresora por default) que pertenecen a usuario. La siguiente secuencia de comandos demuestra esto: % lpr -P rattan mifichero % rlogin orchid % lpq -P rattan Rank Owner Job Files Total Size active seeyan 12 . Por ejemplo.5. manejo de los trabajos. 49123 bytes 2nd kelly 13 mifichero 12 bytes % lprm -P rattan 13 rose: Permission denied % logout % lprm -P rattan 13 dfA013rose dequeued cfA013rose dequeued 10. Esta sección describe estas opciones. o -. lprm(1) elimina el trabajo activo de la impresora por default.. incluso si la impresora esta habilitada desde otros hosts. el comando lprm(1).. 133 . el siguiente comando elimina todos los trabajos pendientes del usuario actual en la impresora rattan: % lprm -P rattan - Nota: SI usted esta trabajando en una red. en la línea de comando. Capítulo 10. Simplemente use la opción -P con las opciones comentadas. producción de copias multiples. Más alla del Texto Plano: Opciones de Impresión El comando lpr(1) cuenta con soporte para multiples opciones que controlan el formato del texto. lprm Cuando no se pasa ningun nombre de usuario.

-g Imprimir datos plot. -d Imprimir ficheros DVI. -inumero Sangrar la salida con el numero de columnas indicado.1. -n Imprimir datos ditroff (troff independiente del dispositivo). -c Imprimir ficheros cifplot. Por ejemplo. Utilice estas opciones si el trabajo no es de texto plano o si desea dar formato al texto plano por medio de la utilidad pr(1). Imprimiendo 10. el numero será de 8 columnas.4. -l Imprimir datos de texto literal. Nota: Todas estas opciones. por lo que no debe mezclar (por decir) ficheros DVI y ditroff en el mismo trabajo. usando la opción que corresponda a cada trabajo. la opción -d requiere de un filtro para DVI. Por ejemplo.5. el siguiente comando imprime un fichero DVI (desde un sistema de escritura TeX) llamado fish-report. 134 . Opciones de Formato y Conversión Las siguientes opciones de lpr(1) controlan el formato de los ficheros en el trabajo. Esta opción trabaja bien solo con algunos filtros de conversión. -f Imprimir ficheros de texto FORTRAN. Para hacer esto. Capítulo 10. La sección Filtros de Conversión le da más detalles al respecto.dvi a la impresora bamboo: % lpr -P bamboo -d fish-report. incluyendo caracteres de control. si omite numero.dvi Estas opciones aplican para todos los ficheros dentro del trabajo. envie los trabajos a imprimir por separado. excepto -p y -T requieren de filtros de conversión instalados para la impresora destino. Nota: No debe dejar espacios entre la opción -i y el numero.

el sistema LPD enviara un correo a su cuenta cuando termina de imprimir.5. el sistema de cola va a convertir la salida GNU troff a datos entendibles para la impresora. la cual es pasada a lpr(1).gz | troff -t -man | lpr -t El comando zcat(1) descomprime la fuente de la página de ayuda ls(1) y lo pasa al comando troff(1). Como usamos la opción -t con lpr(1). Si usted esta imprimiendo un trabajo de gran tamaño. le indican a LPD que debe manejar el trabajo de una forma especial: -# copias Producir un numero de copias de cada fichero en el trabajo. en lugar del nombre del fichero. -s No copie el fichero al directorio de la cola. Este ejemplo imprime tres copias de parser. que envia el trabajo a la cola de LPD.h -m Enviar correo después de completar el trabajo. en la impresora por default: % zcat /usr/share/man/man1/ls. 10. que le da formato y crea la salida GNU troff. Vea pr(1) para más información. Un administrador puede inhabilitar esta oprción para reducir el desgaste de la impresora y alentar el uso de la fotocopiadora. Con esta opción.c parser. quizás esta es una buena opción. -t Imprimir datos troff. cuando se imprime. Vea la sección Restriccón de Copias Multiples. Imprimiendo -p Formatear el texto plano con pr(1) antes de imprimir.c seguido de tres copias de parser.1.2. Aqui tenemos un ejemplo: este comando imprime una bonita y formateada versión de la página de ayuda de ls(1). le informará si el trabajo termino con exito o si hubo algun error. Esta opción le ahorra espacio en el directorio de cola (donde su trabajo puede terminar con el espacio libre donde reside su 135 . -T titulo Use titulo en la cabecera de pr(1). en su lugar crear un enlace simbolico. en vez de una sola copia. Capítulo 10.4. y (normalmente) que tipo de error fué.h en la impresora por default: % lpr -#3 parser. -v Imprimir datos raster. Esta opción solo tiene efecto cuando se usa con -p. En su mensaje. Opciones para Manejar los Trabajos Las siguientes opciones de lpr(1).

usted deberá instalarlas. Aunque esto tiene su inconveniente: dado que LPD estará haciendo uso del fichero original. Si las páginas de encabezado son suprimidas. Normalmente el nombre del trabajo es el nombre del primer fichero del trabajo. y probarlas. Esta opción también le ahorra tiempo. Tenga cuidado con esta opción! 10. Vea la sección Páginas de Encabezado para más información sobre la configuración de las Páginas de Encabezado. LPD eventualmente copiará ficheros del host local al host remoto. -J texto Reemplazar el nombre del trabajo en el encabezado con este texto. 10. Con lpc(8) usted podrá 136 . ajustan el texto que normalmente aparece en la página encabezado del trabajo. una vez que hayan sido copiados al directorio de la cola. no lo podrá modificar o eliminar hasta que termine la impresión. -C texto Reemplazar el nombre del host del encabezado con este texto. estas opciones no tendrán efecto alguno. Nota: En algunos sitios esta opción puede no tenere efecto alguno. o después de que hayan sido impresos. -h No imprimir página de encabezado.4. Opciones de Páginas de Encabezado Cuando alguna de las siguientes opciones son pasadas a lpr(1). o stdin si esta imprimendo de la entrada estandar. Nota: Si usted esta en un entorno de red. Administración de la Cola de Impresión de LPD Como administrador de sus impresoras. en virtud de que LPD no tendrá que copiar todos y cada uno de los bytes del trabajo al directorio. Normalmente el nombre del host es el nombre del host del cual se esta imprimiendo. debido al metodo usado para generar las páginas de encabezado. Con el comando lpc(8) usted podrá interactuar con las impresoras de una forma más completa. -r Eliminar los ficheros del trabajo.5. Imprimiendo directorio). configurarlas. Capítulo 10. Vea la sección Páginas de Encabezado para más detalles.5. cuando se use la opción -s. no en los remotos.3. así que la opción -s le puede ahorrar espacio solo en el directorio del host local. la opcion es de gran utilidad.5. Aun con esto.

en cuyo caso continuará imprimiendo los trabajos de la cola de trabajos pendientes. Los usuarios comunes solo pueden usar lpc(8) para verificar el estatus de una impresora y para reiniciar una impresora detenida. para indicarle que opere en todas las impresoras listadas en el fichero /etc/printcap. los ficheros que ya han sido impresos no son eliminados correctamente por LPD. se continuan imprimiendo los trabajos en la cola de pendientes. con el comando enable. El superusuario (root) siempre podrá enviar trabajos. Como este argumento puede usar all. clean nombre-impresora Eliminar ficheros viejos del directorio de cola de impresión. Otros usuarios no podrán enviar trabajos. La mayor parte de estos comandos usan el argumento nombre-impresora para indicarle en cual debe operar. incluso cuando se use esta opción. equivale a usar el comando disable seguido del comando stop. Una impresora puede ser iniciada para una cola de trabajos que esta deshabilitada. Imprimiendo • Iniciar y detener las impresoras • Habilitar y deshabilitar sus trabajos pendientes • Modificar el orden de los trabajos pendientes. una nota de terminología: si una impresora es detenida. Este es un comando útil cuando se esta probando una nueva impresora o instalando un filtro: deshabilitar la cola de pendientes y enviar los trabajos como root. aparecerá como el estatus de la impresora. Los usuarios pueden enviar sus trabajos pero la impresora no imprimira nada hasta que se inicializada. cada vez que un usuario verifique su estatus con lpq(1) o con lpc status. En general. hasta que ya no exista ninguno. El mensaje que se ingrese. Una cola de trabajos pendientes habilitada. down nombre-impresora mensaje Usar el comando down para una impresora. que quedarán en espera hasta que la impresora se iniciada o su cola de trabajos pendientes sea purgada. permitirá el envio de trabajos. Capítulo 10. Si la cola de trabajos pendientes es deshabilitada. particularmente si hubo errores durante la impresión o si se realizaron otros trabajos administrativos durante la misma. abort nombre-impresora Cancelar el trabajo actual y detener la impresora. Si la impresora esta activa. Los usuarios podrán aun enviar sus trabajos si la cola de pendientes esta habilitada. ningun usuario (excepto root) podrá enviar trabajos a la impresora. Primero. enable nombre-impresora Habilitar la cola de pendientes. disable nombre-impresora Deshabilita la cola de pendientes para nuevos trabajos. Los usuarios podrán enviar sus trabajos. usted debe de contar con privilegios de root para hacer uso del comando lpc(8). hasta que la impresora haya sido configurada correctamente y se re-habilite la cola de pendientes. no podrá contar con una cola de trabajos pendientes. Ocasionalmente. 137 . Aqui tenemos un resumen de los comandos de lpc(8). Este comando localiza ficheros que no pertenecen al directorio y los elimina.

html.7. los usuarios pueden enviar sus trabajos a la cola de pendientes de la impresora. Imprimiendo help nombre-del-comando Mostrar la ayuda del comando nombre-del-comando. 10. Resolución de Problemas Una vez que hizo la simple prueba con lptest(1). es PLP completamente hecho de nuevo. Capítulo 10. puede ser que haya obtenido uno de los siguientes resultados. Equivalente a start seguido del comando enable. Si no se indica el nombre-del-comando. Y ha podido observar algunas de sus debilidades. en vez de la correcta impresión: 138 . 10. Patrick Powell y Justin Mason (el encargado principal de PLP) colaboraron en crear LPRng. La impresora comenzará a imprimir los trabajos en la cola de pendientes. stop nombre-impresora Detiene la impresora. up nombre-impresora Usar el comando up en una impresora. quit o fin-del-archivo (EOF). donde puede ingresar los comandos hasta que teclee exit. El comando restart es equivalente a ejecutar abort seguido del comando start. es lo opuesto al comando down. topq nombre-impresora trabajo-o-usuario Modificar el orden de la cola de pendientes de la impresora nombre-impresora. lpc(8) entra en modo interactivo. que presumiblemente significa “LPR: the Next Generation” (“LPR: la Siguiente Generación”). para este momento usted ha aprendido practicamente todo lo que debe saber del sistema LPD que viene con FreeBSD.com/lprng/LPRng. Si no ingresa aglun comando. Aun cuando la impresora esta detenida. restart nombre-impresora ReIniciar la impresora. Los usuarios comunes pueden usar esta opción en caso de que por alguna razón LPD se paralice. La impresora terminará el trabajo actual y dejará de imprimir. start nombre-impresora Iniciar la impresora. colocando los trabajos con el identificador trabajo o que pertenecen al usuario usuario. lo que naturalmente nos lleva a la pregunta: “¿Qué otros sistema de impresión existen (y que trabajen bajo FreeBSD)?”. se muestra un resumen de los comandos disponibles. Para este comando no puede hacer uso de la opción all en lugar de nombre-impresora. LPRng LPRng. pero no pueden iniciar una impresora detenida con algunos de los comandos stop o down. Alternativas al Sistema de Impresión Estándar Si ha estado leyendo este manual desde el principio. en primer lugar de la cola.astart.6. lpc(8) acepta estos comandos desde la línea de comandos. El principal sitio de LPRng es http://www.

Muchas impresoras usan la forma de MS-DOS. usan un caracter sencillo: código ASCII 10. # Escribe un caracter de alimentacion de pagina (\f) despues de imprimir. para la impresión del siguiente caracter. una vez que detecta el caracter de nueva línea. Aqui tenemos lo que FreeBSD desea que haga su impresora: Impresora recibe CR Impresora imprime CR Impresora recibe LF Impresora imprime CR + LF Aqui tenemos algunas formas de llevar esto a cabo: 139 ./012345 #$%&’()*+. Esto normalmente es suficiente para que la impresora imprima todos los datos restantes en su buffer interno. alimentación de línea (LF). /bin/cat && printf "\f" && exit 0 exit 2 Se produce un “efecto de escalera.Filtro de texto simple para lpd # Instalado en /usr/local/libexec/if-simple # # Simplemente manda la entrada a la salida estandar. OS/2 y otros utilizan un par de caracteres. Imprimiendo Trabajo.-. pero manteniendo la misma posición horizontal. para representar los saltos de líneas. También es recomendable verificar que cada trabajo enviado se haya impreso en una página completa. La impresora. Cuando usted imprime con FreeBSD. Capítulo 10. MS-DOS. código ASCII 10 y código ASCII 13 (retorno de carrete o CR). causada por el conflicto de interpretación. De hecho. es posible que haya sido necesario presionar en su impresora el botón para poner a la impresora EN LINEA o bien de ALIMENTACION DE PAGINA. o no expulso completamente la hoja. Para eso es el caracter de retorno de carrete: para mover la posición horizontal al borde izquierdo del papel. su impresora esperaba a ver si exisitian más datos para imprimir./01234 "#$%&’()*+. Si este es el caso./0123456 Usted es otra víctima del efecto de escalera. # Ignora los argumentos del filtro.-. de tal forma que el siguiente trabajo no comience en la mitad de la última página del trabajo previo. avanza el papel una línea. su texto hace uso del caracter de nueva línea. sobre cual caracter indica la nueva línea. antes de comenzar con la impresión.-. Los sistemas operativos estilo-Unix. El siguiente ShellScript se puede utilizar como reemplazo de /usr/local/libexec/if-simple. para imprimir un caracter de alimentación de página: #!/bin/sh # # if-simple .” Usted obtiene la siguiente impresión: !"#$%&’()*+. después de un tiempo. pero espero bastante o bien finalmente no hizo nada. La impresora llevo a cabo la impresión. Para arreglar este problema puede hacer que su filtro de texto envie al final un caracter de ALIMENTACION DE PAGINA o cualquiera que sea necesario para la impresora.

# Le indica a la impresora que debe tratar a LF como si fuera CR+LF. Puede escoger una de las otras soluciones que se comentan más adelante. que esta alternativa funciona solo en impresoras seriales. llamada teak. Para habilitar esta habilidad. para usar la interpretación de los caracteres de CR y LF del otro sistema operativo.Filtro de texto simple para lpd e impresoras compatibles con HP-PCL # Instalado en /usr/local/libexec/hpif # # Pasa la entrada estandar a la salida estandar. en la característica fs del fichero /etc/printcap para la impresora. para impresoras compatibles con PCL de Hewlett-Packard. modifique su filtro de texto. Este filtro hace que la impresora trate a LF como LF + CR. quizás sea necesario reconfigurar la impresora. # Ignora todos los argumentos del filtro. Nota: Si cuenta con otro sistema operativo en su maquina. #!/bin/sh # # hpif . Claro esta. Se esta usando el script anterior como filtro de texto: # # Fichero /etc/printcap del host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif: 140 . • Envie un código de escape a la impresora para que temporalmente de un tratamiento diferente a los caracteres LF. Imprimiendo • Usar los botones de configuración de la impresora o el panel de control. posteriormente envia el trabajo de impresión. y por último envia un caracter de alimentación de página. Una vez que localice el código correcto. para modificar su interpretación de estos caracteres. Consulte el manual de su impresora para ver los códigos de escape soportados por su impresora. Aqui tenemos un ejemplo de un filtro de texto. Verifique el manual de su impresora para ver como hacer esto. para expulsar la última página del trabajo. automáticamente convierta LF en CR+LF. ademas de FreeBSD. para que se envie este código primero y después el trabajo a imprimir. Capítulo 10. Este filtro debiese funcionar con casi todas las impresoras Hewlett Packard. Solo cuenta con una impresora conectada al puerto paralelo. una Hewlett Packard LaserJet 3Si. # Expulsa la ultima pagina cuando ha terminado. • Puede hacer que el controlador serial de FreeBSD. establezca el bit CRMOD. printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 exit 2 Aqui tenemos un ejemplo de /etc/printcap para un host llamado orchid.

Capítulo 10. Imprimiendo

Cada línea se sobreescribe.
La impresora no avanza ninguna línea. Todas las líneas son impresas una sobre otra en un solo renglón.
Este problema es lo “opuesto” al efecto de escalera, descrito anteriormente, y es poco común. En algun lugar,
los caracteres de LF, que usa FreeBSD para indicar un salto de línea, la impresora los identifica como CR, de tal
forma que regresa el punto de impresión al borde del papel, pero sin saltar al siguiente renglón.
Utilice los botones de la impresora o el panel de control, para forzar a que la impresora interprete de la siguiente
manera los caracteres LF y CR:

Impresora recibe Impresora imprime
CR CR
LF CR + LF

Al imprimir se pierden caracteres.
Mientras imprime, algunos caracteres no son impresos en cada línea. El problema puede agravarse conforme se
usa la impresora, perdiendo más y más caracteres.
El problema es que la impresora no puede mantener el ritmo al cual la computadora envia los datos por medio
de la línea serial (este problema no se debiese presentarse en impresoras conectadas al puerto paralelo). Existen
dos formas de solucionar este problema:

• Si la impresora cuenta con soporte para el control de flujo XON/XOFF, haga que FreeBSD lo utilice, al
especificar el bit TANDEM en la característica fs.
• Si la impresora cuenta con soporte para el control de flujo externo (carrier), especifique el bit MDMBUF en la
característica fs. Asegurese de que el cable utilizado para conectar la impresora a la computadora cuenta con
soporte para este tipo de control de flujo.
• Si la impresora no cuenta con soporte para el control de flujo, use una combinación de los bits NLDELAY,
TBDELAY, CRDELAY, VTDELAY y BSDELAY en la característica fs, para añadir el retraso apropiado en la
cadena de información enviada a la impresora.

Solo imprime basura.
La impresora imprime lo que parece ser basura al azar, pero no el texto deseado.
Esto normalmente es otro síntoma de una configuración incorrecta en los parámetros de comunicación de una
impresora serial. Verifique el rango de bps en la característica br y la paridad de bits en fs y fc; asegurese de
que la impresora use los mismos datos especificados en el fichero /etc/printcap.

No sucede nada.
Si no sucede nada, probablemente el problema es con FreeBSD y no con su hardware. Incluya un fichero de
registros (log), con la característica lf, en la entrada de su impresora en el fichero /etc/printcap. Por
ejemplo, aqui esta la entrada de rattan, con la característica lf :
rattan|line|diablo|lp|Diablo 630 Line Printer:\

141

Capítulo 10. Imprimiendo

:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:\
:lf=/var/log/rattan.log
Posteriormente, intente imprimir de nuevo. Verifique el fichero de registros (en nuestro ejemplo,
/var/log/rattan.log) para buscar cualquier mensaje de error que aparezca. Basado en ese mensaje trate de
resolver el problema.
Si no especifica la característica lf, entonces LPD utilizará /dev/console como la salida por default.

142

Capítulo 11. Discos
Escrito por David O’Brien <obrien@FreeBSD.org > 26 de Abril de 1998
Supongamos que queremos añadir un nuevo disco SCSI a una máquina que en la actualidad sólo tiene un único
disco. En primer lugar, apague el ordenador e instale el disco siguiendo las instrucciones del fabricante del
ordenador, de la controladora y del propio disco. A causa de la diversidad de procedimientos para hacer esto, los
detalles exceden el ámbito de este documento.
Entre en el sistema como el usuario root. Una vez que haya instalado el disco, inspeccione
/var/run/dmesg.boot para asegurarse de que el nuevo disco ha sido encontrado. Continuando con nuestro
ejemplo, el disco recientemente añadido será da1 y lo montaremos en /1 (si está usted añadiendo un disco IDE,
sustituya da por wd).
Como FreeBSD funciona en ordenadores compatibles con el IBM-PC, debe tener en cuenta las particiones de la
BIOS del PC. Estas son diferentes de las particiones tradicionales de tipo BSD. Un disco de PC puede tener hasta
cuatro entradas para particiones de tipo BIOS. Si el disco va a ser realmente dedicado a FreeBSD, puede usted
emplear el modo dedicado (dedicated). En otro caso, FreeBSD tendrá que alojarse en una de las particiones de la
BIOS. FreeBSD llama a las particiones de la BIOS slices, para no confundirlas con las particiones tradicionales de
tipo BSD. También puede usted usar slices en un disco que esté dedicado a FreeBSD, pero en un ordenador que
además tenga otro sistema operativo instalado. Esto es así para no confundir a la utilidad fdisk del otro sistema
operativo.
En el caso de utilizar slices, el disco será añadido como /dev/da1s1e. Esto se lee del siguiente modo: disco SCSI,
unidad número 1 (segundo disco SCSI), slice 1 (partición 1 de la BIOS) y partición e de tipo BSD. En el caso de
utilizar el modo dedicado, el disco será añadido, simplemente, como /dev/da1e.

11.1. Utilizando Sysinstall
Puede utilizar /stand/sysinstall para crear y etiquetar particiones en un disco nuevo usando sus intuitivos
menús. Bien entre en el sistema como el usuario root, o bien utilice el comando su. Ejecute /stand/sysinstall
y seleccione el menú Configure. Dentro del menú FreeBSD Configuration Menu, baje hasta seleccionar la
opción Partition. A continuación, se le debería mostrar una lista de los discos duros instalados en su sistema. Si
no aparece da1, deberá usted comprobar la instalación física del disco y la salida del comando dmesg almacenada en
el archivo /var/run/dmesg.boot.
Seleccione da1 para pasar al editor de particiones FDISK Partition Editor. Pulse A para usar el disco entero
para FreeBSD. Cuando se le pregunte si quiere mantener el disco compatible con la instalación de algún sistema
operativo en el futuro (“remain cooperative with any future possible operating systems”) conteste afirmativamente
(YES). Escriba los cambios en el disco pulsando W. Ahora salga del editor FDISK pulsando q. A continuación se le
preguntará acerca del sector de inicio del disco (MBR, Master Boot Record). Como está usted añadiendo un disco a
un sistema que ya se encuentra en funcionamiento, seleccione la opción None (esta opción deja el MBR intacto).
A continuación llegará al Disk Label Editor. Aquí es donde creará las particiones de estilo tradicional BSD. Un
disco puede tener hasta ocho particiones, designadas a-h. Algunas de las etiquetas de las particiones tienen usos
especiales. La etiqueta a se utiliza para la partición raíz (/, root partition). Por tanto, sólo su disco de sistema (es
decir, aquel desde el cual arranca el sistema) debería tener una partición a. La etiqueta b se utiliza para particiones de
swap (memoria virtual) y es posible tener varios discos con particiones de swap. La etiqueta c representa a todo el
disco utilizado en modo dedicado, o a todo el slice de FreeBSD si es que utilizamos el modo slice. Las restantes
etiquetas son para uso general.

143

Capítulo 11. Discos

El editor de etiquetas (de particiones) de Sysinstall utiliza la etiqueta e para particiones que no son root ni swap.
Dentro del editor de etiquetas de particiones, cree un único sistema de archivos pulsando C. Cuando se le pregunte si
será un sistema de archivos (FS, file system) o swap, elija FS e indique un punto donde montarlo (por ejemplo,
/mnt). Cuando añada un disco una vez instalado FreeBSD, Sysinstall no creará la entrada correspondiente en
/etc/fstab, por lo que no resulta importante el punto que indique para montar el disco.

En este momento, ya puede escribir en el disco la información de las particiones y sus etiquetas y crear un sistema de
archivos. Para ello pulse W. Ignore cualquier error de Sysinstall que le informe de que no pudo montar la nueva
partición. Ya puede salir del editor de etiquetas de particiones y de Sysinstall.
El último paso consiste en editar /etc/fstab para añadir una entrada para el nuevo disco.

11.2. Usando la línea de comandos

11.2.1. * Utilizando Slices

11.2.2. Modo Dedicado
Si no va a compartir el nuevo disco con otro sistema operativo, puede usar el modo dedicado (dedicated).
Recuerde que este modo puede confundir a los sistemas operativos de Microsoft; no obstante, estos no causarán
ningún daño. En cambio, el OS/2 de IBM se “apropiará” de cualquier partición que encuentre y que no reconozca.

# dd if=/dev/zero of=/dev/rda1 bs=1k count=1
# disklabel -Brw da1 auto
# disklabel -e da1 # creamos la partición ‘e’
# newfs -d0 /dev/rda1e
# mkdir -p /1
# vi /etc/fstab # añadimos una entrada para /dev/da1e
# mount /1

Un método alternativo resulta:

# dd if=/dev/zero of=/dev/rda1 count=2
# disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin
# newfs /dev/rda1e
# mkdir -p /1
# vi /etc/fstab # añadimos una entrada para /dev/da1e
# mount /1

144

Capítulo 11. Discos

11.3. * Discos no tradicionales

11.3.1. * Discos Zip

11.3.2. * Discos Jaz

11.3.3. * Discos Sequest

145

Localizacion Localizacion 146 .Capítulo 12.

Antes de leer éste capítulo debería: • Saber configurar e instalar un nuevo kernel (Capítulo 8).Capítulo 13. • Confirmar el funcionamiento de su tarjeta usando herramientas de muestreo. 13. 32. 13. Ésta no es una lista completa pero incluye muchas de las tarjetas más comunes. Sinópsis FreeBSD soporta una amplia variedad de tarjetas de sonido. el chip que usa y si es PCI o ISA. 4231 • Yamaha OPL-SAx • OPTi931 • Ensoniq AudioPCI 1370/1371 • ESS Solo-1/1E • NeoMagic 256AV/ZX • Sound Blaster Pro. Ésto incluye la posibilidad de grabar y reproducir archivos de audio tanto en los formatos MPEG Audio Layer 3 (MP3). • Crystal 4237. así como muchos otros. • Cómo reproducir y crear archivos MP3. AWE64. FreeBSD soporta una amplia gama de tarjetas PCI e ISA. Sonido Contributed by Moses Moore. lo que permite disfrutar de sonido de alta fidelidad en su sistema. • Cómo enfrentarse a problemas de configuración de sonido. 16. 4236. añadir efectos de sonido y controlar dispositivos MIDI. Tras leer éste capítulo usted debería saber: • Cómo identificar su tarjeta de sonido • Cómo configurar su sistema de modo que su tarjeta de sonido sea reconocida. AWE128.2. Live • Creative ViBRA16 • Advanced Asound 100. WAV y Ogg Vorbis.1. • Cómo convertir pistas de audio CD en archivos de datos. debería conocer el modelo de su tarjeta. Si no encuentra su tarjeta en la siguiente lista consulte la página pcm(4) del manual. 110. 4232. Identificar el Dispositivo Correcto Antes de empezar. La Colección de Ports de FreeBSD contiene también aplicaciones que le permitirán editar audio previamente grabado. and Logic ALS120 147 .

Puede necesitar cambiar la IRQ u otro tipo de datos para que ajusten con su tarjeta.2. La sección siguiente contiene información sobre qué añadir a la configuración del kernel que necesita. Recomendamos que se actualice a la última versión -STABLE antes de intentar usar ésta tarjeta.2.1.0 salvo que se instale un parche. Los detalles de configuración de arriba son por defecto. 13. Sonido • ES 1868. necesitará añadir: device pcm device gusc al archivo de configuración de su kernel. 148 .2. Advance. Tarjetas Gravis UltraSound Para una tarjeta PnP ISA. Nota: La Sound Blaster Live no está soportada en FreeBSD 4. Debería cambiar la IRQ u otros parámetros para hacerlos coincidir con su tarjeta. Vea la página gusc(4) del manual para más información. Si tiene una ISA non-PnP necesitará añadir: device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13 al archivo de configuración de su kernel. 1879. Capítulo 13. Tarjetas Creative. 1888 • Gravis UltraSound • Aureal Vortex 1 or 2 El driver a usar en el kernel depende del tipo de tarjeta que vaya a usar. y ESS Sound Si tiene una de las siguientes tarjetas debe añadir: device pcm a su archivo de configuración del kernel. Vea la página sbc(4) del manual para más información. 1869. cosa que está fuera del cometido de ésta sección. 13. Si tiene una tarjeta ISA PnP también tendrá que añadir: device sbc Para una tarjeta ISA non-PnP añada: device pcm device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 al archivo de configuración de su kernel.

Creando y Probando Nodos de Dispositivoss Tras reiniciar. Puede necesitar cambiar la IRQ u otros parámetros para que ajusten con su tarjeta. Si no hay dispositivos pcm en la salida del comando hay algún error en los pasos previos. Recompilar el Kernel Una vez conseguido el archivo de configuración del kernel que necesita debe recompilar el kernel.2. Si tiene una tarjeta ISA non-PnP que no tenga un “bridge driver” tendrá que añadir: device pcm0 at isa? irq 10 drq 1 flags 0x0 a su archivo de configuración del kernel.5. 13. acceda al sistema y escriba dmesg | grep pcm tal y como se muestra aquí: # dmesg | grep pcm pcm0: SB16 DSP 4. Consulte la sección de problemas para opciones adicionales. Tarjetas de Sonido integradas Algunos sistemas con dispositivos de sonido integrados en la placa base pueden requerir la siguiente opción en el fichero de configuración del kernel: options PNPBIOS 13. Sonido 13. 13.2. Capítulo 13.3.4.3. Tarjetas Crystal Sound Para tarjetas Crystal necesitará añadir: device pcm device csa al archivo de configuración de su kernel. 13. Soporte Genérico Para tarjetas PnP ISA o tarjetas PCI.2. 149 . necesitará añadir: device pcm al su archivo de configuración de su kernel.11  on sbc0 La salida que muestre su sistema puede ser diferente. Si le sucede ésto vuelva a su archivo de configuración del kernel y asegúrese de que ha elegido el dispositivo adecuado.4.3 del manual para más información. Por favor consulte el capítulo Sección 8.

Nota: Los comandos anteriores no van a crear dispositivos /dev/snd! MAKEDEV creará un grupo de device nodes. out of memory. Sonido Si al ejecutar el comando anterior encontró pcm0 ejecute lo siguiente como root: # cd /dev # sh MAKEDEV snd0 Si encontró pcm1 haga igual que que en el paso anterior reemplazando snd0 con snd1. 13. Problemas Comunes 1. ¡Tengo un error "bad irq XX"! La IRQ que ha puesto no es la correcta. 4. ¿Por qué me pasa ésto? No hay memoria libre que se pueda asignar a éste dispositivo. Capítulo 13. 2. Si no es así lea la siguiente sección. 150 . Asegúrese de que la IRQ que pone la la IRQ de la tarjeta son la misma.5. Me da un error nombre_del_error>xxx: gus pcm not attached. incluyendo: Dispositivo Descripción /dev/audio dispositivo de audio compatible con SPARC /dev/dsp Dispositivo para voz digital /dev/dspW Como /dev/dsp pero con muestreo de 16 bits /dev/midi Dispositivo midi de acceso Raw /dev/mixer Dispositivo Mezclador /dev/music Interfaz para secuenciador de nivel 2 /dev/sequencer Dispositivo secuenciador /dev/pss Interfaz para dispositivos programables Si todo ha ido bien debería tener una tarjeta de sonido funcionando. ¡Tengo un error "sb_dspwr(XX) timed out" ! El puerto I/O que ha puesto no es el correcto. Repita los pasos anteriores. 3. ¡Recibo un error "unsupported subdevice XX" ! Uno o más nodos de dispositivos no se crearon correctamente.

2. Version 0. Sonido 13.o debe reemplazarse por el dispositivo dsp que tenga en su sistema. 2 and 3. Uses code from various people. El programa cdda2wav.0/2.0 GrandesÉxitos-DeAlguno.6. mpg123 puede usarse indicándole un dispositivo de sonido concreto y el archivo MP3 en la línea de comandos como se muestra aquí: # mpg123 -a /dev/dsp1. Aquellos que conozcan WinAmp encontrarán XMMS fácil de usar. 128 kbit/s.. Puede usar skins de WinAmp en XMMS puesto que el interfaz gráfico es casi idéntico al de la aplicación de Nullsoft. See ’README’ for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from BT . 13. Reproductores de MP3 Con mucho el reproductor de MP3 más popular para XFree86 es XMMS. Existe una alternativa. ecualizador gráfico y muchas más cosas. El interfaz de XMMS es intuitivo e incluye lista de canciones. XMMS también tiene soporte nativo de plugins. que es parte del port sysutils.1.6.mp3 High Performance MPEG 1.mp3 .1. (X Multimedia System).0/2. Con el CD en la unidad.0 layer III. Capítulo 13. uno por pista: # cdda2wav -D 0.0. El formato MP3 (MPEG Layer 3 Audio) se aproxima mucho a la calidad de sonido del CD. MPEG 1. el siguiente comando (utilizado como root) convertirá un CD entero en archivos WAV individuales. así que no hay razón para privar a su sistema FreeBSD de disfrutar de él. que se corresponde con la salida del comando cdrecord -scanbus.5 Audio Player for Layer 1.59r (1999/Jun/15). 151 .1. Written and copyrights by Michael Hipp. el port audio/mpg123 es un reproductor MP3 en línea de comandos. se usa para la extracción del audio de los Discos Compactos y de la información asociada con éste. Ésto se hace convirtiendo los datos raw CDDA (CD Digital Audio) en archivos WAV.GrandesÉxitos-DeAlguno. 13. 44100 Hz joint-stereo /dev/dsp1. XMMS puede instalarse desde el port audio/xmms o como package.0 indica el dispositivo SCSI 0.1.6.0 -B La opción -D 0.. Extracción de Pistas de CD Audio Antes de convertir una pista o todo un CD a MP3 la información de audio del CD debe pasar al disco duro. Audio MP3 Contributed by Chern Lee.

mayor espacio requerido en el disco --pero la calidad también será mayor--. Escribiendo a disco desde XMMX: 1. 4. Elija un directorio en el que guardar los archivos. que suelen incluír información sobre la canción que se incluye en el archivo MP3. Creando Archivos MP3 Hoy día el codificador MP3 por excelencia es el lame. Opciones que empiezan por --t indican etiquetas ID3.1. Sonido Para extraer pistas individuales utilice la opción -t como se vé aquí: # cdda2wav -D 0.wav audio01.0 -t 7 Ésta opción trata la séptima pista del CD de audio. 2. el siguiente comando convierte audio01. Muchos prefieren mayores calidades. Tanto XMMS como mpg123 soportan la conversión de MP3 a un formato de fichero no comprimido. Pulse Configure. Solista o Coral Sinfónica" \ --tl "Título del Ãlbum" \ --ty "2001" \ --tc "Autor de la extracción y paso a MP3" \ --tg "Genre" \ audio01.0 -t 1+7 cdda2wav sólo soporta unidades CDROM SCSI. 152 . Lame Puede encontrarse en audio/lame en el árbol de ports.1.wav en audio01. Para tratar un rango de pistas. Elija Preferences en Opctions. 13. 3. 5.4. Usando archivos WAV previamente extraídos.6.6. Botón derecho del ratón en la ventana para acceder al menú de XMMS. Ejecute XMMS.mp3 Los 128 kbits pasan por ser el estándar “de facto” usado en el ratio de bits de los MP3 al uso. 160 e incluso 192. por ejemplo las pistas de la uno a la siete. 6. Decodificando MP3 Para grabar un CD de audio desde archivos MP3 debe convertir éstos a un formato WAV no comprimido. especifique el rango: # cdda2wav -D 0.mp3: # lame -h -b 128 \ --tt "Título de Copla o Cantar" \ --ta "Grupo. 13.3. Para unidades IDE utilice audio/cdd o alguna otra entre las variadas aplicaciones que hay en la colección de ports de audio. Capítulo 13. La opción -h utiliza el modo “más calidad pero algo más lento”. Cambie Output Plugin a “Disk Writer Plugin”. Puede encontrar más opciones consultando el manual de lame. A mayor ratio de bits.

Lo que está haciendo es volcar el MP3 a un archivo. No olvide volver a poner el Output Plugin como estaba antes cuando quiera volver a escuchar MP3. Pulse Play — parecerá que XMMS está reproduciendo música pero no sonará nada. Capítulo 13.pcm  XMMS genera un archivo en formato WAV. 9.mp3 audio01. Escriba mpg123 -s audio01. Escribiendo la salida en mpg123: 1. 8. Sonido 7. 153 . Consulte "creating-cds" para más información acerca del uso de grabadoras de CD en FreeBSD. con el volumen al 100% y las opciones de ecualización desactivadas. Ambos formatos pueden usarse con cdrecord o burncd para crear un CDROM de audio. Cargue el archivo MP3 en XMMS normalmente. mientras que mpg123 convierte MP3 a datos audio raw PCM.

Capítulo 14. Comunicaciones Serie Comunicaciones Serie 154 .

Esto es algo desgastante.1. como es el caso de pppd. En lo sucesivo este término será utilizado tal cual.Capítulo 15. como PPPoE o bien PPPoA. de T. Así mismo. PPP y SLIP Reestructurado. mientras que kernel—ppp. se requiere del uso de PPP o SLIP. utiliza el dispositivo ppp. en términos del manejo de datos entre userland y el kernel. simplemente como ppp. pero debido a que usted encontrará estos metodos en su sistema. se han dejado los conceptos “literales” del documento original. Espero que no sea un problema. Una vez que haya leido este capítulo. • Como instalar y configurar un cliente y servidor SLIP. deberán ser ejecutados como root. reorganizado. ya que el código del kernel se ejecuta en modo kernel. 15. 155 . usted debiese: • Estar familiarizado con la terminología básica de redes. : Cuando se habla de "userland" se hace referencia a todo aquello que *no* forma parte del kernel y que en el caso de código de programa. Para establecer una red o una conección a Internet por medio de un módem. N. Puede ser que usted se pregunte cual es la principal diferencia entre User PPP y kernel PPP. si en el desarrollo del capítulo no se señala lo contrario. • Como configurar PPPoE (PPP over Ethernet*). por mucho. • Comprender lo básico y el propósito de una conección por módem SLIP y/o PPP. se ejecuta en modo usuario. En el desarrollo de este capítulo. y actualizado por Jim Mock. de T. La respuesta es sencilla. todos los comandos explicados. un mejor desempeño e implementación de PPP. supervisor. o bien en modo privilegiado de ejecución. pero permite. • Como configurar Kernel PPP.: En estricto sentido esto se refiere a contar con la conexión por medio de un dispositivo Ethernet. o bien ATM. Este capítulo describe en detalle como configurar los servicios de comunicación para llevar esto a cabo. a menos de que sea necesaria hacer una distinción entre este y otro software de PPP. o bien. N. • Como configurar PPPoA (PPP over ATM*). el método User PPP procesa la entrada y salida de datos en userland (ver nota siguiente) en lugar de hacerlo en el kernel. User PPP utiliza el dispositivo tun para comunicarse con el mundo exterior. se hará referencia a User PPP. Sinópsis FreeBSD cuenta con un gran numero de formas para conectar una computadora a otra. Antes de leer este capítulo. usted sabrá: • Como configurar User PPP. permitir a otras computadoras conectarse por medio de este.

Aclaraciones Este documento asume que usted cuenta con lo siguiente: • Una cuenta activa con un Proveedor del Servicio de Internet (ISP—por sus siglas en inglées). puede utilizar la opción enable dns en su fichero ppp. conectado a su sistema. pero no es completamente necesaria: • La dirección IP del gateway (pasarela de salida) de su PSI. Normalmente. Esta dirección IP. y Tom Rhodes. Dirk Frömberg. o bien para uso por medio de PAP o CHAP) • La dirección IP de uno o más servidores de nombres (DNS). (Ya sea un nombre de usuario y/o contraseña estilo UNIX. le ha provisto de una dirección de IP estática y un nombre de host.2. Si usted no cuenta con esta información. Utilizando User PPP Originalmente contribuido por Brian Somers. Esta característica depende del sistema de negociación de DNS que mantenga su proveedor de Internet. Una sangría adecuada. que usted utliza para conectarse. que le permite realizar la conexión con su ISP. estos serán provistos por su proveedor de Internet.1.255. La siguiente información puede ser que haya sido provista por su proveedor de servicios de internet. también son de suma importancia. • La mascara de red (netmask) que debe utilizar. PPP y SLIP 15.1. 15. puede inventar uno y al intentar conectarse. De otra forma podemos dejar que el servidor asigne cualquier IP que corresponda.1. puede capturarla. El gateway es la máquina a la cual usted se conectará y será la ruta por default. así como espacios adecuados. • Si su PSI. le recomendamos contactar con su PSI para requerirla. Si su PSI no le ha provisto de una. este nos indicará cual es el valor correcto. 156 . el servidor de su PSI.2. • Adicionalmente.255. Capítulo 15.conf. • Su nombre de usuario y contraseña.2. • El número telefónico de su proveedor. Estos números sirven como ayuda y referencia a cada línea.255. pero estos no deben de estar presentes en el archivo original. Si usted no cuenta con alguna de la información que hemos comentado. algunos ejemplos muestran el contenido de archivos de configuración los cuales presentan una numeración. Si su proveedor no le ha dado esta información. Nota: En el transcurso de la presente sección. puede utilizar sin problema 255. Con apoyo de Actualizado y reestructurado porNik Clayton. es referida por ppp como HISADDR. User PPP 15. Peter Childs. y configurado correctamente. un módem o algún otro dispositivo. para indicarle a ppp que configure el DNS por usted.

deberá crearlos. pero es necesario inidicarle donde debe buscar la información.0. La versión 5. PPP y SLIP 15.1.3. ppp lo cargará como módulo cuando sea requerido.2. referirse a dns. La forma más sencilla de verificar si el dispositivo tun0 se encuentra configurado correctamente. Puede ser configurado para que busque en "mapas" que describen la IP del servidor en uno de dos lugares. la aplicación ppp utiliza el dispositivo tun. de tal forma que se generara de acuerdo a la demanda que tenga (usted no esta limitado por el kernel). 15.2.conf Para versiones de FreeBSD anteriores a la 5. 15. este archivo debe contener las siguientes dos líneas (en este orden): hosts bind 157 .4. La resolución de nombres es un sistema que por medio de llamadas. Verificando el dispositivo tun Bajo circunstancias normales. Edición del archivo /etc/host.1.conf.2.0 de FreeBSD utiliza el archivo /etc/nsswitch.0. es la de rehacer el dispositivo. El dispositivo tun es dinámico. El segundo es el Servicio de Nombres de Dominio de Internet (DNS-Internet Domain Name Service). Capítulo 15. Preparando el Kernel Como se comento anteriormente. realiza el mapeo de nombres. crea los dispositivos de acuerdo a sus necesidades.conf. no necesariamente mostrará los dispositivos tun. esto es hecho al editar el archivo /etc/host.1.2. Lea hosts(5) para más información al respecto. el cual es una base de datos de distribución.2. Configuración de la Resolución de Nombres La resolución es la parte del sistema que busca una dirección IP en los nombres de servidores (host) y viceversa. Esto puede hacerse de la siguiente manera: # cd /dev # sh MAKEDEV tun15 15. Nota: Vale la pena hacer notar que el controlador tun.1. por lo que el comando ifconfig -a. la mayoría de los usuarios sólo utilizaran un dispositivo tun (/dev/tun0). Para mayor información con respecto a los DNS.4. Para versiones de FreeBSD anteriores a la 5. Si este dispositivo no ha sido compilado dentro del kernel. el primero es un archivo llamado /etc/hosts.1. Para instalaciones de FreeBSD que no tienen el habilitado el DEVFS la existencia de tun0 debe ser verificada (esto no es necesario si se cuenta habilitada la opción DEVFS ya que los nodos de dispositivos seán creados en función a las necesidades). En lo sucesivo podemos hacer referencia a tun0 con la expresión tunN donde N es el número que corresponde en su sistema. Para hacer esto simplemente siga los siguientes pasos: # cd /dev # sh MAKEDEV tun0 Si usted necesita 16 dispositivos tun en su kernel.

com (asi como foo para acortarlo). Independientemente de su propia dirección IP.2.conf Para versiones de FreeBSD 5. y en caso de que el nombre no haya sido localizado. como sinónimo de la maquina actual. 15.y. la dirección IP en estas líneas siempre debe ser 127.0.1.0.y. Sólo añada: !ppp 158 . Editando el archivo /etc/hosts Este archivo puede contener direcciones IP.1 y ::1.4. añada esto también al archivo /etc/hosts. Si su proveedor de Internet. Normalmente deberá de incluir la(s) siguiente(s) línea(s): domain ejemplo.0.4. de su ISP.com nameserver x.1.1. asín como un nombre. busque en el DNS.1 y el nombre localhost son conocidos como direcciones "loopback" las cuales hacen un "loopback" (salto de regreso) a la maquina local.4.bar. pero una rápida llamada a su ISP debe resolver esto.com foo Las primeras dos líneas definen el alias del localhost. como comportarse.y. le indica a la resolución de nombres.x.com con la dirección IP 10.bar.3.x.0 y posteriores.0. si el nombre no fué localizado 15.1 localhost.conf El archivo /etc/resolv.0.x y y.1.bar. Editando el archivo /etc/nsswitch. de tal forma que syslog(3) provee de un login para su conección por PPP.com localhost 10. la siguiente línea: hosts: files.x. La última línea especifica el nombre foo.0. para la dirección 10. al menos.2.y.y Donde x.0.x. 15. así como el nombre de las máquinas de su red local.y deben reemplazarse con las direcciones IP de los servidores DNS. que busque en primer lugar en el archivo /etc/hosts. dns Esto le indica a la resolución de nombres. Capítulo 15.bar.2.4.2. Editando el archivo /etc/resolv. y posteriormente en el DNS.0.conf. le asigna una dirección IP fija. este archivo debe contener.0. PPP y SLIP Esto le indica a la resolución que busque en primer término en el archivo /etc/hosts. Asumiendo que su ordenador se llama foo.0. el archivo /etc/hosts debiese contener: 127.com localhost ::1 localhost.1 foo. Nota: La dirección 127.0. y usted no lo utiliza como nombre del host.x nameserver y. Puede ser que esta información se la hayan entregado al suscribirse o no. Tambié puede configurar su sistema.1.0. Como mínimo debe contar con la información de la máquina que correrá ppp.bar.

Nota: Las líneas que terminan con :.0 18 add default HISADDR Línea 1: Identifica la entrada por omisión a utilizar.0.x. Configuración Automática de PPP Ambos.1. 15. En la mayoría de los casos esto funciona bien.x. /etc/ppp/ppp.conf. Los comandos descritos en esta parte. 15. Capítulo 15.0.255.y. es necesario editar varios ficheros. deben comenzar en la primer columna del archivo — el resto de las líneas deberán utilizar sangría como se muestra.x y. Para efecto de configurar correctamente ppp.y 255.2. ppp así como pppd (la implementación del kernel para PPP). pueden encontrarse en: /usr/share/examples/ppp/.255 0.255. 159 . dependiendo de sus necesidades. La mayor parte de la información que requiere ingresar aqui.2. PPP y SLIP *.log al fichero /etc/syslog. utilizan la configuración de los archivos localizados en el directorio /etc/ppp. Ejemplos para ppp.5.y. Y deberá quedar de una manera similar al ejemplo que se describe a continuación. 1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION (built COMPILATIONDATE) 4 set device /dev/cuaa0 5 set speed 115200 6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ 7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" 8 set timeout 180 9 enable dns 10 11 provider: 12 set phone "(123) 456 7890" 13 set authname foo 14 set authkey bar 15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" 16 set timeout 300 17 set ifaddr x. La manera en que edite dichos archivos. ya sea por medio de una dirección IP estática o bien una IP dinámica (ya sea que cada vez que se conecta obtiene una nueva dirección).5.1. depende en la forma que utilice su PSI (Proveedor de Servicios de Internet) para brindarle conexión. PPP y direcciones de IP estáticas (fijas) Será necesario editar el archivo de configuración.conf. serán ejecutados de manera automática cuando se ejecute ppp. se mostro en el marcado manual anterior. utilizando espacios o bien el tabulador.* /var/log/ppp.1.

para facilitar la lectura. Si la velocidad de 115200 no trabaja correctamente (la cual deberia con cualquier módem normal). Línea 10: Una línea en blanco. PPP y SLIP Línea 2: Habilita los par´metros de acceso. PPP se identifica. para iniciar una sesión. esta línea deberá quedar de la siguiente forma: set log phase tun para efecto de evitar avisos masivos del sistema (logs). por lo que esta línea se deja por pura estética. Las líneas en blanco son ignoradas por PPP. El modo User PPP. Línea 4: Le indica a PPP cual es el dispositivo a utilizar para realizar la conexión. Línea 11: Identifica el incio de datos para un “proveedor” determinado. de tal forma que en lo sucesivo utilice la opción load ISP. Este podrá ser cambiado por el nombre de su ISP. como puede ser 38400. Línea 5: Establece la velocidad a utilizar en la conexión. que solicite confirmación al puerto. Línea 9: Esta línea le indica a PPP. de servicios de internet. siempre y cuando el último caracter de la línea sea una diagonal invertida "\". Cuando la configuración trabaja sin problemas. o bien al que esta conectado el módem. para facilitar su lectura. Favor de consultar la página de ayuda para conocer las opciones de este lenguaje.conf puede utilizar este formato. Nota: Este comando continua en la siguiente línea. 160 . El dispositivo COM1 es /dev/cuaa0 y COM2 es /dev/cuaa1. intente con una velocidad inferior. Cualquier comando en el archivo ppp. sobre la configuración de la resolución local. Líneas 6 y 7: La cadena de inicialización. si tiene algun problema para efecto de establecer la conexión. Línea 3: Esta línea le indica a PPP como identificarse ante el puerto. Línea 8: Establece el tiempo de espera que debe tratar de realizar la conexión. PPP provee de cierta información que puede resultar util para detectar el probelma. deberá comentar o eliminar esta línea. Si usted esta corriendo un servidor local de nombres. Capítulo 15. la información utilizando una sintaxis similar a la descrita en el programa chat(8). utiliza y espera enviar-recibir. Por omisión se establecen 180 segundos. en esta identificación.

puede utilizar 10.x. después de 300 segundos de inactividad. Línea 17: Indica la dirección de la interfaz.2/0. no podrá ejecutarse en el modo -auto. se puede decir que si se desean utilizar varios numeros de manera aleatoria se debe utilizar los dos puntos. Es importante que todo lo que se refiere a numeros telefonicos. la cadena sirve para un servicio. para efecto de poder dar seguimiento al curso de la conexión y la resolución de la misma. Línea 16: Establece el tiempo por defecto en el que se perderá la conexión (en segundos). Línea 15: Si usted esta utilizando el metodo PAP o CHAP. estos valores. La falta de estas pueden ocasionar un simple error.x.linkup. utiliza la misma sintáxis que se utiliza en la cadena de marcado.y. La cadena de acceso (login). Capítulo 15. en el cual el inicio de sesión se ve algo así como lo siguiente: Proveedor de servicios X login: foo password: bar protocol: ppp Es recomendable editar el script. Vea la parte Autentificación con PAP y CHAP para más detalles. debe se substituida por la direcció IP especificada por su PSI. para su llenado. utilizando el signo de dos puntos (:) o bien la barra (|) como separador. debe se cambiada por la dirección asignada por su PSI. siguiendo las instrucciones de PPP y las direcciones de IP Dinámicas. como servidor de salida o pasarela (gateway)(la maquina a la cual se va a conectar). pero si se desea siempre utilizar el primer numero y en caso de falla el siguiente y así sucesivamente. PPP y SLIP Línea 12: Indica el numero telefónico del proveedor. para que se ajuste a sus propias necesidades. Si usted necesita utilizar una dirección “aleatoria”. asegurese de haber habilitado la parte que se refiere a al acceso por medio de “chat”. utilizando las variables \U y \P.0. son utilizados al momento de la autentificación. asegurese de crear el fichero /etc/ppp/ppp. Líneas 13 y 14: Identifica el nombre de usuario y su contraseña. es detallada en el ppp(8). 161 . La cadena que aparece como x.. se debe utilizar la barra. Si no desea habilitar esta función establezca este valor en cero o bien utilice el comando en línea -ddial. Cuando cree este script por primera vez. Pero en resumen. La línea que aparece como y.x. Si su PSI no le ha indicado una dirección de este tipo. no habrá un login en este punto. En este ejemplo.y. y esta línea deberá ser comentada (utilizando el símbolo # al principio de la línea) o bien eliminada por completo.. Es importante que si piensa usar espacios en los numeros.y.0. En este caso la conexión será cortada de forma automática. Cuando uno se conecta utilizando un login de tipo Unix. Pueden indicarse varios numeros a utilizar. Si esta línea es omitida. este entre comillas como se muestra. La diferencia entre estos dos separadores. Cuando la conexión es utilizando algún metodo como PAP o CHAP. estos valores hacen referencia al comando set login. ppp. haga uso de estas comillas (").

pero el ejemplo descrito anteriormente siempre podrá utilizarse. utilizando como dirección 0.0. 15. como la remota. no debe incluir el numero de línea. que inicie las negociaciones. No hay necesidad de editar el archivo ppp. deberá editar su archivo /etc/ppp/ppp.0. Ejemplo de los archivos de configuración. Puede ser que usted desee utilizar numeros de IP que sean más apropiados.0.0.linkup si usted cuenta con una dirección IP estática y se esta ejecutando ppp en modo -auto. Así mismo deberá existir sangrado. PPP y direcciones de IP Dinámicas (Variables) Si su proveedor de servicios. No utilice la dirección 0.0.0. Si usted no esta ejecutando PPP en modo -auto.0. Capítulo 15. /usr/share/examples/ppp.255. no le asigna una dirección de IP fija. esta línea deberá pasar al archivo ppp. este sólo es una referencia. posterior a la conexión.0. En este punto.linkup. es la misma que la utilizada en PPP y direcciones de IP fijas.0. de tal forma que al momento de realizar la conexión.0. cuando se utiliza en modo -auto.1. que esta en la línea 9. negocie tanto la dirección local.0. se pueden encontrar en el directorio.conf. lo cual es necesario con algunos proveedores. salvo el siguiente cambio: 17 set ifaddr 10. Primero.255. La configuración que debe tener el archivo ppp. para ajustar a sus necesiadades.2. Si no desea ejecutar ppp en modo -auto. buscará en ppp. para el comando set ifaddr. Este es explicado con más detalle posteriormente. Si esto falla. en lugar de que utilice 10. es el numero de bits de la dirección en la cual ppp insistirá en conectarse.0. De cualquier forma puede ser que usted desee ejecutar algun programa/comando. ppp habrá negociado una dirección de interfaz.255 Una vez más. usando el Protocolo de Configuración de IP (IPCP).linkup una entrada. El archivo ppp. cuando se vea el ejemplo de sendmail. tratar de encontrar una entrada que sea igual a la utilizada en el archivo ppp. una vez que se ha conectado.1.2.linkup. de acuerdo a las siguientes reglas. será necesario configurar a ppp. de cuando menos 1 espacio.2/0 255. ya que impide que PPP configure de forma correcta el sistema. le indica a PPP. 162 . en virtud de que para efecto de realizar la conexión sus mapas de ruteo debe estar correctas.0). añadir las entradas para la las tablas de ruteo: 1 provider: 2 add default HISADDR Línea 1: Al establecer (ppp) una conexión.1/0 10. Línea 17: El numero siguiente a la diagonal (/). El último argumento (0. es utilizado una vez que se ha realizado la conexión. y será posible ahora. La palabra especial HISADDR se reemplaza con la dirección del gateway indicado por su PSI.linkup. de otra forma HISADDR no será inicializado.0.5. PPP y SLIP Línea 18: Añade una ruta por omisión al servidor de salida de su PSI. Esto se lleva a cabo al “adivinar” una dirección IP y permitiendo a ppp que la establezca correctamente.conf.0 como el primer argumento.

Si de cualquier forma.1.3. buscar la entrada MYADDR. Línea 2: Esta línea le indica a ppp que añada una ruta por omisión. 15. Permisos de PPP El comando ppp normalmente debe ser ejecutado por root (superusuario). Para ver un detalle más preciso de esto.conf. 163 .2. de cuatro-octetos. sobre la configuración de estos servicios. 15. como se describe a continuación.2.conf.1. debe decidir si se va a permitir el envío de paquetes a la LAN. Esta entrada es una etiqueta de tipo IP. Si es así.5. para recibir llamadas externas. Capítulo 15. permitiendo el acceso a servidores de una manera más sencilla (sin uso de tanto scripts). puede consultar la entrada de pmdemand en los archivos de ejemplo /usr/share/examples/ppp/ppp.conf cuente con la línea: gateway_enable="YES" 15.5. por un usuario regular.sample así como /usr/share/examples/ppp/ppp. Las últimas versiones de mgetty (de la 0. que este dirigida hacia HISADDR. en el fichero /etc/groups. PPP y SLIP buscar una IP con la dirección de nuestro gateway.99beta y sucesivas). Recibiendo Llamadas Externas Cuando se configure ppp. ya que si el puerto esta desactivado en su /etc/ttys el modem no responderá el llamado.5. También será necesario darle acceso a una o más partes del archivo de configuración. como se negocio por IPCP. Si aun después de esto no se ha detectado la entrada correcta.1. También deberá asegurarse que en su archivo /etc/rc. basado en getty(8).2. significativo. HISADDR será reemplazada. como se ve a continuación: allow users fred mary Si el comando es utilizado en la sección default.sample.3. con la IP del gateway.html). en una maquina conectada a un LAN (Red de Area Local). debe asignar un numero de IP de su red local y utilizar el comando enable proxy en el archivo de configuracion /etc/ppp/ppp.1.linkup. también cuentan con soporte para la detección automática de llamados de PPP. esto le dará a el(los) usuario(s) especificado(s). Una alternativa para el comando getty es mgetty (http://www.3. haciendo uso del comando allow. Puede referirse a Mgetty y AutoPPP para más información con respecto al comando mgetty. esto es.2.leo. ¿Qué getty utilizar? El enlace Configurando FreeBSD para Servicios de Marcado provee de una buena descripció. acceso a todo. usted desea permitir que ppp pueda ser ejecutado en modo servidor. de hecho platica con los modems. deberá otorgar los permisos necesarios a ese usuario al añadirlo al grupo network.org/~doering/mgetty/index. Una de las principales ventajas de mgetty es que. el cual es una versión más inteligente de getty diseñada para servicios de marcado telefonico.

3. Shells de PPP para Usuarios de IP Dinámica Cree un fichero llamado: /etc/ppp/ppp-shell y que contenga lo siguiente: #!/bin/sh IDENT=‘echo $0 | sed -e ’s/^. Capítulo 15. cree un enlace simbólico al fichero ppp-shell. Este es un ejemplo del fichero /etc/password para un usuario con acceso a PPP.3.1. Ahora cree un enláce simbólico llamado ppp-dialup a este script.hushlogin -r--r--r-.rhosts los cuales impiden que /etc/motd sea desplegado.3. sam y mary. 164 . Por ejemplo. debe contar con su enlace al fichero /etc/ppp/ppp-mary). y por cada cuenta donde se tenga asignada una IP estática. los cuales redirecciona a una red de clase C.1.*-\(. Shells de PPP para Usuarios de IP Estática Cree el fichero ppp-shell al igual que el mencionado con anterioridad.5. habria que hacer lo siguiente: # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary Cada uno de los usuarios señalados. fred. then IDENT=‘basename $TTY‘ fi echo "PPP for $CALLEDAS on $TTY" echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT Este script deberá ser ejecutable. 1 root wheel 0 May 27 02:23 . 1 root wheel 0 May 27 02:22 . utilizando los siguientes comandos: # ln -s ppp-shell /etc/ppp/ppp-dialup Deberá utilizar este script como shell para todos los usuarios que realicen conexión.5. si usted cuenta con tres usuarios que utilicen este servicio.*\)$/\1/’‘ CALLEDAS="$IDENT" TTY=‘tty‘ if [ x$IDENT = xdialup ].2. PPP y SLIP 15. 15. utilice vipw). deberán de contar con el enlace a su shell-script como se indicó (por ejemplo. pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup Cree un directorio llamado /home/ppp que contenga los siguentes archivos de 0 bytes: -r--r--r-. el usuario mary.4.2. con nombre de usuario pchilds (recuerde no editar directamente el fichero password.

para cada IP estática.255. Para cada línea que exista y habilite el marcado.14.255.5.102.14.255 mary: set ifaddr 203.21 255.1 255.255.14. ya que es importante. en el fichero /etc/ttys. Configurando ppp.255.255 enable proxy ttyd1: set ifaddr 203.0 netmask 255.103.14.1 255.255 sam: set ifaddr 203.14.linkup deberá de contener también información del ruteo.255. fred: add 203.100.100.1.14.3.14. deberá agregar una sección para cada usuario asignado estáticamente. 15.2.0 netmask 255.255. Configurando ppp.1 203. se deberá crear una entrada similar a la línea ttyd0: mencionada arriba.14.100.100.0 HISADDR mary: add 203.0 HISADDR 165 .255. Cada línea debera contar con su propia dirección IP.14.255. La sección default: es cargada para cada sesión.1 203.1.conf deberá contener algo similar a lo siguiente: default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.conf para Usuarios de IP-Dinámica El archivo /etc/ppp/ppp. fred: set ifaddr 203.255.5.101.100.14. por medio del ppp link del cliente.6.14.1 203.255 El archivo /etc/ppp/ppp. Las líneas a continuación añadirán una ruta a la dirección 203.255.101.conf mencionado anteriormente.0 HISADDR sam: add 203.100.3.102.1 203.255 enable proxy Nota: Tomar en cuenta el sangrado. PPP y SLIP 15.100.conf para Usuarios de IP Estática Junto con el contenido del fichero de ejemplo /usr/share/examples/ppp/ppp.14.0 netmask 255.255. de sus direcciones IP disponibles para asignar dinámicamente.14.1 255.103.255. sam y mary.255.255. Continuaremos con nuestro ejemplo con los usuarios fred.101.0 de clase C.255.14.2. Capítulo 15.20 255.1 203. si es necesario.5.255.

4.100.conf. Asegurese de que su fichero /usr/local/etc/mgetty+sendfax/login.secret.5. directamente del fichero /etc/password.4. y debido a que no se ingresa el nombre de usuario y contraseña. puede especificar el número como un tercer argumento en el fichero /etc/ppp/ppp.14. AutoPPP.2. es necesario autntificarse por medio de PAP o CHAP. Vea el archivo /usr/share/examples/ppp/ppp.1 203. para efecto de detectar conexiones de tipo PPP.4.2. las siguientes líneas deberán añadirse a la sección relevante de /etc/ppp/ppp. Cree un fichero llamado /etc/ppp/ppp-pap-dialup que contenga las siguientes líneas (el fichero deberá ser ejecutable): #!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT Para cada línea de marcado habilitada en /etc/ttys.14. pap: enable pap set ifaddr 203.conf.100.40 enable proxy Cada usuario que ingrese al sistema utilizando este metodo.100. para efecto de que se pueda realizar la autentificación por medio de PAP. Aun con esto.1 203.conf contiene la siguiente línea en él: /AutoPPP/ . Para efecto de habilitar estas extensiones con PPP versión 1.2.x. /etc/ppp/ppp-pap-dialup Esto le indicará a mgetty que ejecute el script ppp-pap-dialup. Extensiones de MS Es posible configurar PPP. y Extensiones MS 15.1.5 166 .secret. para efecto de que brinde a DNS y a NetBIOS.14. direcciones de servidores de nombres de forma automática. con la opción Auto_PPP (v0.5.5. 15. o bien agrege la siguiente opción. Algo más de mgetty.14.100. Capítulo 15.14. permite a mgetty detectar la fase LCP de conexiones PPP y automáticamente enviarlo a un shel de ppp.14.1. compilado e instalado correctamente una versión de mgetty.100. deberá de contar con su clave de usuario. Esta sección asume que el usuaio ha configurado. en el archivo /etc/ppp/ppp.20-203.2 set nbns 203. PPP y SLIP 15.99beta o posterior).2. mgetty y AutoPPP Configurando y compilando mgetty con la opción AUTO_PPP habilitada.1. enable passwdauth Si desea asignar una dirección IP fija a algunos usuarios. Esto co-existirá pacíficamente con las definiciaones que se hayan hecho.1. .100. enable msext set ns 203.secrets.sample para obtener ejemplos más detallados de esto. de acuerdo a lo mostrado en la parte de arriba. así como su contraseña. cree la entrada correspondiente en /etc/ppp/ppp.

PPP utilizará los valores que encuentre en /etc/resolv. Línea 13: Esta línea especifíca su contraseña de PAP/CHAP.1. MiNombreDeUsuario. 12 set authname MiNombreDeUsuario 13 set authkey MiContraseña Línea 7: Su PSI normalmente requerirá que usted ingrese al sistema.5. habría que aplicar los siguientes cambios: 7 set login .100. al momento de realizar la conexion. MiContraseña. en el campo.100.14. las direcciones del servidor primario y secundario y el servidor-host para NetBIOS. no deja mucho espacio para que los crackers “husmeen”.5. en funcion de que al enviarse la información de contraseña en texto plano.100. 15. Usted deberá cambiar el valor a quedar el nombre correcto en el campo. PPP y SLIP Y para versiones de PPP 2 y posteriores: accept dns set dns 203.. Si este es el caso.5 Esto le indicará a los clientes. por medio de una línea serial. Quizás sea recomendable que añada una línea a quedar: 15 accept PAP o 15 accept CHAP la intención de esto es para hacerlo obvio.. pero la seguridad normalmente no se toma mucho en cuenta en este tipo de conexiones.14. Capítulo 15. sino que comenzará a comunicarse PPP inmediatamente.2. Si la línea set dns. Autentificación por medio de PAP y CHAP Algunos proveedores de internet tienen su sistema configurado para que cada usuario al conecatrse sean autentificados por medio de PAP o CHAP. cuando se utiliza PAP o CHAP. Haciendo referencia a lo que vimos de PPP y Direcciones de IP Fijas o bien PPP y Direcciones de IP Dinámicas. Línea 12: Esta línea especifíca a PAP/CHAP su nombre de usuario.1 203.14. es omitida en versiones 2 y posteriores. aunque en realidad PAP y CHAP son aceptadas por omisión.2 set nbns 203. El metodo PAP es menos seguro que CHAP. no aparecerá un login:. 167 .conf. Por esta razón debemos deshabilitar la línea que corresponde a “set login”. Es necesario que usted cambie el valor a quedar el dato correcto.

ejemplo. en virtud de que routed tiende a eliminar las variables creadas por ppp. 15. La variable %d deberá ser reemplazada por el numero de dispositivo tun que este utilizando (ej. Cambiando la configuración de ppp sobre la marcha (al vuelo) Es posible hablar con el programa ppp mientras se esta ejecutando en segundo plano.tun0 que contenga la siguiente línea: ppp -auto MiSistema Este script se ejecuta cuando se esta configurando la red. inicializando el demonio de ppp de modo automático.2. Una vez que se a configurado el socket. Probablemente valga la pena asegurarse de que la línea sendmail_flags. Si usted cuenta con una LAN (red de área local).6. por ejemplo: hostname="foo. tun0). es recomendable que utilice este como su hostname.com" Si su Proveedor de Servicios de Internet (PSI). Capítulo 15. Localice la línea que se refiera a sus dispositivos de red. Referirse a la página de ayuda (man) para mayores detalles. y deberá crearse un fichero llamado /etc/start_if. pero sólo si se ha habilitado un puerto de diagnóstico. la cual es network_interfaces. Puede intentar esto: 168 . antes de permitir el acceso. Si desea configurar su sistema para marcar a su PSI a petición. le ha provisto de una dirección fija y un nombre de host. pero es necesario hacer algunas cosas. se puede utilizar pppctl(8) en scripts que deseen manipular el programa. Configuración Final del Sistema Ahora usted cuenta con un ppp configurado.1. con la siguiente línea en su fichero /etc/rc. de otra forma eliminelo.2. no incluya la opción -q. Especifique el programa router a NO. añada lo siguiente a su configuración: set server /var/run/ppp-tun%d DiagnosticPassword 0177 Esto le indicará a PPP que preste atención al socket del dominio-Unix.conf. solicitando a los usuarios su contraseña. asegurese de que el dispositivo tun0 este en la lista. de la cual esta maquina sea la pasarela (gateway).5. PPP y SLIP 15. ocasionando que realice llamados al exterior.1. Esto se hace asignandolo en la línea de hostname=. ya que de ser así sendmail intentará localizar los parámetros de la red de vex en cuando. antes de que este disponible para trabajar. es tambien recomendable que utilice la opción -alias.conf: router_enable="NO" Es importante que el demonio routed no se inicialice por default. network_interfaces="lo0 tun0" ifconfig_tun0= Nota: La variable ifconfig_tun0 debe permanecer en blanco (vacia). Todas ellas giran entorno a la edición del fichero /etc/rc. Para hacer esto. En primer lugar es importante que se asegure que ha asignado un nombre a su maquina.6.

se encuentra disponible. es posible establecer un “dfilter” (filtro). Actualice su fichero /etc/rc. que ejecute ppp -direct direct-server o algo similar. Con el fichero de ejemplo pmdemand debe ser suficiente para la mayoria de proveedores. Cree un perfil en el directorio home de este usuario. debemos: Por parte del Cliente: 1. cuando haya una petición de salida (y no haya creado el fichero start_if. podemos decir que para configurar ppp por primera ocasión. 2.7. 4. Favor de referirse a los archivos de ejemplos para mayor detalle al respecto. puede teclear: # ppp y posteriormente dial proveedor para iniciar la sesión. 5. 3. Una vez reiniciado el equipo. PPP y SLIP sendmail_flags="-bd" La parte negativa de esta conifguración es que tiene que forzar a sendmail a re-examinar los llamados del servidor de correo. Asegurses de que el dispositivo tunX . Asegurses de que el dispositivo tunX . Ahora lo único que queda pendiente de hacerse es reiniciar el equipo. Si cuenta con una dirección de IP dinámica. Summario A manera de recapitulación. cada vez que ppp realiza una conexión.conf. Asegurese de que existe el dispositivo tun dentro de su kernel. cree una entrada en el fichero /etc/ppp/ppp. Asegurese de que dentro de su kernel exista el dispositivo tun. 4. o bien si desea que ppp inicie la sesión automáticamente. Cree un archivo script llamado start_if.conf. puede teclear: # ppp -auto proveedor 15. 6.linkup . se encuentra disponible. Cree una entrada en su fichero /etc/ppp/ppp. Por parte del Servidor: 1. bajo el directorio /dev. Cree una entrada en el fichero /etc/passwd (usando el programa vipw(8)).2.linkup para hacer esto de manera automática: 1 provider: 2 delete ALL 3 add 0 0 HISADDR 4 !bg sendmail -bd -q30m Si usted no desea hacer esto.tun0 si requiere servicio de conexión a solicitud. bajo el directorio /dev. Capítulo 15.1. 3. con el siguiente comando: # /usr/sbin/sendmail -q Puede utilizar el comando !bg en el fichero ppp. para bloquear el tráfico al servidor de salida de correo (SMTP). 2.tun0). 169 .

foo. crtscts # habilita el flujo de controls de hardware modem # línea de control del modem noipdefault # el servidor PPP remoto asignará la dirección IP # si el servidor no envia una dirección IP durante IPCP # remueva esta opción. como un “servidor” — cuando su maquina esta conectada a una red y es utilizada para que otras maquinas se conecten utilizando ppp. cambie la 170 . de manera que pueda hacer la conexión con un host remoto.2. El siguiente archivo de configuración /etc/ppp/options puede utilizarse para realizar la conexión a una terminal CISCO. Cree una entrada en el fichero /etc/ppp/ppp. Cree una entrada en el fichero /etc/ppp/ppp. si no especifica esta opción. Sorokopud y Robert Huff. Como un “cliente” — cuando desea conectar su maquina al mundo exterior utilizando PPP. por medio de una conexión serial o bien una línea de modem. 2. passive # espere por los paquetes LCP domain ppp. En ambos casos. será necesario configurar un fichero de opciones (/etc/ppp/options o bien ~/.1. Actualice su fichero /etc/rc. 7. asegurese de pppd se localiza en /usr/sbin y de que existe el directorio /etc/ppp. por medio de PPP. 15.ppprc si se cuenta con más de un usuario que utilizará ppp en la misma maquina. 15. pppd puede trabajar de dos maneras 1. Configurando Kernel PPP Antes de comenzar a configurar PPP en su maquina.3.3.com # escriba su nombre de dominio aqui : remote_ip  # escriba la IP del host remoto aqui # este será utilizado para el ruteo de paquetes por medio # de PPP. PPP y SLIP 5. 15. Usando Kernel PPP Partes originalmente desarrolladas por Gennady B. Usando pppd como Cliente Basedo en información provista por Trev Roydhouse.conf. El fichero de ejemplo direct-server debe ser suficiente para darse una idea.linkup.3.conf. Capítulo 15. También deberá de contar con un software para hacer la conexión por medio de módem (de preferencia kermit). 6.

then echo ’killing pppd. Ahora su computadora esta conectada por medio de PPP. PPP y SLIP # línea a quedar  local_ip : remote_ip  defaultroute # establezca esta opción si el servidor su ruteador # por default Para conectarse: 1. Salga de kermit (sin colgar la línea). utilizando kermit (o cualquier otra aplicación de este tipo). then echo ’killing pppd.new/pppd /dev/tty01 19200 Asegurese de utilizar el dispositivo y la velocidad adecuados. PID=’ ${pid} kill -TERM ${pid} fi 171 . ingrese su nombre de usuario y contraseña (o cualquier info que sea necesaria para habilitar PPP en el host remoto). PID=’ ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit. /etc/ppp/pppup realizará los 3 pasos de forma automática: #!/bin/sh ps ax |grep pppd |grep -v grep pid=‘ps ax |grep pppd |grep -v grep|awk ’{print $1.}’‘ if [ "X${pid}" != "X" ] .dial pppd /dev/tty01 19200 El fichero /etc/ppp/kermit. PID=’ ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=‘ps ax |grep kermit |grep -v grep|awk ’{print $1.}’‘ if [ "X${pid}" != "X" ] . Utilice el siguiente script. Capítulo 15.sbin/pppd. Realice el llamado al host remoto. uqe realiza el marcado y negocia la autorización necesaria con el host remoto (un ejemplo de este script se encuentra al final de este documento). puede añadir la opción debug en el fichero /etc/ppp/options de tal forma que pueda verificar la que esta ocurriendo y pueda resolver el problema. then echo ’killing kermit. 3. Si la conexión falla. llamado /etc/ppp/pppdown para desconectar la línea PPP: #!/bin/sh pid=‘ps ax |grep pppd |grep -v grep|awk ’{print $1. 2. El siguiente script.dial es un script de kermit.}’‘ if [ X${pid} != "X" ] . Ingrese lo siguiente: # /usr/src/usr.

}’‘ if [ "X${pid}" != "X" ] . PPP y SLIP ps ax |grep kermit |grep -v grep pid=‘ps ax |grep kermit |grep -v grep|awk ’{print $1. aqui va el dispositivo del modem set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 echo \13 exit He aqui un metodo alterno.’ fi set -x netstat -n -I ppp0 ifconfig ppp0 Para colgar el módem. que deberá verse algo similar a esto: #!/bin/sh pid=‘ps ax| grep pppd |grep -v grep|awk ’{print $1.hup /etc/ppp/ppptest Verifique que su PPP aun se esta ejecutando. /dev/cuaa1 115200 crtscts # habilita el control de flujo por medio de hardware 172 .}’‘ if [ X${pid} != "X" ] . ejecute /etc/ppp/kermit. que deberá contener: set line /dev/tty01 . para realizar una conexión por medio de pppd. donde se utiliza chat en lugar de utilizar kermit.hup. then echo ’pppd running: PID=’ ${pid-NONE} else echo ’No pppd running. Capítulo 15. then echo ’killing kermit. por medio de /usr/etc/ppp/ppptest. PID=’ ${pid} kill -9 ${pid} fi /sbin/ifconfig ppp0 down /sbin/ifconfig ppp0 delete kermit -y /etc/ppp/kermit. Los siguientes dos ficheros deben ser suficiente.

20:192.foo.}’‘ if [ "X${pid}" != "X" ] .  ABORT BUSY ABORT ’NO CARRIER’ "" AT OK ATDT numero.de.3.114. algo como: # pppd 15.com # su dominio passive # espera por LCP modem # línea de modem El siguiengte script.domain # aqui va su dominio : # escriba la IP del host remoto aqui # si no ha especificado la opción noipdefault # cambie esta línea a quedar local_ip : remote_ip   defaultroute # escriba esto. # si el servidor no asigna una IP durante la negociación # IPCP . para que actue como servidor: #!/bin/sh ps ax |grep pppd |grep -v grep pid=‘ps ax |grep pppd |grep -v grep|awk ’{print $1. todo lo que necesita es ejecutar el comando pppd.script" noipdefault # el servidor remoto debe asignar la dirección IP.208. llamado /etc/ppp/pppserv habilitará pppd. si desea que el servidor PPP sea su # router por default /etc/ppp/login. PPP y SLIP modem # línea de control del módem connect "/usr/bin/chat -f /etc/ppp/login.255. Capítulo 15.script: Nota: Lo siguiente debe ir en una sola línea.telefono   CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: nombre.165 # direcciones ip del host local y remoto # la dirección ip local debe ser # diferente a la que le haya asignado a su # dispositivo de red ethernet (u otro) # la dirección ip remota que será # asignada a la maquina remota domain ppp.208.114.usuario TIMEOUT 5 sword: contraseña Una vez que estos ficheros han sido modificados correctamente e instalados.255.chat. remueva esta línea y espere por los passive  # paquetes LCP domain your.chat.3. Usando pppd como Servidor El fichero /etc/ppp/options debe contener algo similar a lo siguiente: crtscts # control de flujo por Hardware netmask 255. then 173 .0 # mascara de red (no es requisito) 192.

PID=’ ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=‘ps ax |grep kermit |grep -v grep|awk ’{print $1. PID=’ ${pid} kill -9 ${pid} fi # reset ppp interface ifconfig ppp0 down ifconfig ppp0 delete # enable autoanswer mode kermit -y /etc/ppp/kermit.}’‘ if [ "X${pid}" != "X" ] .ans # run ppp pppd /dev/tty01 19200 Utilice el script /etc/ppp/pppservdown para detener el servidor: #!/bin/sh ps ax |grep pppd |grep -v grep pid=‘ps ax |grep pppd |grep -v grep|awk ’{print $1.ans) habilita/deshabilita el modo de autorespuesta en su módem. PID=’ ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=‘ps ax |grep kermit |grep -v grep|awk ’{print $1. then echo ’killing kermit. then echo ’killing kermit. PPP y SLIP echo ’killing pppd.}’‘ if [ "X${pid}" != "X" ] . then echo ’killing pppd. Y debe verse algo similar a lo siguiente: set line /dev/tty01 set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 174 . Capítulo 15.}’‘ if [ "X${pid}" != "X" ] .noans El siguiente script de kermit (/etc/ppp/kermit. PID=’ ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.

dial es utilizado para llamar y autentificarse en un host remoto. esperar para OK if success goto slhup 175 . . escriba la velocidad del módem: . también será necesario cambiar su metodo de conexión. . Limpieza del buffer de entrada pause 1 output +++ input 1 OK\13\10 . . cambiar esto a quedar out ATS0=0\13 si desea deshabilitar el modo . Es necesario que edite este fichero. de autorespuesta inp 5 OK echo \13 exit Un script llamado /etc/ppp/kermit. Posteriormente SET CARRIER si es necesario set dial display on . de acuerdo a sus necesidades. set line /dev/tty01 . clear . full 8 bit file xfer set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto . PPP y SLIP set flow none pau 1 out +++ inp 5 OK out ATH0\13 inp 5 OK echo \13 out ATS0=1\13 . ingrese el dispositivo que esta apuntando a su módem: . Capítulo 15. set speed 19200 set file type binary . despues SET DIAL si es necesario set input echo on set input timeout proceed set input case ignore def \%x 0 goto slhup :slcmd . de acuerdo a lo que se ajuste a sus necesidades. cambio a modo de comando echo Put the modem in command mode. Escriba su nombre de usuario (login) y contraseña (password) en este fichero.

login assign \%x 0 . asignar cero al contador pause 1 echo Looking for login prompt. colgar el teléfono clear . escriba su login prompt aqui: . marcar el numero telefonico pause 1 echo Dialing. .550311\13\10 . Conteo de segundos input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin . :slloop increment \%x . input 1 {Username: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} 176 . asignar cero al contador :look clear . intentar de nuevo :slhup . Limpieza del buffer de entrada pause 1 echo Hanging up the phone. PPP y SLIP output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd . si el modem no responde Ok. Limpieza del buffer de entrada increment \%x . si no hay un OK como respuesta. Capítulo 15. Conteo de segundos clear . output atdt9. output ath0\13 input 2 OK\13\10 if fail goto slcmd . poner el modem en modo de coman :sldial . escriba el numero de telefono assign \%x 0 . Limpieza del buffer de entrada output \13 .

0. Configurando el kernel Ya no es necesario realizar una configuración especial para que nuestro kernel cuente con soporte para PPPoE. mode: csh .conf completamente funcional: default: set log Phase tun command # puede añadir más dispositivos si lo desea set ifaddr 10. 15.2/0 177 . ppp se encargará de cargarlo de una manera dinámica. escriba su nombre de usuario: .4. output ppp-login\13 input 1 {Password: } . " . comment-start-skip: ".4. . PPP y SLIP if success goto slhup if < \%x 10 goto slloop . intentar 10 veces para obtener un login else goto slhup . Siempre y cuando el soporte de redes necesario se encuentre en él. 15. colgar y empezar de nuevo si a la decima falla :sluid .1.} echo quit :slnodial echo \7No dialtone.0. end: 15.html) por Jim Mock.4. escriba su contraseña: .conf He aqui un ejemplo de un fichero de configuración ppp. En esta sección veremos como configurar PPP sobre una red Ethernet (PPPoE). comment-start: ". " . . Usando PPP sobre Ethernet (PPPoE) Contribuido (tomado de http://node.1/0 10. Editando el fichero ppp.0. local variables: .0.to/freebsd/how-tos/how-to-freebsd-pppoe. Capítulo 15. Check the telephone line!\7 exit 1 . output ppp-password\13 input 1 {Entering SLIP mode.2.

4. Posteriormente.5. puede intentar el método sugerido por el programa Roarging Penguin PPPoE (http://www. Al utilizar este programa debe tener en mente. Que normalmente es ISP. El nombre de su perfil debe aparecer listado.conf como el proveedor para la opción del comando set device (puede ver la página de ayuda ppp(8) para más detalles). Como último recurso. Capítulo 15. por esta razón piense biena antes de utilizarlo. Su proveedor de internet debe haberle provisto de la información necesaria para crear esta marca.conf: ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" # siempre y cuando desee habilitar nat para su red local ppp_profile="nombre_del_proveedor_de_inet" 15. debe acceder al menú de Sistema del programa. Simplemente instale el programa controlador del módem. Ejecutando PPP al inicio de sesión Añada las siguientes líneas a su archivo /etc/rc. Ejecutando PPP Estando en modo superusuario (root) puede ejecutar: # ppp -ddial nombre_del_proveedor_de_inet 15.4.4.3. puede solicitar a su proveedor que le brinde esta información.4. provisto por su porveedor. que puede encontrarse en la colección de ports. PPP y SLIP nombre_del_proveedor_del_servicio_de_internet: set device PPPoE:xl1 # sustituya xl1 con su dispositivo ethernet set authname SuNombreDeUsuario set authkey SuContraseña set dial set login add default HISADDR 15. Las marcas (“tags”)de servicio son utilizadas para distinguir entre diferentes servidores de una red. que este puede desconfigurar su módem por completo. Diferenciando el uso del Servicio de PPPoE En ocasiones es necesario utilizar una pequeña marca para diferenciar el servicio que vamos a utilizar para establecer la conexión.com/pppoe/). 178 . Esto debe verse algo similar a lo siguiente: set device PPPoE:xl1:ISP No olvide cambiar x11 por el dispositivo Ethernet que este utilizando. Si esto no fué así. El nombre del perfil (marca del servicio) será utilizada por la configuración de PPPoE en el fichero de configuración ppp. a los que nos podemos conectar utilizando PPPoE.roaringpenguin.

Capítulo 15. Carrel.conf: net. por que el firmware es distribuido bajo la licencia de Alcatel (http://www.graph.com/consumer/dsl/disclaimer_lx. 15.waldura. se debe establecer un control de sistema (sysctl). PPP y SLIP No olvide cambiar ISP por el nombre del perfil que le fué descrito anteriormente (por lo general el nombre de su Proveedor de Servicio de Internet). Para instalar este software. editando el fichero /etc/sysctl. D.5. J.com/). PPPoA es una alternativa muy común entre proveedores de DSL en Europa.faqs. por lo que no es posible comunicarnos con un dispositivo cliente — servidor que utilice PPPoE y con un módem casero 3Com ADSL. Simone y R. por favor comentelo en 3Com (http://www.1. Desafortunadamente y dado que esto implica una configuración general del sistema. alias PPPoA. En su lugar.html) (Un metodo que describe el uso de PPP por medio de un dispositivo Ethernet (PPoE). el código de diferentes tipos de paquetes ha sido utilizado para el manejo del entorno Ethernet.nonstandard_pppoe=1. Mamakos. Usando PPPoE en Casa con un Modem Dual ADSL 3Com Este módem no sigue el estandar establecido en el RFC 2516 (http://www. Para información adicional consulte: • Cheaper Broadband with FreeBSD on DSL (http://renaud.org/rfcs/rfc2516. para un efecto inmediato. al mismo tiempo. Esto puede hacerse de forma automática al momento del arranque. Usando PPP sobre ATM (PPPoA) Lo siguiente describe como configurar PPP utilizando ATM. Usando PPPoA con un Alcatel Speedtouch USB El soporte bajo FreeBSD para este dispositivo se puede encontrar como un port. 179 . escrito por L. por medio del comando sysctl -w net. K. 15.htm).3com. Si cree que esto es incorrecto y que se debiera ajustar a las especificaciones de PPPoE. Lidl.graph.5.com/doc/freebsd/pppoe/) por Renauld Waldura.alcatel.nonstandard_pppoe=1 o bien pude hacerse desde la línea de comandos. Instale el port net/pppoa y siga las instrucciones provistas por el port. D. simplemente utilice la colección de ports.4.6. Wheeler). Evarts. Para poder hacer que FreeBSD sea capaz de comunicarse con este dispositivo. 15.

que estan bien documentados en PREFIX/etc/mpd/.0.0. default: load adsl adsl: new -i ng0 adsl adsl set bundle authname usuario ➊ set bundle password contraseña ➋ set bundle disable multilink set link no pap actcomp protocomp set link disable chap set link accept chap set link keep-alive 30 10 set ipcp no vjcomp set ipcp ranges 0.140 set pptp peer 10. y posteriormente configurar mpd para que se ajuste a sus necesidades y a la configuración del proveedor. Una guía completa en formato HTML. Puede encontrar mpd en la colección de ports.0. Primero debe instalar el port.0. La configuración se divide en dos ficheros. ➋ La contraseña para autentificar con su proveedor.0. al ingresar los siguientes comandos como root. que desee establecer. # mpd -b adsl 180 .2.0. o las conecciones.138 La conexión es fácil de inicializarla. El fichero mpd. Note que PREFIX se refiere al directorio donde sus ports son instalados. se muestra a continuación. Usando mpd Puede usar mpd para conectarse a una gran variedad de servicios.links y que sea acompañante del ejemplo anterior.0/0 set iface route default set iface disable on-demand set iface enable proxy-arp set iface idle 0 open ➊ El nombre de usuario para autentificar con su proveedor. adsl: set link type pptp set pptp mode active set pptp enable originate incoming outcall set pptp self 10.0/0 0. Esta se localiza en PREFIX/share/mpd/. Un ejemplo de mpd. primero tenemos el fichero mpd.links contiene información a cerca de la. esta disponible una vez que se ha instalado el port.0. bajo net/mpd. Capítulo 15.conf. El port instala un conjunto de ficheros de configuración de ejemplo.0. PPP y SLIP 15.5. Aqui tenemos un ejemplo simple de configuración para conectarse a un servicio ADSL con mpd. que normalmente es en /usr/local. en particular servicios pptp.

se muestra a continuación.204. Para mayor información sobre las opciones de ppp.MULTICAST mtu 1500  inet 216. consulte la página de ayuda de ppp. ya que pptp no retorna al shell por default.conf # chmod 600 /etc/ppp/ppp.0. Los siguientes comandos se aseguran de que el fichero solo pueda se leido por root. PPP y SLIP El estatus de la conexión la puede ver con el comando. ➋ La contraseña de su cuenta.conf en texto plano. La documentación de su equipo debe indicarle que dirección utiliza.186.conf.138. debe asegurarse que nadie tenga acceso de lectura a este fichero.conf.0. Ve las páginas de ayuda chmod(1) y chown(8) para mayor información. # pptp dirección proveedor Sugerencia: Puede añadir un símbolo de ampersand (“&”) al final de este comando.RUNNING. En el caso del Alcatel Speedtouch. % ifconfig ng0 : flags=88d1 UP.5. Para conectarse por medio de net/pptpclient a un servicio DSL.NOARP. Capítulo 15. 181 . instale el port o paquete y edite el fichero /etc/ppp/ppp.3. ejecute el siguiente comando. adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname usuario ➊ set authkey contraseña ➋ set ifaddr 0 0 add default HISADDR ➊ Nombre de usuario de la cuenta DSL.152.conf.POINTOPOINT.conf Esto abrirá una sesion por medio de PPP con su ruteador DSL.171 netmask 0xffffffff Usar mpd es la forma recomendada para conectarse con servicios ADSL con FreeBSD. ppp(8). Un ejemplo de la sección de ppp. Usando pptpclient También es posible usar FreeBSD para conectarse a otros servicios PPPoA por medio de net/pptpclient. # chown root:wheel /etc/ppp/ppp. esta dirección es 10.SIMPLEX. Los módems Ethernet DSL cuentan con una dirección IP de LAN preconfigurada a la cual se puede conectar. Para abrir el “tunel” e iniciar la sesión ppp.136. Debe ser root para hacer estas operaciones.117 --> 204. AvisoDebido a que debe poner su contraseña en el fichero ppp. 15.

1. Si aun no puede conectarse examine la salida que da el comando pptp y el contenido del fichero de registro (log) de ppp. Lo cual puede ser de mucha ayuda.181 water. /var/log/ppp. Este es un ejemplo de mi fichero: 127.MULTICAST mtu 1500  inet 216. /dev/cuaaN. servidores de nombre a su fichero /etc/hosts. Esto permite abstenerse de usar el nombre real del dispositivo. Una vez que regrese al shell puede examinar la conexión por medio del siguiente comando. % ifconfig tun0 tun0: flags=8051 UP. Con comentarios por Guy Helmer y Piero Serini. 15.64. así que no debe haber problema. tal como /dev//modem.186. Capítulo 15.RUNNING.log. probablemente sea necesario realizar algunos ajustes que complican la configuración.9 ns1.32.EDU inr-3 slip-gateway 128. verifique la configuración de su ruteador. PPP y SLIP Un dispositivo virtual tun será creado. para interactuar con los procesos de pptp y ppp.Example.EDU water. ya que puede ser un fastidio tener que editar un monton de ficheros en /etc y ficheros de tipo . que apunta al nombre real del dispositivo. Usando SLIP Contribución Original por Satoshi Asami.0.CS water 136.Example. Configurando un cliente SLIP Lo siguiente es una forma de configurar FreeBSD para que utilice SLIP.64. En primer término. en caso de que sea necesario cambiar de puerto nuestro módem. a menos que lo haya borrado intencionalmente.CS. Mucha gente opta por} contar con un enláce simbólico.6. que normalmente es accesible por medio de telnet o de su navegador web. es necesario determinar a que puerto serial esta conectado nuestro módem. claro esta.152.21 --> 204. 15.kermrc en todo el sistema!. en un red con dirección estática.1. etc.6. Añada el nombre de su maquina. Asegurese de contar con la siguiente opción en la configuración de su kernel: pseudo-device sl 1 Esta opción esta incluida en el archivo del kernel GENERIC.204. Para direcciones dinámicas (esto es.152.CS.152. donde su dirección cambia cada vez que se conecta).136.1 inr-3. 15. cuaa1 es COM2.1.171 netmask 0xffffff00 Opened by PID 918 Si no le es posible conectarse.6. Nota: /dev/cuaa0 es COM1.0.Example.136.EDU ns1 182 . Cosas Que Tiene Que Hacer Solo Una Vez 1.1 localhost loghost 136.POINTOPOINT. gateway.

conf. 15. Añada el dispositivo sl0 a la lista de dispositivos de red. Haciendo una Conexión con SLIP 1. en su fichero /etc/host.136. puede utilizar un script similar al siguiente: # kermit setup set modem hayes set line /dev/modem 183 . Edite el fichero /etc/rc. ingrese el nombre y la contraseña. a que contenga lo siguiente: domain CS. el nombre de dominio y las direcciones IP.conf (si no existe debe crearlo). al cambiar la línea que dice: network_interfaces="lo0" a quedar: network_interfaces=“lo0 sl0” 3. Edite su fichero /etc/resolv.Example. Reinicie su sistema y asegurese que cuenta con el nombre de host (hostname) correcto.2. 5. Asegurese de que cuenta con la opción hosts antes de la opción bind. teclee en el signo de comando slip.6.9 nameserver 128.dominio” El nombre completo de su sistema para internet. depende de su sistema. dependen de su sistema específico. Añada los parámetros de inicialización del dispositivo sl0.mi. de su servidor de nombres.Ejemplo. Claro esta.32. Especifique su nombre host al editar la línea que dice: hostname=“minombre.EDU nameserver 128. Establezca la contraseña del superusuario root y de su símil toor (y de cualquier otro usuario que aun no cuente con la misma).1. 1.conf.12 Como puede ver. 2. 6. De lo contrario pueden ocurrir cosas graciosas en su sistema. 3. lo anterior define el nombre de host. Especificque cual será su ruteador por omisión al editar la línea: defaultrouter=“NO” a quedar: defaultrouter=“slip-gateway” 4.136. Marque el número. Lo que se requiere ingresar. PPP y SLIP 128.136.32. al añadir la línea: ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up" 4. Si utiliza kermit. debe ser escrito en este punto. Capítulo 15.12 ns2.EDU ns2 2.32.

Normalmente en el segundo intento hay exito. (ifconfig sl0 da el mismo resultado. para realizar la conexión. usted esta conectado!. input 10 Username:. pero algunos usuarios han reportado que esto ha solucionado sus problemas. 2. puede intentar como argumento del comando slattach. la opción -a en lugar de utilizar la optción -c. puede simplemente teclear slip en el símbolo de sistema (prompt) de kermit. 184 . - output ***\x0d. Recuerde que para hacer esto.1.6. teclee: # slattach -h -c -s 115200 /dev/modem Si puede hacer ping a cualquier host que se encuentre del otro lado del ruteador.pid‘ esto terminaraá slattach. Lo siguiente es una recapitulación de los problemas que más comunmente se presentan: • El no utilizar la opción -c o -a con el comando slattach (Esto debiera se fatal.1. Hágalo bajo su propio riesgo. if failure stop. Si esto no funciona. Como Terminar la Conexión Para terminar la conexión haga lo siguiente: # kill -INT ‘cat /var/run/slattach.6. Posteriormente dirijase a kermit (puede hacer esto con fg si lo envio a segundo plano) y salga (tecleando q). Si ese es el caso. Nota: El dejar su contraseña en texto plano. 15. Después de hacer esto. para marcar como terminado el uso del dispositivo. usted debe estar firmado como superusuario (root). que debe cambiar el nombre y contraseñ a quedar de acuerdo a sus necesidades. • Usar la opción s10 en vez de usar la opción sl0 (puede ser difícil ver la diferencia con algunos tipos de letras). - output silvia\x0d. generalmente es una mala idea. echo \x0aCONNECTED\x0a Claro esta. puede que su módem se niegue a cortar la comunicación (el mio lo hace a veces).3. input 10 Password:.modem.) En algunas ocasiones. Dejé a kermit en ese punto trabajando (puede suspenderlo tecleando Ctrl-z) y como root. Capítulo 15.4. en cualquier parte del sistema. La página de ayuda de slattach indica que debe utilizar el comando ifconfig sl0 down. if failure stop. - output slip\x0d. 15. pero tal parece que esto no hace una gran diferencia para mi. sientase libre de preguntarme. if failure stop. simplemente inicie de nuevo kermit y vuelva a salir. Problemas Comunes Si esto no funciona. input 10 = . PPP y SLIP set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary  # El siguiente macro se encarga de llamar e ingresar al sistema define slip dial 643-9600.

si cuenta con un navegador para la World-Wide Web. mascaras de red. por favor lea el tutorial sobre configuración de estos servicios.Example. para efecto de utilizar el mismo para realizar la conexión. puede ser que obtenga algo similiar a lo siguiente: # ifconfig sl0  sl0: flags=10 POINTOPOINT inet 136. Este documento supone que usted cuenta con conocimientos sobre el protocolo de redes TCP/IP.152. subneteo.1 netmask ffffff00 • También el comando netstat -r le mostrará la tabla de ruteo. Los numeros pueden variar en su sistema. que usted ha instalado y configurado correctamente su(s) módem(s). lo que generalmente significa configurar su sistema. Prerequisitos Esta sección es de naturaleza muy técnica. requiere un conocimiento de estos conceptos. publicado por O’Reilly & Associates. Capítulo 15. 0. ruteo y protocolos de ruteo. al firmarse usuarios—clientes remotos en su sistema. sobre protocolos TCP/IP.6.152.CS. tal como RIP.Example localhost.2.Example.. 15. UGH 34 47641234 lo0 . Un ejemplo de esto se muestra a continuación: # netstat -r Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: (root node) (root node)  Route Tree for Protocol Family inet: (root node) = default inr-3. PPP y SLIP • Intente ifconfig sl0 para visualizar el estatus de sus dispositivos de red.E UH 1 0 sl0 . 15. El configurar servicios SLIP.CS. Se da por un hecho.1. 0. o alguno de los libros de Douglas Comer.Example./index.. bajo FreeBSD. en caso de que obtenga el mensaje “no route to te host”. ya sea del libro de Craig Hunt.FreeBSD./.438 inr-3.64.2.438 (root node) Esto es después de que el sistema ha estado conectado por un tiempo.Example..org/ (.html). (Numero ISBN 0-937175-82-X). TCP/IP Networking Administration. puede leer una copia. redes y direcciones de nodos. y si usted no esta familiarizado con estos. UH 5 42127 lo0 . así que contar con antecedentes sobre esto es requerido. para establecer un servidor de SLIP.64.EDU UG 8 224515 sl0 .181 --  136.6. 185 . en un servidor. - localhost./.ED water. puede ver los tutoriales disponibles en http://www.Exampl localhost. Estableciendo un Servidor SLIP Este documento provee sugerencias. para que de manera automática inicie los servicios./. Inc. y particularmente.. al hacer ping.Example. Por ejemplo. - water. así como la configuración de su sistema. Si usted no lo ha hecho.

conf.2.conf(5) y quizas el fichero /etc/syslog. Configuración del Kernel El kernel de FreeBSD. la entrada del usuario Shelmerg. sobre la configuración de su sistema. 15. el desarrollo de FreeBSD como un servidor SLIP.SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin Cuando Shelmerg accese al sistema. normalmente sliplogin guarda bastante información para depurar. basta de ejemplos — entremos de lleno en la configuración del sistema. usted puede utilizar netstat -i. y ttys(5). para ver información relevante. se conecta del Servidor SLIP FreeBSD e ingresa al sistema con una identificación especial. para establecer la dirección local IP (dc-slip). 186 . sio(4) para información referente a los controladores de dispositivos de puertos en serie.hosts exista una línea simliar a la siguiente: Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp El comando sliplogin encontrará la línea que coincida. la interfaz de la direción IP Remota (sl-helmer).login). la submascara de red para la interfaz SLIP (0xfffffc00) y cualquier otra opción adicional (autocomp). en la cual el ID (identificación) del usuario coincida. a la cual sliplogin se ha adjuntado (la interfaz slip 0. una línea.2.6. getty(8). OK. por medio del demonio (daemon) syslog.6.2. 15.login.hosts la línea que haya sido creada especialmente para el usuario. para verificar si estos dispositivos se encuentran en el kernel de su sistema. funciona de la siguiente manera: un Usuario SLIP.passwd se vera algo similar a lo siguiente: Shelmerg:password:1964:89::0:0:Guy Helmer . para configurar la interfaz SLIP.3.2. para la interfaz SLIP. por ejemplo. cuenta con 2 dispositivos SLIP definidos (sl0 y sl1). Un Ejemplo de Acceso al Servidor SLIP Por ejemplo si la clave de acceso de un usuario SLIP fuese Shelmerg. PPP y SLIP Puede ser que también desee revisar las páginas de ayuda (man). que se utiliza para la conexión directa por medio de puertos seriales). y quizás stty(1) para información sobre los parámetros de configuración de puertos en serie (tal como clocal. gettytab(5).6. El programa sliplogin busca en el fichero /etc/sliphome/slip. & init(8).login creará una configuración.2.login de manera similar a: /etc/sliphome/slip. puede ser que en el fichero /etc/sliphome/slip. por medio de ifconfig. que era el primer parámetro dado en la lista de slip. el comando sliplogin. en el fichero /etc/master. conecta la línea serial a una interfaz SLIP disponible y posteriormente ejecuta el script /etc/sliphome/slip. 15. Echemos un Vistazo En su configuración típica. enganchará la línea serial a cualquier interfaz SLIP disponible y posteriormente ejecutará /etc/sliphome/slip. buscará en el fichero /etc/sliphome/slip. que usualmente guarda dicha infomración en /var/log/messages (vea la página de ayuda syslogd(8) así como syslog.hosts.1. Si algo no va del todo bien. /etc/sliphome/slip. que utiliza /usr/sbin/sliplogin como shell del usuario. para efecto de que acepte accesos (logins) por medio de un módem.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp Si todo marcha bien. Capítulo 15. por omisión. para ver que es lo que syslogd esta almacenando y donde es que lo almacena.

podrá notar que cerca del final. que es el fichero que define a los usuarios SLIP. opere como un ruteador. que son parte de la configuración de /usr/sbin/sliplogin (vea la pagina de ayuda sliplogin(8) de para ver la ayuda del comando sliplogin): slip. Será necesario que reinicie su sistema.) Aun cuando el kernel cuente con los dispositivos.4a Ipkts Ierrs 291311 0 Opkts Oerrs Coll 174209 0 133 ed0 lo0 65535 Link  1500 138.2. que hace lo opuesto a slip.0.4. que al menos cuentan con cuatro partes. Capítulo 15. no viene configurado para enviar paquetes (de hecho su sistema FreeBSD no trabajara como ruteador.hosts El fichero /etc/sliphome/slip. slip. sl0 y sl1 (el asterisco que aparece después de sl0 y sl1 indica que los dispositivos no estan “trabajando”.2c. existen tres ficheros en el directorio /etc/sliphome. Para ayuda con relación a la configuración y compilación del kernel en su sistema FreeBSD.login. por favor refierase Capítulo 8 al apartado correspondiente. PPP y SLIP Un ejemplo del resultado de netstat -i: Name ed0 Mtu 1500 Network  Address Link 0.logout. separadas por espacios en blanco: • Identificador (nombre) del usuario SLIP • Dirección Local (local para el servidor SLIP) de la liga a SLIP • Dirección Remota de la liga a SLIP 187 . Configuració de slip. por omisión el kernel de FreeBSD. esto habilitará esta función. así como sus direcciones IP correspondientes. 15. cuando la conexión serial ha terminado. Si usted desea que su servidor SLIP sobre FreeBSD. por default) esto en base a los requerimientos para Internet.c0.1. que normalmente es utilizado para configurar la interfaz de SLIP. que son.224 ivory 291311 79 0 0 174209 79 0 0 133 0 lo0 65535 loop  localhost 79 0 79 0 0 sl0* sl1* 296 296 Link Link  0 0 0 0 0 0 0 0 0 0 En este ejemplo vemos que existen dos dispositivos SLIP en el kernel.247. el numero al final de la línea es el numero máximo de conecciones SLIP que puede manejar el servidor simultaneamente. 1122 [Requerimientos para hosts de Internet — Capas de comunicación] y quizás 1127 [RFC sobre Una Perspectiva de los Requerimientos de Hosts]). establecidos por los RFCs ( vea 1009 [Requerimentos para Pasarelas (Gateway) en Internet].6. y (opcionalmente) slip. Al verificar su fichero de configuración del kernel (/sys/i386/conf/GENERIC). 15.6. será necesario que edite el fichero /etc/rc.login. a quedar YES.hosts contiene líneas.hosts. hay una línea como la siguiente: pseudo-device sl 2 Esta línea es la que define el numero de dispositivos SLIP disponibles en el kernel. Configuración de Sliplogin Como se menciono anteriormente.2.4.conf y cambie la opción gateway_enable.5f. para efecto de que estos cambios surtan efecto.

para que maneje la tabla ARP del servidor SLIP y llamados del proxy-ARP. que puede ser resuelto revisando /etc/networks. Posteriormente puede que sea necesario.2. que se mencionan en los Prerequisitos de SLIP (Sección 15. • normal — sin compresión de los encabezados.login y en /etc/sliphome/slip. y tambié será necesario que haga algunos ajustes en los ficheros script /etc/sliphome/slip.1 (Berkeley) 7/1/90 # # generic login file for a slip line. • compress — compresión de los encabezados.compress. es llevada a cabo. o bien configurar una ruta estática a la subred SLIP. dependiendo de lo que haya especificado en el fichero /etc/host.6. • autocomp — compresión automática. el fichero /etc/sliphome/slip.4.1) y/o consulte al administrador de IP de su red. en lugar de ocupar de su ancho de banda). En un sistema de ejemplo.noicmp) # Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp Al final de la línea puede ver que existen una o más opciones. slip. se les asigne una dirección IP.2. salga de la dirección IP que tenga asignada su red. si el host remoto lo permite. y la mascara de red puede ser un nombre. • noicmp — deshabilitar los paquetes ICMP (de tal forma que cualquier paquete enviado por “ping” seráa rechazado. pueden ser nombres del host (la resolución de los mismos. y el numero de cada cliente.login se ve de la siguiente manera: #!/bin/sh - # # @(#)slip. será necesario que la dirección de la subred (subnet). Si usted no esta seguro que metodo manejar o como asignar la dirección IP. puede verse así: # # login local-addr remote-addr mask opt1 opt2 # (normal. Si usted piensa subnetear para los diferentes clientes SLIP. del numero que asigne a su subred.6.login 5. por favor refierase a alguno de los libros sobre TCP/IP. De otra forma.hosts. La elección sobre la dirección local y remota depende si usted va a utilizar una conexión TCP/IP dedicada o bien si va a utilizar una conexión por medio de “proxy ARP” en su servidor SLIP (no es correcto “proxy ARP”. pero es la terminología utilizada en esta sección para describirlo). 15. PPP y SLIP • Mascara de red Las direcciones local y remota. será necesario que a sus clientes SLIP. por medio de /etc/hosts o por el servidor de nombres de dominio (DNS). Capítulo 15.logout. si usted piensa utilizar un metodo “proxy ARP”.2. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args 188 . para que usen arp(8).login Configuración El típico fichero /etc/sliphome/slip. por medio de su servidor SLIP en su ruteador más cercano por IP. que se encuentre dentro del rango que este utilizando para su subred Ethernet.conf).

el siguiente es un ejemplo básico del script slip.logout El fichero /etc/sliphome/slip.28. Nota: Recuerde que cuando cree los ficheros /etc/sliphome/slip. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # Answer ARP requests for the SLIP client with our Ethernet addr /usr/sbin/arp -s $5 00:11:22:33:44:55 pub La línea adicional.login. Esta entrada le indica al servidor SLIP que debe responder con la dirección MAC de su dispositivo Ethernet. es importante que sustituya la dirección Ethernet MAC (00:11:22:33:44:55). If you have decided to use the “proxy ARP” method (instead of using a separate subnet for your SLIP clients).6.3. así mismo deberá de anteponerse un cero.1 (Berkeley) 7/1/90 # # generic login file for a slip line. o definitivamente su “proxy ARP” no va a funcionar!. para ver información completa sobre su uso. puede ejecutar el comando netstat -i.login /etc/sliphome/slip.5f.logout). el cual tendrá como resultado algo similar a lo siguiente: ed0 1500  Link 0.login file merely runs ifconfig for the appropriate SLIP interface with the local and remote addresses and network mask of the SLIP interface. PPP y SLIP # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 This slip.login file will need to look something like this: #!/bin/sh - # # @(#)slip. Al tomar en cuenta el ejemplo anterior. de su servidor SLIP.logout. de tal forma que convirtamos la dirección en lo que arp(8) requiere para trabajar. con la dirección que corresponde a su tarjeta de red. pero si aun así decide crearlo. Configuración de slip. en este sistema es 00:02:c1:28:5f:4a — los puntos que aparecen en la salida del comando netstat -i deben cambiarse por dos puntos. Capítulo 15. your /etc/sliphome/slip.c1. vea la página de ayuda arp(8).2. Para efecto de conocer cual es la dirección MAC del dispositivo Ethernet (tarjeta de red).login 5.2. arp -s $5 00:11:22:33:44:55 pub del script slip. de otra forma estos scripts no podrán llevar a cabo su función. deben contar con permisos de ejecución (chmod 755 /etc/sliphome/slip.login y /etc/sliphome/slip. solicite información a la IP del cliente SLIP. crea una entrada ARP en la tabla del servidor SLIP. a cada dígito hexadecimal que aparezca sólo (no en pares).logout no es indispensable (a menos que vaya a utilizar “proxy ARP”). 15. cuando cualquier otro nodo IP en la red.4a 191923 0 129457 0 116 Esto indica que la dirección MAC de su dispositivo Ethernet.4.logout : #!/bin/sh - 189 .

15. a su(s) ruteador(es) más cercanos. sino que sea necesario indicar que rutas utilizar para informar a cerca de otras rutas. para el cliente SLIP: #!/bin/sh - # # @(#)slip.2..5. es recomendable que le indique a /etc/sliphome/slip. PPP y SLIP # # slip. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down Si usted esta utilizando “proxy ARP”. para efecto de rutear los paquetes entre sus clientes SLIP y el resto de la red (y quizás Internet). Si usted cuenta con una red de ruteo-múltiple en su organización. que slip. deberá de hacer una de las siguientes dos acciones.6. elimina la entrada ARP. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down # Dejar de solicitar respuesta ARP al cliente SLIP /usr/sbin/arp -d $5 El comando arp -d $5. Consideraciones sobre el Enrutamiento Si usted no esta utilizando el metodo “proxy ARP”.). 190 . de tal forma que le indique a su(s) ruteador(es). Para esta más seguros: asegurese de que el fichero /etc/sliphome/slip.logout # # logout file for a slip line. por medio del protocolo correcto. chmod 755 /etc/sliphome/slip.login de “proxy ARP” añadió al cliente SLIP al ingresar al sistema.logout. que desea eliminar la entrada ARP.logout # # logout file for a slip line.1.6.. o bien añadir direcciones estáticas. 15.2. por medio de su servidor SLIP. una vez que lo ha creado (ej. Capítulo 15.logout) . o bien tendrá que instalar y configurar gated en su servidor SLIP (que corre FreeBSD!). algunos ruteadores. tales como los fabricados por Cisco y Proteon. a cerca de su subred SLIP. para que se reenvien los paquetes de la subred de sus clientes SLIP. así que algo de experiencia así como determinación para la resolución de problemas serán necesarias para poner la ruta basada-en- ruteo-estático a trabajar.5.logout cuenta con los permisos adecuados para su ejecución. Direcciones de Enrutamiento Estáticas Añadir direcciones estáticas de enrutamiento puede ser un problema (o imposible si usted no cuenta con la autoridad para hacerlo. puede ser que no sea suficiente con el hecho de configurar las rutas estáticas de su subred SLIP.

for gated version 3.5. } .output" replace size 100k files 2 general . Una vez que lo ha compilado e instalado. deberá crear el fichero /etc/gated.6. Capítulo 15. traceoptions route .yy out the ed Ethernet interface # # # tracing options # traceoptions "/var/tmp/gated.dsu. interface ed ripin ripout version 1 .255. # # gated configuration file for dc.0 metric 1. para que utilice los protocolos de ruteo apropiados (RIP/OSPF/BGP/EGP) para informar a otros ruteadores. # # Propagate the route to xxx. # # Accept routes from RIP via ed Ethernet interfaces import proto rip interface ed { all .xxx. similar al que el autor utilizó en un servidor SLIP FreeBSD: Nota: gated es un software propietario y su código fuente no estará disponible al público más (más información en el sitio gated (http://www.org/)). Ejecutando gated Una alternativa para los dolores de cabeza que pueden dar las redes con ruteo estático.yy out the Ethernet interface via RIP # export proto rip interface ed { proto direct { xxx.xxx.xxx. que configurará a gated. } .5alpha5 # Only broadcast RIP information for xxx. PPP y SLIP 15. # SLIP connections } . Esta sección solo existe para asegurarse de la compatibilidad con aquellos que usan la versió antigua. rip yes { interface sl noripout noripin . # # Turn on a bunch of tracing info for the interface to the kernel: kernel { traceoptions remnants request routes info interface . es intalar gated en su servidor SLIP bajo FreeBSD y configurarlo.conf. } .252. 191 .2. aqui hay un ejemplo.2. } .gated. a cerca de su subred SLIP.edu.yy mask 255.

Será necesario que modifique xxx. será necesario que modifique el parámetro ed por el correspondiente. el fichero de configuración gated. necesitará indicarle a FreeBSD que al iniciar el sistema. diferente de ed. que es un fichero que nos sirve para depurar cualquier error que se presente en la actividad de gated. en lugar de ejecutar routed. ejecute el script para gated.output. el fichero también realiza una busqueda por el fichero /var/tmp/gated. es editar las variables de route y router_flags.conf transmite información sobre la subred SLIP xxx.. En este ejemplo. si es que gated esta funcionando correctamente. a quedar con la dirección correcta de su subred SLIP (asegurese de modificar también la máscara de red. Capítulo 15. en el fichero /etc/rc. en la cláusula proto direct también). Una vez que ha instalado y configurado gated en su sistema. Por favor vea la página de ayuda de gated. La forma más fácil de hacer esto. PPP y SLIP En el ejemplo anterior. si usted esta utilizando un dispositivo de red.conf. usted puede desactivar la opción de depuración (debug).yy.yy.xxx. 192 . por medio de RIP al dispositivo Ethernet.xxx. para ver información sobre los parámetros de la línea—de—comandos.

Capítulo 16. Networking Avanzado Networking Avanzado 193 .

Capítulo 17. Correo Electrónico Correo Electrónico 194 .

Después de leer este capítulo sabrás: • La diferencia entre las dos ramas de desarrollo. 18. deberías pensartelo muy mucho antes de ejecutarlo.1. 195 . FreeBSD-STABLE y FreeBSD-CURRENT. ¡Estás advertido— lo último de lo último no es para cualquiera! Este capítulo te ayudará a decidir si quieres seguir el sistema de desarrollo o quedarte en algunas de las versiones publicadas.2. Poul-Henning Kamp. Mientras la mayoría de nosotros compilamos casi a diario el FreeBSD-CURRENT las fuentes. • Cómo reconstruir y reinstalar el sistema base entero con make world. • Saber cómo instalar programas adicionales de terceros. Estos problemas son solucionados tan pronto como es posible. • Cómo mantener tu sistema al día con CVSup. ¿Qué es FreeBSD-CURRENT? FreeBSD-CURRENT es. nada más que una instantánea diaria sobre el trabajo en el código fuente para el FreeBSD.1. Para los que quieran estar en lo último de lo último. Esto incluye trabajo cambiante. Original work by Jordan Hubbard. 18. luego FreeBSD-STABLE. (Capítulo 4). FreeBSD-STABLE Hay dos ramas de desarrollo de FreeBSD. 18.2. ten en cuenta que FreeBSD-CURRENT es el “lo más reciente” del desarrollo y que si tú eres nuevo en FreeBSD. Manteniendo la versión Current. FreeBSD-CURRENT y FreeBSD-STABLE. and parts updated by Jim Mock. deberías: • Disponer correctamente tu conexión de red (Capítulo 16). John Polstra. Sinopsis FreeBSD está en desarrollo continuo entre versiones. y Nik Clayton. pero si las fuentes del FreeBSD-CURRENT son un desastre o una bendición su utilidad puede ser literalmente una cuestión de en que momento del período de 24 horas dado las grabaste.1. 18. Al leer esto.Capítulo 18.2. FreeBSD-CURRENT vs. hay varias formas de sincronizar tu sistema con el último desarrollo fácilmente. Antes de leer este capítulo. CVS. cambios experimentales y mecanismos transitorios que podrían estar o no presentes en la próxima versión del programa.1. literalmente. Lo último de lo último Restructured. Hay períodos de tiempo en que las fuentes son literalmente incompilables. reorganized. o CTM. Esta sección explicará un poco sobre cada una y describirá cómo mantener tu sistema al día entre cada árbol respectivo. FreeBSD-CURRENT será discutida primero.

Miembros del FreeBSD grupo que son activos probadores. te perderás importantes boletines que podrían ser fundamentales para la continuidad de la salud de tu sistema. Para unirte a estas listas.org> .1.2. problamente opten por lo primero. Miembros del grupo FreeBSD que están activamente trabajando en alguna parte del código fuente del árbol y para los que mantenerse “current” es un requisito absoluto. 18. 18.2. Miembros externos FreeBSD o algún grupo que desea mantener un ojo en las cosas y usa las fuentes del "current" por motivos de referencia (reference) (Ej. es simplemente porque no podemos responder 400 mensajes al día y en realidad trabajamos en FreeBSD! Si nos dan a escoger entre mejorar el FreeBSD y responder montones de preguntas. No es sólo una buena idea. ¿Qué No es FreeBSD-CURRENT? 1. 2. Usando FreeBSD-CURRENT 1. Capítulo 18. Un rápido sistema de seguimiento para conseguir pre-distribuciones porque has oido que hay alguna nueva funcionalidad interesante dentro y quieres ser el primero del barrio en tenerla. con el propósito de pasar tiempo trabajando en los problemas para asegurarse de que FreeBSD-CURRENT se mantiene tan cuerdo como sea posible. la mayoría de los desarrolladores y usuarios. 3. Lo último de lo último 18. no ejecutar).org >. ¿Quién necesitaFreeBSD-CURRENT? FreeBSD-CURRENT está disponible generalmente para tres grupos de interés principales: 1.3.1. es esencial.org> y al FreeBSD CVS commit message mailing list <cvs-all@FreeBSD. También hay gente que desea hacer sugerencias típicas en cambios y en la dirección principal del FreeBSD.org> te permitirá ver el apunte en el registro de "commits" por cada cambio que se realice junto con información pertinente sobre posibles efectos secundarios.org> and indicando lo siguiente en el cuerpo del mensaje: subscribe freebsd-current subscribe cvs-all 196 . para leer. La lista de correoFreeBSD CVS commit message mailing list <cvs-all@FreeBSD. Unirse a FreeBSD-CURRENT mailing list <freebsd-current@FreeBSD. no verás los comentarios que la gente hace sobre la situación del sistema current y por esto probablemente terminarás tropezando con un montón de problemas que otros ya han encontrado y solucionado. Si no estás en el FreeBSD-CURRENT mailing list <freebsd-current@FreeBSD. Estas personas también hacen comentarios ocasionales o contribuyen al código. Nosotros nos esforzamos sinceramente en ayudar a la gente en alguna de las tres situaciones. 2.2. 3. Nosotros “habilitamos” FreeBSD-CURRENT pero simplemente no tenemos tiempo para dar asistencia técnica. Un sistema rápido de tener los fallos solucionados. Esto no es porque seamos de alguna forma mala gente que no quiere ayudar a los demás (ni siquiera estaríamos haciendo FreeBSD si lo fueramos).4.1. En ningún caso “asistencia oficial” por nuestra parte. envía un correo a <majordomo@FreeBSD. Casi más importante.2.

Si quieres ayuda para hacer esta configuración. y tratar de compilar sólo una proció casi te garantiza meterte en problemas. Algunos de nuestros servidores FTP también permiten grabar los árboles enteros comprimidos/tarred.bin ftp get lex.org. Graba las fuentes desde ftp.FreeBSD. no sólo algunos trozos. Por eso se usa raramente. entonces graba todo el FreeBSD-CURRENT. ej.0. Puedes hacer esto de varias maneras: a. ¡Participa! Si estas usando FreeBSD-CURRENT.org/pub/FreeBSD/FreeBSD-current/. Usa la aplicació CTM. Este es el método más recomendable. Capítulo 18. Lo último de lo último Opcionalmente. especialmente si tienes sugerencias para mejoras o arreglos de fallos. Leer el FreeBSD-CURRENT mailing list <freebsd-current@FreeBSD. Te recomendamos usar CVSup para cualquiera con un modem de 9600bps modem o una conexión más rapida.FreeBSD. ya que te permite grabar la colección entera una vez y a partir de entonces sólo lo que cambie desde entonces.org> te mantendrá al día en otros procedimientos de arranque que a veces se convierten en necesarios cuando nos acercamos a la siguiente versión. Mira: usr. El código fuente del árbol del FreeBSD-CURRENT está siempre “exportado” en: ftp://ftp. Antes de compilar FreeBSD-CURRENT. Usa ftp. Si tienes muy mala conexión (conexiones caras o sólo acceso para correo electrónico) CTMes una opción. lee con cuidado Makefile en /usr/src Deberías al menos ejecutar un make world la primera vez como parte del proceso de actualización.tar c. teclea: # pkg_add -f ftp://ftp.Mucha gente ejecuta cvsup from cron y mantiene actualizadas sus fuentes automáticamente.org/pub/FreeBSD/ports/packages/All/cvupit-3. La razón es que varias partes de las fuentes dependen de actualizaciones de otros sitios. 3.FreeBSD. 2. Tienes que adaptar la muestra de supfile de arriba y configurar cvsup a tu entorno. queremos saber lo que tienes que decir sobre él.FreeBSD. Sin embargo es muy complicado y puede darte archivos rotos.tgz b. Recibimos tus sugerencias con más entusiasmo si incluyes el código correspondiente! 197 .org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile). Si estás grabando las fuentes para ejecutarlas y no sólo leerlas. lo que incrementa la posibilidad de que no funcione durante largos periodos de tiempo. Usa el programa cvsup con este supfile (ftp://ftp.bin/lex Puedes hacer lo siguiente para conseguir el directorio completo como un archivo tar: ftp cd usr. 4.puedes también ponerhelp y Majordomo te enviará ayuda completa sobre como suscribirse o desuscribirse a las varias listas de correo que asistimos.

2. entonces deberías considerar seguir FreeBSD-STABLE. envía un correo a <majordomo@FreeBSD. Para apuntarse a estas listas. especialmente en lo relativo a la próxima“point” release de FreeBSD. Lo último de lo último 18. Aunque nosotros nos esforzamos para asegurar que la rama FreeBSD-STABLE compila y funciona en cualquier ocasión. Es simplemente otro camino en la ingeniería del desarrollo.1.2.2. Esto te mantendrá informado de las dependencias de construcción que puedan aparecer en FreeBSD-STABLE o cualquier otra cuestión que requiera especial atención. asi que es inevitable que algunos errores se encuentren alguna vez en FreeBSD-STABLE que no eran evidentes en FreeBSD-CURRENT. las fuentes deFreeBSD-STABLE pueden o no ser adecuadas para un propósito determinado. Usando FreeBSD-STABLE 1. aunque. ¿Qué es FreeBSD-STABLE? FreeBSD-STABLE es nuestra rama de desarrollo con la que hacemos las versiones principales. más gente usa FreeBSD-STABLE que FreeBSD-CURRENT.2. Si no tienes los recursos para hacer esto entonces te aconsejamos que ejecutes la más reciente distribución de FreeBSD. y esto significa en cualquier momento. asumiendo que han ido primero a FreeBSD-CURRENT para probarse.org> y especifica lo siguiente en el cuerpo del mensaje: subscribe freebsd-stable subscribe cvs-all 198 . Manteniendo Stable con FreeBSD 18.2.org> te permitirá ver el apunte del commit log para cada cambio tal como se hace junto con la posible información sobre los efectos secundarios.org>. ya que el código es desarrollado en FreeBSD-CURRENT antes de incluirlo en FreeBSD-STABLE. 18. y uses el mecanismo de actualización binaria entre distribución y distribución. Únete a FreeBSD-STABLE mailing list <freebsd-stable@FreeBSD.3. Aunque es verdad que algunos arreglos de seguridad van tambien a la rama FreeBSD-STABLE . Los desarrolladores harán los anuncios en esta lista de correo cuando estén contemplando algun arreglo polémico o actualización. dando a los usuarios la oportunidad de responder si tienen alguna cuestión que plantear respecto al cambio propuesto. no un recurso para usuarios finales. Capítulo 18. 1 seguir una rama de desarrollo sólo por razones de seguridad es seguramente también traer una gran cantidad de cambios no deseados.2. Cada notificación de seguridad de FreeBSD explica como solucionar el problema en la versión que afecta. Los cambios van a esta rama con un ritmo diferente. 18.2. nosotros no recomendamos que sigas ciegamenteme FreeBSD-STABLE. y es especialmente importante que no actualices algun servidor importante a FreeBSD-STABLE sin probar primero el código en tu entorno de desarrollo. ¿Quién necesita FreeBSD-STABLE? Si estás interesado en seguir o en contribuir al proceso de desarrollo de FreeBSD. esto no puede garantizarse. La lista de correo FreeBSD CVS commit message mailing list <cvs-all@FreeBSD. Por estas razones.2.2. tú no necesitas seguir FreeBSD-STABLE para hacerlo. Esta es aun una rama de desarrolllo.

Si no tienes una conexió rápida y barata a Internet.FreeBSD. De otro modo.FreeBSD. Mira: usr. o en todas las areas.bin ftp get lex.org/pub/FreeBSD/development/CVSup/cvsupit. lee el Makefile en /usr/src con cuidado.FreeBSD. Si ya estas usando una versión previa de FreeBSD y quieres actualizar via fuentes entonces puedes hacerlo fácilmente desde ftp.FreeBSD. usa CTM. usa cvsup o ftp. Si estás instalando un nuevo sistema y quieres que sea lo más estable posible. Las fuentes de árbol para el FreeBSD-STABLE están siempre “exported” en: ftp://ftp. Deberías al menos ejecutar un make world la primera vez como parte del proceso de instalaci´n. 18. simplemente teclea: # pkg_add -f ftp://ftp. puedes grabar simplemente la última rama con la instantánea más antigua de ftp://releng4. Antes de compilarFreeBSD-STABLE.tar c. 2. Usa el programa cvsup con this supfile (ftp://ftp.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/stable-supfile). si necesitas acceso rápido bajo demanda a la fuente y el ancho de banda no es una consideración . Este es el sistema recomendado. ya que te permite grabar la colección entera una vez y a partir de entonces sólo lo que cambie. Lo último de lo último Opcionalmente. Sincronizando tu código fuente Hay varias formas de usar una conexión de Internet (o de correo) para estar al día en cualquier area dada de las fuentes del proyecto FreeBSD. 199 . CVSup. Esto puede hacerse de tres maneras: a.tgz b. Usa CTM.org> te mantendrá al día en los otros procedimientos de arranque que alguna vez pueden llegar a ser necesarios cuando nos acercamos a la siguiente versión. Algunos usan cvsup from cron para mantener las fuentes al día autom´ticamente.org/pub/FreeBSD/FreeBSD-stable/ Algunos de nuestros servidores de FTP permiten tambien grabar los árboles completos compressed/tarred. puedes indicar help y Majordomo te enviará ayuda completa sobre como suscribirte y desuscribirte a las otras listas que mantenemos.Leyendo elFreeBSD-STABLE mailing list <freebsd-stable@FreeBSD.org.org/pub/FreeBSD/ and install it like any other release. Básicamente. Capítulo 18. Usa ftp. 4. Para una interface bastante sencilla para esto.FreeBSD. ej.bin/lex Puedes hacer lo siguiente para conseguir el directorio como archivo tar: ftp cd usr.3. 3.este es el método que debería considerar usar. Los servicios primarios que ofrecemos son Anonymous CVS. dependiendo de lo que te interese. y CTM.

sellado con una secuencia de números y codificado para transmitirlo en correo ( sólo en ASCII imprimible). Las actualizaciones que recibes lo están al minuto y tú las consigues cuando.Estos problemas pueden ir desde errores de compilación hasta kernel panics o corrupción de datos. Este proceso es más eficiente que CVSup. todos los programas que se ejecutan en el espacio del usuario. Anonymous CVS and CVSup usa el modelo pull para actualizar las fuentes.. simplemente borrará los malos bits (bad bits) y resincronizarás 18. Actualizar sólo parte del código fuente del arbol. y si borras algún trozo de las fuentes del árbol (y no has hecho una copia de respaldo) entonces tendrás que partir de cero ( desde el más reciente CVS “base delta”) y reconstruirlo todo con CTM o. y este interactua con el servidor cvsupd en algún lugar para traer los archivos actualizados. Haciendo una copia de respaldoNunca se hace suficiente hincapié sobre lo importante que es hacer una copia de respaldo de tu sistema antes de hacer esto. ¡Probablemente no tengas nunca que usarlo.En vez de eso. CTM no hace esto. tales como los que están en /bin y /sbin) y las fuentes del kernel. las quieras. el único procedimiento de actualización que prestamos es actualizar el arbol entero y recompilarlo a la vez junto al espacio del usuario (ej. y pone menos presión en nuestros recursos de servidor ya que es un modelo de empujar en vez de tirar . y los errores ocasionalmente ocurren. Anonymous CVS es bastante mas simple que CVSup que es sólo una extensión de CVS que permite retirar los cambios directamente desde un repositorio (repository) CVS remoto. La gente que contribuye a FreeBSD son humanos. CVSup puede hacer esto mucho más eficientemente. o sólo el area de usuario trae a menudo problemas. pero es mejor asegurarse que lamentarlo! Suscribete a la lista de correo correctaLas ramas FreeBSD-STABLE and FreeBSD-CURRENT son . habrá veces que inevitablemente cometas errores. con anoncvs.4. por supuesto. Hay otros aspectos a tener en cuenta. Capítulo 18. CTM. por naturaleza. Y ten un diskette de reparación a mano. y asi) puedes usar las fuentes del árbol para reconstruir el sistema. CVSup te detectará y reconstruirá las porciones dañadas. Asegúrate de haber hecho una copia de respaldo. Puedes fácilmente restringir tus actualizaciones a los archivos o directorios que te interesen. Aunque reconstruir world es (siempre que sigas estas instrucciones) una tarea fácil de hacer. Las actualizaciones se crean sobre la marcha por el servidor según lo que tienes o quieras tener. sólo el kernel. En caso de CVSup el usuario (o un cron script) invoca el programa cvsup.. por otro lado. y sólo cuando. pero Anonymous CVS es más fácil de usar.rmail(1) que automáticamente decodifica. Una vez recibido. verifica y aplica los cambios a la copia de las fuentes del usuario. no compara las fuentes que tienes interactivamente con las del archivo master o de otro que retires. cualquier cambio detectado. estos“CTM deltas” pueden ser manipulados por la utilidad ctm. Lo último de lo último AvisoAunque es posible actualizar sólo partes del código fuente del arbol. 200 . FreeBSD-CURRENT. un script que identifica los cambios en los archivos se ejecuta varias veces al día en la maquina maestra CTM. en desarrollo . Si descuidadamente barres trozos de tu archivo. Usando make world Una vez que has sincronizado las fuentes de tu árbol local con alguna versión determinada deFreeBSD (FreeBSD-STABLE. o cuando errores hechos por otros en las fuentes del árbol inutilice tu sistema haciendolo inarrancable.

conf se usa cada vez que ejecutas make. como se describió antes.conf.4. Este archivo puede contener importante información sobre problemas que puedes encontrarte. Lee /usr/src/UPDATING Antes de hacer nada mas. Esto causa problemas cuando actualizas. Ha habido ocasiones durante la instalación de “make world” que se ha supuesto la existencia de ciertos nombres de usuario o grupos. /etc/group. Cuando se lleva a cabo una actualizacion es probable que alguno de estos grupos no existan. 18. 18. Lo último de lo último Algunos de estos errores pueden ser poco dañinos. entonces estás buscando problemas. Los dos requisitos son complementarios no exclusivos. UPDATING tiene preferencia. e inutilizar tu sistema inarrancable o destruir tu sistema de archivos ( o algo peor).3. añadelas a /etc/make. NOPORTDOCS y sucesivamente) y decide si son importantes para ti. Actualiza /etc/group Este directorio /etc contiene una gran parte de la información sobre la configuración de tu sistema . 18. Comprueba /etc/make. para> 201 . o indicar el orden en que debes ejecutar ciertas ordenes. un “heads up” es enviado a la lista de correo apropiada.org> respectivamente. Y un “all clear” anuncio es enviado cuando el problema ha sido resuelto. En particular. lee /usr/src/UPDATING (o el archivo equivalente dondequiera que tengas una copia del código fuente).4. explicando la naturaleza del problema y a que sistema afecta. Examina las otras definiciones (COPTFLAGS. Ten en cuenta que cualquier cosa que añadas a /etc/make. Algunos de estos archivos de configuración son usados en el funcionamiento del día a día del sistema.org> o la FreeBSD-CURRENT mailing list <freebsd-current@FreeBSD. Para hacer uso de ellas cuando reconstruyas tu sistema desde las fuentes. Un usario típico querrá probablemente copiar las líneas CFLAGS y NOPROFILE encontradas en /etc/defaults/make.conf y /etc/make.1. El primero contiene algunas definiciones por defecto – la mayoría de las cuales ya se han comentado.conf. Importante: Leer UPDATING no es un sustituto aceptable a la suscripcion a la lista adecuada.conf y ponerles un comentario. Algunos de estos scripts cambian de versión en versión de FreeBSD.asi como scripts que se ejecutan al iniciarse el sistema. Si intentas seguir FreeBSD-STABLE o FreeBSD-CURRENT y no lees la FreeBSD-STABLE mailing list <freebsd-stable@FreeBSD. O el cambio puede ser catastrófico.conf Examina los archivos /etc/defaults/make. Capítulo 18.2. así que es una buena idea colocarles algo sensato para tu sistema.) Si UPDATING contradice algo que leas aqui. que sólo causan que tu sistema imprima una nueva señal de diagnostico. Si un problema como este ocurre.conf a /etc/make.4.

De la misma forma.Si te gustaría hacerlo de esta forma. Los directorios shadow estos bajo /usr/src. simplemente retrasa los siguientes pasos hasta que hayas completado la construcción. 18. deberías renombrar cualquier grupo en /etc/group que tenga la misma GID pero un nombre diferente para aquellas en /usr/src/etc/group. El sistema se reiniciará en modo monousuario. 202 . La solución es examinar /usr/src/etc/group y comparar su lista con la tuya. Quita /usr/obj Mientras algunas partes son reconstruidas ellas se colocan en directorios que (por defecto) estan bajo /usr/obj. bibliotecas incluso archivos y demás.5. Sugerencia: Si te sientes particularmente paranoico. Como superusuario. y en el boot promt. # find / -group GID -print mostrará todos los ficheros que pertenecen al grupo GID (que puede ser o un nombre de grupo o una ID numérica de grupo). Capítulo 18.4. todos los sistemas de archivos UFS referenciados en /etc/fstab y entonces hace los cambios indicados.En el promt de la shell deberías ejecutar: # fsck -p # mount -u / # mount -a -t ufs # swapon -a Esto comprueba los sistemas de archivos. ejecuta # shutdown now desde un sistema en funcionamiento. Lo último de lo último El ejemplo más reciente de esto es cuando el grupo “ppp” (llamado despues “network”) fue añadido. Cambiando a modo Monousuario Puede que quieras compilar el sistema en modo monousuario.4. Cambiar estas cosas en un sistema en funcionamiento (especialmente si en ese momento hay usuarios activos en el sistema) es ganas de meterse en lios. remounts / lectura/escritura. al que cambiará a modo monousuario. Alternativamente. Otro método es compilar el sistema en modo multiusuario y luego cambiar a modo monousuario para la instalación. reinstalar el sistema tocará un montón de archivos importantes del sistema. introduce la -s flag. 18. todos los binarios standard del sistema. reinicia el sistema.Aparte del beneficio obvio de hacer que las cosas vayan más rapido .Si hay algún grupo en el nuevo archivo que no están en tu archivo entonces cópialos encima. A los usarios les falló el proceso de instalación cuando partían del subsistema ppp fueron instaladas usando un nombre de grupo inexistente (para ellas). mounts.4. puedes comprobar tu sistema para ver que archivos pertenecen al grupo que estas renombrando o borrando.

. compile. y luego teclear exit cuando el proceso ha terminado. .Aunque esto puede no ayudarte en el diagnóstico de que ha salido mal.out # make TARGET . Este directorio podria ser vaciado en el proximo arranque. # cd /usr/src (a menos que. # script /var/tmp/mw.6. El formato general de la línea de ordenes que teclearás es como sigue: # make -x -DVARIABLE target En este ejemplo. Si algo sale mal tendrás una copia del mensaje de error. con un parámetro que indique el nombre del archivo donde guardar los datos de salida. Lo último de lo último Puedes acelerar el proceso “make world” y posiblemente ahorrarte dolores de cabeza por las dependencias quitando este directorio también. Recompilar la fuente 18.. no guardes el output en /tmp. Capítulo 18.4. por supuesto..4. tu código fuente este en otra parte..1. Algunos archivos bajo /usr/obj pueden tener colocada la señal inmutable (immutable flag set) (mira chflags(1) para mas información) que deberá ser quitada primero. 18. puede ser útil si mandas tu problema a una de las listas de FreeBSD . -x es una opción que pasarías a make(1).. 203 . Un lugar mejor para almacenarlo es en /var/tmp (como en el ejemplo anterior) o en el directorio home de root. La forma más fácil de hacer esto es usar la orden script(1) . # cd /usr/obj # chflags -R noschg * # rm -rf * 18.out Script started. en ese caso cambia a ese directorio). output file is /var/tmp/mw.2. Si haces esto. que describe como el programa que comprende el FreeBSD debe ser reconstruido. # exit Script done..6. compile .. Guardando la salida (Output) Es una buena idea guardar la salida que obtienes cuando se ejecuta make(1) en otro archivo. compile. Mira la pagina del manual de make(1) para un ejemplo de las opciones que puedes pasar.Podrías hacer esto inmediatamente antes de reconstruir world. Esta orden lee las instrucciones desde el Makefile.. Para reconstruir world utiliza el make(1) command.6. Compilar e instalar el Sistema Base (Base System) Debes estar en /usr/src directory.4.

se creó por primera vez en la FreeBSD-CURRENT branch. Esto es muy útil por dos motivos. Como el nombre implica. y la elección de esos objetivos determina lo que ocurre. y puedes luego ejecutar make installworld para instalar los resultados de la construcción en B y C. permite usar NFS mounts para actualizar multiples m6aacute. La construcción es “self hosted”. buildworld construye un nuevo árbol bajo /usr/obj. Algunos objetivos estan listados en Makefile. B y C deben luego mount NFS /usr/src y /usr/obj desde A.5 de FreeBSD (en realidad.2.Aunque aun es recomendable que ejecutes installworld en modo monousuario.conf. B y C que quieres actualizar. En una típica máquina mono-CPU ejecutarías: # make -j4 buildworld make(1) tendrías mas de 4 procesos ejecutandose en cada momento. te permite construir de forma segura.quinas en tu red. pero no significa que puedas ejecutarlos En vez de eso.2.Primero. El comportamiento de Makefile esta controlado por esas variables.2 y 2.quina funcionado en modo multiusuario sin miedo a efectos indeseados.conf. Lo último de lo último -DVARIABLE pasa una variable a el Makefile. se recomienda firmemente que no lo uses. En segundo lugar. ya que el proceso de compilación es IO bound mas que CPU bound es también útil en máquinas con una sóla CPU. Sin embargo. y luego posteriormente colocado en FreeBSD-STABLE a mitad de camino entre 2. Cada Makefile define un número de diferentes “objetivos”. La evidencia empírica comentada en las listas de correo muestran que esto da el mejor resultado. y corresponde con el NOPROFILE= true # Avoid compiling profiled libraries Las líneas en /etc/make. ejecuta make buildworld y make installworld en A. buildworld y installworld. y esto proporciona otra forma de disponerlas. 204 . Por esto puedes con seguridad ejecutar buildworld en una m6aacute.2. y installworldinstala este árbol en una máquina con la versión current.Estas son las mismas variables como estan colocadas en /etc/make. Si tienes tres máquinas. no necesitas pasar ningun parametro a make(1). target dicen a make(1) que quieres hacer. Aunque el world target aún exista. Capítulo 18. sabiendo que ningún componente del sistema current será afectado. Ejecutar # make buildworld Ahora es posible especificar un opción -j make lo que provocará varios procesos simultaneos.5) el objetivo (target) world se ha dividido en dos. y asi tu orden se parecerá a esto: # make target A partir de la versión 2. La mayoría de las veces. se usan por el proceso de consrucción para romper los pasos necesarios para reconstruir el sistema en un número de sub-pasos. # make -DNOPROFILE=true target es otra forma de indicar que las bibliotecas indicadas no se construyan. A. Esto es lo mas útil en máquinas con multiples CPU.

3. Momento (Timings) Muchos factores influyen en el tiempo de construcción.4. Arranca en Modo Usuario Único Deberías arrancar en modo usuario único para probar como funciona el nuevo kernel.8.9. ejecutar estas ordenes # cd /usr/src # make buildkernel # make installkernel Si estás actualizando a una versión de FreeBSD por debajo de 4. Después de hacer el arranque desde GENERIC y verificar que el sistema funciona puedes luego construir un nuevo kernel basado en el archivo de configuración de tu kernel normal. Esta es una buena prueba de que el nuevo sistema funciona correctamente. Sin embargo. Si estas actualizando de FreeBSD 4. Lo último de lo último Si tienes una máquina multi-CPU y estas usando un kernel configurado SMP prueba valores entre 6 y 10 y mira como se aceleran las cosas.En vez de eso deberías.4. pero generalmente un Pentium 3 500 Mhz con 128 MB de RAM tardara 2 horas en construir el árbol FreeBSD-STABLE . Mientras GENERIC puede no teer todos los dispositivos necesarios para tu sistema.0 usa el procedimiento de construcción standard del kernel. Compilar e instalar un nuevo Kernel Para sacar el máximo provecho de nuestro sistema debemos recompilar el kernel.4. 18. antes de informar de los problemas. El modo más simple y seguro de hacer esto es construir e instalar un kernel basado en GENERIC.6. Esto es prácticamente una necesidad.4.4.7. se recomienda que uses una nueva versión de config(8). Un árbol FreeBSD-CURRENT tardará algo mas. sin trucos o cortes durante el proceso. usando una línea de ordenes como esta. debe tener todo lo necesario para arrancar tu sistema de nuevo en modo monousuario.Haz esto siguiendo las instrucciones en Sección 18.4. 205 . ya que ciertas estructuras de memoria podrían haber cambiado y ciertos programas como ps(1) y top(1) fallarán hasta que el kernel y la versiones del código fuente sean la misma. 18. 18. # /usr/obj/usr/src/usr.0 a superior entonces el procedimiento standard de construcción de kernel (descrito Capítulo 8) es desaconsejable. Estas advertido de que esto es aún experimental y que hacer commits al código fuente del árbol puede ocasionalmente romper esta posibilidad. Instalar los Nuevos Binarios del Sistema Si estuvieses construyendo una version de FreeBSD suficientemente reciente como para haber usado make buildworld entonces deberías usar ahora el installworldpara instalar el nuevo sistema de binarios. Capítulo 18.sbin/config/config KERNELNAME 18. Si world falla al compilar usando este parámetro intentalo de nuevo sin él.

Así que copia tu existente /etc en lugar seguro. aunque es posible hacerlo manualmente si lo prefieres. Si deseas hacer la actualización manualmente no basta con que copies los archivos de /usr/src/etc a /etc y que funcione. Capítulo 18. El medio más sencillo de hacer esto a mano es instalar los archivos en un nuevo directorio y luego trabajar con ellos buscando las diferencias. /etc. si ejecutaste: # make -DNOPROFILE=true buildworld debes instalar los resultados con: # make -DNOPROFILE=true installworld de otro modo. instalaría bibliotecas seleccionadas que no habían sido construidas durante la fase make buildworld . Esto no es necesariamente cierto para otras opciones. puesto que mergemaster(8) es muy simple de usar. Actualización de archivos no actualizados por make world Rehacer el world no actualizará ciertos directorios (en particular.old -R hace una copia recursiva . Nosotros te recomendamos fervientemente usar mergemaster(8). si lo haces entonces puedes saltar a la siguiente sección . Esto es porque el directorio/usr/src/etc no es una copia de lo que tu directorio /etc debería parecer. y hacer una copia de respaldo de /etc por si algo va mal. Haz una copia de tu existente /etcAunque en teoría nada va a tocar este directorio automáticamente. -p almacena los tiempos. El medio más simple para actualizar estos archivos es usar mergemaster(8). # mkdir /var/tmp/root # cd /usr/src/etc 206 . /var/tmp/root es una elección razonable. Algunos de estos archivos deben ser “instalados” primero. aunque. Deberías leer la página del manual primero. /var y /usr) con los archivos de configuración nuevos o cambiados. Necesitas construir el grupo de directorios que hagan el papel de / para instalar el nuevo /etc y otros archivos dentro. y también se requiere un número de subdirectorios debajo de este. es mejor estar seguros. -j nunca debe ser usada con installworld. Lo último de lo último Ejecuta # make installworld Nota: Si especificaste variables en la línea de orden make buildworld deberías poner las mismas variables en la línea de orden de make installworld . propiedad de los archivos y cosas así.4. Algo como: # cp -Rp /etc /etc. Además. Por ejemplo. hay archivos que deberían estar en /etc que no están en /usr/src/etc. . 18.10. por ejemplo.

) /var/tmp/root ahora contiene todos los archivos que deberían estar colocados en lugares adecuados bajo /. En el momento de escribir esta documentación los únicos archivos como estos son los archivos de inicio de la shell en /var/tmp/root/ y /var/tmp/root/root/. Capítulo 18. Tu puedes ahora ver las diferencias que se han hecho en esa semana intermedia usando diff(1) puedes usar diff para buscar recursivamente las diferencias entre los dos directorios. Si estuvieses haciendo esto el 14 de Febrero de 1998 harías lo siguiente. Una forma muy f6aacute. 3. Añade los cambios del directorio según lo explicado arriba. Úsalos para decidir si fusionas con los cambios que hayas hecho o si lo copias encima de tu viejo archivo. sigue el paso 1. 207 . Nombra el Nuevo Directorio de Root (/var/tmp/root) con un Sello temporal (time stamp). # cd /var/tmp # diff -r root-19980214 root-19980221 Típicamente.Asegurate de usar ls -a para capturarlos. Cuando quieras actualizar /etcy los otros directorios. El siguiente metodo te da una idea de como hacer esto. que podría llamarse /var/tmp/root-19980221 (si esperas una semana entre las actualizaciones).cil de hacerlo es: # cd /var/tmp/root # find -d . No quites el directorio /var/tmp/root-19980214 cuando hayas acabado. Ahora tienes que ir a cada archivo y determinar cuánto difieren de tus archivos exiting. Cuando hayas descargado la ultima versión de las fuentes y las hayas rehecho. Como las diferencias son menores. de esta forma puedes comparar fácilmente las diferencias entre versiones: Reconstruir frecuentemente el world significa que actualizas /etc tambien frecuentemente. 1. El sistema más fácil para hacerlo es usar diff(1) para comparar los dos ficheros. -type d | xargs rmdir 2 /dev/null  Así quitamos todos los directorios vacios. 4. Lo último de lo último # make DESTDIR=/var/tmp/root distrib-dirs distribution Esto construirá la necesaria estructura de directorio e intalará los archivos. aunque podría haber otros (dependiendo de cuando leas esto. Puedes acelerar este proceso manteniendo una copia del último grupo de archivos cambiados que hayas fusionado en /etc. lo que puede ser un poco pesado. dále al directorio de destino un nombre basado en la fecha actual.Un montón de directorios que habrán sido creados bajo /var/tmp/root estan vacios y deberan ser borrados. # mkdir /var/tmp/root-19980214 # cd /usr/src/etc # make DESTDIR=/var/tmp/root-19980214 \ distrib-dirs distribution 2. este conjunto de diferencias serán más pequeñas que las que hay entre /var/tmp/root-19980221/etc y /etc.”.Esto te dará un nuevo directorio. Make the world como normal. (El error standard es redirigido a /dev/null para prevenir las advertencias sobre directorios que no están vacios. es más fácil enviar esos cambios hasta tu directorio /etc . Date centa que algunos de los archivos que se habrán instalado en /var/tmp/root tienen un leading “. # diff /etc/shells /var/tmp/root/etc/shells Esto te mostrará las diferencias entre tu archivo /etc/shellsy el nuevo archivo /etc/shells .

En la mayoría de los casos. # diff /var/tmp/dev.out 3. pero es mejor estar seguro que lamentarlo. entonces tu script MAKEDEV debería haberse actualizado ya. # mkdir /var/tmp/root-‘date "+%Y%m%d"‘ 18.4. 208 .out /var/tmp/dev2. Ahora puedes quitar el más viejo de los dos directorios /var/tmp/root-*. 2. $6. Esta instantánea necesita contener los permisos. # rm -rf /var/tmp/root-19980214 6. Estas instrucciones te dirán como hacerlo manualmente. pero no debería contener un sello temporal (time stamp) La forma más fácil de hacerlo es usar awk(1) para sacar alguna información.out Podrás detectar más fácilmente discrepancias en las cuotas del disco que tienen que ver con mandatos tales como # sh MAKEDEV sd0s1 Para recrear las entradas a las cuotas. Capítulo 18. cuenta cuando es necesario actualizar dispositivos y se ofrecerá a hacerlo automáticamente. Ahora mira entre esos dos archivos por si se te olvido crear algun dispositivo. Repite el proceso cada vez que necesites añadir un cambio a /etc. este es un proceso con varios pasos. Copia otra instantánea del directorio . # cd /dev # ls -l | awk ’{print $1. Tus circunstancias especificas pueden variar. $NF}’ > /var/tmp/dev. $4. Rehacer todos los dispositivos. Actualiza /dev DEVFS: Si estás usando DEVFS esto no sería necesario. No debería haber ninguno.out. números mayores y menores de cada archivo. esta vez en /var/tmp/dev2. Puedes usar date(1) para automatizar la generación de los nombres de directorio. # cp /var/tmp/root/dev/MAKEDEV /dev Si usaste mergemaster(8) para actualizar /etc. Lo último de lo último 5. # sh MAKEDEV all 4. $3. propiedades. la herramienta mergemaster(8) se dar6aacute. Por motivos de seguridad. Copia /var/tmp/root/dev/MAKEDEV en /dev. $5. Ahora. $2.11. toma una instantánea de tu actual /dev. 1. aunque no hace daño si lo compruebas (con diff(1))y lo copias manualmente si fuese necesario.

y mostró las siguientes líneas mientras se actualizaba . Lo último de lo último 18. la orden (command) file(1) dejara de funcionar. src/games/cribbage/instr. si accidentalmente borraste /etc/magic como parte de la actualización o al añadir algo a /etc. y ya esta. ¿Es necesario rehacer world en cada cambio? No hay una respuesta fácil para esto.c src/share/mk/bsd.c src/games/sail/pl_main. Un simplefastboot(8) lo hará. es facil reconstruir una parte del sistema.4. Por ejemplo. # fastboot 18.13. Finalizado Deberías tener ahora tu sistema operativo actualizado con exito. si sólo ejecutaste CVSup.port. Este binario debería estar enlazado estáticamente. para que pueda funcionar cuando ningún otro sistema de archivos (y en particular /usr)haya sido montado.4. # cd /usr/src/release/sysinstall # make all install 18. Puedes ir a los subdirectorios apropiados y make all install. Felicidades.12.mk Probablemente no merezca la pena reconstruir world entero. Para terminar completamente . Estos archivos consisten en enlaces sostenidos (hard links) a el binario /stand/sysinstall.14. el arreglo sería ejecutar: # cd /usr/src/usr.c src/release/sysinstall/config.bin/file # make all install 18. Reinicio Ya esta hecho. Despues de que hayas verificado que todo parece estar en el lugar adecuado puedes reiniciar el sistema.4.4. En ese caso. depende de la naturaleza del cambio.15. Capítulo 18. Preguntas 1.c src/release/sysinstall/media. Actualiza /stand Nota: Este paso se incluye para completar. podrías querer actualizar los archivos en /stand tan bien. Por ejemplo. por ejemplo src/lib/libc/stdlib entonces deberías o rehacer 209 . Si las cosas fueron ligeramente mal. Pero si el cambio fue mayor. Puede omitirse sin miedo.

¿Cuando compilo falla con montones de señales de error 11 (u otro número de señal). La parte molesta de esto es que pueden provocarse problemas de dependencias. que frecuentemente desencadena problemas de memoria. ¿Puede continuarse una construcción interrumpida? Esto depende de como de lejos llegaste hasta encontar el problema. O quizá quieras hacerlo sólo a aquellas que hayan cambiado. En este caso.Las nuevas herramientas y bibliotecas son usadas para reconstruirse a si mismas. sin darse cuenta de que es porque ha intentado acortar demasiado. uno de los primeros pasos en el proceso “make world” es quitar este directorio y hacer uno nuevo. Si estas al final del proceso. cuando una persona se queja de que su construcción ha fallado. ¿Puedo quitar /usr/obj cuando he terminado? La respuesta corta es si. Aunque.Esto se manifiesta cuando el compilador agoniza recibiendo señales extrañas. /usr/obj contiene todos los archivos binarios (object files) que se produjeron durante la fase de compilación. mantener /usr/obj después de haber terminado no tiene mucho sentido. 3. si sabes lo que haces puedes hacer que “make world” se salte este paso. Al ejecutar make world ((Re)making world) se produce una sobrecarga del ordenador. Lo último de lo último world. Es cuestión de que elijas. como esto: # make -DNOCLEAN world 4. haciendo que la construcción falle de forma rara.El sistema entero (incluyendo ahora programas normales como ls(1) or grep(1))es entonces reconstruido con el nuevo sistema de archivos. y lo sabes (porque has mirado los resultados que estuviste guardando) entonces puedes (bastante seguramente) hacer 210 . y dejar que los cambios se acumulen hasta ese día. pasando la definición NOCLEAN . y son instaladas de nuevo. 2. En general (y esto no es una regla fija) El proceso “make world” construye nuevas copias de herramientas esenciales (como gcc(1). es si puedes repetir el make y muere en un punto diferente del proceso. ¿Qué ha ocurrido? Esto normalmente es una indicación de problemas de máquina. Si quieres vivir peligrosamente entonces haz make world. Esto hará que la consiguiente construcción vaya más rápido. Un indicador seguro de esto. Y. y tengas confianza en haber comprobado todas las dependencias. por supuesto.Normalmente. Podrías estar contento ejecutando make world digamos cada quincena . Estas herramientas y bibliotecas estan entonces instaladas. todo esto depende de cada cuánto tiempo actualices y si estas usando la versión stable o current. o al menos aquellas de sus partes que estan estáticamente unidas (asi como cualquier otra cosa que hayas añadido y que esté unida estáticamente). Esto genera alboroto en las listas de correo. Capítulo 18. y liberarás un buen montón de espacio de disco (alrededor de 340MB). ya que la mayor parte de las fuentes no necesitarán recompilarse. y make(1)) y el sistema de bibliotecas. En este cambio hay poco que puedas hacer excepto comenzar a probar los compenentes de tu máquina para saber cual es el que falla.

“-pipe” permite que el compilador utilice tuberias (pipes) antes que archivos temporales lo que ahorra accesos al disco (a expensas de memoria). -------------------------------------------------------------- en la salida “make world” entonces es probablemente bastante seguro hacer eso. Si es posible. La optimización “-O2” es mucho más lenta y la diferencia de optimización entre “-O” y “-O2” es normalmente poco importante. •  Pon la opción -j n para hacer que se ejecuten multiples procesos en paralelo. En otras palabras. y el dato es 211 . Probablemente no te haga falta esta información para nada.conf. • Pon /usr/src y /usr/obj en sistemas de archivos diferentes en discos separados.. Si tu no ves ese mensaje. pon esos sistemas de archivos a través de multiples discos usando ccd(4) • Desactiva el perfil (coloca “NOPROFILE=true” en /etc/make. coloca CFLAGS a algo como “-O -pipe”. fix the problem . • El sistema de archivos que contiene/usr/obj puede montarse (o volverse a montar) con la opción “async”.. 5. Esto hace que el disco escriba de modo asíncrono. entonces es siempre mejor estar seguro que lamentarse. 6.Si no está (Por ejemplo. y no /usr/src. y puede ahorrar horas de compilacion en muchas máquinas. ¿Puedo usar una máquina comomaster para actualizar montones de maquinas (NFS)? Esto es una tarea bastante sencilla. el grabar se completa inmediatamente. Casi seguro que no lo necesitas. y entonces NFS monta /usr/src y /usr/obj en la máquina remota y installworld alli. Lo último de lo último . • El sistema de archivos que contiene /usr/src puede ser montado ( o vuelto a montar) con la opción noatime . y comenzar otra vez desde el principio. Capítulo 18..Simplemente ejecuta buildworld en una máquina central. Esto evita al sistema de archivos el grabar la hora de acceso al archivo. • Aún mejor. # mount -u -o noatime /usr/src AvisoEste ejemplo supone que /usr/src esta en su propio sistema de archivo.conf). o no estas seguro. si es parte de /usr ) Entonces necesitarás el punto de montaje de ese sistema de archivos. pon esos discos en controladoras de discos separadas.. # cd /usr/src # make -DNOCLEAN all Esto no deshará el trabajo de los previos “make world”.Esto ayuda se tenga un procesador o varios.. ¿Cómo acelero making the world? • Ejecuta en modo monousuario. Si ves el mensaje -------------------------------------------------------------- Building everything. • También en /etc/make.

Si /usr/obj es lo único en este sistema de archivos entonces no hay problema. envía el error y la salida de uname -aa FreeBSD general questions mailing list <freebsd-questions@FreeBSD. por favor mira http://www... empezando con make buildworld. ¡Prepárate para contestar preguntas sobre tu setup Notas 1.Esto hace que las grabaciones se agrupen juntas y puede ser una gran aceleración del funcionamiento.Con esta opción hay un incremento de posibilidades. Esto no es del todo cierto. Si aún tienes problemas. Lo último de lo último escrito en el disco unos pocos segundos después. de que el sistemas de archivos sea irrecuperable cuando la m6aacute. Entonces comienza el proceso de nuevo./. make cleandir realmente debería ejecutarse dos veces. AvisoTen en cuenta que esta opción hace el sistema de archivos más fragil.quina se reinicie.FreeBSD.Si tienes otros datos valiosos entonces asegúrate de tener copias recientes antes de habilitar esta opción. # mount -u -o async /usr/obj AvisoComo arriba. # chflags -R noschg /usr/obj/usr #rm -rf /usr/obj/usr #cd /usr/src # make cleandir #make cleandir Sí . No podemos continuar prestando asistencia para las viejas versiones de FreeBSD nunca más. aunque lo hayamos hecho durante años./../security/index. si la corriente falla. ¿Queé hago si algo sale mal? Asegurate de que tu entorno no tiene extrañas cruft de construcciones anteriores. Capítulo 18. reemplazalo en el ejemplo con el nombre del apropiado punto de montaje.html) 212 .org/security (.org>. si/usr/objno está en su propio sistema de archivos. Para conocer la política de seguridad de las viejas versiones de FreeBSD.Esto es suficiente. 7../.

Emulacion Linux Emulacion Linux 213 .Capítulo 19.

Apéndices .III.

Servidores FTP 215 .1. Obteniendo FreeBSD Obteniendo FreeBSD 20.Capítulo 20.

uk/FreeBSD/install-manual.edu.csie. Inc. Debido a esto.html) (en japonés).nctu. publicado por SHUWA System Co.Capítulo 21. • FreeBSD mit Methode (en alemán). Libros y revistas específicas sobre FreeBSD Libros y revistas internacionales: • Usando FreeBSD (http://freebsd.co. ISBN 1-56592-075-9 • Computer Systems Research Group.html) (en Chino).. UC Berkeley.co. Guías de usuario • Computer Systems Research Group. 21.jp/pb/book1/shinkan/detail/1322785.ascii.co.com/).ascii. son notorias por no ilustrar como poner todas las piezas juntas para hacer que todo el sistema operativo funcione fácilmente. 1994. • FreeBSD (en japonés).2. 1994. ISBN 4-88135-473-6 P3600E. O’Reilly & Associates. publicado por Computer und Literatur Verlag/Vertrieb Hanser. UC Berkeley.4BSD User’s Supplementary Documents. ISBN 1-56592-076-7 • UNIX in a Nutshell. O’Reilly & Associates.jp/).ascii.cdrom.shoeisha.pc. • FreeBSD for PC 98’ers (en japonés).jp/).tw/~jdli/book.. Libros y revistas en inglés: • The Complete FreeBSD (http://www.htm) (en japonés).cdrom. ISBN 4-87966-468-5 C3055 P2900E. Ltd (http://www. 1990. ISBN 4-7561-1580-2 P3800E. publicado por ASCII (http://www.co. • Introducción completa a FreeBSD (http://www. publicado por Mainichi Communications Inc.1. LTD.phtml).4BSD User’s Reference Manual.jp/). publicado por CUTT.co. Bibliografía Mientras que las páginas del manual proveen la referencia definitiva para partes individuales del sistema operativo FreeBSD. publicado por Walnut Creek CDROM (http://www. • Manual de instalación y utilización de FreeBSD (http://www. (http://www. publicado por Shoeisha Co.pc.com/titles/freebsd/bsdcomp_bkx.co. 4.mycom. • Kit personal del principiante UNIX FreeBSD (http://www.jp/). ISBN 4-7561-1733-3 P3000E.. 1998. publicado por ASCII (http://www. no hay substituto para un buen libro de administración de sistemas UNIX y un buen manual del usuario. ISBN 3-932311-31-0. ISBN 093717520X 216 .. Inc. 21. ISBN 4-906391-22-2 C3055 P2400E. 4.shoeisha. • Manual FreeBSD (traducción del japonés). Inc.html) (en japonés). O’Reilly & Associates.co.mycom.jp/pc/index/shinkan/97_05_06.

Inc. Prentice Hall.jp/). Bibliografía • Mui.pc. Hal Managing NFS and NIS O’Reilly & Associates. O’Reilly & Associates. UC Berkeley.mycom. (http://www.. The Standard C Library. C: A Reference Manual.jp. and Steele.org/).jp/). ISBN 0-937175-82-X • Nemeth. J. ISBN 1-56592-104-6 • La Ohio State University (http://www-wks. The C Programming Language. FreeBSD User’s Reference Manual (http://www.. 1988.. 1997. Inc. (http://www.4. P. Capítulo 21.4BSD Programmer’s Supplementary Documents. 2nd Ed.co. O’Reilly & Associates. Sendmail. Inc. O’Reilly & Associates. Digital Press. O’Reilly & Associates. 2nd Ed.ohio-state. ISBN 1-55558-051-3 • Computer Systems Research Group. ISBN 1-56592-080-5 • Costales.html) (traducción japonesa). Mainichi Communications Inc. Guías de programadores • Asente. 4rd ed. ISBN 0-937175-75-7 • Jpman Project. O’Reilly & Associates.html) (traducción japonesa). Inc.org/). • Jpman Project. Linda.pc. Inc.pc. ISBN 1-56592-236-0 • Computer Systems Research Group. ISBN 1-56592-078-3 • Computer Systems Research Group.. UC Berkeley. FreeBSD System Administrator’s Manual (http://www. X Window System Toolkit.3. 4. Japan FreeBSD Users Group (http://www. 2nd Ed. Prentice Hall. 1997. Inc.. Guy L. Inc. ISBN4-8399-0088-4 P3800E.4BSD Programmer’s Reference Manual. et al.html) disponible en línea en formato HTML y postscript. Essential System Administration. 4.pc. 4.co. Cricket. DNS and BIND. 21.edu/unix_course/unix. Brian. Æleen. Guías de administrador • Albitz. 1994. Paul and Liu. 1995.ohio-state.mycom. ISBN 0131510517 • Stern. Mainichi Communications Inc.4BSD System Manager’s Manual. Paul. ISBN 1-56592-222-0 • Frisch. 1992.edu/) ha escrito un Curso de introducción a UNIX (http://www-wks. PTR Prentice Hall. ISBN4-8399-0109-0 P3300E. Inc. Jr... Evi.acs.FreeBSD. Greg. Inc. O’Reilly & Associates. 21. 1998.co. What You Need To Know When You Can’t Find Your UNIX System Administrator. TCP/IP Network Administration. O’Reilly & Associates. Japan FreeBSD Users Group (http://www. Ritchie. Porting UNIX Software. 1998.FreeBSD. ISBN 1-56592-127-5 • Hunt.mycom. ISBN 1-56592-079-1 • Harbison. ISBN 0-13-110362-9 • Lehey. Brian and Dennis M. 1994. 1995. ISBN 0-13-326224-3 • Kernighan.. O’Reilly & Associates. Inc.. 1991.jp.. 1995. UNIX System Administration Handbook. ISBN 1-56592-126-7 • Plauger.jp/FreeBSD/urm. ISBN 0-13-131509-9 217 . Craig. UC Berkeley. 1995.mycom.co. Samuel P. 1995.acs. O’Reilly & Associates.jp/FreeBSD/sam. 2nd Ed.. 1992. 1994. Prentice Hall.

pp68-71. Capítulo 21. Reading. : Addison-Wesley. ISBN 0-201-63354-X 21. O’Reilly & Associates. 1991. Reading. Richard Stevens. Michael J Karels and John Quarterman The Design and Implementation of the 4. 97-99. Referencia de seguridad • Cheswick. • Leffler. Unix Systems for Modern Architectures. and Steven M. Mass. 1996. TCP/IP Illustrated. : Addison-Wesley. W. TCP/IP Illustrated. Dr. PTR Prentice Hall. ISBN 0-201-54629-9 • McKusick. Mass. ISBN 0-13-490012-X • Wells. Bellovin. 2nd Ed. Gary R.. January 1991-July 1992. Mass. Inc. Reading. Practical UNIX Security.3BSD UNIX Operating System. Volume 1: The Protocols. : Addison-Wesley.. ISBN 0-201-54979-4 • Stevens. Marshall Kirk McKusick. : Addison-Wesley. : Addison-Wesley. Prentice Hall. NNTP and the UNIX Domain Protocols.. Dobb’s Journal. ISBN 0-201-63338-8 • Stevens. 1992 ISBN 0-201-56317-7 • Stevens. ISBN 0-13-101908-2 • Wright. ISBN 1-56592-148-8 • Garfinkel. 1996. Reading. Reading. Reading. Samuel J. UNIX System Architecture. 1990. : Addison-Wesley. “Writing Serial Drivers for UNIX”. : Addison-Wesley. 1998. Mass. William. 2nd Ed. Firewalls and Internet Security: Repelling the Wily Hacker. Samuel J. Simson. ISBN 0-201-06196-1 • Leffler. Simson and Gene Spafford. : Addison-Wesley. Prabhat K.The New Frontiers. W. : Addison-Wesley. Richard. 1995.3BSD UNIX Operating System: Answer Book. 1995. ISBN 0-201-63357-4 • Garfinkel. Prentice-Hall. Marshall Kirk McKusick. UNIX Network Programming. W. Dr. Bill. and W. Mass. HTTP. 1996. Volume 2: The Implementation.. Mass. 1996. 21. Dobb’s Journal. and John Quarterman. Bibliografía • Stevens. UNIX Internals -.6. Uresh. 1994. Mass. Reading. Mass.. “Porting UNIX to the 386”. ISBN 0-201-63495-3 • Vahalia. W. ISBN 0-13-949843-5 • Jolitz. Keith Bostic. 1996. December 1994.5. Michael J Karels. Richard. Inc. Reading. PGP Pretty Good Privacy O’Reilly & Associates. 1989. Advanced Programming in the UNIX Environment. Mass. Volume 3: TCP for Transactions. 1995. Curt. William R. TCP/IP Illustrated. Inc. ISBN 1-56592-098-8 218 . The Design and Implementation of the 4. Richard. Reading. Marshall Kirk. The Design and Implementation of the 4. El sistema operativo por dentro • Andleigh. 19(15). ISBN 0-201-63346-9 • Schimmel.4BSD Operating System. Richard.

4BSD y 4. 1995. Reading.FreeBSD.FreeBSD. ftp://ftp. Sandy Ressler Life with UNIX — special edition. 1994. Inc. 1995.7. ISBN 0-201-40994-1 • Shanley. http://www. 3rd ed.. The Undocumented PC.com/csrg/: El paquete de 4 CDs cubre todas las versiones de BSD desde la 1BSD hasta la 4. Reading. Co. 1994. Reading. Prentice-Hall. Eric S. ISBN 0-262-68092-0. Programmer’s Guide to the EGA. http://www. Capítulo 21. 80486 System Architecture. The New Hacker’s Dictionary. : Addison-Wesley. normalmente en archivos con formato PDF. desafortunadamente). ISBN 0-201-62277-7 21.11BSD. ISA System Architecture. Bibliografía 21. Steven Strassmann.intel. ISBN 0-201-62490-7 • La corporación Intel publica documentación sobre sus CPUs.org/de/ftp/releases/ • Networked Computer Science Technical Reports Library. chipsets y estándares en su web para desarrolladores (http://developer. Tom. : Addison-Wesley. : Addison-Wesley. 1994. 1997.org/ • Antiguas releases BSD procedentes del Computer Systems Research Group (CSRG). 1995. Don and Tom Shanley. Mass. VGA. Reading. MIT Press. Reading.org/jargon/jargon..ccil. ITP Media Group. Peter H. Inc. Referencia de hardware • Anderson. ISBN 1-56884-203-1 • Don Libes. Also known as the Jargon File (http://www. Mass. • The BSD Release Announcements collection. http://www. 219 . 1996. Richard F. Frank. 3rd ed. 1996. 1995.de.mckusick. Tom.html) • Salus. Mass. Mass. Addison-Wesley Publishing Company. 3rd edition. 3rd ed. ISBN 0-201-40992-5 • Ferraro. : Addison-Wesley. A quarter century of UNIX.4BSD-Lite2 (pero no la 2. 2nd Ed. Inc. ISBN 0-201-40996-8 • Shanley.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree o local (file:/usr/share/misc/bsd-family-tree) on a FreeBSD-current machine. Pentium Processor System Architecture. Reading. IDG Books Worldwide. ISBN 0-201-40993-3 • Van Gilluwe. 3rd ed.com/). 1989. 1995. Mass: Addison-Wesley Pub. ISBN 0-13-536657-7 • The BSD family tree. 6th Ed. Historia de UNIX • Lion. Daniel Weise.. El último disco contiene el código fuente final y los archivos SCCS. 1997. • Shanley. With Source Code. ISBN 1573980137 • Raymond. John Lion’s Commentary on UNIX. : Addison-Wesley. and Super VGA Cards. ISBN 0-201-54777-5 • Simon Garfinkel.8. Tom.. The UNIX-HATERS Handbook. Mass. PCI System Architecture.ncstrl.

Capítulo 21.9. ISSN 1075-2838 • Sys Admin — The Journal for UNIX System Administrators Miller Freeman. R&D Publications Inc. Bibliografía 21. ISSN 1061-2688 220 .. Diarios y revistas • The C/C++ Users Journal. Inc.

org>para que pueda ser incluída./.. siendo el correo electrónico y USENET la manera más efectiva de contactar con esa comunidad. llegar a los desarrolladores y a una audiencia específica. Las normas de las diversas listas están al principio de éste documento.unix.1. A. Enviando sus dudas a la lista de correo apropiada cumplirá dos objetivos. El archivo ofrece la posibilidad de usar palabras clave. Las formas de contacto con la comunidad de usuarios de FreeBSD están detalladas a continuación.. Índice de Listas Listas Generales:Las siguientes son listas generales de suscripción libre (y muy recomendable): Lista Propósito cvs-all Cambios realizados en el árbol de código de FreeBSD freebsd-advocacy Proselitismo de FreeBSD freebsd-announce Sucesos importantes e hitos del proyecto freebsd-arch Debates de arquitectura y diseños freebsd-bugs Informes de errores freebsd-chat Temas no técnicos relacionados con la comunidad FreeBSD. manera de estar informados de los últimos avances. Los recursos electrónicos son la mejor. lo que le asegurará la mejor (o al menos la más rápida) respuesta. A.*.. Dado que FreeBSD es sacado adelante mediante el trabajo de voluntarios la propia comunidad de usuarios suele ejercer las funciones de lo que sería un “departamento de soporte técnico”. y con frecuencia la única. Listas de Correo Aunque la práctica totalidad de los desarrolladores de FreeBSD léen USENET no podemos garantizar de modo rotundo que recibiremos sus dudas rápidamente (o siquiera que las recibamos) si usted las envía a uno de los grupos de comp. Por favor..html). freebsd-config Desarrollo de herramientas de instalación y configuración de FreeBSD freebsd-current Debates acerca del uso de FreeBSD-current 221 . lo que lo convierte en una excelente manera de buscar respuestas a preguntas frecuentes y debería ser consultado antes de enviar ninguna duda. Todas las listas de correo son archivadas y se pueden hacer búsquedas en ellas desde el servidor WWW de FreeBSD usando éste enlace (. Recursos en Internet La velocidad del desarrollo de FreeBSD hace imposible el uso de medios impresos como forma de seguir los últimos desarrollos.1. Muchos suscriptores de nuestras listas reciben varios cientos de mensajes relacionados con FreeBSD cada día y estableciendo las normas de uso de las listas intentamos mantener alto el interés de los mensajes que en ella circulan./.freebsd./search/index.bsd. léa las normas antes de suscribirse o enviar correo a ninguna lista.Apéndice A. Si usted sabe de algún otro medio que no figure aquí envíelo por favor a FreeBSD documentation project mailing list <freebsd-doc@FreeBSD./. Bajarlo haría fallar a las listas de correo como un medio de comunicación efectivo para el proyecto.1.

Recursos en Internet Lista Propósito freebsd-isp Consultas de Proveedores de Servicios de Internet que usan FreeBSD freebsd-jobs Oportunidades de trabajo y consultoría bajo FreeBSD freebsd-newbies Actividades y discusiones de nuevos usuarios de FreeBSD freebsd-policy Decisiones estratégicas del Core Team de FreeBSD. dado que hay normas estrictas en cuanto a su uso y contenidos. Apéndice A. Debería leer cuidadosamente las normas de cada lista antes de suscribirse o enviar correos. Bajo volumen y sólo lectura freebsd-questions Preguntas de usuarios y soporte técnico freebsd-stable Debates acerca del uso de FreeBSD-stable freebsd-test Un sitio al que mandar sus mensajes de prueba en lugar de a una de las demás listas Listas Técnicas: Las siguientes listas son para debates técnicos. Lista Propósito freebsd-afs Porte de AFS a FreeBSD freebsd-alpha Porte FreeBSD a Alpha freebsd-arm Porte de FreeBSD para procesadores ARM freebsd-atm Uso de redes ATM con FreeBSD freebsd-audit Proyecto de auditoría del código fuente freebsd-binup Diseño y desarrollo del sistema de actualización binaria freebsd-cluster Uso de FreeBSD en entornos cluster freebsd-database Debates sobre uso de bases de datos y su desarrollo bajo FreeBSD freebsd-doc Creación de documentación sobre FreeBSD freebsd-emulation Emulación de otros sistemas como Linux/DOS/Windows freebsd-firewire Debates técnicos sobre Firewire (iLink. IEEE 1394) freebsd-fs Sistemas de ficheros freebsd-hackers Debates técnicos generales freebsd-hardware Debates generales sobre harware y su uso en FreeBSD freebsd-i18n Internacionalización de FreeBSD freebsd-ia64 Porte de FreeBSD a los próximos sistemas IA64 de Intel freebsd-ipfw Debates técnicos sobre el rediseño del código del cortafuegos IP freebsd-isdn Desarrolladores de RDSI freebsd-java Desarrolladores de Java y personas portando los JDK a FreeBSD freebsd-libh La segunda generación del sistema de instalación y paquetes freebsd-mobile Debates sobre equipos portátiles freebsd-mozilla Porte de mozilla a FreeBSD 222 .

/index. Es una buena idea tener una presencia estable en las listas técnicas antes de suscribirse a alguna de las limitadas../. de modo que se pueda entender la etiqueta de la comunicación que en ellas se usa..org (./. Las listas accesibles como compendio son: Lista freebsd-afs-digest freebsd-alpha-digest freebsd-chat-digest freebsd-current-digest freebsd-cvs-all-digest 223 ..html) Listas Compendio:La mayoría de las listas citadas son accesibles como compendio.. Los nuevos mensajes enviados a la lista son guardados y enviados como un único correo cuando el archivo llega a un tamaño cercano a los 100 Kb. generalmente al salir una nueva release freebsd-realtime Desarrollo de extensiones en tiempo real en FreeBSD freebsd-scsi El subsistema SCSI freebsd-security Temas de seguridad freebsd-security-notifications Avisos de seguridad freebsd-small Uso de FreeBSD en aplicaciones embebidas freebsd-smp Debates sobre diseño de Multiproceso [A]Simétrico freebsd-sparc Porte de FreeBSD a sistemas Sparc freebsd-standards Cumplimiento de las normas C99 y POSIX en FreeBSD freebsd-tokenring Soporte de Token Ring en FreeBSD Listas limitadas:Las siguientes listas son para una audiencia más especializada (e interesada)y probablemente no son de interés para el público en general. Apéndice A./.FreeBSD. Recursos en Internet Lista Propósito freebsd-multimedia Aplicaciones multimedia freebsd-new-bus Debates técnicos sobre la arquitectura de bus freebsd-net Debates sobre el código fuente de Redes y TCP/IP freebsd-platforms Específica sobre plataformas de arquitectura no Intel freebsd-ports Debates sobre la colección de ports freebsd-ppc Porte de FreeBSD a PowerPC freebsd-qa Debates sobre Control de Calidad. Lista Propósito freebsd-core FreeBSD Core Team freebsd-hubs Mantenimiento de mirrors (mantenimiento de infraestructuras) freebsd-install Desarrollo de la Instalación freebsd-user-groups Coordinación de grupos de usuarios freebsd-www Mantenimiento de www.

org. Son listas de sólo lectura y no se debe enviar correo a ellas.1. Lista Área de código Descripción de área de código (código fuente) cvs-all /usr/src Todos los cambios al árbol de código (superconjunto) A.org .com ^D Por último. Para suscribirse a una lista envíe un correo a <majordomo@FreeBSD. también es posible desuscribirse de una lista.org subscribe freebsd-announce local-announce@ejemplo. Recursos en Internet Lista freebsd-database-digest freebsd-hackers-digest freebsd-ia64-digest freebsd-isdn-digest freebsd-java-digest freebsd-questions-digest freebsd-security-digest freebsd-sparc-digest freebsd-stable-digest freebsd-test-digest Listas CVS:Las siguientes listas son para gente interesada en llevar un seguimiento de los mensajes en el registro para conocer los cambios hechos en las diferentes áreas del árbol de código fuente. de manera que para enviar correo a la lista “nombredelista” simplemente hay que escribir a nombredelista@FreeBSD. Para obtener una lista completa de los comandos disponibles haga esto: 224 . Por ejemplo. obtener una lista de los suscriptores de una lista u obtener una lista de las listas de correo disponibles enviando otro tipo de mensajes de control a majordomo. Cómo suscribirse Todas las listas de correo están en FreeBSD. Desde ahí será redistribuído a los miembros  de la lista de correo a lo largo y ancho del mundo. Apéndice A.org subscribe freebsd-announce ^D Si quisiera suscribirse bajo otro nombre o enviar una petición de suscripción para una lista de correo local (un sistema muy eficiente si dispone de varias personas interesadas que tengan cuentas de correo en un mismo servidor ¡esto nos facilita mucho el trabajo!) ésto es lo que debe hacer: % mail majordomo@FreeBSD. para suscribirse a freebsd-announce usted haría esto: % mail majordomo@FreeBSD.org> incluyendo subscribe listname  [ optional address ]  en el cuerpo del mensaje.2.

Para discusiones libres sin un tema en particular está la lista de correo freebsd-chat <freebsd-chat@FreeBSD. • No están admitidos los ataques personales ni la blasfemia (dentro del contexto o como argumento) y eso incluye tanto a usuarios como a desarrolladores. el suscriptor será borrado de todas las listas de correo de FreeBSD y filtrado para evitar futuros envíos. después de las cuales. y mucha gente no se da cuenta de cuán frágiles son algunos de sus mecanismos. Si lo único que usted quiere es recibir avisos importantes le sugerimos que se suscriba a freebsd-announce. dicha línea debe ser recortada antes de que envíe una respuesta. que está pensada para tener un tráfico muy bajo. Normas de las listas individuales: FREEBSD-AFS Sistema de Ficheros Andrew Ésta lista es para debates sobre el porte y uso de AFS. Normas a respetar: • El tema de cualquier envío debe atenerse al fin básico de la lista a la que se escribe. por lo cual lo más probable es recibir una advertencia (o ser expulsado) tan sólo a causa de ello. que es libremente accesible y hecha para éste propósito. un entorno bastante conflictivo. Sin embargo. según parece. Usted es el responsable de sus propios envíos cruzados. de CMU/Transarc 225 .org help ^D De nuevo quisiéramos pedirle que procure mantener los debates de las listas técnicas dentro de temas técnicos. Quien no se atenga a ellas recibirá hasta dos (2) advertencias escritas del Postmaster de FreeBSD <postmaster@FreeBSD. Normas de las listas Todas las listas de correo de FreeBSD tienen ciertas normas elementales que han de ser respetadas por cualquiera que las use. independientemente de quién fuese el remitente original. a la tercera falta. está mal visto. Lamentamos que esas normas y medidas sean necesarias. y sólamente a 2 cuando exista una necesidad manifiesta de escribir a ambas listas. • El anuncio de productos o servicios no relacionados con FreeBSD están estrictamente prohibidas y conllevarán la inmediata expulsión de la lista si queda demostrado que el autor está practicando el “spam” o envío de correo no solicitado. como reenviar o extractar mensajes privados sin permiso ni visos de tenerlo. • No se debería enviar el mismo mensaje a más de dos listas. aunque no prohibido específicamente. Hay una gran cantidad de personas suscritas a más de una lista y excepto para las mezclas más esotéricas (digamos "-stable & -scsi") no hay razón para enviar un mensaje a más de una lista al mismo tiempo. Si le envían un mensaje en el que aparecen múltiples listas de correo en la línea "Cc" de la cabecera. Violaciones graves de la netiqueta. esto es. Recursos en Internet % mail majordomo@FreeBSD. pero la Internet de hoy es.org>. Enviar mensajes irrelevantes o insultos sólo sirve para deteriorar el valor de la lista de correo para sus miembros y no será tolerado.1.3. Apéndice A. hay pocos casos en los que algo así encaje en la temática de una lista. A.org>. si la lista es sobre temas de debate técnico sus envíos deberían versar sobre temas técnicos.

Los mensajes deberían mantenerse dentro del ámbito técnico para el que fué creada la lista. informes de error. Ésto incluye anuncios sobre SNAPSHOTS y otras versiones. parches. Las discusiones de seguridad que no estén relacionadas con una parte específica del código deben tener lugar en freebsd-security. FREEBSD-BINUP Proyecto de Actualización Binaria de FreeBSD Ésta lista existe para facilitar el debate sobre el sistema de actualizacion binaria o binup. Por otra parte se ruega a todos los desarrolladores que envíen sus parches a ésta lista para su revisión. peticiones de características. “commit logs” y en general todo lo relacionado con binup es bienvenido. FREEBSD-AUDIT Proyecto de auditoría del código fuente Ésta es la lista de correo del proyecto de auditoría del código fuente de FreeBSD. Características de diseño. • Qué se necesita arreglar en el VFS para que funcionen las capas de Heidemann. detalles de implementación. informes de estado. FREEBSD-ARCH Debates sobre arquitectura y diseño Ésta lista es para debates sobre la arquitectura de FreeBSD. FREEBSD-BUGS Informe de errores 226 . especialmente si atañen a una parte del sistema donde un error pudiera afectar seriamente a la integridad del sistema. • Cómo escribir un controlador de red. Aunque en principio fué puesta en marcha para cambios motivados por la seguridad su ámbito fué ampliado a la revisión de cualquier cambio en el código. En ésta lista circula una gran cantidad de parches y probablemente no sea de interés para el típico usuario de FreeBSD. Serían ejemplos de temas aptos para ésta lista: • Como reorganizar el sistema de construcción ("build") para poder tener varios procesos de construcción personalizados funcionando simultáneamente. • Cómo cambiar el dispositivo de control de interfaces para que sea posible utilizar los mismos controladores directamente en la mayoría de los buses y arquitecturas. Puede incluír también peticiones de voluntarios. etc. Apéndice A. Recursos en Internet FREEBSD-ANNOUNCE Sucesos importantes / hitos Ésta es la lista de correo para gente interesada en recibir exclusivamente avisos de sucesos importantes dentro de FreeBSD. Es una lista de bajo volumen y estrictamente moderada.

FREEBSD-CURRENT Debates sobre el uso de FreeBSD-current Ésta es la lista de correo para usuarios de freebsd-current. quién está bebiendo demasiado café. FREEBSD-DOC Proyecto de Documentación Ésta lista de correo está destinada a discusiones relacionadas con cuestiones y proyectos relacionados con la creación de documentación de FreeBSD. congresos. Siempre que sea posible los errores deberían ser enviados usando el comando send-pr(1) o el interfaz WEB (. dónde se elabora la mejor cerveza.. nacimientos. Apéndice A.. ¡suscríbase y contribuya!. Recursos en Internet Ésta es la lista de correo para informar de errores en FreeBSD. bodas.). Ésta es una lista de correo técnica en la que se esperan contenidos estrictamente técnicos. quién está fabricando cerveza en su sótano y así sucesivamente. Cualquier usuario de “current” debería suscribirse a ésta lista. FREEBSD-CORE FreeBSD Core Team Ésta es la lista de correo interna para uso de los miembros del Core Team. Consiste en que todos los mensajes enviados a freebsd-current son empaquetados y enviados periódicamente como un solo mensaje. La lista es abierta. Eso incluye discusiones sobre si Julio Iglesias parece una gárgola. contenidos que no tienen cabida en las demás listas. FREEBSD-CURRENT-DIGEST Debates sobre el uso de FreeBSD-current Éste es el compendio de la lista freebsd-current./. etc. 227 .. Pueden hacerse anuncios sobre actos importantes (como próximas fiestas. nuevos trabajos.. Los miembros de ésta lista son llamados “El Proyecto de Documentación de FreeBSD”./. Ésta lista es de Sólo-Lectura y no debería recibir correo. sobre si escribir o no en mayúsculas././send-pr. Esto incluye advertencias sobre nuevas características a ser incluídas en -current que afecten a todos los usuarios e instrucciones paso por paso que deben ser seguidas para mantener una instalación -current. pero las respuestas deben ser dirigidas a ésta misma lista. Los mensajes pueden ser enviados a ésta lista cuando un problema serio relacionado con FreeBSD necesite un estudio o arbitraje de alto nivel.html) FREEBSD-CHAT Temas no técnicos relacionados con la comunidad FreeBSD Ésta lista contiene todos los mensajes sobre información no técnica y social.

Apéndice A. Recursos en Internet

FREEBSD-FIREWIRE
Firewire (iLink, IEEE 1394)
Ésta lista de correo es para debates sobre diseño e implementación del subsistema Firewire(también conocido
como IEEE o iLink) en FreeBSD. Los temas incluyen de modo específico los “standards”, dispositivos de bus y
sus protocolos, adaptación de placas base, tarjetas y chips y la arquitectura e implementación de código para
soporte nativo.

FREEBSD-FS
Sistemas de ficheros
Debates acerca del sistema de ficheros de FreeBSD. Ésta es una lista de correo técnica en la que se espera un
contenido estríctamente técnico.

FREEBSD-GNOME
GNOME
Debates acerca del Entorno de Escritorio GNOME para sistemas de ficheros FreeBSD. Ésta es una lista de
correo técnica en la que se espera un contenido estrictamente técnico.

FREEBSD-IPFW
Cortafuegos IP
Éste es el foro de discusión técnica dedicado al rediseño del código del cortafuegos IP de FreeBSD. Ésta es una
lista de correo técnica en la que se espera un contenido exclusivamente técnico.

FREEBSD-IA64
Porte de FreeBSD a IA64
Ésta es una lista de correo técnica para personas que están trabajando en el porte de FreeBSD a la plataforma
IA-64 de Intel, para intercambiar problemas y soluciones alternativas. Cualquier persona interesada en seguir
las discusiones técnicas es bienvenida.

FREEBSD-ISDN
Comunicaciones RDSI
Ésta es la lista de correo para quienes participan en el desarrollo del soporte RDSI para FreeBSD.

FREEBSD-JAVA
Desarrollo Java

228

Apéndice A. Recursos en Internet

Ésta es la lista de correo sobre el desarrollo de aplicaciones Java importantes para FreeBSD y el porte y
mantenimiento de los JDK.

FREEBSD-HACKERS
Debates técnicos
Éste es un foro de debate técnico relacionado con FreeBSD. Ésta es la lista de correo técnica primaria. Es para
personas que están trabajando en FreeBSD, solucionando problemas o para discutir soluciones alternativas. Las
personas interesadas en seguir las discusiones técnicas también son bienvenidas. Ésta es una lista de correo
técnica en la cual se espera un contenido estrictamente técnico.

FREEBSD-HACKERS-DIGEST
Technical discussions
Éste es el compendio de la lista de correo freebsd-hackers. Consiste en que todo el correo enviado a
freebsd-hackers es empaquetado y enviado en un sólo mensaje. Ésta lista es de Sólo Lectura y no se debería
enviar correo a ella.

FREEBSD-HARDWARE
Discusiones generales sobre hardware y FreeBSD
Discusiones generales sobre tipos de hardware que funciona en FreeBSD, diferentes problemas y sugerencias
sobre qué comprar y qué no.

FREEBSD-HUBS
Réplicas
Avisos y discusiones para personas que administran sitios réplica.

FREEBSD-INSTALL
Discusiones sobre la instalación
Ésta lista de correo es para discusiones sobre el desarrollo de la instalación de FreeBSD en próximas versiones.

FREEBSD-ISP
Cuestiones de Proveedores de Servicios de Internet
Ésta lista de correo es para debates sobre temas relevantes para Proveedores de Servicios de Internet (ISP) que
usan FreeBSD. Es una lista de correo técnica y en ella se esperan contenidos estríctamente técnicos.

229

Apéndice A. Recursos en Internet

FREEBSD-NEWBIES
Debates sobre actividades de los novatos
Cubrimos todas las actividades de los novatos que no quedan cubiertas por ninguna de las otras, incluyendo:
aprendizaje autodidacta y técnicas de resolución de problemas, búsqueda y uso de recursos y peticiones de
ayuda, cómo usar las listas de correo y qué lista usar, charla en general, meter la pata, jactarse, compartir ideas,
historias, soporte moral (pero no técnico) e implicación en la comunidad FreeBSD. Usamos freebsd-questions
para enviar nuestros problemas y peticiones de soporte y usamos freebsd-newbies para conocer a gente que está
haciendo lo mismo que nosotros cuando éramos novatos.

FREEBSD-PLATFORMS
Porte a plataformas no Intel
Cuestiones sobre plataformas diversas, debates generales, y propuestas para portes de FreeBSD para
plataformas no Intel. Es una lista de correo técnica y en ella se esperan contenidos estríctamente técnicos.

FREEBSD-POLICY
Decisiones de funcionamiento interno del Core Team
Es una lista de sólo lectura y bajo volumen destinada a la toma de decisiones de funcionamento interno del Core
Team de FreeBSD.

FREEBSD-PORTS
Debates sobre “ports”
Debates acerca de la “colección de ports” (/usr/ports)de FreeBSD, propuestas de aplicaciones a portar,
modificaciones a la infraestructura de ports y coordinación general de esfuerzos. Ésta es una lista de correo
técnica en la cual se esperan contenidos exclusivamente técnicos.

FREEBSD-QUESTIONS
Preguntas de los usuarios
Ésta es la lista de correo para preguntas sobre FreeBSD. No debería enviar preguntas del estilo de “cómo hacer”
a las listas técnicas salvo que el contenido sea claramente técnico.

FREEBSD-QUESTIONS-DIGEST
Preguntas de los usuarios
Éste es el compendio de la lista de correo freebsd-questions. Consiste en que todos los mensajes enviados a
freebsd-questions son empaquetados y enviados en un único mensaje.

230

Apéndice A. Recursos en Internet

FREEBSD-SCSI
Subsistema SCSI
Ésta es la lista de correo para la gente que está trabajando en el subsistema SCSI de FREEBSD. Ésta es una lista
de correo técnica en la cual se esperan contenidos puramente técnicos.

FREEBSD-SECURITY
Cuestiones de seguridad
Cuestiones de seguridad informática (DES, Kerberos, problemas de seguridad conocidos y sus soluciones, etc.)
Ésta es una lista de correo técnica en la que se esperan contenidos puramente técnicos.

FREEBSD-SECURITY-NOTIFICATIONS
Avisos de seguridad
Avisos de problemas de seguridad en FreeBSD y sus soluciones. Ésta no es una lista de discusión. La lista de
discusión es freebsd-security.

FREEBSD-SMALL
Uso de FreeBSD en aplicaciones embebidas
En ésta lista se debaten temas relacionados con instalaciones de FreeBSD inusualmente pequeñas y embebidas.
Ésta es una lista de correo técnica en la cual se esperan contenidos estrictamente técnicos.

FREEBSD-STABLE
Debates sobre el uso de FreeBSD-stable
Ésta es la lista de correo para los usuarios de freebsd-stable. Incluye avisos sobre nuevas características a incluír
en -stable que afectan a los usuarios e instrucciones paso por paso para permanecer usando la versión -stable.
Cualquiera que utilice FreeBSD “stable” debería suscribirse a ésta lista. Ésta es una lista técnica en la que se
esperan contenidos puramente técnicos.

FREEBSD-STANDARDS
Cumplimiento de C99 & POSIX
Éste es el foro para debates técnicos relacionadas con el Cumplimiento de las normas C99 y POSIX en
FreeBSD.

FREEBSD-USER-GROUPS
Lista de coordinación de de grupos de usuarios

231

Apéndice A. Recursos en Internet

Ésta es la lista de correo de los coordinadores de los grupos locales de usuarios para discutir cuestiones entre
ellos o con personas elegidas del Core Team. Ésta lista de correo debería estar limitada a resúmenes de
reuniones y coordinación de proyectos que atañen a los Grupos de Usuarios.

FREEBSD-VENDORS
VENDORS
Debates para la coordinación entre el Proyecto FreeBSD y Distribuidores de software y hardware para FreeBSD.

A.2. Grupos de Noticias de Usenet
Además de los dos grupos de noticias específicos de FreeBSD hay muchos otros en los cuales se habla sobre
FreeBSD o son de algún modo interesantes para usuarios de FreeBSD.Hay un archivo donde hacer búsquedas
(http://minnie.tuhs.org/BSD-info/bsdnews_search.html) donde pueden encontrarse algunos de esos grupos de
noticias por cortesía de Warren Toomey <wkt@cs.adfa.edu.au>.

A.2.1. Grupos de Noticias Específicos sobre BSD

• comp.unix.bsd.freebsd.announce (news:comp.unix.bsd.freebsd.announce)
• comp.unix.bsd.freebsd.misc (news:comp.unix.bsd.freebsd.misc)

A.2.2. Otros Grupos de Noticias Interesantes sobre Unix

• comp.unix (news:comp.unix)
• comp.unix.questions (news:comp.unix.questions)
• comp.unix.admin (news:comp.unix.admin)
• comp.unix.programmer (news:comp.unix.programmer)
• comp.unix.shell (news:comp.unix.shell)
• comp.unix.user-friendly (news:comp.unix.user-friendly)
• comp.security.unix (news:comp.security.unix)
• comp.sources.unix (news:comp.sources.unix)
• comp.unix.advocacy (news:comp.unix.advocacy)
• comp.unix.misc (news:comp.unix.misc)
• comp.bugs.4bsd (news:comp.bugs.4bsd)
• comp.bugs.4bsd.ucb-fixes (news:comp.bugs.4bsd.ucb-fixes)

232

dk.unix.cz.announce (news:comp.FreeBSD.x (news:comp.motif) • comp.au. • http://www2.ca.i386unix) • comp.br.windows.FreeBSD.FreeBSD..freebsd.br. 233 .x.bsd) A.fr.bsd (news:comp.FreeBSD.freebsd.org/ — Australia/2.windows./. • http://www./index.windows.x. Servidores WWW • http://www.br.3.windows.windows.windows.x.org/ — Francia.wine (news:comp.org/ — Brasil/1./.x.x.org/ — Brasil/2.org/ — República Checa.FreeBSD.FreeBSD.fi.emulators. • http://www3.itworks.windows.windows.com. • http://www. • http://www.FreeBSD.html) — Servidor Central.org/ — Canadá/2.au.org/ — Canadá/1.org/ — Canadá/3.bg.apps) • comp.x) • comp.org/www.org/ — Bulgaria.FreeBSD.x.ca. • http://www.windows.FreeBSD.emulators.intrinsics (news:comp.x.apps (news:comp.org/ — Australia/3.windows.x. Sistema X Window • comp.2.x.pex (news:comp.windows.i386unix (news:comp..org/ — Estonia. • http://www.unix..cn.x.ee.windows.FreeBSD. • http://www3. Apéndice A..FreeBSD.org/ — Dinamarca.org/ — China./. • http://www.windows.au/ — Australia/4. • http://www.windows.motif (news:comp.announce) • comp.ms-windows. • http://www2.x.FreeBSD.ms-windows.pex) • comp.intrinsics) • comp.FreeBSD.wine) A.3. • http://freebsd.org/ — Australia/1. • http://www.org/ — Finlandia.FreeBSD.org/www. Recursos en Internet • comp.org/ (.au.FreeBSD. • http://www.org/ — Brasil/3. • http://www.FreeBSD.ca.FreeBSD. • http://www2. • http://www3.x.

org/ — Holanda/1. 234 .kr.FreeBSD. • http://www. • http://www.FreeBSD.FreeBSD.FreeBSD.org/ — Alemania/3.kr.lv.FreeBSD.FreeBSD.org/ — Grecia.FreeBSD. • http://www2. • http://www.ru.org/ — Rusia/1. • http://www2.ru.FreeBSD.FreeBSD.org/www.org/ — Irlanda.FreeBSD.FreeBSD. • http://www2. • http://www2.gr.org/www.org/ — Suiza.org/data/ — Taiwan. • http://www.no. • http://www.za.org/ — Polonia/1.za. • http://www. • http://www1.nl.nl. • http://www.org/ — Japón.FreeBSD.ch. • http://www.org/ — Rusia/2. • http://www3.si. • http://www2.is.org/ — Portugal/1.FreeBSD.net/freebsd/ — Malasia.pt.org/ — Polonia/2.org/ — Portugal/3.FreeBSD. Apéndice A.FreeBSD. • http://www2.FreeBSD.freebsd.ro. • http://www.pl.ru.FreeBSD.org/ — Corea/1.FreeBSD. • http://www.org/ — República Eslovaca.es.FreeBSD.org/ — España.FreeBSD.tw. • http://www. • http://www.de.FreeBSD.ie.FreeBSD.ru.org/ — Nueva Zelanda.FreeBSD.org/ — Eslovenia.org/ — Islandia. • http://www.FreeBSD. • http://www. • http://www.jp. • http://www3.FreeBSD.pt.org/ — Holanda/2.s1web.org/ — Sudáfrica/1. • http://www4. • http://www.org/ — Rumanía.FreeBSD.FreeBSD. • http://www2.FreeBSD. • http://rama.org/ — Rusia/3.hu.FreeBSD.org/ — Suecia.nz.se.org/ — Letonia.FreeBSD. Recursos en Internet • http://www.de.org/ — Corea/2.org/ — Alemania/2.FreeBSD.org/ — Noruega. • http://www.sk.org/ — Alemania/1.org/ — Sudáfrica/2.FreeBSD.pt.FreeBSD.org/ — Portugal/2.asiapac. • http://www. • http://freebsd. • http://www.org/ — Hungría.com/ — Singapur.de.org/ — Rusia/4.pl.FreeBSD. • http://www. • http://www.

org/ — Ucrania/Crimea. • http://www6.FreeBSD. Lee Johnston users@uk.FreeBSD.uk.4. Dichos administradores se reservan el derecho de retirar el uso de la dirección si se abusa de ella de cualquier manera.5.uk.FreeBSD.org SSH only CVS de sólo lectura.org> <lee@uk.ua.org/ — Turquía. espacio Brian Somers web personal.org/ — Reino Unido/3.FreeBSD.org/www. Servidor Tipo de acceso Servicios que se Administrador ofrecen storm.org/ — USA/Oregón.ua. • http://www. Recursos en Internet • http://www. Direcciones de Correo Electrónico Los siguientes grupos de usuarios de FreeBSD provéen a sus miembros de direcciones de correo.org> electrónico dogma.org/ — Ucrania/1.org Telnet/FTP/SSH Correo electrónico.org/ — Ucrania/2.FreeBSD.uk.FreeBSD.eu.tr.org> 235 .FreeBSD. Cuentas Shell Los siguientes grupos de usuarios facilitan cuentas shell a gente que apoya activamente el proyecto FreeBSD.org> A.FreeBSD.org/ — Reino Unido/1.freebsd. Dominio Recursos que se Grupo de Usuarios Administrador suministran ukug. • http://www2.uk.FreeBSD.FreeBSD. FTP Anónimo <lee@uk.org/ — USA/Tejas. • http://www4. Sus respectivos administradores se reservan el derecho de cancelar la cuenta y si se abusa de ella de algún modo.ua.freebsd-uk.org Sólo redirección <freebsd.org/ — Reino Unido/2. A. • http://www2.FreeBSD.FreeBSD. espacio Lee Johnston web.uk. Apéndice A. • http://www2.FreeBSD.FreeBSD. • http://www3. • http://www. correo <brian@FreeBSD.

2.org Key fingerprint = CE EF 8A 48 70 00 B5 A9 55 69 DE 87 E3 9A E1 CD B.org> pub 1024R/FF8AE305 2002-01-08 core-secretary@FreeBSD.org> sub 2048g/1CF20D27 1998-11-23 B./. Murray Stokely <murray@FreeBSD. B.org/doc/pgpkeyring.. Core Team Members B.2.2.1.jp> Key fingerprint = 5219 55CE AC84 C296 3A3B B076 EE3C 4DBB FE3B 59CD uid Jun Kuriyama <kuriyama@FreeBSD.2./.2.. Warner Losh <imp@FreeBSD. A complete keyring of FreeBSD.2... Jun Kuriyama <kuriyama@FreeBSD.org> pub 1024D/0E451F7D 2001-02-12 Murray Stokely <murray@freebsd.FreeBSD.Apéndice B. PGP Keys In case you need to verify a signature or send encrypted email to one of the officers or developers a number of keys are provided here for your convenience.org> Key fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9 B.org> Key fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11 B.1. Core Team Secretary <core-secretary@FreeBSD. Officers B./doc/pgpkeyring.co.txt (.org users is available for download from http://www.txt).org> Key fingerprint = E2CA 411D DD44 53FD BB4B 3CB5 B4D7 10A2 0E45 1F7D sub 1024g/965A770C 2001-02-12 236 .org> pub 1024R/73D288A5 1996-04-22 FreeBSD Security Officer <security-officer@freebsd./.org> pub 1024R/F6A8F561 1996-01-10 M.org> uid Jun Kuriyama <kuriyama@jp.1.1. Security Officer Team <security-officer@FreeBSD.1.FreeBSD.org> pub 1024D/FE3B59CD 1998-11-23 Jun Kuriyama <kuriyama@imgsrc. Warner Losh <imp@village.3.

org> uid Will Andrews <will@csociety.net> uid Will Andrews <will@csociety.org> uid Peter Wemm <peter@haywire.dialix.2.org> sub 1024g/ADC71E87 2000-05-25 B.dialix.4.org> pub 1024R/1E08D889 1997-07-23 Satoshi Asami <asami@cs.org> pub 1024D/D300551E 2001-12-20 Martin Blapp <mb@imp. Anton Berezin <tobez@FreeBSD.org> pub 1024D/F81672C5 2000-05-22 Will Andrews <will@c-60. Peter Wemm <peter@FreeBSD. Apéndice B.1.openpackages.org> Key fingerprint = 661F BBF7 9F5D 3D02 C862 5F6C 178E E274 F816 72C5 uid Will Andrews (Key for official matters) <will@FreeBSD.oz.org> uid Anton Berezin <tobez@FreeBSD. PGP Keys B.dialix.org> pub 1024R/D89CE319 1995-04-02 Peter Wemm <peter@perth.3.berkeley.org> pub 1024D/7A7BA3C0 2000-05-25 Anton Berezin <tobez@catpipe.purdue. Developers B.net> Key fingerprint = CDD8 560C 174B D8E5 0323 83CE 22CA 584C 7A7B A3C0 uid Anton Berezin <tobez@tobez.ecn. Satoshi Asami <asami@FreeBSD.edu> Key fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA uid Satoshi Asami <asami@FreeBSD.4.3.com> uid Peter Wemm <peter@spinner.firepipe.3.ch> Key fingerprint = B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E sub 1024g/998281C8 2001-12-20 237 .edu> uid Will Andrews <will@telperion.3.au> Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A uid Peter Wemm <peter@FreeBSD.3.ORG> B.edu> uid Will Andrews <will@puck.org> sub 1024g/55472804 2000-05-22 B. Will Andrews <will@FreeBSD.3. Martin Blapp <mbr@FreeBSD.com> B.purdue.2.org> uid Will Andrews <will@physics.

edu> uid Jonathan Chen <jon@cs.7.org> uid Jonathan Chen <chenj@rpi.com> sub 1024g/5446EB72 2002-02-22 238 .3.org> pub 1024D/2539468B 1999-10-11 Jonathan Chen <jon@spock. Bresler <Jonathan.org> pub 1024R/EADEE409 1997-06-16 Wilko Bulte <wilko@tcja. Bresler <jmb@FreeBSD.8.org> Key fingerprint = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB uid Jonathan M.3.nl>" B.5. Wilko Bulte <wilko@FreeBSD.org> pub 1024D/2926F3BE 2002-02-22 Luoqi Chen <luoqi@FreeBSD. Jonathan M. Bresler <jmb@FreeBSD.unibw-muenchen.org> sub 1024g/09D28582 2001-05-06 B. Oliver Braun <obraun@FreeBSD.ORG> uid Jonathan M.org> uid "Wilko Bulte <wilko@freebie. Apéndice B. PGP Keys B.9.net> uid Jonathan M.3.xs4all.rpi.Bresler@USi.org> Key fingerprint = EE31 CDA1 A105 C8C9 5365 3DB5 C2FC 86AA 2539 468B uid Jonathan Chen <jon@freebsd.com> uid Luoqi Chen <lchen@onetta. Jonathan Chen <jon@FreeBSD. Bresler <jmb@Frb.GOV> B.6.org> Key fingerprint = B470 A815 5917 D9F4 37F3 CE2A 4D75 3BD1 2926 F3BE uid Luoqi Chen <luoqi@bricore.org> pub 1024D/EF25B1BA 2001-05-06 Oliver Braun <obraun@informatik.nl> Key fingerprint = CF F5 30 59 20 AE 17 69 98 F6 58 F0 4F F0 EB 3E uid Wilko Bulte <wilko@freebsd. Bresler <jmb@Bresler. Bresler uid Jonathan M. Luoqi Chen <luoqi@FreeBSD.net> uid Oliver Braun <obraun@freebsd.de> Key fingerprint = 6A3B 042A 732E 17E4 B6E7 3EAF C0B1 6B7D EF25 B1BA uid Oliver Braun <obraun@tele-consulting.3.edu> uid Jonathan Chen <spock@acm.org> pub 1024R/97E638DD 1996-06-05 Jonathan M.com> uid Oliver Braun <obraun@obraun.rpi.edu> sub 3072g/B81EF1DB 1999-10-11 B.3.

org> uid Sean Chittenden <seanc@FreeBSD. Chernov <ache@FreeBSD.co. Clark <cjclark@jhu.net> uid Ceri Davies <ceri@FreeBSD.uk> uid Nik Clayton <nik@bsdi. Apéndice B.org> pub 1024D/5F5B3ECB 2002-08-15 Sean Chittenden <sean@chittenden. Clark <cjclark@alum.org> Key fingerprint = 15B8 3FFC DDB4 34B0 AA5F 94B7 93A8 0764 2C37 E375 uid Nik Clayton <nik@slashdot.org> sub 1024g/0C482CBC 2002-03-08 239 .11.3.3.3.org> uid Sean Chittenden <chitt@acm.org> pub 1024R/D99D08EB 1992-08-20 Andrey A. Sean Chittenden <seanc@FreeBSD.pp.14. PGP Keys B.org> pub 1024D/FE886AD3 2002-01-25 Crist J.edu> uid Crist J.org> pub 1024D/34B7245F 2002-03-08 Ceri Davies <ceri@submonkey.mit. Chernov <ache@nagual.com> sub 1024g/769E298A 2000-11-09 B. Crist J. Clark <cjc@freebsd. Andrey A. Chernov <ache@FreeBSD.12.3.org> uid Sean Chittenden <sean@ruby-lang.org> Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49 uid Andrey A.net> Key fingerprint = 9C88 EB05 A908 1058 A4AE 9959 A1C7 DCC1 34B7 245F uid Ceri Davies <setantae@submonkey.edu> Key fingerprint = F04E CCD7 3834 72C2 707F 0A8F 259F 8F4B FE88 6AD3 uid Crist J.org.ru> B.org> Key fingerprint = 6CEB 1B06 BFD3 70F6 95BE 7E4D 8E85 2E0A 5F5B 3ECB uid Sean Chittenden <sean@rubynet. Clark <cjc@FreeBSD.org> sub 2048g/0A656D7B 2002-08-15 [expires: 2003-02-11] B. Nik Clayton <nik@FreeBSD.org> pub 1024D/2C37E375 2000-11-09 Nik Clayton <nik@freebsd.org> sub 1024g/9B6BAB99 2002-01-25 B.10.org> uid Nik Clayton <nik@crf-consulting.3.uk> uid Nik Clayton <nik@ngo.13. Ceri Davies <ceri@FreeBSD.org> uid Sean Chittenden <sean@rubydoc.

Dean <bsd@FreeBSD.de> uid Udo Erdelhoff <ue@freebsd.uu.ruhr.org> Key fingerprint = B340 8338 7DA3 4D61 7632 098E 0730 055B 69FA E582 uid Dima Dorfman <dima@unixfreak.18.3.org> uid Udo Erdelhoff <uerdelho@eu.ua> sub 1024g/2E858CD8 2002-03-31 [expires: 2004-03-30] B.3.com> Key fingerprint = A3C4 291D 95A0 AF1F A85C B029 524B F83F A8EE 370A uid Ruslan Ermilov (FreeBSD) <ru@FreeBSD.3.org> pub 1024D/F2381AD4 2001-02-10 Brooks Davis <brooks@one-eyed-alien.org.uu. Chris D. Ruslan Ermilov <ru@FreeBSD.org> sub 1024g/A51DD1C0 2001-09-04 [expires: 2003-09-04] B.17.org> Key fingerprint = EF49 7ABE 47ED 91B3 FC3D 7EA5 4D90 2FF7 723B DEE9 sub 1024g/4B02F876 2002-01-23 B.3. Brian S.org> pub 1024D/FE817A50 2000-12-20 Chris D. Brooks Davis <brooks@FreeBSD.19.org> pub 1024D/723BDEE9 2002-01-23 Brian S.net> uid Udo Erdelhoff <uerdelho@uu.15.org> Key fingerprint = A47D A838 9216 F921 A456 54FF 39B6 86E0 FE81 7A50 uid Chris D. Faulhaber <jedgar@FreeBSD.net> Key fingerprint = 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 uid Brooks Davis <brooks@FreeBSD.org> pub 1024R/E74FA871 1994-07-19 Udo Erdelhoff <uer@de.org> pub 1024D/69FAE582 2001-09-04 Dima Dorfman <dd@freebsd. PGP Keys B.org> sub 1024g/42921194 2001-02-10 [expires: 2003-01-22] B.org> pub 1024D/A8EE370A 2002-03-31 Ruslan Ermilov (Sunbay Software Ltd) <ru@sunbay. Udo Erdelhoff <ue@FreeBSD. Dima Dorfman <dd@FreeBSD.3. Apéndice B.16.org> uid Brooks Davis <brooks@aero.20.3. Faulhaber <jedgar@fxp. Faulhaber <jedgar@FreeBSD.org> 240 .org> uid Ruslan Ermilov (FreeBSD Ukraine) <ru@FreeBSD.net> B. Dean <bsd@FreeBSD.net> Key fingerprint = 8C B1 80 CA 2C 52 73 81 FB A7 B4 03 C5 32 C8 67 uid Udo Erdelhoff <ue@nathan.

br> sub 4096g/43405E6B 2001-11-22 [expires: 2003-11-22] sub 1024D/91EFF66C 2001-11-22 [expires: 2001-12-22] B.org> uid Mario Sergio Fujikawa Ferreira <lioux@linf.3.22.org> Key fingerprint = 9A9F 8A13 DB0D 7777 8D8E 1CB2 C5C9 A08F 74B9 1CFD uid Pete Fritchman <petef@databits.org> pub 1024D/B8365E55 2001-11-22 Mario Sergio Fujikawa Ferreira <lioux@brturbo. Feldman <green@FreeBSD. Brian F.3.edu> sub 1024g/0C02AF0C 2001-01-30 B.24.3.org> Key fingerprint = FE23 7481 91EA 5E58 45EA 6A01 B552 B043 7739 05D6 sub 2048g/D2009B98 2000-09-02 B.at> Key fingerprint = 199C F25B 2679 6D04 63C5 2159 FFC0 F14C 84C7 1B6E uid Tony Finch <fanf@FreeBSD.com> 241 .21. Pete Fritchman <petef@FreeBSD. Bill Fumerola <billf@FreeBSD. Tony Finch <fanf@FreeBSD.com.org> pub 1024D/74B91CFD 2001-01-30 Pete Fritchman <petef@FreeBSD.org> Key fingerprint = 5B2D 908E 4C2B F253 DAEB FC01 8436 B70B 7F86 8268 uid Bill Fumerola (Security Yahoo) <fumerola@yahoo-inc.org> pub 1024D/7F868268 2000-12-07 Bill Fumerola (FreeBSD Developer) <billf@FreeBSD.unb.3.br> uid Mario Sergio Fujikawa Ferreira <lioux@uol.org> sub 2048g/FD101E8B 2002-05-03 B.25.org> pub 1024D/41C13DE3 2000-01-11 Brian Fundakowski Feldman <green@FreeBSD.org> pub 1024D/84C71B6E 2002-05-03 Tony Finch <dot@dotat. Mário Sérgio Fujikawa Ferreira <lioux@FreeBSD.org> uid Tony Finch <fanf@apache. Apéndice B.23. PGP Keys sub 2048g/93452698 2000-12-20 B.org> Key fingerprint = 6A32 733A 1BF6 E07B 5B8D AE14 CC9D DCA2 41C1 3DE3 sub 1024g/A98B9FCC 2000-01-11 [expires: 2001-01-10] pub 1024D/773905D6 2000-09-02 Brian Fundakowski Feldman <green@FreeBSD.3.com> Key fingerprint = B143 3FA6 D76C 619C EB78 927C 5EF4 B29A B836 5E55 uid Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.net> uid Pete Fritchman <petef@csh.rit.

edu> uid John-Mark Gurney <gurney_j@resnet.co.org> Key fingerprint = 4B2D 3CFA 963B E310 847E 7D6C C072 B447 C6AF 4835 uid Patrick Gardella <patrick@windministries.3.29.cx> pub 1024D/C6AF4835 2000-01-19 Patrick Gardella <patrick@freebsd.27.ORG> 242 .org> uid John-Mark Gurney <jmg@cs.uoregon.3.org> Key fingerprint = A6 DE 3C C0 33 CF 36 E6 D1 F5 BB E8 3C C4 67 50 B.org> pub 1024D/84D0D7E7 2001-01-15 Daniel Harris <dannyboy@worksforfood. Patrick S.org> pub 1024R/3F9951F5 1997-02-11 John-Mark Gurney <johnmark@gladstone. John Hay <jhay@FreeBSD. Gardella <patrick@FreeBSD.za> uid John Hay <jhay@FreeBSD.csir.org> uid Daniel Harris <dh@askdh.edu> Key fingerprint = B7 EC EF F8 AE ED A7 31 96 7A 22 B3 D8 56 36 F4 uid John-Mark Gurney <gurney_j@efn.za> uid Thawte Freemail Member <jhay@mikom.com> sub 1024g/9DF0231A 2001-01-15 B.co.org> pub 1024R/527BC62B 1997-06-23 Patrick Gardella <patrick@windministries.za> uid John Hay <jhay@csir.cx> sub 2048g/DB3B83E7 2000-01-19 pub 1024R/EE2D47A9 1996-08-17 Patrick Gardella <patrick@freebsd.co.org> uid Patrick Gardella <patrick@intothewind.com> uid Daniel Harris <dh@wordassault.org> uid patrick@freebsd.28.26.uoregon.za> Key fingerprint = E7 95 F4 B9 D4 A7 49 6A 83 B9 77 49 28 9E 37 70 uid John Hay <jhay@mikom. John-Mark Gurney <jmg@FreeBSD.co.org uid Patrick Gardella <patrick@intothewind.org> pub 2048R/A9275B93 2000-05-10 John Hay <jhay@icomtek.org> Key fingerprint = 54 7C D6 81 B1 63 D2 5E BD DD 58 4D A4 0E E4 E1 uid Patrick Gardella <patrick@freebsd.3.edu> B.csir.csir.com> Key fingerprint = 3C61 B8A1 3F09 D194 3259 7173 6C63 DA04 84D0 D7E7 uid Daniel Harris <dannyboy@freebsd. Daniel Harris <dannyboy@FreeBSD.3. PGP Keys sub 1024g/43980DA9 2000-12-07 B. Apéndice B.uoregon.

org> pub 1024R/8E542D5D 1996-04-04 Jordan K.net> Key fingerprint = 7ED1 5A92 76C1 FFCB E5E3 A998 F037 5A0B 3A3E A137 sub 1024g/46C24F1E 2000-04-20 243 . Mike Heffner <mikeh@FreeBSD.32. Jordan K. Helmer <ghelmer@freebsd.34.3.33.org> pub 1024D/74A06ACD 2002-06-20 Sheldon Hearn <sheldonh@starjuice. Sheldon Hearn <sheldonh@FreeBSD.edu> uid Michael Heffner <mikeh@FreeBSD.edu> sub 1024g/3FE83FB5 2001-02-02 B.3.3.org> pub 1024D/3A3EA137 2000-04-20 Trevor Johnson <trevor@jpj.iastate.3.3.com> Key fingerprint = AFAB CCEB 68C7 573F 5110 9285 1689 1942 CDEC BF99 uid Michael Heffner <mheffner@vt.org> pub 1024R/35F4ED2D 1997-01-26 Guy G.org> Key fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20 B.31.net> uid Michael Heffner (ACM sysadmin) <mheffner@acm. PGP Keys B.3.30.vt.org> uid Michael Heffner <spock@techfour. Trevor Johnson <trevor@FreeBSD. Maxime Henrion <mux@FreeBSD.org> Key fingerprint = 67E4 6751 0058 982C C759 9984 B9B4 3F69 4ED6 9D63 sub 1024g/1A6F46EF 2002-03-02 B. Apéndice B. Hubbard <jkh@FreeBSD. Hubbard <jkh@FreeBSD.com> B.org> pub 1024D/CDECBF99 2001-02-02 Michael Heffner <mheffner@novacoxmail. Helmer <ghelmer@palisadesys. Helmer <ghelmer@cs.edu> uid Guy G.org> pub 1024D/4ED69D63 2002-03-02 Maxime Henrion <mux@FreeBSD.35.net> Key fingerprint = 01A3 EF91 9C5A 3633 4E01 8085 A462 57F1 74A0 6ACD sub 1536g/C42F8AC8 2002-06-20 B.org> Key fingerprint = A2 59 4B 92 02 5B 9E B1 B9 4E 2E 03 29 D5 DC 3A uid Guy G. Guy Helmer <ghelmer@FreeBSD.

nsu.org> Key fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E B.org> pub 1024D/E6B15016 2000-10-19 Josef Karthauser <joe@FreeBSD.3.gtn.org. PGP Keys B.usc.com> Key fingerprint = F028 D51A 0D42 DD67 4109 19A3 777A 3E94 6C6F 6CBA uid Andreas Klemm <andreas@klemm.gr> uid Giorgos Keramidas <keramida@ceid. Josef Karthauser <joe@FreeBSD.org> pub 1024D/971D4357 2002-01-22 Max Khon <fjoe@iclub.org> sub 1024g/DAA2638B 2002-01-22 B.org> sub 2048g/03A41C45 2000-01-14 [expires: 2006-01-14] B.3. Max Khon <fjoe@FreeBSD.37.org> Key fingerprint = C1EB 0653 DB8B A557 3829 00F9 D60F 941A 3186 03B6 uid Giorgos Keramidas <charon@labs.upatras.uk> uid Josef Karthauser <joe@uk.net> sub 2048g/1178B692 2000-10-19 B.39.3.org> Key fingerprint = 7266 8EAF 82C2 D439 5642 AC26 5D52 1C8C E6B1 5016 uid Josef Karthauser <joe@tao.com> uid [revoked] Josef Karthauser <joe@pavilion.didata.org> pub 1024D/318603B6 2001-09-21 Giorgos Keramidas <keramida@FreeBSD.edu> Key fingerprint = E65D 0E7D 7E16 B212 1BD6 39EE 5ABC B405 68E8 40A5 uid Kris Kennaway <kris@FreeBSD. Poul-Henning Kamp <phk@FreeBSD.org> pub 1024D/68E840A5 2000-01-14 Kris Kennaway <kris@citusc. Kris Kennaway <kris@FreeBSD.38.org> uid [revoked] Josef Karthauser <josef@bsdi.com> 244 .gr> sub 1024g/50FDBAD1 2001-09-21 B. Andreas Klemm <andreas@FreeBSD.org> pub 1024D/6C6F6CBA 2001-01-06 Andreas Klemm <andreas. Giorgos Keramidas <keramida@FreeBSD.org> uid Kris Kennaway <kris@obsecurity.klemm@eu.40.FreeBSD.3.3.41.org> pub 1024R/0358FCBD 1995-08-01 Poul-Henning Kamp <phk@FreeBSD.ru> Key fingerprint = AAC1 B2AF 9438 0D33 C106 C551 4052 219C 971D 4357 uid Max Khon <fjoe@freebsd.3.36. Apéndice B.

Clive Lin <clive@FreeBSD.tw> uid Ying-Chieh Liao <ijliao@dragon2.org> pub 1024D/D93798B6 2001-12-21 Joseph Koshy (FreeBSD) <jkoshy@freebsd.org> sub 1024g/03C2DC87 2001-07-30 [expires: 2002-07-30] 245 . Joseph Koshy <jkoshy@FreeBSD.FreeBSD.3.3.3.45.org> sub 4096g/C1E16E89 2001-01-09 B.org> pub 1024D/72077137 2002-01-31 Alexander Leidinger <netchild@FreeBSD.org> Key fingerprint = FA3F 20B6 A77A 6CEC 1856 09B0 7455 2805 A008 C03E uid Clive Lin <clive@CirX.3.org> uid Ying-Chieh Liao <ijliao@csie.46.42.org> pub 1024D/A008C03E 2001-07-30 Clive Lin <clive@tongi.net> uid Ying-Chieh Liao <ijliao@tw.org> Key fingerprint = CDB7 54EF 998A 9BA1 4F0C C8FB 71F7 04BF 0C17 6D8F sub 1024g/415D4F71 2002-01-23 B. Alexander Langer <alex@FreeBSD.3.tw> Key fingerprint = 4E98 55CC 2866 7A90 EFD7 9DA5 ACC6 0165 11C0 2382 uid Ying-Chieh Liao <ijliao@FreeBSD.org> Key fingerprint = 0DE3 62F3 EF24 939F 62AA 2E3D ABB8 6ED3 D937 98B6 sub 1024g/43FD68E9 2001-12-21 B.44.edu. Ying-Chieh Liao <ijliao@FreeBSD.org> pub 1024D/0C176D8F 2002-01-23 Alexander Langer <alex@FreeBSD.nctu.org> pub 1024D/11C02382 2001-01-09 Ying-Chieh Liao <ijliao@CCCA.ORG> uid Clive Lin <clive@FreeBSD.edu. Apéndice B. Alexander Leidinger <netchild@FreeBSD.NCTU.org> Key fingerprint = AA3A 8F69 B214 6BBD 5E73 C9A0 C604 3C56 7207 7137 sub 2048g/8C9828D3 2002-01-31 B.43.org> sub 2048g/FE23F866 2001-01-06 B. PGP Keys uid Andreas Klemm <andreas@FreeBSD.org> uid Andreas Klemm <andreas@apsfilter.

Mah <bmah@ca.org> pub 1024D/54C745B5 2000-05-15 Kenneth D.sandia.org> Key fingerprint = D25E EBC5 F17A 9E52 84B4 BF14 9248 F0DA 54C7 45B5 uid Kenneth D.3. Kenneth D.ORG> uid Makoto Matsushita <matusita@ics.org> Key fingerprint = 71B6 13BF B262 2DD8 2B7C 6CD0 EB2D 4147 2054 4576 uid Makoto Matsushita <matusita@matatabi.49.48. Mah <bmah@FreeBSD.org> uid Bruce A.osaka-u.meyer@guug.FreeBSD.or. David Malone <dwmalone@FreeBSD. Bruce A.meyer@dinoex.org> pub 512/40378991 1994/04/21 David Malone <dwmalone@maths.ie> Key fingerprint = 86 A7 F4 86 39 2C 47 2C C1 C2 35 78 8E 2F B8 F5 B. PGP Keys B.tcd.ac.sub. Mah <bmah@ieee.gov> uid Bruce A. Merry <ken@FreeBSD. Merry <ken@kdm.3.3.org> Key fingerprint = 44 16 EC 0A D3 3A 4F 28 8A 8A 47 93 F1 CF 2F 12 uid Dirk Meyer <dirk.org> uid Dirk Meyer <dirk. Mah <bmah@freebsd. Mah <bmah@employees. Merry <ken@plutotech.org> pub 1024D/20544576 1999-04-18 Makoto Matsushita <matusita@FreeBSD.com> Key fingerprint = FD FA 85 85 95 C4 8E E8 98 1A CA 18 56 F0 00 1F B.jp> sub 1024g/F1F3C94D 1999-04-18 B. Mah <bmah@cisco. Dirk Meyer <dinoex@FreeBSD. Mah <bmah@acm.org> pub 1024D/5BA052C3 1997-12-08 Bruce A. Mah <bmah@packetdesign.org> uid Bruce A.org> pub 1024R/331CDA5D 1995-06-04 Dirk Meyer <dinoex@FreeBSD.org> sub 2048g/89D0F797 2000-05-15 pub 1024R/2FA0A505 1995-10-30 Kenneth D.de> 246 . Makoto Matsushita <matusita@FreeBSD.50.es. Merry <ken@FreeBSD.3.org> Key fingerprint = F829 B805 207D 14C7 7197 7832 D8CA 3171 5BA0 52C3 uid Bruce A.com> sub 2048g/B4E60EA1 1997-12-08 B.org> uid Bruce A. Apéndice B.47.com> uid Bruce A.3.jp> uid Makoto Matsushita <matusita@jp.51.

3.keio.or. PGP Keys B.ac.55.net> Key fingerprint = 68BB E2B7 49AA FF69 CA3A DF71 A605 A52D 61EE 89F6 sub 1024g/6EAAB456 2002-02-09 B.org> uid Akinori MUSHA <knu@idaemons.jp> Key fingerprint = 081D 099C 1705 861D 4B70 B04A 920B EFC7 9FD9 E1EE uid Akinori MUSHA <knu@FreeBSD.3.moestl@tu-bs.org> pub 1024D/419C776C 2000-11-28 Thomas Moestl <tmm@FreeBSD.org> pub 1024D/9FD9E1EE 2000-03-21 Akinori MUSHA <knu@and.jp> uid MIHIRA Yoshiro <sanpei@cc.ICC.de> sub 2048g/ECE63CE6 2000-11-28 B.NE.org> sub 1024g/3780652B 2002-01-10 B.56.org> 247 .ac.org> pub 1024R/583443A9 1995-03-31 Rich Murphey <rich@lamprey. Rich Murphey <rich@FreeBSD.jp> uid MIHIRA Yoshiro <sanpei@educ.org> pub 1024D/61EE89F6 2002-02-09 Marcel Moolenaar <marcel@xcllnt. Jim Mock <jim@FreeBSD.org> uid MIHIRA Yoshiro <sanpei@yy.jp> uid MIHIRA Yoshiro <sanpei@st.3.org> pub 1024R/391C5D69 1996-11-21 sanpei@SEAPLE.edu> Key fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4 B.cc.org> Key fingerprint = 1C97 A604 2BD0 E492 51D0 9C0F 1FE6 4F1D 419C 776C uid Thomas Moestl <tmoestl@gmx.keio. Marcel Moolenaar <marcel@FreeBSD. Yoshiro Sanpei MIHIRA <sanpei@FreeBSD.jp> B.JP Key fingerprint = EC 04 30 24 B0 6C 1E 63 5F 5D 25 59 3E 83 64 51 uid MIHIRA Yoshiro <sanpei@sanpei.3.cs.ac.57.3.utmb.net> uid Thomas Moestl <t.org> pub 1024D/3AA4FEE0 2002-01-10 Jim Mock <jim@FreeBSD. Thomas Möstl <tmm@FreeBSD.54.keio.ac. Apéndice B.52. Akinori MUSHA <knu@FreeBSD.3.org> uid Yoshiro MIHIRA <sanpei@FreeBSD.keio.org> Key fingerprint = AEEC 998D 7828 D306 AFF7 06CA D8FE 7285 3AA4 FEE0 uid Jim Mock <mij@soupnazi.53.

ad.org> sub 1024g/71BA9D45 2000-03-21 B.jp> uid Masafumi NAKANE <max@sfc.org> uid David E.org> uid Masafumi NAKANE <kd5pdi@qsl. O’Brien <dobrien@seas.3.59. O’Brien" <obrien@FreeBSD.sra.jp> uid Masafumi NAKANE <max@accessibility.org> pub 1024R/34F9F9D5 1995-04-23 David E.roanoke.org> pub 1024D/CE356B59 2000-02-19 Masafumi NAKANE <max@wide.org> uid Masafumi NAKANE <max@jp.va. O’Brien <obrien@Nuxi. Anders Nordby <anders@FreeBSD.no> Key fingerprint = 1E0F C53C D8DF 6A8F EAAD 19C5 D12A BC9F 0083 5956 uid Anders Nordby <anders@FreeBSD.com> Key fingerprint = B7 4D 3E E9 11 39 5F A3 90 76 5D 69 58 D9 98 7A uid David E.ucdavis.edu> uid David E.FreeBSD. O’Brien" <obrien@cs.jp> Key fingerprint = EB40 BCAB 4CE5 0764 9942 378C 9596 159E CE35 6B59 uid Masafumi NAKANE <max@w3.net> sub 1024g/FA9BD48B 2000-02-19 B.ad.60.us> uid David E. O’Brien <obrien@FreeBSD.edu uid David E.org> sub 2048g/4B160901 2000-08-13 B. Masafumi NAKANE <max@FreeBSD. O’Brien" <obrien@NUXI.58. O’Brien <obrien@elsewhere. O’Brien <defunct .3. O’Brien <whois Do38> uid David E.wide.ucdavis.obrien@Sea.org> uid Masafumi NAKANE <max@FreeBSD.com> uid David E.gwu.org> pub 1024D/00835956 2000-08-13 Anders Nordby <anders@fix. Apéndice B.com> uid "David E.edu> uid David E.obrien@media.edu> Key fingerprint = 02FD 495F D03C 9AF2 5DB7 F496 6FC8 DABD 7F9A 9BA2 uid "David E. David O’Brien <obrien@FreeBSD.keio.com> pub 1024D/7F9A9BA2 1998-06-10 "David E.Legent. O’Brien <defunct .ac. O’Brien <obrien@cs.com> uid deobrien@ucdavis.3.org> uid Masafumi NAKANE <max@sfc. O’Brien <obrien@NUXI. PGP Keys uid Akinori MUSHA <knu@ruby-lang.org> sub 3072g/BA32C20D 1998-06-10 248 .

org> Key fingerprint = 07EE A1BD 32E5 C402 59B6 22D5 D846 31D1 4E23 DACA uid Jim Pirzyk <Jim.org> pub 1024D/16194553 2002-02-01 Peter Pentchev <roam@techlab.org> uid Peter Pentchev <roam@online.net> uid Peter Pentchev <roam@FreeBSD.64.65. Polstra <jdp@polstra.Pirzyk@disney.3.fr.org> Empreinte de la clé = 4737 A0AD E596 6D30 4356 29B8 004D 54B8 393D 2469 uid Thomas Quinot <thomas@debian.3.org> uid Thomas Quinot <thomas@FreeBSD.com.office1.3. John Polstra <jdp@FreeBSD.org> pub 1024D/182C368F 2000-05-10 Mark Pulford <markp@FreeBSD. Apéndice B.61.org> Key fingerprint = 510C 96EE B4FB 1B0A 2CF8 A0AF 74B0 0B0E 330D 4D01 sub 1024g/9C6CAC09 2002-01-27 B.bg> sub 1024g/7074473C 2002-02-01 B.62. Thomas Quinot <thomas@FreeBSD.org> sub 1024g/8DE13BB2 1999-09-23 249 .bg> uid Peter Pentchev <roam@orbitel.eu.org> pub 1024D/393D2469 1999-09-23 Thomas Quinot <thomas@cuivre.org> pub 1024D/330D4D01 2002-01-27 Mark Peek <mp@FreeBSD.63.au> sub 2048g/380573E8 2000-05-10 B.3.3.org> pub 1024D/4E23DACA 2001-03-02 Jim Pirzyk <pirzyk@freebsd.3.org> Key fingerprint = 58C9 C9BF C758 D8D4 7022 8EF5 559F 7F7B 182C 368F uid Mark Pulford <mark@kyne. PGP Keys B.66. Peter Pentchev <roam@FreeBSD.org> pub 1024R/BFBCF449 1997-02-14 John D. Jim Pirzyk <pirzyk@FreeBSD.com> Key fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D B. Mark Pulford <markp@FreeBSD. Mark Peek <mp@FreeBSD.com> sub 1024g/F38895F7 2001-03-02 B.bg> Key fingerprint = FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 uid Peter Pentchev <roam@ringlet.

Wolfram Schneider <wosch@FreeBSD.org> Type Bits/KeyID Date User ID pub 1024/2B7181AD 1997/08/09 Wolfram Schneider <wosch@FreeBSD.3.org> pub 1024R/599F323D 1996-05-18 Guido van Rooij <guido@gvr.tue.net> sub 1024g/4F7C2BAD 2002-01-16 [expires: 2007-01-15] B.71. Ollivier Robert <roberto@FreeBSD.org> pub 1024R/EBBB1B41 1994-05-30 Ollivier Robert <roberto@keltia.3.org> uid Ollivier Robert <roberto@hsc.3.FR> uid Ollivier Robert <roberto@EU.org> uid Ollivier Robert <roberto@frmug. Apéndice B.Freenix.69. Doug Rabson <dfr@FreeBSD.org> B.nl> pub 1024D/A95102C1 2000-10-25 Guido van Rooij <guido@madison-gurkha.com> sub 1024g/A5F20553 2000-10-25 B.net> uid Ollivier Robert <roberto@keltia.fr.67.70.win.eu.nl> Key fingerprint = 5B3E 51B7 0E7A D170 0574 1E51 2471 117F A951 02C1 uid Guido van Rooij <guido@madison-gurkha.org> pub 1024R/95C11771 2000-02-27 Doug Rabson <dfr@freebsd.3.org> pub 1024D/87C59909 2002-01-16 Benno Rice <benno@FreeBSD.org> Key fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09 250 .3.68. Benno Rice <benno@FreeBSD.glou. PGP Keys B. Guido van Rooij <guido@FreeBSD.org> Key fingerprint = CE27 DADA 08E3 FAA3 88F1 5B31 5E34 705A 87C5 9909 uid Benno Rice <benno@jeamland.org> Key fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED uid Guido van Rooij <guido@gvr.org> Key fingerprint = 20 BB E4 38 5D 89 D2 D4 68 A6 2F DC 0A DE 10 3C B.freenix.org> Key fingerprint = B6 26 F7 26 64 4A 10 C3 D1 62 23 FB 4B 3B CC DD uid Ollivier Robert <roberto@Keltia.

3.75. PGP Keys B.3.org> pub 1024D/F76A9BF5 2001-11-14 Gregory Neil Shapiro <gshapiro@FreeBSD. Jens Schweikhardt <schweikh@FreeBSD.3.org> pub 1024D/0FF231FD 2002-01-27 Jens Schweikhardt <schweikh@FreeBSD.org> Key fingerprint = 42C4 A87A FD85 C34F E77F 5EA1 88E1 7B1D FCE5 6561 uid Gregory Neil Shapiro <gshapiro@gshapiro.org> Key fingerprint = 45F5 931B 0646 BF84 E78E E274 6C29 340E 3219 F982 uid Christopher Shumway <cshumway@titan-project.org> Key fingerprint = 3B5E DAF1 4B04 97BA EE20 F841 21F9 C5BC F76A 9BF5 uid Gregory Neil Shapiro <gshapiro@gshapiro.org> sub 1024g/060F6DBD 2002-03-18 251 . Sivachenko <demon@FreeBSD.net> sub 1024g/285DC8A0 2000-10-14 [expires: 2001-10-14] B.72.3. Shu <vanilla@FreeBSD.org> pub 1024D/13D5DF80 2002-03-18 Dmitry Sivachenko <mitya@cavia.74.org> pub 1024D/ACE75853 2001-11-20 Vanilla I.net> Key fingerprint = 56 D5 FF A7 A6 54 A6 B5 59 10 00 B9 5F 5F 20 09 uid Gregory Neil Shapiro <gshapiro@FreeBSD. Apéndice B. Dmitry Sivachenko <demon@FreeBSD.org> pub 1024D/3219F982 2001-05-17 Christopher Shumway <cshumway@freebsd.pp. Vanilla I.net> sub 2048g/935657DC 2001-11-14 pub 1024D/FCE56561 2000-10-14 Gregory Neil Shapiro <gshapiro@FreeBSD. Shu <vanilla@FreeBSD.76.73.ru> Key fingerprint = 72A9 12C9 BB02 46D4 4B13 E5FE 1194 9963 13D5 DF80 uid Dmitry S. Christopher Shumway <cshumway@FreeBSD.org> Key fingerprint = 290F 9DB8 42A3 6257 5D9A 5585 B25A 909E ACE7 5853 sub 1024g/CE695D0E 2001-11-20 B. Gregory Neil Shapiro <gshapiro@FreeBSD.org> sub 1024g/D215EFED 2001-05-17 B.org> Key fingerprint = 3F35 E705 F02F 35A1 A23E 330E 16FE EA33 0FF2 31FD uid Jens Schweikhardt <schweikh@schweikhardt.3.net> sub 1024g/6E93CACC 2002-01-27 [expires: 2005-01-26] B.org> pub 1024R/4FBE2ADD 2000-10-13 Gregory Neil Shapiro <gshapiro@gshapiro.

Ville Skyttä <scop@FreeBSD.80.78.org> pub 1024D/2CEF442C 2001-07-11 Ben Smithurst <ben@LSRfm.org> uid Ben Smithurst <ben@FreeBSD.ac.uk> uid Ben Smithurst <ben@scientia.com> uid Ben Smithurst <ben@smithurst.uk> sub 1024g/347071FF 2001-07-11 B. Ben Smithurst <ben@FreeBSD.3. Smørgrav <des@FreeBSD.org> uid Ville Skyttä <scop@FreeBSD. Jesper Skriver <jesper@FreeBSD.79.org> Key fingerprint = 6B88 9CE8 66E9 E631 C9C5 5EB4 22AB F0EC F956 1C31 uid Jesper Skriver <jesper@skriver. PGP Keys B.org> Key fingerprint = 58B8 E93A 659B 0FFC E3FA 2B45 43E9 5DE4 2784 8427 uid Dag-Erling Smørgrav (low security key) <des@thinksec.org> pub 1024D/0512E49A 2001-06-26 Dag-Erling Smørgrav (office/general) <des@thinksec.skytta@xemacs.dk> uid Jesper Skriver <jesper@wheel.demon.77. Dag-Erling C.3.org> uid Dag-Erling Smørgrav (FreeBSD) <des@freebsd.com> uid Dag-Erling Smørgrav (low security key) <des@ofug.org> uid Ben Smithurst <csxbcs@comp.org> sub 2048g/9426F4D1 2002-04-07 B.com> Key fingerprint = 355D 0FFF B83A 90A9 D648 E409 6CFC C9FB 2CEF 442C uid Ben Smithurst <ben@vinosystems.org> sub 2048g/CF429755 2000-10-13 252 .no> uid Dag-Erling Smørgrav (OFUG) <des@ofug.skytta@iki.leeds.dk> sub 1024g/777C378C 2001-03-09 B.com> Key fingerprint = 94BD 6AC7 695E 4861 E27D DC7F 6726 88E1 0512 E49A uid Dag-Erling Smørgrav (office/general) <des@thinksec.3.co.fi> Key fingerprint = 4E0D EBAB 3106 F1FA 3FA9 B875 D98C D635 BCD2 41CB uid Ville Skyttä <ville. Apéndice B.3.org> sub 2048g/F409452B 2001-06-26 [expires: 2003-07-01] pub 1024D/27848427 2000-10-13 Dag-Erling Smørgrav (low security key) <des@freebsd.org> pub 1024D/BCD241CB 2002-04-07 Ville Skyttä <ville.org> pub 1024D/F9561C31 2001-03-09 Jesper Skriver <jesper@FreeBSD.

PGP Keys B.org> Key fingerprint = D89F B292 7639 0D69 6ED9 58D1 71ED 0B47 A3B5 D19F sub 2048g/AE1BB1C4 2000-07-26 B.81.org> uid Gregory S. Sobral <dcs@freebsd. Sutter <gsutter@daemonnews.org> B.org> uid Gregory S. Sobral <dcs@FreeBSD.org> uid Brian Somers <brian@FreeBSD.org> Key fingerprint = 61D4 6A28 F282 482E 1D82 D077 E31E 323D 40AE 3052 uid Gregory S. Maxim Sobolev <sobomax@FreeBSD. Sobral <dcs@newsguy.3.84. Gregory Sutter <gsutter@FreeBSD.net> uid Maxim Sobolev <vegacap@i.83.org> sub 2048g/0A37BBCE 2000-10-10 253 . Sutter <gsutter@zer0.3.3. Brian Somers <brian@FreeBSD. Sutter <gsutter@pobox. Sutter <gsutter@freebsd.com> Key fingerprint = D161 E4EA 4BFA 2427 F3F9 5B1F 2015 31D5 845D FEDD uid Gregory S.org> uid Brian Somers <brian@uk.org> sub 2048g/02AEA3C6 1998-07-18 pub 1024D/845DFEDD 2000-10-10 Gregory S. Sutter <gsutter@zer0.org> Key fingerprint = 85C9 DCB0 6828 087C C977 3034 A0DB B9B7 8882 05AF uid Maxim Sobolev <sobomax@mail.82.org> uid Gregory S.com> Key fingerprint = AF 90 A6 A2 B5 8D 6C 28 37 F3 F4 47 8B 31 47 DF uid Daniel C.com.3. Sutter <gsutter@pobox. Daniel C. Sutter <gsutter@daemonnews. Apéndice B.OpenBSD.org> pub 1024D/888205AF 2001-11-21 Maxim Sobolev <sobomax@FreeBSD.org> pub 1024D/40AE3052 1998-07-18 Gregory S.org> pub 1024R/488A2DD5 2000-06-07 Daniel C.FreeBSD.com> Key fingerprint = 2D 91 BD C2 94 2C 46 8F 8F 09 C4 FC AD 12 3B 21 uid Brian Somers <brian@awfulhak.com> uid Gregory S.org> uid Brian Somers <brian@OpenBSD.org> pub 1024R/666A7421 1997-04-30 Brian Somers <brian@freebsd-services. Sutter <gsutter@freebsd.ua> pub 1024D/A3B5D19F 2000-07-26 Maxim Sobolev <sobomax@FreeBSD.org> B.org> uid Brian Somers <brian@uk.ru> uid Maxim Sobolev <sobomax@altavista.

3.3.87.org> pub 1024R/094724A9 1998-04-18 Jacques Vidrine <nectar@FreeBSD.85.org> pub 1024D/357D65FB 2002-05-14 Gordon Tetlow <gordont@gnf. Vidrine <nectar@FreeBSD.com> Key fingerprint = 5F 15 EA 78 A5 40 6A 0F 14 D7 D9 EA 6E 2B DA A4 B. Vidrine <n@nectar.org> Key fingerprint = AB2F 8D71 A4F4 467D 352E 8A41 5D79 22E4 71A2 8C73 uid Jacques A. Vidrine <n@nectar. Apéndice B. Nate Williams <nate@FreeBSD.89.org> Key fingerprint = 8EE8 5E72 8A94 51FA EA68 E001 FFF9 8AA9 C2AC 6BA4 sub 1024g/03EE46D2 2002-01-28 254 .3.cc> uid Jacques A. Vidrine <jacques@vidrine.3.3.org> sub 1024g/B796F020 2001-10-15 B.com> pub 1024D/1606DB95 2001-07-05 Jacques A.org> Key fingerprint = 00 F9 E6 A2 C5 4D 0A 76 26 8B 8B 57 73 D0 DE EE uid Jacques A.org> Key fingerprint = D4FA D8CA 2AED FCF4 90A3 3569 8666 0500 8394 B81F uid Yoshihiro TAKAHASHI <nyan@furiru. Yoshihiro Takahashi <nyan@FreeBSD. Gordon Tetlow <gordon@FreeBSD. Vidrine <n@nectar.star89.org> uid Yoshihiro TAKAHASHI <nyan@FreeBSD.org> pub 1024R/3FC71479 1995-09-08 Mikhail Teterin <mi@aldan. Vidrine <jvidrine@verio. Mikhail Teterin <mi@FreeBSD.net> uid Jacques A.galstar.org> pub 1024D/C2AC6BA4 2002-01-28 Nate Williams (FreeBSD) <nate@FreeBSD. Jacques Vidrine <nectar@FreeBSD.com> sub 2048g/1C32F6B1 1997-08-21 B. PGP Keys B.86.org> pub 1024D/8394B81F 2001-10-15 Yoshihiro TAKAHASHI <nyan@jp.com> Key fingerprint = 46BC EA5B F70A CC81 5332 0832 8C32 8CFF 1606 DB95 uid Jacques A.org> sub 2048g/57EDEA6F 2001-07-05 pub 1024D/71A28C73 1997-08-21 Jacques Vidrine <nectar@FreeBSD.org> Key fingerprint = 34EF AD12 10AF 560E C3AE CE55 46ED ADF4 357D 65FB uid Gordon Tetlow <gordon@FreeBSD.FreeBSD.88.org> sub 1024g/243694AB 2002-05-14 B.

3.fr> uid Sebastien Gioria <gioria@fluxus.ORG> uid Sebastien Gioria <gioria@Francenet.de> uid Joerg Wunsch <j@uriah.org> pub 1024D/0B92FAEA 2000-01-20 Garrett Wollman <wollman@FreeBSD.org> Key fingerprint = 4465 F2A4 28C1 C2E4 BB95 1EA0 C70D 4964 9196 B7D9 sub 1024g/E590ABA4 2002-01-28 B. Garrett Wollman <wollman@FreeBSD.org> pub 1024R/76A3F7B1 1996-04-27 Joerg Wunsch <joerg_wunsch@interface-business.org> pub 1024D/7C8DA4F4 2002-02-09 Sebastien Gioria <eagle@freebsd-fr.heep. Alexey Zelkin <phantom@FreeBSD. Apéndice B.de> uid Joerg Wunsch <joerg_wunsch@uriah.org> pub 1024D/9196B7D9 2002-01-28 Alexey Zelkin <phantom@FreeBSD.93.sax.3.90.92.org> Key fingerprint = 4627 19AF 4649 31BF DE2E 3C66 3ECF 741B 0B92 FAEA sub 1024g/90D5EBC2 2000-01-20 B. Jörg Wunsch <joerg@FreeBSD.3.de> Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E uid Joerg Wunsch <j@interface-business.sax. PGP Keys B.3.94.org> Key fingerprint = 41F4 4885 7C23 6ED3 CC24 97AA 6DDD B426 7C8D A4F4 uid Sebastien Gioria <gioria@FreeBSD.org> Key fingerprint = 992A 144F AC0F 40BA 55AE DE6D 752D 0A6C C744 F18B sub 1024g/90BD3231 2002-02-13 B.3.org> pub 1024D/C744F18B 2002-02-13 Nicholas Souchu <nsouch@freebsd.de> B.heep.net> sub 4096g/F147E4D3 2002-02-09 255 . Nicolas Souchu <nsouch@FreeBSD. Sebastien Gioria <gioria@FreeBSD.91.

LaTeX de Leslie Lamport y JadeTeX de Sebastian Rahtz. 256 . La versión impresa de este documento no hubiese sido posible sin los programas TeX de Donald Knuth. Se han usado las hojas de estilo DSSSL de Norm Walsh con personalización de niveles para las instrucciones de presentación de Jade. El texto esta escrito en SGML de acuerdo al DTD DocBook y es formateado automáticamente en diferentes formatos de presentación usando Jade. una herramienta DSSSL de software libre.Colophon Este libro es el resultado del trabajo de cientos de colaboradores del “Proyecto de Documentación de FreeBSD”.