Вы находитесь на странице: 1из 63

Universidad Mariano Glvez de Guatemala Facultad de Ingeniera en Sistemas de Informacin y Ciencias de la Computacin. IX Ciclo Sistemas Operativos Abiertos Ing.

Hctor Santos

Sistema de Archivos Gestin de Procesos Gestin de Memoria

Gerson Josu Barrera Daz Carn: 1390 03 8465

INTRODUCCION
El sistema de archivo de Linux sigue todas las convenciones de Unix, lo cual significa que tiene una estructura determinada, compatible y homognea con el resto de los sistemas Unix. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema Unix no est ligado de una forma directa con la estructura del hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7 discos duros para crear las unidades c:, d: o m:. Todos el sistema de archivos de Unix tiene un origen nico la raz o root representada por /. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos ficheros se organizan en distintos directorios cuya misin y nombre son estndar para todos los sistemas UNIX. Un proceso es una instan instancia de un programa en ejecucin. Como se sabe, Linux es un sistema multitarea y multiusuario , lo cual nos dice q varios procesos pueden operarse simultneamente sin interrumpirse por lo cual en el presente trabajo veremos los diferentes procesos bajo los cuales trabaja Linux as como tambin los comandos para administrarlos Cuando hablamos de memoria virtual en Linux hablamos de utilizar el disco duro como una extensin de la memoria RAM y en el presente trabajo, veremos como crear y usar un rea SWAP tambin como trabja el Buffer de Cache en Linux.

OBJETIVOS
Conocer el funcionamiento del sistema de archivos de Linux, sus comandos y directorios que lo hacen funcionar, de una forma mas optima que otros sistemas operativos.

Aprender las fases en las q Linux trabajo los procesos asi como tambin la forma en que trabaja los mismos.

Conocer como poder gestionar la memoria en Linux.

Aprender como en si Linux es un sistema multitarea y multiusuario.

El sistema de Archivos Linux


El sistema de archivos UNIX est caracterizado por: Una estructura jerrquica. Un tratamiento consistente de la informacin de los archivos. Proteccin de los archivos. Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX siguen. Note, sin embargo que este estndar no intenta concordar en cada aspecto posible con alguna implementacin particular del sistema UNIX. De cualquier forma, muchos de los aspectos de este estndar estn basados en ideas encontradas en UNIX y sistemas similares a UNIX. Es posible despus de cuidadosa consideracin de otros factores, incluyendo: Prcticas comunes en la comunidad Linux. La implementacin de otras estructuras de sistemas de archivos. Los estndares aplicables. Definir dos categorizaciones ortogonales de archivos: Compartibles vs. No compartibles, y variables vs. Estticos. La informacin compartible es aquella que puede ser compartida entre varias mquinas diferentes; la no compartible es aquella que debe ser local a una mquina particular. Por ejemplo. Los directorios hogar de los usuarios son compartibles, pero los archivos de bloqueo de dispositivo (lock files) son no compartibles. La informacin esttica incluye binarios, libreras, documentacin y todo aquello que no cambia sin la intervencin del administrador del sistema. La informacin variable es todo lo que cambia sin la intervencin del administrador. El entendimiento de estos principios bsicos ayudar a guiar la estructura, a lo largo de este documento, y en cualquier sistema de archivos bien planeado, esto brindar consistencia adicional.

La distincin entre informacin compartible y no compartible es necesaria por varias razones:

En un ambiente de red (i.e. ms de un host en un site), existe una buena cantidad de informacin que se puede compartir entre diferentes mquinas para ahorrar espacio y facilitar la tarea de administracin. En un ambiente de red, ciertos archivos contienen informacin especfica a una sola mquina, por tanto, estos sistemas de archivos no pueden ser compartidos (sin tomar medidas especiales). Las implementaciones de facto del sistema de archivos no permitan que la jerarqua /usr fuera montada slo-lectura, porque contena archivos y directorios que necesitaban ser escritos muy frecuentemente. ste es un factor que debe atacarse cuando algunas partes de /usr se comparten en una red, o se montan slo-lectura debido a otras consideraciones tales como la seguridad. La distincin "compartible" puede ser usada para soportar, por ejemplo:

Una particin /usr (o componentes de /usr) montada (slo-lectura) atraves de la red (usando NFS). Una particin /usr (o componentes de /usr) montada desde medios de slo-lectura. Un cd-rom puede ser considerado como un sistema de archivos slo-lectura compartido con otros sistemas Linux utilizando el sistema de correo como una red.

La distincin "esttica" contra "variable" afecta el sistema de archivos de dos maneras principales: Dado que / contiene ambos tipos de informacin, variable y esttica necesita montarse lectura-escritura. Dado que el /usr tradicional contiene ambos tipos de informacin variable y esttica y dado que podramos desear montarlo slo-lectura, es necesario proporcionar un mtodo para hacer que /usr se monte slolectura. Esto se logra con la creacin de una jerarqua /var que se monta lectura-escritura (o es parte de una particin lectura-escritura tal como /), que toma mucho de la funcionalidad tradicional de la particion /usr.

Tabla con ejemplos. CompartibleNoCompartibleEsttica/usr/etc/home/bootVariable/var/spool/mail/var/run/

var/spool/news/var/lock3. El directorio raz /. Esta seccin describe la estructura del directorio raz. El contenido del sistema de archivos raz ser el adecuado para arrancar, bootear, restaurar, recuperar y/o reparar el sistema: Para arrancar el sistema, debe estar presente lo suficiente como para montar /usr y otras partes no-esenciales del sistema de archivos. Esto incluye herramientas, informacin de configuracin y del cargador de arranque (boot loader) y alguna otra informacin esencial al arrancar. Para habilitar la recuperacin y/o la reparacin del sistema, estar presente en el sistema de archivos raz aquellas herramientas que un administrador experimentado necesitara para diagnosticar y reconstruir un sistema daado. Para restaurar un sistema, estarn presentes en el sistema de archivos raz aquellas herramientas necesarias para restaurar el sistema desde respaldos (cd_room, Puertos USB, etc.). La principal preocupacin que se usa para balancear las anteriores consideraciones, que favorecen el colocar muchas cosas en el sistema de archivos raz, es la meta de mantener / tan pequeo como sea razonablemente posible. Por varias razones es deseable mantener el sistema de archivos / Es frecuentemente montado desde una medida muy pequea. Por ejemplo muchos usuarios de Linux instalan y recuperan sistemas montando / como un disco ram, que es copiado de un disco de 1.44Mb nico. El sistema de archivos / tiene muchos archivos de configuracin especficos de un sistema. Posibles ejemplos son un kernel que es especfico al sistema, un hostname diferente, etc. sto significa que el sistema de archivos / no es siempre compartible entre sistemas en red. Mantenindolo pequeo en sistemas en red, se minimiza el espacio perdido en los servidores por archivos no-compartibles. Tambin permite estaciones de trabajo con discos duros locales ms pequeos. Aunque usted podra tener el sistema de archivos / en una particin grande, y ser capaz de llenarla segn sus deseos, siempre habr gente con particiones ms pequeas. Si usted tiene ms archivos instalados, podra encontrar incompatibilidades con otros sistemas que utilizan un sistema de archivos / en particiones ms pequeas. Si usted es un desarrollador entonces estara volviendo su suposicin en un problema para un gran

nmero

de

usuarios.

Los errores del disco, que corrompen la informacin en el sistema de archivos / son un problema mayor que los errores en cualquier otra particin. Un sistema de archivos / pequeo es menos propenso a corromperse como resultado de una falla del sistema. En este documento, actualmente se requiere un sistema de archivos / escribible (debido principalmente a /etc/mtab). De cualquier forma, no se necesita que el sistema de archivos / est totalmente almacenado localmente. La particin / no tiene porque estar almacenada localmente para ser especfica del sistema por ejemplo, podra estar montada de un servidor NFS. El software no deber crear o requerir archivos o subdirectorios especiales en el directorio /. La estructura del sistema de archivos Linux proporciona ms que suficiente flexibilidad para cualquier paquete. Cualquier paquete que ocupe un directorio bajo la raz / del sistema de archivos sufre de bastante arrogancia. El Directorio Raz bin boot dev etc home lib mnt root sbin tmp usr var Binarios de comandos esenciales Archivos estticos de cargador de arranque(boot-loader) Archivos de dispositivos Configuracin del sistema local-mquina Directorios home de los usuarios Libreras compartidas Punto de montaje de particiones temporales Directorio hogar del usuario root Binarios del sistema esenciales Archivos temporales Segunda jerarqua mayor Informacin variable

Cada directorio listado ser discutido en detalle en una sub-seccin separada ms delante. /usr y /var, cada uno tiene en su propia seccin en este documento. El kernel de Linux estara localizado en, ya sea / en /boot. Si est localizado en / recomendamos usar el nombre VMLINUX o VMLINUZ,

nombres que han sido usados en paquetes fuentes del kernel de Linux recientes. /bin Binarios de comandos esenciales de usuarios (disponibles para todos los usuarios). bin contiene comandos que pueden ser utilizados por ambos los usuarios y /el administrador del sistema, pero que son requeridos en el modo /mono-usuario (single-user mode) puede tambin contener comandos que son /utilizados indirectamente por algunos scripts. Todos los binarios utilizables slo por root, tales como daemons,init,getty, update, etc. Estaran localizados en /sbin /usr/sbin dependiendo si son o no esenciales. No habr subdirectorios dentro de /bin. Los binarios de los comandos que no son suficientemente esenciales para estar en /bin estarn localizados en /usr/bin, los elementos que son utilizados por usuarios solamente (pero no por root) (mail,chsh, etc) no son suficientemente esenciales para estar dentro de la particin /. Archivos requeridos en /bin: Comandos generales: Los siguientes comandos han sido incluidos porque son esenciales. Algunos estn presentes debido a que tradicionalmente han estado en /bin. arch, cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, ed, false,kill, in, login, mxdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, setserial, sh, sfty, su, sinc, true, umount, uname. Si /bin/sh es Bash, entonces /bin/sh sera en enlace simblico o duro a /bin/bash dado que bash se comporta diferente cuando es llamado como sh bash. La pdksh que puede ser la /bin/sh en los discos de instalacin y sera igualmente arreglada a que /bin/sh sea un enlace simblico a /bin/ksh. El uso de enlaces simblicos en estos casos permite que los usuarios vean fcilmente que /bin/sh no es una shell estilo bourne.

