diff --git a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml b/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml index e3a5a3b350..c3a3b0f0fb 100755 --- a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml @@ -9,101 +9,341 @@ Chris - Shumway - Reescrito por + Shumway + Reescrito por - Conceptos Básicos de Unix + Conceptos básicos de Unix - Sinópsis - basics + Sinopsis - El siguiente capítulo cubre la funcionalidad y - órdenes básicas del sistema operativo FreeBSD. - Mucho de este material es relevante para cualquier sistema - operativo tipo &unix;. Si es nuevo en FreeBSD, seguramente - querrá leer este capítulo cuidadosamente. + El siguiente capítulo cubrirá la funcionalidad y + comandos básicos del sistema operativo FreeBSD. + Mucho de este material es relevante para cualquier sistema + operativo tipo &unix;. + Siéntase libre de hojear este capitulo si está + familiarizado con el material. Si es nuevo en FreeBSD, seguramente + querrá leer este capítulo cuidadosamente. - Después de leer este capítulo, usted - sabrá: + Después de leer este capítulo, usted + sabrá: - - - Cómo usar la consola virtual de + + + Cómo usar las consolas virtuales de FreeBSD. - - - Cómo trabajan los permisos de ficheros en &unix;. - - - - La disposición de archivos de sistema en &os; por - defecto. - - - Cómo montar y desmontar archivos de sistema. - - - Qué son los procesos, demonios y señales. - - - - Qué es una cónsola (shell) y como cambiar el - ambiente de su entorno (login). - - - Cómo usar editores de texto basicos. - - - Qué son los dispositivos y nodos de dispositivos. - - - - Qué formato binario se utiliza en &os;. - - - Cómo leer los manuales para más - información. - - + + + Como trabajan los permisos de archivo &unix; junto + con el entendimiento de las banderas de archvo en &os;. + + + La disposición de archivos de sistema en &os; por + defecto. + + + La organización de disco de &os;. + + + Como montar y desmontar sistemas de archivos. + + + Qué son los procesos, daemons y señales. + + + Que es un shell, como cambiar su ambiente de login por defecto. + + + Como utilizar editores de texto básicos. + + + Que son los dispositivos y nodos de dispositivos. + + + Que formato binario es utilizado bajo &os;. + + + Como leer páginas de manual para más información. + + + + + + + Consolas virtuales y terminales + consola virtual + terminales + + FreeBSD puede ser utilizado de varias maneras. Una de ellas es + tecleando comandos en una terminal de texto. Mucha de la flexibilidad + y poder de un sistema operativo &unix; está inmediatamente + disponible al alcance de sus manos cuando usa FreeBSD de esta + manera. Esta sección describe que son terminales + y consolas, y como puede usarlas en FreeBSD. + + + La consola + consola + + Si no ha configurado FreeBSD para iniciar automaticamente un + entorno gráfico durante el arranque, el sistema le + presentará con un prompt de entrada despues del arranque, + justo despues que los scripts de inicio terminen de ejecutarse. + Usted verá algo similar a: + + Additional ABI support:. +Local package initialization:. +Additional TCP options:. + +Fri Sep 20 13:01:06 EEST 2002 + +FreeBSD/i386 (pc3.example.org) (ttyv0) + +login: + + Los mensajes pueden ser un poco diferentes en su sistema, pero + verá algo similar. Las última dos líneas son + las que nos interesan por el momento. La penúltima línea + dice: + + FreeBSD/i386 (pc3.example.org) (ttyv0) + + Esta línea contiene algunas partes de información + acerca del sistema que acaba de arrancar. Esta usted mirando una + consola FreeBSD, corriendo en un procesador Intel + o compatible de la arquitectura x86 + Esto es lo que i386 significa. Note que + incluso si no está ejecutando FreeBSD en un CPU Intel 386, + este va a ser i386. No es el tipo de su + procesador, sino la arquitectura la que es + mostrada aquí. + . + El nombre de esta máquina (cada máquina &unix; + tiene un nombre) es pc3.example.org, y usted + está ahora mirando su consola de sistema — la + terminal ttyv0. + + Finalmente, la última línea siempre es: + + login: + + Esta es la parte donde se supone que usted teclée + su nombre de usuario para entrar en FreeBSD. + La siguiente sección describe como puede hacer esto. + + + + Entrando a FreeBSD + + FreeBSD es un sistema multiusuario, multiprocesador. Esta + es la descripción formal que es dada usualmente a un + sistema que puede ser utilizado por muchas personas diferentes, + que simultaneamente corren muchos programas en un sola + máquina. + + Cada sistema multiusuario necesita alguna manera para + distinguir a un usuario del resto. En FreeBSD + (y en todos los sistemas operativos tipo &unix;), esto se + logra requiriendo que cada usuario debe firmarse + en el sistema antes de poder correr programas. Cada usuario + tiene un nombre único (el nombre de usuario) + y una llave secreta, personal (la contraseña). + FreeBSD preguntará por estos dos antes de permitirle a + un usuario correr cualquier programa. + + scripts de inicio + Justo despues que FreeBSD arranca y termina de correr sus + scripts de inicio + + Scripts de inicio son programas que son ejecutados + automaticamente por FreeBSD cuando arranca. Su función + principal es preparar las cosas para que todo lo demás + se ejecute, e iniciar cualquier servicio que tenga configurado + para correr en segundo plano haciendo cosas útiles. + , le presentará un prompt y solicitará + un nombre de usuario válido: + + login: + + Para efectos de este ejemplo, vamos a asumir que su nombre de + usuario es john. Teclée john + en este prompt y presione Enter. Se le debe presentar + un prompt para entrar una contraseña: + + login: john +Password: + + Teclée ahora la contraseña de john + y presione Enter. !La contraseña no + produce eco! no necesita preocuparse por eso en este + momento. Es suficiente decir que esto es hecho por razones de + seguridad. + + Si ha tecleado su contraseña correctamente, ya debe estar + firmado en FreeBSD en este momento y listo para probar todos los + comandos disponibles. + + Debe de ver el MOTD o mensaje del día + seguido por un prompt de comandos (un caracter #, + $ o %). Esto indica + que se ha firmado exitosamente en FreeBSD. + + + + Consolas múltiples + + Ejecutar comandos &unix; en una consola está bien, pero + FreeBSD puede correr muchos programas a la vez. Tener una consola + donde se pueden teclear comandos puede ser un poco de desperdicio + cuando un sistema operativo como FreeBSD puede correr docenas de + programas al mismo tiempo. Aquí es donde las + consolas virtuales pueden ser de mucha ayuda. + + FreeBSD puede ser configurado para presentarle diferentes + consolas virtuales. Puede cambiar de una de ellas a cualquier + otra consola virtual presionando un par de teclas en su teclado. + Cada consola tiene su propio canal de salida diferente, y FreeBSD + se ocupa de redireccionar correctamente la entrada del teclado y + la salida al monitor cuando cambia de una consola virtual a la + siguiente. + + Combinaciones especiales de teclas han sido reservadas por + FreeBSD para cambiar consolas + Una descripción bastante técnica y correcta + de todos los detalles de la consola FreeBSD y los controladores de + teclado pueden encontrarse en las páginas de manual de + &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; y + &man.kbdcontrol.1;. No nos explayaremos en los detalles aquí, + pero el lector interesado siempre puede consultar las páginas + de manual para una explicación más detallada y + profunda de como funcionan estas cosas. + . Puede utilizar + AltF1, + AltF2 hasta + AltF8 para cambiar + a una consola virtual diferente en FreeBSD. + + Mientras está cambiando de una consola a la siguiente, + FreeBSD se ocupa de salvar y restaurar la salida de pantalla. El + resultado es una ilusión de tener varias + pantallas y teclados virtuales que puede utilizar + para teclear comandos para que los corra FreeBSD. El programa que + usted lanza en una consola virtual no termina de correr cuando la + consola no está visible. Continúan ejecutándose + cuando se cambia a una consola virtual diferente. + + + + El archivo <filename>/etc/ttys</filename> + + La configuración por omisión de FreeBSD iniciará + con ocho consolas virtuales. Esta no es una configuración + estática por hardware y usted puede facilmente personalizar + su instalación para arrancar con más o menos consolas + virtuales. El número y propiedades de las consolas + virtuales están configurados en el archivo + /etc/ttys. + + Puede utilizar el archivo /etc/ttys para + configurar las consolas virtuales de FreeBSD. Cada línea no + comentada en este archivo (líneas que no inician con un + caracter #) contiene propiedades para una sola + terminal o consola virtual. La versión por omisión de + este archivo que se encuentra en FreeBSD configura nueve consolas + virtuales y habilita ocho de ellas. Son las líneas que inician + con ttyv: + + # name getty type status comments +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure + + Para una descripción detallada de cada columna en este + archivo y todas las opciones que puede usar para configurar las + consolas virtuales, consulte la página de manual &man.ttys.5;. + + + + Consola en modo monousuario + + Una descripción detallada de lo que es modo + monousuario puede encontrarse en . + No importa que solo exista una consola cuando ejecuta FreeBSD en + modo monousuario. No existen consolas virtuales disponibles. Las + configuraciones de la consola en modo monousuario se pueden encontrar + también en el archivo /etc/ttys. Busque la + línea que inicia con console: + + # name getty type status comments +# +# Si la consola está marcada como "insecure", entonces init preguntará +# por la contraseña de root al entrar a modo monousuario. +console none unknown off secure + + + Como los comentarios arriba de la línea console + indican, usted puede editar esta línea y cambiar + secure a insecure. Si hace + eso, cuando FreeBSD arranque en modo monousuario, todavía + preguntará por la contraseña de + root. + + Tenga cuidado al cambiar esto a + insecure. Si olvida la + contraseña de root, arrancar + en modo monousuario está un poco involucrado. Todavía + es posible, pero puede ser un poco difícil para alguien + que no se encuentra muy cómodo con le proceso de + arranque de FreeBSD y los programas involucrados. + + Permisos + UNIX - FreeBSD, cuya raiz histórica es el UNIX BSD, tiene - sus fundamentos basados en varios conceptos clave de UNIX. El primero, y - más remarcado, es que FreeBSD es un sistema operativo - multi-usuario. El sistema puede manejar varios usuarios trabajando - todos simultáneamente y en tareas que no guardan relación - entre sí. El sistema es el responsable de compartir y administrar - peticiones de dispositivos de hardware, periféricos, memoria y - tiempo de Unidad Central de Proceso (CPU) de manera equitativa para cada - usuario. + FreeBSD, cuya raiz histórica es el UNIX BSD, tiene + sus fundamentos basados en varios conceptos clave de UNIX. El primero, y + más remarcado, es que FreeBSD es un sistema operativo + multi-usuario. El sistema puede manejar varios usuarios trabajando + todos simultáneamente y en tareas que no guardan relación + entre sí. El sistema es el responsable de compartir y administrar + peticiones de dispositivos de hardware, periféricos, memoria y + tiempo de Unidad Central de Proceso (CPU) de manera equitativa para cada + usuario. + Debido a que el sistema es capaz de soportar múltiples + usuarios, todo lo que el sistema administra tiene un conjunto de + permisos que gobiernan quién puede leer, escribir y ejecutar el + elemento. Estos permisos se guardan como octetos divididos en tres + partes: una para el propietario del archivo, otra para el grupo al que + el archivo pertenece, y otra para cualquier otro. Esta + representación numérica funciona así: - Debido a que el sistema es capaz de soportar múltiples - usuarios, todo lo que el sistema administra tiene un conjunto de - permisos que gobiernan quién puede leer, escribir y ejecutar el - elemento. Estos permisos se guardan como octetos divididos en tres - partes: una para el propietario del archivo, otra para el grupo al que - el archivo pertenece, y otra para cualquier otro. Esta - representación numérica funciona así: - - - - - + permisos + + permisos de archivo + + Valor Permiso - Listado de Directorio + Listado de directorio @@ -158,148 +398,1794 @@ + + ls + + directorios - Si se muestra un listado expandido de directorio mediante - ls -l, se mostrarán en una columna los - permisos de fichero para el propietario, grupo y todos los demás. - Veamos como se descompone: + Puede utilizar el argumento de línea de comando + en &man.ls.1; para ver un listado + largo que incluye una columna con información acerca + de los permisos de archivo para el propietario, grupo y + los demás. Por ejemplo, un ls -l en + un directorio arbitrario puede mostrar: + + &prompt.user; ls -l +total 530 +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt +... + + Aquí está como se divide la primera columna + de ls -l: -rw-r--r-- - El primer carácter, de izquierda a derecha, es un - carácter especial que indica si se trata de un archivo normal, un - directorio, un dispositivo especial de tipo carácter o bloque, un - socket, o cualquier otro dispositivo de pseudo-archivo. Los siguientes - tres caracteres, expresados como rw- muestran los - permisos para el propietario del archivo. Los siguientes tres - caracteres, r-- muestran los permisos para el grupo - al que el archivo pertenece. Los últimos tres caracteres, - r--, muestran los permisos para el resto del mundo. - Un guión indica que el permiso está desactivado. En el - caso de este archivo, los permisos están asignados de tal manera - que el propietario puede leer y escribir en el archivo, el grupo puede - leer el archivo, y el resto del mundo sólo puede leer el archivo. - De acuerdo con la tabla que se muestra más arriba, los permisos - para este archivo serían 644, donde cada cifra - representa las tres partes de los permisos del archivo. + El primer caracter (más a la izquierda) indica si + este archivo es un archivo regular, un directorio, un + dispositivo especial de caracter, un socket o cualquier otro + dispositivo especial pseudo-archivo. En este caso, el - + indica un archivo regular. Los siguientes tres caracteres, + rw- en este ejemplo, dan los permisos + para el propietario del archivo. Los siguientes tres caracteres, + r--, dan los permisos para el grupo al que + el archivo pertenece. Los últimos tres caracteres, + r--, dan los permisos para el resto del + mundo. Un guión indica que el permiso está desactivado. + En el caso de este archivo, los permisos están + asignados de tal manera que el propietario puede leer y escribir + en el archivo, el grupo puede leer el archivo, y el resto del + mundo sólo puede leer el archivo. De acuerdo con la tabla + de arriba, los permisos para este archivo serían 644, + donde cada dígito representa las tres partes de los + permisos del archivo. + Todo ésto está muy bien, 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, leer y en los que pueden + escribir datos como si de cualquier otro archivo se tratara. Estos + archivos especiales de dispositivos se encuentran en el directorio + /dev. - Todo ésto está muy bien, 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, leer y en los que pueden - escribir datos como si de cualquier otro archivo se tratara. Estos - archivos especiales de dispositivos se encuentran en el directorio - /dev. + Los directorios también son tratados como archivos. Tienen + permisos de lectura, escritura y ejecución. El bit de + ejecución en un directorio tiene un significado + ligéramente distinto que para los archivos. Cuando un directorio + está marcado como ejecutable significa que se puede mirar dentro, + se puede hacer un cd (cambiar directorio) a él. + Esto también significa que dentro del directorio es posible + accesar archivos cuyos nombres son conocidos (sujeto, claro está, + a los permisos en los archivos mismos). - Los directorios también son tratados como archivos. Tienen - permisos de lectura, escritura y ejecución. El bit de - ejecución en un directorio tiene un significado - ligéramente distinto que para los archivos. Cuando un directorio - está marcado como ejecutable significa que se puede mirar dentro, - por ejemplo, se podría hacer un listado de ese directorio. + En particular, para poder realizar un listado de directorio, + el permiso de lectura debe ser activado en el directorio, + mientras que para borrar un archivo del que se conoce el + nombre, es necesario tener permisos de escritura y + ejecución en el directorio que contiene el archivo. - Hay más permisos, 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, asegúrese de mirar la página de manual de - &man.chmod.1;. + Existen más permisos, 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 como + establecerlos, asegúrese de mirar la página de manual de + &man.chmod.1;. + + + + + + Tom + Rhodes + Contribuido por + + + + + Permisos simbólicos + permisossymbolic + + Los permisos simbólicos, algunas veces referidos como + expresiones simbólicas, utilizan caracteres en lugar de valores + octales para asignar permisos a archivos o directorios. Las expresiones + simbólicas utilizan la sintaxis de (quién) (acción) + (permisos), donde los valores siguientes están disponibles: + + + + + + Opción + Letra + Representa + + + + + + (quién) + u + Usuario + + + + (quién) + g + Propietario de grupo + + + + (quién) + o + Otro + + + + (quién) + a + Todos (mundo) + + + + (acción) + + + Agregar permisos + + + + (acción) + - + Remover permisos + + + + (acción) + = + Activar permisos explicitamente + + + + (permisos) + r + Lectura + + + + (permisos) + w + Escritura + + + + (permisos) + x + Ejecución + + + + (permisos) + t + Bit Sticky + + + + (permisos) + s + Activar UID o GID + + + + + + Estos valores son utilizados con el comando &man.chmod.1; + de la misma manera que los anteriores, pero con letras. Por + ejemplo, usted podría usar el siguiente comando para + bloquear a otros usuarios el acceso a FILE: + + &prompt.user; chmod go= FILE + + Una lista separada por comas puede brindarse cuando más + de un conjunto de cambios se debe realizar a un archivo. Por + ejemplo el siguiente comando eliminará los permisos de + escritura de grupo y mundo en FILE, + y entonces agrega permisos de ejecución para todos: + + &prompt.user; chmod go-w,a+x FILE + + + + + + + + + Tom + Rhodes + Contribuido por + + + + + Banderas de archivo de &os; + + Además de los permisos de archivo discutidos + previamente, &os; soporta el uso de banderas de + archivo. Estas banderas agregan un nivel de seguridad + y control adicional sobre archivos, pero no sobre directorios. + + Estas banderas de archivo agregan un nivel de control + adicional sobre archivos, ayudando a asegurar que en algunos + casos ni siquiera root pueda eliminar + o alterar archivos. + + Las banderas de archivo son alteradas usando la utilidad + &man.chflags.1;, mediante una interfaz simple. Por ejemplo, + para habilitar la bandera imborrable de sistema en el archivo + file1, escriba el siguiente comando: + + &prompt.root; chflags sunlink file1 + + Y para dehabilitar la bandera imborrable de sistema, + simplemente escriba el comando previo con no + al frente de . Observe: + + &prompt.root; chflags nosunlink file1 + + Para ver las banderas en este archivo, utilice + &man.ls.1; con las opciones : + + &prompt.root; ls -lo file1 + + + La salida debe verse como la siguiente: + + -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 + + Varias banderas solo pueden ser agregadas o removidas + de archivos por el usuario root. En + otros casos, el propietario del archivo puede activar estas + banderas. Se recomienda que un administrador lea las + páginas de manual &man.chflags.1; y &man.chflags.2; + para más información. + - + Estructura de directorios - Como FreeBSD utiliza sus sistemas de archivos (file systems) para - determinar muchas operaciones fundamentales en el sistema, la - jerarquía del sistema de archivos es extremadamente importante. - Dado que la página de manual de &man.hier.7; proporciona una - descripción completa de la estructura de directorios, no la vamos - a repetir aquí. Para más información, puede - consultar &man.hier.7;. + jerarquía de directorios - De una especial importancia es el raiz (root) de todos los - directorios, el directorio /. Este directorio es el primero en ser - montado al arrancar y contiene contiene el sistema básico - necesario a la hora de iniciar. 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 de FreeBSD es + fundamental para obtener una compresión completa del + sistema. El concepto más importante de entender es el + del directorio raíz, /. Este directorio + es el primero en ser montado al momento de arranque y contiene + el sistema básico necesario para preparar al sistema + operativo para la operación en modo multiusuario. + El directorio raiz también contiene puntos de montaje + para cualquier otro sistema de archivos que se desee montar. + + Un punto de montaje es un directorio donde se pueden injertar + sistemas de archivos al sistema de archivos raíz. + Esto es explicado con mas detalle en . + Los puntos de montaje estándar inlcuyen + /usr, /var, /tmp, + /mnt y /cdrom. Estos + directorios están usualmente referenciados a entradas en + el archivo /etc/fstab. /etc/fstab + es una tabla que sirve como referencias al sistema y contiene + los diferentes sistemas de archivos y sus respectivos + puntos de montaje. La mayoría de los sistemas de archivos + en /etc/fstab son montados automaticamente + al momento de arranque desde el script &man.rc.8; + a menos que contengan la opción . + Se pueden encontrar detalles en . + + Una descripción completa de la jerarquía del + sistema de archivos está disponible en &man.hier.7;. + Por ahora, una breve revisión de los directorios + más comunes será suficiente. + + + + + + + Directorio + Descripción + + + + + / + Directorio raíz del sistema de archivos. + + + + /bin/ + Utilidades de usuario fundamentales tanto para el + ambiente monousuario como para el multiusuario. + + + + /boot/ + Programas y archivos de configuración utilizados + durante el arranque del sistema operativo. + + + + /boot/defaults/ + Archivos de configuración por defecto de + arranque; ver &man.loader.conf.5;. + + + + /dev/ + Nodos de dispositivo; ver &man.intro.4;. + + + + /etc/ + Archivos de configuración y scripts del sistema. + + + + /etc/defaults/ + Archivos de configuración por omisión del sistema; + ver &man.rc.8;. + + + + /etc/mail/ + Archivos de configuración para agentes de + transporte de correo como &man.sendmail.8;. + + + + /etc/namedb/ + Archivos de configuración de named; + ver &man.named.8;. + + + + /etc/periodic/ + Scripts que son ejecutados diariamente, semanalmente y + mensualmente vía &man.cron.8;; ver &man.periodic.8;. + + + + /etc/ppp/ + Archivos de configuración de ppp; + ver &man.ppp.8;. + + + + /mnt/ + Directorio vacio comunmente utilizado por administradores + de sistemas como un punto de montaje temporal. + + + + /proc/ + Sistema de archivos de procesos; ver &man.procfs.5;, + &man.mount.procfs.8;. + + + + /rescue/ + Programas enlazados estaticamente para recuperaciones + de emergencia; ver &man.rescue.8;. + + + + /root/ + Directorio home para la cuenta root. + + + + /sbin/ + Programas del sistema y utilidades fundamentales de + administración para ambientes monousuario y + multiusuario. + + + + /stand/ + Programas utilizados en un ambiente autocontenido (standalone). + + + + + /tmp/ + Archivos temporales. Los contenidos de + /tmp usualmente NO + son preservados despues de un rearranque del sistema. + Un sistema de archivos basado en memoria es frecuentemente + montado en /tmp. + Esto puede automatizarse usando variables relacionadas a + tmpmfs de &man.rc.conf.5 (o con una entrada en + /etc/fstab; ver &man.mdmfs.8;, + o para FreeBSD 4.X, &man.mfs.8;). + + + + + /usr/ + La mayoría de utilidades y aplicaciones de usuario. + + + + /usr/bin/ + Utilidades comunes, herramientas de programación y + aplicaciones. + + + + /usr/include/ + Archivos incluidos estándar de C. + + + + /usr/lib/ + Librerías de archivos. + + + + + /usr/libdata/ + Utilidades miscelaneas de archivos de datos. + + + + /usr/libexec/ + Daemons de sistema y utilidades de sistema (ejecutados + por otros programas). + + + + /usr/local/ + + Ejecutables locales, librerías, etc. + también usado como el destino por omisión + de la infraestructura de ports de FreeBSD. Dentro de + /usr/local, el esquema + general delineado por &man.hier.7; para + /usr debe ser utilizado. Las + excepciones son el directorio man, el cual está + directamente bajo /usr/local en + lugar de debajo de /usr/local/share + y la documentación de los ports está en + share/doc/port. + + + + + /usr/obj/ + Arbol destino de arquitectura específica producido por + la construcción del árbol + /usr/src. + + + + /usr/ports + La colección de Ports de FreeBSD (opcional). + + + + /usr/sbin/ + Daemons del sistema y utilidades del sistema (ejecutados por + usuarios). + + + + /usr/share/ + Archivos independientes de arquitectura. + + + + /usr/src/ + Archivos fuente BSD y/o local. + + + + /usr/X11R6/ + Ejecutables de la distribución X11R6, + librerías, etc (opcional). + + + + /var/ + Archivos multipropósito de log, temporales, en + tránsito y de spool. Un sistema de archivos basado + en memoria es montado algunas veces en + /var. + Esto puede automatizarse utilizando variables relacionadas + a varmfs de &man.rc.conf.5 (o con una entrada en + /etc/fstab; ver &man.mdmfs.8;, + o para FreeBSD 4.X, &man.mfs.8;). + + + + + /var/log/ + Archivos de log miscelaneos del sistema. + + + + /var/mail/ + Archivos de buzones de correo de usuarios. + + + + /var/spool/ + Directorios miscelaneos del sistema de spool de impresora + y correo + + + + /var/tmp/ + Archivos temporales. + Los archivos son usualmente preservados despues de un + rearranque del sistema, a menos que + /var sea un + sistema de archivos basado en memoria. + + + + /var/yp + Mapas NIS. + + + + + + + + + + + Organización de disco + + La unidad más pequeña que FreeBSD utiliza para + encontrar archivos es el nombre de archivo. Los nombres de archivo + son sensibles a las mayúsculas, lo que significa que + readme.txt y README.TXT + son dos archivos separados. FreeBSD no utiliza la extensión + (.txt) de un archivo para determinar si el + archivo es un programa, o un documento o alguna otra forma de datos. + + Los archivos son almacenados en directorios. Un directorio puede + estar vacío, o puede contener cientos de archivos. Un + directorio también puede contener otros directorios, + permitiéndole contruir una jerarquía de directorios + dentro de otro. Esto hace mucho más fácil la + organización de sus datos. + + Archivos y directorios son referenciados dando el + nombre de archivo o de directorio, seguido por una diagonal, + /, seguido por cualquier otro nombre de + directorio que sea necesario. Si tiene un directorio + foo, el cual contiene el directorio + bar, el cual contiene el archivo + readme.txt, entonces el nombre completo + o ruta al archivo es + foo/bar/readme.txt. + + Los directorios y archivos son almacenados en un sistema de archivos. + Cada sistema de archivos contiene exactamente un directorio en el nivel + más elevado, llamado el directorio raíz + para ese sistema de archivos. Este directorio raíz puede + entonces contener otros directorios. + + Hasta ahora esto es probablemente similar a cualquier otro sistema + operativo que pueda haber utilizado. Existen unas cuantas diferencias; + por ejemplo, &ms-dos; utiliza \ para separar nombres + de archivo y directorio, mientras que &macos; utiliza :. + + FreeBSD no utiliza letras de unidades, o otro nombre de unidad + en la ruta. No podría escribir c:/foo/bar/readme.txt + en FreeBSD. + + En cambio, un sistema de archivos es designado el + sistema de archivos raíz. El + directorio raíz del sistema de archivos raíz está + referenciado como /. Cualquier otro sistema + de archivos es entonces montado bajo el + sistema de archivos raíz. No importa cuantos discos tenga + en su sistema FreeBSD, cada directorio parece ser parte del + mismo disco. + + Suponga que tiene tres sistemas de archivos, llamdos A, + B y C. Cada sistema de + archivos tiene un directorio raíz, el cual contiene + otros dos directorios, llamados + A1, A2 (y de la misma manera + B1, B2 y + C1, C2). + + Llame a A el sistema de archivos raíz. + Si usara el comando ls para ver el contenido de + este directorio vería dos subdirectorios, A1 + y A2. El árbol de directorios se ve como + esto: + + + + + + + + / + | + +--- A1 + | + `--- A2 + + + + Un sistema de archivos debe ser montado en un directorio + en otro sistema de archivos. Ahora suponga que monta el + sistema de archivos B en el directorio + A1. El directorio raíz de + B reemplaza a A1, + y los directorios en B aparecen de + esta manera: + + + + + + + + / + | + +--- A1 + | | + | +--- B1 + | | + | `--- B2 + | + `--- A2 + + + + Cualquier archivo que esté en el directorio + B1 o B2 puede ser + alcanzado con la ruta /A1/B1 o + /A1/B2 según sea necesario. + Cualquier archivo que esté en /A1 + ha sido temporalmente escondido. Aparecerán de nuevo + si B es desmontado + de A. + + Si B ha sido montado en A2 + entonces el diagrama se vería como este: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + y las rutas serían /A2/B1 y + /A2/B2 respectivamente. + + Sistemas de archivos pueden ser montados uno sobre otro. Continuando + el ejemplo anterior, el sistema de archivos C + podría ser montado sobre el directorio B1 + en el sistema de archivos B, llevando a este + arreglo: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- B2 + + + + O C podría ser montado directamente + en el sistema de archivos A, bajo el directorio + A1: + + + + + + + + / + | + +--- A1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + Si está familiarizado con &ms-dos;, esto es similar, + aunque no idéntico, al comando join. + + Esto normalmente no es algo de lo que necesite preocuparse. + Tipicamente usted crea sistemas de archivos cuando instala FreeBSD + y decide donde montarlos, y entonces nunca los cambie a menos que + agregue un disco nuevo. + + Es enteramente posible tener un sistema de archivos raíz + extenso, y no necesitar crear otros. Existen alguas inconveniencias de + esta aproximación, y una ventaja. + + + Beneficios de múltiples sistemas de archivos + + + Diferentes sistemas de archivos pueden tener diferentes + opciones de montaje. Por ejemplo, con + una planeación cuidadosa, el sistema de archivos + raíz puede ser montado de solo-lectura, haciendole + a usted imposible borrar inadvertidamente o editar un archivo + crítico. Separando los sistemas de archivos escribibles + por usuarios, como /home, de otros + sistemas de archivos también les permite ser montados + nosuid; esta opción previene + que los bits suid/guid + en los ejecutables almacenados en el sistema de archivos + tengan efecto, mejorando posiblemente la seguridad. + + + + FreeBSD automaticamente optimiza el esquema de archivos + en un sistema de archivos, dependiendo de como el sistema + de archivos está siendo utilizado. Así que + un sistema de archivos que contiene muchos archivos pequeños + que son escritos frecuentemente tendrá una optimización + diferente de uno que contenga menos y más grandes archivos. + Teniendo un sistema de archivos grande esta optimización + se desmorona. + + + + Los sistemas de archivos de FreeBSD son muy robustos si + sufre una falla de electricidad. De todas maneras, una falla + eléctrica en un momento crítico todavía puede + dañar la estructura del sistema de archivos. Dividiendo + sus datos a través de múltiples sistemas de + archivos hace que sea más probable que el sistema se + levante, haciendole más fácil restaurar desde + un respaldo si fuera necesario. + + + + + Beneficios de un solo sistema de archivos + + + Los sistemas de archivos son de un tamaño fijo. Si crea + un sistema de archivos cuando instala FreeBSD y le da un tamaño + específico, tal vez descubra mas tarde que necesita hacer + la partición más grande. Esto no se logra facilmente + sin respaldar, recrear el sistema de archivos con el nuevo + tamaño y entonces restaurar los datos respaldados. + + + FreeBSD 4.4 y versiones posteriores presentan el + comando &man.growfs.8;, el cual hace posible incrementar + el tamaño del sistema de archivos al vuelo, eliminando + esta limitación. + + + + + Los sistemas de archivos están contenidos en particiones. + Esto no tiene el mismo significado del uso común del + término partición (por ejemplo, partición &ms-dos;), + debido a la herencia &unix; de &os;. Cada partición es + identificada por una letra desde a hasta + h. Cada partición puede contener solamente + un sistema de archivos, lo que significa que los sistemas de + archivos son usualmente descritos por su punto de montaje en la + jerarquía del sistema de archivos o por la letra de la + partición en la que están contenidos. + + FreeBSD también utiliza espacio de disco + como espacio de intercambio (swap). + El espacio de intercambio le brinda a FreeBSD + memoria virtual. Esto le permite a + su computadora comportarse como si tuviera más + memoria de la que realmente tiene. Cuando a FreeBSD se le + agota la memoria mueve algunos de los datos que no están + siendo utilizandos en ese momento al espacio de intercambio, + y los mueve de regreso (moviendo alguna otra cosa) cuando + los necesita. + + Algunas particiones tienen ciertas representaciones + asociadas con ellas. + + + + + + + + + Partición + + Representación + + + + + + a + + Normalmente contiene el sistema de archivos raíz + + + + b + + Normalmente contiene el espacio de intercambio (swap) + + + + c + + Normalmente el mismo tamaño de la porción + (slice) que lo encierra. Esto le permite a utilidades que + necesitan trabajar en la porción entera (por ejemplo, + un explorador de bloques dañados) trabajar en + la partición c. Usted normalmente no + debe crear un sistema de archivos en esta partición. + + + + d + + La partición d solía + tener un significado especial asociado con ella, aunque + ahora ya no lo tiene. Hasta este día, algunas + herramientas pueden operar extrañamente si se + les pide trabajar en la partición d, + así que sysinstall no + crear´ normalmente una partición d. + + + + + + Cada partición-que-contiene-un-sistema-de-archivos + es almacenada en lo que FreeBSD llama una porción (slice). + Porción es el término de FreeBSD para lo que comunmente se + conoce como partición, y de nuevo, esto se debe al + pasado &unix; de FreeBSD. Las porciones están numeradas, + empezando con 1, hasta 4. + + slices + particiones + peligrosamente dedicadas + + Los números de porción siguen al + nombre de dispositivo, a los que se les antepone una + s, iniciando en 1. Así que + da0s1 es la + primera porción en la primera unidad SCSI. Solo + pueden haber cuatro porciones físicas en un disco, + pero puede tener porciones lógicas dentro de + porciones físicas del tipo apropiado. Estas + porciones extendidas son numeradas iniciando con 5, + así que ad0s5 + es la primera porción extendida en el primer + disco IDE. Estos dispositivos son utilizados por + sistemas de archivos que esperan ocupar una porción. + + Prociones, unidades físicas peligrosamente + dedicadas, y otras unidades contienen particiones, + las cuales son representadas como letras desde a + hasta h. Esta letra es agregada al nombre + del dispositivo, así que + da0a es la partición + a en la primera unidad da, la cual está + peligrosamente dedicada. + ad1s3e es la quinta + partición en la tercera porción de la segunda + unidad de disco IDE. + + Finalmente, cada disco en el sistema es identificado. + El nombre de disco inicia con un código que indica + el tipo de disco, luego un número, indicando que disco + es. A diferencia de las porciones, la numeración de + discos inicia en 0. Los códigos comunes que usted + verá están listados en + . + + Cuando se refiere a una partición, FreeBSD requiere que + que también se nombre la porción y el disco que + contiene la partición, y al referirse a una porción + también debe referirse al nombre del disco. Haga esto + listando el nombre de disco, s (slice), el número + de porción y por último la letra de la partición. + Ejemplos se muestran en + . + + muestra un modelo + conceptual del esquema de un disco que debe ayudar a aclarar las + cosas. + + Para poder instalar FreeBSD debe primero configurar las + porciones del disco, luego crear particiones dentro de la + porción que utilizará para FreeBSD y luego crear + un sistema de archivos (o espacio de intercambio, swap) en + cada partición y decidir donde se van a montar esos + sistemas de archivos. + + + Códigos de dispositivos de disco + + + + + + + + Código + + Significado + + + + + + ad + + Disco ATAPI (IDE) + + + + da + + Disco de acceso directo SCSI + + + + acd + + CDROM ATAPI (IDE) + + + + cd + + CDROM SCSI + + + + fd + + Disco flexible + + + +
+ + + Muestra de nombres de disco, porción y partición + + + + + + + + + Nombre + + Significado + + + + + + ad0s1a + + La primera partición (a) en + la primera porción (s1) en el + primer disco IDE (ad0). + + + + da1s2e + + La quinta partición (e) en + la segunda porción (s2) en el + segundo disco SCSI (da1). + + + + + + + + Modelo conceptual de un disco + + Este diagrama muestra como ve FreeBSD el primer disco IDE + en el sistema. Se asume que el disco es de 4 GB de tamaño, + y contiene dos porciones de 2 GB (particiones &ms-dos;). La + primera porción contiene un disco &ms-dos;, C:, + y la segunda porción contiene una instalación FreeBSD. + Esta instalación de ejemplo tiene tres particiones, y una + partición swap. + + Cada una de las tres particiones tiene un sistema de archivos. + La partición a será utilizada + para el sistema de archivos raíz, e + para la jerarquía del directorio /var + y f para la jerarquía del directorio + /usr. + + + + + - Un punto de montaje es un directorio donde se pueden injertar al - sistema de archivos raiz otros sistemas de ficheros adicionales. Los - puntos de montaje convencionales incluyen /usr, - /var, /mnt y - /cdrom. Estos directorios directorios se - corresponden habitualmente con entradas en en archivo - /etc/fstab. /etc/fstab es una - tabla que sirve como referencias al sistema y contiene los diferentes - sistemas de archivos y sus respectivos puntos de montaje. 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) &man.rc.8; a no - ser que contengan la opción . - Consúltese la página del manual &man.fstab.5; para - más información acerca del formato del archivo - /etc/fstab y de las opciones que se pueden - especificar. + + .-----------------. --. +| | | +| DOS / Windows | | +: : > Primera porción, ad0s1 +: : | +| | | +:=================: ==: --. +| | | Partición a, montada como / | +| | > referida como ad0s2a | +| | | | +:-----------------: ==: | +| | | Partición b, usada como swap | +| | > referida como ad0s2b | +| | | | +:-----------------: ==: | Partición c, sin +| | | Partición e, usada como /var > sistema de archivos, la +| | > referida como ad0s2e | porción completa de FreeBSD, +| | | | ad0s2c +:-----------------: ==: | +| | | | +: : | Partición f, usada como /usr | +: : > referida como ad0s2f | +: : | | +| | | | +| | --' | +`-----------------' --' + + + +
+ + + + Montando y desmontando sistemas de archivos + + El sistema de archivos es visualizado de una + mejor manera como un árbol, enraizado, como + lo está, en /. + /dev, /usr y los + otros directorios en el directorio raíz son ramas, las + cuales pueden tener sus propias ramas, como + /usr/local, y así sucesivamente. + + sistema de archivos raíz + Existen varias razones para albergar algunos de + estos directorios en sistemas de archivos separados. + /var contiene los directorios + log/, spool/ y + varios tipos de archivos temporales, y como tal, puede + llenarse. Agotar el espacio del sistema de archivos raíz + no es una buena idea, así que dividiendo a /var + de / es frecuentemente favorable. + + Otra razón común para meter ciertos árboles + de directorios en otros sistemas de archivos es si van a estar + albergados en discos físicos separados, o si son discos + virtuales separados, como un montaje de + sistema de archivos de red, + o unidades de CDROM. + + + El archivo <filename>fstab</filename> + + sistemas de archivos + montado con fstab + + + Durante el proceso de arranque, + los sistemas de archivos listados en /etc/fstab + son montados automaticamente (a menos que estén + listados con la opción ). + + el archivo /etc/fstab contiene una + lista de líneas del siguiente formato: + + dispositivo /punto-de-montaje fstype opciones dumpfreq passno + + + + dispositivo + + Un nombre de dispositivo (el cual debe existir). + + + + + punto-de-montaje + + Un directorio (el cual debe existir), en + donde montar el sistema de archivos. + + + + + fstype + + El tipo de sistema de archivos para + pasarle a &man.mount.8;. El tipo de sistema de + archivos por omisión de FreeBSD es + ufs. + + + + + opciones + + Ya sea para sistemas + de archivos de lectura-escritura, o + para sistemas de archivos de solo-lectura, seguido + de cualquier otra opción que sea necesaria. + Una opción común es + para sistemas de archivos que no son normalmente + montados durante la secuencia de arranque. Otras + opciones son listadas en la página de manual + &man.mount.8;. + + + + + dumpfreq + + Esto es utilizado por &man.dump.8; para + determinar que sistema de archivos requiere volcado. Si + el campo no está declarado, se asume un valor + de cero. + + + + + passno + + + Esto determina el orden en el cual los sistemas de + archivos deben ser revisados. Los sistemas de archivos + que deben ser saltados deben tener su passno + en cero. El sistema de archivos raíz (el cual + necesita ser revisado antes que cualquier otro) debe tener + su passno puesto a uno, y otros + sistemas de archivos deben tener valores mayores a uno. + Si más de un sistema de archivos tiene el mismo + passno entonces &man.fsck.8; tratará + de revisar los sistemas de archivo en paralelo de ser + posible. + + + + + Consulte la página de manual de &man.fstab.5; para + mayor información del formato del archivo + /etc/fstab y las opciones que contiene. + + + + El comando <command>mount</command> + + sistemas de archivos + montaje + + + El comando &man.mount.8; es lo que se utiliza en última + instancia para montar sistemas de archivos. + + En su forma más básica, usted usa: + In its most basic form, you use: + + + &prompt.root; mount dispositivo punto-de-montaje + + + Existen cantidad de opciones, como se mencionó + en la página de manual &man.mount.8;, pero las + más comunes son: + + + Opciones de montaje + + + + + + Montar todos los sistemas de archivos + listados en /etc/fstab. + Excepto aquellos marcados como noauto, + excluidos por la bandera , o + aquellos que ya están montados. + + + + + + + + Realizar todo excepto la llamada real de montaje del + sistema. Esta opción es útil junto + con la bandera para determinar + lo que &man.mount.8; está tratando de + hacer en realidad. + + + + + + + + Forzar el montaje de un sistema de archivos + sucio (peligroso), o forzar la revocación + de accesos de escritura cuando se cambia el estatus + de un sistema de archivos de lectura-escritura + a solo-lectura. + + + + + + + + Montar el sistema de archivos de solo-lectura. + Esto es idéntico a utilizar el argumento + ( para versiones más + antiguas que &os; 5.2) en la opción . + + + + + + fstype + + + Montar el sistema de archivos dado con el tipo de + sistema de archivos dado, o montar solamente sistemas + de archivos del tipo dado, si se proporciona la + opción . + + ufs es el sistema de archivos + raíz por omisión. + + + + + + + + Actualizar puntos de montaje en el sistema + de archivos. + + + + + + + + Arrojar mayor información. + + + + + + + + Montar el sistema de archivos como lectura-escritura. + + + + + La opción toma una lista de opciones + separada por comas, incluyendo las siguientes: + + + + nodev + + + No interpretar dispositivos especiales + en el sistema de archivos. Esto es una opción + de seguridad útil. + + + + + noexec + + + No permitir la ejecución de binarios + en este sistema de archivos. Esta también + es una opción de seguridad útil. + + + + + nosuid + + + No interpretar banderas setuid o setgid en el + sistema de archivos. Esta también es una + opción de seguridad útil. + + + + + + + El comando <command>umount</command> + + sistemas de archivos + desmontar + + + El comando &man.umount.8; toma, como parámetro, un + punto de montaje, un nombre de dispositivo, o la opción + o . + + Todas las formas toman para forzar + el desmontaje, y para arrojar más + información. Considerese advertido que usar + no es una buena idea generalmente. Desmontar a la fuerza + distemas de archivos puede congelar la computadora o dañar + los datos en el sistema de archivos. + + y son utilizadas + para desmontar todos los sistemas de archivos montados, + posiblemente modificado por el tipo de sistema de archivos + listado despues de . De todas maneras + no trata de desmontar el sistema de + archivos raíz. + + + + + Procesos + + FreeBSD es un sistema operativo multi-tarea. Esto significa que + parece como si más de un programa estuviera corriendo al + mismo tiempo. Cada programa corriendo en cualquier momento dado es + llamado proceso. Cada comando que usted + ejecuta iniciará al menos un proceso nuevo, y hay un + número de procesos que corren todo el tiempo, manteniendo + el sistema de manera funcional. + + Cada proceso es individualmente identificado por un número + llamado ID de proceso, o PID, + y, como archivos, cada proceso también tiene un propietario + y un grupo. La información de propietario y grupo es utilizada + para determinar que archivos y dispositivos el proceso puede abrir, + usando los permisos de archivo discutidos anteriormente. La + mayoría de los procesos también tienen un proceso + padre. El proceso padre es el proceso que los inició. Por + ejemplo, si usted está tecleando comandos en el shell, entonces + el shell es un proceso, y cualquier comando que usted corre también + es un proceso. Cada proceso que usted corre de esta manera tendrá + como proceso padre a su shell. La excepción a esto es un + proceso especial llamado &man.init.8;. init es + siempre el primer proceso, así que su PID siempre es 1. + init es iniciado automaticamente por el kernel + cuando FreeBSD arranca. + + Dos comandos son particularmente útiles para ver los + procesos en el sistema, &man.ps.1; y &man.top.1;. el comando + ps es utilizado para mostrar una lista + estática de los procesos corriendo en ese momento, y + puede mostrar sus PID, cuanta memoria están usando, la + línea de comando con la que fueron iniciados, y mucho + más. El comando top despliega todos + los procesos que se están ejecutando, y actualiza la + pantalla cada vez que transcurren un par de segundos, para + que pueda ver lo que está haciendo su computadora. + + Por omisión, ps solo le muestra los comandos + que están corriendo y que son propiedad de usted. Por ejemplo: + + &prompt.user; ps + PID TT STAT TIME COMMAND + 298 p0 Ss 0:01.10 tcsh + 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) +37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) +48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi +48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) +72210 p0 R+ 0:00.00 ps + 390 p1 Is 0:01.14 tcsh + 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y + 6688 p3 IWs 0:00.00 tcsh +10735 p4 IWs 0:00.00 tcsh +20256 p5 IWs 0:00.00 tcsh + 262 v0 IWs 0:00.00 -tcsh (tcsh) + 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 + 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 + 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc + 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish + + Como puede ver en este ejemplo, la salida de &man.ps.1; está + organizada en un número de columnas. PID + es el ID de proceso discutido anteriormente. Los PIDs son asignados + iniciando desde 1, hasta 99999, y dan la vuelta de regreso al + principio cuando se terminan los números. La columna + TT muestra el tty en el que el programa está + corriendo, y puede ser ignorado con seguridad por el momento. + STAT muestra el estado del programa, y de nuevo, + puede ser ignorado con seguridad. TIME es la + cantidad de tiempo que el programa ha estado corriendo en el + CPU—esto no es usualmente el tiempo transcurrido desde que + inició el programa, ya que la mayoría de los + programas pasan mucho tiempo esperando que sucedan cosas antes + de que necesiten gastar tiempo en el CPU. Finalmente, + COMMAND es la línea de comando que fué + utilizada para ejecutar el programa. + + &man.ps.1; soporta un número de opciones diferentes para + cambiar la información que es desplegada. Uno de los conjuntos + más útiles es auxww. + despliega información acerca de todos los procesos + ejecutándose, no solamente los suyos. + despliega el nombre de usuario del propietario del proceso, así + como el uso de memoria. despliega información + acerca de los procesos daemon y provoca que + &man.ps.1; despliegue la línea de comando completa, en lugar + de truncarla cuando es muy larga para caber en la pantalla. + + La salida de &man.top.1; es similar. Una sesión de ejemplo + se ve como esta: + + &prompt.user; top +last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 +47 processes: 1 running, 46 sleeping +CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle +Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free +Swap: 256M Total, 38M Used, 217M Free, 15% Inuse + + PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND +72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top + 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 + 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA + 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm +48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu + 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd + 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt +... + + La salida está dividida en dos secciones. La cabecera (las + primeras cinco líneas) muestra el PID del último proceso + en correr, la carga promedio del sistema (la cual es una medida de que + tan ocupado está el sistema), el uptime del sistema (tiempo + desde el último reinicio) y la hora actual. Las otras cifras + en la cabecera se relacionan con cuantos procesos hay en ejecución + (47 en este caso), cuanto se está utilizando de memoria y espacio + de intercambio (swap), y cuando tiempo el sistema está gastando + en diferentes estados de CPU. + + Abajo hay una serie de columnas conteniendo información + similar a la salida de &man.ps.1;. De manera similar usted puede + ver el PID, el nombre de usuario, la cantidad de tiempo de CPU + tomada y el comando que fué ejecutado. &man.top.1; + también muestra por omisión la cantidad de espacio + de memoria tomada por el proceso. Esto está dividido en dos + columnas, una para el tamaño total y una para tamaño + residente—tamaño total es cuanta memoria la aplicación + ha necesitado y el tamaño residente es cuanto está + siendo utilizado realmente en ese momento. En este ejemplo puede ver + que &netscape; ha requerido casi + 30 MB de RAM, pero actualmente solo está usando + 9 MB. + + &man.top.1; automaticamente actualiza este desplegado cada + dos segundos; esto puede cambiarse con la opción . + + + + Daemons, señales y matar procesos + + cuando usted corre un editor es fácil controlar el editor, + decirle que cargue archivos y demás. Usted puede hacer esto + porque el editor brinda facilidades para hacerlo, y porque el editor + está pegado a una terminal. Algunos + programas no están diseñados para ser ejecutados con + entradas continuas por parte del usuario, así que se desconectan + de la terminal a la primera oportunidad. Por ejemplo, un servidor + web pasa todo el día respondiendo peticiones web, normalmente + no necesita ninguna entrada de su parte. Los programas que transportan + correo electrónico de un sitio a otro son otro ejemplo de + esta clase de aplicación. + + Llamamos a estos programas daemons. Daemons + eran personajes de la mitología griega; no eran ni buenos ni + malos, eran pequeños espíritus sirvientes que, en gran + medida, hicieron cosas útiles por la humanidad. Muy parecido + a como los servidores web y servidores de correo de hoy hacen cosas + útiles. Este es el por qué la mascota BSD ha sido, desde + hace mucho tiempo, el demonio de imagen alegre con tenis y un tridente. + + Existe un acuerdo de nombrar programas que normalmente corren + como daemons con una d al final. BIND + es el daemon de nombres de internet de Berkeley (y el programa + que en realidad ejecuta es llamado named), el + programa servidor de web Apache es + llamado httpd, el daemon de spool de impresora de + línea es lpd y así sucesivamente. + Este es un acuerdo, no una regla pura y dura; por ejemplo, el + daemon principal de correo para la aplicación Sendmail + es llamdo sendmail, y no maild, + como podría imaginarse. + + Algunas veces necesitará comunicarse con un proceso daemon. + Estas comunicaciones son llamadas señales, + y se puede comunicar con un daemon (o con cualquier otro proceso + ejecutándose) mandándole una señal. Existe un + número de señales diferentes que puede mandar—algunas + de ellas tienen un significado especial, otras son interpretadas por + la aplicación, y la documentación de la aplicación + le dirá como interpreta la señal esa aplicación. + Solo puede enviar una señal a un proceso del que usted es el + propietario. Si manda una señal a un proceso de alguien más + con &man.kill.1; o &man.kill.2; el permiso será denegado. + La excepción a esto es el usuario root, + que puede mandar señales a los procesos de todos. + + FreeBSD también enviará señales de + aplicación en algunos casos. Si una aplicación + está mal escrita, y trata de accesar memoria que no se + supone que accese, FreeBSD manda al proceso la señal + Violación de segmento + (SIGSEGV). Si una aplicación ha utilizado + la llamada de sistema &man.alarm.3; para ser alertada despues + de que un periodo de tiempo haya transcurrido entonces se le + mandará la señal de alarma (SIGALRM), + y así sucesivamente. + + Dos señales pueden usarse para detener un proceso, + SIGTERM y SIGKILL. + SIGTERM es la manera amable de matar un proceso; + el proceso puede recibir la señal, + darse cuenta que usted quiere que se apague, cerrar cualquier + archivo de log que pueda tener abierto y generalmente terminar + cualquier cosas que esté realizando en ese momento antes + de apagarse. En algunos casos un proceso puede incluso ignorar + a SIGTERM si se encuentra en medio de una + tarea que no puede ser interrumpida. + + SIGKILL no puede ser ignorada por un proceso. + Esta es la señal No me importa lo que estás + haciendo, detente ahora mismo. Si manda un SIGKILL + a un proceso, entonces FreeBSD detendrá ese proceso ahí + y en ese momento + No del todo cierto—existen algunas cosas que no pueden + ser interrumpidas. Por ejemplo, si el proceso está tratando + de leer desde un archivo que está en otra computadora de + la red, y la otra computadora no está disponible por + alguna razón (por estar apagada, o que la red tenga un fallo), + entonces el proceso se dice que es ininterrumpible. + Eventualmente al proceso se le acabará el tiempo de + espera, tipicamente despues de dos minutos. Tan pronto como esto + ocurra el proceso será terminado. + . + + Las otras señales que tal vez quiera utilizar son + SIGHUP, SIGUSR1 y + SIGUSR2. Estas son señales de propósito + general, y aplicaciones diferentes pueden hacer cosas diferentes + cuando se les envía. + + Suponga que ha cambiado su archivo de configuración de su + servidor web—tal vez le gustaría decirle al servidor + web que re-lea su configuración. Podría detener y + reiniciar httpd, pero esto resultaría en + un período breve de suspensión del servicio de su + servidor web, lo cual puede ser indeseable. La mayoría de + los daemons están escritos para responder a la señal + SIGHUP releyendo su archivo de configuración. + Así que en lugar de matar y reiniciar httpd + le podría mandar la señal SIGHUP. + Debido a que no hay una manera estándar para responder a estas + señales, diferentes daemons tendrán diferente comportamiento, + así que asegúrese de leer la documentación para + el daemon en cuestión. + + Las señales son enviadas utilizando el comando &man.kill.1;, + como lo muestra este ejemplo. + + + Enviando una señal a un proceso + + Este ejemplo muestra como enviar una señal a + &man.inetd.8;. El archivo de configuración de + inetd es + /etc/inetd.conf e inetd + re-leerá este archivo de configuración cuando + se le envíe un SIGHUP. + + + Encuentre el ID de proceso del proceso al que quiere + enviarle la señal. Haga esto usando &man.ps.1; y + &man.grep.1;. El comando &man.grep.1; es utilizado para buscar + a través de la salida, buscando la cadena que se + especifique. Este comando es ejecutado como un usuario + normal y &man.inetd.8; es ejecutado como root, + así que las opciones se le deben + proporcionar a &man.ps.1;. + + &prompt.user; ps -ax | grep inetd + 198 ?? IWs 0:00.00 inetd -wW + + Entonces el PID de &man.inetd.8; es 198. En algunos casos + el comando grep inetd también + puede salir en esta salida. Esto se debe a la manera en que + &man.ps.1; tiene que encontrar la lista de procesos + ejecutándose. + + + + Utilice &man.kill.1; para enviar la señal. Debido a que + &man.inetd.8; está siendo ejecutado por root + usted debe usar primero &man.su.1; para volverse root. + + &prompt.user; su +Password: +&prompt.root; /bin/kill -s HUP 198 + + En concordancia con la mayoría de los comandos &unix;, + &man.kill.1; no imprimirá ninguna salida si es exitoso. + Si envía una señal a un proceso del que no es + el propietario entonces verá kill: + PID: Operation not permitted. + Si usted no teclea bien el PID puede enviar la señal a un + proceso distinto, lo cual puede ser malo, o, si tiene suerte, + habrá enviado la señal a un proceso que no est6aacute; + en uso actualmente, y verá kill: + PID: No such process. + + + ¿Por qué utilizar <command>/bin/kill</command>? + + Muchos shells brindan el comando kill + como un comando incluido; esto es, el shell mandará + la señal directamente, en lugar de ejecutar + /bin/kill. Esto puede ser muy útil, + pero diferentes shells tienen diferentes sintaxis para + especificar el nombre de la señal que envía. En + lugar de tratar de aprederse todas ellas, puede ser más + simple solamente usar el comando + /bin/kill ... + directamente. + + + + + El envío de otras señales es muy similar, + solamente sustituya TERM o KILL + en la línea de comando según sea necesario. + + + Matar procesos aleatorios en el sistema puede ser una mala + idea. En particular, &man.init.8;, ID de proceso 1, es muy + especial. Ejecutar /bin/kill -s KILL 1 es + una manera rápida de apagar su sistema. Siempre + revise doblemente los argumentos con los que ejecuta &man.kill.1; + antes de presionar Enter. + - Intérpretes de órdenes (Shells) + Shells + shells + línea de comando - En FreeBSD, gran parte del trabajo diario se realiza a través - de un interfaz de la linea de órdenes llamado "shell". El - principal trabajo del shell es recoger órdenes del canal de - entrada y ejecutarlas. Muchos shells tienen también integradas - funciones para ayudarnos en las tareas cotidianas tales como la - manipulación de archivos, edición de líneas de - órdenes, macros de órdenes, expansión de - expresiones regulares en nombres de archivo y variables del sistema. - FreeBSD viene con un conjunto de shells, como sh, el shell Bourne y csh, - el shell C. Hay disponibles muchos otros shells en la "FreeBSD Ports - Collection" que son mucho más potentes, como bash y tcsh. + En FreeBSD, mucho del trabajo diario es realizado en una + interfaz de línea de comandos llamada shell. El trabajo + principal del shell es tomar comandos de un canal de entrada + y ejecutarlos. Muchos shells también tienen funciones + integradas para ayudar con las tareas diarias como manipulación + de archivos, manejo de archivos con expresiones regulares, + edición de línea de comando, macros de comandos y + variables de entorno. + FreeBSD viene con un conjunto de shells, como sh, + el shell Bourne y tcsh, el shell C mejorado. + Hay muchos otros shells disponibles desde la colección de + ports de FreeBSD, tales como zsh y + bash. - ¿Qué shell usar? Es cuestión de gustos. Si se - es programador de C se puede sentir más cómodo con tcsh, - un shell con una sintaxis similar al C. Si se proviene del mundo Linux o - se es nuevo en el interfaz de órdenes de Unix, se puede probar - con bash. 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. + ¿Qué shell usar? es realmente una cuestión + de gustos. Si es un programador de C se puede sentir más + cómodo con un shell tipo C, como tcsh. + Si viene del mundo Linux o si es nuevo en la interfaz de línea + de comandos de &unix; puede probar con bash. + El punto es que cada shell posee unas propiedades únicas que + pueden o no funcionar con su entorno de trabajo preferido, y que + tiene una opción sobre el shell a usar. - Una de las propiedades comunes de un shell es que completa los - nombres de archivo. Dada la introducción de las primeras letras - de una orden o del nombre de un archivo, se puede hacer que el shell - complete automáticamente el resto de la orden o el nombre del - archivo pulsando la tecla TAB. Aquí va un ejemplo. Supongamos - que se tienen dos archivos llamados foobar y - foo.bar. Se quiere borrar - foo.bar. Lo que habría que teclear es: - rm fo[TAB].[TAB]. + Una de las propiedades comunes de un shell es que completa los + nombres de archivo. Dada la introducción de las primeras letras + de un comando o del nombre de un archivo, se puede hacer que el shell + complete automaticamente el resto del comando o nombre de archivo + pulsando la tecla Tab en el teclado. + Aquí está un ejemplo. Suponga que tiene dos archivos + llamados foobar y foo.bar. + Usted quiere borrar foo.bar. Lo que + habría que teclear es: + rm fo[Tab].[Tab]. - El shell nos mostraría rm - foo[BEEP].bar. + El shell imprimiría rm + foo[BEEP].bar. + El [BEEP] es la campana de la consola, la cual es el shell + diciéndome que no pudo completar totalmente el nombre + de archivo porque hay más de una coincidencia. + Tanto foobar como foo.bar + inician con fo, pero solo se pudo completar + hasta foo. Si se teclea ., + y de nuevo Tab, entonces el shell es capaz de + introducir el resto del nombre de archivo por usted. + variables de entorno - 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. Tanto foobar como - foo.bar comienzan por fo, pero - solo se pudo completar hasta foo. Si se teclea - ., y de nuevo TAB, el shell será capaz de - introducir el resto del nombre por nosotros. + Otra función del shell son las variables de entorno. + Las variables de entorno son parejas de valores clave almacenados + en el espacio de entorno del shell. Este espacio puede ser leído + por cualquier programa invocado por el shell y, por lo tanto, + contiene mucha configuración de programas. Aquí hay + una lista de las variables de entorno más comunes y su + significado: + variables de entorno - Otra función del shell son las variables de entorno. Las - variables de entorno son parejas de valores clave almacenados en el - espacio de entorno del shell. Este espacio puede ser leído por - cualquier programa invocado por el shell y, por tanto, en él se - encuentra bastante información relativa a la configuración - de programas. Lo siguiente es una lista de las variables de entorno - más comunes y su significado: - - + @@ -311,313 +2197,581 @@ USER - Nombre de usuario con el que se ha entrado al sistema. + Nombre de usuario actual en el sistema. PATH - Lista de directorios, separada por puntos y coma, en los que - se busca ejecutables. + Lista de directorios, separados por punto y coma, en los que + se busca ejecutables. DISPLAY - Nombre en la red de la pantalla de X11 a la que conectarse, si - se encuentra disponible. + Nombre de red de la pantalla X11 a la que conectarse, + si está disponible. SHELL - El shell actual. + El shell actual. TERM - El nombre del terminal del usuario. Se usa para determinar - las posibilidades del terminal de datos. + El nombre de la terminal del usuario. Se usa para determinar + las capacidades de la terminal. TERMCAP - Base de datos donde encontrar los códigos de - escape necesarios para realizar diferentes funciones en el - terminal. + Base de datos donde encontrar los códigos de + escape necesarios para realizar diferentes funciones en la + terminal. OSTYPE - Tipo de sistema operativo. Por ejemplo, FreeBSD. + Tipo de sistema operativo. Por ejemplo, FreeBSD. MACHTYPE - Arquitectura de la CPU en la que el sistema se - está ejecutando. + Arquitectura del CPU en el que se está ejecutando + el sistema. EDITOR - El editor de texto preferido por el usuario. + El editor de texto preferido por el usuario. PAGER - El paginador de texto preferido por el usuario. + El paginador de texto preferido por el usuario. MANPATH - Lista de directorios en los que se busca páginas de - manual, separados por puntos y coma. + Lista de directorios separados por punto y coma + en los que se busca páginas de manual. - Visualizar o establecer una variable de entorno difiere ligeramente - de shell a shell. Por ejemplo, en los shells al estilo C como tcsh y - csh, se usaría setenv para establecer y - visualizar las variables de entorno actuales. Siguiendo el ejemplo, para - establecer o modificar el valor de EDITOR, bajo csh o - tcsh una orden como la siguiente establecería el valor de - EDITOR a /usr/local/bin/emacs: + Bourne shells + Establecer una variable de entorno difiere ligeramente + de shell a shell. Por ejemplo, en los shells al estilo C + como tcsh y csh, + se usaría setenv para establecer + las variables de entorno. Bajo shells Bourne como + sh y bash, se + usaría export para establecer + las variables de entorno actuales. Por ejemplo, para + establecer o modificar la variable de entorno + EDITOR, bajo csh o + tcsh un comando como este establece + EDITOR a + /usr/local/bin/emacs: &prompt.user; setenv EDITOR /usr/local/bin/emacs - Bajo los shells tipo Bourne (Bourne Shells): + Bajo shells Bourne: &prompt.user; export EDITOR="/usr/local/bin/emacs" - 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. Por ejemplo, echo - $TERM mostrará cualquiera que sea el valor que se le - haya establecido a TERM, porque el shell expande el valor - de TERM y se lo pasa al programa echo. + 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 comandos. Por ejemplo, echo $TERM + mostrará cualquiera que sea el valor que se le + haya establecido a $TERM, porque el shell expande el valor + de $TERM y se lo pasa al programa echo. - Los shells manejan muchos caracteres especiales, llamados - meta-caracteres, como representaciones especiales de datos. El mas - común es el carácter *, que representa - cualquier número de caracteres en un nombre de archivo. Estos - meta-caracteres especiales se pueden usar para la expansión de - nombres de archivos. Por ejemplo, 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. + Los shells manejan muchos caracteres especiales, llamados + meta-caracteres, como representaciones especiales de datos. El más + común es el caracter *, que representa + cualquier número de caracteres en un nombre de archivo. Estos + meta-caracteres especiales se pueden usar para la expansión de + nombres de archivos. Por ejemplo, teclear echo * es + casi lo mismo que introducir ls porque el shell + toma todos los archivos que coinciden con * y se + los pone en la línea de comandos para que echo + los vea. - Para evitar que el shell interprete estos caracteres especiales, 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. echo \$TERM muestra - $TERM tal cual. + Para evitar que el shell interprete estos caracteres especiales, + se pueden escapar del shell anteponiéndoles un caracter + diagonal (\). echo $TERM imprime + a qué está configurada su terminal. + echo \$TERM imprime $TERM como + es. - Cambiando de shell - - - La manera más fácil de cambiar de shell es usando la - orden chsh. Al ejecutar chsh se - nos situará dentro del editor de texto que figure en la variable - de entorno EDITOR o, de no estar configurada, se nos - abrirá vi. Cámbiese la línea - Shell: adecuadamente. - - También se le puede suministrar a chsh la - opción ; ésto establecerá el - shell por nosotros sin necesidad de entrar en el editor de texto. Por - ejemplo, si se desea cambiar el shell a bash, lo siguiente - realizará el ajuste: + Cambiando su shell + La manera más fácil de cambiar de shell es usando + el comando chsh. Ejecutando chsh + le colocará dentro del editor que esté configurado en + la variable de entorno EDITOR; no está + configurada, seá colocado en vi. Cambie + la línea Shell: para que concuerde. + + También se le puede suministrar a chsh + la opción ; ésto establecerá el + shell por usted, sin necesidad de entrar en el editor de texto. + Por ejemplo, si se desea cambiar el shell a bash, + lo siguiente realizará el ajuste: + &prompt.user; chsh -s /usr/local/bin/bash - Ejecutar chsh sin parámetros y cambiar el - shell desde allí tambien funcionaría. + Ejecutar chsh sin parámetros y + editar el shell desde ahí también funciona. - El shell que se desee usar debe figurar en el - archivo /etc/shells. Si se ha instalado un shell - desde la colección de ports, - entonces esto ya se habrá realizado. Si se ha instalado - manualmente el shell, se debe realizar el cambio pertinente. - - Por ejemplo, si se instaló manualmente - bash y se situó en - /usr/local/bin, debería hacer: + El shell que se desee usar debe estar + presente en el archivo /etc/shells. + Si se ha instalado un shell desde la + colección de ports, entonces + esto ya debió hacerse por usted. Si ha instalado + el shell manualmente, se debe realizar el cambio. + + Por ejemplo, si se instaló manualmente bash + y lo colocó en /usr/local/bin, + debería hacer: &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells - Y entonces volver a ejecutar chsh. + Y entonces volver a ejecutar chsh. Editores de texto - Gran parte de la configuración de FreeBSD se realiza - modificando archivos de texto. A causa de esto, es una buena idea - familiarizarse con un editor de texto. FreeBSD viene con unos cuantos - como parte del sistema base y muchos más se encuentran - disponibles en la colección de ports. + editores de texto + editores - El editor de textos más fácil y rápido de - aprender es uno llamado ee, cuyo nombre - proviene del inglés "easy editor" (editor fácil). Para - iniciar ee se debería teclear en la - línea de órdenes ee filename, donde - filename es el nombre del archivo que deseamos - editar. Por ejemplo, para editar /etc/rc.conf, - tecléese ee /etc/rc.conf. Una vez dentro de - ee, todas las posibles órdenes para manipular las funciones del - editor se presentan en la parte superior de la pantalla. El - carácter acento circunflejo ^ representa a - la tecla de control en el teclado, o sea que ^e significa pulsar - simultáneamente la tecla control y la letra e. - Para abandonar ee, se debe pulsar la tecla - escape y elegir abandonar (leave) el editor. El editor preguntará - entonces si se desean conservar los cambios si el archivo hubiera sido - modificado. + Gran parte de la configuración de FreeBSD se realiza + modificando archivos de texto. A causa de esto, es una buena idea + familiarizarse con un editor de texto. FreeBSD viene con unos cuantos + como parte del sistema base y muchos más se encuentran + disponibles en la colección de ports. - FreeBSD viene también con editores de texto mucho más - potentes. Por ejemplo, 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. De cualquier - manera, si se planea editar muchos textos, aprender un editor más - potente como vim o - emacs le ahorrará mucho tiempo a largo - plazo. + + ee + + + editors + ee + + El editor de textos más sencillo y fácil de + aprender es uno llamado ee, cuyo nombre + proviene del inglés "easy editor" (editor fácil). + Para iniciar ee se debe teclear en la + línea de comandos + ee nombre-de-archivo + donde nombre-de-archivo es el nombre + del archivo a ser editado. Por ejemplo, para editar /etc/rc.conf, + teclée ee /etc/rc.conf. Una vez dentro + de ee, todos los comandos para manipular + las funciones del editor están listadas en la parte + superior de la pantalla. El caracter ^ representa + la tecla Ctrl del teclado, por lo tanto + ^e se expande a la combinación de teclas + Ctrle. + Para abandonar ee, presione la tecla + Esc, elegir abandonar (leave) el editor. + El editor preguntará entonces si se desean conservar los + cambios si el archivo hubiera sido modificado. + + + vi + + + editors + vi + + + emacs + + + editors + emacs + + FreeBSD viene también con editores de texto mucho más + potentes, como vi, como parte del + sistema base, mientras que otros editores, como Emacs + y vim, son parte de la colección + de ports de FreeBSD + (editors/emacs y editors/vim). + Estos editores ofrecen mucha más funcionalidad y poder + a la expensa de ser un poco más complicados de aprender. + De cualquier manera si planea hacer mucho trabajo de edición + de texto, aprender un editor de texto más poderoso + como vim o Emacs + le ahorrará más tiempo a la larga. - + + Dispositivos y nodos de dispositivos + + Un dispositivo es un término utilizado + mayormente para actividades relacionadas con hardware + en un sistema, incluyendo discos, impresoras, tarjetas + gráficas y teclados. Cuando FreeBSD arranca, la + mayoría de lo que FreeBSD despliega son dispositivos + siendo detectados. Puede mirar a través de los + mensajes de arranque de nuevo visualizando + /var/run/dmesg.boot. + + Por ejemplo, acd0 es la + primera unidad CDROM IDE, mientras que kbd0 + representa el teclado. + + La mayoría de estos dispositivos en un sistema + operativo &unix; deben ser accesados a través de + archivos especiales llamados nodos de dispositivo, los + cuales se encuentran localizados en el directorio + /dev. + + + Creando nodos de dispositivo + Cuando agregue un nuevo dispositivo a su sistema, o + compile soporte para dispositivos adicionales, puede que + necesite crear uno o más nodos de dispositivo para + los nuevos dispositivos. + + + Script MAKEDEV + En sistemas sin DEVFS (esto concierne + a todas las versiones anteriores a FreeBSD 5.0), los + nodos de dispositivo son creados utilizando el script + &man.MAKEDEV.8; como se muestra abajo: + + &prompt.root; cd /dev +&prompt.root; sh MAKEDEV ad1 + + + Este ejemplo debe crear el nodo de dispositivo + apropiado para la segunda unidad IDE instalada. + + + + <literal>DEVFS</literal> Dispositivo de sistema de archivos (DEVice File System) + + El dispositivo de sistema de archivos, o DEVFS, + brinda acceso a dispositivos del espacio de nombres del kernel en el + espacio de nombres del sistema de archivos global. + En lugar de tener que crear y modificar nodos de dispositivo, + DEVFS mantiene este sistema de archivos en + particular por usted. + + Vea la página de manual &man.devfs.5; + para mayor información. + + DEVFS es utilizado por defecto en FreeBSD 5.0 y + posteriores. + + + + + + + Formatos binarios + + Para entender porque &os; utiliza el formato &man.elf.5;, + primero debe conocer un poco acerca de los tres formatos + de ejecutables dominantes para &unix;: + + + + &man.a.out.5; + + El formato objeto de &unix; más antiguo y + clásico. Utiliza una cabecera + corta y compacta con un número mágico al + inicio que es usado frecuentemente para caracterizar el + formato (vea &man.a.out.5; para más detalles). + Contiene tres segmentos cargados: .text, .data, y .bss + además de una tabla de símbolos y una tabla + de cadena. + + + + COFF + + El formato objeto de SVR3. La cabecera ahora consiste + de una sección de tabla, para que pueda tener más + y no solo las secciones .text, .data, y .bss. + + + + &man.elf.5; + + El sucesor de COFF, presentando + secciones múltiples y posibles valores de 32-bits + o 64-bits. Una gran desventaja: ELF + fué también diseñado asumiendo que + solamente existiría una ABI por cada arquitectura + de sistema. Esa asumción es en realidad bastante + incorrecta, e incluso ni en el mundo comercial SYSV (el + cual tiene al menos tres ABIs: SVR4, Solaris, SCO) se + mantiene como verdadera. + + FreeBSD trata de solucionar este problema de alguna + manera brindando una utilidad para marcar + un ejecutable ELF conocido con + información acerca de con que ABI cumple. Vea la + página de manual de &man.brandelf.1; para mayor + información. + + + + FreeBSD viene del campo clásico y ha + utilizado el formato &man.a.out.5;, una tecnología usada + y probada a través demuchas generaciones de liberaciones + BSD, hasta el inicio de la rama 3.X. Aunque era posible + construir y ejecutar binarios nativos ELF + (y kernels) en un sistema FreeBSD desde algún tiempo + antes de eso, FreeBSD inicialmente resistió el + empujón para cambiar a ELF + como el formato por omisión. ¿Por qué? bueno, cuando + el campo Linux realizó su dolorosa transición a + ELF, no fué tanto para escapar del + formato ejecutable a.out como lo fué de + su mecanismo de librerías compartidas inflexible basado en salto-tabla, + el cual hacía la construcción de librerías + compartidas muy difícil para proveedores y desarrolladores + por igual. Ya que las herramientas ELF + disponibles ofrecían una solución al problema de + librerías compartidas y eran vistas generalmente como + la manera de avanzar de todas maneras, el costo + de migración fué aceptado como necesario y se + realizó la transición. El mecanismo de + librerías compartidas de FreeBSD está basado de + manera más cercana al estilo de mecanismo de + librerías compartidas de &sunos; de Sun y, como tal, es + muy sencillo de utilizar. + + Entonces, ¿por qué existen tantos formatos diferentes? + + En el tenue, oscuro pasado, existía hardware simple. + Este hardware simple soportaba un sistema pequeño, simple. + a.out era completamente adecuado para el trabajo + de representar binarios en este sistema simple (un PDP-11). A + medida que la gente portaba &unix; desde este sistema simple, + retuvieron el formato a.out debido a que + era suficiente para los primeros portes de &unix; a arquitecturas + como 68k de Motorola, VAXen, etc. + + Entonces algún brillante ingeniero de hardware decidió + que si el podía forzar al software a realizar algunos trucos + sucios, entonces podría rasurar algunas puertas del + diseño y permitirle al centro de su CPU correr más + rapidamente. Aunque estaba hecho para trabajar con este nuevo + tipo de hardware (conocido estos días como RISC), + a.out no estaba bien adaptado para este + hardware, así que varios formatos fueron desarrollados + para obtener un mejor desempeño de este hardware que el + limitado, simple formato a.out podría + ofrecer. Cosas como COFF, ECOFF + y algunos otros oscuros fueron inventados y sus limitaciones + fueron exploradas antes de que las cosas parecieran decidirse en + ELF. + + Además, el tamaño de los programas estaban + volviendose gigantes y los discos (y la memoria física) + eran relativamente pequeños así que el concepto + de una librería compartida nació. El sistema + VM también se volvió más sofisticado. + Mientras cada uno de estos avances fué hecho utilizando + el formato a.out, su utilidad era reducida + más y más con cada opción nueva. Además, + la gente quería cargar dinamicamente cosas al momento + de ejecución, o descartar partes de su programa despues + que el código de inicio se ejecutara para salvar memoria + del núcleo y espacio de swap. Los lenguajes se volvieron + más sofisticados y la gente quería que el código + fuera llamado antes que main de manera automática. Muchos + hacks fueron hechos al formato a.out para + permitir que todas estas cosas sucedieran, y basicamente + funcionaron por un tiempo. Con el tiempo, a.out + no estaba para manejar todos estos problemas sin incrementar + la carga y complejidad en el código. Mientras ELF + resolvía muchos de estos problemas, hubiera sido doloroso + cambiar del sistema que basicamente funcionaba. Así que + ELF tuvo que esperar hasta que fué más + doloroso permanecer con a.out que migrar a + ELF. + + De todas maneras, al paso del tiempo, las herramientas + de construcción de las que FreeBSD derivó + sus herramientas de construcción (el ensamblador y + cargador especialmente) evolucionaron en dos árboles + paralelos. El árbol FreeBSD agregó librerías + compartidas y arregló algunos errores. Las personas de + GNU que originalmente escribieron estos programas los + reescribieron y agregaron soporte más simple para + construir compiladores cruzados (cross compilers), enchufando + diferentes formatos a voluntad, y así sucesivamente. + Ya que mucha gente quería construir compiladores + cruzados con FreeBSD como blanco, estaban de mala suerte + debido a que las fuentes antiguas que FreeBSD tenía + para as y ld + no estaban listas para esa tarea. La nueva cadena de herramientas + GNU (binutils) soporta compilamiento + cruzado, ELF, librerías compartidas, + extensiones C++, etc. Además, muchos proveedores están + liberando binarios ELF, y es una buena + cosa que FreeBSD los ejecute. + + ELF es más expresivo que a.out + y permite más extensibilidad en el sistema base. + Las herramientas ELF están mejor + mantenidas y ofrecen soporte de compilamiento cruzado, el + cual es importante para muchas personas. + ELF puede ser un poco más lento que + a.out, pero tratar de medirlo puede ser + difícil. También existen numerosos detalles + que son diferentes entre los dos en como mapean páginas, + manejan código de inicio, etc. Ninguno de estos es + muy importante, pero existen diferencias. Con el tiempo, el + soporte para a.out será eliminado + del kernel GENERIC, y eventualmente + eliminado del kernel una vez que la necesidad de ejecutar + programas a.out legados haya pasado. + + + Para más información Páginas de manual + páginas de manual - La documentación más exhaustiva de FreeBSD se - encuentra en la forma de páginas de manual. Casi todos los - programas del sistema vienen con un sucinto manual de referencia - explicando el funcionamiento básico y los diferentes argumentos. - Estos manuales pueden ser revisados con el programa man. El uso del - programa man es sencillo: + La documentación más exhaustiva de FreeBSD se + encuentra en la forma de páginas de manual. Casi todos los + programas del sistema vienen con un breve manual de referencia + explicando el funcionamiento básico y sus diferentes argumentos. + Estos manuales pueden ser revisados con el comando man. + El uso del comando man es simple: - &prompt.user; man command + &prompt.user; man comando - command es el nombre del programa del que se - quiere saber algo. Por ejemplo, para saber algo acerca del programa - ls tecléese: + comando es el nombre del comando del + que desea aprender. Por ejemplo, para saber algo acerca del + comando ls escriba: &prompt.user; man ls - El manual en línea está dividido en secciones - numeradas: + El manual en línea está dividido en secciones + numeradas: - Órdenes/programas de usuario. + Comandos de usuario. - LLamadas de sistema y códigos numéricos de - error. - - - Funciones de las librerías de C. + Llamadas al sistema y números de error. - Manejadores de Dispositivos. + Funciones en las librerías de C. - Formatos de Archivos. + Controladores de dispositivo. - Juegos y otros divertimentos. + Formatos de archivo. - Información miscelánea. + Juegos y otras diversiones. - Programas relativos al mantenimiento y operación del - sistema. + Información miscelanea. + + + + Comandos de mantenimiento y operación del sistema. Desarrolladores del Kernel. - - - En algunos casos, el mismo epígrafe puede aparecer en - más de una sección del manual en línea. Hay, por - ejemplo, un programa de usuario llamado chmod y una llamada de sistema - chmod(). En este caso se le puede especificar a man - cuál se desea especificando la sección: + + En algunos casos, el mismo tema puede aparecer en más de + una sección del manual en línea. Por ejemplo, + existe un comando de usuario chmod y una + llamada del sistema chmod(). En este caso, + se le puede decir al comando man + cual desea especificando la sección: &prompt.user; man 1 chmod - Esto nos mostrará la página del manual en línea - del programa de usuario chmod. Las referencias a una - sección concreta del manual en línea se sitúan - tradicionalmente entre paréntesis en la documentación - impresa, de tal manera que &man.chmod.1; se refiere al programa de - usuario chmod y &man.chmod.2; se refiere a la llamada - de sistema. + Esto desplegará la página de manual para + el comando de usuario chmod. Las referencias + a una sección concreta del manual en línea + son colocadas tracicionalmente entre paréntesis + en la documentación escrita, por lo tanto &man.chmod.1; + se refiere al comando de usuario chmod y + &man.chmod.2; se refiere a la llamada de sistema. - Esto está muy bien si se conoce el nombre del programa y - simplemente se quiere saber cómo usarlo. Pero, ¿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 : + Esto está muy bien si se conoce el nombre del programa y + simplemente se quiere saber como usarlo. Pero, ¿y si no + puede recordar el nombre del comando? Se puede usar man para que + realice una búsqueda mediante palabras clave en las descripciones + de programas utilizando el argumento : + + &prompt.user; man -k mail - &prompt.user; man -k mail + Con este comando se mostrará una lista de + comandos que tienen la palabra clave mail + en sus descripciones. Esto en realidad es funcionalmente + equivalente a usar el comando apropos. - Con esta orden se nos mostrará una lista de programas que - contienen la palabra clave mail en sus descripciones. - Ésto equivale a usar el programa apropos. + Así que , ¿está viendo todos esos comandos + elegantes en /usr/bin pero no tiene + ni la menor idea de lo que la mayoría de ellos hace? + simplemente haga: - 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, hágase un sencillo: - - &prompt.user; cd /usr/bin + &prompt.user; cd /usr/bin &prompt.user; man -f * - o + o - &prompt.user; cd /usr/bin + &prompt.user; cd /usr/bin &prompt.user; whatis * - que hace exactamente lo mismo. - + que hace exactamente lo mismo. + - - Archivos de información GNU + + Archivos de información GNU + Fundación de software libre - FreeBSD incluye muchas aplicaciones y utilidades producidas por la - Free Software Foundation (FSF). De manera adicional a las páginas - de manual estos programas vienen con documentos de hipertexto más - detallados, llamados archivos info, que pueden ser - revisados con el programa info o, si se ha instalado - emacs, el modo "info" de - emacs. + FreeBSD incluye muchas aplicaciones y utilidades producidas + por la Fundación de software libre (FSF, Free Software + Foundation). De manera adicional a las páginas de manual + estos programas vienen con documentos de hipertexto más + detallados, llamados archivos info, los + cuales pueden ser viualizados con el comando info + o, si tiene instalado emacs, con + el modo info de emacs. - Para usar el programa &man.info.1; simplemente - tecléese: + Para utilizar el comando &man.info.1;, simplemente + teclée: &prompt.user; info - Para una descripción breve, tecléese - h. Para una referencia rápida de un programa, - tecléese ?. + Para una breve introducción, teclée h. + Para una referencia rápida, teclée ?.