Академический Документы
Профессиональный Документы
Культура Документы
TECNOLOGÍAS DE LA INFORMACIÓN Y
COMUNICACIÓN
Sistemas Operativos
2010
Alejandra Villalva Rojas
Ana María Rosas Hernández
José David Alanís Urquieta
Eric Noé Pérez Osorno
Nélida Alicia Casas Reyes
Mayo-Agosto 2010
Sistemas Operativos 2010
ÍNDICE
1.1 Introducción 2
3.3.2 ID de un proceso 63
3.3.3 Estados de un proceso 64
3.3.4 Comandos relacionados con la ejecución de procesos 65
3.3.5 Redireccionamiento de entrada y salida estándar 68
3.3.6 Conexión de procesos mediante tuberías 70
3.3.7 Procesamiento en segundo plano 70
3.4 Editor vi 71
3.4.1 Modo comando 72
3.4.2 Modo de inserción 73
3.4.3 Modo ejecución de comandos 74
IV SERVICIOS DE RED 85
UNIDAD 1
1.1 Introducción
Un sistema operativo es una parte importante de casi todos los sistemas de cómputo.
Éstos últimos se pueden dividir a grandes rasgos en cuatro componentes: el hardware, el
sistema operativo, los programas de aplicación (o del usuario) y los usuarios
Página 2
Sistemas Operativos 2010
Los sistemas operativos han evolucionado en los últimos años, a continuación se presenta
una reseña histórica que destaca diferencias y similitudes entre los sistemas:
Los primeros computadores eran máquinas con un tamaño (físico) enorme que se
ejecutaban desde una consola. El programador, que también era el operador del sistema
de computación, escribía un programa y luego operaba el programa directamente desde la
consola del operador. Primero, el programa se cargaba manualmente en la memoria
usando los interruptores del tablero frontal (una instrucción a la vez), desde cinta de papel
o desde tarjetas perforadas. Luego se oprimían los botones apropiados para establecer la
dirección de inicio y poner en marcha la ejecución del programa. Mientras el programa se
ejecutaba, el programador/operador podía vigilar su ejecución gracias a las luces de la
consola. Si se descubrían errores, programador podía detener el programa, examinar el
contenido de la memoria y los registros, y depurar el programa directamente desde la
consola. Las salidas se imprimían o se perforaban en cinta de papel o tarjetas para
imprimirse posteriormente.
Página 3
Sistemas Operativos 2010
luego para COBOL y luego otra vez para FORTRAN. En cambio, el operador ejecutaba los
dos programas FORTRAN como un lote y el de COBOL como un lote diferente.
Página 4
Sistemas Operativos 2010
Los sistemas por lotes multiprogramados proporcionan un entorno en el que los distintos
recursos del sistema (CPU, memoria, dispositivos periféricos) se aprovechan de manera
efectiva. No obstante, tienen ciertos problemas desde el punto de vista del usuario, por
ejemplo que el programador no puede modificar un programa durante su ejecución a fin de
estudiar su comportamiento.
La idea del tiempo compartido se demostró ya en 1960, pero dada la dificultad y el costo
de construir tales sistemas, apenas se hicieron comunes a principios de la década de
1970. A medida que ha crecido la popularidad del tiempo compartido, los investigadores
han intentado fusionar los sistemas por lotes y de tiempo compartido. Muchos sistemas de
computador que se diseñaron primordialmente para como sistemas por lotes se han
modificado para crear un subsistema de tiempo compartido. Por ejemplo, el OS/360 de
IBM, un sistema por lotes, se modificó para apoyar la opción de tiempo compartido (TSO,
Time Sharing Option). Al mismo tiempo, son varios los casos de sistemas de tiempo
compartido a los que se ha añadido un subsistema por lotes. Hoy día, la mayoría de los
sistemas ofrecen tanto procesamiento por lotes como tiempo compartido, aunque su
diseño y uso básico tiende a ser de un tipo o del otro.
Con la caída en los costos del hardware, ha vuelto a ser factible tener un sistema de
computación dedicado a un solo usuario. Estos tipos de sistemas se conocen como
computadores personales (PC, personal computer). No hay duda de que los dispositivos
de E/S han cambiado: los tableros de interruptores y los lectores de tarjetas han sido
Página 5
Sistemas Operativos 2010
reemplazados por teclados tipo máquina de escribir y ratones. Las impresoras de líneas y
perforadoras de tarjetas han cedido el paso a pantallas e impresoras pequeñas y rápidas.
La tendencia actual es hacia los sistemas multiprocesador. Tales sistemas tienen más de
un procesador en comunicación íntima, los cuales comparten el bus del computador, el
reloj y a veces la memoria y los dispositivos periféricos. Estos sistemas están fuertemente
acoplados.
Página 6
Sistemas Operativos 2010
Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza que las
tareas críticas se terminarán a tiempo. Este objetivo requiere que todos los retardos del
sistema estén limitados, desde la obtención de datos almacenados hasta el tiempo que el
sistema operativo tarda en atender cada solicitud que se le presenta. Tales restricciones de
tiempo determinan los recursos que están disponibles en este tipo de sistemas. El
almacenamiento secundario de cualquier índole suele estar limitado o ausente, y los datos
se almacenan de preferencia en memoria de corto plazo o en memoria de sólo lectura
ROM. También está ausente la mayor parte de las funciones avanzadas de los sistemas
Página 7
Sistemas Operativos 2010
operativos, ya que tienden a separar al usuario aún más del hardware, y tal separación
causa incertidumbre acerca del tiempo que una operación tarda.
Un tipo menos restrictivo es el sistema de tiempo real blando, en el que una tarea de
tiempo real crítica goza de prioridad hasta que se lleva a cabo. Al igual que los sistemas de
tiempo real duros, es preciso limitar los retardos del núcleo: no es posible mantener a una
tarea de tiempo real esperando indefinidamente a que el núcleo la ejecute. En vista de que
no apoyan el cumplimiento estricto de plazos, es riesgoso utilizarlos en control industrial y
robótica, aunque hay varias áreas en las que pueden ser útiles, como multimedia, realidad
virtual y proyectos científicos avanzados como la exploración submarina y planetaria.
Un sistema operativo crea el entorno en el que se ejecutan los programas. Los sistemas
operativos varían mucho en su estructura interna, pues se organizan según muchas
filosofías de distintas. El diseño de un sistema operativo es una tarea de gran magnitud. Es
importante definir bien los objetivos del sistema antes de iniciar el diseño.
Aunque no todos los sistemas operativos tienen la misma estructura, muchos sistemas
modernos comparten el objetivo de apoyar los tipos de componentes del sistema que se
bosquejan en las siguientes secciones.
Página 8
Sistemas Operativos 2010
A fin de mejorar tanto el grado de utilización de la CPU como la rapidez con que el
computador responde a sus usuarios, es necesario mantener varios programas en la
memoria. Hay muchos esquemas de gestión de memoria distintos que reflejan diversas
estrategias, y la efectividad de los diferentes algoritmos depende de la situación específica.
La selección de un esquema de gestión de memoria para un sistema en particular
depende de muchos factores, pero sobre todo del diseño del hardware del sistema.
• Saber cuáles partes de la memoria se están usando actualmente y quién las está
usando.
• Decidir cuáles procesos se cargarán en la memoria cuando se disponga de espacio.
• Asignar y liberar espacio de memoria según se necesite.
Página 9
Sistemas Operativos 2010
Sólo el driver del dispositivo conoce las peculiaridades del dispositivo específico al
que está asignado.
Un sistema operativo moderno puede ser tan grande y complejo que debe ser
diseñado con mucho cuidado para que funcione correctamente y sea fácil de modificar.
Una estrategia común consiste en dividir la tarea en componentes pequeños, en lugar de
tener un sistema monolítico. Cada uno de estos módulos debe ser una porción de bien
definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas. De
acuerdo a la forma en que los componentes de un sistema se conectan entre sí y se
combinan para formar un núcleo, puede mencionarse la siguiente clasificación de sistemas
operativos.
Página 10
Sistemas Operativos 2010
Hay muchos sistemas comerciales que no tienen una estructura bien definida. Es
común que tales sistemas operativos hayan sido en un principio sistemas pequeños,
sencillos y limitados, y luego hayan crecido más allá de su alcance original. MS-DOS es un
ejemplo; originalmente fue diseñado e implementado por un puñado de personas que no
tenían idea de la popularidad que llegaría a adquirir. Se escribió con objeto de proporcionar
el máximo de funcionalidad en el mínimo de espacio, a causa del hardware limitado en el
que se ejecutaba, y por ello no se dividió con cuidado en módulos. En la figura 1.4 se
muestra su estructura.
Página 11
Sistemas Operativos 2010
Las llamadas al sistema definen la interfaz del programador con UNIX; el conjunto de
programas del sistema que comúnmente están disponibles definen la interfaz del usuario.
Las interfaces del programador y del usuario definen el contexto que el núcleo debe
apoyar.
Una capa del sistema operativo es una implementación de un objeto abstracto que es el
encapsulamiento de datos y de operaciones que pueden manipular esos datos. En la figura
1.6 se representa una capa de sistema operativo representativa, que designamos capa M.
Esta capa, consiste de en algunas estructuras de datos y un conjunto de rutinas que las
capas de nivel superior pueden invocar. La capa M, a su vez, puede invocar operaciones
de capas de niveles más bajos.
Página 12
Sistemas Operativos 2010
La principal ventaja del enfoque de capas es la modularidad. Las capas se escogen del
modo que cada una utilice sólo funciones (operaciones) y servicios de capas de los niveles
inferiores. Esto simplifica la depuración y la verificación del sistema porque por definición
sólo utiliza el hardware básico (que se supone correcto) para implementar sus funciones.
Una vez depurada la primera capa, se puede dar por sentado su funcionamiento correcto
mientras se trabaja con la segunda capa, y así sucesivamente. Si se encuentra un error
durante la depuración de una capa en particular, sabemos que el error está en esa capa,
porque las capas inferiores ya están depuradas. Así, el diseño e implementación del
sistema se simplifica cuando el sistema se divide en capas.
El enfoque de diseño por capas se usó por primera vez en el sistema operativo THE
creado en la Technische Hogesschool Eindhoven. El sistema THE se definió en seis capas,
como se muestra en la figura 1.7
capa 0: hardware
Página 13
Sistemas Operativos 2010
Este enfoque puede utilizarse de muchas formas. Por ejemplo, el sistema Venus también
se diseñó en capas.
El principal problema del enfoque en capas tiene que ver con la definición apropiada de las
distintas capas. Puesto que una capa sólo puede usar las capas que están a un nivel más
bajo, la planificación deber ser muy cuidadosa.
La primera versión de Windows NT, tenía una organización muy orientada a hacia las
capas. Sin embargo, el desempeño de esta versión era pobre en comparación con el de
Windows 95. En Windows NT 4.0 se remediaron algunos de estos problemas de
desempeño transfiriendo capas del espacio de usuarios al del núcleo, e integrándolas de
forma más íntima.
Algunos sistemas llevan este esquema un paso más allá permitiendo a los programas de
aplicación invocar fácilmente los programas del sistema. Aquí también, aunque los
programas del sistema están en un nivel más alto que las demás rutinas, los programas de
aplicación podrían ver todo lo que está debajo de ellos en la jerarquía como si formara
parte de la máquina misma. Este enfoque de capas se lleva a su conclusión lógica en el
concepto de máquina virtual. El sistema operativo VM para sistemas IBM es el mejor
ejemplo del concepto de máquina virtual, porque IBM fue de los primeros que trabajaron en
esta área.
Página 14
Sistemas Operativos 2010
desnudo subyacente. Cada proceso recibe una copia (virtual) del computador subyacente
(figura 1.8).
Figura 1.8 Modelos de sistemas. (a) Máquina no virtual. (b) Máquina virtual
Página 15
Sistemas Operativos 2010
UNIDAD II
Introducción
El objetivo principal del SO es lograr que los sistemas informático se emplee de modo
eficiente y como objetivo secundario se use de manera cómoda y ofrecer servicios a los
programas y los usuarios para facilitar la tarea de programación. Para lograr esto el
hardware debe brindar algún mecanismo apropiado que impida que los usuarios
intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este
recurso de hardware de modo que esto se cumpla.
Instalación
Se tiene que tener en cuenta que cuanto más se conozca de su computadora menos
problemas tendrá en la instalación de GNU/Linux. Se tendrán que tener a mano una serie
de información elemental que le serán requeridas en el momento de la instalación tales
como el idioma del teclado y la zona del tiempo donde se encuentra. Aunque parezca
elemental, es aquí donde la mayoría se paraliza o pone mal los datos, lo que traerá futuros
dolores de cabeza. Es importante conocer que las diferentes distribuciones más
importantes que existen bajo Linux se instalan en forma similar.
Requisitos de hardware
Para que GNU/Linux funcione correctamente se tendrá que contar con un sistema Pentium
III con disco rígido de por lo menos 20 GB con al menos 16 MB para memoria en modo
gráfico, se recomienda 2 GB en RAM.
Página 16
Sistemas Operativos 2010
Casi todos los sistemas operativos modernos utilizan particiones de discos, y Linux no es
una excepción. Cuando instale Linux, tendrá que trabajar con particiones de disco. Si
Linux va a compartir su sistema con otro SO, necesitará estar seguro de tener espacio
disponible suficiente en su(s) disco(s) duro(s) para la instalación.
El espacio de disco destinado a Linux debe estar separado del espacio utilizado por otros
sistemas operativos que puedan estar instalados en su sistema, como por ejemplo
Windows, OS/2, o incluso una versión diferente de Linux. Al menos dos particiones (/ y
swap) deben estar dedicadas a Linux. Hay que recordar algo muy importante a la hora de
realizar un particionamiento del disco. GNU/Linux necesita como mínimo 2 particiones. Una
principal (raíz) y otra de intercambio (swap).
Si se pensara poner dicha máquina como servidor, tendríamos que pensar en por lo menos
MB de RAM adicional por usuario en modo texto y 2 MB para modo grafico que aunque
parezca demasiado, cuando se cuenta con 100 usuarios usando el entorno gráfico se vera
que la memoria se evapora como agua en el desierto.
Página 17
Sistemas Operativos 2010
B) Una vez que ha cargado se puede seleccionar el 'install' oprimiendo la tecla enter
para iniciar la instalación. Posteriormente Centos le preguntara si quiere empezar
con el testing; pulse la tecla Tab hasta que Skip es puesto en relieve, a continuación
pulse Intro.
Página 18
Sistemas Operativos 2010
Página 19
Sistemas Operativos 2010
E) Centos le pedirá la configuración del teclado, esta será igual en español, continúe
oprimiendo Siguiente (figura 2 5)
Página 20
Sistemas Operativos 2010
Página 21
Sistemas Operativos 2010
Página 22
Sistemas Operativos 2010
Asegúrese que la opción del check box “Revise (y modifique si lo necesita) las
particiones que ha creado” no este activada (sin palomita) para que Linux Centos no
le de la pantalla de Configuración del Disco Duro Manual.
Página 23
Sistemas Operativos 2010
Página 24
Sistemas Operativos 2010
Este dispositivo, al conectar dos redes de IP, poseerá: una dirección IP privada: que
servirá para identificarse dentro de la red local, una dirección IP pública: que servirá
para identificarse dentro de la red exterior. Ejemplo una red compuesta por cinco
dispositivos (generalmente computadoras, pero pueden ser impresoras, etc.) y un
enrutador:
Dirección de los dispositivos:
192.168.4.3 (computadora 1)
192.168.4.4 (computadora 2)
192.168.4.5 (computadora 3)
K) La siguiente pantalla solicita el soporte extra del idioma, se recomienda volver elegir
al español y dar clic en el botón siguiente.
Página 25
Sistemas Operativos 2010
M) La siguiente pantalla es muy importante, ya que dará la contraseña del Root, este es
el superusuario, el principal y no deberá olvidar la contraseña ya que tiene los
derechos de configurar al mismo Centos posteriormente si se requiere.
Página 26
Sistemas Operativos 2010
Esta selección de paquetes dependerá del tipo de programas con que trabaja la
empresa como puede ser administradores de bases datos, desarrolladores de
software o paquetes de oficinas para administrativos.
O) Listo para empezar con la descarga de los archivos que configuran al Sistema
Operativo Centos, dando clic en el botón siguiente como se observa en la siguiente
pantalla. (figura 2.16)
Página 27
Sistemas Operativos 2010
P) Por último aparecerá la pantalla de avance donde el mismo sistema pide los cd’s de
instalación por lo que vaya introduciéndolos como se lo requiere la propia
computadora. (figura 2.17)
Página 28
Sistemas Operativos 2010
Estilo tradicional PC
Nomenclatura Windows necesita ser instalado en una partición primaria. Linux puede ser
instalado en cualquier tipo de partición. Linux suele numerar las particiones primarias de
un disco desde 1 a 4, y reserva los números 5 y superior para las lógicas. Recordemos
entonces al particionar que cuando se llegue a crear una cuarta partición, conviene hacerla
lógica.
SCSI y USB:
/dev/sda, /dev/sdbb, etc.
Las particiones de un disco se nombran mediante el nombre de dispositivo y
el número de partición:
Primarias: /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4
Lógicas: /dev/hda5, etc.
De cara a una instalación para uso generalista, propondremos un primer esquema simple y
efectivo:
Una partición para swap (memoria virtual en disco)
Una partición para el sistema (raíz de la jerarquía, es decir: / )
Una partición para los datos de los usuarios ( directorio /home )
La partición de swap se utiliza como espacio de memoria RAM virtual en disco duro. Sirve
para que, en casos de sobrecarga de trabajo, el sistema operativo pueda relegar a disco
aquellos programas que están ejecutándose pero pueden esperar.
Página 29
Sistemas Operativos 2010
La partición raíz (/) es la que contiene todo el software del sistema operativo. El filesystem
recomendado y más estándar en Linux es “ext3”. Una instalación típica minimalista puede
ocupar unos 200 MB; una instalación completa con entorno gráfico suele superar el GB (a
veces varios GB porque depende de cuánto software provee la distribución)
La partición /home. es en donde todos los usuarios UNIX escriben todos sus
datos. Por tanto, la dimensionaremos según creamos que vayan a ser las
necesidades de usuario.
Puede tener un disco duro puede varias particiones, cada una de ellas puede estar en el
formato que quieras. El sistema operativo Windows monta cada partición con una letra,
generalmente empezando por la C:/, en cambio Linux monta las particiones como carpetas,
de forma que la partición en la que está instalada el sistema operativo está montada en /, y
el resto de particiones las puedes montar donde quieras (aunque generalmente si son de
datos se suelen montar en /media/nombre_partición).
Conceptualmente todos los gestores funcionan así: primero la BIOS del PC debe leer el
código de arranque del MBR (sector 0 del disco). Para ello deberemos antes configurar la
BIOS para que pueda arrancar del disco que queramos en concreto.
La BIOS sólo sabe arrancar el programa que se encuentra en el MBR Dicho programa es
el gestor de arranque, en su primera “etapa”: a su vez “sabe” a qué particiones tiene que ir
a leer para continuar con la carga de la siguiente etapa, y de ahí ofrecernos ya un menú
para que seleccionemos uno u otro sistema operativo.
El arranque del sistema es todo un caso. Se esta contando seguramente con dos SO en el
mismo sistema. Los programas que lo guiaran por la instalación les pedirán que indiquen
que sistema operativo quieren que inicie al encender la computadora. Con GNU/Linux se
utiliza un programa que reside en el MBR de disco rígido llamado LILO (LInux LOader) el
cual administra en que partición se encuentra cada SO y uno puede elegir, presionando la
tecla Tab, con cual SO se quiere iniciar.
Página 30
Sistemas Operativos 2010
Esta liga te lleva a un archivo .pdf en inglés sobre sistemas operativos Windows y
Linux Red hat
http://www.sans.org/security-training/os_install2.pdf
Esta liga te lleva a ver los pasos de la instalación de Linux Centos 5.0
http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=http://www.
slideshare.net/poustchi/installing-linux-centos-50
Página 31
Sistemas Operativos 2010
UNIDAD III
Comando: date
Formato: date [-u] [+FORMAT] [MMDDhhmm] [[CC]YY] [.ss]
Descripción: Imprime y establece la fecha. Visualizará la fecha y hora actual tal como es
conocida por la máquina. No especificando ningún argumento o si el argumento comienza
con +, imprimirá la fecha y la hora; caso contrario, se registra o establece la fecha. La
especificación de un formato consiste en una cadena entre comillas. Los campos
particulares vienen representados entre signos de porcentaje (%) seguidos por una letra de
código.
Los descriptores de campo son:
%% Literal %.
%a Establece abreviatura para los días de la semana (Sat...Sun).
%A Asigna nombre completo a los días de la semana (Saturday...Sunday).
%b Establece abreviatura a los meses (Jan...Dec).
%B Asigna nombre completo a los meses (January...December).
%c Fija fecha y hora de la forma (Sun Dec 08 08:03:30 EST 2002).
%d Día del mes (01...31).
%D Fecha (mm/dd/yy).
%h Igual que %b.
%H Horas de 00 a 23.
%I Horas de 01 a 12.
%j Día del año 001 a 365.
%k Horas de 0 a 23.
%l Horas de 1 a 12.
%m Mes de 01 a 12.
%M Minutos de 00 a 59.
%n Nueva línea.
%p Fija AM o PM.
%r Hora en notación AM/PM.
%S Segundos de 00 a 59.
%t Inserta carácter de tabulación horizontal.
%w Día de la semana (de domingo a sábado)
%x Establece la representación de fecha como mm/dd/yy.
%X Establece la representación de hora como %H:%M:%S.
%y Sólo año.
Las opciones son:
-u Asigna el tiempo y la fecha en coordenadas universales.
MM Mes.
DD Día del mes.
hh Hora.
mm Minutos.
CC Primeros dos dígitos del año (siglo).
yy Últimos dos dígitos del año.
Página 32
Sistemas Operativos 2010
.ss Segundos.
Nota: Sólo el superusuario (administrador del sistema) puede fijar o cambiar el sistema
horario.
Ejemplos: $ date
Wed Jun 10 18:50:06 EDT 2002
$ date +%m
06
Comando: echo
Formato: echo [-ne] [argumento(s)]
Descripción: Regresa cualquier cosa que haya escrito después de echo. Escribe los
argumentos por la salida estándar, separados por espacios en blanco y terminado(s) por
una nueva línea. echo reconoce algunas anotaciones especiales:
\b Caracter de retroceso o retroceder un caracter.
\c Escbir la línea sin nueva línea.
\f Salto de página o cambio de hoja.
\n Cambio de línea o salto de línea.
\r Retorno de carro.
\t Caracter de tabulación o tabulador horizontal.
\\ Barra invertida o barra inclinada hacia la izquierda.
\v Caracter de tabulación vertical.
-e Habilita la interpretación de caracteres especiales marcados por la barra inclinada
hacia la izquierda.
-n Elimina el salto de línea final.
Página 33
Sistemas Operativos 2010
Comando: exit
Formato: exit
Descripción: Indica que se ha terminado la sesión y libera a la terminal para ser utilizada
por alguien más o para ingresar con un identificador distinto. La terminación o despedida
impide que gente extraña utilice la terminal y el identificador para provocar perjuicios
potenciales.
Comando: man
Formato: man [comando]
Descripción: Localiza y muestra la(s) página(s) del manual del comando especificado.
Ejemplo: man date
El manual en línea man contiene páginas del manual para cada comando y otras
páginas acerca de las funciones internas que los progrmadores utilizan, formatos para
diferentes tipos de sistema de archivo, descripciones de hardware que puede conectarse a
su SO.
Comando: passwd
Formato: passwd [nombre del usuario]
Descripción: Cambia la contraseña del usuario (password), siempre que ya se haya
registrado. Una contraseña sólo puede ser cambiada por el propietario de la misma,
passwd pedirá que escriba la contraseña actual para probar que aún es la misma persona
que cuando se llevo a cabo el registro. Posteriormente el programa. passwd pide la nueva
contraseña dos veces para asegurarse de que sea correcta. Si se ha introducido la misma
contraseña las dos veces, la orden passwd cambiará la idea de que el sistema tiene la
contraseña y regresará luego al shell de la forma usual para aceptar la siguiente orden. Si
se comete un error, el programa passwd acabará volviendo al shell para que se pueda
intentar de nuevo. Si se cancela la ejecución del comando passwd, acabará dejando la
vieja contraseña todavía en activo. Si olvidara la contraseña, no hay manera de
recuperarla, ni aún el administrador del sistema puede hacerlo. Puede asignarle una
nueva. El administrador del sistema podrá crear una contraseña nula o variar las
contraseñas de los distintos usuarios.
Sugerencias para escribir una contraseña:
• Debe contener entre 6 y 8 caracteres.
• Debe contener, al menos, un dígito (0-9).
• Intercale dígitos, caracteres en minúscula y caracteres en mayúscula (LINUX
distingue (son diferentes) mayúsculas de minúsculas).
• Escriba una contraseña que sea fácil de recordar, sin necesidad de anotarla en
alguna parte, y que no sea predecible.
Comando: shutdown
Formato: /bin/shutdown [-t segundos] [-rkhncf] tiempo [mensaje]
Descripción: Termina todos los procesos que se estén ejecutando en el sistema de
manera ordenada. Cierra el sistema, parando todas las conexiones y esperando antes de
detenerse mientras lanza mensajes de aviso. Cuando se especifica una hora, el cierre se
realizará a la hora indicada. Sólo el superusuario o un usuario con autorización pueden
ejecutar la orden shutdown.
Las opciones son:
-t segundos Espera los segundos dados entre el mensaje de atención y las señales de
finalización de shutdown.
Página 34
Sistemas Operativos 2010
Comando: poweroff
Formato: poweroff
Descripción: Este comando se utiliza para apagar el sistema sin que se vuelva a
reinicializar.
Opciones:
-h Para el sistema para apagado. (no reinicia)
-r Reiniciar el sistema
-f reinicio rápido. No se comprobaran los sistemas de archivo al iniciar.
-q Silencioso. No se solicita mensaje.
-s Reinicio en modo monousuario. Muy util.
Comando: who
Formato: who [opciones] [archivo]
who am i
Descripción: Informa sobre quién está en el sistema. Lista el nombre de conexión, el
nombre de la terminal y el momento de conexión para cada usuario conectado al sistema
LINUX. También puede escribir who am i y sólo se imprimirá la línea de la terminal en la
cual se escribió el comando.
Página 35
Sistemas Operativos 2010
Comando: id
Formato: id [opciones]
Descripción: Muestra información sobre la identificación dentro del sistema del usuario
que ejecuta el comando. La información que facilite consiste en nombre de usuario, UID,
nombre de grupo y GID.
Las opciones son:
-g Muestra sólo el identificador de usuario.
-n Muestra sólo el nombre de usuario o de grupo, es necesario en combinación con –u o
-r –g.
-q Muestra UID y GID reales en lugar de efectivos, es necesario en combinación con –u
o –g.
Muestra sólo la identificación de usuario.
Comando: time
Formato: time comando
Descripción: Facilita la información de tiempo que consume un comando. La información
que nos facilita es de tres tipos: tiempo real que transcurre desde que lanza el comando
hasta que termina, tiempo de usuario que es el tiempo que realmente a utilizado de CPU y
por último, tiempo de sistema que es el tiempo consumido en peticiones al sistema.
Las opciones son:
comando Comando que se quiere medir.
Ejemplo:
time ls –s /
Medirá el tiempo que tarde en ejecutarse un ls –l de todo el sistema de
archivos.
Comando: cal
Formato: cal [-j] [-y] [mes] [año]
Descripción: Muestra en pantalla el calendario del año indicado, o del mes indicado.
Las opciones son:
-j Las fechas se muestran en formato juliano enumerando los días de forma
consecutiva desde el 1 de enero.
-y Muestra el calendario del año actual.
mes Sirve para especificar el mes que queremos ver, se puede indicar tanto por número
del 1 al 12 como por su nombre en inglés. Por defecto el valor es el del mes actual.
año Especifica el año que se quiere visualizar, de año 1 a año 9999. Los años han de ser
especificados con su número completo.
Ejemplos:
cal
Muestra en pantalla el calendario del mes actual.
cal 4 1974
Página 36
Sistemas Operativos 2010
Comando: clear
Formato: clear
Descripción: Borra la pantalla completamente de la terminal en la que se este trabajando.
Comando: finger
Formato: finger [opciones] usuarios
Descripción: Este comando se utiliza para obtener información sobre los usuarios del
sistema, muestra toda la información referente a un usuario que hay registrada en el
sistema. Si solo se invoca el comando sin ninguna opción ni nombre de usuario nos da
información referente a los usuarios actualmente conectados al sistema. Podemos pedir
información sobre usuarios de otras computadoras conectadas en red poniendo:
usuario@nmbrecomputador.sudominio.
Las opciones son:
-s Da diversa información sobre los usuarios.
-l Muestra la misma información que la opción –s pero en formato de líneas y
además nos muestra los contenidos de los ficheros .plan y .project, si éstos
-p existen, del directorio home del usuario.
usuarios Impide que la opción –l muestre el contenido de los archivos .plan y .project.
Se da una lista de usuarios sobre los que se demanda la información.
Ejemplo:
finger psanchez
Nos devolverá la información almacenada referente al usuario psanchez.
Los archivos son administrados por el SO. Su estructura, nombre, forma de acceso, uso,
protección e implementación son temas fundamentales en el diseño de un SO. Aquella
parte del SO que trabaja con los archivos se conoce, como un todo, como el sistema de
archivos.
Las reglas exactas para los nombres de archivo varían un poco de sistema a sistema,
aunque los actuales SO permiten cadenas de hasta 256 caracteres (algunos otros SO,
Página 37
Sistemas Operativos 2010
permiten cadenas de hasta 8 letras) como nombres de archivo. También es frecuente que
se permitan dígitos y caracteres especiales.
Algunos sistemas de archivos distinguen entre las mayúsculas y las minúsculas, mientras
que otros no. UNIX está dentro de la primera categoría; MS-DOS dentro de la segunda.
Así, un sistema UNIX puede tener los siguientes archivos distintos: bárbara, Bárbara,
BARBARA, BARbara y BarBaRa. En MS-DOS, todos los nombre se refieren al mismo
archivo.
La mayoría de los SO utilizan nombres de archivo con dos partes, separadas por un punto,
como en prog.c. La parte posterior al punto es la extensión de archivo e indica por lo
general algo relativo al archivo. Por ejemplo, en MS-DOS, los nombres de archivo tienen
una longitud de hasta ocho caracteres más una extensión opcional de hasta tres
caracteres. En UNIX, el tamaño de la extensión, si ésta existe, se deja al usuario; además,
un archivo puede tener incluso dos o más extensiones.
Tipos de archivos.
Muchos SO soportan varios tipos de archivos. UNIX y MS-DOS, por ejemplo, tienen:
• Archivos regulares. Son aquellos que contienen información del usuario.
• Archivos en ASCII. Constan de líneas de texto. En ciertos sistemas, cada línea
termina con un carácter de retorno de carro. En otros se utiliza el carácter
alimentador de línea. En ciertas ocasiones se necesitan ambos. Las líneas no
tienen que tener la misma longitud. La gran ventaja de los archivos ASCII es que
se pueden exhibir e imprimir tal cual son y pueden editarse mediante un editor de
texto común. Además, si un gran número de programas utilizan archivos en ASCII
para la entrada y salida, es fácil conectar la salida de un programa con la entrada
de otro, como en las tuberías del shell. (La exploración entre los procesos no es del
todo fácil, pero la interpretación de la información sí lo es cuando se utiliza una
convención estándar, como ASCII, para expresarla.)
• Archivos binarios. No son archivos en ASCII. El listado de su contenido produce
una lista incomprensible de algo que parece aleatorio y sin sentido. Por lo general,
tienen cierta estructura interna.
• Directorios. Son archivos de sistema para el mantenimiento de una estructura del
sistema de archivos.
• Archivos especiales de caracteres. Tienen relación con la Entrada/Salida y se
utilizan para modelar dispositivos seriales de E/S, tales como las terminales,
impresoras y redes.
• Archivos especiales de bloques. Se utilizan para modelar discos.
Todos los archivos tienen elementos o características que se asocian a él, conocidos como
atributos La información esencial de un archivo consta de: nombre, extensión, tamaño, y
fecha/hora de creación.
Los atributos pueden ser manipulados por: el usuario, el SO y/o una aplicación. Algunos
son exclusivos de alguno de los manipuladores.
Los archivos existen para poder almacenar la información y recuperarla más adelante. Los
distintos sistemas proporcionan diversas operaciones para permitir el almacenamiento y la
recuperación. Algunas de las llamadas más comunes al sistema relacionadas con los
archivos son:
Página 38
Sistemas Operativos 2010
Los elementos de información individuales dentro del archivo se pueden manipular con
operaciones tales como:
• LEER. Introducir un elemento de información de un archivo a un proceso.
• ESCRIBIR. Transferir un elemento de información de un proceso a un archivo.
• MODIFICAR. Alterar un elemento de información ya existente en un archivo.
• INSERTAR o AÑADIR. Añadir un nuevo elemento de información a un archivo.
• ELIMINAR. Borrar un elemento de información de un archivo.
Un sistema de archivos debemos entenderlo como aquella parte del sistema responsable
de la administración de los datos en dispositivos de almacenamiento secundario.
Página 39
Sistemas Operativos 2010
3.2.3 Directorios
Un directorio no es más que un archivo especial, el cual contiene información que permite
localizar otros archivos. Es un archivo de sistema que sirve para el mantenimiento de una
estructura del sistema de archivos. Llevan un registro de los archivos almacenados en la
computadora.
Las llamadas al sistema permitidas para el manejo de los directorios tienen más variación
de sistema a sistema que las relacionadas con los archivos.
• CREAR. Se crea un directorio el cual está vacío excepto por punto y punto-
punto, los que se colocan en él en forma automática por el sistema.
• ELIMINAR. Se elimina un directorio. Sólo se puede eliminar un directorio vacío.
Un directorio que sólo contenga punto y punto-punto se considera vacío ya que
éstos por lo general no se pueden eliminar.
• ABRIR. Se pueden leer los directorios. Por ejemplo, para exhibir una lista de
todos los archivos de un directorio, un programa de listado abre el directorio
para leer los nombres de todos los archivos que contiene. Antes de poder leer
un directorio, éste debe ser abierto.
• CERRAR. Cuando se ha leído un directorio, éste debe cerrarse para liberar el
espacio de la tabla interna.
• LEER. Esta llamada regresa la siguiente entrada en un directorio abierto.
• CAMBIAR DE NOMBRE. En muchos aspectos, los directorios son como los
archivos y se les puede cambiar el nombre al igual que éstos.
• LIGAR. El ligado es una técnica que permite que un archivo aparezca es más de
un directorio. Esta llamada al sistema especifica un archivo existente y el
Página 40
Sistemas Operativos 2010
En LINUX, todos los archivos están organizados en directorios que, a su vez, están
jerárquicamente conectados entre sí en un único sistema global de archivos conocida
como estructura de árbol invertido. Se hace referencia a un archivo, entonces, no sólo por
su nombre, sino indicando también el lugar que ocupa dentro de esta estructura de
archivos. Puede crear tantos directorios como quiera, añadiendo así más directorios a la
estructura de archivos. Las órdenes para el manejo de archivos de LINUX pueden efectuar
operaciones sofisticadas, como desplazar o copiar directorios completos junto con todos
sus subdirectorios.
/ (root)
Archivo lunes
Página 41
Sistemas Operativos 2010
/ (root)
Directorio
La estructura de archivos de LINUX empieza desde el directorio root e incluye los directorios de sistema, home y de usuario.
Directorio Función
/ Comienza el sistema de archivos. Se conoce como la raíz.
/home Contiene los directorios propios (home) de los usuarios.
/bin Contiene todas las órdenes estándar y los programas de utilidad.
/usr Contiene los archivos y órdenes usados por el sistema. Este directorios se
descompone en varios subdirectorios.
/usr/bin Contiene las órdenes orientadas a los usuarios y los programas de utilidad.
/usr/sbin Contiene las órdenes de administración de sistema.
/usr/lib Contiene las bibliotecas de los lenguajes de programación.
/usr/doc Contiene documentación de LINUX.
/usr/man Contiene archivos del manual interactivo man.
/usr/spool Contiene archivos en formato spool, tales como los que se generan para
imprimir tareas y hacer transferencias en redes.
/sbin Contiene órdenes de administración de sistema para arrancar el sistema.
/var Contiene archivos que varían, tales como los archivos “mailbox” (buzón).
/dev Contiene interfaces de archivo para dispositivos tales como la terminal y la
impresora.
/etc Contiene archivos de configuración del sistema y cualquier otro archivo de
sistema.
Página 42
Sistemas Operativos 2010
/ (root)
Directorio
Comando: mkdir
Formato: mkdir [opciones] directorio
Descripción: Crea directorios.
Las opciones son:
-m modo Establece los permisos facilitados en modo del directorio en su creación.
-p Crea los directorios padres necesarios si no existen.
directorio Directorio que se quiere crear.
Ejemplos:
mkdir –p /home/juan/documentos/cartas
Crea el directorio cartas y todos los directorios anteriores necesarios.
Comando: rmdir
Formato: rmdir directorio
Descripción: Borra el directorio especificado.
Ejemplos:
rmdir cartas
Comando: pwd
Formato: pwd
Descripción: Informa sobre cuál es el directorio actual en el que nos encontramos, no
tiene ningún tipo de parámetro.
Comando: cd
Formato: cd nombre_del_directorio
Página 43
Sistemas Operativos 2010
Comando: ls
Formato: ls [opciones] archivos
Descripción: Lista los archivos indicados mostrando información sobre ellos. Si no se
pasa como parámetro ningún nombre de archivo, lista los archivos del directorio actual.
Las opciones son:
-a Muestra todos los archivos del directorio actual incluyendo los archivos ocultos,
que en LINUX son los que comienza su nombre por punto.
-C Muestra la lista de archivos en formato de columnas.
--color Muestra la lista de archivos en colores según el tipo de archivo.
-x Muestra la lista de archivos en formato de columnas ordenada por columnas.
-d Muestra los directorios como archivos en lugar de mostrar sus contenidos.
-k Muestra los tamaños de los archivos en kilobytes.
-l Lista de forma extensa los archivos, con información como derechos
propietarios, fecha de creación y tamaño.
-t Muestra ordenando por la fecha de la última modificación.
-u Muestra ordenando por la fecha del último acceso.
-r Muestra ordenando pero de forma inversa.
-R Lista el contenido de los subdirectorios recursivamente.
-i Muestra el numero de inodo de cada archivo.
-F Formatea la salida poniendo símbolos para diferenciar entre los distintos tipos
archivos de archivos.
Lista de archivos que se quiere listar, sobre todo la utilidad de este parámetro es
usando los caracteres comodín ? y *.
Ejemplos:
ls –l
Muestra los archivos del directorio actual con el formato extendido dando toda
la información.
ls –la *.c
Muestra todos los archivos en formato extenso cuyo nombre termine en .c y
que comiencen por cualquier cadena de carácter, mostrará también los que se consideran
ocultos, que comprenden por .., y cumplan en resto de las condiciones.
Carácter comodín. Es un carácter especial que actúa como cualquier carácter en nombres
de archivos o comandos.
Los nombres de archivo son los argumentos más comunes en las ordenes. Es frecuente
que solo sepa una parte del nombre del archivo, o tal vez le interese hacer referencia a
varios nombres de archivo que tienen la misma extensión o que comienzan con el mismo
Página 44
Sistemas Operativos 2010
El shell reemplaza el argumento del nombre parcial de archivo con la lista de nombres de
archivos que hacen coincidencia. Esta lista de nombres de archivo puede entonces
convertirse en los argumentos de órdenes tales como ls, que pueden operar sobre muchos
archivos.
Caracteres
comodín Ejecución
* Equivale a cualquier conjunto de caracteres de nombres de archivos.
? Coincide con un solo carácter cualquiera de nombres de archivo.
[] Coincide con una clase de posibles caracteres de nombres de archivo.
\ Delimita el carácter siguiente: se usa para delimitar caracteres comodín.
Ejemplos de uso de los caracteres comodines:
$ ls
doc1 doc2 doc3 doc4 docA docB docD docs document answers? lib.a mydocs
anwers?.quiz monday tuesday answers?.mid main.c mylock main.o calc.c sydoc1
answers?.final
$ ls doc*
doc1 doc2 doc3 doc4 docA docB docD docs document
$ls *day
monday tuesday
$ ls *.c
calc.c main.c
$ls doc?
doc1 doc2 doc3 doc4 docA docB docD docs
$ls ?y?oc?
mydocs mylock sydoc1
$ls *.?
calc.c lib.a
$ls doc[1As]
doc1 docA docs
$ls doc[1-3]
doc1 doc2 doc3
$ls doc[B-G]
docB docD
$ls *.[co]
main.c main.o calc.c
$ls answers\?
answers?
$ls answers\?.*
answers? answers?.quiz answers?.mid answers?.
Comando: cat
Formato: cat [opciones] archivos
Página 45
Sistemas Operativos 2010
Comando: rm
Formato: rm [opciones] archivos
Descripción: Elimina archivos y directorios del sistema de ficheros. Se utiliza tanto para
borrar archivos, enlaces y directorios. Para eliminar directorios es necesaria la opción –r.
Hay que tener mucho cuidado con la utilización de este comando pues sus acciones son
irreparables.
Las opciones son:
-f Por defecto rm pide confirmación antes de borrar, con esta opción forzamos la
operación sin pedir confirmación.
-i Activa el modo interactivo para solicitar confirmación antes de borrar, este modo
-r esta por defecto.
-v Opción para borrar los directorios y su contenido, es necesaria para borrarlos.
archivos Muestra el nombre de los archivos antes de borrarlos.
Lista de archivos que se quiere eliminar.
Ejemplos:
rm *
Borra todos los archivos del directorio actual pidiendo permiso para cada
archivo que va a borrar.
rm –rf a*
Borra todos los archivos y directorios del directorio actual cuyo nombre
empiece por a.
Comando: cp
Formato: cp [opciones] fuente destino
Descripción: Copia archivos y directorios. Copiará fuente a destino, fuente puede ser una
lista de archivos que copiará a un directorio indicado en destino. También puede copiar un
archivo sobre otro archivo.
Las opciones son:
-a Conserva los atributos y estructuras del origen en la copia.
-b Hace copias de seguridad de archivos que van a ser sobrescritos o borrados.
-d Al copiar los enlaces simbólicos los mantiene como tales en lugar de copiar los
ficheros a los que apuntan, y preserva las relaciones de las ligaduras físicas entre
-f archivos fuente en las copias.
-i Borrar archivos destino existentes.
-l Interroga sobre si sobrescribir ficheros destino existentes.
-p En lugar de hacer copiar archivos que no son directorios, crea ligaduras físicas.
Preserva los permisos, el propietario y el grupo, así como los SUID Y SGID, además
Página 46
Sistemas Operativos 2010
Comando: mv
Formato: mv [opciones] origen destino
Descripción: Mueve archivos y directorios. El comando en sí lo que realiza es la copia del
origen en el destino y el borrado del origen. También es el comando que se utiliza para
renombrado de archivos y directorios por ser similar el efecto que se produce.
Las opciones son:
-f Por defecto mv pregunta antes de borrar algo, con esta opción eliminamos esta
-i confirmación.
origen Con esta opción mv pregunta antes de borrar algo, está opción está por defecto.
Archivo que se quiere mover. Se puede dar también una lista de archivos origen
destino que serán movidos con su mismo nombre en un directorio que se dará como
destino.
Nombre del destino. Si se ha dado una lista de archivos origen el destino tendrá
que ser un directorio.
Ejemplos:
mv carta.txt carta.doc
Cambia de nombre el archivo carta.txt a carta.doc.
Comando: ln
Formato: ln [-s] origen destino
Descripción: Crea un enlace a un archivo, con el fin de poder acceder a un archivo con
más de un nombre. Se pueden utilizar estos enlaces para copiar archivos sin ocupar
espacio en disco. Podemos tener dos tipos de enlaces, los simbólicos y los fijos. Los
enlaces fijos o ligaduras físicas crean una nueva entrada en el directorio pero no crean un
nuevo inodo, sino que a esa nueva entrada se le asigna en número de inodo de origen. Las
ligaduras simbólicas crean un fichero especial cuyo contenido es origen.
La opciones son:
-s Crea un enlace simbólico.
Página 47
Sistemas Operativos 2010
origen Archivo al que se quiere crear un enlace de ligadura. Se puede dar también una
lista de archivos origen que serán enlazados con su mismo nombre en un
destino directorio que se dará como destino.
Nombre del enlace que se quiere crear y después de la creación del enlace y que
tras la creación del enlace se podrá utilizar para referirse al archivo origen. Si se
ha dado una lista de archivos origen, el destino tendrá que ser un directorio.
Ejemplos:
ln –s documento.txt trabajo.txt
Crea un enlace simbólico o ligadura simbólica del archivo documento.txt en el
enlace trabajo.txt.
Comando: more
Formato: more [opciones] archivos
Descripción: Se utiliza para paginar texto que no cabe en la pantalla y, por tanto, se
desplaza sin poderlo ver. Se utiliza a través de un redireccionamiento o una pipe para
formatear el resultado de otro comando como cat o ls.
Las opciones son:
-n Establece el tamaño de las páginas que muestra a n líneas.
-c Cambia el formato en que muestra las páginas en la pantalla, escribiendo las líneas
una a una y desplazando.
-q Cambia el aviso por omisión para el desplazamiento de las páginas.
-s Supone varias líneas en blanco consecutivas y las cambia por una sola.
Comando: less
Página 48
Sistemas Operativos 2010
El programa less despliega el contenido de los archivos que se especifiquen. Los datos se
despliegan pantalla por pantalla. Después de escribirse cada pantalla, se verá un indicador
en la esquina inferior izquierda. El primer indicador le muestra el nombre del archivo. Cada
uno de los indicadores subsecuentes será un signo de dos puntos :.
Comandos Descripción
básicos
H Despliega información de ayuda.
Espacio Avanza una pantalla.
q Para salir del programa.
Comandos
más
avanzados
Retorno Avanza un renglón.
nRetorno Avanza n renglones.
b Retrocede una pantalla.
y Retrocede un renglón.
ny Retrocede n renglones.
d Avanza (hacia abajo) media pantalla.
u Retrocede (hacia arriba) media pantalla.
g Va al primer renglón.
ng Va al renglón n.
G Va al último renglón.
np Va al renglón que represente el n porciento en el archivo.
v Arranca el editor vi usando el archivo que se esté exhibiendo.
/modelo Busca hacia abajo el modelo especificado.
?modelo Busca hacia arriba el modelo especificado.
n Repite el comando de búsqueda previo.
!comando Ejecuta el comando del intérprete de comandos especificado.
= Despliega el número de renglón y el nombre de archivo en uso.
-opcion Cambia la opción especificada.
_opcion Despliega el valor actual de opcion.
No oprimir retorno después de ningún comando excepto, /,? Y !.
Existen un gran número de opciones que se pueden utilizar de arrancar less, las
tres más útiles son:
-s Remplaza múltiples renglones en blanco por uno solo, lo que es útil para condensar
una salida que contenga renglones en blanco sin significado.
-c Despliega cada pantalla de datos nueva de arriba abajo (borra la pantalla).
-M Hace que el indicador muestre aún más información: el nombre del archivo, el número
de renglón y el porcentaje desplegado.
Ejemplos:
less –M memo
esto muestra: memo line 48/75 93%
less +G memo
Página 49
Sistemas Operativos 2010
Comando: chgrp
Formato: chgrp [opciones] grupo archivos
Descripción: Permite el cambio del grupo propietario de un archivo o directorio. Para
cambiar la propiedad de grupo de un archivo o directorio hay que ser el propietario de
dicho archivo o ser el usuario root.
Las opciones son:
-c Muestra detalladamente la acción de cambio de grupo propietario para archivo o
directorio en el que se realice la acción.
-f Anula los mensajes de error de los archivos o directorios a los que no puede
cambiar el grupo propietario.
-v Muestra detalladamente los cambios de grupo propietario.
-R Cambia recursivamente la propiedad de grupo en los directorios y sus
grupo contenidos.
archivos En grupo se indica cuál será el nuevo propietario.
En archivos se indica la lista de archivos y directorios a los que se le quiere
cambiar el grupo propietario.
Ejemplo:
chgrp invitados p*
Cambia el grupo propietario a invitados de todos los archivos que comiencen
por la letra p dentro del directorio actual.
Comando: chmod
Formato: chmod [opciones] modo archivos
Descripción: Permite el cambio de los permisos o modo de los archivos y directorios. Los
permisos de un archivo o directorio permiten controlar el acceso a los mismos. Existen tres
niveles de permisos, los de propietario, grupo y otros. Así los permisos de propietario
afectan al propietario del archivo o directorio, los permisos de grupo afectan al grupo
propietario y, por último, otros afectan al resto de usuarios del sistema.
Dentro de cada nivel de permisos existen tres tipos de derechos de lectura r de escritura w
y de ejecución x. En archivos, los derechos de lectura y escritura permitirán leer y escribir
el archivo respectivamente y el derecho de ejecución ejecutar si se trata de un fichero que
contiene código ejecutable.
Página 50
Sistemas Operativos 2010
actual por ése con el comando cd. Sólo se puden cambiar los permisos de un archivo o
directorio si es el usuario propietario o si es usuario root.
se quitan los derechos de lectura y escritura al grupo propietario y se quitan todos los
derechos a otros. Obsérvese que los distintos cambios de permisos se separan por comas.
Comando: chown
Formato: chown [opciones] usuario archivos
Descripción: Permite el cambio de usuario propietario de un archivo o directorio. Para
cambiar el propietario de un archivo o directorios hay que ser el propietario de dicho
archivo o ser el usuario root. Si se cambia la propiedad de un archivo sin ser el root ya no
se podrá volver a obtener dicha propiedad, esta acción la tendrá que hacer el nuevo
propietario o el root.
Las opciones son:
-c Muestra detalladamente la acción de cambio de propietario para cada archivo o
directorio en el que se realice la acción.
-f Anula los mensajes de error de los archivos o directorio a los que no puede
-v cambiar el propietario.
-R Muestra detalladamente los cambios de propietario.
usuario Cambia recursivamente el usuario propietario en los directorios y sus contenidos.
archivos En usuario se indica cuál va a ser el nuevo propietario.
En archivos se indica la lista de archivos y directorios a los que se quiere cambiar
el propietario.
Ejemplos:
chown psanchez tabla.txt
Cambia el propietario de tabal.txt al usuario psanchez.
Comando: du
Formato: du [opciones] archivos
Página 51
Sistemas Operativos 2010
Descripción: Informa sobre la cantidad de espacio que ocupan en disco los archivos y
directorios indicados como parámetros. Si no se da ningún parámetro se da la información
del directorio actual.
Las opciones son:
-a Muestra para cada archivo su tamaño.
-b Muestra los tamaños en bytes.
-k Muestra los tamaños en kilobytes.
-x Muestra sólo la información referente a los sistemas de archivos actualmente
-L montados.
Muestra la información del espacio ocupado por el archivo al que apunta una
-s ligadura en lugar de mostrar el espacio que ocupa la ligadura en sí.
Muestra el tamaño que ocupa cada subdirectorio en conjunto con la suma de
archivos todo lo que ocupa su contenido.
Lista de directorios y archivos sobre los que se demanda la información referente
a su tamaño.
Ejemplos:
du –s /var
Muestra el tamaño total ocupado por el directorio /var y todo su contenido.
Comando: file
Formato: file [opciones] archivos
Descripción: Da información sobre un archivo referente al tipo de archivo. Así nos dará
información sobre si un archivo es ejecutable, de datos, de texto.
Las opciones son:
-c Muestra para cada archivo su tamaño.
-z Muestra los tamaños en bytes.
-L Muestra los tamaños en kilobytes.
-f archilista Muestra sólo la información referente a los sistemas de archivos
-m actualmente montados.
Muestra la información del espacio ocupado por el archivo al que
archivos apunta una ligadura en lugar de listar el espacio que ocupa la ligadura
en sí.
Lista de directorios y archivos sobre los que se demanda la información
referente a su tipo.
Ejemplo:
file /etc/profile
Nos indica el tipo de archivo que es el archivo file /etc/profile, que en este
caso es de texto.
Comando: head
Formato: head –líneas archivos
Descripción: Muestra la cantidad de primeras líneas indicadas de una lista de archivos.
Las opciones son:
-líneas Cantidad de líneas que queremos que se muestre.
archivos Lista de archivos separados por comas que se pretende que se muestre el
número de líneas indicado, por defecto diez.
Comando: tail
Formato: tail [opciones] archivo
Descripción: Muestra las últimas líneas del archivo que se le pasan como parámetro. Por
defecto muestra las diez últimas líneas.
Página 52
Sistemas Operativos 2010
Comando: wc
Formato: wc [opciones] [archivo(s)]
Descripción: La orden wc (word counter) es un contador de líneas, palabras y caracteres
de un archivo. Para wc, una palabra es una cadena de caracteres delimitada por espacios
en blanco, tabuladores o retornos de carro existentes en el archivo.
Las posibles opciones son:
-l Visualizará el número de líneas.
-w Visualizará el número de palabras.
-c Visualizará el número de caracteres.
Si a wc no se le especifica ninguna opción, tomará por defecto las tres anteriores,
visualizando en orden el número de líneas, palabras y caracteres.
Ejemplo:
$ wc ftemp
253 939 6728 ftemp
En el caso anterior, wc está indicando que el archivo ftemp tiene 253 líneas, 939 palabras y
6728 caracteres. Obviamente, la orden wc sólo puede ser utilizada para procesar archivos
de texto.
Comando: su
Formato: su [–] [usuario]
Descripción: La orden su (switch user) permite cambiar nuestro identificador de usuario.
Cuando se invoca, nos pide la palabra clave (password) del usuario al que queremos
cambiar. Si a su no le pasamos como parámetro ningún nombre de usuario, asumirá que
deseamos convertirnos en el administrador del sistema (root). Obviamente, si no
conocemos la palabra clave del usuario, la orden fallará. La opción – se emplea para
indicar a su que se tomen los parámetros de inicio (directorio de arranque, ruta de
búsqueda de archivos, variables del entorno, etc.) definidos por el usuario al que nos
convertiremos. Por defecto estos parámetros no se toman.
Ejemplo:
$ su – lucas
password:
$ id
uid=519(lucas) gid=519(lucas) grupos=519(lucas)
Comando: sort
Formato: sort [opciones] [+campo] [archivo(s)]
Descripción: Ordena líneas compuestas por campos, separados por tabuladores, aunque
podemos especificar cualquier tipo de separador de campo. Si a sort no le pasamos ningún
archivo como parámetro, tomará su entrada de la entrada estándar. Con esta orden
Página 53
Sistemas Operativos 2010
podemos ordenar las líneas de uno o varios archivos según un campo en particular. Esta
ordenación no produce ninguna modificación en los archivos tratados.
Ejemplo:
$ Cat > desord
uno
dos
tres
cuatro
[Ctrl-d]
$ sort desord
cuatro
dos
tres
uno
$ cat > numeros
101
112
10
373
64
19
1111
[Ctrl-d]
$ sort numeros
10
101
1111
112
19
373
64
Podemos observar, a tenor de los resultados, que algunos números aparecen ordenados
aparentemente al revés. La razón es que sort, por defecto, ordena las palabras según los
caracteres ASCII que la componen. Si lo que deseamos es ordenar según el valor
numérico asociado a esos caracteres, debemos utilizar la opción –n (ordena
numéricamente), tal y como se muestra a continuación:
$ sort –n numeros
10
19
64
101
112
373
1111
Los campos separadores utilizados por defectos son los tabuladores, y en algunas
versiones de sort, también los espacios en blanco, pero también podemos decirle que
utilice cualquier tipo de separador específico, utilizando para ello la opción –t y a
Página 54
Sistemas Operativos 2010
Como podemos apreciar, los distintos campos están separados por dos puntos. Eso no es
ningún problema para sort, ya que podemos especificar el carácter de separación de
campos que deseemos.
$ sort –t: +4 sortfich
azul:24:Venus:1970:Ana
rojo:35:Neptuno:1122:Javier
blanco:73:Marte:1543:Manuel
amarillo:135:Tierra:1234:Raul
verde:17:Jupiter:1968:Sebastian
En el caso del ejemplo, el último campo es el número 4, por eso en las opciones de sort
hemos puesto un +4. Obsérvese que la numeración de campos comienza por el cero.
Comando: grep
Formato: grep [opciones] patrón [archivo(s)]
Descripción: Permite buscar cadenas de caracteres en los archivos que le indiquemos.
grep toma el patrón que deseamos buscar como primer argumento y el resto de los
argumentos los toma como nombres de archivos. En caso de que el elemento que
deseemos buscar se componga de más de una palabra, ese elemento deberemos incluirlo
entre comillas dobles. Una vez buscado el patrón, se visualizan todos los archivos que lo
contienen.
Con grep podemos utilizar varias opciones; las tres más comunes son las que se citan a
continuación:
-i Indica a grep que se ignoren mayúsculas y minúsculas. Se busca el patrón y no se
diferencia entre letras mayúsculas y minúsculas.
-v Visualiza por pantalla las líneas que no contienen el patrón especificado.
-n Muestra por pantalla el número de línea en que se encuentra el patrón.
Ejemplos:
$ grep NULL *
depura.c: argn = strtoul (argum, (char **)NULL, 16);
depura.c: argn = strtoul (argum, (char **)NULL, 16);
depura.c: DirecDeParada = strtoul (&orden[1], (char **)NULL, 16);
depura.c: R[reg] = strtoul (cadena, (char **)NULL, 16);
desen.c: if ((pf = fopen (programa, “r”)) == NULL)
En este caso, grep busca el patrón NULL en todos los archivos del directorio actual.
Recordemos que el asterisco sustituye a cualquier cadena de caracteres, y en este caso a
todos los archivos del directorio en el que estemos situados.
$ grep –n main /home/chan/spro/*.c
/home/chan/spro/desen.c:21:main (int argc, char *argv[])
/home/chan/spro/desen.c:46:} /* Fin de main */
Página 55
Sistemas Operativos 2010
/home/chan/spro/ensa.c:30:main()
/home/chan/spro/ensa.c:42:} /* Fin de main */
/home/chan/spro/gen.c:3:main()
/home/chan/spro/principal.c:19:void main (int argc, char *argv[])
/home/chan/spro/principal.c:53:} /* Fin de main */
En el caso anterior, al colocar la opción –n se visualiza el número de línea del archivo
donde se encuentra el patrón buscado.
Comando: find
Formato: find directorio(s) criterios_de_seleccion opcion_de_comando
Descripción: El comando find se utiliza para examinar la jerarquía de directorios en
búsqueda de archivos. Para esta búsqueda pueden indicarse ciertos criterios. Además,
también puede aparecer el nombre del archivo encontrado en pantalla o ejecutarse con un
comando.
Puesto que el comando find examina sistemáticamente los directorios y sus subdirectorios,
se ha convertido en una herramienta indispensable para el usuario y especialmente para el
administrador del sistema.
Las posibilidades del comando find no solo pueden utilizarse para la búsqueda de archivos
individuales, sino que también pueden utilizarse para guardar datos o eliminar archivos
dispersos por el sistema de archivos.
• Que debe hacer al encontrar un archivo o un directorio que cumple con los criterios
de selección?
El primero y el tercero son indispensables pero el segundo puede omitirse, en cuyo caso
se encontrarían todos los archivos.
Como parámetros pueden indicarse varios directorios a partir de los cuales se iniciara la
búsqueda. La opción de comando más sencilla es print. Con este se muestra el nombre de
ruta de todos los archivos encontrados.
El ejemplo siguiente muestra como visualizar todos los archivos que se encuentran bajo el
directorio actual. Con el primer parámetro del comando find se determinara cual es el punto
de partida para la búsqueda del directorio actual. La opción -print indica que debe
indicarse el nombre de ruta del archivo encontrado.
Página 56
Sistemas Operativos 2010
Los archivos encontrados se visualizaran mediante sus nombres de ruta relativos. S i como
punto de inicio para la búsqueda se especifica un nombre de ruta absoluto, en la salida
aparecerán también los nombres de ruta absolutos.
Durante la búsqueda, find examina también los subdirectorios bajo el directorio de inicio.
Aquí se tiene también en cuenta, lógicamente, los derechos de acceso de los directorios.
Un directorio solo podrá examinarse cuando el usuario posea derechos de lectura y
ejecución para dicho directorio. Si no es así se enviara un mensaje de error a través del
canal de errores.
Opción Significado
Con todas las opciones excepto –name , -type, -user, -group y perm, aparecen cifras como
parámetros , adicionales tras el nombre de opción.
Ante la cifra puede aparecer también un signo más (+) o un signo menos (-).
Un signo más significa siempre “mayor que” y un signo menos significa siempre “menor
que” es decir, el dato +3 significa que se permiten valores mayores que 3, y el dato -5 que
solo se admiten valores menores que 5.
Página 57
Sistemas Operativos 2010
Con la opcion –name seguido de un nombre de archivo se define que nombre de archivo
debe tener el archivo que se buscara. La figura siguiente muestra algunos ejemplos.
El tipo de archivo también puede ser un criterio de selección en la búsqueda por el árbol de
archivos. En la siguiente lista se resumen los tipos de archivos que find diferencia con las
letras identificadas por cada uno de ellos:
Página 58
Sistemas Operativos 2010
f Archivo Normal
d Directorio
En este momento no trataremos en detalle de los llamados archivos FIFO. Se utilizan para
el intercambio de datos entre procesos que no se encuentran en relación directa entre
procesos principales y secundarios. Por otra parte, funcionan como las conocidas
canalizaciones.
Las opciones de selección –name y –type pueden combinarse tal como se muestra en la
siguiente figura. En este caso, deben cumplirse ambos criterios a la vez. Se dice que
ambos criterios de selección se vinculan con un Y lógico.
También podría suceder que se buscaran archivos que pertenecieran a usuarios que no se
conocieran en el sistema como propietario habitual.
En este caso, en el lugar en el que normalmente aparecería un nombre de usuario en el
comando ls-l, aparece solo un nombre de usuario.
Dichos números de usuario son también admisibles como parámetro tras la opcion –user.
Página 59
Sistemas Operativos 2010
Con frecuencia puede resultar útil al usuario buscar archivos especialmente grandes o solo
archivos vacíos. La opcion –size permite la búsqueda de archivos según su tamaño.
Tras la opcion –size se indican los datos de tamaño que pueden representarse en una cifra
de bloque o en una cifra de bytes. Si no se indica lo contrario, la cifra tras la opcion se
interpretara como cifra de bloque.
Cada bloque tiene un tamaño de 512 caracteres. Para averiguar el numero de caracteres a
partir del numero de bloque, debe multiplicarse por 512 la cifra tras la opcion –size. Con el
siguiente comando se realizaría la búsqueda de todos los archivos que tengan
exactamente 5120 caracteres:
Página 60
Sistemas Operativos 2010
El comando find gana flexibilidad con una ampliación que ya hemos mencionado al
principio del capitulo. Si delante de la cifra aparece un signo menos, se buscaran todos los
archivos menores que el dato en bytes o bloques. Con un signo mas delante de la cifra se
buscaran solo archivos mayores que dicho valor.
Para buscar todos los archivos mayores que 200 KB, podría utilizarse el siguiente
comando:
En este caso, no se utilizara la letra c, sino la letra k para indicar que el valor debe
interpretarse como referencia a KB. Como criterio adicional se indica también el tipo de
archivo. Normalmente, el resto de tipos de archivo no son tan grandes.
Mediante las tres marcas de tiempo introducidas para cada archivo, se registra
internamente en segundos cuando se creo, se accedió y se modifico el archivo por ultima
vez. El comando find no soporta esta precisión.
El comando find y sus tres opciones, -atime, -mtime y –ctime, consultan solo con exactitud
en periodos de 24 horas. Para las tareas que debe llevar a cabo es normalmente
suficiente.
Como ya explicamos con la opcion –size, delante de los datos de las opciones –atime, -
mtime y - ctime pueden aparecer signos más o menos para indicar que se permite un valor
o menor que la cifra del día.
A continuación se muestra un ejemplo del comportamiento del comando find con la opcion
–mtime:
Las opciones se ejecutan para cada archivo encontrado. Junto con las opciones de
comando –print que muestra el nombre de ruta del archivo encontrado, con la opcion de
comando –exec puede ejecutarse el comando introducido tras esta. Los comandos que
aparezcan tras -exec se ejecutaran sin previa comprobación. La opcion de comando –
ok plantea al usuario la pregunta de si realmente desea ejecutar el comando.
Página 61
Sistemas Operativos 2010
El comando tras la opcion de exec debe cerrarse mediante el parámetro \; puesto que el
punto y coma es un carácter especial para el shell, debe protegerse del shell con una barra
diagonal si en el comando tras la opcion –exec debemos referirnos al nombre de archivo
encontrado , se utiliza el signo {}.
El siguiente comando muestra el formato del comando ls para cada archivo encontrado:
El punto y coma debe reconocerse también como parámetro. Una forma habitual de utilizar
el comando find y la opcion –exec es la supresión de archivos que se encuentran en
directorios diferentes pero que cumplen unos criterios comunes. Si se deseara suprimir
todos los archivos a los que no se han accedido desde hace dos semanas se utilizaría el
comando:
Para la opción de comando –ok, se aplican las mismas normas que para la opción –exec,
pero con la opcion –ok se indica en pantalla el comando completo para cada archivo
encontrado y se pregunta si el comando correspondiente debe ejecutarse de la forma
indicada. El comando tras la opcion –ok solo se ejecutara si se responde y a la pregunta.
Página 62
Sistemas Operativos 2010
Si la CPU alterna entre los procesos, la velocidad a la que se ejecuta un proceso no será
uniforme y es probable que no se pueda reproducir si los mismos procesos se ejecutan de
nuevo. Así, los procesos no deben programarse con hipótesis implícitas acerca del tiempo.
Por ejemplo, consideremos un proceso de Entrada/Salida que inicializa el movimiento de
una cinta magnética, ejecuta un ciclo inútil 1000 veces para que la cinta alcance su
velocidad de trabajo y después proporciona un comando que lee el prime registro. Si la
CPU decide alternar con otro proceso durante este ciclo, podría ocurrir que el proceso de la
cinta no se ejecutara sino hasta que el primer registro hubiera pasado por la cabeza de
lectura. Cuando un proceso tiene requisitos críticos en tiempo real como en este ejemplo,
es decir, cuando dos sucesos deben ocurrir en un lapso dado en milisegundos, hay que
tomar medidas especiales para garantizar que dichos sucesos ocurran. Sin embargo, lo
normal es que la mayoría de los procesos no sean afectados por la multiprogramación
subyacente de la CPU o las velocidades relativas de procesos distintos.
Imaginemos ahora que el hijo del científico entra corriendo, llorando y diciendo que lo ha
picado una abeja. El científico registra el punto de la receta donde se quedó (el estado del
proceso activo se resguarda), busca un libro de primeros auxilios y comienza a seguir las
instrucciones de éste. Aquí vemos que el procesador alterna de un proceso (cocinar) a otro
de mayor prioridad (administrar cuidado médico), cada uno con un programa distinto
(recetario vs). Libro de primeros auxilios). Después de atender la picadura, el científico
regresa al punto donde se encontraba.
La idea clave es que un proceso es una actividad de cierto tipo. Tiene un programa,
entrada, salida, y estado. Un solo procesador puede ser compartido entre varios procesos,
con cierto algoritmo de planificación, que se utiliza para determinar cuando detener el
trabajo en un proceso y dar servicio a otro distinto.
3.3.2 ID de un proceso
1
Una llamada al sistema es el llamado a una subrutina que hace que el núcleo proporcione algún servicio a un programa.
Página 63
Sistemas Operativos 2010
LINUX asocia cada proceso con un usuario particular conocido como propietario del
proceso, el cual tiene ciertos privilegios. Cada usuario tiene un número de identificación
único que se conoce como ID del usuario.
Estado Significado
Nuevo (new) Creación del proceso.
Ejecución Ejecución de las instrucciones del proceso.
(running) Proceso en espera de un evento, como una
Bloqueado operación de E/S.
(blocked) Proceso en espera de ser asignado al
Listo (ready) procesador.
Hecho (done) Proceso terminado y recuperación de sus
recursos.
Tabla 3.1: Estados de los procesos.
Aunque cada proceso es una unidad independiente, con su propio contador de programa y
estado interno, es frecuente que los procesos deban interactuar con otros. Un proceso
podría generar cierta salida que fuera utilizada por otro.
Cuando un proceso se bloquea, lo hace porque desde el punto de vista lógico no puede
continuar; esto ocurre, por lo general, porque espera ciertos datos que no están
disponibles todavía. También es posible que se detenga un proceso que conceptualmente
esté listo y que se pueda ejecutar, debido a que el SO ha decido asignar la CPU a otro
proceso en cierto momento. Estas dos condiciones son totalmente distintas. En el primer
caso, la suspensión es inherente al problema (no se puede procesar la línea de comando
del usuario hasta que ésta sea escrita). En el segundo caso, es un aspecto técnico del
sistema (no existe la CPU suficiente para darle a cada proceso su propio procesador
privado).
En ejecución
1. BLOQUEADO. El proceso se bloquea en espera de
datos.
3
1 2 2. EXPIRACIÓN DEL TIEMPO. El planificador elige otro
proceso.
Bloqueado Listo 3. DESPACHAR. El planificador elige este proceso.
4. DESPERTAR. Los datos están disponibles.
4
Página 64
Sistemas Operativos 2010
En la figura vemos un diagrama de estados que muestra los tres que puede tener un
proceso:
a) En ejecución (utiliza la CPU en el instante dado).
b) Listo (ejecutable, se detiene en forma temporal para que se ejecute otro proceso).
c) Bloqueado (no se puede ejecutar debido a la ocurrencia de algún evento externo).
Desde el punto de vista lógico, los dos primeros estados son similares. En ambos
casos, el proceso desea ejecutarse, sólo que en el segundo caso, no existe CPU
disponible para él. El tercer estado es distinto de los otros puesto que el proceso no se
puede ejecutar, incluso aunque la CPU no tenga labores que realizar.
Son posibles cuatro transiciones entre estos estados, como lo muestra la figura. La
transición 1 ocurre cuando un proceso descubre que no puede continuar. En ciertos
sistemas, el proceso debe ejecutar una llamada al sistema para pasar al estado de
bloqueo. Lo más frecuente es que un proceso lea de un tubo o archivo especial (por
ejemplo, una terminal) y que no existan datos disponibles, por lo que el proceso se bloquea
en forma automática.
La transición 2 y 3 se deben al planificador de proceso (una parte del SO), sin que el
proceso sepa de ellas. La transición ocurre cuando el planificador decide que el proceso en
ejecución ya ha sido ejecutado el tiempo suficiente y que es hora de que otro proceso
tenga tiempo de CPU. La transición 3 ocurre cuando los demás procesos han tenido su
parte y es tiempo de que el primer proceso vuelva a ejecutarse. El tema de la planificación,
es decir, decidir cuál proceso debe ejecutarse, cuándo y por cuánto tiempo, es muy
importante. Se han diseñado muchos algoritmos con la intención de balancear las
demandas en competencia por eficacia del SO como un todo y equidad para los procesos
individuales.
La transición 4 aparece cuando ocurre el evento externo por el que espera un proceso
(como la llegada de nuevos datos). Si no existe otro proceso en ejecución en ese
momento, se produce la transición 3 en forma inmediata y el proceso comienza su
ejecución. En caso contrario, tendría que esperar en estado listo por un momento, hasta
que la CPU esté disponible.
Existen ciertas órdenes que tardan mucho tiempo en ejecutarse y sin embargo no son
interactivas; como ejemplo podemos poner la compilación de un programa o la
comprensión de un archivo de datos. En estos casos, UNIX proporciona la posibilidad de
ejecutar órdenes en segundo plano (batch). Al ejecutar un proceso en segundo plano, el
shell devuelve el prompt inmediatamente y podemos seguir trabajando en la terminal aun
cuando la orden batch siga ejecutándose. Para poner una orden trabajando en batch, la
línea de órdenes debe acabar con un símbolo ampersand (&). El ampersand dice al shell
que ejecute la orden, pero que no se quede esperando al proceso hijo. De este modo,
podremos mandar compilar un programa en segundo plano y mientras tanto seguir
haciendo otras cosas.
Página 65
Sistemas Operativos 2010
Comando: ps
Formato: ps [opciones]
Descripción: Informa acerca de los procesos que en ese momento se están ejecutando en
el sistema. Si no le pasamos ninguna opción, sólo nos ofrecerá un pequeño informe de los
procesos asociados a nuestra terminal. En el sistema BSD, esta orden funciona de forma
diferente como lo hace en UNIX System V. Las opciones más comunes para este último
son:
-e Informa de todos los procesos que hay en el sistema.
-f Proporciona una lista completa de cada proceso, incluyendo el identificador de cada
uno de ellos (PID) y el identificador del proceso padre (PPID).
-l Da listados largos y completos que contiene muchos detalles de los procesos de los
que informa, incluyendo prioridad, valor nice y tamaño de la memoria.
Ejemplo ps –ef
Las opciones más comunes para la versión BSD difieren, como hemos indicado
anteriormente, de la versión System V, y son las siguientes:
l Formato de presentación extendido.
u Muestra el nombre de usuario y el tiempo de inicio.
Página 66
Sistemas Operativos 2010
Comando: kill
Formato: kill [-señal] PID [PID...]
Descripción: Envía señales a uno o varios procesos identificados por su PID. Esta orden
también existe como llamada al sistema para poder ser invocada desde programa. Una
señal es una interrupción software que se envía a un proceso, de forma asíncrona, para
informarle de algún evento. Cuando un proceso recibe una señal puede tratarla de tres
formas diferentes:
1. Ignorar la señal.
2. Invocar la rutina de tratamiento por defecto proporcionada por el núcleo.
3. Invocar una rutina propia que se encargara de tratar dicha señal.
Cada señal tiene asociado un número entero positivo que la identifica. En el caso
UNIX System V existen 19 diferentes, numeradas del 1 al 19. Estas son:
1. SIGHUP: Hanguh. Es enviada a todos los procesos asociados a un mismo terminal
cuando este se conecta. La acción por defecto es terminar la ejecución de los
procesos que la recibe.
2. SIGINT: Interrupción. Es enviada a todos los procesos asociados a un mismo
terminal cuando se pulsa la tecla de interrupción. Por defecto, provoca la
terminación de los procesos que la reciben.
3. SIGQUIT: Salir. Es similar a SIGINT, pero en este caso se envía cuando pulsamos
la tecla de salida Ctrl-\ (en LINUX Ctrl-4).
4. SIGILL: Instrucción ilegal. Se envía a cualquier proceso que intente ejecutar una
interrupción ilegal. Por defecto termina la ejecución del programa que la recibe.
5. SIGTRAP: Es enviada cuando se ejecutan instrucciones paso a paso en un
programa. Su acción por defecto también es terminar el proceso que la recibe.
6. SIGIOT: Fallo hardware.
7. SIGEMT: Fallo hardware.
8. SIGFPE: Es enviada cuando el hardware detecta un error en una operación en
coma flotante. Por defecto, termina la ejecución del proceso que la recibe.
9. SIGKILL: Provoca la terminación del proceso. Esta señal no puede ser ignorada.
10. SIGBUS: Error de acceso a memoria.
11. SIGSGV: Violación de segmento de memoria.
12. SIGSYS: No se usa.
13. SIGPIPE: Intento de escritura en una tubería en la cual no hay nadie leyendo.
14. SIGALARM: Es enviada al proceso cuando alguno de sus temporizadores llega a
cero. Provoca por defecto la terminación del proceso.
15. SIGTERM: Indica a un proceso que debe terminar su ejecución. Puede ser ignorada.
16. SIGUSR1: Reservada para el usuario.
17. SIGUSR2: Reservada para el usuario.
18. SIGCLD: Se envía la padre de un proceso si éste muere.
19. SIGPWR: Fallo de alimentación.
La orden kill, como hemos dicho, se utiliza para enviar señales. El que envía la señal debe
ser el propietario de los procesos o el administrador del sistema. Por defecto, kill envía la
señal número 15 al proceso especificado, con intención de terminar su ejecución. Esta
señal número 15 lo máximo que hace es avisar al proceso que termine por si mismo, pero
Página 67
Sistemas Operativos 2010
Imaginemos que queremos eliminar el proceso tail cuyo PID es el 1809. La forma de
hacerlo sería:
kill –9 1809
Cada proceso nuevo se crea con tres archivos abiertos2 que se conocen como entrada
estándar (teclado), salida estándar (pantalla) y salida de error estándar. Todos los
comandos de Linux, así como los programas de aplicación, aceptan entrada desde la
entrada estándar y colocan la salida en la salida estándar. Todos los mensajes de
diagnóstico se colocan de manera automática en la salida de error estándar.
Cuando se registra un usuario por primera vez, los archivos de entrada, salida y error
estándares se anexan a la terminal del usuario; cualquier programa que ejecute (o
proceso que cree) hereda la terminal del usuario así como los tres archivos abiertos.
2
Linux trata del mismo modo a los archivos y dispositivos, por lo que un archivo abierto puede ser un archivo
almacenado en un disco (o en algún otro medio de almacenamiento secundario) o un dispositivo (como una terminal).
Página 68
Sistemas Operativos 2010
Linux asocia la entrada del teclado con un archivo llamado stdin, y asocia la salida de la
terminal con un archivo llamado stdout. Cualquier usuario de Linux puede redireccionar la
entrada y salida para que en vez de que provenga de o vaya hacia la terminal, provenga de
un archivo o vaya hacia un archivo.
Símbol Significado
o
< Se usa para redireccionar la entrada en un comando o programa a fin de
que provenga de un
archivo y no de la terminal, es decir, en vez de que la entrada provenga
del teclado de la terminal,
viene de un archivo. Por ejemplo, el siguiente comando envia por correo
electrónico el archivo info
al usuario jperez.
mail jperez < info
En vez de volver a escribir el contenido del archivo info hacia el comando
mail, se utiliza dicho
archivo como la entrada (stdin) hacia el comando mail.
> Se emplea para redireccionar la salida de un programa hacia un archivo,
es decir, en vez de que la salida vaya a la pantalla de la terminal, se
coloca en un archivo. Por ejemplo, el siguiente comando guarda la hora y
fecha actuales en el archivo fecha:
date > fecha
En lugar de que el comando date despliegue la hora y fecha actuales en
la pantalla de la terminal las envía al archivo fecha. Linux crea o
sobreescribe el archivo a la derecha del símbolo >, por lo que debe
tenerse cuidado de no destruir información útil de esta manera.
>> Se usa para añadir información a un archivo existente. Por ejemplo, el
siguiente comando agrega
la fecha actual a un archivo llamado reporte:
date >> reporte
Tabla 3.2: Símbolos de redireccionamiento de la E/S estándares.
La primera línea coloca la salida del comando date (fecha) en el archivo reporte_ventas. La
segunda línea utiliza el archivo ventas como entrada hacia el comando sort (ordenar) y
añade la salida al archivo reporte_ventas. La última línea envía por correo electrónico el
archivo reporte_ventas a los usuarios jperez y smaldonado.
Página 69
Sistemas Operativos 2010
Aunque cada proceso (programa o comando) es una entidad independiente, con su propio
contador de programa y estado interno, es usual que los procesos deban interactuar con
otros. Con frecuencia es necesario utilizar la salida de un proceso como entrada de otro, o
dicho de otra manera, un proceso podría generar cierta salida que fuera utilizada por otro.
Por ejemplo, en el comando:
el primer proceso, que ejecuta cat, concatena tres archivos. El segundo proceso, que
ejecuta grep, selecciona e imprime en la salida estándar todas las líneas que contienen la
palabra “programa” desde la salida generada por el primer proceso (concatenación de los
archivos Capitulo1, Capitulo2 y Capitulo3 ).
En vez de introducir cada comando por separado y guardar los resultados en archivos
intermedios, puede conectar una secuencia de comandos por medio de una tubería. El
carácter de tubería de Linux es una barra vertical ( | ).
Comando Acción
sort ventas | lp Ordena el archivo ventas y lo imprime.
cat ventas* | Imprime una lista ordenada de los datos de todos los archivos
sort | lp con nombres que comienzan con ventas.
ls –l | less Despliega en la pantalla la salida del comando ls –l
ls | tee3 datos | Coloca una copia del listado de archivo generado por ls en el
more archivo datos, mientras se ve el listado por medio del paginador
more.
who > fusu | Escribe la salida del comando who en el archivo fusu y dicho
pico archivo lo recibe como entrada el editor de texto pico.
Tabla 3.3: Ejemplos de comandos que emplean tuberías ( | ).
Linux permite correr un comando en segundo plano al mismo tiempo que se ejecuta un
comando en primer plano, es decir, el Shell permite correr un proceso e iniciar otro antes
de que se complete el primero; al hacer esto, el primer proceso queda en segundo plano.
3
El comando tee divide la salida de una tubería en uno o más archivos. Esto permite que se capture lo que se está
enviando hacia la salida estándar y se coloque esa salida en un archivo mientras todavía se permite que la salida fluya por
la salida estándar.
Página 70
Sistemas Operativos 2010
Para colocar un proceso en segundo plano es necesario utilizar el símbolo & como último
carácter de la línea que contiene el comando que se desea que corra en segundo plano.
Por ejemplo, al introducir el siguiente comando:
sort ventas > ventas.ord &
verá un número en la pantalla que corresponde al PID del proceso que se colocó en
segundo plano.
Por lo general, cuando se ejecuta un comando, el shell suspende operaciones hasta que
éste se completa. Si se agrega el símbolo & al final de una cadena de comandos, ésta
correrá simultáneamente con el shell, el cual continúa su operación tan pronto como se
ejecuta el comando de segundo plano. A menos que se use un redireccionamiento de E/S
con el comando de segundo plano, tanto el comando de segundo plano como el shell
actual esperarán una entrada de la terminal y producirán una salida hacia la misma. A
menos que el comando de segundo plano se encargue de la propia E/S, la sintaxis para el
procesamiento en segundo plano es:
cadena_de_comando [archivo_de_entrada] archivo_salida &
Por ejemplo, para copiar una serie de archivos cuyos nombres terminan con los caracteres
.txt a un subdirectorio llamado antiguos y, sin esperar a que termine ese proceso, imprimir
una lista ordenada de los datos en todos los archivos cuyo nombre empiece con ventas, se
escribe:
cp *.txt antiguos &
cat ventas* | sort | lp
Notas:
1. Se colocan trabajos en segundo plano cuando:
a) Se quiere esperar a que un programa termine antes de arrancar otro.
b) Se tiene una serie de tareas y por lo menos una de ellas debe correr por sí misma.
En tal caso, se inicia ésa y se coloca en segundo plano.
2. Todos los procesos hijos se aniquilan cuando mueren sus padres. Como el proceso en
segundo plano es hijo del shell del usuario, se aniquila de manera automática después
de que el usuario termina una sesión.
3.4 Editor vi
Este es el editor estándar usado por todos los sistemas UNIX, el cual sirve para escribir y
modificar archivos.
Página 71
Sistemas Operativos 2010
-Modo Comando
-Modo Inserción
- Modo Ejecución de Comandos
Cada uno de los cuales cuenta con sus propios comandos, que ha continuación se
explican:
Para activar este modo se presiona la tecla ESC, y entonces queda listo para recibir
instrucciones las cuales tienen categorías en base a la función que desempeñan.
enseguida se muestra un listado de las categorías del modo comando con sus comandos
respectivos.
Reemplazo de texto
r Reemplaza la letra sobre el cursor por la que sea presionada después de la letra
ns Cambia n letras partiendo de la posición del cursor.
R Reemplaza todo texto deseado a partir de la posición del cursor.
cw Cambia la palabra que se encuentra el cursor.
ncw Cambia n palabras empezando con la que se encuentra sobre el cursor
c$ Cambia todo el texto a partir del cursor y hasta el final de la línea.
cO Cambia todo el texto a partir del cursor y hasta el inicio de la línea.
cc Cambia el texto de una línea completa.
ncc Cambia el texto de n líneas completas.
Borrado de texto
Página 72
Sistemas Operativos 2010
Para activar este modo se presiona cualquiera de las teclas que permiten introducir texto al
documento las cuales son:
Para activar este modo se presiona la tecla ESC y uno de los siguientes caracteres :,/,? ó !.
Más adelante se verá el uso de cada uno de ellos.
Una vez activado este modo se pueden realizar las siguientes funciones:
Búsqueda
/patrón Busca un patrón de caracteres a partir de la
posición el cursor hasta el final del archivo.
? patrón Busca un patrón de caracteres partiendo de l
la posición del cursor hasta el inicio del archivo
Reemplazo
Página 73
Sistemas Operativos 2010
Copiado
Movimiento
Salvar
Otros
La sintaxis de vi es:
Página 74
Sistemas Operativos 2010
/home/larry# vi test
~
~
“test” [New file]
Insertando texto
• Orden “i”
Está ahora en el modo ordenes, para poder insertar texto en el archivo, pulse <i> (lo que le
hará entrar en el modo de inserción), y empiece a escribir.
Now is the for all gob men to come to the aid of the party
~
~
Mientras inserta texto, puede escribir tantas líneas como desee (pulsando <return>
después de cada una) y puede corregir los errores con la tecla de borrado de carácter.
Para salir del modo de inserción y volver al modo de ordenes solo pulse <esc>. Mientras
esta en modo ordenes puede usara las teclas del cursor para moverse por el archivo.
Cuando solo se tiene una línea e intenta moverse hacia abajo muy probablemente vi emita
un pitido.
• Orden “a” Insertar texto comenzando detrás de la posición actual del cursor, en
lugar de la posición actual del cursor.
Por ejemplo, use la tecla de cursor a la izquierda para desplazar el cursor sobre las
palabras “good” y “men”
Now is the for all gob_men to come to the aid of the party
~
~
Now is the for all gob women to come to the aid of the party
~
Página 75
Sistemas Operativos 2010
• orden “o”
Para insertar texto en la línea de debajo de la actual
Now is the for all gob women to come to the aid of the party
Afterwards, we’ ll go out for pizza and beer.
~
~
Borrando texto
Desde el modo de ordenes, la orden “x” borra el caracter debajo del cursor. Si pulsa
“x” cinco veces terminara con>
Now is the for all gob women to come to the aid of the party
Afterwards, we’ ll go out for pizza and_
~
~
Now is the for all gob women to come to the aid of the party
Afterwards, we’ ll go out for pizza and Diet coke.
~
~
• orden dd
Se utiliza para borrar líneas enteras.
Por ejemplo para borrar la segunda línea, mueva el cursor en la segunda línea y pulse la
tecla d dos veces (dd).
Now is the for all gob women to come to the aid of the party
~
~
• orden dw
Borra la palabra sobre la que se encuentra el cursor.
Por ejemplo, situé el cursor sobre la palabra “good” y pulse <dw>.
Now is the for all women to come to the aid of the party
~
~
Página 76
Sistemas Operativos 2010
Modificando texto
• Orden R
Now is the for all gob_men to come to the aid of the hungry
~
~
El uso de la orden R para editar texto es bastante parecido al uso de las ordenes “i” y “ a”,
pero “R” sobrescribe texto en lugar de insertarlo.
• Orden
Cow is the for all gob_men to come to the aid of the party
~
~
Ordenes de movimiento
Además de utilizar las teclas del cursor para moverse por el documento, en vi
existen las ordenes h, j, k y l, para mover el cursor a la izquierda, abajo, arriba y
derecha respectivamente.
• Orden w
Mueve el cursor al comienzo de la siguiente palabra.
• Orden b
Lo lleva al comienzo de la palabra anterior
• Orden 0 (cero).
Mueve el cursor al comienzo de la línea actual.
Página 77
Sistemas Operativos 2010
• Orden $
Lo lleva al final de la línea.
• Orden <ctrl-F>
Avanza el cursor una pantalla hacia delante
• Orden <ctrl-B>
Regresa una pantalla atrás.
• Orden G
Lleva el cursor al final del archivo, puede también desplazarse una línea
arbitraria; por ejemplo, pulsando la orden 10G, llevara el cursor a la linea 10 del
archivo, para desplazarse al comienzo pulse 1G.
• Orden :q!
Al pulsar “:” , El cursor se desplazara a la ultima línea de la pantalla. (Esta en
modo de ultima línea).
Cow is the for all gob_men to come to the aid of the party
~
~
• Orden :wq
Salva el archivo y sale de vi
• Orden ZZ (desde el modo de ordenes, sin “:”) Es equivalente a la orden :wq
• Orden :w
Salva los cambios sin salirse de vi.
• Orden :e
Se utiliza para abrir otro archivo. Por ejemplo, para dejar de editar el archivo
test y en su lugar editar el archivo test2
Cow is the for all gob_men to come to the aid of the party
~
~
:e test2
Página 78
Sistemas Operativos 2010
Lo cual significa que vi no quiere editar otro archivo hasta que salve el primero
• Orden :e!
Indica al editor que realmente se desea editar otro archivo sin salvar los cambios
en el primero.
• Orden :r
Puede incluir el contenido de otro archivo en el archivo que esta editando.
Por ejemplo, para editar los archivos test y test2, estando editado el test
Cow is the for all gob_men to come to the aid of the party
~
~
:r test2
Ahora tendremos dos archivos, el archivo test2 se inserta en la posición actual del cursor.
Se pueden ejecutar comandos del interprete desde editor vi con las siguientes
ordenes:
• Orden :r!
Funciona como la orden :r, pero en lugar de leer un archivo, inserta la salida de
un comando dado en el archivo en la posición actual del cursor. Por ejemplo, la
orden :r! ls –F . Muestra en el archivo el listado del directorio donde se encuentra
ubicado.
• Orden :!
Se utiliza para salir a un interprete de comandos desde vi, es decir, ejecutar
desde dentro de vi y volver al editor una vez finalice. Por ejemplo, si usa la orden:
:! ls –F
La orden ls –F sera ejecutada, y los resultados mostrados en la pantalla, pero no
insertados en el archivo de edición.
• :shell.
Con esta orden vi inicia una instancia de comandos, permitiéndole
temporalmente dejar a vi “parado” mientras ejecuta otras ordenes. Simplemente
salga del intérprete de comandos usando la orden exit, para regresar a vi.
Una de las principales responsabilidades del administrador del sistema Linux es mantener
las cuentas de usuarios y de grupos de usuarios. Ello incluye dar de alta nuevas cuentas,
eliminar las que nos se utilicen, establecer los mecanismos de comunicación con los
usuarios, etc.
Página 79
Sistemas Operativos 2010
• Usuario Normal, es un individuo particular que puede entrar en el sistema, con más
o menos privilegios que harán uso de los recursos del sistema. Como indicador en el
prompt utiliza el símbolo $ (dólar). Ejemplo: raul, sergio, mrodriguez, etc. También
se les conoce como usuarios de login.
• Usuarios de Sistema, son usuarios propios del sistema vinculados a las tareas que
debe realizar el sistema operativo, este tipo de usuario no puede ingresar al sistema
con un login normal. Ejemplo: mail, ftp, bin, sys, proxy, etc. También se le conoce
como usuarios sin login.
• root (superusuario), todo sistema operativo GNU/Linux cuenta con un
superusuario, que tiene los máximos privilegios que le permitirán efectuar cualquier
operación sobre el sistema, su existencia es imprescindible ya que se encarga de
gestionar los servidores, grupos, etc.
En todas las operaciones con usuarios se ven implicados 3 archivos en donde se guardan
la información concerniente a los usuarios y a los grupos a que pertenecen:
Archivo /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
clases:x:1000:1000:LinuxCentro:/home/clases:/bin/bash
Cada línea esta separada en campos, el separador de campo son los dos puntos (:), y
cada campo representa lo siguiente:
Página 80
Sistemas Operativos 2010
Archivo /etc/group
El archivo group almacena la información de los grupos del sistema, y tiene el siguiente
formato:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
clases:x:502:
Al igual que el archivo anterior cada línea está separada en campos el separador de
campo son los dos puntos (:), y cada campo representa lo siguiente:
• Nombre del grupo. Por defecto con los comandos habituales se crea un grupo con el
mismo nombre que el usuario creado, aunque pueden existir otros grupos con
nombres específicos.
Página 81
Sistemas Operativos 2010
Archivo /etc/shadow
El archivo shadow se encarga de almacenar las contraseñas cifradas del usuario, y tienen
el siguiente formato:
root:$1$qvZCDFha$8CsNHHB/QDYlx3wDnZWzp/:12829:0:99999:7:::
bin:*:12829:0:99999:7:::
daemon:*:12829:0:99999:7:::
clases:$1$8Ne4Ij4r$th9obKXkR7iTZGj26jGUc/:12831:0:99999:7:::
Igual que los archivos anteriores cada línea esta separada en campos el separador de
campo son los dos puntos (:), y cada campo representa lo siguiente:
En sistemas UNIX es muy común representar las fechas a partir del número de segundos
transcurridos desde el 1 de enero de 1970.
Página 82
Sistemas Operativos 2010
Comando: useradd
Formato: useradd [-opciones] usuario
Descripción: Este comando se utiliza para dar de alta a nuevos usuarios en el sistema. Si
no se proporcionan argumentos, tomará determinados valores por defecto, dichos valores
se pueden consultar con la opción –D y están almacenados en el directorio
/etc/default/useradd
Ejemplo
# useradd –g Usuarios –c “Norma Roldan” normita
Ejemplos:
Una vez creado el usuario debemos agregarle una contraseña con la orden:
# passwd normita
Comando: userdel
Formato: userdel [-opciones] usuario
Descripción: Este comando permite eliminar usuarios del sistema. Por ejemplo, si
queremos eliminar al usuario normita, se escribe lo siguiente:
#userdel normita
Página 83
Sistemas Operativos 2010
Comando: groupadd
Formato: groupadd [-opciones] grupo
Descripción: Con esté comando podemos dar de alta un nuevo grupo en el sistema por
ejemplo, si queremos dar de alta al grupo de usuarios de captura utilizamos la orden:
# groupadd captura
Comando: newgrp
Formato: newgrp [-opciones] grupo
Descripción: Comando que permite que un usuario pueda cambiarse de grupo. Por
ejemplo el usuario normita que pertenece al grupo captura, quiere cambiarse al grupo
programadores
#newgrp programadores
Comando: gpasswd
Formato: gpasswd [-opciones] grupo
Descripción: Permite administrar los grupos. Se puede utilizar para añadir y eliminar
usuarios, señalar un administrador e indicar un password para el grupo.
Ejemplos:
Comando: groupdel
Formato: groupdel [-opciones] grupo
Descripción: Este comando permite eliminar un grupo del sistema, el grupo no podrá ser
eliminado si este es el grupo primario de un usuario.
Ejemplo:
# groupdel admin
Página 84
Sistemas Operativos 2010
UNIDAD IV
SERVICIOS DE RED
Los servicios son aplicaciones que se ejecutan independientemente del usuario y de que
éste haya iniciado la sesión en el equipo. Normalmente se asocia los servicios sólo a
servicios de red, pero los servicios proporcionan una gran funcionalidad al sistema
operativo. Estas aplicaciones se registran como servicios y los controla el administrador de
servicios.
Hay diferentes métodos de administrar el acceso a los servicios del sistema. Debe decidir
qué método le gustaría usar en función del servicio, la configuración del sistema y el nivel
de conocimientos que tenga de Linux.
La forma más fácil de denegar el acceso a un servicio es desactivándolo. Los servicios en
la jerarquía /etc/rc.d se pueden configurar para iniciarse o detenerse con tres aplicaciones
diferentes:
• Herramienta de configuración de servicios — una aplicación gráfica que muestra
una descripción de cada servicio, muestra si los servicios se han iniciado en el
momento del arranque (para los niveles de ejecución 3, 4, y 5), y permite que los
servicios sean arrancados, detenidos o reiniciados.
• ntsysv: una aplicación basada en texto que permite configurar cuáles servicios son
arrancados al momento de arranque para cada nivel de ejecución. Los cambios no
toman efecto de inmediato para los servicios no xinetd. Los servicios que no son
xinetd no pueden ser arrancados, detenidos o reiniciados usando este programa.
Niveles de ejecución
Antes de configurar el acceso a servicios, deberá entender qué son los niveles de
ejecución en Linux. Un nivel de ejecución es un estado o un modo que los servicios
incluídos en el directorio /etc/rc.d/rc<x>.d definen, donde <x> es el número del nivel de
ejecución.
Página 85
Sistemas Operativos 2010
• 0 — Parada
• 1 — Modo de un usuario
• 2 — No se utiliza (definido por el usuario)
• 3 — Modo completo de multiusuario
• 4 — No se utiliza (definido por el usuario)
• 5 — Modo completo de multiusuario (con una pantalla de conexión basada en X)
• 6 — Rearranque
Si usa una pantalla de texto para el ingreso al sistema, estará operando a nivel de
ejecución 3. Si usa una pantalla gráfica para ingresar al sistema, estará operando a nivel
de ejecución 5.
El nivel de ejecución por defecto se puede cambiar si se modifica el fichero /etc/inittab, que
contiene una línea junto a la parte superior del fichero con el siguiente aspecto:
id:5:initdefault:
Cambie el número de esta línea para reflejar el nivel de ejecución que desee. El cambio no
tendrá efecto hasta rearrancar el sistema.
Para cambiar el nivel de ejecución inmediatamente, use el comando telinit seguido del
número del nivel de ejecución. Debe ser usuario root para poder usar este comando.
Página 86
Sistemas Operativos 2010
Página 87
Sistemas Operativos 2010
Por ejemplo, imagine que verifica rsync para activarlo a nivel de ejecución 3 y luego guarda
los cambios. El servicio rsync se activará de inmediato. La próxima vez que arranque xinetd,
rsync estará todavía activado.
Aviso
Cuando guarde los cambios de los servicios xinetd, xinetd es reiniciado y los cambios
toman efecto de inmediato. Cuando guarda cambios a otros servicios, el nivel de
ejecución es reconfigurado, pero los cambios no serán efectivos de inmediato.
Para activar un servicio no xinetd para que se inicie en el momento de arranque del sistema
para el nivel de ejecución seleccionado actualmente, marque la casilla de verificación al
lado del nombre del servicio en la lista. Después de configurar el nivel de ejecución,
aplique los cambios seleccionando Archivo => Guardar cambios desde el menú
desplegable. La configuración del nivel de ejecución es modificada, pero el nivel de
ejecución no es reiniciado; por tanto los cambios no toman efecto de inmediato.
Por ejemplo, asuma que está configurando un nivel de ejecución 3. Si cambia el valor para
el servicio anacron de marcado a desmarcado y luego selecciona Guardar cambios, el nivel
de ejecución 3 cambia y entonces anacron no es iniciado al momento de arranque. Sin
embargo, el nivel de ejecución 3 no es reinicializado, por tanto anacron todavía estará
ejecutándose. Llegados a este punto, seleccione una de las siguientes opciones:
4.1.2 ntsysv
La utilidad ntsysv provee una interfaz sencilla para activar y desactivar servicios. Puede
usar ntsysv para activar o desactivar un servicio xinetd. También puede usar ntsysv para
configurar los niveles de ejecución. Por defecto, únicamente el nivel de ejecución actual es
Página 88
Sistemas Operativos 2010
configurado. Para configurar un nivel de ejecución diferente, especifique uno o más niveles
con la opción --level. Por ejemplo, el comando ntsysv --level 345 configura los niveles de
ejecución 3, 4, y 5.
La interfaz ntsysv funciona de forma similar al programa de instalación en modo texto.
Utilice las flechas arriba y abajo para desplazarse por la lista. La barra espaciadora
selecciona o anula la selección de servicios, y también sirve para "pulsar" los botones
Aceptar y Cancelar. Para desplazarse en la lista de servicios y entre los botones Aceptar
y Cancelar, use la tecla [Tab]. Un asterisco, *, significa que el servicio está activado. Con
la tecla [F1] se mostrará una breve descripción de cada servicio.
Aviso
Los servicios manejados por xinetd son afectados de inmediato por ntsysv. Para
todos los demás servicios, los cambios no toman efecto de inmediato. Usted debe
detener o arrancar el servicio individual con el comando service daemon stop. En el
ejemplo anterior, sustituya daemon por el nombre del servicio que desee detener,
por ejemplo httpd. Reemplace stop por start o restart para arrancar o reiniciar el
servicio.
4.1.3 chkconfig
El comando chkconfig puede ser usado para activar y desactivar servicios. Si usa el
comando chkconfig --list, verá una lista de los servicios del sistema y si están iniciados (on) o
detenidos (off) en los niveles de ejecución 0-6. Al final de la lista, verá una sección para los
servicios manejados por xinetd.
Si usa chkconfig --list para realizar una consulta a un servicio manejado por xinetd, verá si el
servicio xinetd está activado (on) o desactivado (off). Por ejemplo, el comando chkconfig --list
finger retorna la salida siguiente:
finger on
Como se muestra, finger está activado como un servicio xinetd. Si xinetd está ejecutándose,
finger estará activo.
Si usa chkconfig --list para consultar un servicio /etc/rc.d, verá las configuraciones del servicio
para cada nivel de ejecución. Por ejemplo, el comando chkconfig --list anacron devuelve la
siguiente salida:
Página 89
Sistemas Operativos 2010
6:off
chkconfig también puede ser usado para configurar un servicio para que comience (o no) en
un nivel de ejecución específico. Por ejemplo, desactive nscd en los niveles de ejecución 3,
4, y 5, usando el comando siguiente:
Aviso
Los servicios gestionados por xinetd están afectados por chkconfig. Por ejemplo, si se
está ejecutando xinetd, finger está deshabilitado y se ejecuta el comando chkconfig
finger on y se activa de inmediato finger sin tener que reiniciar xinetd de forma manual.
El resto de los cambios no se producen inmediatamente tras haber usado chkconfig
manualmente. Deberá parar y reiniciar el servicio individual con el comando service
daemon stop. En el ejemplo anterior, reemplace daemon con el nombre del servicio
que desea parar; por ejemplo, httpd. Reemplace stop start o con restart para iniciar o
reiniciar el sistema .
2. Si se indicó al comando lpr que tenía que emplear algún filtro de impresión en concreto
(ej.: lpr -t) se ejecuta el filtro indicado en la correspondiente entrada del archivo printcap; si
Página 90
Sistemas Operativos 2010
no se indicó ningún filtro al comando lpr, se ejecuta el indicado por el parámetro 'if' del
archivo printcap.
- la entrada estándar del filtro de salida (si éste está definido en el archivo printcap) y la
salida de dicho filtro al dispositivo de impresión asociado a esta impresora (orden 'lp' del
printcap).
- al dispositivo de impresión indicado en el archivo printcap.
El servicio de impresión recoge las solicitudes locales o remotas para obtener copias sobre
papel y las dirige hacia una cola de trabajos. Como la impresora es un dispositivo más
lento que los procesadores, el servicio selecciona el trabajo de impresión correspondiente
según sus reglas de control y lo dirige hacia la impresora correspondiente cuando ésta
queda libre para realizar la tarea.
Una serie de utilidades de gestión, que permitan controlar los trabajos pendientes.
Una cola de impresión para cada dispositivo definido, donde se dispongan los trabajos
que están pendientes de impresión. Cada cola debe tener un nombre único en el sistema y
ser designada mediante alias.
Página 91
Sistemas Operativos 2010
Mandato Descripción
lpd Servicio de impresión
lpc Controla las funciones báscias del servicio de impresión
lpr Manda un trabajo de impresión a la cola
lpq Lista el contenido de los trabajos pendiente de una cola
Lprm Elimina un trabajo de impresión
CUPS: El Servicio de Impresión Común para Unix (CUPS) brinda el soporte de una capa
de impresión portátil para sistemas Unix, ofreciendo interfaces de comandos compatibles
con los servicios de Unix System V y los de Unix BSD. Este servicio es el utilizado
actualmente en la mayoría de distribuciones de Linux.
Las características principales de CUPS son:
Utiliza el Protocolo para Impresión en Internet (IPP) como base para la gestión de los
trabajos de impresión.
Garantiza la compatibilidad con Unix System V (lp) y con Unix BSD (lpr).
DHCP es útil para proporcionar de un modo rápido la configuración de red del cliente. Al
configurar el sistema cliente, el administrador puede seleccionar el protocolo DHCP y no
especificar una dirección IP, una máscara de red, un gateway o servidor DNS. El cliente
recupera esta información desde el servidor DHCP. DHCP también es útil si un
administrador desea cambiar las direcciones IP de muchos sistemas. En lugar de volver a
configurar todos los sistemas, puede modificar un archivo de configuración DHCP en el
servidor para establecer el nuevo conjunto de direcciones IP. Si los servidores DNS de una
Página 92
Sistemas Operativos 2010
Además, si un portátil o cualquier tipo de equipo móvil se configuran para DHCP, podrá
desplazarse entre distintas oficinas sin tener que volver a configurarlo, siempre y cuando
cada oficina tenga un servidor DHCP que permita su conexión a la red.
Un servicio web (en inglés, Web service) es un conjunto de protocolos y estándares que
sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier
plataforma, pueden utilizar los servicios web para intercambiar datos en redes de
ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de
estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la
arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre
distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado
de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.
Página 93
Sistemas Operativos 2010
<método>://<servidor>/<directorio absoluto>
Para que el servidor remoto obedezca esta solicitud de servicio debe manejar el protocolo
http dentro de sus servicios instalados. La información se transmite en formato HTML o
lenguaje de marcas de hipertexto.
Todo el servicio web se logra gracias al protocolo http en el servidor como ya se dijo, el
cual es manejado y administrado por un software llamando servidor web. En Linux se llama
Apache.
Apache maneja dentro del servidor una serie de directorios en donde residen las páginas
web y los programas de aplicaciones orientadas a la web, cuya ubicación puede variar
según la distribución de Linux o las especificaciones que se dan en el momento de
compilarlo.
La manera de averiguar si existe Apache dentro del servidor, si se usó rpm para instalarlo
es:
Página 94
Sistemas Operativos 2010
$ rpm –q httpd
Cuando se compila Apache desde los códigos fuentes este viene en formato .gz como
este: httpd -2.0.54.tar.gz
El correo electrónico es una de las aplicaciones más usadas a nivel mundial, pues fue un
servicio escogido libremente por los usuarios de Internet, lo cual determinó el auge de la
computación personal de Internet.
Página 95
Sistemas Operativos 2010
programa orientado a que lo use el usuario directamente, pero se puede usar, lo cual se
hará en este momento solamente para conocer algunos aspectos de su funcionamiento y
recibir el correo con el programa de texto mail que viene en Linux
Sendmail viene ya preinstalado para uso básico así que sólo se mencionará los pasos de
comprobación como se ha hecho con las otras plataformas:
/usr/sbin/sendmail manual
La pantalla queda en un renglón en blanco y el sistema espera los comandos para enviar
el mensaje para lo cual se introducen los datos aquí y se debe terminar con . (punto)
El programa de correo más sencillo que hay se denomina mail y se suele hallar en el
directorio / bin. Este programa no tiene un editor a pantalla completa y no requiere el
sistema X Window. El comando mail, parecido al programa mailx que se distribuye con
otras versiones de UNIX , soporta las características básicas necesarias para redactar,
enviar, enumerar y leer mensajes.
Utilice el redireccionamiento con prudencia. ¡No es una idea muy buena que digamos
enviar a alguien el contenido del diccionario del sistema !
Página 96
Sistemas Operativos 2010
# mail
2. El comando mail responderá con la indicación Subject. Introduzca una breve línea
relativa al asunto:
4. Cuando haya terminado de escribir el texto, introduzca un punto (.) en una línea
sola para enviar el mensaje:
EOT
5. El programa mail responde imprimiendo las letras EOT (fin de texto) y enviando el
mensaje.
Cuando utiliza el comando mail, éste imprime una versión corta del mensaje y luego
enumera los mensajes. El signo & es una indicación de la línea de comandos. Utilice in
comando de una sola letra (véase la Tabla 17.2) para leer, eliminar, guardar o responder
al mensaje de correo en curso, lo cual se sabe por un signo mayor que (>). Por defecto, los
mensajes guardados se almacenan en un archivo llamado mbox del directorio de inicio. La
tabla 17.2 enumera los comandos más habituales del programa mail ; para obtener una
lista completa de los comandos mail , remítase a la página man correo.
Tecla Acción
Página 97
Sistemas Operativos 2010
Samba es una suite de aplicaciones Unix que habla el protocolo SMB (Server Message
Block). Este protocolo, funciona a nivel de la capa de presentación del modelo OSI de
TCP/IP.
Muchos sistemas operativos, incluidos Windows y OS/2, usan SMB para operaciones de
red cliente−servidor. Mediante el soporte de este protocolo, Samba permite a los
servidores Unix entrar en acción, comunicando con el mismo protocolo de red que los
productos de Microsoft Windows. De este modo, una máquina Unix con Samba puede
enmascararse como servidor en tu red Microsoft y ofrecer los siguientes servicios:
Aunque él no lo supo en ese momento, aquel protocolo más tarde se convertiría en SMB.
Unos cuantos años después, él lo expandió como su servidor SMB particular y comenzó a
distribuirlo como producto por Inte rnet bajo el nombre de servidor SMB.
Entre otras cosas, Microsoft añadió al protocolo soporte para enlaces simbólicos y duros
así como también soporte para ficheros de gran tamaño. Por mera coincidencia esto
ocurrió por la misma época en que Sun Microsystems hizo el lanzamiento de WebNFS
(una versión extendida de NFS), protocolo NetBIOS, el cual a su vez trabaja sobre
NetBEUI (acrónimo de NetBIOS Extended User Interface, que se traduce como Interfaz de
Usuario Extendida de NetBIOS), IPX/SPX (acrónimo de Internet Packet
Exchange/Sequenced Packet Exchange, que se traduce como Intercambio de paquetes
interred/Intercambio de paquetes secuenciales) o NBT, aunque también puede trabajar
directamente sobre TCP/IP.
La versión más actual de samba es la 3.5.3. Necesitará tener instalados los siguientes
paquetes, que seguramente vienen incluidos en los discos de instalación de su distribución
predilecta:
· samba: Servidor SMB.
· samba-client: Diversos clientes para el protocolo SMB.
· samba-common: Ficheros necesarios para cliente y servidor.
Consulte a la base de datos RPM del sistema si se encuentran instalados estos paquetes,
utilizando el siguiente mandato:
Página 98
Sistemas Operativos 2010
Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo bastará realizar lo siguiente para
instalar o actualizar la programática necesaria:
yum -y install samba samba-client
Configuración
Para comenzar la configuración es necesario tener una cuenta en la máquina Linux y otra
en la máquina Windows, con la misma contraseña ó clave de acceso. Dado que este
usuario no va a tener acceso al Shell entonces, no es necesario que tenga password por
medio del comando passwd, es suficiente con definir /bin/false como shell ó bien definirla
en /sbin/nologin, como se muestra a continuación:
A menos que se necesite que esta misma cuenta, tenga acceso a otros servicios como
Telnet, SSH, etc, entonces debe realizarse lo siguiente:
El fichero lmhosts
NetBios significa Network Basic Input/Output System, desarrollado por IBM en la década
de los 80 para compartir recursos entre computadoras. El sistema fue desarrollado como
una API básica de comunicación entre sistemas de computadoras.
Normalmente tomaremos como referencia el nombre corto del servidor o el nombre corto
que se asigno como alias a la interfaz de red. Este lo estableceremos en el fichero
/etc/samba/lmhosts, en donde encontraremos lo siguiente:
127.0.0.1 localhost
Debemos añadir entonces el nombre que hayamos elegido asociado a la dirección IP que
se tenga dentro de la red local. Opcionalmente podrá añadir también los nombres y
dirección IP del resto de las máquinas que conformen la red local. La separación de
espacios se hace con un tabulador. Ejemplo:
127.0.0.1 localhost
192.168.1.5 server
Página 99
Sistemas Operativos 2010
192.168.1.6 client
Opcionalmente puede establecer con el parámetro netbios name otro nombre distinto para
el servidor si acaso fuese necesario, pero siempre tomando en cuenta que dicho nombre
deberá corresponder con el establecido en el fichero
/etc/samba/lmhosts:
netbios name = server
El parámetro interfaces permite establecer desde que interfaces de red del sistema se
escucharán peticiones. Samba no responderá a peticiones provenientes desde cualquier
interfaz no especificada.
Esto es útil cuando Samba se ejecuta en un servidor que sirve también de puerta de
enlace para la red local, impidiendo se establezcan conexiones desde fuera de la red local.
interfaces = 192.168.1.254/24
Las impresoras se comparten de modo predeterminado, así que solo hay que realizar
algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario
invitado sin clave de acceso, basta con añadir public = Yes en la sección de impresoras,
Página 100
Sistemas Operativos 2010
por otra parte es necesario prevenir problemas con sistemas operativos viejos, ó versiones
anteriores de Windows como 95, 98 y ME, como son:
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j
Por último es posible que se requiera un usuario que pertenezca al grupo que realizan
tareas de administración en las impresoras, así la sección [printers] quedará como sigue:
[printers]
comment = Impresoras.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j
printer admin = fulano, @opers_impresion
Opción Descripción
guest ok Define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o
No.
public Es un equivalente del parámetro guest ok, es decir define si ser permitirá el acceso
como usuario invitado. El valor puede ser Yes o No.
writable Define si ser permitirá la escritura. Es el parámetro contrario de read only. El valor
puede ser Yes o No. Ejemplos:
«writable = Yes» es lo mismo que «read only = No». Obviamente «writable = No» es lo
mismo que «read only= Yes»
Página 101
Sistemas Operativos 2010
valid users Define que usuarios o grupos pueden acceder al recurso compartido. Los
valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo
antecedidos por una @. Ejemplo: fulano, mengano, @administradores.
write list Define que usuarios o grupos pueden acceder con permiso de escritura. Los
valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo
antecedidos por una @. Ejemplo: fulano, mengano, @administradores.
admin users Define que usuarios o grupos pueden acceder con permisos administrativos
para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones
como superusuarios.
Los valores pueden ser nombres de usuarios separados por comas o bien nombres de
grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores.
directory mask Es lo mismo que directory mode. Define que permiso en el sistema tendrán
los subdirectorios creados dentro del recurso. Ejemplos: 1777
create mask Define que permiso en el sistema tendrán los nuevos ficheros creados dentro
del recurso. Ejemplo: 0644
Por ejemplo para compartir el recurso denominado ftp, que esta en el directorio
/var/ftp/pub, con los siguientes premisos activados: 755 para el directorio en general y todo
fichero que sea puesto en su interior tendrá permiso 644.
[ftp]
comment = Directorio del servidor FTP
path = /var/ftp/pub
guest ok = Yes
read only = Yes
write list = fulano, administrador
directory mask = 0755
create mask = 0644
Puede habilitar convertirse en servidor WINS o bien utilizar un servidor WINS ya existente.
Se puede ser un servidor WINS o un cliente WINS, pero no ambas cosas a la vez.
.
Si se va ser el servidor WINS, debe habilitarse lo siguiente:
wins support = Yes
Página 102
Sistemas Operativos 2010
Modo Texto
Smbclient.
Indudablemente el método más práctico y seguro es el mandato smbclient. Este permite
acceder hacía cualquier servidor Samba o Windows® como si fuese el mandato ftp en
modo texto.
La siguiente corresponde a la sintaxis básica para poder navegar los recursos compartidos
por la máquina Windows® o el servidor SAMBA:
smbclient //alguna_maquina/recurso -U usuario
Ejemplo:
smbclient //LINUX/FTP -U jbarrios
Después de ejecutar lo anterior, el sistema solicitará se proporcione la clave de acceso del
usuario jbarrios en el equipo denominado LINUX.
Página 103
Sistemas Operativos 2010
Pueden utilizarse virtualmente los mismos mandatos que en el interprete de ftp, como
serían get, mget, put, del, etc.
Si necesita poder visualizar desde GNU/Linux a las máquinas con Windows® e interactuar
con los directorios compartidos por estás, necesitará realizar algunos pasos adicionales.
De manera predeterminada, y por motivos de seguridad, solo root puede utilizar los
mandatos smbmnt y smbumount. Deberá entonces establecer permisos de SUID a dichos
mandatos. Puede hacerlo ejecutando, como root lo siguiente:chmod 4755 /usr/bin/smbmnt
chmod 4755 /usr/bin/smbumount.
Para acceder hacia una máquina Windows® determine primero que volúmenes o recursos
compartidos posee está. utilice el mandato smbclient del siguiente modo:smbclient -N -L
alguna_maquina lo cual le devolvería más menos lo siguiente:
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Sharename Type Comment
--------------- ------- --------------
homes Disk Home Directories
netlogon Disk Network Logon Service
ftp Disk ftp
IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
epl5900 Printer Created by redhat-config-printer 0.6.x
hp2550bw Printer Created by redhat-config-printer 0.6.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor
Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR
En el ejemplo anterior hay un volumen compartido llamado algún_volumen. Si queremos
montar este, debemos crear un punto de montaje. Éste puede crearse en cualquier
directorio sobre el que tengamos permisos de escritura.
Página 104
Sistemas Operativos 2010
-username=el_necesario
-password=el_requerido
-workgroup=MIGRUPO
Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar volúmenes
SMB sin ingresar una clave de acceso pero con privilegios restringidos, o aquellos que
definamos a un volumen accedido por un usuario invitado. Esto sería el método por
elección para compartir volúmenes en una red de área local. Puede generarse una cuenta
pcguest o bien dejar que el sistema tome al usuario nobody. Si opta por lo primero, solo de
de alta la cuenta NO asigne clave de acceso alguna. Montar volúmenes remotos como
usuarios invitado es muy sencillo. Un ejemplo real sería:
mount -t smbfs -o guest //LINUX/FTP //var/ftp
Lo anterior monta un volumen SAMBA de una máquina con GNU/Linux en otra máquina
con GNU/Linux. Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga
que ser tecleado mount /punto/de/montaje. Esta línea sería de modo similar al
siguiente://LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0
Recuérdese que el volumen compartido debe estar configurado para permitir usuarios
invitados:
[FTP]
comment = Programática libre (RPMS)
path = /var/ftp/pub
public = Yes
guest ok = Yes
Modo gráfico
Si utiliza GNOME 2.x o superior, éste incluye un módulo para Nautilus que permite acceder
hacia los recursos compartidos a través de Samba sin necesidad de modificar cosa alguna
en el sistema. Solo hay que hacer clic en Servidores de red en el menú de GNOME.
Desde Windows.
Por su parte, desde Windows deberá ser posible acceder sin problemas hacia Samba
como si fuese hacia cualquier otra máquina con Windows. Vaya, ni Windows ni el usuario
notarán siquiera la diferencia.
Página 105
Sistemas Operativos 2010
Bajo algunas circunstancias será necesario crear cuentas de máquinas (trust accounts o
cuentas de confianza) a fin de permitir unirse al dominio. El procedimiento es simple:
/usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M
maquina-windows$
smbpasswd -a maquina-windows$
Ya que los sistemas con Windows 95/98/ME y Windows XP Home no incluyen una
implementación completa como miembros de dominio, no se requieren cuentas de
confianza.
Página 106
Sistemas Operativos 2010
Especifique la root y la clave de acceso que asignó a la cuenta de root con el mandato
smbpasswd (NO LA CLAVE DE ACCESO DE ROOT EN EL SISTEMA).
• Espere algunos segundos.
• Deberá mostrarse un mensaje emergente de confirmación que dice «Bienvenido a MI-
DOMINIO»
• Reinicie el sistema
• Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que
además cuente con una clave de acceso asignada con smbpasswd.
Para usar ssh se requiere que esté instalado openssh-server como servidor y openssh-
clients como cliente, lo cual se peude ver con los comandos:
$ rpm –q openssh-server
$ rpm –q openssh-clients
$ ssh usuario@servidor
Página 107
Sistemas Operativos 2010
Desde ese comente se es usuario remoto del servidor Linux.domain.com.co, en este caso
como usuario manuel, el cual debe estar creado como tal en el servidor remoto y aparece
el prompt [manuel@linux]$
Muchas veces no es necesario entrar a un servidor para ejecutar un comando sino basta
indicarlo de manera directa y remota. Por ejemplo si se quiere ver qué programas .conf
existen en el directorio remoto /etc se usa el siguiente comando:
$ ssh Linux.domain.com.co ls/etc/*.conf
Página 108
Sistemas Operativos 2010
Fuentes Bibliográficas
http://www.linuxparatodos.net/portal/staticpages/index.php?page=13-
como-samba:
Página 109