Dado que la localizacin estndar de facto de shell estilo c es /bin/csh,si y slo si est disponible en el sistema una shell estilo c equivalente (tal como /bin/tcsh, esta, estara disponible con el nombre /bin/csh. /bin/csh puede ser un enlace simblico a /bin/tcsh /usr/bin/tcsh). Los comandos [ y test estn interconstruidos en bash, pdksh, zsh, y las shell korn recientes, esencialmente cada remplazo de las shell tipo bourne que hay para Linux. Estos comandos estaran localizados dentro de /usr/bin. (se deben incluir como binarios separados con cualquier sistema Linux que intente cumplir con el estndar POSIX). bin/arch producira el mismo resultado que uname-m, especificamente; 386 /o; 486 para sistemas intel y compatibles. Comandos para restauracin. Estos comandos se han incluido para hacer posible el restaurar el sistema (siempre que / este intacto). tar, gzip, gunzip (enlace hacia gzip), zcat (enlace hacia gzip). Si se hacen respaldos de sistemas utilizando otros programas, entonces la particin / contendr los componentes mnimos necesarios. Por ejemplo, muchos sistemas incluiran cpio como la segunda utilera ms usada para respaldos despus de tar. Pero si jams se espera restaurar el sistema desde la particin /, entonces estos binarios se pueden omitir (i.e.,montar / en chip ROM, montar /usr desde NFS). Si la restauracin del sistema se planea a traves de la red, Entonces FTP TFTP (junto con todo lo necesario para obtener una conexin FTP) estaran disponibles en la particin /. Los comandos de restauracin pueden aparecer en, ya sea /bin /usr/bin en sistemas Linux diferentes.

Comandos de red. stos son nicamente los binarios de red que los usuarios y root querrn o necesitarn ejecutar que no sean los que estn en /usr/bin /usr/local/bin

domainname, hostname, netstat, ping. /boot: Archivos estticos del cargador de arranque (boot loader). Este directorio contiene todo para arrancar excepto los archivos de configuracin y el instalador de mapas. En su sentido ms sencillo /boot es para cualquier cosa que se utiliza antes de que el kernel ejecute /sbin/init. Esto incluye sectores maestros de arranque (master boot sectors) guardados, archivos de mapeo de sectores y cualquier otra cosa que no es editada directamente a mano.Los programas necesarios para arreglar que el cargador de arranque sea capaz de arrancar un archivo (tal como el instalador de mapas [lilo] ) estarn localizados en /sbin. Los archivos de configuracin para cargadores de arranque podran estar localizados en /etc. Como se expuso arriba, el kernel de Linux puede estar localizado en / en /boot, si se localiza en /boot, recomendamos que se le d un nombre ms descriptivo. /dev Archivos de dispositivos. ste es el directorio de los dispositivos. Contendra un archivo por cada dispositivo que el kernel de Linux puede soportar. dev tambin contiene un script llamado MAKEDEV el cual puede crear /dispositivos cuando se necesiten. Puede contener un MAKEDEV local para /dispositivos slo-local. MAKEDEV debe hacer previsin para crear cualquier archivo de dispositivo especial listado en la lista de nmeros mayores/menores, no slo aquellos de una distribucin particular. Los enlaces simblicos no se deben distribuir en sistemas Linux, sino slo como se prev en la lista de dispositivos de Linux. Esto es porque las instalaciones locales seguro diferirn de aquellas de la mquina del desarrollador. Adems si un script de instalacin configura enlaces simblicos en la instalacin, estos enlaces seguramente no se actualizarn si se hacen cambios locales en el hardware. Cuando se usan responsablemente, como sea, son de buen uso.

Este documento incorpora como referencia la lista de dispositivos de Linux, mantenida por: Peter.Anvin@linux.org: El encargado de los dispositivos Linux. Todos los archivos especiales de dispositivo seguirn el estndar en ese documento, que est disponible en ftp.yggdrasil.com en /pub/device-list. /etc : Configuracin del sistema local a la mquina. etc contiene archivos y directorios que son locales al sistema actual. Ningn binario debe ir directamente dentro de /etc. Los binarios que en el pasado se encontraban en /etc, irn en /sbin /usr/sbin. sto incluye archivos tales como init, getty y update. Los binarios tales como hostname que son utilizados por usuarios ordinarios y por root no iran en /sbin sino en /bin. /etc --- Configuracin de sistemas locales de mquina. X11 skel Archivos de configuracin para el x11 Esqueletos de configuracin de usuarios

etc/skel es la localidad para los llamados archivos esqueletos de /usuarios, que le son dados por defecto cuando un nuevo usuario recibe una /cuenta, este directorio puede contener subdirectorios para diferentes /grupos de usuarios (i.e./etc/skell/apoyo, /etc/skell/usuarios). etc/X11 es el lugar recomendado para todos los archivos de configuracin /de X11 locales a la mquina. Este directorio es necesario para permitir el /control local si /usr se monta slo-lectura. Los archivos que deben ir en /este directorio incluyen Xconfig (y/o XF86Config) y Xmodmap. Los subdirectorios de /etc/X11 pueden incluir aquellos para xdm y para cualesquier otros programas (como algunos manejadores de ventanas por ejemplo) que lo necesiten. Recomendamos que los manejadores de ventanas con un solo archivo de configuracin que es un archivo.*wmrc por defecto, que lo llamen system.*wmrc (a menos que exista una alternativa ampliamente aceptada) y que no utilize un subdirectorio. Cualquier subdirectorio de un manejador de ventanas se llamara idntico al binario del manejador de ventanas.

etc/X11/xdm retiene los archivos de configuracin de xdm. sto es la /mayora de los archivos normalmente hallados en /usr/lib/X11/xdm; Vea la /seccion 5,/var/lib/xdm, para mayor informacin. La siguiente seccin intenta parcialmente examinar la descripcin del contenido de /etc con algunos ejemplos: Definitivamente sta no es una lista exhaustiva. Archivos requeridos en /etc: Archivos generales: Estos archivos son necesarios en la mayora de los sistemas Linux. adjtime, csh.login, disktab, fdprm, fstab, gettydefs, group, inittab, issue, ld.so.conf, lilo.conf, magic, motd, mtab, mtools, passwd, profile, psdatabase, securetty, shells, syslog.conf, tercamp, ttytype Archivos de Red: Estos archivos estaran instalados en la mayora de los sistemas Linux. exports, ftpusers, gateways, hosts, host.conf, host.equiv, host.lpd, inetd.conf, networks, printcap, protocols, resolv.conf.rpc, services Hay dos modelos para la instalacin de los scripts de comandos "rc" los cuales son invocados por init(8) al momento de arrancar, el modelo /etc/rc.d/* estilo SystemV. Cualquiera puede ser utilizado o una mezcla de los dos. Los sistemas con la suite de passwords sombreadas (shadow password) tendrn archivos de configuracin adicionales, en /etc (/etc/shadow y otros) y /usr/bin (useradd, usermod, y otros).

/home: Directorios hogar de los usuarios (opcional) home es un concepto algo estndar, pero es claramente un sistema de /archivos especfico de un site. El arreglo diferir de mquina a mquina.

/Esta seccin describe una localizacin sugerida para los directorios hogar /de los usuarios, aun as, recomendamos que todas las distribuciones /Linux usen este lugar como la localizacin por defecto de los /directorios hogar. En sistemas pequeos, cada directorio de usuario es uno de los subdirectorios debajo de /home, p.ej. /home/smith, /home/torvalds, /home/operador, etc. En sistemas grandes (especialmente cuando los directorios /home son compartidos entre varias mquinas usando NFS) es til subdividir los directorios hogar. La subdivisin puede ser llevada a cabo utilizando subdirectorios tales como /home/apoyo, /home/huspedes, /home/estudiantes, etc. Muchas personas prefieren poner las cuentas de los usuarios en una variedad de lugares. Por tanto, ningn programa deber confiar en esta localizacin. Si usted desea encontrar el directorio hogar de cualquier usuario, debera usar la funcin de librera getpwent(3) en vez de contar con /etc/passwd, por que la informacin puede estar almacenada remotamente usando sistemas como NIS. /lib: Libreras compartidas y mdulos de kernel escenciales El directorio /lib contiene aquellas imgenes de las libreras compartidas que se necesitan para arrancar el sistema y ejecutar los comandos en el sistema de archivos raz. lib --- libreras compartidas y modulos de kernel esenciales. modules Modulos de kernel cargables. Esto incluye /lib/libc.so.*, /lib/libm.so.*, el enlazador dinmico compartido /lib/ld.so.*, y otras libreras compartidas requeridas por binarios en /bin y /sbin. Las libreras que son necesitadas slo por los binarios en /usr (como cualquier binario de X Window) no pertenecen a /lib. Slo las libreras compartidas requeridas para ejecutar los binarios dentro de /bin y /sbin deben estar aqu. La librera libm.so.* podra estar localizada en /usr/lib si no es requerida por nada en /bin /sbin.

Por razones de compatibilidad, /lib/cpp necesita existir como una referencia al pre-procesador C instalado en el sistema. La localizacin usual del binario es /usr/lib/gcc-lib/<target>/<version>/cpp. Puede existir un enlace/lib/cpp apuntando a este binario o a cualquier otra referencia a este binario que exista en el sistema de archivos. (Por ejemplo, /usr/bin/cpp se usa frecuentemente). La especificacin para /lib/modules est an por aparecer. /mnt: Punto de montaje para sistemas de archivos montados temporalmente. Este directorio se ha provisto para que el administrador pueda montar temporalmente sistemas de archivos cuando lo necesite. El contenido de este directorio es un asunto local y no debe afectar la manera en la cual se ejecuta ningn programa. Recomendamos la no utilizacin de este directorio por programas de instalacin, y sugerimos utilizar un directorio temporal adecuado que no este en uso por el sistema. /proc: Sistema de archivos virtual de informacin de procesos y del kernel. El sistema de archivos proc se est convirtiendo en el estndar de facto para el manejo de informacin de procesos y de sistema en vez de /dev/kmem y otros mtodos similares. Recomendamos fuertemente esto para el almacenamiento y obtencin de informacin de procesos as como otra informacin del kernel y de memoria. /root: Directorio hogar de root (opcional) El directorio / es tradicionalmente el directorio hogar del usuario root en los sistemas UNIX. /root se usa en muchos sistemas Linux y en algunos sistemas UNIX. El directorio hogar de la cuenta de el usuario root puede ser determinada por el desarrollador o por preferencias locales. Las posibilidades obvias incluyen /, /root, y /home/root. Si el directorio hogar de root no est almacenado en la particin raz, ser necesario asegurarse que tome / por defecto si no puede ser localizado.

NOTA: Se recomienda contra el uso de la cuenta root para cosa mundanas tales como leer el correo y ver las noticias (mail & news) sino que se use solamente para la administracin del sistema. Por esta razn recomendamos que no aparezcan subdirectorios como Mail y News en el directorio hogar de la cuenta del usuario root. Recomendamos que el Mail para root y postmaster sean redirigidos a un usuario ms adecuado. /sbin: Binarios del Sistema (Alguna vez mantenidos en /etc) Los tiles usados por la administracin del sistema (y otros comandos que slo root utiliza) estn almacenados en /sbin, /usr/sbin, y /usr/local/sbin. /sbin tpicamente contiene binarios esenciales para arrancar el sistema adems de los binarios en /bin. Cualquier cosa que se ejecuta despus de que se sabe que /usr se ha montado (cuando no hay problemas) debera estar en /usr/sbin. Los binarios de administracin de sistema slo-locales deben estar localizados en /usr/local/sbin. Decidir que cosa va en los directorios de /sbin es sencillo: Si un usuario necesitar ejecutarlo, debe de ir en otro lado. Si slo ser ejecutado por el administrador del sistema o por root como scripts de administracin, entonces debe ir en /sbin (o en /usr/sbin o en /usr/local/sbin, si el archivo no es vital para la operacin del sistema). Archivos como chfn que los usuarios usan slo ocasionalmente deben aun estar en /usr/bin. ping aunque es absolutamente necesario para el root (recuperacin de la red y diagnstico) es tambin frecuentemente usado por los usuarios y por esa razn debe ir en /bin. Los usuarios ordinarios no tendrn que poner ninguno de los directorios sbin en su bsqueda (path). Recomendamos que los usuarios tengan permisos de lectura y ejecucin en todo lo que se encuentra en /sbin excepto tal vez ciertos programas; setuid y setgid. La divisin entre /sbin y /bin no fue creada por motivos de seguridad o para evitar que los usuarios vieran el sistema operativo, sino para proveer una buena particin entre binarios que todos usan y los que se usan, principalmente las tareas de administracin. No hay ganancia inherente en seguridad en hacer que /sbin este fuera del alcance de los usuarios. Archivos requeridos en /sbin:

Comandos Generales. clock, getty, init, update, mkswap, swapon, swapoff, telinit.

Comandos de Apagado. fastboot, fasthalt, halt, reboot, shutdown. Comandos de manejo de sistemas de archivos. fdisk, fsck, fsck.*, mkfs, mkfs.* Donde * = uno de ext, ext2 minix, msdos, xia, y tal vez otros. Comandos del sistema de archivos ext2 (opcional) badblocks, dumpe2fs, e2fsck, mke2fs, mklost+found, tune2fs. Instalador del mapa del cargador de arranque. lilo Comandos de Red. arp, ifconfig, route. Archivos opcionales en /sbin: los siguientes.

Binarios estticos. (Compilados estticamente) ln esttico sln y sync esttico ssync son tiles cuando las cosas salen mal. El principal uso de sln (reparar enlaces simblicos incorrectos en /lib despus de una actualizacin mal orquestada) ya no es preocupacin mayor ahora que existe el programa ldconfig (usualmente localizado en /usr/sbin) y puede actuar como una mano guiadora al actualizar las libreras dinmicas. sync esttico es til en algunas ocasiones de emergencia. Note que estas no necesitan ser versiones compiladas estticamente de los ln y sync estndares, pero pueden ser. El binario ldconfig es opcional en /sbin, dado que un site puede escoger ejecutar ldconfig al arrancar, en vez de slo cuando se actualizan las libreras compartidas. (No est claro si es o no ventajoso ejecutar ldconfig en cada arranque). Aun as, a algunos les gusta tener ldconfig a la mano para las siguientes (muy comunes) situaciones: Se acaba de remover /lib/<archivo>. No se puede encontrar el nombre de la librera porque ls est enlazado dinmicamente. Se est usando una shell que no tiene ls interconstruida y no se sabe como usar "echo * " como reemplazo. Se tiene un sln, pero no se sabe como nombrar al enlace. ldconfig, sln, ssync. Miscelneos Para lidiar con el hecho de que muchos teclados vienen con una tasa de repeticin tan alta como para hacerlos inutilizables, se puede instalar kbdrate en /sbin en algunos sistemas. Dado que la accin por defecto del kernel ante la combinacin de teclas Ctrl-Alt-Del es un re arranque instantneo duro, es recomendable generalmente deshabilitar esta conducta antes de montar el sistema de archivos raz con modo lecturaescritura. Algunas suites init son capaces de deshabilitar Ctrl-Alt-Del, pero otras pueden requerir el programa ctrlaltdel, el cual puede ser instalado en /sbin en estos sistemas. ctrlaltdel, kbdrate

/tmp: Archivos temporales. tmp se utiliza para archivos temporales, preferentemente en un /dispositivo rpido (un sistema de archivos basado en memoria por ejemplo) La "persistencia" de la informacin que es almacenada en /tmp es diferente de aquella que sea almacenada en /var/tmp. /tmp puede ser limpiada en cada arranque o a intervalos relativamente frecuentes. Por tanto, no se debe esperar que la informacin almacenada en /tmp permanezca por algn periodo largo de tiempo. Los programas deben utilizar /tmp /var/tmp (que era originalmente /usr/tmp) de acuerdo a los requerimientos esperados de la informacin, pero no deben confiar en alguna persistencia temporal particular en cualquier directorio de almacenamiento temporal. Los administradores de sistemas pueden elegir enlazar /tmp a algn otro directorio, tal como /var/tmp; esto es til, por ejemplo, para conservar espacio en la particin raz. Si esto se lleva a cabo, entonces la persistencia de archivos en /var/tmp debe ser al menos tan larga como la de /tmp. tmp puede estar e un disco RAM. /var/tmp no debe nunca localizarse en /algun dispositivo RAM.

La Jerarqua /usr
usr es la segunda mayor seccin del sistema de archivos. /usr es /informacin compartible, de slo-lectura, esto significa que /usr, debe ser /compartible entre varias mquinas que corren Linux y no se debe /escribir. Cualquier informacin que es local a una mquina o vara con el /tiempo, se almacena en otro lugar. Ningn paquete grande (como TeX o GNU Emacs) debe utilizar un subdirectorio directo bajo /usr, en vez, debe haber un subdirectorio dentro de /usr/lib (o /usr/local/lib si fue instalado completamente local) para ese propsito, con el sistema X Window se hace una excepcin debido a un considerable precedente y a la prctica ampliamente aceptada. /usr --- Segundo mayor punto de montaje (permanente)

X11R6 Sistema X Window Versin 11 release 6 X386 Sistema X Windows Versin 11 release 5 en plataformas X 86 bin La mayora de los comandos de usuario dict Listas de palabras doc Documentacin miscelnea etc Configuracin del Sistema (todo el site) games Juegos y binarios educacionales include Archivos header incluidos por programas C info Directorio primario del sistema GNU Info lib Libreras local Jerarqua local (vaca justo despus de la instalacin principal) man Manuales en lnea sbir Binarios de Administracin del Sistema No-Vitales share Informacin independiente de la arquitectura src Cdigo fuente Los siguientes enlaces simblicos a directorios pueden estar presentes. Esta posibilidad se basa en la necesidad de preservar la compatibilidad con sistemas anteriores hasta que en todas las implementaciones se pueda asumir el uso de la jerarqua /var. /usr/adm ------------------> /var/adm /usr/preserve -------------> /var/preserve /usr/spool ----------------> /var/spool /usr/tmp ------------------> /var/tmp /var/spool/locks ----------> /var/lock Una vez que el sistema ya no requiera ms alguno de los anteriores enlaces simblicos, el enlace se puede remover, si se desea. Notablemente, slo se necesita poco esfuerzo para remover completamente /usr/preserve, dado que slo ex y vi lo utilizan. /usr/X11R6: El sistema X Window, Version 11 release 6 Esta jerarqua est reservada para el sistema X Window, Version 11 release 6 y archivos relacionados. /usr/X11R6 --- X Window System (Version 11, release 6) bin doc

include lib man Para simplificar los problemas y hacer XFree86 ms compatible con el sistema X Window en otros sistemas, los siguientes enlaces simblicos deben estar presentes. /usr/bin/X11 ------------> /usr/X11R6/bin /usr/lib/X11 ------------> /usr/X11R6/lib/X11 /usr/include/X11 --------> /usr/X11R6/include/X11 En general, el software no se debe instalar o manejar va los anteriores enlaces simblicos. Slo estn para la utilizacin por usuarios. La dificultad est relacionada con la versin y el release del sistema X Window; en perodos transicionales es imposible saber que release de X11 est utilizndose. Por la misma razn no debe existir un enlace desde /usr/X11 apuntando a la jerarqua del sistema X Window actual. /usr/X386: El sistema X Window, Version 11 release 5 en plataformas X 86 Esta jerarqua es generalmente idntica a /usr/X11R6, excepto que los enlaces simblicos de /usr deben estar ausentes si est instalado /usr/X11R6 /usr/bin: La mayora de los comandos del usuario. ste es el directorio principal de comandos ejecutables en el sistema. mh X11 comandos para el sistema de manejo de correo M H Enlace simblico hacia /usr/X11R6/bin

Debido a que los interpretadores de scripts de los shell (invocados con #! <ruta> en la primera lnea del script de shell) no pueden depender de una ruta, es ventajoso el estandarizar la localizacin de ellos. La shell Bourne y C estan fijos en /bin, pero Perl, Python, Tlc se encuentran en muchos lugares diferentes /usr/bin/perl, /usr/bin/python y /usr/bin/tcl deben referenciar a los intrpretes de shell perl, python y tcl respectivamente.

stos pueden ser enlaces simblicos a la localizacin fsica de los intrpretes de shell.

/usr/dict: Listas de palabras Archivos recomendados en /usr/dict words Tradicionalmente este directorio contiene slo el archivo words de palabras inglesas, el cual es utilizado por look(1) y varios programas de ortografa, words puede utilizar ortografa americana o britnica. Los sites que requieran ambos, pueden enlazar words a /usr/dict/american-english /usr/dict/british-english. Las listas de palabras para otros lenguajes se pueden aadir usando el nombre en ingls para ese lenguaje, por ejemplo, /usr/dict/french, /usr/dict/danish, etc. stos deben, si es posible, utilizar un juego de caracteres ISO 8859 que sea apropiado para el lenguaje en cuestin, si es posible el juego de caracteres ISO 8859-1 (Latin1) debe ser utilizado (esto es a veces imposible) Cualquier otra lista de palabras, tal como el directorio web2, debe ser incluido aqu, si est presente. Las razones tras tener slo las listas de palabras aqu es que ellas son los nicos archivos comunes a todos los verificadores de ortografa. /usr/etc: Configuracin del sistema (todo el site) Almacenar la configuracin en /usr/etc del software que se encuentra en /usr/bin y /usr/sbin es un problema. Hace que el montar /usr slo-lectura de un CDROM o a travs de NFS sea difcil en el mejor de los casos. Una posible solucin que se consider fue eliminar completamente /usr/etc y especificar que todas las configuraciones se almacenen en /etc. Un problema con esta aproximacin es que no anticipa propiamente la

posibilidad de que muchos sites pueden querer tener algunos archivos de configuracin que no sean locales de mquina. Eventualmente se decidi que /etc deber ser el nico directorio que sea referenciado por los programas (esto es, todos deben buscar configuraciones en /etc y no en /usr/etc). Cualquier archivo de configuracin que necesite ser para todo el site y que no es necesario antes de montar /usr (o en una situacin de emergencia debe entonces estar localizado en /usr/etc. Entonces archivos especficos (en /etc), en mquinas especficas pueden ser o no ser enlaces simblicos a los archivos de configuracin localizados en /usr/etc. Esto tambin significa que /usr/etc es tcnicamente un directorio opcional en el sentido estricto, pero an as recomendamos que todos los sistemas Linux lo incorporen. No se recomienda que /usr/etc contenga enlaces simblicos que apunten a archivos en /etc. Esto es innecesario e interfiere con el control local en mquinas que comparten un directorio /usr. /usr/include: Directorio para archivos include estndar. Aqu es donde todos los archivos include de uso general del sistema para programacin en lenguajes C y C++ deben ser localizados. /usr/include Archivos include X11 Enlace simblico hacia /usr/X11R6/include/X11 arpa Definiciones del protocolo definido por ARPNET. asm Enlace simblico hacia /usr/scr/linux/include/asm-<arch>. bsd Archivos include de compatibilidad con BSD. g++ Archivos include de GNU C++. gnu Archivos include GNU. linux Enlace simbolico a /usr/src/linux/include/linux. net Definiciones genricas relacionadas con redes. netax25 Definiciones especficas a +AX25 ( ARRL AX25). netinet Definiciones especficas a TCP/IP. netipx Definiciones especficas a +IPX (Novel IPX/SPX). protocols Definiciones de protocolos ( Mayormente basadas en INET) readline La librera readline GNU. rpc Definiciones RPC de Sun Microsystems. rpcsvc Definiciones de servicios RPC de Sun Microsystems. sys Archivos include de generacin de sistemas.

El subdirectorio arpa contiene definiciones de cabecera de protocolos para los protocolos ARPANET, TCP/IP, definiciones para ftp, prototipos telnet y material similar. El subdirectorio net contiene definiciones genricas relacionadas con redes, define la interface sistema-kernel, detalles de la familia de protocolo, etc. El subdirectorio netinet contiene definiciones especificas de INET (DARPA Internet, que tambin es conocida como TCP/IP ) ARRL AX.25 es mejor conocido como packet radio. Los protocolos novell IPX/SPX son parte de los servicios de archivos Novell Netware. /usr/lib: Libreras para programas y paquetes. usr/lib incluye libreras objeto, binarios del programa compilador e /informacin esttica de varias clases, ambos, cdigos ejecutable ( por /ejemplo los binarios internos de gcc estn localizados bajo //usr/lib/gcclib ) y otros tipos de informacin. /usr/lib/ - libreras para programacin y paquetes: X11 emacs games groff gcc-lib kbd Mh news smail terminfo texmf uucp zoneinfo Enlace simblico a /usr/X11R6/lib/X11 Archivos de soporte estticos para el editor GNUEmacs. Archivos de datos estticos para /usr/games. Libreras / Directorios para GNU groff Archivos/ Directorios especficos del sistema para gcc. Tablas de traduccin de teclado e informacin relacionada. Libreras para el sistema de manejo de correo MH: Cnews/INN. Smail. Directorios para la base de datos terminfo. TeX/MF ( y LaTeX ) libreras de informacin. Comandos de UUCP. Configuracin e informacin de la zona horaria.

Histricamente, /usr/lib ha incluido adems algunos comandos ejecutables tales como sendmail y makewhatis. Dado que makewhatis no es referenciado por otros programas, no hay problemas al moverlo a un directorio binario. Dado que los usuarios tienen buena razn para usar makewhatis, /usr/lib es donde pertenece. El

binario catman que remplaza al script makewhatis en muchos sistemas Linux, debe tambin estar en usr/bin El binario sendmail es referenciado por muchos programas con su nombre histrico /usr/lib/sendmail. ste debe ser un enlace simblico a la localizacin estndar para los agentes de transferencia de correo con una interfaz de lnea de comando compatible con sendmail, /usr/bin/sendmail. En sistemas que utilizan smail deben localizar smail en /usr/sbin/smail y /usr/bin/sendmail debe ser un enlace simbolico a smail. Este arreglo tambin se conforma a la nueva locacin estndar sendmail definida en Sendmail 8.6.x y BSD 4.4 Note que esta localizacin demanda que /usr/sbin y /usr/sbin/sendmail deben ser ejecutables para usuarios normales. Cualquier paquete o programa que contenga o requiera informacin que no necesite ser modificada debe almacenar tal informacin en /usr/lib ( /usr/local/lib, si est instalado localmente ). Se recomienda la utilizacion de un subdirectorio en /usr/lib para este propsito. La informacin de juegos almacenada en /usr/lib/games debe ser solamente informacin esttica. Cualquier archivo modificable. Tal como archivos de marcadores, registros de juego y similares, deben ser localizados en var/lib. Si es necesario para compatibilidad de juegos con el viejo estilo BSD, se puede usar un enlace simblico desde /usr/games/lib hacia /usr/lib/games. Nota: ninguna informacin especfica de host para el sistema X window debe almacenarse en /usr/lib/X11 (que es realmente /usr/X11R6/lib/X11). Los archivos de configuracin especficos de host tales como Xconfig XF86Config deben almacenarse en /etc/X11. ste debe incluir informacin de configuracin como system.twmrc an si es slo un enlace simblico a un archivo de configuracin ms global (tal vez en /usr/etc/X11 /usr/X11R6/lib/X11). /usr/local: Jerarqua local La jerarqua /usr/local est para ser utilizada por el administrador del sistema cuando se instale el software localmente. Necesita estar a salvo de ser sobrescrito cuando el software del sistema se actualiza. Puede ser usado por programas y por informacin que son compartibles entre un grupo de mquinas, pero no se encuentran en /usr.

/usr/local bin doc etc games lib info man sbin scr

Jerarqua local.

Binarios slo-locales Documentacin local Binarios de configuracin slo-local Juegos instalados localmente Librers para /usr/local Pginas de info local Jerarquas de pginas de manual para /usr/local Administracin del sistema slo-local Cdigo fuente local.

Este directorio debe estar vaco al terminar de instalar Linux por primera vez. No debe haber excepciones a la regla, excepto quiz los subdirectorios vacos listados. El software instalado localmente debe estar localizado dentro de /usr/local, en vez de /usr a menos que este siendo instalado para reemplazar o actualizar el software en /usr. Note que el software localizado en / o en /usr puede ser sobrescrito por actualizaciones del sistema (aunque recomendamos que las distribuciones no sobrescriban informacin en /etc bajo estas circunstancias). Por esta razn, el software local no se debe localizar fuera de /usr/local sin una buena causa. /usr/man : Pginas del manual. Esta seccin detalla la organizacin de las pginas del manual a travs del sistema. Incluyendo /usr/man. Las pginas del manual estn almacenadas <mandir>/<locale>/man [1-9]. <mandir>/<locale> --- Una jerarqua de pginas de manuales. man1 man2 man3 man4 man5 man6 man7 Programas para usuarios. Llamadas al sistema. Subrutinas y funciones de librera Dispositivos. Formato de archivos Juegos. Miscelneas.

man8 man9

Administracin del Sistema. Funciones y variables internas del kernel.

El <mandir> primario del sistema es /usr/man contiene informacin del manual para comandos e informacin bajo los sistemas de archivos / y /usr. Obviamente no hay pginas de manual en / por que no se necesitan para arrancar ni en emergencias. Se debe hacer provisin en la estructura de /usr/man para el soporte de pginas del manual que estn escritas en diferentes (o mltiples idiomas ). Estas provisiones deben tomar en cuenta el almacenamiento y referencia de estas pginas del manual. Los factores relevantes incluyen el idioma (incluyendo diferencias basadas en la geografa) y el cdigo del conjunto de caracteres. Esta nomenclatura de los subdirectorios de idiomas de /usr/man est basada en el apndice E del estndar POSIX 1003.1 que describe la cadena de identificacin locale ---El mtodo ms aceptado para describir un ambiente cultural. La cadena <locale>es: <idioma>[<_territorio>][.<conjunto_de_caracteres>][,<versin>] El campo <idioma> se tomar del ISO639 (un cdigo para la representacin de los nombres de los idiomas). Sera de dos caracteres de ancho y especificado con minsculas solamente. El campo <_territorio> ser el cdigo de dos letras de ISO3116 (una especificacin de la representacin de los nombres de los pases), si es posible. (Mucha gente est familiarizada con el cdigo de 2 letras empleado en el cdigo de pas en las direcciones de e-mail. El campo <conjunto_de_caracteres> debe representar el estndar que describe el cdigo de caracteres. Si el campo <conjunto_de_caracteres> es slo una especificacin numrica, el nmero representa el nmero del estndar internacional que describe a ese conjunto de caracteres. Se recomienda que este sea una representacin numrica siempre que sea posible (especialmente, estndares ISO), que no incluya smbolos de puntuacin y que todas las letras sean minsculas. Un parmetro que especifique <versin> del perfil puede ser colocada despus del campo <conjunto_de_caracteres >, delimitado con una coma. Esto puede utilizarse para discriminar entre diferentes necesidades culturales, por ejemplo un orden de diccionario en vez de un orden de

acomodo ms orientado hacia el sistema. Este estndar recomienda no usar el campo <versin> a menos que sea necesario. En sistemas que usen slo un idioma y un cdigo de conjunto de caracteres para todas las pginas del manual, pueden omitir la sub-cadena <locale> y almacenar todas las pginas del manual en <mandir>. Por ejemplo en sistemas que slo tienen pginas del manual en ingls codificados en ASCII, pueden almacenar las pginas del manual (los directorios man[1-9]) directamente en /usr/man (stas son las circunstancias y el arreglo tradicional, de hecho). En pases para los cuales existe un cdigo de conjunto de caracteres estndar, puede omitir el campo <conjunto_de_caracteres>, pero recomendamos fuertemente que se incluya, especialmente para pases con varios estndares en competencia. Varios ejemplos: Idioma Ingls Ingls Ingls Francs Francs Alemn Alemn Alemn Alemn Japons Japons Japons Territorio Conjunto de caracteres Directorio

-------ASCII /usr/man/en Reino Unido ASCII /usr/man/en_GB Estados Unidos ASCII /usr/man/en_US Canad ISO8859-1 /usr/man/fr_CA Francia ISO8859-1 /usr/man/fr_FR Alemania ISO646-DE /usr/man/de_DE646de Alemania ISO6937 /usr/man/de_DE6937 Alemania ISO8859-1 /usr/man/de_DE.88591 Suiza ISO646-CH /usr/man/de_CH.646ch Japn JIS /usr/man/ja_JP.jis Japn SJCS /usr/man/ja_JP.sjis Japn UJ (o EUC-J) /usr/man/ja_JP.ujis

Las pginas del manual para los comandos e informacin que se encuentra bajo /usr/local estn almacenadas en /usr/local/man. las pginas del manual para el sistema X Window estn almacenadas en /usr/X11R6/man. Luego todas las jerarquas de pginas del manual en el sistema deben tener la misma estructura que /usr/man. Los directorios vacos pueden ser omitidos de la jerarqua de pginas del manual. Por ejemplo si, /usr/local/man no tiene pginas del manual en la seccin 4 (dispositivos) entonces se puede omitir /usr/local/man/man4.

Las secciones de pginas cat (cat[1-9]) que contiene pginas del manual formateadas, tambin se encuentran dentro de los subdirectorios /<mandir>/<locale>, pero no son requeridas ni deben ser distribuidas en el lugar de las fuentes nroff de las pginas del manual. Las pginas del Manual del sistema de manejo de correo mh deben tener el prefijo mh en todos los nombres de archivos de las pginas. Las pginas del sistema X Window deben tener el prefijo x en todos los nombres de los archivos de las pginas. La prctica de colocar las pginas del manual de diferentes idiomas, en los subdirectorios apropiados de /usr/man tambin se aplica a las otras jerarquas de pginas del manual, tales como /usr/local/man, y /usr/X11R6/man. (Esta porcin de este estndar tambien se aplica ms delante en la estructura opcional de /var/catman). A continuacin una descripcin de cada seccin. man1: Programas de usuario. Las pginas del manual que describen los comandos accesibles pblicamente se encuentran en esta seccin. La mayora de la documentacin de los programas que un usuario necesitar se encuentra aqu. man2: Llamadas al sistema. Esta seccin describe todas las llamadas al sistema (requisiciones hacia el kernel de Linux para realizar ciertas operaciones). man3: Subrutinas y funciones de librera. La seccin 3 describe programas rutinas de librera que no son llamdas directas al servicios del kernel. Esta seccin y la 2 son de inters casi solamente para programadores. man4: Archivos especiales. Esta seccin describe los archivos especiales, funciones relacionadas con los manejadores y el soporte para la red que estn disponibles en el sistema. Tpicamente, esto incluye los archivos de dispositivo que se encuentran en /dev y la interfaz del kernel para el soporte de protocolos de red.

man5: Formatos de archivos. Aqu se encuentran los formatos para muchos de los archivos cuyo formato no sea intuitivo. sto incluye varios archivos include, archivos de salida de programas, y archivos de sistema. man6: Juegos.(Binarios Educativos) Esta seccin documenta los juegos,demos y programas triviales. Muchas personas tienen una opinin muy diferente de que tan escencial es esta seccin. man7: Miscelneos Las pginas del manual que son difciles de clasificar se designan como pertenecientes a la seccin 7. Las de troff y otros macro paquetes de procesamiento de texto se encuentran aqu. man8: Administracin del Sistema Aqu se documentan los programas utilizados por los administradores de sistemas para la operacin y mantenimiento. Algunos de estos programas son ocasionalmente tiles para usuarios normales. man9: Funciones y variables internas del kernel ste es utilizado para documentar el cdigo fuente del kernel en los Sistemas Linux. /usr/sbin: Binarios de sistema estndar no-esenciales. Este directorio contiene cualesquier binario no-esencial utilizando exclusivamente por el administrador del sistema. Los programas de administracin del sistema que sean requeridos para la reparacin del sistema, recuperacin del sistema, montaje de /usr u otras funciones esenciales deben localizarse en /sbin en vez de aqu. Tpicamente /usr/sbin contiene los deamons de red, cualquier herramienta de administracin no-esencial y binarios para programas servidores no-crticos. Esto incluye los deamons de internet que son llamados por inted (llamados in.*) tales como in.telnetd y in.fingerd y los deamons basados en rpc manejados por portmap (llamados rcp.*) tales como rcp.infsd y rcp.mountd.

Estos programas servidores son utilizados cuando se entra en un estado que el System V conoce como "run level 2" (estado multi-usuario) y el "run level 3" (estado en-red) o el estado que el BSD conoce como "modo multiusuario". En este punto se hacen disponibles los servicios para los usuarios (p. ej. soporte de impresin) y hacia otras mquinas (p. ej. exportar NFS). Los programas administrativos instalados localmente deben estar localizados en : /usr/local/sbin. /usr/share : Informacin Independiente de Arquitectura. Cualquier especificacin para /usr/share se incluir en un documento suplementario al FSSTND. Note que es la opinin en consenso del FSSTND que /usr/share no es necesario en la mayora de los sistemas Linux. En este momento, si nos confinamos a proporcionar una definicin extensiva de este directorio, sera una mala idea. /usr/src : Cdigo fuente. /usr/src --- Cdigo fuente linux Cdigo fuente para el kernel de Linux. Cualquier cdigo fuente no-local debe localizarse en este directorio. El nico cdigo fuente que siempre debe localizarse en un lugar especfico es el cdigo del kernel (cuando exista o est enlazado como parte de una estructura en /usr/include). Se pueden usar subdirectorios si se desea. El cdigo fuente para el kernel debe siempre estar en su lugar o al menos los archivos include del cdigo del kernel. Esos archivos estn localizados en estos directorios. /usr/src/linux/include/asm-<arch> /usr/src/linux/include/linux usr/include debe contener enlaces a estos directorios, llamados asm y /Linux, dados que son necesitados por el compilador de C, al menos /estos archivos include deben siempre ser distribuidos en las instalaciones /que incluye un compilador C. Deben ser distribuidos en el directorio //usr/src/linux de forma que no existan problemas cuando los administradores /del sistema actualicen su versin del kernel por primera vez. /usr/src/linux puede tambin ser un enlace simblico a un rbol de cdigo /fuente del kernel.

La Jerarqua /var /var Informacin variable adm Info administrativa del sistema (obsoleto). Enlace simblico hacia /var/log catman Pginas del manual formateadas localmente lib Informacin del estado de aplicaciones local Informacin variable del software de /usr/local lock Archivos de bloqueo log Archivos de bitcora named Archivos DNS, slo red nis Archivos base de datos NIS preserve Archivos almacenados despus de una falla de ex vi run Archivos relevantes a procesos ejecutndose spool Directorios de trabajos en fila para realizarse despus tmp Archivos temporales, utilizado para mantener /tmp pequeo var contiene archivos con informacin variable. Esto incluye archivos y /directorios en fila de ejecucin, informacin de bitcora administrativa y /archivos temporales y transitorios. Algunas porciones de /var son no-compartibles entre diferentes sistemas. Por ejemplo, /var/log, /var/lock y /var/run. Otras porciones son compartibles, notablemente /var/spool/mail y /var/spool/news. var se especifica aqu para hacer posible el montar /usr slo-lectura. /Todo aquello que alguna vez fu en /usr que es escrito durante la operacin /normal del sistema (pero no durante la instalacin y el mantenimiento del /software) debe ir en /var. Si /var no puede ser una participacin separada, es preferible mover /var fuera de la participacin raz pero dentro de la particin /usr (esto se hace algunas veces para reducir el tamao de la particin raz o cuando hay poco espacio en la particin raz). Como sea, /var no debe ser enlazada a /usr, porque hace que la separacin entre /usr y /var sea ms difcil y seguramente crear un conflicto de nombres, En vez enlace /var a / usr/var.

/var/adm : Bitcora del sistema y archivos contables (obsoleto) Este directorio ha sido remplazado por /var/log y otros directorios. Debe ser un enlace simblico a /var/log hasta que todos los programas ya no se refieran ms a algn archivo en /var/adm. utmp se ha movido a /var/run. Todos los archivos bitcoras se han movido a /var/log incluyen en el archivo wtmp. El soporte de empaquetado de distribuciones se debe almacenar en /var/lib/<nombre> . Nota: El enlace simblico /var/adm no debe ser necesario en la mayora de los sistemas Linux-i386ELF dado que el cambio fue introducido antes que ELF fuera liberado al pblico. /var/catman : Pginas del Manual Formateadas localmente (opcional) Este directorio proporcionara una localizacin estndar para los sites que proporcionan una particin /usr slo-lectura, pero que desean permitir el almacenamiento temporal de pginas del manual formateados localmente. Los sites que montan /usr como escribible (p. pj. instalaciones mono-usuarios) pueden escoger no usar /var/catman y escribir las pginas del manual formateadas dentro de los directorios cat[1-9] dentro de /usr directamente. Recomendamos que la mayora de los sites utilicen una de las siguientes opciones en su lugar. Prefrmate todas las pginas del manual dentro de /usr con el programa (catman). : No se permita el almacenamiento temporal de las pginas formateadas del manual y requiera que se ejecute nroff cada vez que se necesite una pgina. Se permita el almacenamiento temporal local de las pginas del manual en /var/catman. La estructura de /var/catman necesita reflejar ambos, el hecho de la existencia de mltiples jerarquas de pgina del manual y la posibilidad del uso de mltiples idiomas. Dada una pgina del manual sin formatear que normalmente aparece en /usr/<ruta1>/man/man[1-9], la versin formateada almacenada temporal debe ir en /var/catman/<ruta2>/cat[1-9], donde <ruta2> es <ruta1>. Los

componentes <ruta2> y <ruta1> estn ausentes en el caso de /usr/man y /var/catman. Por ejemplo, /usr/man/man1/ls.1 se formatea en /var/catman/cat1/ls.1 y /usr/X11R6/man/<locale>/man3/XtClass.3x lo hace en /var/catman/X11R6/<locale>/cat3/XtClass.3x . Las pginas del manual escritas en /var/catman/cat[1-9] pueden eventualmente, transferirse a /usr/<ruta>/cat[1-9] expirarse. De igual forma las pginas del manual formateadas dentro de /usr/<ruta>/cat[1-9] pueden expirarse si no son accesadas en un periodo de tiempo. Si vienen pginas del manual pre formateadas con un sistema Linux en un medio slo-lectura. (p. ej. un COROM), deben estar instaladas en /usr/<ruta>/cat[1-9]. /var/catman est reservado como un lugar de almacenamiento temporal para pginas de manual formateados. /var/lib : Informacin de Estado de Aplicaciones. /var/lib.- Informacin de Estado de Aplicaciones emacs Directorio del estado de Emacs games Informacin variable de juegos(archivos de marcadores) news Archivos variables de Cnews/INN texmf Informacin variable asociada con TeX xdm Archivos de autenticacin y bitcoras de error del manejador de despliegues X var/lib/<nombre> es el lugar apropiado para el soporte de /empaquetamiento de todas las distribuciones. Diferentes distribuciones de /Linux pueden utilizar diferentes nombres por supuesto. /var/lib/emacs El directorio del estado GNU Emacs, el lugar donde los archivos de informacin independiente de la arquitectura, que Emacs modifica cuando se ejecuta, debe ser /var/lib. En el presente, Emacs slo localiza su directorio de archivos de bloqueo bajo el directorio de estado (en <direstado>/emacs/lock), pero puede hacer uso ms extenso del mismo en el futuro. Notablemente, slo se requiere la adicin de una opcin sencilla en el programa configure de Emacs para hacer este cambio (antes de compilar).

/var/lib/games As como los subdirectorios antes citados, cualquier informacin variable relacionada con los juegos que se encuentran en /usr/games, deben estar aqu. /var/lib/games debe incluir la informacin variable que previamente se encontraba en /usr/lib/games; La informacin esttica, tal como textos de ayuda, descripciones del nivel y dems, debe permanecer en /usr/lib/games. /var/lib/news var/lib/news se debe usar para almacenar toda la informacin variable /asociada con los servidores de news tales como Cnews y INN, inclusive el /archivo histrico, el archivo activo y dems. /var/lib/texmf var/lib/texmf se debe usar para almacenar la informacin variable /asociada con TeX. Particularmente, en /var/lib/texmf/fonts se /almacenarn todas las fuentes tipogrficas que son generadas /automticamente por MakeTeXPK. Debe haber un enlace desde /usr/lib/texmf/fonts/tmp hacia /usr/lib/texmf/fonts. Este enlace permite a los usuarios hacer uso de una sola ruta /usr/lib/texmf/fonts/tfm cuando le hacen cambios a su variable de entorno TEXFONTS (sta es la ruta por defecto en las herramientas TeX de Karl Berry distribuidas desde ftp.cs.umb.edu:pub/tex [La razn de mencionarlos aqu es que son el estndar de facto en las instalaciones UNIX, estas herramientas son ampliamente usadas entre la comunidad Linux]. Si se utiliza otra distribucin de TeX, se debe hacer un enlace desde el directorio de fuentes apropiado hacia /usr/lib/texmf/fonts). El MakeTeXPK que se distribuye con dvipsk colocar los archivos .pk en fonts/pk/<dispositivo>/<nombre_de_la_fuente>, (p.ej. fonts/pk/Canon_CX/cmr10.300pk). Los archivos .pk se pueden purgar peridicamente del rbol /var/lib/texmf o se puede mover dentro del rbol /usr/lib/texmf. Si se usan generadores automticos de .mf .tfm, stos deben poner su informacin en los subdirectorios mf tfm de /var/lib/texmf/fonts.

/var/lib/xdm /var/lib/xdm contiene la informacin variable de xdm que consiste en los /archivos xdm-errors y cualquier archivo de autoridad xdm. Los binarios de /xdm tales como chooser deben an estar localizados en la localidad /histrica en /usr/X11R6/lib/X11/xdm. El archivo xdm-pid debe estar en //var/lib/xdm a pesar de existir /var/run. Los archivos restantes deben /estar en /etc/X11/xdm. /var/local : Informacin variable del software que est en /usr/local Este directorio contiene toda la informacin variable que est relacionada con el software que se encuentra en /usr/local. Naturalmente la implementacin de este subdirectorio se deja al administrador del sistema. Como sea la informacin que se puede categorizar en otro lugar del directorio /var, no se debe colocar en /var/local. Por ejemplo, todos los archivos de bloqueo an irn en /var/lock. /var/lock : Archivos de Bloqueo Los archivos de bloqueo deben almacenarse dentro de una estructura del directorio de /var/lock. Para preservar la habilidad de montar /usr slo-lectura, no se deber colocar los archivos de bloqueo en la particin /usr. Los archivos de bloqueo de dispositivo, tales como los archivos de bloqueo de dispositivos serie que antes se encontraban en /usr/spool/lock en /usr/spool/uucp deben ahora almacenarse en /var/lock. la convencin para la nomenclatura que debe utilizarse es LCK... seguido del nombre base del dispositivo. Por ejemplo, para bloquear /dev/cua0 se deber crear el archivo LCK... cua0. El formato usado para los archivos de bloqueo de dispositivo en Linux deber ser el formato de archivos de bloqueo HDB UUCP. El formato HDB es almacenar el PID (Identificador del proceso) como un nmero decimal en ASCII de 10 bytes, con un carcter de lnea nueva. Por ejemplo, si el proceso 1230 retiene un archivo de bloqueo, contendr los siguientes once (11) caracteres: espacio, espacio, espacio, espacio, espacio, espacio, uno, dos, tres, cero y nueva lnea.

Entonces cualquier cosa que desee usar /dev/cua0, puede leer el archivo de bloqueo y actuar de acuerdo (Todos los archivos de bloqueo en /var/lock deben ser lebles por todos).

/var/log : Archivos bitcora y directorios Este directorio contiene archivos bitcora miscelneos. La mayora de los archivos bitcora se deben escribir en este directorio o subdirectorios apropiados. lastlog Registro del ltimo acceso de cada usuario messages Mensajes del sistema desde syslogd wtmp Registro de todos los accesos y salidas Se puede requerir de un enlace simblico desde /var/log/utmp hacia /var/run/utmp hasta que ningn programa se refiera a /var/adm/utmp (/var/adm es en s mismo un enlace simblico transicional hacia /var/log). /var/named : Archivos DNS Este directorio contiene todos los archivos de trabajo del servidor de nombres Internet, named. : Recomendamos que /etc/named.boot sea un enlace simblico hacia /var/named/named.boot, dado que /etc/named.boot es el archivo de arranque por defecto, si no se dan argumentos a named. /var/nis : Archivos de bases de datos del servicio de informacin dered (NIS) El sistema de informacin de red (NIS) era anteriormente conocido como las Pginas Amarillas Sun (YP). La funcionalidad y localizacin de directorios de ambos es el mismo pero el nombre (Yellow Pages) es una marca registrada en el Reino Unido, pertenece a Bristish Telecommunications PLC. y no puede ser usada sin permiso. /var/preserve: Archivos guardados despus de una colisin o una terminacin inesperada de ex vi Este directorio contiene los archivos que son almacenados ante cualquier terminacin no-esperada de ex, vi, de alguno de sus clones.

/var/run : Archivos variables de tiempo de ejecucin Este directorio contiene archivos con informacin del sistema que lo describen desde que arranc. Generalmente los archivos en este directorio se deben limpiar (remover o truncar, segn corresponda) al comenzar el proceso de arranque. Los archivos identificados de proceso (PID), que estaban originalmente /etc, se deben colocar en /var/run. La convencin de nomenclatura de archivos PID es <nombre-programa>.pid, por ejemplo el archivo PID de crond se llama /var/run/crond.pid. El formato interno de los archivos PID permanecen sin cambio. El archivo debe de consistir del indicador del proceso en decimales codificado como ASCII, seguido por un carcter nueva lnea Por ejemplo, si crond fue el proceso nmero 25, /var/run/cond.pid contendr 3 caracteres, dos cinco y nueva lnea. Los programas que lean archivos PID deben ser flexibles en lo que aceptan, p. ej. Deben ignorar los espacios extras, ceros a la izquierda, ausencia del caracter nueva lnea o lneas adicionales en el archivo PID. Los programas que crean archivos PID deben utilizar la sencilla especificacin dada en el anterior prrafo. El archivo utmp, que almacena informacin acerca de quin est actualmente utilizando el sistema, se localiza en este subdirectorio. Los programas que mantengan sockets transitorios de dominio UNIX, deben colocarlos en este directorio. /var/spool : Directorios de fila de trabajos para procesamiento posterior var/spool es tradicionalmente utilizado para la informacin local de /mquina que es enviada para procesarse despus, hacia o desde subsistemas /UNIX. Por ejemplo, trabajos de impresin que son almacenados aqu para /entrega posterior al daemon de la impresora, el correo que sale es /almacenado aqu para entrega a sistemas remotos y los archivos UUCP son /almacenados aqu para transmisin a los sistemas UUCP vecinos. El correo /que entra y las noticias son almacenados aqu para entregarse a los /usuarios y los trabajos de at y cron son almacenados aqu para ejecucin /retardada por el daemon cron.

/var/spool at Trabajos de at cron Trabajos de cron lpd Directorio de impresora * mail Archivos caja-postal(buzn) de los usuarios mqueue Fila del correo saliente news Directorio de noticias * rwhod Archivos rwhod smail Directorio de smail * uucp Directorio de UUCP Nota: * Significa fila de trabajos para proceso posterior. Los archivos de bloqueo UUCP deben localizarse en /var/lock. Va la seccin acerca de /var/lock. /var/spool/lpd /var/spool/lpd --- Directorio de fila de trabajos para proceso posterior o impresin <Impresora> Directorio que tiene la fila especfica de esta impresora El archivo de bloqueo para lpd, lpd.lock debe estar localizado en /var/spool/lpd. El archivo de bloqueo de cada impresora debe localizarse en el directorio <impresora> de la impresora especifica y se debe llamar lock. /var/tmp : Archivos temporales, utilizando para mantener /tmp pequeo. Los archivos que estn en /var/tmp estn almacenados por una duracin no especfica. (Recuerde que los directorios temporales del sistema no garantizan mantener la informacin por ningn periodo particular). La informacin almacenada en /var/tmp tpicamente se limpia en una "forma definida localmente" pero usualmente menos frecuentemente que /tmp. Se puede encontrar informacin sobre directorios temporales en la seleccin dedicada a /tmp (arriba). Debe existir un enlace simblico desde /usr/tmp hacia var/tmp por razones de compatibilidad.

Razonamientos adicionales y asuntos sin resolver Esta seccin discute varias reas que pueden requerir mayor explicacin. Qu es esencial? La respuesta es: esencial para limpiar, crear, preparar, verificar, encontrar y montar otros sistemas de archivos (posiblemente en mquinas remotas). Hay otras definiciones, pero sta es una definicin general que la mayora de las personas al menos la incorporar en la suya. Red La red presenta un dilema interesante, algunas personas quieren separar los binarios y de configuracin de la red de los que no lo son. Como sea, estamos en desacuerdo. Sentimos que la red no es un "paquete", sino una parte integral de la mayora de la mquinas UNIX (y similares). Debido a lo anterior, la red no debe colocarse en un slo directorio sino localizarse sistemticamente en los directorios apropiados. /bin: Cualquier cosa que algn usuario querr utilizar y que estambin considerado vital. hostname, netstat, ping /sbin: Cualquier cosa que slo root necesita y se considere vital. arp, ifconfig, route /usr/bin : Algnos binarios que algn usuario querr utilizar y queno son vitales. finger, rep, rlogin, telnet, etc.

/usr/sbin: Algnos binarios slo para el administrador que no sonvitales. in.ftpd, inetd, lpd, portmap, etc. Aunque puede parecer confuso al principio (y toma tiempo digerirlo), tiene sentido. Si por alguna razn usted slo puede montar la particin raz, y necesita accesar a la red para reparar su sistema, no se quiere que los archivos estn en /usr/etc (como estn algunas veces). Los archivos que se necesitan para montar /usr en las situaciones normales (y de emergencia) estn colocados dentro del sub-rbol raz, y cualesquier otros se colocan en /usr, para mantener el tamao del sistema de archivos raz pequeo. Los archivos de configuracin para la red pertenecen a /etc. Estructuras independientes de la arquitectura El directorio /usr/share tpicamente contiene archivos independientes de la arquitectura, tales como pginas del manual, zona horaria, informacin de termino, etc. En el momento presente no hay diferentes arquitecturas para Linux, pero con el tiempo, veremos que Linux incluir otras arquitecturas y otros sistemas similares a UNIX. Nota: Ningn programa nunca deber hacer referencia a alguna cosa en /usr/share. Por ejemplo, un programa de pginas del manual no debe nunca buscar directamente /usr/share/man/man1/1s.1, sino que siempre se debe referir a /usr/man/man1/1s.1. Cualquier cosa en /usr/share, ser "apuntada" a travs de uso de enlaces smbolos desde otras reas del sistema de archivos, tales como /usr/man, /usr/lib/<algo>, etc... An se trabaja en las especificaciones de /usr/share. Enlaces Simblicos. Hay muchos usos para los enlaces simblicos en cada sistemas de archivos. Aunque un estndar como ste no respalda el uso de enlaces simblicos en la implementacin por defecto (Los encontrados despus de instalar Linux), se usan frecuentemente con buenos propsitos en diferentes sistemas. El punto es que los enlaces simblicos deben estar all

para mantener todos los archivos y directorios donde cada quien los espera encontrar. Est preparado para aceptar que ciertos directorios, an aquellos contenidos en el directorio raz, an sean enlaces simblicos. Por ejemplo en algunos sistemas /home no estar en el raz, sino enlazado simblicamente a un directorio /var o algn otro lugar. /home podra tener tambin su propia particin fsica y desde luego, ser montado como tal. Similarmente, dado que /usr podra estar en un servidor de archivos central montado va NFS, /usr/local se puede enlazar simblicamente a /var/local. Este cambio se puede justificar recordando la razn principal de tener /var: separar directorios de archivos que varan con el tiempo y entre diferentes sistemas y mquinas de aquellos que se pueden compartir y sean slo-lectura. Algunos sistemas adems enlazarn /tmp a /var/<algo> si la particin raz se vuelve muy pequea ( es muy pequea). Hay ms ejemplos de "buenos" usos de enlaces simblicos, pero todo el asunto se reduce a dos cosas: Los paquetes deben ser capaces de encontrar las cosas donde lo esperan (razonablemente) y los enlaces simblicos se pueden utilizar para resolver los problemas de muchos casos. Como sea, se pueden generar problemas con el uso de demasiados enlaces simblicos. este problema incluye sobre-confianza en los enlaces simblicos para resolver problemas, confusin resultante del sobre-uso de enlaces simblicos y las preferencias estticas de diferentes personas. Binarios Compilados Estticamente. Linux se ejecuta corre actualmente en una gama de sistemas, algunos con slo un usuario y disco pequeo, otros como servidores en ambientes con redes muy grandes, dada esta variedad, este estndar no impone regla sobre qu binarios estn compilados estticamente o dinmicamente, con las siguientes excepciones. Ambos ln y sync, deben existir en /bin; cualquier versin esttica se puede colocar en /sbin o remplazar aquellas en /bin. Los grandes sistemas Linux pueden desear incluir otros binarios estticos (sh, init, mkfs, fsch, tunefs, mount, umount, swapon, swopff, getty, login y otros). Los desarrolladores y los administradores de sistemas, son libres de

enlazar dinmica o estticamente stos y otros binarios segn le convengan, siempre que la localizacin de los binarios no cambie. En sistemas de red, (especialmente aquellos que no tienen unidades de disco flexible), pueden querer compilar estticamente ifconfig, route, hostname y otras herramientas de red. sto usualmente no es necesario. La lista del correo del FSSTND La lista del correo del FSSTND se encuentra en <Linux-fsstnd@ucsd.edu>. Esta lista estaba originalmente localizada en <Linuxactivists@niksula.hut.fi> "Mail Net" como el canal FSSTND. (Para subscribirse a la lista mande correo <listserv@ucsd.edu> con el mensaje "ADD Linux-fsstnd"). Gracias a Operaciones de Red en la Universidad de California en San Diego quien nos permiti utilizar su excelente servidor de listas de correo.

Esquema del sistema de archivos de Linux.

Gestin de procesos
La ms simple definicin de un proceso podra ser que es una instancia de un programa en ejecucin (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto de un programa que esta en ejecucin es lo que se llama un proceso. Este contexto puede ser mas procesos hijos que se hayan generado del principal (proceso padre), los recursos del sistema que este consumiendo, sus atributos de seguridad (tales como su propietario y permisos de archivos as como roles y dems de SELinux), etc. Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que mltiples procesos pueden operar simultneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusin" que es el nico proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo. Programas y procesos son entidades distintas. En un sistema operativo multitarea, mltiples instancias de un programa pueden ejecutarse simultneamente. Cada instancia es un proceso separado. Por ejemplo, si cinco usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo, habra cinco instancias del mismo programa, es decir, cinco procesos distintos. Cada proceso que se inicia es referenciado con un nmero de identificacin nico conocido como Process ID PID, que es siempre un entero positivo. Prcticamente todo lo que se est ejecutando en el sistema en cualquier momento es un proceso, incluyendo el shell, el ambiente grfico que puede tener mltiples procesos, etc. La excepcin a lo anterior es el kernel en si, el cual es un conjunto de rutinas que residen en memoria y a los cuales los procesos a travs de llamadas al sistema pueden tener acceso.

ps
El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el sistema de archivos /proc, es decir, lee directamente la informacin de los archivos que se encuentran en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varan dependiendo del estilo en que se use el comando. Estas variaciones sobre el uso de psson las siguientes:

Estilo UNIX, donde las opciones van precedidas por un guin -

Estilo BSD, donde las opciones no llevan guin Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guin -Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas se mostrarn en el listado de procesos que resulte, estas columnas pueden ser entre muchas otras, las siguientes (y principales): p o PID P o PPID U o UID t o TT o TTY T o TIME c o CMD RSS SZ SIZE NI o Process ID, nmero nico o de identificacin del proceso. Parent Process ID, padre del proceso User ID, usuario propietario del proceso Terminal asociada al proceso, si no hay terminal aparece entonces un '?' Tiempo de uso de cpu acumulado por el proceso El nombre del programa o camndo que inici el proceso Resident Sise, tamao de la parte residente en memoria en kilobytes Tamao virtual de la imagen del proceso Nice, valor nice (prioridad) del proceso, un nmero positivo significa menos tiempo de procesador y negativo ms tiempo (19 a 19)

C o Porcentaje de cpu utilizado por el proceso PCPU STIME Starting Time, hora de inicio del proceso S o STAT Status del proceso, estos pueden ser los siguientes R runnable, en ejecucin, corriendo o ejecutndose S sleeping, proceso en ejecucin pero sin actividad por el momento, o esperando por algn evento para continuar T sTopped, proceso detenido totalmente, pero puede ser reiniciado Z zombie, difunto, proceso que por alguna razn no termin de manera correcta, no debe haber procesos zombies D uninterruptible sleep, son procesos generalmente asociados a acciones de IO del sistema X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los Z no deberan verse nunca

Las opciones completas de ps las encuentras en las pginas del manual (man ps), o escribiendo en la terminal ps L, y para ver un resumen de sus opciones ms comunes usa ps --help:
#> ps --help ********* simple selection ********* ********* selection by list ********* -A all processes -C by command name -N negate selection -G by real group ID (supports names) -a all w/ tty except session leaders -U by real user ID (supports names) -d all except session leaders -g by session OR by effective group name -e all processes -p by process ID T all processes on this terminal -s processes in the sessions given a all w/ tty, including other users -t by tty g OBSOLETE -- DO NOT USE -u by effective user ID (supports names) r only running processes U processes for specified users x processes w/o controlling ttys t by tty *********** output format ********** *********** long options *********** -o,o user-defined -f full --Group --User --pid --cols --ppid -j,j job control s signal --group --user --sid --rows --info -O,O preloaded -o v virtual memory --cumulative --format --deselect -l,l long u user-oriented --sort --tty --forest --version -F extra full X registers --heading --no-heading --context ********* misc options ********* -V,V show version L list format codes f ASCII art forest -m,m,-L,-T,H threads S children in sum -y change -l format -M,Z security data c true command name -c scheduling class -w,w wide output n numeric WCHAN,UID -H process hierarchy

A continuacin algunos cuantos ejemplos de ps con la salida recortada.


># ps -e PID TTY 1? 2? 3? 4? (-e muestra todos los procesos) TIME CMD 00:00:01 init 00:00:00 kthreadd 00:00:00 migration/0 00:00:00 ksoftirqd/0

#> ps -ef (-f muestra opciones completas) UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:12 ? 00:00:01 init [5] root 2 0 0 10:12 ? 00:00:00 [kthreadd] ... root 6130 5662 0 10:24 pts/0 00:00:00 su root 6134 6130 0 10:24 pts/0 00:00:00 -bash sergon 6343 5604 0 10:28 ? 00:00:00 kio_file [kdeinit] file /home/sergon/tmp/ksocket-sergon/kl root 6475 6134 0 10:38 pts/0 00:00:00 ps -ef #> ps -eF (-F muestra opciones completas extra) UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 412 556 1 16:59 ? 00:00:01 init [5] root 2 0 0 0 0 1 16:59 ? 00:00:00 [kthreadd] sergon 8326 8321 0 902 1272 0 17:07 ? 00:00:00 /bin/sh /usr/lib/firefox-2.0.0.8/run-mozilla.sh /usr/lib/f sergon 8331 8326 4 53856 62604 0 17:07 ? 00:00:50 /usr/lib/firefox-2.0.0.8/mozilla-firefox-bin sergon 8570 7726 2 15211 37948 0 17:17 ? 00:00:10 quanta #> ps ax (formato BSD sin guin, a muestra todos, x sin mostrar tty)

PID TTY 1? 2? 3? 4?

Ss S< S< S<

STAT TIME COMMAND 0:01 init [5] 0:00 [kthreadd] 0:00 [migration/0] 0:00 [ksoftirqd/0]

#> ps aux (formato BSD sin guin, u muestra usuarios y dems columnas) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1648 556 ? Ss 16:59 0:01 init [5] root 2 0.0 0.0 0 0 ? S< 16:59 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S< 16:59 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S< 16:59 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 16:59 0:00 [migration/1] #> ps -eo user,pid,tty (-o output personalizado, se indican los campos separados por coma, ver ps -help o ps L) USER PID TT root 1? root 2? sergon 8570 tty 1 root 8876 pts/1 #> ps -eH (muestra rbol de procesos) #> ps axf (lo mismo en formato BSD) #> ps -ec (el comando que se esta ejecutando, sin la ruta, solo el nombre real) #> ps -el (muestra formato largo de varias columnas, muy prctico) #> ps L (No muestra procesos, lista todos los cdigos de formatos)

pstree
Muestra los procesos en forma de rbol, pstree --help te da las opciones ms comunes. Recomiendo uses lo uses con la opcin -A y -G para que te un rbol con lneas con lneas estilo ASCII y de terminal VT100 respectivamente, puedes aadir tambin -u para mostrar entre parntesis al usuario propietario del proceso:
#> pstree -AGu init---acpid |-atd(daemon) |-automount----2*[{automount}] |-avahi-daemon(avahi) |-beagled(sergon)----7*[{beagled}] |-beagled-helper(sergio)----3*[{beagled-helper}] |-compiz(sergon)----kde-window-deco |-console-kit-dae----61*[{console-kit-dae}] |-crond |-dbus-daemon(messagebus) |-dbus-daemon(sergio) |-dbus-launch(sergio) |-dcopserver(sergio) |-dhclient |-gam_server(sergio) |-gconfd-2(sergio) |-hald(haldaemon)----hald-runner(root)----hald-addon-acpi(haldaemon)

| |-hald-addon-cpuf | |-hald-addon-inpu | |-hald-addon-stor |-httpd---8*[httpd(apache)] |-2*[ifplugd] |-ipw3945d |-kaccess(sergio) ...

kill
El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar seales (signals) a los procesos. La seal por default (cuando no se indica ninguna es terminar o matar el proceso), y la sintaxis es kill PID, siendo PID el nmero de ID del proceso. Asi por ejemplo, es posible enviar una seal de STOP al proceso y se detendr su ejecucin, despus cuando se quiera mandar una seal de CONTinuar y el proceso continuara desde donde se quedo.
#> kill -l (lista todas las posibles seales que pueden enviarse a un proceso) 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX

La lista previa presenta una lista de todas las posibles seales que pueden mandarse a un proceso y estas pueden ser invocadas a travs del nmero de la seal o de su cdigo, por ejemplo:
#> kill -9 11428 (termina, mata un proceso completamente) #> kill -SIGKILL 11428 (Lo mismo que lo anterior)

Las seales ms comunes son la 19 y 20 que detienen momentneamente la ejecucin de un proceso o programa, 18 la continua, 1 que es la seal de hang up que obliga al proceso a releer sus archivos de configuracin estando en ejecucin y 9 que termina rotundamente un proceso.

killall
El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectar a todos los procesos que tengan ese nombre. Asi por ejemplo si se tienen varias instancias ejecutndose del proxy server squid, con killall squid eliminar todos los procesos que se esten ejecutando con el nombre 'squid'
#> killall -l (lista de posibles seales) #> killall -HUP httpd (manda una seal de "colgar", detenerse releer sus archivos de configuracin y reiniciar) #> killall -KILL -i squid (manda seal de matar a todos los procesos squid pero pide confirmacin en cada uno)

nice
Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad modificada, ms alta o ms baja segn se requiera. Las prioridades van de -20 (la ms alta) a 19 la ms baja. Solo root o el sper usuario puede establecer prioridades negativas que son ms altas. Con la opcin -l de ps es posible observar la columna NI que muestra este valor.
#> nice (sin argumentos, devuelve la prioridad por defecto ) 0 #> nice -n -5 comando (inicia comando con una prioridad de -5, lo que le da ms tiempo de cpu)

renice
As como nice establece la prioridad de un proceso cuando se incia su ejecucin, renice permite alterarla en tiempo real, sin necesidad de detener el proceso.
#> nice -n -5 yes (se ejecuta el programa 'yes' con prioridad -5) (dejar ejecutando 'yes' y en otra terminal se analiza con 'ps') #> ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 12826 12208 4 75 -5 - 708 write_ pts/2 00:00:00 yes #> renice 7 12826 12826: prioridad antigua -5, nueva prioridad 7 #> ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 12826 12208 4 87 7 - 708 write_ pts/2 00:00:15 yes

(obsrvese el campo NI en el primer caso en -5, y en el segundo con renice qued en 7, en tiempo real)

nohup y &
Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comandonohup o el operador & . Aunque realizan una funcin similar, no son lo mismo. Si se desea liberar la terminal de un programa que se espera durar un tiempo considerable ejecutndose, entonces se usa . Esto funciona mejor cuando el resultado del proceso no es necesario mandarlo a la salida estndar (stdin), como por ejemplo cuando se ejecuta un respaldo o se abre un programa Xwindow desde la consola o terminal. Para lograr esto basta con escribir el comando en cuestin y agregar al final el smbolo & (ampersand).
$> yes > /dev/null & $> tar czf respaldo /documentos/* > /dev/null/ & $> konqueror & (con estos ejemplos se ejecuta el comando y se libera la terminal regresando el prompt)

Sin embargo lo anterior produce que el padre del proceso PPID que se invoc sea el proceso de la terminal en si, por lo que si cerramos la terminal o salimos de la sesin tambin se terminaran los procesos hijos que dependan de la terminal, no muy conveniente si se desea que el proceso continu en ejecucin. Para solucionar lo anterior, entonces se usa el comando nohup que permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ah su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecut el proceso.
$> nohup yes > /dev/null & $> nohup czf respaldo /documentos/* > /dev/null/ $> nohup konqueror

Asi se evita que el proceso se "cuelgue" al cerrar la consola.

jobs
Si por ejemplo, se tiene acceso a una nica consola o terminal, y se tienen que ejecutar varios comandos que se ejecutarn por largo tiempo, se pueden entonces como ya se vio previamente con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando.

Pero si solo se est en una terminal esto puede ser difcil de controlar, y para estos tenemos el comando jobs que lista los procesos actuales en ejecucin:
#> yes > /dev/null & [1] 26837 #> ls -laR > archivos.txt & [2] 26854 #> jobs [1]- Running yes >/dev/null & [2]+ Running ls --color=tty -laR / >archivos.txt &

En el ejemplo previo, se ejecut el comando yes y se envi a background (&) y el sistema devolvi [1] 26837, indicando asi que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda tarea que es un listado recursivo desde la raz y enviado a un archivo, esta es la segunda tarea. Con los comandos fg (foreground) y bg background es posible manipular procesos que esten suspendidos temporalmente, ya sea porque se les envi una seal de suspensin como STOP (20) o porque al estarlos ejecutando se presion ctrl-Z. Entonces para reanudar su ejecucin en primer plano usaramos fg:
#> jobs [1]- Stopped [2]+ Stopped #> fg %1 #> jobs [1]+ Running [2]- Stopped yes >/dev/null & ls --color=tty -laR / >archivos.txt &

yes >/dev/null & ls --color=tty -laR / >archivos.txt &

Obsrvese como al traer en primer plano al 'job' o proceso 1, este adquiri el smbolo [+] que indica que esta al frente. Lo mismo sera con bg que volvera a reinicar el proceso pero en segundo plano. Y tambin es posible matar los procesos con kill indicando el nmero que devuelve jobs: kill %1, terminara con el proceso en jobs nmero 1.

top
Una utilera muy usada y muy til para el monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el programa llamado top, se ejecuta desde la lnea de comandos, es interactivo y por defecto se actualiza cada 3 segundos.
$> top top - 13:07:30 up 8 days, 6:44, 4 users, load average: 0.11, 0.08, 0.08 Tasks: 133 total, 1 running, 131 sleeping, 0 stopped, 1 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 497356k total, 472352k used, 25004k free, 21500k buffers Swap: 1156640k total, 257088k used, 899552k free, 60420k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26156 sergon 15 0 2160 1016 784 R 1 0.2 0:00.93 top 1 root 15 0 2012 616 584 S 0 0.1 0:00.98 init 2 root RT 0 0 0 0 S 0 0.0 0:00.29 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 5 root RT 0 0 0 0 S 0 0.0 0:00.38 migration/1 ...

Estando adentro de la apliacin, presionando 'h' muestra una ayuda de los posibles comandos que permiten configurar top, por ejemplo, al presionar 's' pregunta por el tiempo en segundos de actualizacin, etc.

Estas son algunas de las herramientas, las ms importantes y usadas, para administrar procesos, hay varios programas en ambientes grficos que en una sola pantalla permiten todo lo anterior y ms, y en lnea de comandos te recomiendo htop, que es como un top pero en esteroides. Estas son algunas de las herramientas, las ms importantes y usadas, para administrar procesos, hay varios programas en ambientes grficos que en una sola pantalla permiten todo lo anterior y ms, y en lnea de comandos te recomiendo htop, que es como un top pero en esteroides.

Esquema de procesos en Linux

Que es la memoria virtual?


Linux soporta las caractersticas de Memoria Virtual (virtual memory). Esto significa usar un disco como una extensin de la memoria RAM, de forma tal que el tamao efectivo de memoria utilizable crezca considerablemente. El kernel se encarga de escribir el contenido de un bloque de memoria que no est siendo utilizado al disco rgido de forma que esta porcin de memoria quede disponible para otro propsito. Cuando los bloques originales vuelven a ser requeridos, son ledos y colocados nuevamente en memoria. Todo esto es realizado en forma completamente transparente para el usuario. Los programas ejecutados bajo Linux solo ven una gran cantidad de memoria disponible y no saben que parte de ellos reside en el disco en un momento dado. Por supuesto que leer y escribir en el disco es mucho mas lento que utilizar la memoria real (en el orden de 1000 veces ms lento), Por lo que los programas se tornan mucho ms lentos tambin. La parte del disco que es usado como memoria virtual se llama rea de swap (swap space). Linux puede utilizar tanto un archivo normal en el sistema de archivos como una particin separada del disco como rea de swap. Una particin swap es mucho ms rpida, pero es mucho ms fcil cambiar el tamao del rea de swap si este es un archivo (y no hay necesidad de particionar el disco rgido entero, y posiblemente instalar todo desde cero). Cuando se conoce la cantidad de espacio swap que se necesita, es ms indicado optar por una particin swap. Pero si no se est seguro de la cantidad de espacio que se necesita, se puede crear primero un archivo swap, probar el sistema hasta que se est seguro del tamao necesario, y luego construir una particin con dicho tamao. Cabe sealar que Linux permite tambin usar una o varias particiones de swap y/o archivos de swap al mismo tiempo. Esto significa que si ocasionalmente se necesita una cantidad adicional de espacio swap, se puede crear un archivo de swap extra para ese momento especial, en lugar de mantener una particin con todo ese espacio necesario en forma permanente. Una nota sobre la terminologa en Sistema Operativo: La ciencia de la computacin distingue habitualmente entre la palabra swapeado o "swaping" (escribir el proceso entero al rea de swap) y paginado (escribir solo porciones fijas de memoria, generalmente unos pocos kilobytes, por vez). El paginado generalmente es ms eficiente y es lo que hace Linux,

aunque de todos modos en la terminologa Linux se dice Swapeo o "swapping"

Creando un espacio swap


Un archivo de swap es un archivo comn, y no necesita ningn tratamiento especial para el kernel. Lo nico que le interesa al kernel es que este no tenga huecos y que est preparado para ser utilizado por el utilitario mkswap. Este debe residir en un disco local, y no puede residir en un disco montado a travs de NFS por razones de implementacin. El bit que indica espacios vacos es importante. El archivo swap reserva espacio en disco de forma que el kernel pueda swapear una pgina rpidamente sin tener que atravesar por todas las cosas que son necesarias cuando aloja un sector de disco para un archivo. El kernel simplemente utiliza cualquier sector que ya haya sido alocado para el archivo. Debido a que un hueco en un archivo significa que no hay sectores de discos alojados (para ubicar en ese archivo) no es bueno que el kernel trate de hacer uso del mismo. Una buena manera de crear un archivo de swap sin espacios vacos es a travs del siguiente comando:
$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024 1024+0 records in 1024+0 records out $

donde /extra-swap es el nombre del archivo swap y el tamao est dado por el parmetro count=. El tamao ms indicado est dado por un mltiplo de 4, debido a que el kernel escribe pginas de memoria (memory pages), de 4 kb de tamao. Si el tamao no es mltiplo de 4 los ltimos kilobytes del archivo pueden ser desperdiciados. Una particin swap tampoco tiene nada especial. Estas se crean como cualquier otra particin, la nica diferencia es que sta es accedida de manera directa (al disco crudo), esto significa, que no contiene ningn sistema de archivos. Es aconsejable marcar esta particin del tipo 82 (Linux Swap); Esto hace la lista de particiones ms clara, aunque no es estrictamente necesario para el kernel.

Una vez creado el archivo o la particin de swap, es necesario escribir unas marcas al comienzo del mismo que contienen informacin administrativas utilizadas por el kernel. El comando para realizar esto es mkswap, y la forma es la siguiente:
$ mkswap /extra-swap 1024 Setting up swapspace, size = 1044480 bytes $

Ntese que el espacio swap aun no es usado, este existe, pero el kernel aun no hace uso de este para proveer memoria virtual. Y se debe ser muy cuidadoso cuando se usa el comando mkswap, ya que este no chequea que el archivo o la particin no estn siendo usados por alguien ms. Se puede fcilmente sobre escribir importantes archivos y particiones con mkswap! Por suerte este comando solo debera ser necesario cuando se instala el sistema. Actualmente el administrado de memoria Linux limita el tamao de cada rea de swap a 2 GB. De todas maneras se puede usar hasta 8 espacios de swap simultneamente, logrndose un total de 16 GB. El real lmite depende la versin del kernel, la versin de mkswap y de la arquitectura del hardware. Usando un rea de swap El rea de swap es activada con el comando swapon. Este comando le informa al kernel que el espacio de swap ya puede ser utilizado. La ruta del rea de swap es pasada como argumento, por lo tanto para comenzar a paginar sobre un archivo de swap temporario, se podra ejecutar el comando de la siguiente forma:
$ swapon /extra-swap $

Las reas de swap pueden ser utilizadas automticamente, incluyendo a ellas en el archivo /etc/fstab:
/dev/hda8 none swap sw 0 0 /swapfile none swap sw 00

Los scripts de arranques ejecutarn el comando swapon -a, el cual dar inicio al proceso de paginacin de todos los espacios de swaps listados en el archivo/etc/fstab, de otro modo el comando swapon es usualmente usado solo cuando un espacio extra de swap es necesario.

Puede ser monitoreado el uso del rea de swap con el comando free. ste indicar el tamao total de espacio swap utilizado.
$ free total used free shared buffers Mem: 15152 14896 256 12404 -/+ buffers: 12368 2784 Swap: 32452 6684 25768 $

2528

La primera lnea de la salida (Mem:) muestra la memoria fsica. La columna "total" muestra la memoria fsica usada por el kernel, el cual usualmente est cerca de un megabyte. La columna "used" muestra el tamao de memoria usado. La columna "free" muestra la cantidad de memoria que no est siendo usada. La columna "shared" muestra la cantidad de memoria que est siendo compartida entre varios procesos; la mayor y la menor. La columna "buffer" muestra el tamao actual del cache de buffer en disco. T La ltima lnea (Swap:) muestra la misma informacin para el espacio de swap. Si esta lnea son todos ceros, el espacio de swap no est activado. T La misma informacin est disponible a travs del comando top, o usando el archivo /proc/meminfo del sistema de archivos proc. Este es en realidad difcil de leer si se quiere informacin sobre el uso de una determinada rea de swap. Un rea de swap puede ser desactivada con el comando swapoff. Generalmente esto no es necesario, excepto para las reas de swap temporales. Cualquier pgina que estn haciendo uso del rea de swap, son llevadas primero a la memoria. Si no hay suficiente memoria fsica para alojarlas, sern movidas entonces a otra rea de swap. Si no hay suficiente memoria virtual para almacenar todas estas pginas el sistema Linux sufrir una degradacin de desempeo, durante la cual estar inestable durante un tiempo hasta que logre recuperarse. Por este motivo se deber chequear (ej. con free) que haya suficiente memoria disponible antes de remover un rea de swap. Todas las reas de swap que fueron activadas automticamente con el comando swapon -a pueden ser removidas con el comando swapoff -a; este busca en el archivo /etc/fstab para encontrar cuales son las reas a

remover. Cualquier espacio de swap activado manualmente permanecer aun en uso. En muchas ocasiones una gran porcin de espacio swap puede estar ocupado a pesar de que hay una gran cantidad de memoria fsica libre. Esto suele ocurrir en situaciones en la que fue necesario paginar una porcin de memoria al rea de swap, pero en otro instante un proceso que ocupa mucha memoria fsica finaliza y libera dicha memoria. Los datos que estn en el rea de swap no son llevados automticamente a memoria hasta que esto no sea necesario, por lo tanto la memoria puede seguir libre durante un largo tiempo. No hay motivos para preocuparse por esta situacin pero es bueno saber que esto puede ocurrir.

Compartiendo el rea de swap con otro sistema operativo La memoria virtual es una funcionalidad que est disponible en diversos sistemas operativos. Cada uno de ellos necesita hacer uso de la memoria swap solo cuando estn en ejecucin, o sea, nunca al mismo tiempo, ya que es imposible ejecutar ms de un sistema operativo al mismo tiempo en la misma computadora. Una idea muy eficiente seria compartir una nica rea de swap. Esto es posible, pero requiere un conocimiento ms avanzado. Alocando espacio de swap. Muchas personas consideran que se debe alocar el doble de memoria fsica para espacio swap. Pero esta es una regla equivocada. Aqu se explica como se deber estimar el tamao de swap correctamente:

Estimar el total de memoria necesaria. Esto es la mayor cantidad de memoria que se necesitar usar en un momento dado, y que estar dado por la suma de las memorias requeridas por todos los programas que se puedan ejecutar al mismo tiempo. Esto puede ser calculado ejecutando al mismo tiempo todos los programas que se utilicen habitualmente. Por ejemplo, si se requiere ejecutar el servidor X, se deber alocar alrededor de 8 MB para este, gcc requiere algunos pocos megabytes

(algunos archivos pueden necesitar una inusual cantidad de memoria, hasta 10 MB, pero generalmente alrededor de 4 megabytes debera funcionar), y as sucesivamente. El kernel usar alrededor de un megabyte para si mismo, y un shell comn y otros pequeos utilitarios talvz unos pocos cientos de kilobytes (digamos un megabyte todos juntos). No es necesario que el clculo sea exacto, una estimacin aproximada estar bien, pero es posible que se quiera hacer una estimacin pesimista poniendo todos los valores como mximos. Recordar que si hay varios usuarios usando el sistema al mismo tiempo, estarn todos consumiendo memoria. A pesar de esto si dos usuarios estn ejecutando el mismo programa al mismo tiempo, el total de memoria consumida no suele ser el doble, ya que cada pgina de cdigo y librera compartida reside solo una vez en memoria. Los comandos free y ps son tiles para estimar la memoria necesaria.

Agregar un margen de seguridad a los estimados en el paso 1. Esto es porque el tamao estimado para los programas ser probablemente errneo, ya que habrn algunos programas que se querrn ejecutar, y seguramente no fueron tenidos en cuenta. Para salvar esto, se deber tener algn espacio extra. Un par de megabytes deber ser suficiente. (Es preferible alojar espacio de ms que de menos, pero no hay necesidad tampoco de sobrepasarse y alocar todo el disco entero, el espacio swap no usado es espacio malgastado. Tambin, es mejor tratar de que sea un nmero par, se podr redondear hacia arriba para llegar al prximo nmero entero de megabytes. Basados en los clculos anteriores, se puede saber cuanta memoria se necesita en total. Por lo tanto, para alocar el espacio de swap, solo se necesita restar el tamao de memoria fsica del total de memoria necesaria. (En algunas versiones de Unix, se necesita alocar tanto espacio como para una imagen de la memoria fsica, entonces la cantidad calculada en el punto dos ser lo que se necesita, y no se deber realizar la resta) Si el espacio calculado de swap es mucho mayor que la memoria fsica (Mas del doble), probablemente se deber invertir en ms memoria fsica, sino la performances del sistema ser muy lento.

Es una buena idea tener por lo menos un rea de swap, an cuando los clculos indiquen que no se necesita. Linux usa el espacio de swap en forma agresiva, tanto, que trata de mantener la mayor cantidad de memoria fsica libre. Linux swapear las pginas de memoria que no han sido usadas, aun si la memoria no es solicitada por ningn proceso. Esto evita las esperas por swapeo cuando ella es necesaria: El pasaje a swap puede ser hecho mucho ms fcilmente cuando el disco est desocupado. El espacio de swap puede ser dividido entre varios discos. Esto puede en algunas ocasiones mejorar el rendimiento, dependiendo de las velocidades relativas de los discos y del tipo de acceso. Se puede experimentar con algunos esquemas, pero es importante tener en cuenta que hacer esto apropiadamente puede ser muy complejo. No se debe creer que un esquema pueda ser mejor que otro, antes de verificar su real aplicabilidad. El Buffer Cache La lectura desde el disco es mas lenta en comparacin con el acceso a memoria (real). Adems, es comn leer la misma parte del disco varias veces durante periodos relativamente cortos de tiempo. Por ejemplo, uno podra leer primero un mensaje del correo electrnico, despus leer la misma carta con un editor de texto cuando uno la esta respondiendo, y finalmente hacer que el programa la lea de nuevo cuando le indicamos copiarla a una carpeta. O, considere cuan seguido el comando ls es ejecutado en un sistema con muchos usuarios. Leyendo la informacin del disco una sola vez y luego mantenindola en la memoria hasta que no sea necesaria, puede acelerar todas las lecturas posteriores con respecto a la primera. Esto es llamado "buffering" de disco (disk buffering), y la memoria usada para ese propsito es llamada buffer cache. Debido a que la memoria es, desafortunadamente finita, y por lo tanto, un recurso escaso, el "buffer cache" usualmente no puede ser demasiado grande (no puede mantener todos los datos que uno siempre quiere usar). Cuando la "cache" se completa, los datos que no han sido usados por un periodo de tiempo prolongado son descartados y as la memoria es liberada para ser utilizada con nuevos datos. El buffering de disco trabaja cuando existen escrituras tambin. Por un lado, los datos que son escritos son ledos nuevamente con mucha frecuencia (por ej. el cdigo fuente de un programa es guardado a un

archivo, y despus es ledo por el compilador), entonces, colocar los datos que son escritos en la cach es una buena idea. Por otro lado, colocar los datos en la cach, sin escribirlos a disco inmediatamente, acelera al programa que los guarda. Las escrituras pueden ser realizadas en segundo plano, sin disminuir la velocidad de ejecucin de los otros programas. La mayora de los sistemas operativos tienen "buffer cach" (aunque algunas veces son llamados de manera diferente), pero no todos funcionan de acuerdo a los mismos principios. Algunos son de escritura directa (write-through): los datos son escritos a disco inmediatamente (y obviamente, son mantenidos en la cach). Otros son de escritura posterior (write-back), ya que las escrituras son realizadas momentos despus. Escritura posterior es ms eficiente que escritura directa, pero es ms susceptible a errores: si la mquina cae, el suministro elctrico es interrumpido en un mal momento, o un medio extrable es removido sin ser desmontado, entonces usualmente los cambios realizados en la cach se pierden. Esta situacin puede significar que el sistema de archivos (si existiese uno) no trabaje completamente bien, tal vez debido a que los datos que no pudieron ser escritos sean cambios importantes para el mantenimiento del sistema. Debido a esto, nunca debera apagar el equipo sin emplear los procedimientos como tampoco quitar un disco flexible de la unidad hasta que haya sido desmontado (si fue montado), o antes de que cualquier programa que esta haciendo uso del dispositivo no indique que ha terminado y, el "led" de la unidad de disquete ya no esta encendida. El comando sync descarga el buffer (flushes), por ejemplo, fuerza que los datos aun no grabados sean escritos al disco, y puede ser usado cuando uno quiere asegurarse que todas las escrituras se hayan realizado. En los sistemas UNIX tradicionales, hay un programa llamado update que esta ejecutndose en segundo plano, el cual se encarga de ejecutar el comando sync cada 30 segundos, por esto usualmente no es necesario usar sync. Linux tiene un demonio adicional, bdflush, el cual efecta un sync ms imperfecto, pero con ms frecuentemente para evitar el repentino congelamiento debido a la sobrecarga de I/O que algunas veces "sync" produce. Bajo Linux, bdflush is iniciado por update. No existen usualmente razones para preocuparse por bdflush, pero si bdflush termina su ejecucin por alguna causa, el kernel alertar sobre esto, por lo que debe iniciarlo a mano (/sbin/update).

La cach no realiza realmente buffer de archivos, pero s ** de bloques, los cuales son las unidades mas pequeas de E/S a disco (en Linux usualmente son de 1 kB). De esta manera, tambin los directorios, sper bloques, otros datos relacionados con ** en el sistema de archivos, y discos sin sistema de archivos son mantenidos en cach. La eficacia de una cach es decidida principalmente por su tamao. Una cach pequea es casi inservible: tiene muy pocos datos, por lo que todos los datos en la cach sern descartados antes de que sean reutilizados. El tamao crtico depende de la cantidad de datos escritos y ledos, y de cuan frecuente los mismos datos son accedidos. La nica manera de saber el tamao til de una cach es experimentando. Si la "cache" es de tamao fijo no es muy bueno que sea demasiado grande porque eso podra hacer que la memoria libre sea demasiado pequea y ocasionar "swapping" (lo cual es tambin muy lento). Para hacer que el uso de la memoria real sea ms eficiente, Linux usa automticamente toda la memoria RAM como "buffer cache", pero tambin, automticamente, disminuye el tamao de la "cache" a medida que los programas van necesitando ms memoria. Bajo Linux, usted no necesita configurar nada para hacer utilizar "cache", esto sucede de forma completamente automtica. A excepcin de los adecuados procedimientos a seguir para "cerrar?apagar?desconectar?bajar?deshabilitar" o quitar diskettes? usted no tiene necesidad de preocuparse por nada.

CONCLUCION
Podemos decir que Linux es un sistema con muchas ventajas, comparndolo con Windows ya que, optimiza en su mayora los recursos para poder manejar varios procesos en forma simultanea, por eso se dice que Linux es un sistema multitarea y multiusuario. Linux esta basado en el sistema operativo UNIX lo cual significa que posee un estructura determinada y homognea con el resto de sistemas Unix. El directorio raiz de Linux contiene directorios principales donde encontraremos los diferentes comandos bajo los cuales este opera, los directorios principales de Linux descritos a continuacin son: bin boot dev etc home lib mnt root sbin tmp usr var Binarios de comandos esenciales Archivos estticos de cargador de arranque(boot-loader) Archivos de dispositivos Configuracin del sistema local-mquina Directorios home de los usuarios Libreras compartidas Punto de montaje de particiones temporales Directorio hogar del usuario root Binarios del sistema esenciales Archivos temporales Segunda jerarqua mayor Informacin variable

Linux maneja los procesos de manera diferente a los de otros sistemas operativos ya que los programas y procesos son entidades distintas,esto indica que en un sistema operativo multitarea, multiples instancias pueden ejecutarse simultneamente; determinando asi que cada instancia es un proceso diferente. Un ejemplo seria si 3 usuarios ejecutan un mismo programa al mismo tiempo, decimos que habra 3 instancias o mejor dicho 3 procesos de un mismo programa. Para realizar la parte de procesos Linux hace uso de lo que llamamos memoria virtual, la cual se refiere a utilizar el espacio del disco duro como una extensin de la RAM, la cual almacenara todos los procesos que estn sin uso liberando as la memoria real y utilizando en forma optima la cach de la maquina. Para poder hacer uso del disco duro como una estencion de la RAM debemos crear un espacio SWAP el cual es un archivo comn que no necesita ningn tratamiento para el kernel, ya que lo nico que le interesa al kernel es q no tenga huecos y que este preparado para ser utilizado por el usuario. El espacio SWAP lo podemos estimar haciendo correr lo programas que utilizamos habitualmente.

En general podemos decir que Linux es un optimizador de recursos de memoria entre unas de sus caractersticas para poder darle un performance de ultimo nivel a una maquina; claro todo esto depender de los recursos que el usuario posea.

Вам также может понравиться