Está en la página 1de 188

Manual Terico-Prctico del Mdulo

Autocontenido Especfico
Operacin de Sistema Operativo Multiusuario

PARA LA CARRERA DE
PROFESIONAL TCNICO-BACHILLER EN

INFORMTICA

ecbc
Educacin Capacitacin
Basadas en Competencias
Contextualizadas

Capacitado por

Conalep

PARTICIPANTES
Director General
Efrn Castillo Saavedra
Secretario de Desarrollo Acadmico y de Capacitacin
Marco Antonio Norzagaray
Director de Diseo de Curricular de la Formacin Ocupacional
Gustavo Flores Fernndez
Coordinadores de rea:
Ma. Cristina Martnez Mercado
Grupo de Trabajo para el Diseo del Mdulo
Especialistas de Contenido
Consultores Formo Internacional,S.C.
Revisor de contenido
Sandra Luz Lozano Ramrez
Revisin Pedaggica
Patricia Toledo
Revisores de la Contextualizacin
Agustn Valerio
Armando Guillermo Prieto Becerril

Tecnologas de la informacin
Manual del curso mdulo Autocontenido Especfico
Operacin de Sistema Operativo Multiusuario
Informtica.
D.R. 2006 CONALEP.
Prohibida la reproduccin total o parcial de esta obra, incluida la
portada, por cualquier medio sin autorizacin por escrito del
CONALEP. Lo contrario representa un acto de piratera intelectual
perseguido por la Ley Penal.
E-CBCC
Av. Conalep N 5, Col. Lzaro Crdenas, C.P. 52140 Metepec, Estado de Mxico.

Operacin de Sistema Operativo Multiusuario

NDICE
Participantes
I.
Mensaje al alumno
II.
Como utilizar este manual
III.
Propsito del mdulo autocontenido
V.
Especificaciones de evaluacin
VI.
Mapa curricular del mdulo autocontenido
Captulo 1 Manejo de ambiente de sistema operativo multiusuario.
Mapa curricular de la unidad de aprendizaje
1.1.1. Sistema operativo multiusuario

1.1.2.

6
7
9
10
11
12
13
14
14
17
20
24
31
31
38

Definicin de sistema operativo


Desarrollo histrico de los sistemas operativos
Estructura de un sistema operativo
Funciones y caractersticas de los sistemas operativos
Definicin de multitartea
Tipos de Sistemas operativos y proveedores ms comunes.

Caracteristicas de unix.

38
39
43
43
48
47
47
47
50
56
56
58
59
60
60
62
63
63
64
66
66
66
67
70
70
70

Entorno de UNIX
Interfases
1.2.1.

1.2.2.

Inicio de una sesion unix


Ejecucin de las rdenes
Tipo de Operadores

Archivos unix
Sistema de archivos
Nombres de directorios
Manipulacin de archivos y directorios.

1.3.1

1.3.2

1.4.1

1.4.2

Editor
Editor vi.
Cambios de ventana
Salir de vi
Manejo de contenido
Ordenes ms importantes en modo EX.
Marcas de posicin.
Mover bloques.
Recuperacin de archivos
La calculadora
SHELL
Funciones del intrprete de rdenes
Modos de invocar una orden.
Histrico de rdenes
Redireccion de entrada y salida.
Redireccin de entrada y salida.
Redireccin de errores.

Operacin de Sistema Operativo Multiusuario

1.4.3

2.1.1

Filtros.
Orden FIND.
Editor de flujo de SED.
Prcticas de ejercicio y Listas de Cotejo
Resumen
Autoevaluacin de conocimientos
Captulo 2 Administracin de procesos de sistema operativo multiusuario.
Mapa curricular de la unidad de aprendizaje

Uso de shell
Variables especiales de shell (funciones en programas de shell).
Seales y orden trap.

2.1.2

Red.
Servicios de red..
Resolucin de nombres y direcciones
Conexin remota.

2.2.1

2.2.2

2.3.1

Parada y arranque del sistema unix


Acciones de INIT despus del arranque.
Identificadores de proceso grupo de procesos.

Administracion de los usuarios y grupos


Aadir usuarios al sistema.
Medidas de seguridad en un sistema UNIX.

Sistema de archivos
Almacenamiento
Estructura del sistema de archivos.

2.3.2

Ordenes para administrar el sistema de archivos


Montaje de un sistema de archivos.
Informacin del Espacio en disco
Copias de seguridad

Prcticas de ejercicio y Listas de Cotejo


Resumen
Autoevaluacin de conocimientos
Glosario de Trminos E-CBNC
Glosario de Trminos Tcnicos
Referencias Documentales

71
71
71
75
103
104
106
107
108
109
116
118
118
142
142
144
144
145
147
147
148
150
150
152
154
154
154
155
159
184
185
187
189
194

Operacin de Sistema Operativo Multiusuario

I. MENSAJE AL ALUMNO
CONALEP TE DA LA BIENVENIDA AL
CURSO-MDULO
AUTOCONTENIDO
ESPECFICO OPERACIN DE SISTEMA
OPERATIVO MULTIUSUARIO
EL CONALEP, a partir de la Reforma
Acadmica 2003, disea y actualiza sus
carreras, innovando sus perfiles, planes y
programas
de
estudio,
manuales
terico-prcticos, con los avances
educativos, cientficos, tecnolgicos y
humansticos predominantes en el
mundo globalizado, acordes a las
necesidades del pas para conferir una
mayor competitividad a sus egresados,
por lo que se crea la modalidad de
Educacin y Capacitacin Basada en
Competencias Contextualizadas, que
considera las tendencias internacionales
y
nacionales
de
la
educacin
tecnolgica, lo que implica un reto
permanente en la conjugacin de
esfuerzos.
Este manual terico prctico que apoya
al mdulo autocontenido, ha sido
diseado bajo la Modalidad Educativa
Basada en Competencias

Operacin de Sistema Operativo Multiusuario

Contextualizadas, con el fin de ofrecerte


una alternativa efectiva para el
desarrollo de conocimientos, habilidades
y actitudes que contribuyan a elevar tu
potencial productivo y, a la vez que
satisfagan las demandas actuales del
sector laboral, te formen de manera
integral con la oportunidad de realizar
estudios a nivel superior.
Esta modalidad requiere tu participacin
y que te involucres de manera activa en
ejercicios y prcticas con simuladores,
vivencias y casos reales para promover
un aprendizaje integral y significativo, a
travs de experiencias. Durante este
proceso debers mostrar evidencias que
permitirn evaluar tu aprendizaje y el
desarrollo de competencias laborales y
complementarias requeridas.
El conocimiento y la experiencia
adquirida se vern reflejados a corto
plazo en el mejoramiento de tu
desempeo laboral y social, lo cual te
permitir llegar tan lejos como quieras
en el mbito profesional y laboral.

II.

COMO UTILIZAR ESTE MANUAL

Las instrucciones generales que a


continuacin se te pide que realices,
tienen la intencin de conducirte a
que
vincules
las
competencias
requeridas por el mundo de trabajo
con tu formacin de profesional
tcnico.
Redacta cuales seran tus objetivos
personales al estudiar este mdulo
ocupacional.
Analiza el Propsito del mdulo
autocontenido optativo que se indica
al principio del manual y contesta la
pregunta Me queda claro hacia
dnde me dirijo y qu es lo que voy a
aprender a hacer al estudiar el
contenido del manual? si no lo tienes
claro pdele al docente que te lo
explique.
Revisa el apartado especificaciones de
evaluacin son parte de los requisitos
que debes cumplir para aprobar el
mdulo. En l se indican las evidencias
que debes mostrar durante el estudio
del curso -mdulo ocupacional para
considerar que has alcanzado los
resultados de aprendizaje de cada
unidad.
Es fundamental que antes de empezar a
abordar los contenidos del manual
tengas muy claros los conceptos que a
continuacin
se
mencionan:
competencia
laboral,
unidad
de
competencia
(bsica,
genricas
especficas), elementos de competencia,
criterio de desempeo, campo de
aplicacin, evidencias de desempeo,
evidencias de conocimiento, evidencias
por producto, norma tcnica de

institucin
educativa,
formacin
ocupacional,
mdulo
ocupacional,
unidad de aprendizaje, y resultado de
aprendizaje.
Si
desconoces
el
significado de los componentes de la
norma, te recomendamos que consultes
el apartado glosario de trminos, que
encontrars al final del manual.
Analiza el apartado Normas Tcnicas
de competencia laboral, Norma tcnica
de institucin educativa.
Revisa el Mapa curricular del mdulo
autocontenido
transversal.
Est
diseado
para
mostrarte
esquemticamente las unidades y los
resultados de aprendizaje que te
permitirn
llegar
a
desarrollar
paulatinamente
las
competencias
laborales que requiere la ocupacin
para la cual te ests formando.
Realiza la lectura del contenido de cada
captulo y las actividades de aprendizaje
que se te recomiendan. Recuerda que
en la educacin basada en normas de
competencia
laborales
la
responsabilidad del aprendizaje es tuya,
ya que eres el que desarrolla y orienta
sus conocimientos y habilidades hacia el
logro de algunas competencias en
particular.
En el desarrollo del contenido de cada
captulo, encontrars ayudas visuales
como las siguientes, haz lo que ellas te
sugieren efectuar. Si no haces no
aprendes, no desarrollas habilidades, y
te ser difcil realizar los ejercicios de
evidencias de conocimientos y los de
desempeo.

Operacin de Sistema Operativo Multiusuario

Imgenes de Referencia

Estudio individual

Investigacin documental

Consulta con el docente

Redaccin de trabajo

Comparacin de resultados
con otros compaeros

Repeticin del ejercicio

Trabajo en equipo

Contextualizacin

Realizacin del ejercicio

Resumen

Observacin

Consideraciones sobre seguridad e


higiene

Investigacin de campo

Portafolios de evidencias

Operacin de Sistema Operativo Multiusuario

III. PROPSITO DEL MDULO AUTOCONTENIDO ESPECFICO

Al finalizar el mdulo, el alumno operar un sistema operativo multiusuario


mediante comandos de UNX que le permitan, crear, abrir, compartir, buscar y
administrar archivos y monitorear procesos para la realizacin de tareas en el
procesamiento de informacin.

Operacin de Sistema Operativo Multiusuario

IV. ESPECIFICACIONES DE EVALUACIN

Durante el desarrollo de las prcticas de


ejercicio tambin se estar evaluando el
desempeo. El docente mediante la
observacin directa y con auxilio de una lista
de cotejo confrontar el cumplimiento de los
requisitos en la ejecucin de las actividades y
el tiempo real en que se realiz. En stas
quedarn registradas las evidencias de
desempeo.
Las autoevaluaciones de conocimientos
correspondientes a cada captulo adems de
ser
un
medio
para
reafirmar
los
conocimientos sobre los contenidos tratados,
son tambin una forma de evaluar y recopilar
evidencias de conocimiento.

Al trmino del mdulo debers presentar


un Portafolios de Evidencias1, el cual estar
integrado por las listas de cotejo
correspondientes a las prcticas de
ejercicio,
las
autoevaluaciones
de
conocimientos que se encuentran al final
de cada captulo del manual y muestras de
los trabajos realizados durante el desarrollo
del mdulo, con esto se facilitar la
evaluacin del aprendizaje para determinar
que se ha obtenido la competencia laboral.
Debers asentar datos bsicos, tales
como: nombre del alumno, fecha de
evaluacin, nombre y firma del evaluador
y plan de evaluacin.

1El portafolios de evidencias es una compilacin de


documentos que le permiten al evaluador, valorar los
conocimientos, las habilidades y las destrezas con que
cuenta el alumno, y a ste le permite organizar la
documentacin que integra los registros y productos de
sus competencias previas y otros materiales que
demuestran su dominio en una funcin especfica
(CONALEP.
Metodologa
para
el
diseo
e
instrumentacin de la educacin y capacitacin basada
en competencias, Pg. 180).

Operacin de Sistema Operativo Multiusuario

VI.

MAPA CURRICULAR DEL MDULO AUTOCONTENIDO ESPECFICO


Operacin de Sistema
Operativo
Multiusuario

Mdulo

108 hrs.

Unidad de
Aprendizaje

1. Manejo de
ambiente de
sistema operativo
multiusuario.
55 hrs.

2. Administracin de
procesos de
sistema operativo
multiusuario
53 hrs.

1.1 Analizar la evolucin de sistema operativo multiusuario y conceptos con


base a sus antecedentes.
1.2 Abrir sesiones de UNIX por medio de comandos y archivos.

Resultados
de
Aprendizaje

1.3 Manejar editores de introduccin de texto mediante comandos de


ejecucin.
1.4 Manejar el shell de UNIX mediante instrucciones de usuario.
2.1 Utilizar comandos con sus opciones por medio de instrucciones UNIX.
2.2 Manejar la administracin de cuentas de UNIX con base a permisos
establecidos de usuarios.
2.3 Organizar la informacin de archivos y discos mediante el sistema de
archivos.

10

10 hrs.
10 hrs.
15 hrs.
20 hrs.
18 hrs.
18 hrs.
17 hrs.

Operacin de Sistema Operativo Multiusuario

MANEJO DE AMBIENTE DE SISTEMA OPERATIVO MULTIUSUARIO.


Al finalizar la unidad, el alumno manejar un sistema operativo
multiusuario de acerdo con las VII.
caractersticas de entorno y los comandos
del sistema operativo UNIX.

Operacin de Sistema Operativo Multiusuario

11

MAPA CURRICULAR DEL MDULO AUTOCONTENIDO ESPECFICO


Operacin de Sistema
Operativo
Multiusuario

Mdulo
108 hrs.

Unidad de
Aprendizaje

1. Manejo de
ambiente de
sistema operativo
multiusuario.
55 hrs.

Resultados
de
Aprendizaje

12

2.Administracin de
procesos de
sistema operativo
multiusuario
53 hrs.

1.1 Analizar la evolucin de sistema operativo multiusuario y conceptos con


base a sus antecedentes.
1.2 Abrir sesiones de UNIX por medio de comandos y archivos.

10 hrs.

1.3 Manejar editores de introduccin de texto mediante comandos de


ejecucin.
1.4 Manejar el shell de UNIX mediante instrucciones de usuario.

15 hrs.

2.4 Utilizar comandos con sus opciones por medio de instrucciones UNIX.
2.5 Manejar la administracin de cuentas de UNIX con base a permisos
establecidos de usuarios.
2.6 Organizar la informacin de archivos y discos mediante el sistema de
archivos.

18 hrs.
18 hrs.

10 hrs.

20 hrs.

17 hrs.

Operacin de Sistema Operativo Multiusuario

SUMARIO

SISTEMA OPERATIVO MULTIUSUARIO


CARACTERISTICAS DE UNIX
INICIO DE UNA SESION UNIX
ARCHIVOS UNIX
EDITOR
MANEJO DE CONTENIDO
SHELL.
REDIRECCION DE ENTRADA Y SALIDA
COMANDOS AVANZADOS

RESULTADO DE APRENDIZAJE
1.1.

Analizar la evolucin de sistema operativo multiusuario y conceptos con base a sus


antecedentes.

1.1.1. SISTEMA OPERATIVO


MULTIUSUARIO.

Definicin de sistema operativo

Introduccin a los sistemas operativos


Definiciones de los sistemas operativos.
Un sistema operativo es un programa que
acta como intermediario entre el usuario
y el hardware de un computador y su
propsito es proporcionar un entorno en
el cual el usuario pueda ejecutar
programas. El objetivo principal de un
sistema operativo es lograr que el sistema
de computacin se use de manera
cmoda ,y el objetivo secundario es que el
hardware del computador se emplee de
manera eficiente. Un sistema Operativo
(SO) es en s mismo un programa de
Operacin de Sistema Operativo Multiusuario

computadora. Sin embargo, es un


programa muy especial, quiz el ms
complejo
e
importante
en
una
computadora. El SO despierta a la
computadora y hace que reconozca al
CPU, la memoria, el teclado, el sistema de
vdeo y las unidades de disco. Adems,
proporciona la facilidad para que los
usuarios
se
comuniquen
con
la
computadora y sirve de plataforma a
partir de la cual se corren programas de
aplicacin.
Cuando enciendes una computadora, lo
primero que sta hace es llevar a cabo
unautodiagnstico llamado auto prueba
de encendido (Power On Self Test,
POST).Durante la POST, la computadora
identifica su memoria, sus discos, su
teclado, su sistema de vdeo y cualquier
otro dispositivo conectado a ella. Lo

13

siguienteque la computadora hace es


buscar un SO para arrancar (boot).
Una vez que la computadora ha puesto en
marcha su SO, mantiene al menos parte
de ste en su memoria en todo momento.
Mientras la computadora est encendida,
el sistema operativo tiene 4 tareas
principales:

14

Proporcionar ya sea una interfaz de


lnea de comando o una interfaz
grfica al usuario, para que este
ltimo se pueda comunicar con la
computadora.
Interfaz de lnea de comando: t
introduces palabras y smbolos
desde
el
teclado
de
la
computadora, ejemplo, el MS-DOS.
Interfaz grfica del Usuario (GUI),
seleccionas las acciones mediante el
uso de un Mouse para pulsar sobre
figuras
llamadas
iconos
o
seleccionar opciones de los mens.
Administrar los dispositivos de
hardware en la computadora.
Cuando corren los programas,
necesitan utilizar la memoria, el
monitor, las unidades de disco, los
puertos
de
Entrada/Salida
(impresoras, mdems, etc.). El SO
sirve de intermediario entre los
programas y el hardware.
Administrar
y
mantener
los
sistemas de archivo de disco. Los
SO agrupan la informacin dentro
de compartimientos lgicos para
almacenarlos en el disco. Estos
grupos
de
informacin
son
llamados archivos. Los archivos
pueden contener instrucciones de
programas o informacin creada

por el usuario. El SO mantiene una


lista de los archivos en un disco, y
nos proporciona las herramientas
necesarias
para
organizar
y
manipular estos archivos.
Apoyar a otros programas. Otra de
las funciones importantes del SO es
proporcionar servicios a otros
programas. Estos servicios son
similares a aqullos que el SO
proporciona directamente a los
usuarios. Por ejemplo, listar los
archivos, grabarlos a disco, eliminar
archivos, revisar espacio disponible,
etc. Cuando los programadores
escriben
programas
de
computadora, incluyen en sus
programas
instrucciones
que
solicitan los servicios del SO. Estas
instrucciones son conocidas como
"llamadas del sistema"

Qu es un sistema operativo?
Un sistema operativo es el programa que
oculta la verdad del hardware al
programador y presenta una vista simple y
agradable de los archivos nominados que
pueden leerse y escribirse. El sistema
operativo resguarda al programador del
hardware del disco y presenta una interfaz
simple orientada al archivo, tambin
disimula mucho del trabajo concerniente a
interrupciones, relojes o cronmetros,
manejo de memoria y otras caractersticas
de
bajo
nivel.
La funcin del sistema operativo es la de
presentar al usuario con elequivalente de
una mquina ampliada, o mquina virtual,
Operacin de Sistema Operativo Multiusuario

que sea ms fcil de programar que el


hardware implcito.
El sistema operativo es una parte
importante de casi cualquier sistema de
computacin. Un sistema de computacin
puede dividirse en cuatro componentes:
a.- El hardware
b-El sistema operativo
c-Los programas de aplicacin
d-Los usuarios.
a-El hardware
Unidad Central de Procesamiento (UCP),
memoria y dispositivos de entrada y salida
(E/S)) proporciona los recursos de
computacin bsicos.
c-Los programas de aplicacin
(Compiladores, sistemas de bases de
datos, juegos devideo y programas para
negocios) Definen la forma en que estos
recursos se emplean para resolver los
problemas de computacin de los
usuarios.
d-Usuarios
Puede haber distintos usuarios (personas,
mquinas, otros computadores) que
intentan resolver problemas diferentes;
por lo tanto, es posible que haya
diferentes programas de aplicacin.
b-El sistema operativo

Operacin de Sistema Operativo Multiusuario

El sistema operativo controla y coordina el


uso del hardware entre los diversos
programas de aplicacin de los distintos
usuarios.
Podemos ver al sistema operativo como
un asignador de recursos. Un sistema de
computacin tiene muchos recursos
(hardware y software) que pueden
requerirse para resolver un problema:
tiempo de la UCP, espacio de memoria,
espacio de almacenamiento de archivos,
dispositivos de E/S, etc. El sistema
operativo acta como el administrador de
estos recursos y los asigna a usuarios y
programas concretos segn los necesiten
las tareas de los usuarios.
Puesto que pueden surgir conflictos en las
solicitudes de recursos, el sistema
operativo debe decidir a qu solicitudes se
les asignarn para que el sistema de
computacin pueda funcionar de manera
eficiente
y
justa.
En trminos generales, no hay una
definicin
de
sistema
operativo
completamente adecuada. Los sistemas
operativos existen porque son una manera
razonable de solucionar el problema de
crear un sistema de computacin
utilizable.
Objetivos para la creacin de los sistemas
Operativos.

Transformar el complejo hardware


de una computadora en una
mquina accesible al usuario.
Lograr el mejor uso posible de los
recursos. Hacer eficiente el uso del
recurso.

15

El objetivo fundamental de los sistemas de


computacin es ejecutar losprogramas de
los usuarios y facilitar la resolucin de sus
problemas.
El hardware se construye con este fin,
pero como ste no es fcil de utilizar, se
desarrollan programas de aplicacin que
requieren ciertas operaciones comunes,
como el control de dispositivos de E/S. las
funciones comunes de control y de
asignacin de recursos se integran para
formar un solo fragmento de software:el
sistema operativo.

Desarrollo
histrico
sistemas operativos.

de

los

En un principio, solo exista el hardware


del
computador.
Los
primeros
computadores eran (fsicamente) grandes
mquinas que se operaban desde una
consola. El programador escriba un
programa
y
luego
lo
controlaba
directamente desde la consola. En primer
lugar,
el
programa
se
cargaba
manualmente en la memoria, desde los
interruptores del tablero frontal (una
instruccin en cada ocasin), desde una
cinta de papel o desde tarjetas perforadas.
Luego se pulsaban los botones adecuados
para establecer la direccin de inicio y
comenzar la ejecucin del programa.
Mientras
este
se
ejecutaba,
elprogramador-operador
lo
poda
supervisar observando las luces en la
consola, sise descubran errores, el
programador poda detener el programa,
examinar elcontenido de la memoria y los
registros
y
depurar
el
programa
16

directamente desdela consola. La salida


del programa se imprima, o se perforaba
en cintas depapel o tarjetas para su
impresin
posterior.
Sin embargo, con este procedimiento se
presentaban
ciertos
problemas.
Supongamosque un usuario se haba
registrado para usar una hora de tiempo
del computadordedicada a ejecutar el
programa que estaba desarrollando, pero
se topaba con algnerror difcil y no poda
terminar en esa hora. Si alguien ms
habareservado el siguiente bloque de
tiempo, usted deba detenerse, rescatar lo
quepudiera y volver mas tarde para
continuar. Por otra parte, si el programa
seejecutaba
sin
problemas,
podra
terminar en 35 minutos; pero como pens
quenecesitara la maquina durante ms
tiempo, se registro para usarla una hora,
ypermanecera
inactiva
durante
25
minutos.
Conforme transcurri el tiempo, se
desarrollaron
software
y
hardwareadicionales;
empezaron
a
popularizarse los lectores de tarjetas,
impresoras de lneasy cintas magnticas;
se disearon ensambladores, cargadores y
ligadores parafacilitar las tareas de
programacin, y se crearon bibliotecas de
funcionescomunes, de manera que estas
podan copiarse a un nuevo programa sin
tener queescribirlas de nuevo.
Las rutinas que efectuaban operaciones de
E/S tenan una importancia especial.Cada
nuevo dispositivo de E/S posea sus
propias caractersticas, lo querequera una
cuidadosa programacin. As mismo, para
cada uno de ellos seescriba una subrutina
especial,
la
cual
se
denominaba
Operacin de Sistema Operativo Multiusuario

manejador dedispositivos. Este sabe como


deben
de
usarse
los
buffers,
indicadores,registros, bits de control y bits
de estado para cada dispositivo. Cada tipo
dedispositivo tena su propio manejador.
Una tarea sencilla, como leer un
carcterde un lector de cinta de papel,
poda conllevar complicadas secuencias
deoperaciones
especficas
para
el
dispositivo. En lugar de tener que
escribircada vez el cdigo necesario,
bastaba usar el manejador de dispositivo
de labiblioteca.

el casodel Hardware, las generaciones han


sido marcadas por grandes avances en
loscomponentes utilizados, pasando de
vlvulas (primera generacin) atransistores
(segunda
generacin),
a
circuitos
integrados (tercera generacin),a circuitos
integrados de gran y muy gran escala
(cuarta
generacin).
Cadageneracin
Sucesiva de hardware ha ido acompaada
de reducciones substancialesen los costos,
tamao, emisin de calor y consumo de
energa, y porincrementos notables en
velocidad y capacidad.

Ms tarde aparecieron los compiladores


de FORTRAN, COBOL y otros lenguajes,
loque facilito la tarea de programacin,
pero hizo ms complejo elfuncionamiento
del computador. Por ejemplo, al preparar
la ejecucin de unprograma en FORTRAN,
el programador primero necesitaba cargar
en el computadorel compilador de
FORTRAN,
que
generalmente
se
conservaba en una cinta magntica,por lo
que haba que montar la cinta adecuada
en la unidad correspondiente. Elprograma
se lea a travs del lector de tarjetas y se
escriba en otra cinta.El compilador de
FORTRAN produca una salida en lenguaje
ensamblador,
que
luegotenia
que
ensamblarse, para esto era necesario
montar otra cinta con elensamblador, y su
salida deba enlazarse con las rutinas de
apoyo de lasbibliotecas. Finalmente, el
programa objeto, en cdigo binario,
estaba listopara ejecutarse; se cargaba en
memoria y se depuraba desde la consola
comoantes.

Generacin Cero (dcada de 1940) Los


primeros sistemas computacionales no
posean sistemas operativos. Losusuarios
tenan completo acceso al lenguaje de la
maquina. Todas lasinstrucciones eran
codificadas a mano.

Los Sistemas Operativos, al igual que el


Hardware
de
los
computadores,
hansufrido una serie de cambios
revolucionarios llamados generaciones. En
Operacin de Sistema Operativo Multiusuario

Primera Generacin (dcada de 1950)


Los sistemas operativos de los aos
cincuenta fueron diseados para hacer
masfluida la transicin entre trabajos.
Antes de que los sistemas fueran
diseados,se
perda
un
tiempo
considerable entre la terminacin de un
trabajo y elinicio del siguiente. Este fue el
comienzo
de
los
sistemas
de
procesamiento
porlotes,
donde
los
trabajos se reunan por grupos o lotes.
Cuando el trabajoestaba en ejecucin,
este tenia control total de la maquina. Al
terminar cadatrabajo, el control era
devuelto al sistema operativo, el cual
limpiaba y leae iniciaba el trabajo
siguiente.
Al inicio de los 50's esto haba mejorado
un poco con la introduccin detarjetas
17

perforadas (las cuales servan para


introducir los programas delenguajes de
mquina), puesto que ya no haba
necesidad
de
utilizar
lostableros
enchufables.
Adems el laboratorio de investigacin
General
Motors
implement
el
primersistema operativo para la IBM 701.
Los
sistemas
de
los
50's
generalmenteejecutaban una sola tarea, y
la transicin entre tareas se suavizaba
paralograr la mxima utilizacin del
sistema. Esto se conoce como sistemas
deprocesamiento por lotes de un slo
flujo, ya que los programas y los datos
eransometidos en grupos o lotes.
La introduccin del transistor a mediados
de los 50's cambi la imagenradicalmente.
Se crearon mquinas suficientemente
confiables las cuales seinstalaban en
lugares especialmente acondicionados,
aunque slo las grandesuniversidades y las
grandes corporaciones o bien las oficinas
del gobierno sepodan dar el lujo de
tenerlas.
Para poder correr un trabajo (programa),
tenan que escribirlo en papel (enFORTRAN
o en lenguaje ensamblador) y despus se
perforara en tarjetas.Enseguida se llevara
la pila de tarjetas al cuarto de
introduccin al sistemay la entregara a
uno de los operadores. Cuando la
computadora terminara eltrabajo, un
operador se dirigira a la impresora y
desprendera la salida y lallevara al cuarto
de salida, para que la recogiera el
programador.

18

Segunda Generacin (a mitad de la


dcada de 1960)
La caracterstica de los sistemas operativos
fue
el
desarrollo
de
los
sistemascompartidos
con
multiprogramacin, y los principios del
multiprocesamiento. Enlos sistemas de
multiprogramacin, varios programas de
usuario se encuentran almismo tiempo en
el almacenamiento principal, y el
procesador se cambia rpidamentede un
trabajo a otro. En los sistemas de
multiprocesamiento
se
utilizan
variosprocesadores en un solo sistema
computacional, con la finalidad de
incrementarel poder de procesamiento de
la maquina.
La independencia de dispositivos aparece
despus.
Un
usuario
que
desea
escribirdatos en una cinta en sistemas de
la
primera
generacin
tenia
que
hacerreferencia especifica a una unidad de
cinta
particular.
En
la
segunda
generacin,el programa del usuario
especificaba tan solo que un archivo iba a
ser escritoen una unidad de cinta con
cierto nmero de pistas y cierta densidad.
Se desarrollo sistemas compartidos, en la
que
los
usuarios
podan
acoplarsedirectamente con el computador
a travs de terminales. Surgieron sistemas
detiempo real, en que los computadores
fueron utilizados en el control de
procesosindustriales. Los sistemas de
tiempo real se caracterizan por proveer
unarespuesta inmediata.

Operacin de Sistema Operativo Multiusuario

Tercera Generacin (mitad de dcada


1960 a mitad dcada de 1970)
Se inicia en 1964, con la introduccin de
la familia de computadoresSistema/360 de
IBM.
Los
computadores
de
esta
generacin
fueron
diseados
comosistemas para usos generales. Casi
siempre
eran
sistemas
grandes,
voluminosos,con el propsito de serlo
todo para toda la gente. Eran sistemas de
modos
mltiples,algunos
de
ellos
soportaban simultneamente procesos
por
lotes,
tiempocompartido,
procesamiento
de
tiempo
real
y
multiprocesamiento.
Eran
grandes
ycostosos,
nunca
antes
se
haba
construido algo similar, y muchos de
losesfuerzos de desarrollo terminaron muy
por arriba del presupuesto y mucho
despusde lo que el planificador marcaba
como fecha de terminacin.
Estos
sistemas
introdujeron
mayor
complejidad
a
los
ambientes
computacionales;una complejidad a la
cual, en un principio, no estaban
acostumbrados losusuarios.

Cuarta Generacin (mitad de dcada de


1970 en adelante)
Los sistemas de la cuarta generacin
constituyen
el
estado
actual
de
latecnologa. Muchos diseadores y
usuarios se sienten aun incmodos,
despusde sus experiencias con los
sistemas operativos de la tercera
generacin.
Operacin de Sistema Operativo Multiusuario

Con la ampliacin del uso de redes de


computadores y del procesamiento en
lnealos usuarios obtienen acceso a
computadores alejados geogrficamente a
travsde varios tipos de terminales.
Los sistemas de seguridad se han
incrementado mucho ahora que la
informacinpasa a travs de varios tipos
vulnerables de lneas de comunicacin. La
clavede cifrado esta recibiendo mucha
atencin; han sido necesario codificar
losdatos personales o de gran intimidad
para que; aun si los datos son expuestos,
no sean de utilidad a nadie mas que a los
receptores adecuados.

Estructura de un sistema operativo

En esta unidad examinaremos cuatro


estructuras
distintas
que
ya
han
sidoprobadas, con el fin de tener una idea
ms extensa de cmo esta estructuradoel
sistema operativo. Veremos brevemente
algunas estructuras de diseos desistemas
operativos.
Estructura modular.
Tambin llamados sistemas monolticos.
Este tipo de organizacin es con muchola
mas comn; bien podra recibir el
subtitulo de "el granembrollo". La
estructura consiste en que no existe
estructura alguna. Elsistema operativo se
escribe
como
una
coleccin
de
procedimientos, cada uno delos cuales
puede llamar a los dems cada vez que as
lo requiera. Cuando seusa esta tcnica,
cada procedimiento del sistema tiene una
interfaz biendefinida en trminos de
19

parmetros y resultados y cada uno de


ellos es librede llamar a cualquier otro, si
este ultimo proporciona cierto clculo
tilpara el primero. Sin embargo incluso
en este tipo de sistemas es posible teneral
menos algo de estructura. Los servicios
(llamadas al sistema) que proporcionael
sistema operativo se solicitan colocando
los parmetros en lugares biendefinidos,
como en los registros o en la pila, para
despus ejecutar unainstruccin especial
de trampa de nombre "llamada al ncleo"
o"llamada al supervisor".

Esta
organizacin
sugiere
una
organizacin bsica del sistema operativo:

Esta instruccin cambia la mquina del


modo usuario al modo ncleo ytransfiere
el control al sistema operativo, lo que se
muestra en el evento (1)de la figura 1. El
sistema operativo examina entonces los
parmetros de lallamada, para determinar
cual de ellas se desea realizar, como se
muestra en elevento (2) de la figura 1. A
continuacin, el sistema operativo analiza
unatabla que contiene en la entrada k un
apuntador al procedimiento que realiza
lak-esima llamada al sistema. Esta
operacin que se muestra en (3) de la
figura1, identifica el procedimiento de
servicio, al cual se llama. Por ultimo,
lallamada al sistema termina y el control
regresa al programa del usuario.

En este modelo, para cada llamada al


sistema existe un procedimiento deservicio
que se encarga de l. Los procedimientos
utilitarios hacen cosasnecesarias para
varios procedimientos de servicio, por
ejemplo buscar los datosde los programas
del usuario. La siguiente figura muestra
este procedimiento detres capas

Figura 1. La forma en que debe hacerse


una llamada al sistema: (1) el programadel
usuario es atrado hacia el ncleo. (2) el
sistema operativo determina elnmero del
servicio solicitado. (3) el sistema operativo
localiza
y
llama
alprocedimiento
correspondiente al servicio. (4) el control
regresa al programadel usuario.

20

1.- un programa principal que llama al


procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de
servicio que llevan a cabo las llamadas
alsistema.
3.- un conjunto de procedimientos
utilitarios que ayudan al procedimiento
deservicio.

(Para ver el grfico faltante haga click en


el men superior "BajarTrabajo")

Figura 2. Un modelo de estructura simple


para un sistema monoltico.
(Para ver el grfico faltante haga click en
el men superior "BajarTrabajo")

Estructura por microkernel.


Las funciones centrales de un SO son
controladas por el ncleo (kernel)mientras
que la interfaz del usuario es controlada
por el entorno (shell). Porejemplo, la parte
Operacin de Sistema Operativo Multiusuario

ms importante del DOS es un programa


con el nombre"COMMAND.COM" Este
programa tiene dos partes. El kernel, que
semantiene en memoria en todo
momento, contiene el cdigo mquina de
bajo nivelpara manejar la administracin
de hardware para otros programas que
necesitanestos servicios, y para la segunda
parte del COMMAND.COM el shell, el cual
es elinterprete de comandos
Las funciones de bajo nivel del SO y las
funciones de interpretacin decomandos
estn separadas, de tal forma que puedes
mantener el kernel DOScorriendo, pero
utilizar una interfaz de usuario diferente.
Esto es exactamentelo que sucede cuando
cargas Microsoft Windows, el cual toma el
lugar del shell,reemplazando la interfaz de
lnea de comandos con una interfaz
grfica delusuario. Existen muchos "shells"
diferentes en el mercado, ejemplo:NDOS
(Norton DOS), XTG, PCTOOLS, o inclusive
el mismo SO MS-DOS a partir de laversin
5.0 incluy un Shell llamado DOS SHELL.

Estructura por anillos concntricos (capas).


El sistema por "capas" consiste en
organizar el sistema operativo comouna
jerarqua de capas, cada una construida
sobre la inmediata inferior. Elprimer
sistema construido de esta manera fue el
sistema
THE
(TechnischeHogeschool
Eindhoven), desarrollado en Holanda por
E. W. Dijkstra (1968) y susestudiantes.
El sistema tenia 6 capas, como se muestra
en la figura 3. La capa 0 trabaja conla
asignacin del procesador y alterna entre
los
procesos
cuando
ocurren
lasinterrupciones
o
expiran
los
cronmetros. Sobre la capa 0, el sistema
Operacin de Sistema Operativo Multiusuario

consta deprocesos secunciales, cada uno


de los cuales se podra programar sin
importarque varios procesos estuvieran
ejecutndose en el mismo procesador, la
capa
0proporcionaba
la
multiprogramacin bsica de la CPU.
La capa 1 realizaba la administracin de la
memoria. Asignaba el espacio dememoria
principal para los procesos y un recipiente
de palabras de 512K seutilizaba para
almacenar partes de los procesos
(pginas) para las que no existalugar en la
memoria principal. Por encima de la capa
1, los procesos no debanpreocuparse si
estaban en la memoria o en el recipiente;
el software de la capa1 se encargaba de
garantizar que las pginas llegaran a la
memoria cuandofueran necesarias.
La capa 2 se encargaba de la
comunicacin entre cada proceso y la
consola deloperador. Por encima de esta
capa, cada proceso tiene su propia
consola deoperador.
La capa 3 controla los dispositivos de E/S y
guarda en almacenes (buffers) losflujos de
informacin entre ellos. Por encima de la
capa 3, cada proceso puedetrabajar con
dispositivos
exactos
de
E/S
con
propiedades
adecuadas,
en
vez
dedispositivos
reales
con
muchas
peculiaridades. La capa 4 es donde
estaban losprogramas del usuario, estos
no tenan que preocuparse por el proceso,
memoria,consola o control de E/S. el
proceso operador del sistema se localizaba
en lacapa 5
Una generalizacin mas avanzada del
concepto de capas se presento en el
sistemaMULTICS. En lugar de capas,
21

MULTICS estaba organizado como una


serie de anillosconcntricos, siendo los
anillos interiores los privilegiados. Cuando
unprocedimiento de un anillo exterior
deseaba llamar a un procedimiento de
unanillo
interior,
debi
hacer
el
equivalente a una llamada al sistema

anillos estaba mas presente duranteel


tiempo de ejecucin y era reforzado por el
hardware. La ventaja delmecanismo de
anillos es su facilidad de extensin para
estructurar subsistemasdel usuario.

Mientras que el esquema de capas de THE


era en realidad un apoyo al diseo,debido
a que todas las partes del sistema estaban
ligadas entre si en un soloprograma
objeto, en MULTICS, el mecanismo de
5

El operador

Programas del usuario

Control de entrada/salida

Comunicacin operador-proceso

Administracin de la memoria y del disco

Asignacin del procesador y multiprogramacin

Figura . Estructura del sistema operativo.

22

Operacin de Sistema Operativo Multiusuario

Estructura cliente servidor


Una tendencia de los sistemas operativos
modernos es la de explotar la idea
demover el cdigo a capas superiores y
eliminar la mayor parte posible delsistema
operativo para mantener un ncleo
mnimo. El punto de vista usual esel de
implantar la mayora de las funciones del
sistema operativo en losprocesos del
usuario. Para solicitar un servicio, como la
lectura de un bloquede cierto archivo, un
proceso del usuario (denominado proceso
cliente) enva lasolicitud a un proceso
servidor, que realiza entonces el trabajo y
regresa larespuesta. En este modelo, que
se muestra en la figura 4, lo nico que
hace
elncleo
es
controlar
la
comunicacin entre los clientes y los
servidores. Alseparar el sistema operativo
en partes, cada una de ellas controla una
facetadel sistema, como el servicio a
archivos, servicios a procesos, servicio
aterminales o servicio a la memoria, cada
parte
es
pequea
y
controlable.
Ademscomo todos los servidores se
ejecutan como procesos en modo usuario
y no en modoncleo, no tienen acceso
directo al hardware. En consecuencia si
hay un erroren el servidor de archivos,
ste puede fallar, pero esto no afectar
engeneral a toda la mquina.
(Para ver el grfico faltante haga click en
el men superior "BajarTrabajo")
Figura 4. El modelo Cliente-servidor.Otra
de las ventajas del modelo cliente-servidor
es su capacidad de adaptacinpara su uso
en los sistemas distribuidos (figura 5).
Si un cliente se comunica con un servidor
mediante mensajes, el cliente nonecesita
Operacin de Sistema Operativo Multiusuario

saber si el mensaje se maneja en forma


local, en su mquina, o si seenva por
medio de una red a un servidor en una
mquina remota. En lo querespecta al
cliente, lo mismo ocurre en ambos casos:
se envi una solicitud yse recibi una
respuesta.Para ver el grfico faltante haga
click en el men superior "BajarTrabajo")
Figura 5. El modelo cliente-servidor en un
sistema distribuido.

Funciones y caractersticas de los


sistemas operativos.

Funciones de los sistemas operativos.


1.- Aceptar todos los trabajos
conservarlos hasta su finalizacin.

2.- Interpretacin de comandos: Interpreta


los
comandos
que
permiten
al
usuariocomunicarse con el ordenador.
3.- Control de recursos: Coordina y
manipula el hardware de la computadora,
comola memoria, las impresoras, las
unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S:
Organiza
los
archivos
en
diversosdispositivos de almacenamiento,
como discos flexibles, discos duros,
discoscompactos o cintas magnticas.
5.- Manejo de errores: Gestiona los errores
de hardware y la prdida de datos.
6.- Secuencia de tareas: El sistema
operativo debe administrar la manera en
quese reparten los procesos. Definir el
23

orden. (Quien
despus).

va

primero

quien

7.- Proteccin: Evitar que las acciones de


un usuario afecten el trabajo queesta
realizando otro usuario.
8.- Multiacceso: Un usuario se puede
conectar a otra mquina sin tener
queestar cerca de ella.
9.- Contabilidad de recursos: establece el
costo que se le cobra a un usuariopor
utilizar determinados recursos.
Caractersticas de los sistemas operativos.
En general, se puede decir que un Sistema
Operativo
tiene
las
siguientescaractersticas:

Conveniencia.
Un
Sistema
Operativo hace ms conveniente el
uso de una computadora.
Eficiencia. Un Sistema Operativo
permite que los recursos de la
computadora se usen de la manera
ms eficiente posible.
Habilidad para evolucionar. Un
Sistema
Operativo
deber
construirse de manera que permita
el desarrollo, prueba o introduccin
efectiva de nuevas funciones del
sistema sin interferir con el servicio.
Encargado de administrar el
hardware. El Sistema Operativo se
encarga de manejar de una mejor
manera
los
recursos
de
la
computadora en cuanto a hardware
se refiere, esto es, asignar a cada
proceso una parte del procesador
para poder compartir los recursos.

Relacionar dispositivos (gestionar a


travs del kernel). El Sistema
Operativo se debe encargar de
comunicar
a
los
dispositivos
perifricos, cuando el usuario as lo
requiera.
Organizar datos para acceso rpido
y seguro.
Manejar las comunicaciones en red.
El Sistema Operativo permite al
usuario manejar con alta facilidad
todo lo referente a la instalacin y
uso de las redes de computadoras.
Procesamiento por bytes de flujo a
travs del bus de datos.
Facilitar las entradas y salidas. Un
Sistema Operativo debe hacerle
fcil al usuario el acceso y manejo
de
los
dispositivos
de
Entrada/Salida de la computadora.

Definicin de sistema operativo


de red
Los
sistemas
operativos
siguen
evolucionando. Los sistemas operativos
distribuidos estn diseados para su uso
en un grupo de ordenadores conectados
pero independientes que comparten
recursos. En un sistema operativo
distribuido, un proceso puede ejecutarse
en cualquier ordenador de la red
(normalmente, un ordenador inactivo en
ese momento) para aumentar el
rendimiento de ese proceso.
Modalidades de trabajo de los sistemas
operativos.
Sistemas operativos por lotes.

24

Operacin de Sistema Operativo Multiusuario

La secuencia por lotes o procesamiento


por lotes en microcomputadoras, es
laejecucin de una lista de comandos del
sistema
operativo
uno
tras
otro
sinintervencin del usuario.

En los ordenadores ms grandes el


proceso de recogida de programas y
deconjuntos de datos de los usuarios, la
ejecucin de uno o unos pocos cada vez
yla entrega de los recursos a los usuarios.
Procesamiento por lotes tambinpuede
referirse al proceso de almacenar
transacciones
durante
un
cierto
lapsoantes de su envo a un archivo
maestro, por lo general una operacin
separada que se efecta durante la noche

Los sistemas operativos por lotes (batch),


en los que los programas erantratados por
grupos (lote) en ves de individualmente.
La funcin de estossistemas operativos
consista en cargar en memoria un
programa de la cinta yejecutarlo. Al final
este, se realizaba el salto a una direccin
de memoriadesde donde reasuma el
control del sistema operativo que cargaba
el siguienteprograma y lo ejecutaba. De
esta manera el tiempo entre un trabajo y
el
otrodisminua
considerablemente.
(Para ver el grfico faltante haga click en
el men superior "BajarTrabajo")

Requiere que el programa, datos y


rdenes al sistema sean remitidos
todos juntos en forma de lote.
Permiten
poca
o
ninguna
interaccin usuario/programa en
ejecucin.
Mayor potencial de utilizacin de
recursos que procesamiento serial
simple en sistemas multiusuarios.
No conveniente para desarrollo de
programas por bajo tiempo de
retorno y depuracin fuera de lnea.
Conveniente para programas de
largos tiempos de ejecucin (Ej.,
anlisis estadsticos, nminas de
personal, etc.)
Se
encuentra
en
muchos
computadores
personales
combinados con procesamiento
serial.
Planificacin
del
procesador
sencilla, tpicamente procesados en
orden de llegada.
Planificacin de memoria sencilla,
generalmente se divide en dos:
parte
residente
del
S.O.
y
programas transitorios.
No requieren gestin crtica de
dispositivos en el tiempo.
Suelen
proporcionar
gestin
sencilla de manejo de archivos: se
requiere poca proteccin y ningn
control de concurrencia para el
acceso.

Sistema de procesamiento por lotes


Algunas otras caractersticas con que
cuentan los Sistemas Operativos por
lotesson:

Sistemas
operativos
compartido.

de

tiempo

El tiempo compartido en ordenadores o


computadoras consiste en el uso de
unsistema por ms de una persona al
Operacin de Sistema Operativo Multiusuario

25

mismo tiempo. El tiempo compartido


ejecutaprogramas separados de forma
concurrente, intercambiando porciones de
tiempoasignadas
a
cada
programa
(usuario). En este aspecto, es similar a la
capacidadde multitareas que es comn en
la mayora de los microordenadores o
lasmicrocomputadoras. Sin embargo el
tiempo
compartido
se
asocia
generalmente conel acceso de varios
usuarios a computadoras ms grandes y a
organizaciones deservicios, mientras que
la multitarea relacionada con las
microcomputadorasimplica la realizacin
de mltiples tareas por un solo usuario.
Los principales recursos del sistema, el
procesador, la memoria, dispositivos
deE/S, son continuamente utilizados entre
los diversos usuarios, dando a cadausuario
la ilusin de que tiene el sistema dedicado
para
s
mismo.
Esto
traecomo
consecuencia una gran carga de trabajo al
Sistema Operativo, principalmenteen la
administracin de memoria principal y
secundaria.
Caractersticas de los Sistemas Operativos
de tiempo compartido:

26

Populares
representantes
de
sistemas
multiprogramados
multiusuario, Ej.: sistemas de
diseo asistido por computador,
procesamiento de texto, etc.
Dan la ilusin de que cada usuario
tiene una mquina para s.
La mayora utilizan algoritmo de
reparto circular.
Los programas se ejecutan con
prioridad
rotatoria
que
se
incrementa con la espera y

disminuye despus de concedido el


servicio.
Evitan monopolizacin del sistema
asignando tiempos de procesador
(time slot).
Gestin de memoria: proporciona
proteccin a programas residentes.
Gestin
de
archivo: debe
proporcionar proteccin y control
de acceso debido a que pueden
existir mltiples usuarios accesando
un mismo archivo.

Sistemas operativos de tiempo real.


Un sistema operativo en tiempo real
procesa
las
instrucciones
recibidas
alinstante, y una vez que han sido
procesadas muestra el resultado. Este
tipotiene relacin con los sistemas
operativos monousuarios, ya que existe un
solooperador y no necesita compartir el
procesador entre varias solicitudes.
Su caracterstica principal
es dar
respuestas rpidas; por ejemplo en un
casode peligro se necesitaran respuestas
inmediatas para evitar una catstrofe.
Los Sistemas Operativos de tiempo real,
cuentan con las siguientes caractersticas:

Se dan en entornos en donde


deben ser aceptados y procesados
gran cantidad de sucesos, la
mayora
externos
al
sistema
computacional, en breve tiempo o
dentro de ciertos plazos.
Se utilizan en control industrial,
conmutacin telefnica, control de
vuelo, simulaciones en tiempo real.,
aplicaciones militares, etc.
Operacin de Sistema Operativo Multiusuario

Su objetivo es proporcionar rpidos


tiempos de respuesta.
Procesa rfagas de miles de
interrupciones por segundo sin
perder un solo suceso.
Un proceso se activa tras ocurrencia
de suceso, mediante interrupcin.
Un proceso de mayor prioridad
expropia recursos.
Por tanto generalmente se utiliza
planificacin expropiativa basada
en prioridades.
Gestin
de
memoria
menos
exigente que tiempo compartido,
usualmente procesos son residentes
permanentes en memoria.
Poblacin de procesos esttica en
gran medida.
Poco movimiento de programas
entre almacenamiento secundario y
memoria.
La gestin de archivos se orienta
ms a velocidad de acceso que a
utilizacin eficiente del recurso.

Sistemas operativos de red.


La principal funcin de un sistema
operativo de red es ofrecer un
mecanismopara transferir archivos de una
mquina a otra. En este entorno, cada
instalacinmantiene su propio sistema de
archivos local y si un usuario de la
instalacinA quiere acceder a un archivo
en la instalacin B, hay que copiar
explcitamenteel
archivo
de
una
instalacin a otra.
Internet proporciona un mecanismo para
estas transferencias, a travs delprograma
Operacin de Sistema Operativo Multiusuario

protocolo de transferencias de archivos


FTP (File Transfer Protocol).
Suponga que un usuario quiere copiar un
archivo A1, que reside en la instalacinB, a
un archivo A2 en la instalacin local A.
Primero, el usuario debe invocarel
programa FTP, el cual solicita al usuario la
informacin siguiente:
a) El nombre de la instalacin a partir de
la cual se efectuar latransferencia del
archivo (es decir la instalacin
b) La informacin de acceso, que verifica
que el usuario tiene los privilegiosde
acceso apropiados en la instalacin
B Una vez efectuada esta comprobacin,
el usuario puede copiar el archivo A1 de
Ba A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicacin del archivo
no es transparente para el usuario; tiene
que saber exactamente donde esta cada
archivo.
Adems
los
archivos
no
secomparten realmente, porque un
usuario solo puede copiar un archivo de
unainstalacin a otra. Por lo tanto pueden
existir varias copias del mismoarchivo, lo
que representa un desperdicio de espacio.
As mismo, si semodifican, estas copias no
sern consistentes.
Los Sistemas Operativos de red son
aquellos sistemas que mantienen a dos o
mscomputadoras unidas a travs de
algn medio de comunicacin (fsico o
no), con el objetivo primordial de poder
compartir los diferentes recursos y la
informacin del sistema.

27

El primer Sistema Operativo de red estaba


enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente
a procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red ms
ampliamente
usados
son:
Novell
Netware,Personal Netware, LAN Manager,
Windows NT Server, UNIX, LANtastic.

Entre los diferentes Sistemas Operativos


distribuidos
que
existen
tenemos
lossiguientes: Sprite, Solaris-MC, Mach,
Chorus, Spring, Amoeba, Taos, etc.
Caractersticas de los Sistemas Operativos
distribuidos:

Sistemas operativos distribuidos.

En un sistema operativo distribuido los


usuarios
pueden
acceder
a
recursosremotos de la misma manera en
que lo hacen para los recursos locales. La
migracinde datos y procesos de una
instalacin a otra queda bajo el control
del
sistemaoperativo
distribuido.
Permiten distribuir trabajos, tareas o
procesos,
entre
un
conjunto
deprocesadores. Puede ser que este
conjunto de procesadores est en un
equipo oen diferentes, en este caso es
transparente para el usuario. Existen
dosesquemas bsicos de stos. Un sistema
fuertemente
acoplado
es
aquel
quecomparte la memoria y un reloj global,
cuyos tiempos de acceso son similarespara
todos los procesadores. En un sistema
dbilmente acoplado los procesadoresno
comparten ni memoria ni reloj, ya que
cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser


muy
confiables,
ya
que
si
un
componentedel sistema se descompone
otro componente debe de ser capaz de
reemplazarlo.
28

Coleccin de sistemas autnomos


capaces
de
comunicacin
y
cooperacin
mediante
interconexiones
hardware
y
software.
Proporciona
abstraccin
de
mquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios
para la comparticin global de
recursos.

Servicios aadidos: denominacin global,


sistemas
de
archivos
distribuidos,
facilidades para distribucin de clculos (a
travs de comunicacin deprocesos
internodos, llamadas a procedimientos
remotos, etc.).

Sistemas operativos multiprocesadores.


En los sistemas multiprocesador, los
procesadores comparten la memoria y
elreloj. Se incrementa la capacidad de
procesamiento
y
la
confiabilidad,
soneconmicos.

Multiprocesamiento simtrico: Cada


procesador ejecuta una copia del
sistema operativo.
Multiprocesamiento
asimtrico:
Cada procesador tiene asignado
Operacin de Sistema Operativo Multiusuario

una tarea especfica, existe un


procesador master que asigna
tareas a los procesadores esclavos.
Multiproceso: Las computadoras que
tienen
ms
de
un
CPU
son
llamadasmultiproceso.
Un
sistema
operativo multiproceso coordina las
operaciones
de
lascomputadoras
multiprocesadores. Ya que cada CPU en
una computadora demultiproceso puede
estar ejecutando una instruccin, el otro
procesador quedaliberado para procesar
otras instrucciones simultneamente.
Al usar una computadora con capacidades
de
multiproceso
incrementamos
suvelocidad de respuesta y procesos. Casi
todas
las
computadoras
que
tienencapacidad de multiproceso ofrecen
una gran ventaja.
Los
primeros
Sistemas
Operativos
Multiproceso realizaban lo que se conoce
comoMultiproceso asimtrico. Una CPU
principal retiene el control global de
lacomputadora, as como el de los otros
procesadores. Esto fue un primer
pasohacia el multiproceso pero no fue la
direccin ideal a seguir ya que la
CPUprincipal poda convertirse en un
cuello de botella.
Multiproceso simtrico. En un sistema
multiproceso simtrico, no existe unaCPU
controladora nica. La barrera a vencer al
implementar el multiproceso simtricoes
que los SO tienen que ser rediseados o
diseados desde el principio paratrabajar
en un ambiente multiproceso. Las
extensiones
de
UNIX,
que
soportanmultiproceso asimtrico ya estn
disponibles y las extensiones simtricas
Operacin de Sistema Operativo Multiusuario

seestn haciendo disponibles. Windows


NT de Microsoft soporta multiproceso
simtrico.

Definicin de multitartea

Todos los Sistemas Operativos modernos


son multitarea y pueden ejecutar varios
procesos simultneamente. En la mayora
de los ordenadores slo hay una UCP; un
Sistema Operativo multitarea crea la
ilusin de que varios procesos se ejecutan
simultneamente en la UCP. El mecanismo
que se emplea ms a menudo para lograr
esta ilusin es la multitarea por
segmentacin de tiempos, en la que cada
proceso se ejecuta individualmente
durante
un
periodo
de
tiempo
determinado. Si el proceso no finaliza en
el tiempo asignado, se suspende y se
ejecuta otro proceso. Este intercambio de
procesos se denomina conmutacin de
contexto. El sistema operativo se encarga
de controlar el estado de los procesos
suspendidos. Tambin cuenta con un
mecanismo llamado planificador que
determina el siguiente proceso que debe
ejecutarse. El planificador ejecuta los
procesos basndose en su prioridad para
minimizar el retraso percibido por el
usuario. Los procesos parecen efectuarse
simultneamente por la alta velocidad del
cambio de contexto.

Tipos de Sistemas operativos y


proveedores ms comunes.

MS-DOS
MS-DOS, acrnimo de Microsoft Disk
Operating System (sistema operativo de
29

disco de Microsoft). Como otros sistemas


operativos, el sistema MS-DOS supervisa
las operaciones de entrada y salida del
disco y controla el adaptador de vdeo, el
teclado y muchas funciones internas
relacionadas con la ejecucin de
programas y el mantenimiento de
archivos. El MS-DOS es un sistema
operativo monotarea y monousuario con
una interfaz de lnea de comandos.

Windows NT Server
Windows NT Server es un sistema
operativo para servidores, ampliable e
independiente de la plataforma. Puede
ejecutarse en sistemas basados en
procesadores Intel x86, RISC y DEC Alpha,
ofreciendo al usuario mayor libertad a la
hora de elegir sus sistemas informticos.
Es ampliable a sistemas de multiproceso
simtrico, lo que permite incorporar
procesadores adicionales cuando se desee
aumentar el rendimiento.
Internamente posee una arquitectura de
32 bits. Su modelo de memoria lineal de
32 bits elimina los segmentos de memoria
de 64 KB y la barrera de 640 KB de MSDOS.
Posee
mltiples
threads
(subprocesos) de ejecucin, lo que permite
utilizar aplicaciones ms potentes. La
proteccin de la memoria garantiza la
estabilidad mediante la asignacin de
reas de memoria independientes para el
sistema operativo y para las aplicaciones,
con el fin de impedir la alteracin de los
datos. La capacidad de multitarea de
asignacin prioritaria permite al sistema
operativo asignar tiempo de proceso a
30

cada aplicacin de forma eficaz.


Windows NT Server incluye, asimismo,
diversas funciones de red, que se
describen brevemente en las siguientes
secciones y con ms detalle en captulos
posteriores de este manual.

Windows 98
Microsoft Windows 98 hace que el
ordenador funcione mejor integrando
Internet
y
ofreciendo
un
mejor
rendimiento del sistema y un sistema de
diagnsticos y mantenimiento ms
sencillo. Windows 98 es ms divertido
gracias a su soporte de las ltimas
tecnologas de grficos, sonido y
multimedia, su capacidad para aadir y
quitar perifricos, y la convergencia de la
televisin y el ordenador en el hogar.
Este nuevo sistema operativo se basa en
las grandes novedades introducidas por
Windows 95. Al mismo tiempo, Windows
98 mantiene la compatibilidad con otras
aplicaciones y tecnologas basadas en
versiones
anteriores
de
Windows.
Las mejoras introducidas en Windows 98
...

Te ofrecern la mejor forma de


Explorar Internet
Te acercarn al Mundo de los
Ordenadores
Te harn los Ordenadores ms
Entretenidos
Te
permitirn
descubrir
la
Capacidad del PC y los Perifricos

Las nuevas caractersticas de Microsoft


Windows 98 ofrecen sacar mucho ms
Operacin de Sistema Operativo Multiusuario

partido del PC. Los programas se ejecutan


ms rpido, pudiendo ganar una media de
un 25% o ms espacio en disco, Internet
pasa a ser una parte muy importante en el
ordenador, dando un paso de gigante en
la entrega de contenido multimedia de
alta calidad.

Windows XP
La nueva versin de Windows supone un
cambio importante respecto a la versin
anterior.
Desde que apareci Windows95 las
sucesivas versiones han sido una evolucin
de la original, sin embargo en esta ocasin
se ha producido un cambio de mayor
envergadura ya que se ha cambiado el
ncleo o Kernel del sistema operativo.
Aunque de cara al usuario no se noten
cambios radicales, se puede decir que
WindowsXP no es solo una versin ms de
Windows sino que supone practicamente
un nuevo sistema.
Hasta ahora Microsoft dispona de dos
sistemas operativos diferentes, para el
entorno personal o domstico tena
Windows98 y para el entorno profesional (
o de negocios) el Windows NT/2000.
Con
WidowsXP
se
produce
una
convergencia entre ambas versiones ya
que se ha partido del ncleo del sistema
de Windows 2000 para crear WindowsXP
y a partir de ah se han realizado algunos
retoques para diferenciar dos versiones de
WindowsXP, una para el mbito personal
llamada WindowsXP Home Edition, y otra
Operacin de Sistema Operativo Multiusuario

para el mbito profesional denominada


WindowsXP Professional.
El principal beneficio de esta estrategia
para los usuarios domsticos va a ser que
WindowsXP ha adquirido la robusted y
estabilidad de WindowsNT/2000, esto
debe suponer que WindowsXP se quedar
menos veces bloqueado, habr menos
ocasiones en la que tengamos que
reiniciar el sistema como consecuencia de
un error.
La mejora para los usuarios profesionales
se debe a que WindowsXP tiene mayor
compatibilidad con el hardware de la que
gozaba WindowsNT/2000.
WindowsXP dispone de un nuevo sistema
de usuarios completamente diferente
respecto a Windows98. Este nuevo
sistema ha sido heredado de Windows
NT/2000.
Ahora se pueden definir varios usuarios
con perfiles independientes. Esto quiere
decir que cada usuario puede tener
permisos diferentes que le permitirn
realizar unas determinadas tareas. Cada
usuario
tendr
una
carpeta
Mis
documentos propia que podr estar
protegida por contrasea, un men de
inicio diferente. Tambin se dispone de
una carpeta a la que tienen acceso todos
los usuarios y donde se pueden colocar los
documentos que se quieren compartir con
los dems usuarios.
Por ejemplo, se puede definir un usuario
tipo Padre, que tenga acceso a todo
Internet y usuario tipo Hijo que tenga
prohibido el acceso a determinadas
pginas violentas o de sexo.
31

Para pasar de un usuario a otro no es


necesario apagar el ordenador, ni siquiera
que un usuario cierre lo que estaba
haciendo, simplemente hay que iniciar
una nueva sesin con otro usuario, ms
tarde podremos volver a la sesin del
primer usuario que permacer en el
mismo estado que la dejo. El sistema se
encarga de manejar a los distintos
usuarios activos y sin interferencias.

Windows 95
Con este sistema operativo Microsoft se
ha protesto superar algunas de las
limitaciones del MS-DOS. Parte del cdigo
de Windows 95 esta implementado en 16
bits y parte en 32 bits. Uno de los motivos
por los cuales se ha hecho as, ha sido
para conservar su compatibilidad. Con
Windows
95
podemos
ejecutar
aplicaciones de Windows 3.1 3.1 I, MSDOS y obviamente las nuevas aplicaciones
diseadas especficamente para este
sistema operativo.
Entre las novedades que ofreceWindows
95 cabe destacar el sistema de ficheros de
32 bits, gracias al cual rodemos emplear
nombres de ficheros de hasta 256
caracteres (VFAT y CDFS), debido a que se
trata de un sistema operativo de modo
protegido, desaparece la barrera de los
640K, hemos de tener presente que
aunque la mayor parte de Windows 3.1 es
un sistema de modo protegido, este se
est ejecutando sobre un sistema
operativo que trabaja en modo real.

32

La interfaz de Windows 95 tambin ha


sido mejorada. El primer gran cambio que
veremos al empezar a trabajar ser la
desaparicin
del
Administrador
de
Programas. Ahora tenemos un escritorio al
estilo del Sistema 7 de los Macintosh o
NeXTStep.
Viene a sustituir al sistema operativo DOS
y a su predecesor Windows 3.1. Frente al
DOS tiene tres ventajas importantes:
En primer lugar toda la informacin
presentada al usuario es grfica, mientras
que DOS trabaja con comandos en modo
texto formados por rdenes difciles de
recordar.
En segundo lugar, Windows 95 define una
forma homognea de utilizar los recursos
de la computadora, lo cual permite
compartir datos entre las distintas
aplicaciones, as como utilizar con
facilidad los elementos hardware ya
instalados.
En tercer lugar Windows 95 es un sistema
operativo que permite ejecutar vanas
aplicaciones a la vez (multitarea), mientras
que en DOS slo se puede ejecutar un
programa en cada momento.
Cmo funciona Windows 95?
Windows 95 es un sistema operativo, y
como tal una de las principales funciones
es facilitar la comunicacin entre el
usuario y el ordenador, simplificando la
utilizacin de los programas informticos.
En toda comunicacin entre dos partes,
tiene que haber mtodos para que cada
una de estas partes pueda emitir la
Operacin de Sistema Operativo Multiusuario

informacin.
En
el
caso
de
la
comunicacin entre el usuario y Windows
95 se utilizan las ventanas para que
Windows enve informacin al usuario y
los controles para que el usuario enve
informacin a Windows. Una ventana
muestra al usuario informacin de
cualquier tipo, ya sea texto o grfico,
mientras que un control es un elemento
incluido en una ventana que permite al
usuario realizar operaciones, por ejemplo,
un botn para seleccionar algo, una lista
de valores, un men con diferentes
opciones, una caja para introducir texto,
etc.

SISTEMAS
OPERATIVOS
MULTIPROGRAMACIN

DE

El
sistema
operativo
de
multiprogramacin debe de ser diseado
para un delicado truco de juego de
manos. Debe asignar recursos tales como
ciclos CPU y memoria, adems de asignar
prioridades para que cada programa
reciba la atencin adecuada. A los
trabajos urgentes se les debe conceder
ms grandes y ms frecuentes periodos de
tiempo de CPU sin descuidar los trabajos
menores. Tambin los trabajos difieren en
sus requerimientos. Los programas de
procesamiento numrico tienden a ser
CPU intensivos, mientras que muchas
aplicaciones de negocios son mucha E/S,
con relativamente poca computacin. El
sistema operativo necesita manejar
combinaciones de tales trabajos lo ms
eficiente posible.

Operacin de Sistema Operativo Multiusuario

Un programa que espera la entrada del


usuario, por ejemplo puede suspenderse,
independientemente de la prioridad.
Recuerde que entre cada uno de sus
teclazos tentativos, su CPU es capaz de
realizar muchos millones de ciclos tiles.
Al momento de ejecutar un programa, se
debe tener copia de todo o parte de su
cdigo objeto (tambin conocido como
cdigo de mquina, codigo binario o
imagen binaria ejecutable), cargada en el
RAM (Memoria de Acceso Aleatorio,
tambin
conocida
como
memoria
primaria), de tal manera que el CPU pueda
acceder a las instrucciones del programa.
Por esta razn el RAM es un recurso
importante que el sistema operativo
necesita asignar y manejar con economa.
En cualquier momento particular, su RAM
conservar no solo el cdigo objeto del
programa anterior, sino tambin un
cdigo bjeto para un cierto nmero de
programas suspendidos, junto con varias
reas de datos, conservando los resultados
intermedios de estos programas. La mayor
parte sino del todo el Kernel del sistema
operativo, tambin debe recidir en el
RAM. Hasta donde le concierne al CPU, el
Kernel es tan solo un conjunto de
programas que se necesita ejecutar sobre
demanda. Puesto que l Kernel se hace
cargo de ellos, por supuesto no solo es
otro programa: mantiene sus propias
prioridades para evitar que los programas
del usuario lo quiten del escenario.
Cuntos programas pueden coexistir en la
memoria primaria depende de la cantidad
de RAM y del tamao del cdigo objeto.
Todava otra molestia para el pobre
sistema operativo!

33

Algunos programas suspendidos y sus


datos (o las partes seleccionadas de stos)
se pueden extraer del RAM hacia el disco,
a fin de hacer espacio para el siguiente
programa. Despus, cuando el sistema
operativo los selecciona para ejecucin,
los programas extrados se pueden
transferir desde el disco hasta el RAM. Se
ha dedicado mucha investigacin al arte
de planificar y extraer, puesto que el
efecto inmediato de la extraccin excesiva
es la degradacin de la ejecucin. Las
operaciones de I-O del disco son
relativamente mucho ms lentas que la
escfritura y lectura del RAM. Y recuerde
que el CPU mismo se ve involucrado en la
actividad de extraccin un caso extremo
conocido como trashing puede llevar al
sistema a un paso de tortuga: as el
sistema se ocupa tanto con la extraccin
hacia adentro y hacia fuera que poco o
ningn procesamiento productivo se
realiza.
Los detalles internos de esta gimnasia se
ocutan al usuario comn, pero se tiene un
sentimiento general que genera alguna
simpata por la genta que disea a los
sistemas operativos. Tambin en trminos
prcticos explica el viejo adagio que usted
nunca tiene demasiado RAM.
La situacin se complica, adems por la
necesidad de recordar cules programas
estn suspendidos, cundo y por qu
razn. El sistema operativo necesita
almacenar el contexto de cada programa
suspendido, de tal manera que la
ejecucin se pueda continuar en el punto
correcto, con los mismos valores
prevalecientes en el momento de la
34

suspensin. Los contextos en realidad son


fotografas del contador del programa y
los registros del CPU; el sistema operativo
guarda los contextos y los restaura
regularemente, en la medida en que sec
conmutan los programas.

1.1.2 CARACTERISTICAS DE UNIX.

Entorno de UNIX
Antecedentes

El Sistema Operativo Unix fu creado a


finales de la dcada de los 60 sobre la
base de varios trabajos realizados
conjuntamente por el MIT y Laboratorios
BELL. Dichos trabajos (proyecto MULTICS)
iban encaminados a la creacin de un
macrosistema de computacin que diese
servicio a miles de usuarios. Si bien el
proyecto fracas, posiblemente por
intentar abarcar demasiado contando con
unos elementos hardware limitados en sa
poca , influy; decisivamente sobre la
evolucin de los sistemas informticos
posteriores.
Un antiguo
proyecto (Ken
su
cuenta
monousuario
principal de
jerrquico.

componente de dicho
Thompson) desarroll por
un
sistema
operativo
con
la
caracterstica
un sistema de archivos

El sistema encontr muchos entusiastas y


se hizo portable al reescribirse casi
ntegramente en lenguaje C , y se
suministr en cdi
go fuente a las universidades como objeto
de formacin. As, la universidad de
California en Berkeley retoc dicho
Operacin de Sistema Operativo Multiusuario

sistema
(fundamentalmente,
comunicaciones y diversas utilidades como
el editor vi) y liber lo que luego sera
el BSD , uno de los dos dialectos
principales del UNIX.

Organismos de estandarizacin

Actualmente, existen dos corrientes las


cuales cada vez poseen ms elementos
comunes : la BSD 4.2 y ls System V R 4.
El S.O. Unix se encarga de controlar y
asignar los recursos fsicos del ordenador
(hardware ) y de planificar tareas .
Podemos establecer tres elementos
principales dentro de ste S.O. :
El ncleo del sistema operativo ( kernel ) ,
el escaln ms bajo que realiza tareas
tales como el acceso a los dispositivos
(terminales, discos, cintas..).
El intrprete de comandos ( shell ) es el
interfase bsico que ofrece UNIX de cara
al usuario. Adems de ejecutar otros
programas , posee un lenguaje propio as
como
numerosas
caractersticas
adicionales que se estudiarn en un
captulo posterior.
Utilidades de fabrica ; normalmente se
trata de programas ejecutables que vienen
junto con el Sistema Operativo; algunas
de ellas son:

Operacin de Sistema Operativo Multiusuario

a)

Compiladores : C , assembler y en
algunos casos Fortran 77 y C++.
b) Herramientas de edicin : Editores
(vi,ex) , formateadores (troff) , filtros
...
c) Soporte
de
comunicaciones
:
Herramientas basadas en TCP/IP
(telnet,ftp ...)
d) Programas de Administracin del
Sistema (sysadm , sa , va ..... )
e) Utilidades diversas y juegos (ste
ltimo se suele instalar aparte).
Creado por un equipo del Laboratorio Bell
de la AT&T a principios de los 70: Ken
Thompson y Dennis Ritchie basado en el
proyecto MULTICS, que haba quedado
abandonado, despus de una primera
versin, se reescribi en un lenguaje de
alto nivel creado para el proyecto (C). En
1976 se difunden gratuitamente los
fuentes de UNIX por las universidades de
EUA (Version 6) 1978: Versin 7 1978-8X:
Versin de Berkeley (BSD) - memoria
virtual, utilidades, soporte de redes (TCP,
sockets) 1983: System V 198X: formacin
de consorcios para fijacin de estndares:
XPG, OSF, etc. Normas POSIX. IBM y DEC
empiezan a emplear UNIX 199X:

35

ESQUEMA DE UN SISTEMA UNIX

Interfases

o
Kernel
En el corazn de UNIX se encuentra un
programa de mente maestra llamdo
Kernel. El Kernel UNIX interctua con su
computdora y los perifricos (disquetes,
impresoras , terminales, y semejantes), al
asignar recursos y planificar procesos
detrs de la escena. Cuando UNIX se
transfiere desde un sistema otro-, esto es
se reescribe para correr sobre una
computadora diferente-, el kernel se
modifica para enfrentarse con el nuevo
CPU. A diferencia de la PC-DOS, la cual
est
ligada
una
familia
de
microprocesadores Intel, Unix puede
correr sobre cualquier computadora que
tenga el kernel apropiado. El mismo
programa Kernel est escrito, en su mayor
parte en un lenguaje de programacin de
alto nivel llamado C. Esto reduce el
esfuerzo que se necesita para acceder
UNIX a otros sistemas y explica la afamada
ubicuidad de UNIX.
36

En trminos simples, el kernel lo protege


del hardware de la computadora y el Shell
lo proteje del Kernel. S, se puede tambin
buscar proteccin del Shell. Existen
muchas aplicaciones UNIX e interfaces del
usuario que ocultan el shell y su indicador,
adems de ofrecerles mens, ventaanas y
otros adems de ofrecerle dispositivos
agradables, con los cuales puede
seleccionar comandos y
correr sus
trabajos.
o
FileSystem
Los archivos de computadora se pueden
pensar simplemente como un lugar para
almacenar datos y programas para su
disco. Los archivos de disco tambin
tienen tabuladores indicadores conocidos
como nombres de archivo. Los grupos de
archivos se almacenan en directorios, los
cuales tambin tienen nombres. Unix
utiliza estos nombres de directorio y
archivo cuando se localiza un archivo y se
accesa su contenido.
Operacin de Sistema Operativo Multiusuario

Un servicio mayor que ofrece UNIX (y la


mayora de otros sistemas operativos) es
manejar archivos por nombre.

archivo objetivo, obtiene un mensaje


filename:not found.
o

Shell

El programa de aplicacin quiz. desee


acceder un archivo de datos para
examinar o actualizar su contenido. Los
datos o archivos de texto por lo general
contienen
caracteres
visibles
e
imprimibles, codificados en formato
ASCII.comandos que exibirn e imprimirn
el contenido de un archivo tipo texto, par
leer un secuencia de caracteres desde el
disco. Todava hay mas comandos que le
permiten escribir en el disco para crear y
modificar archivos tipo texto. Puede
copiar y renombrar archivos o agregar un
archivo a otro. Tambi.en puede, borrar o
eliminr todos los archivos con suma
facilidad.

FUNCIONES DEL INTRPRETE DE


RDENES

Los sistemas multiusuarios necesitan


ofrecer salvaguardias para impedir que
otros usuarios lean y/o borren sus archivos
sin la debida autorizacin. Unix tiene un
esquema elaborado de propietarios de
archivos y permisos, a travs de los cuales
los usuarios y los grupos de usuarios
puedan proteger sus archivos. Cada
archivo en el sistema lleva permisos de
lectura, escritura y ejecucin en los que se
dictamina quin puede hacer qu con un
archivo.

Soporte de comunicaciones: Herramientas


basadas en TCP/IP (telnet,ftp ...)

Los archivos binarios tiene un cdigo de


programa, Unix necesita localizarlo por su
nombre. Cuando introduce el comando
date, por ejemplo, UNIX busca un archivo
de programa llamado date; busca en
varios lugares y si falla en encontrar el

Operacin de Sistema Operativo Multiusuario

El intrprete de comandos ( shell ) es el


interfase bsico que ofrece UNIX de cara
al usuario. Adems de ejecutar otros
programas, posee un lenguaje propio as
como numerosas caractersticas.
Utilidades de fbrica; normalmente se
trata de programas ejecutables que vienen
junto con el Sistema Operativo; algunas
de ellas son:
Compiladores: C, assembler y en algunos
casos Fortran 77 y C++.
Herramientas de edicin: Editores (vi,ex),
formateadores (troff), filtros ...

Programas de Administracin del Sistema


(sysadm, sa, va..... )
Utilidades diversas y juegos ( ste ltimo
se suele instalar aparte ).
Modos de invocar una orden
Lo primero que la mayor parte de los
usuarios aprenden del editor VI es que
cuenta con dos modos: comando e
insertar. El modo comando permite
introducir rdenes para manipular el
texto. Normalmente stas rdenes no
tienen ms que uno o dos caracteres,
pudiendo as introducirse con pocas
pulsaciones. El modo insertar hace que

37

todo lo que se pulse en el teclado se


incorpore al archivo.
VI se inicia en el modo comando. Hay
varias formas de pasar al modo insertar.
La ms comn consiste en teclear a o i.
Ms abajo se describen ambas rdenes.
Una vez se encuentre en el modo insertar,
podr salir de l pulsando la tecla escape
(si su terminal no tiene esa tecla, debera
funcionar ^[ ). Puede pulsar escape dos
veces seguidas y de esa manera no habr
duda de que se encuentra en modo
comando. Pulsar escape mientras se
encuentra en modo comando no hace que
el editor salga de dicho modo; sonar un
pitido para confirmarle que se encuentra
ya en ese modo.
En el modo comando las rdenes siguen
normalmente el siguiente esquema (entre
corchetes
aparecen
las
variables
optativas):[cifra] comando [dnde]
La mayor parte de las instrucciones
constan de un solo carcter, incluidas
aquellas en las que es preciso pulsar la
tecla Ctrl. En el siguiente apartado
describiremos las instrucciones que ms
suelen emplearse en el editor VI.
La cifra es cualquier nmero que comience
por un carcter entre 1 y 9. Por ejemplo,
la instruccin x borra el carcter que se
encuentra en el lugar del cursor. Si, dentro
del modo comando, se teclea 23x, se
borrarn 23 caracteres.

CONTEXTUALIZACIN
Competencia de informacin
Buscar
fuentes de informacin
documental.

Investigacin documental
Investigar en Internet o revistas
especializadas materiales tcnicos de
sistemas operativos multiusuario
existentes en el mercado que
marquen sus diferencias.
Competencia analtica
Promover la reflexin sobre la oferta
existente de soluciones informtica en
el mercado mexicano.

Comparacin de resultados
con otros compaeros
Comparar
que
avances
tecnolgicos se han dado a travs
del tiempo con el uso de los
sistemas operativos multiusuario.
Comparar el trabajo individual
contra el trabajo en equipo que se
puede
realizar
en
ambientes
multiusuario.

Algunas rdenes utilizan un parmetro


optativo -dnde-, en el que puede
especificarse cuntas lneas o a qu parte
del documento afecta la orden. El
parmetro dnde puede ser tambin
cualquier orden que mueva el cursor.
38

Operacin de Sistema Operativo Multiusuario

RESULTADO DE APRENDIZAJE
1.2 Abrir sesiones de UNIX por medio de comandos y archivos.

1.2.1 INICIO DE UNA SESION UNIX.


Para acceder al sistema, ste presenta el
mensaje de login, con el que quiere
significar algo as como introduce el
usuario con el que quieres abrir una
sesin.
UNIX(r) System V Release 4.2

Por ejemplo, si suponemos que tenemos 2


archivos que se llaman ventas.doc y
pruebas; para mostrar el directorio del
disco en formato largo:
%ls -l <enter>
-rwxrw-rw- 1 jimenez users
17:42 ventas.doc

138 Apr 5

-rw-rw-rw- 1 jimenez users


19:33 pruebas

98

Apr 5

Ejecucin de las rdenes


cp

En Unix, entre los comandos ms comunes


deben ser escritos como se indican
(generalmente con letras minsculas):

Si necesita copiar archivos, puede utilizar


el comando el siguiente para copiar uno o
ms archivos:

ls

cp archivo1 archivo2

Si desea saber qu archivos hay en el


disco, puede mostrar el directorio del
disco utilizando el siguiente comando:

El comando anterior hace una copia del


archivo1 y lo llama archivo2. Supngase
que necesita una copia de un archivo
llamado ventas.doc y que desea que su
nueva copia se llame mensual.inf en el
mismo directorio:

% ls [opciones] </directorio>
donde las opciones pueden ser:
-l Listado en formato largo, el cual
proporciona la siguiente informacin:
modo de proteccin, dueo, grupo,
tamao en bytes, fecha de la ltima
modificacin y nombre.
-d Lista solamente
directorio.

el

nombre

del

<return> Lista nicamente los nombres


de los archivos y directorios.
Operacin de Sistema Operativo Multiusuario

%cp ventas.doc mensual.inf


mv
Si desea cambiar el nombre de un archivo
o cambiar el archivo a otro directorio,
puede utilizar el siguiente comando:
mv archivo1 archivo2

39

Cambia el nombre del archivo1 por el del


archivo2. Por ejemplo, suponga que tiene
un archivo llamado mensual.inf al cual
quiere cambiar de nombre por anual.inf:
%mv mensual.inf anual.inf
mkdir
Si usted desea crear un directorio, utilice
el comando:
mkdir nombre_directorio
Para crear un directorio nuevo llamado
usuarios bajo su directorio de trabajo
debe escribir el siguiente comando:

Para eliminar un directorio que ya no


necesita , puede utilizar el comando:
rmdir nombre_directorio que le permite
eliminar
cualquier
directorio,
especificando su ruta de acceso, pero el
directorio debe estar vaco. Por ejemplo, si
decide que ya no necesita el directorio
usuario y quiere eliminarlo:
%rmdir /usuario
alias

%mkdir usuarios

Con ste comando puede sustituir una


instruccin
larga,
utilizando
un
seudnimo. Para definir el alias se debe
hacer de la siguiente forma:

cd

alias <nombre_alterno> <comando a


ejecutar>

Para cambiar de un directorio a otro;


simplemente escriba el comando cd
seguido de la ruta de acceso al directorio
deseado:

Por ejemplo, si utiliza frecuentemente el


comando ls -l y es ms fcil utilizar un
seudnimo, lo puede definir de la
siguiente manera:

cd ruta_de_acceso

%alias dir ls -l <enter>

Por ejemplo,
comando:

si

escribe

el

siguiente

%cd /usuarios cambia el directorio de


trabajo a /usuarios. Tambin puede
especificar cualquier trayecto despus del
comando para que pueda pasar de un
nivel a otro dentro de la estructura del
directorio. El siguiente comando cambia
del directorio en que se encuentra al
directorio anterior:
%cd ..
rmdir

40

de modo que cada vez que introduzca:


%dir <enter>
la orden que realmente se ejecuta es:
ls -l
history
Da una historia de los comandos
ejecutados, asociado con un nmero en el
orden en que fueron ejecutados. Si desea
dar un comando que ya haba tecleado
anteriormente, con el signo ! y el nmero
de comando se ejecutar, y si desea
ejecutar el ltimo comando nicamente
Operacin de Sistema Operativo Multiusuario

con el signo !!. Por ejemplo para ver los


comandos ejecutados teclee:

es natural, no se ver en pantalla aunque


se escriba .

%history <enter>
ls -l
cp ventas.doc mensual.inf
mv mensual.inf anual.inf
mkdir usuarios
cd /usuarios
cd ..
alias dir ls -l
dir

UNIX(r) System V Release 4.2

%
Y si desea ejecutar el comando cd
/usuarios sin tener que volver a teclear
toda la instruccin, teclee la siguiente
orden:
%! 5 <enter>
cd /usuarios
/usuarios
man
Si desea ms informacin sobre algn
comando, existe el manual para consulta
en lnea, el cul puede consultar tecleando
la siguiente orden:
%man <comando>
sta orden visualizar toda la informacin
sobre como utilizar el comando. Por
ejemplo, si desea ms informacin del
comando mkdir:
%man mkdir <enter>
Comandos
login:
Una vez tecleado el usuario que se quiere
y haber pulsado RETURN, solicita una
palabra de paso (password), la cual, como

Operacin de Sistema Operativo Multiusuario

login: antonio
Password: $
Tanto el nombre del usuario como la
palabra de paso han de ser escritas de
golpe, es decir, no se pueden dar a los
cursores para modificar ningn carcter y
mucho menos la tecla de Backspace, Ins,
Del... . Esto es debido a que, tanto ste
carcter como los aplicados a los cursores
son caracteres vlidos en nombres de
usuario y en palabras de paso.
El sistema, una vez aceptado el nombre
del usuario ( el cual como es obvio habr
sido asignado por el Administrador, as
como la palabra de paso), lanza por
pantalla unos mensajes de bienvenida y
termina con el smbolo denominado
prompt, smbolo configurable (como
casi todo en UNIX) y que suele ser un $
un #.
Existe en todos los sistemas UNIX un
superusuario llamado root, que puede
hacer absolutamente lo que quiera en el
sistema. Adems, hay algunos usuarios
especiales, dependiendo del sistema que
se trate con ms privilegios de los
normales (admin sa sysadm, usuario
de administracin del equipo, uucp como
usuario de comunicaciones ) y el resto,
que corresponden a usuarios normales.
El programa que est en ste momento
mostrando el prompt es la shell
intrprete de comandos. Con ste prompt
indica algo as como preparado para que
me escribas el comando que quieres
ejecutar .

41

Cada comando debe finalizar en un


RETURN, el cual funcionalmente se
asemeja a la orden AR en la mili ( El
sargento dice firmes , pero nadie se
mueve hasta que da el RETURN, es decir,
AR ).
Un sistema UNIX en modo multiusuario
(puede arrancarse en modo monousuario
para labores de administracin) espera la
entrada de un usuario al sistema, proceso
que recibe el nombre de login. Para ello, el
ordenador
muestra
un
mensaje
identificndose y la palabra.
login:
Para entrar hay que disponer de una
cuenta, que es como se llama al hecho de
ser reconocido por el sistema y, por tanto,
tener acceso. En caso de ser un sistema
recien instalado, no habr an creada
ninguna cuenta excepto la de root, por lo
que habra que contestar tecleando root.
En otro caso, se teclea el login o
identificativo correspondiente. Tras ello y
para comprobar la identidad del usuario,
el sistema preguntar password:
Esperando un password o palabra clave
asociados al login y, si todo va bien, ya se
est dentro. Mientras se teclea la palabra
clave, no aparece eco en pantalla para que
nadie en los alrededores pueda leerla. Por
ello, si se produce un error al teclear, el
habr otra oportunidad. En caso de que
no haya definida ninguna palabra de
paso, obviamente, no se preguntar por
ella. Esto suele ocurrir con el usuario root
cuando UNIX est recin instalado. Si una
vez dentro se desea salir, bastar teclear
exit, logout o simplemente CONTROL+D,
segn el sistema en que uno se encuentre.
42

Nada ms terminar el proceso de login,


una shell arranca automticamente y
advierte de su disposicin a recibir
comandos mostrando un prompt, que por
defecto ser uno de los smbolos #, %, >
$, en funcin de que shell se use y de si
uno es el root o no. Este prompt equivale
al famoso C:> del DOS y, como este
ltimo, es redefinible.
Ya desde dentro se puede empezar a jugar
con algunos comandos:
Echo
Su finalidad es mostrar mensajes, es decir,
presenta un eco de sus argumentos en
pantalla de modo idntico a como
funciona el echo del DOS. La diferencia
estriba en que, al igual que la mayora de
los comandos UNIX, dispone de un gran
nmero de opciones. De momento slo se
mencionar la opcin echo -n, que evita el
retorno de carro e inicio de lnea. De
hecho tambin sirve para mostrar valores
de variables.
Por ejemplo:
Echo $TERM
Mostrar el valor de la variable term, que
es una variable de la shell que indica el
tipo de terminal. Con esto se adelanta la
idea de que existen variables de entorno al
igual que en DOS y, del mismo modo,
pueden
examinarse
mediante
la
instruccion set.
Hostname
Indica el nombre de la mquina que aloja
el sistema. No se trata del nombre del
Operacin de Sistema Operativo Multiusuario

hardware, sino de un nombre con que se


bautiza a todos los sistemas UNIX. Esto se
debe a que UNIX es un sistema en red y,
por tanto, hay que tener bien identificadas
a las mquinas.

Muestra una lista de los usuarios que se


encuentran conectados en ese momento
en el sistema.

caracteres separados por un punto sino


que pueden tener una longitud entre 16 y
256 caracteres en funcin de la versin.
Por otra parte, existen los mismos wilcards
del DOS: * y ?, aunque su uso difiere
ligeramente ya que permite expresiones
del tipo *[cadena]*. Para UNIX, un fichero
cuyo nombre comienza por el carcter
punto (.), como profile, es un fichero
oculto y nicamente ser listado si se
utiliza la opcin -a.

Who am i

Cat

Aunque puede inducir a la sonrisa, su


funcin es informarle a uno de quin es.
No se trata de resolver problemas de
personalidad: en cuanto uno se mueve un
poco por el sistema y siempre que
disponga de ms de una cuenta,
descubrir que es un comando realmente
necesario.

Muestra el contenido de un fichero del


mismo modo que el type del DOS.
Equivale teclear cat .login en UNIX que
type login en DOS (aunque .login no es
nombre vlido en DOS).

Who

Is
Una vez el usuario se ha situado y sabe
dnde est y quin es, conviene abrir los
ojos y mirar alrededor. ls, abreviatura de
LiSt muestra el contenido de un directorio.
Su funcionamiento y sintaxis en anlogo al
dir del DOS.
As pues la sintaxis es:
ls [opciones] [path] [mscara de ficheros]
Entre las opciones, las ms usadas son:
l: que indica permisos, fecha y propietario.
a: lista tambien los ficheros *.
En UNIX, los nombres de fichero no se ven
sujetos a las reglas de DOS que los limita a
8 caracteres y una extensin de 3
Operacin de Sistema Operativo Multiusuario

Date
Muestra la hora del sistema de forma
anloga a como lo hace el DOS.
Passwd
Cambia el password del usuario que lo
ejecuta en la mquina en la que se
ejecuta. Es importante utilizar este
comando frecuente para proteger el
sistema ante el potencial ataque de
hackers.
Yppasswd
En caso de que la mquina se encuentre
en una red con un sistema de informacin
de red conocido como YP (Yellow Pages) o
NIS (Network Information Service), este
comando cambia el password en todo el
conjunto de la red.
43

Tipo de Operadores
Test, permite probar un conjunto de
condiciones.
Se
pueden
combinar
expresiones booleanas con los operadores
lgicos NOT, AND y OR.

sistema es multiusuario, cada usuario


dispone de una parte privada de disco.
Cabe recordar que los ficheros cuyo
nombre
comienza
por
punto
(.)
permanecen ocultos. Para moverse por
esta estructura de directorios, se pueden
destacar los comandos:

Operaciones matemticas y funciones para


test
OPERADOR EJEMPLO
SIGNIFICADO
NOT
exp verdero
!
[! expr]

pwd

-a

cd

-o

[expr1
expr2]

-a

[expr1
expr2]

-o

si exp prueba
falso. Falso si
exp
prueba
verdadero.
exp1
AND
expr2: verdero
si
ambas
expresiones son
verdaderas.
Falso si o o
ambos
son
falsos.
exp1 OR expr2:
verdero si una u
otra o ambas
expresiones son
verdaderas.
Falso si ambos
son falsos.

1.2.2 ARCHIVOS UNIX


Sistema de archivos
El sistema de directorios de UNIX tiene
una estructura arbrea, aunque no se
trata de un rbol, como se ver en el
apartado dedicado al sistema de ficheros.
En este rbol, cada usuario dispone de
un Home Directory, un directorio con su
nombre y bajo el cual, puede hacer lo que
quiera. Es la parte fsica de la idea de
tener una cuenta. As pues, aunque el
44

Print Working Directory, escribe el path


absoluto del directorio actual partiendo
del directorio raz. Equivale a teclear cd sin
argumentos en DOS.

Cambia de Directorio. Es idntico al DOS,


salvo en que cuando se teclea sin indicar
directorio, conduce directamente al home
directory de la persona que lo ejecuta.
cp
Copia ficheros segun la sintaxis
cp <filename1> <filename2>
donde se puede indicar el path completo
de los ficheros. Equivale al comando copy
de DOS.
mv
Renombra un fichero con la sintaxis
mv<antiguo> <nuevo>
Equivale al comando rename del DOS pero
es mucho ms potente ya que tambin
sirve para cambiar de sitio un fichero, ya
que puede incluir un path en cada
nombre. As sepodra decir:
mv /.profile /home/echeva/.profile
Operacin de Sistema Operativo Multiusuario

para mover el fichero .profile desde la raz


hasta el directorio /home/echeva.

/usr/man
Manual
/tmp

rm

Directorio para arreglos temporales.


TODOS los usuarios pueden leer y escribir
en l.

Borra una lista de ficheros. Equivale al


comando delete de DOS.

rmdir
Borra directorios vacos. Equivale al
comando del mismo nombre de DOS (rd).
mkdir
Crea directorios. Equivale al comando del
mismo nombre de DOS (md).

Manipulacin
directorios.

de

archivos

Podemos examinar una primera tanda de


comandos hermanos, que son los
siguientes:
cp <fichero a copiar> <fichero nuevo>
mv <fichero a mover> <fichero nuevo>
ln <fichero a lincar> <fichero nuevo>
cp copia el primer argumento al
segundo. Valen caminos relativos, es decir

Nombres de directorios.

No todo el rbol de directorios est


compuesto por directorios de usuario.
Existen muchos de ellos que son de uso
general o del propio sistema y con los que
habr que familiarizarse. Los ms
importantes son:
/
El raz, del que cuelgan todos.
/bin y /usr/bin
Contienen comandos UNIX ejecutables.
/etc
Es quiz el directorio ms importante.
Contiene ficheros de datos y configuracin
del sistema, el fichero de password,
configuracin de terminales, red, etc (de
ah su nombre).
/dev
Ficheros de dispositivos E/S.
Operacin de Sistema Operativo Multiusuario

$ cp tonto /tmp
$ cp tonto /tmp/nuevo
$ cp /home/jose/tonto /tmp/tonto
produciran el mismo resultado; copian el
fichero desde el directorio actual al /tmp.
El comando mv se comporta igual salvo
que el fichero original desaparece; es
similar al RENAME de MS-DOS.
El comando ln hace que pueda existir un
contenido con varios nombres:
$ ln tonto tonto1
$ ls -l tonto*
-rw-rr 2 jose sys 4 Mar 1 11:07 tonto
-rw-rr 2 jose sys 4 Mar 1 11:07 tonto1
ahora tonto y tonto1 hacen referencia
al mismo contenido; por tanto, cualquier
cambio que realicemos en uno se ver en
el otro, y si borramos ahora el fichero
tonto, quedar el tonto1 con el
mismo contenido, que slo ser borrado
45

al borrar el ltimo de los ficheros lincados


a su contenido.
Debido a la naturaleza del propio
comando, no se pueden hacer enlaces
(links) entre ficheros directorios situados
en sistemas de ficheros distintos.
Para ste ltimo caso, existe una opcin
del comando ln, el ln -s (link
simblico); crea un enlace simblico entre
dos entidades pero slo como una
referencia; en (&e acute;ste) caso si el
fichero original se borra, el link queda
suelto y el contenido irrecuperable.
El comando rm borra ficheros y
directorios; para borrar el tonto1 que ya
no necesitamos, podemos escribir:
$ rm tonto1
Valen metacaracteres . Si escribimos
$ rm *
nos borramos TODO lo que haya en el
directorio actual SIN pedir confirmacin.
Una opcin de rm lo hace ms seguro al
pedirla:
$ rm -i tonto1
tonto1 ? y

atendiendo a opciones determinadas. Si


bien la sintaxis es demasiado extensa para
estudiarla en su totalidad, conviene ver
algunos ejemplos :
El comando toma como argumentos
declaraciones
en
formato
find
<directorio base> <opciones> -print.
Por tanto, para sacar en pantalla todos los
ficheros y directorios del disco, valdra
con:
find / -print
Si se desean
directorios:

slo

ficheros

slo

find / -type f -print

find / -type d -print


respectivamente.
Buscar todos los ficheros y directorios que
tengan ms de 30 das de antigedad:
find / -atime +30 -print.
El resto de las opciones sirve para buscar
ficheros con determinados permisos,
mayores menores que un determinado
tamao.

La opcin ms peligrosa puede ser la -r


(recursivo) que borra ficheros y directorios
a partir del directorio de arranque. Por
tanto, ojo con poner

Para este primer chapuzn por el mundo


UNIX, viene bien conocer algunos otros
comandos tiles. Los que se presentan a
continuacin
son
de
conocimiento
obligado para todo usuario:

$ rm -r .

grep

si estamos en el directorio raz y


tenemos privilegios, podemos borrar el
contenido de Todos los discos.

grep <cadena> <fichero> Busca las


lneas que contienen la cadena en el
fichero dado y las imprime en pantalla.

Por ltimo, veremos un comando de


utilidad simililar a ls pero con mas
opciones; el comando find muestra en
pantalla
directorios
y/o
ficheros

cmp

46

cmp <fichero1> <fichero> Busca la


primera diferencia entre los ficheros
indicados.
Operacin de Sistema Operativo Multiusuario

diff
diff <fichero1> <fichero2> Busca todas
las diferencias entre los ficheros dados.
tail
tail <fichero> Muestra las 10 ltimas
lneas de un fichero.
head
head <fichero> Muestra las 10 primeras
lneas de un fichero.
sort
Ordena por lneas
wc
Muestra el tamao de
indicando segn la opcin:

un

fichero

-l (lneas)
-w (palabras)
-c (caracteres) y si va sin opciones, las tres
cosas.
at
Ejecuta el contenido de un fichero en la
fecha y hora especificadas.
cal
Imprime un calendario.
more
more <fichero>
Muestra el contendido de un fichero de
forma paginada, del mismo modo que el
more de DOS, sin embargo, al contrario
que en DOS, no es necesario redirigir su
entrada indicando more < fichero.
Permisos.
En cualquier sistema multiusuario es
preciso que existan mtodos que impidan
que un determinado usuario pueda
Operacin de Sistema Operativo Multiusuario

modificar borrar un fichero confidencial,


incluso leer su contenido. Asimismo ,
determinados comandos ( apagar la
mquina, por ejemplo ) deben estar
permitidos exclusivamente a determinados
usuarios, quedando inoperantes para los
dems.
En UNIX, stos mtodos radican en que
cada fichero tiene un propietario, que es
el usuario que cre el fichero; adems, los
usuarios estn divididos en grupos,
asignacin que normalmente se lleva a
cabo por el Administrador del sistemas,
dependiendo de la afinidad de las tareas
que realizan. El fichero anterior tiene
tambin un grupo, que es el grupo del
usuario que lo ha creado. UNIX distingue
tres tipos de acceso - lectura, escritura y
ejecucin - sobre el usuario que lo ha
creado, los usuarios del mismo grupo que
el que lo cre y todos los dems usuarios.
Por todo lo anteriormente dicho, un
fichero
puede
tener
cualquier
combinacin de los tres tipos de acceso
sobre tres tipos de usuarios: el creador, los
de su grupo y todos los dems ( otros
cualquiera que no cumplan nin guna de
las dos condiciones anteriores ). Para ver
lso permisos de un fichero cualquiera,
empleamos el comando ls -l (formato
largo):
$ ls -l
-rw-rr 1 jose sys 4 Mar 1 11:07 tonto
drw-rr 1 jose sys 84 Mar 1 11:07
nuevo
Los campos que lo componen son :
-rw-rr : tipo de fichero (la primera
raya; en el caso de nuevo, una d
significa que es un directorio, y una raya
- significa fichero normal) y 3 grupos de

47

tres correspondientes, los tres primeros, a


permisos del usuario; los tres siguientes, a
los del grupo, y los tres ltimos, a todos
los dems.
jose : Usuario que cre el fichero.
sys : Grupo del creador.

Por tanto, para darle mximos permisos al


fichero
tonto,
ejecutaremos
el
comando:
$ chmod 777 tonto
$ ls tonto
-rwxrwx rwx 1 jose sys 4 Mar 1 11:07
tonto
al darle tres sietes ( 1 + 2 + 4 = 7 ), el

4 : Tamao en bytes.
Mar 1 11:07 : Fecha de creacin de
ltima modificacin.
tonto : Nombre del fichero.
Cada grupo de tres elementos pueden ser
rwx, que son: permiso para leer,
permiso para escribir y permiso para
ejecutar. Una raya significa carece de
permiso para (.).
Por tanto, el fichero tonto puede ser
ledo y escrito (y, por tanto, borrado), por
el usuario jose. Cualquier otro usuario,
sea del grupo sys no, tiene permisos
slo de lectura.
En el caso de directorio, todo igual salvo
que en ste caso la x de ejecutar no
tendra sentido; por ello, aqu ste
carcter significa el usuario X puede
cambiarse a ste directorio.
Para darle quitarle permisos a un fichero
directorio, se emplea el comando chmod
<mscara> <nombre_de_fichero>. La
mscara es un nmero octal de hasta un
mximo de cuatro cifra s correspondiente
a sumar los siguientes nmeros :
a) Permiso de ejecucin.
b) Permiso de escritura.
c) Permiso de lectura.

fichero se queda con la mscara rwx.


Si queremos slo lectura para creador,
grupo y otros, el comando sera chmod
444 tonto y as sucesivamente.
En determinadas ocasiones puede ser
necesario cambiar de propietario a un
fichero directorio; para ello utilizamos el
comando
chown
<nombre_del_propietario> <fichero>.
Igual pasa con los grupos; el com ando es
chgrp
<nombre_del_grupo>
<fichero>.
$ chown juan tonto
$ ls tonto
-rwxrwxrwx 1 juan sys 4 Mar 1 11:07
tonto
$ chgrp conta tonto
$ ls tonto
-rwxrwxrwx 1 jose conta 4 Mar 1 11:07
tonto
Pero, cuando creamos un fichero, que
permisos coge por defecto ? El valor de
umask que tenemos asignado en la
sesin complementado con 666 (rw-rwrw). El comando umask a secas nos
devuelve dicho valor :< /P>
$ umask
022
En ste caso, 666-022 = 644, es decir,
cualquier fichero que creemos con un

48

Operacin de Sistema Operativo Multiusuario

editor con otros comandos sern


creados con permisos 644 (rw-rr).
Para cambiar la mscara, usamos el
comando umask con la nueva mscara
que le quieremos dar:
$ umask 000
En cuyo caso, todos los ficheros a partir
del se momento, y hasta que finalice la
sesin, sern creados con barra libre
para todo el mundo.
Al ser UNIX un sistema multiusuario surge
el problema de la proteccin y privacidad
de la informacin. As cada fichero posee
un cdigo de 9 bits para regular su
acceso. El esquema empleado, clsico en
muchos sistemas operativos consiste en
dividir el universo de usuarios que ve cada
fichero en tres clases:
La clase u (user), formada nicamente por
el dueo del fichero.
La clase g (group), formada por todos los
usuarios que pertenecen al mismo grupo
del dueo.
La clase o, formada por el resto del
universo (o como dira Gonzalo Len, el
universo se divide en yo, mis amigos y mis
enemigos).
Un usuario puede pertenecer a ms de un
grupo pero un fichero slo puede
pertenecer a uno. De esta forma, parte de
los ficheros de un usuario podran ser
accedidos por uno de los grupos a los que
el usuario pertenece y parte por otro
grupo.
Como siempre es el root el que decide qu
usuarios pertenecen a qu grupos, los
cuales se suelen organizar atendiendo a
Operacin de Sistema Operativo Multiusuario

razones de trabajo. La lgica de esto es


que un usuario concreto (clase u), puede
tener en un fichero una carta de su novia,
que no le interesa que lea nadie ms. Sin
embargo, tambin dispondr de una serie
de ficheros a los que tendr que permitir
el acceso a su grupo de trabajo (clase g)
pero no querr que los vea nadie ms. Del
mismo modo, podra tambin interesarle
que todo el mundo (clase o) pudiera
acceder a la informacin contenida en
otra serie de ficheros. El root, como
superusuario, es caso aparte, ya que
dispone de acceso a todos los ficheros del
sistema.
Existen 3 formas de acceder a un fichero:
lectura, escritura y ejecucin. As, los 9
bits de proteccin de acceso de cada
fichero se encuentran divididos en 3
grupos de 3 bits. Cada grupo de 3 bits
indica acceso a u, g, o, respectivamente y
cada bit de cada grupo indica:
bit 1 (r), permiso de lectura
bit 2 (w), permiso de escritura
bit 3 (x), permiso de ejecucin.

CONTEXTUALIZACIN
Competencia analtica
Promover habilidades cognitivas que
les permitan utilizar hbitos y tcnicas
de estudio que potencialicen su estilo
de aprendizaje.
Los distintos operadores permiten formar
expresiones tanto aritmticas como
lgicas, en estos operadores deben
tenerse en cuenta la precedencia de
operadores y las reglas de asociatividad,
49

que son las normales en la mayora de


lenguajes.

El alumno:
Comparar
mtodos
ordenamiento
aplicables
construccin de tablas.

de
a la

Competencia ecnolgica
Utilizar herramientas de hardware y
software disponibles.

Realizacin del ejercicio

Inicia una sesin de trabajo unix y


ejecuta alguna orden. Finaliza la
sesin con exit o con ctrl -d para
comprobar que todo es correcto.

Comprueba quin o quines estn


conectados al sistema y en qu
terminal.
Enva un mensaje, utilizando la
orden write.
Impide que otros usuarios enven
mensajes y habilita de nuevo la
comunicacin.
Consulta las opciones de banner.
Determina qu tipo de ficheros son
los ficheros siguientes: /etc/hosts,
/usr/bin,
/etc/group,
/usr/include/stdio.h y /usr/lib/X11.
Crea en su directorio de arranque un
subdirectorio denominado copia y
copia en l fichero /etc/passwd.
Cambia de nombre al fichero
passwd del directorio copia y
pasarlo a llamarlo palabra_claves.
Emplea las rdenes de inicio de unix.
Crea, modifica y borra ficheros.

RESULTADO DE APRENDIZAJE
1.3 Manejar editores de introduccin de texto mediante comandos de ejecucin.

1.3.1 EDITOR.
Editor vi.
El editor VI permite al usuario crear
nuevos archivos o editar los ya existentes.
La orden para iniciar el editor VI editor es
vi, seguida del nombre del archivo. Por
ejemplo,
para
editar
un
archivo
denominado temporal, deberamos teclear
vi temporal y pulsar Enter. Puede tambin
iniciar el VI sin indicar ningn nombre de
archivo, pero en ese caso, cuando quiera
guardar su trabajo tendr qu indicarle al
VI el nombre de archivo en que desea
guardarlo.
50

Cuando inicie VI por vez primera, se


encontrar con una pantalla cuyo margen
izquierdo aparecer lleno de virgulillas
como la que en castellano va sobre la letra
ee (~). As es como se representan las
lneas vacas tras el fin del archivo. En la
base de la pantalla se mostrar el nombre
del archivo -en el caso en que se haya
especificado uno- y su tamao, del
siguiente modo:
filename 21 lines, 385 characters
Si el archivo especificado no existe, VI le
indicar que se trata de un archivo nuevo,
del siguiente modo:
newfile [New file]
Operacin de Sistema Operativo Multiusuario

Si inici VI sin indicar un nombre de


archivo, la lnea al fondo de la pantalla
aparecer vaca. Si la pantalla no le
muestra los resultados esperados, que
acabamos de mencionar, es posible que la
terminal
no
est
configurada
correctamente. En ese caso, pulse q y
Enter, para salir de VI, y corrija el tipo de
terminal. Si no sabe cmo hacerlo
pregunte a alguien que trabaje en el
laboratorio.
Cmo salir de vi
Ahora que sabe cmo entrar en VI, no
estara de ms conocer el modo de
salir. El editor VI tiene dos modos y,
para salir de VI, tiene que estar en el
modo comando. Para entrar en
modo comando pulse la tecla Esc
(Si su terminal carece de esa tecla, haga la
prueba pulsando ^[. Si estaba ya en
modo comando cuando puls Escape, no
se preocupe. Podra emitir un bip, pero
seguira encontrndose en el modo
comando.
La orden para salir de VI es :q ; es decir,
que una vez se encuentre en modo
comando, ha de teclear dos puntos,
seguido de q, y continuacin pulsar
Enter. Si el archivo ha sufrido alguna
modificacin, el editor le avisar de esa
circunstancia y no le permitir cerrarlo. Si
quiere eludir ese mensaje, la orden para
salir de VI sin guardar los cambios es: q!.
Naturalmente, lo habitual en un editor es
que usted desee guardar los cambios que
ha hecho. La orden para hacerlo es: w.
Tambin puede combinar esta orden con
la de salir, del siguiente modo :wq. Y si lo
desea puede guardar los cambios en un
Operacin de Sistema Operativo Multiusuario

archivo diferente, especificando el nombre


de ste tras :w. Por ejemplo, si quiere
guardar el archivo en el que est
trabajando con otro nombre, digamos
archivo2, entonces tendra que escribir: w
archivo2 y Enter.
Otro modo de guardar los cambios y salir
de VI es la orden ZZ. Cuando se encuentre
en el modo comando, escriba ZZ;
obtendr el mismo resultado que con: wq.
De ese modo se guardara cualquier
cambio que se hubiera operado en el
archivo. Esta es la forma ms sencilla para
salir del editor: con slo dos pulsaciones.
Los dos modos de vi
Lo primero que la mayor parte de los
usuarios aprenden del editor VI es que
cuenta con dos modos: comando e
insertar. El modo comando permite
introducir rdenes para manipular el
texto. Normalmente estas rdenes no
tienen ms que uno o dos caracteres,
pudiendo as introducirse con pocas
pulsaciones. El modo insertar hace que
todo lo que se pulse en el teclado se
incorpore al archivo.
VI se inicia en el modo comando. Hay
varias formas de pasar al modo insertar.
La ms comn consiste en teclear a o i.
Ms abajo se describen ambas rdenes.
Una vez se encuentre en el modo insertar,
podr salir de l pulsando la tecla escape
(si su terminal no tiene esa tecla, debera
funcionar ^[ ). Puede pulsar escape dos
veces seguidas y de esa manera no habr
duda de que se encuentra en modo
comando. Pulsar escape mientras se
encuentra en modo comando no hace que
el editor salga de dicho modo; sonar un
51

pitido para confirmarle que se encuentra


ya en ese modo.
Cmo utilizar las funciones del modo
comando
En el modo comando las rdenes siguen
normalmente el siguiente esquema (entre
corchetes
aparecen
las
variables
optativas):[cifra] comando [dnde]
La mayor parte de las instrucciones
constan de un solo carcter, incluidas
aquellas en las que es preciso pulsar la
tecla Ctrl. En el siguiente apartado
describiremos las instrucciones que ms
suelen emplearse en el editor VI.
La cifra es cualquier nmero que comience
por un carcter entre 1 y 9. Por ejemplo,
la instruccin x borra el carcter que se
encuentra en el lugar del cursor. Si, dentro
del modo comando, se teclea 23x, se
borrarn 23 caracteres.
Algunas rdenes utilizan un parmetro
optativo -dnde-, en el que puede
especificarse cuntas lneas o a qu parte
del documento afecta la orden. El
parmetro dnde puede ser tambin
cualquier orden que mueva el cursor.
Vi es un editor de pantalla completa
creado en el UNIX de Berkeley y extendido
ms tarde a todos los dems dialectos.
La ventaja de ste editor radica en su
compatibilidad
con
el
resto
de
herramientas de edicin UNIX .

ESTRUCTURA DE RDENES CON VI


Movimientos de cursor
Vi contempla, una vez iniciada la sesin
con l, dos modos:
Modo comando: es el modo en el que
arranca por defecto. Vale para dar
comandos tales como: leer un fichero,
escribir un fichero, bsqueda sustitucin
de caracteres dentro del texto actual.

Cambios de ventana
Este modo es al que se vuelve siempre ,
pulsando la tecla <ESC>.
Modo insercion/reemplazo: es el que se
usa para escribir caracteres. Se entra a
ste modo desde el modo comando
pulsando la letra i.
Desde el modo comando, podemos pasar
tambin a modo insercin escribiendo las
siguientes letras:
i : Pasar a modo insercin, delante de la
posicin del cursor.
a: Igual, pero detrs de la posicin del
cursor.
I: Pasar a modo insercin ,pero
empezando a insertar al principio de la
lnea donde se est.
A: Igual, pero empezando al final de la
lnea donde se est.
o: Pasar a modo insercin, pero abriendo
una lnea nueva debajo de donde se est.
O: Igual , pero la lnea nueva se abre
arriba.
<ESC>: Pasar a modo comando.
Backspace: Borra la ltima letra escrita.
<Control>v: Identifica el carcter que
vamos a escibir a continuacin como un

52

Operacin de Sistema Operativo Multiusuario

caracter especial, es decir, un escape,


salto de hoja (^L), cualquier carcter
ascii entre el 1 y el 31. ( 1=^A , 2=^B
.....).

Salir de vi
ZZ Grabar y salir.

OPCIONES DEL EDITOR


Pasando a modo comando, podemos
emplear las siguientes secuencias para
movernos por el texto:
^: Ir al principio de la lnea.
$: Ir al final de la lnea.
l,h: Izquierda / derecha.
j,k: Abajo / Arriba.
^F (Control + F ): Una pantalla adelante.
^B (Control + B ): Una pantalla atrs.
^G (Control +G): Ensea el nmero de
lnea donde estamos posicionados.
1G: Al principio del todo.
G: Al final del todo.
/<cadena>: Busca <cadena> desde la
lnea actual hasta el final del texto.
/ Sigue buscando ms ocurrencias de la
cadena.
?<cadena>: Busca <cadena> desde la
lnea actual para atrs.
? Sigue buscando ms ocurrencias, para
atrs.
ZZ Grabar y salir.
dd: Borrar la lnea donde se est.
J: Juntar la lnea donde se est y la de
abajo.
r: Reemplaza una sola letra.
R: Reemplaza todo hasta que se pulse
<ESC> .
yy: yank/yank: Marca la lnea actual.
p: Copia la lnea marcada despues del
cursor.
P: Copia la lnea marcada antes del cursor.
-.: Repite el ltimo cambio.
u Undo (anula el ltimo cambio)
U Undo , pero en la lnea actual.

Operacin de Sistema Operativo Multiusuario

Ordenes de dos puntos: Al pulsar en


modo comando el carcter :, el cursor
se baja a la ltima linea y el editor saca los
dos puntos en espera de que le demos
algn comando de estos. Salimos de aqu
pulsando <ESC> .Algunos son:
:wq! (write/quit)Grabar y salir.
:w! <nombre_fichero> (write) Graba el
texto en <nombre_fichero>.
:r <nombre_fichero> (read) Incluye el
fichero como parte del texto en edicin.
:!<comando> Ejecutar <comando> .
Vuelve al terminar el comando.
:<nmero de lnea> Ir a <nmero de
lnea>.
:q! (quit) Salir sin grabar.
:se nu
:se nonu Numera las lneas.(set
number,set nonumber-pone y quita).
:1,5de Borra desde la 1 a la 5.
:1,5co20 Copia desde la 1 a la 5 a partir
de la lnea 20.
:1,5mo20 Igual, pero mueve.(desaparece
desde la lnea 1 a la 5).
:g/XXX/s//YYY/g Cambia en todo el texto
XXX por YYY.
OPERACIONES CON PALABRAS
El editor VI posee una serie de funciones
que ayudan al programador a dar a sus
cdigos una forma pulcra. Existe una
variable para determinar la tabulacin que
se da a los distintos niveles del cdigo.
Por ejemplo, la orden para hacer que la

53

tabulacin tenga una anchura de cuatro


espacios es :set sw=4.
Las siguientes rdenes sirven para marcar
las tabulaciones de una lnea o para
quitarlas, y pueden modificarse con cifra:
<<
Corre la lnea una tabulacin hacia la
izquierda.
>>
Corre la lnea una tabulacin hacia la
derecha.
El editor VI dispone tambin de una
funcin muy til para verificar que en su
cdigo fuente no han quedado parntesis
o corchetes sin cerrar. La orden % buscar
el parntesis o corchete izquierdo
correspondiente a un determinado signo
de parntesis o corchete derecho, y
viceversa. Coloque el cursor encima de un
parntesis o corchete y pulse % para llevar
el cursor al parntesis o corchete que le
corresponde. Si hay un parntesis o
corchete desparejado, VI emitir un pitido
para indicarle que no se ha encontrado el
smbolo correspondiente.

1.3.2 MANEJO DE CONTENIDO.

Ordenes ms
modo EX.

importantes

en

Se puede personalizar el VI antes de


comenzar. Hay varias opciones de edicin,
disponibles utilizando la orden :set. Las
opciones de los editores VI y EX
disponibles en Wiliki son las siguientes
(puede obtener una lista completa
tecleando :set all y Enter, dentro del modo
comando):
54

/usr/lib/tags
autoprint
directory=/tmp
flash
hardtabs=8
keyboardedit
keyboardedit!
magic
mesg
noautoindent
noshowmatch
noautowrite
nobeautify
nodoubleescape
noedcompatible
noerrorbells
noexrc
noignorecase
nolisp
nolist
nonovice
nonumber
nooptimize
noreadonly
noshowmode
noslowopen
noterse
nowriteany
paragraphs=IPLPPPQPP LIpplpipnpbp
term=xterm
prompt
redraw
remap
report=5
scroll=11
sections=NHSHH HUuhsh+c
shell=/bin/csh
shiftwidth=8
tabstop=8
taglength=0
tags=tags
timeout
timeoutlen=500
ttytype=xterm
warn
window=23
wrapmargin=0
wrapscan
Operacin de Sistema Operativo Multiusuario

A algunas de estas opciones se les pueden


asignar valores con el signo =, mientras
que otras simplemente estn activadas o
desactivadas. (Estas opciones de tipo on off se denominan booleanas, y, para
indicar que no estn activadas, llevan un
no delante.) Las opciones mostradas
aqu son las que se tienen por defecto, sin
personalizar. A continuacin describimos
algunas
de
ellas,
aadiendo
sus
abreviaturas.
Por ejemplo, en el caso de la orden set
autoindent, se puede teclear :set
autoindent, o bien :set ai. Y para
desactivarla :set noautoindent o :set noai.
autoindent (ai)
Esta opcin hace que las lneas siguientes
a una dada tengan su misma tabulacin.
Si quiere volver a la tabulacin anterior,
no tiene ms que pulsar ^D en la
posicin del primer carcter. La orden ^D
funciona slo en el modo insertar, no en
modo comando. Tambin es posible
determinar la anchura de las tabulaciones
mediante la opcin shiftwidth, descrita
ms abajo.
exrc
El archivo .exrc del directorio actual es
ledo al comenzar una sesin. ste debe
encontrarse en la variable de entorno
EXINIT o en el archivo .exrc, en su
directorio personal.
mesg
Desactive esta opcin mediante :set
nomesg, si no quiere que aparezca ningn
mensaje en pantalla.
number (nu)
Operacin de Sistema Operativo Multiusuario

Muestra el nmero de lnea en el margen


izquierdo.
shiftwidth (sw)
Esta opcin requiere que se le asigne un
valor, y determina la anchura de las
tabulaciones (rdenes << y >>). Por
ejemplo, para que la tabulacin sea de
cuatro espacios escribir lo siguiente :set
sw=4.
showmode (smd)
Esta opcin sirve para mostrar el modo
actual del editor. Si se encuentra en el
modo insertar, en la ltima lnea de la
pantallas aparecer INPUT MODE.
warn
Esta opcin le avisa si ha modificado el
archivo pero todava no lo ha guardado.
window (wi)
Esta opcin determina el nmero de lneas
que VI usar en pantalla. Por ejemplo,
para hacer que VI utilice nicamente 12
lneas de su pantalla (si su modem es
lento), indicara lo siguiente: :set wi=12.
wrapscan (ws)
Esta opcin afecta al comportamiento de
la bsqueda de palabras. Cuando
wrapscan est activado, si no se encuentra
la palabra al llegar al final del archivo,
tratar de buscarla desde el comienzo.
wrapmargin (wm)
Si esta opcin tiene un valor mayor que
cero, se activar el retorno manual. Es
decir, si alcanza el nmero de espacios
indicados a partir del extremo derecho de
la pantalla, la palabra pasar a la lnea
siguiente sin necesidad de pulsar Enter.
Por ejemplo, para mantener un margen

55

derecho de dos espacios, tendra que dar


la orden: :set wm=2.
Una orden del editor EX de utilidad en VI
es la orden ab (abreviatura). Esto le
permite
asignar
abreviaturas
a
determinadas secuencias de caracteres. La
orden tiene la siguiente forma :ab
<abreviatura>
<secuencia_que_debe_sustituirla>.
Por
ejemplo, si tuviera que escribir la palabra
Humuhumunukunukuapua`a, pero no
quisiera tener siempre que teclearla
entera, podra usar una abreviatura. En
este caso, podra introducir una orden
como
la
siguiente:
:ab
9u
Humuhumunukunukuapua`a As, siempre
que pulse 9u separadamente, VI escribir
la palabra completa. Eso no suceder si
usted teclea 9universidad, por ejemplo.
Para borrar una abreviatura previamente
definida, utilizar la orden unabbreviate
(desabreviar). En el caso del ejemplo
anterior, la orden sera :una 9u. Para
obtener un listado de las abreviaturas que
ha definido, teclee simplemente :ab, sin
nada detrs.

Existen dos formas de personalizar el


editor VI. Si crea un archivo de nombre
.exrc en su directorio personal, todas las
rdenes ah especificadas sern ledas al
arrancar el editor VI. El otro mtodo
consiste en crear una variable de entorno
denominada EXINIT. Las opciones se
grabarn el archivo de configuracin de su
shell. Si utiliza el shell C (/bin/csh), la
orden, que se grabar en el archivo .cshrc
es la siguiente:
setenv EXINIT ...
Si utiliza /bin/sh o /bin/ksh, la orden. que
se grabar en el archivo the .profile, ser
la siguiente:
export EXINIT
EXINIT=...
No ponga ... como en el ejemplo. En ese
lugar deber poner las rdenes que desea
activar. Por ejemplo, si quiere tabulacin
automtica, numeracin de lneas y un
margen derecho de tres caracteres, en tal
caso la orden setenv deber aparecer
(para el shell C) como sigue:
setenv EXINIT set ai nu wm=3

Otra orden del editor EX que es til para


personalizar el VI es la que sirve para
cambiar la funcin de las teclas. La hay de
dos tipos: una para el modo comando y
otra para el modo insertar. Estas dos
rdenes
son
:map
y
:map!,
respectivamente. Su funcionamiento es
similar al de las abreviaturas: se pulsa una
secuencia de teclas, y continuacin otra
secuencia de teclas que debe sustituir a la
anterior. (Por lo general, las secuencias de
teclas sustituidas son rdenes de VI.)
56

Si quiere poner ms de una orden en el


setenv EXINIT, seprelas por medio de una
barra vertical (|). Por ejemplo, para hacer
que el carcter G haga las veces de la
orden /g en el modo comando, tendr
que escribir :map g G, lo que combinado
con la instruccin anterior sera:
setenv EXINIT set ai nu wm=3|map g G
Si desea crear el archivo .exrc, puede
escribir ah exactamente lo mismo que se
ha mostrado entre comillas, tras el EXINIT.
Operacin de Sistema Operativo Multiusuario

Marcas de posicin.

El editor VI cuenta con 36 bferes para


almacenar fragmentos de texto, y tambin
un bfer de uso general. Siempre que un
fragmento de texto es borrado o extrado
(copiado) del archivo, queda colocado en
el bfer de uso general. La mayora de los
usuarios de VI apenas hacen uso de los
otros buferes, y pueden arreglrselas sin
ellos. El fragmento de texto se almacenar
tambin en otro bufer si se especifica uno.
El bufer se especifica mediante la orden .
Tras pulsar , hay que introducir una letra
o dgito para especificar el bufer. Por
ejemplo, la orden: mdd utiliza el bfer m,
y los dos ltimos caracteres significan que
se va a borrar la lnea entera. Del mismo
modo, es posible pegar texto mediante la
instruccin p o P. mp pega el contenido
del bfer m tras el lugar en el que se
encuentra el cursor. En el caso de
cualquiera
de
las
instrucciones
mencionadas en los dos apartados
siguientes, estos bferes pueden utilizarse
para almacenar temporalmente palabras o
prrafos.

Mover bloques.

La orden que habitualmente se usa para


cortar es d. Esta instruccin borra texto
del archivo. La orden puede ir precedida
de una cifra y seguida de la indicacin de
un movimiento. Si duplica la orden
pulsando dd, se borrar la lnea entera. He
aqu algunas combinaciones de este tipo:
d^
borra desde la posicin del cursor hasta el
comienzo de la lnea.

borra desde la posicin del cursor hasta el


fin de la lnea.
dw
borra desde la posicin del cursor hasta el
fin de la palabra.
3dd
borra tres lneas desde la posicin del
cursor hacia abajo.
Existe tambin la orden y (copiar) que
opera de forma parecida a la orden d, slo
que sin borrar el texto del archivo.
Las rdenes para pegar son p y P. La nica
diferencia entre ellas es el lugar en que
pegan respecto del cursor. p pega el
contenido del bufer general o especfico
tras la posicin del cursor, mientras que P
lo pega delante del cursor. Si se especifica
una cifra antes de la orden pegar, el texto
se pegar el nmero de veces que se haya
indicado.
Si utiliza un programa de terminal dentro
de una estacin de trabajo, puede
cambiar el tamao de la pantalla
corriendo los lados de la ventana. Si tiene
problemas con el tamao de la ventana, la
orden a teclear es la siguiente:
eval resize
Si esto no funciona la orden podra ser
sta:
eval /usr/bin/X11R6/resize
ste es un problema que raras veces se
producir en versiones modernas de VI,
tales como, por ejemplo, Vim.

d$
Operacin de Sistema Operativo Multiusuario

57

Recuperacin de archivos.

El editor VI edita una copia temporal de su


archivo, y, una vez que la edicin ha
finalizado o cuando usted le da la orden
de guardar, el contenido de la copia
temporal se graba en el archivo original. Si
algo va mal durante la edicin del archivo,
el editor VI tratar de guardar el trabajo
que usted estaba haciendo y lo
almacenar
para
su
posterior
recuperacin. (Nota: Si VI se cierra
sbitamente mientras usted estaba
trabajando con un archivo, le enviar un
mensaje indicndole cmo recuperarlo.
Para su recuperacin se utiliza la opcin -r.
Si estaba usted editando el archivo
vitalinfo y ha salido del sistema
accidentalmente, la opcin -r del editor
vi puede serle de ayuda. Esta orden tiene
la forma siguiente: vi -r vitalinfo No
obstante, una vez se ha hecho uso de la
opcin -r, DEBE guardar inmediatamente
el trabajo, pues dicha opcin slo
funciona una vez por cada sesin fallida
de VI.).
Hay dos cosas a tener en cuenta cuando
se utiliza una estacin de trabajo: la
edicin de un mismo archivo varias veces y
el cambio de tamao de la pantalla.
Dado que VI edita una copia de su archivo
original y guarda los contenidos de esa
copia sobre el archivo original, si arranca
el editor ms de una vez y est editando el
mismo archivo varias veces, si guardara el
trabajo en una ventana y luego lo volviera
a guardar en otra, los cambios operados
en la primera ventana desapareceran,
sobrescritos por los de la segunda
58

ventana. As pues, asegrese de abrir una


sola copia de VI por archivo.
Si utiliza un programa de terminal dentro
de una estacin de trabajo, puede
cambiar el tamao de la pantalla
corriendo los lados de la ventana. Si tiene
problemas con el tamao de la ventana, la
orden a teclear es la siguiente:
eval resize
Si esto no funciona la orden podra ser
sta:
eval /usr/bin/X11R6/resize
ste es un problema que raras veces se
producir en versiones modernas de VI,
tales como, por ejemplo, Vim.

La calculadora

Calculadora de precisin
(hasta 80 decimales).

especificable

Shell cuenta con herramientas disponibles


que ofrecen operaciones aritmeticas con
enteros. Para decimales de punto flotante,
se debe usar awk, dc (un paquete
aritmtico basado en pila) o bd (un
calculador interactivo con una sintaxis
como la de C.
Estas calculadoras manejan los operadores
ritmticos conocidos:
+, _, *, /, y %.
Ejemplos:
$ expr 2+3
5
$ expr 2|* 3
Operacin de Sistema Operativo Multiusuario

de estudio que potencialicen su estilo


de aprendizaje.

$ a+4
$a+ exp. $a + 3
$echo $a
7
$expr $a + ^

13
$_
$expr 3+2

Trabajo en equipo
Introducir texto con vi y guardarlo
en un fichero con extensin.doc,
colocado en un subdirectorio
situado en su directorio de arranque.

32
$_

CONTEXTUALIZACIN
Competencia analtica
Promover habilidades cognitivas que
les permitan utilizar hbitos y tcnicas

Realizacin del ejercicio


Elabora la prctica de ejercicio nm.
3 Introducir un texto con vi .
Manejar el editor vi.
Realizar ejercicios de personalizacin
del vi, mover bloques, recuperar
archivos y efectuar operaciones.

RESULTADO DE APRENDIZAJE
1.4 Manejar el shell de UNIX mediante instrucciones de usuario.

1.4.1 SHELL.

Funciones
rdenes.

del

intrprete

de

El intrprete de comandos ( shell ) es el


interfase bsico que ofrece UNIX de cara
al usuario. Adems de ejecutar otros
programas, posee un lenguaje propio as
como numerosas caractersticas adicio
nales que se estudiarn en un captulo
posterior.
Operacin de Sistema Operativo Multiusuario

Utilidades de fbrica; normalmente se


trata de programas ejecutables que vienen
junto con el Sistema Operativo; algunas
de ellas son:
Compiladores: C, assembler y en algunos
casos Fortran 77 y C++.
Herramientas de edicin: Editores (vi,ex),
formateadores (troff), filtros ...
Soporte de comunicaciones: Herramientas
basadas en TCP/IP (telnet,ftp ...)

59

Programas de Administracin del Sistema


(sysadm, sa, va..... )
Utilidades diversas y juegos ( ste ltimo
se suele instalar aparte ).

Modos de invocar una orden.

Lo primero que la mayor parte de los


usuarios aprenden del editor VI es que
cuenta con dos modos: comando e
insertar. El modo comando permite
introducir rdenes para manipular el
texto. Normalmente stas rdenes no
tienen ms que uno o dos caracteres,
pudiendo as introducirse con pocas
pulsaciones. El modo insertar hace que
todo lo que se pulse en el teclado se
incorpore al archivo.
VI se inicia en el modo comando. Hay
varias formas de pasar al modo insertar.
La ms comn consiste en teclear a o i.
Ms abajo se describen ambas rdenes.
Una vez se encuentre en el modo insertar,
podr salir de l pulsando la tecla escape
(si su terminal no tiene esa tecla, debera
funcionar ^[ ). Puede pulsar escape dos
veces seguidas y de esa manera no habr
duda de que se encuentra en modo
comando. Pulsar escape mientras se
encuentra en modo comando no hace que
el editor salga de dicho modo; sonar un
pitido para confirmarle que se encuentra
ya en ese modo.
En el modo comando las rdenes siguen
normalmente el siguiente esquema (entre
corchetes
aparecen
las
variables
optativas):[cifra] comando [dnde]
La mayor parte de las instrucciones
constan de un solo carcter, incluidas
60

aquellas en las que es preciso pulsar la


tecla Ctrl. En el siguiente apartado
describiremos las instrucciones que ms
suelen emplearse en el editor VI.

La cifra es cualquier nmero que comience


por un carcter entre 1 y 9. Por ejemplo,
la instruccin x borra el carcter que se
encuentra en el lugar del cursor. Si, dentro
del modo comando, se teclea 23x, se
borrarn 23 caracteres.
Algunas rdenes utilizan un parmetro
optativo -dnde-, en el que puede
especificarse cuntas lneas o a qu parte
del documento afecta la orden. El
parmetro dnde puede ser tambin
cualquier orden que mueva el cursor.

Histrico de rdenes.

ar Creacin y mantenimiento de libreras


de mdulos.
at Ejecucin de rdenes en la fecha y hora
que se le especifique.
banner Escritura en la salida estndar en
caracteres grandes.
basename Obtencin de la parte final del
nombre-camino (path-name).
bc Calculadora de precisin especificable
(hasta 80 decimales).
cal Consulta al calendario del sistema.
calendar Consulta
actividades.

la

agenda

de

cancel Cancelacin de una peticin de


impresin.
cat Volcado y/o encadenado
contenido de uno o varios archivos.

del

Operacin de Sistema Operativo Multiusuario

cc Compilador de lenguaje c.
cd Cambio de directorio actual de trabajo.
chgrp Cambio de propiedad de grupo de
archivos o directorios.
chmod Cambio de permisos de un archivo
o directorio.
chown Cambio de propietario de un
archivo o directorio.
cmp Comparacin del contenido de 2
archivos.
cp Copia de archivos.
en

notacin

polaca

df Consulta del espacio libre en disco.


find Bsqueda de archivos en el rbol de
archivos y directorios.
finger Informacin sobre los usuarios del
sistema.
id Identificacin del usuario conectado y
del grupo al que pertenece.
login Conexin a una sesin de trabajo.
logname
usuario.

Nombre

de

news Consulta a las novedades del


sistema.
passwd Introduccin o cambio de la
palabra de paso (password) del usuario.
pwd Consulta del directorio actual de
trabajo
rm Borrado (eliminacin) de archivos.
rmdir
Borrado
directorios.

(eliminacin)

de

tty Identificacin de la terminal.

date Fecha y hora del sistema.


dc Calculadora
inversa.

mv Cambio de directorio y/o de nombre


de un archivo.

conexin

del

ls Listado del contenido de un directorio.


mail Correo electrnico entre usuarios.
mailx Sistema de mensajera interactivo.
man Consulta al manual del sistema.
mesg Control del permiso de escritura,
por otros usuarios, sobre la terminal.
mkdir Creacin de nuevos directorios.
more Visualizacin del contenido de un
archivo, pantalla a pantalla.
Operacin de Sistema Operativo Multiusuario

wall Envo de un mensaje a todas las


terminales conectadas.
who Lista a los usuarios conectados al
sistema.
who am i Identificacin completa del
usuario.
write
Comunicacin
terminales.

directa

entre

Archivos de configuracin.
Si bien la estructura de los directorios
vara entre versiones y dialectos de UNIX,
podemos mencionar algunos de los ms
representativos.
/bin,/usr/bin,/usr/sbin,/usr/ucb:
Directorios de programas ejecutables.
Es aqu donde se mantienen la mayora de
los comandos.
(/bin/ls , /bin/vi , /usr/bin/chmod)/etc :
Programas y ficheros diversos : aqu
residen la mayora de los archivos de
configuraci

61

n y las shell-scripts de arranque y parada


del equipo.
/tmp,/usr/tmp,/var/tmp :
Directorios temporales; el propio
sistema
operativo
los
usa
como
almacenamiento intermedio en muchas de
sus tareas; normalmente, todo el
contenido de stos directorios se borra al
apagar el equipo.

(/usr/spool/lp),
de comunicaciones (/usr/spool/uucp) y
dems.
/usr/mail: En ste directorio se halla el
correo de todos los usuarios.
/usr/preserve,/var/preserve:
Aqu
se
guardan todas las copias de ficheros
incompletamente terminados por los
editores de UNIX.

/home,/usr/acct,/var/acct :
/dev:
Directorio
dispositivos.

Directorios de usuarios.
/var/adm,/usr/adm:
Directorios de administracin: programas
de
administrador,
ficheros
con
informaciones de la paquetera instalada y
dems.
/usr/log, /var/log:
Directorios para ficheros de log de
sistemas y de programas. Normalmente,
existir un fichero console con toda la
informacin que se desva a la consola del
sistema, y varios ficheros informativos, de
advertencia y de errores del sistema.
/lib,/usr/lib:

62

spool

de

ficheros

ficheros

de

/usr/games: Juegos. Casi nunca estn


instalados.

rdenes relacionadas con el entorno


Las variables del shell
La interfaz de usuario tpica en UNIX
Varias clases: sh, csh, bash, ksh...
Lenguaje de programacin de shell
Control de procesos concurrentes, etc.

Metacaracteres

Directorios de archivos de librera.


/usr/spool:
Directorios de
impresin.

de

de

Cuando escribimos cualquier comando y


pulsamos <INTRO>, es la shell y no UNIX
quien se encarga de interpretar lo que
estamos escribiendo y ordenando que se
ejecute dicho comando. Aparte de los
caracteres normales, la shell interpreta
otros caracteres de modo especial: un
grupo de caracteres se utiliza para generar
Operacin de Sistema Operativo Multiusuario

nombres de ficheros sin necesidad de


teclearlos explcitamente.
Cuando la shell est interpretando un
nombre, los caracteres * ? [ ] se utilizan
para generar patrones. El nombre que
contenga alguno de stos caracteres es
reemplazado por una lista de los ficheros
del directorio actual cuyo nombre se
ajuste al patrn generado.
Las reglas de generacin de patrones son:
* Vale cualquier cadena de caracteres.
? Vale un carcter cualquiera.
[ .. ] Vale cualquiera de los caracteres que
coincida con los que estn entre
corchetes.
Ejemplo: Supongamos que en nuestro
directorio actual tenemos los siguientes
ficheros:
$ ls
tonto
tonta
diario
mayor

Veamos cada una de las salidas


correspondientes a las reglas anteriores:
$ ls * (valen todos)
tonto
tonta
diario
mayor
$ ls *o (todos, pero tienen que acabar en o)
tonto
diario
$ ls tont? (que empiecen por tont y cualquier otro
carcter)
tonto
tonta
$ ls tont[oa] (que empiecen por tont y el siguiente
sea o a )

Operacin de Sistema Operativo Multiusuario

1.4.2 REDIRECCION
SALIDA.

DE

ENTRADA

Redireccin de entrada.

La redireccin de entrada estndar


estndares se puede redirigir ( prog
<entrada >salida).

Redireccin de salida.

Para un proceso de este tipo, se leen


caracteres de un flujo (stream) estndar, y
se escriben en un flujo estndar.

Redireccin de errores.

Las redirecciones de errores se programan


en caracteres de flujo estndar envindose
a un archivo para su evaluacin.

Deteniendo
trabajos.

Reiniciando trabajos.

reiniciando

Ya
que,
como
hemos
explicado
anteriormente, la shell es un programa,
existen varios, cada uno con sus
caractersticas
particulares.
Veamos
algunas de ellas:
Bourne shell ( /bin/sh ): Creada por Steven
Bourne de la AT&T. Es la ms antigua de
todas y, por tanto, la ms fiable y
compatible entre plataformas. Esta es en
la que se basan las explicaciones
posteriores.
Korn shell (/bin/ksh): Creada por David G.
Korn de los laboratorios Bell de la AT&T
.Ms moderna, toma todos los comandos
de la Bourne y le aade varios ms as
como varias caractersticas de redicin
63

interactiva de comandos, control de


trabajos y mejor rendimiento en trminos
de velocidad que la anterior. Existen dos
versiones, una primera maldita y la
actual,
de
16/11/1988.
(podemos
averiguar qu versi&oa cute;n tiene la
nuestra ejecutando el comando what
/bin/ksh) Pero no es oro todo lo que
reluce; cuando se trata de situaciones
extremas complicadas donde la ksh
falla, la de Bourne normalmente est ms
blindada&qu ot; .
C Shell, desarrollada por Bill Joy en la
Universidad de California y, por tanto, ms
extendida entre UNIX BSD. Bastante ms
crptica que la de Bourne, incorpora no
obstante sustanciales mejoras .
1.4.3 COMANDOS AVANZADOS.

Filtros.

Filtro.
Se crea con el fin de incluir solo la
informacin importante, y as evitar
duplicados de informacin.

Otros filtros
UNIX permite el uso de conductos y filtros
en la lnea de comandos. Un conducto
(pipe) redirige la salida de un programa
para que se convierta en entrada de otro.
Un filtro es un programa elaborado para
procesar un flujo de datos de entrada y
producir otro de datos de salida. Los
conductos y filtros suelen usarse para unir
utileras y realizar alguna tarea especfica.
64

Pipelines
La salida de un proceso se puede conectar
a la entrada de otro:
p1 | p2 | p3
Se emplean archivos especiales llamados
tuberas o pipes, que funcionan como
colas FIFO
Filtros UNIX

Orden FIND.

El comando find muestra en pantalla


directorios y/o ficheros atendiendo a
opciones determinadas. Si bien la sintaxis
es d emasiado extensa para estudiarla en
su totalidad, conviene ver algunos
ejemplos:
El comando toma como argumentos
declaraciones
en
formato
find
<directorio base> <opciones> -print.
Por tanto, para sacar en pantalla todos los
ficheros y directorios del disco, valdra
con:
find / -print

Si se desean
directorios:

slo

ficheros

slo

find / -type f -print

find / -type d -print

respectivamente.
Buscar todos los ficheros y directorios que
tengan ms de 30 das de antigedad:
find / -atime +30 -print

El resto de las opciones sirve para buscar


ficheros con determinados permisos,
Operacin de Sistema Operativo Multiusuario

mayores menores que un determinado


tamao.

Editor de flujo de SED.

Existe una familia de programas en Unix


que lee alguna entrada, realiza alguna
transformacin y escribe una salida. Entre
ellos figuran el grep, egrep, fgrep, tail,
sort, wc, etc. y se denominan filtros.
Existen tambin dos transformadores de
datos o filtros programables ya que
permiten mediante un simple lenguaje de
programacin
indicar
que
comportamiento seguir con los datos de
entrada, ellos son el sed y awk (ambos
derivan de una generalizacin del grep).
grep:
La sintaxis es: grep patrn archivos
Examina los archivos o la entrada
enstndar en busca del patrn e imprime
cada lnea que lo contenga. Por ejemplo:
grep -n variable *.[ch] Busca variable en *.c o *.h
grep From $MAIL Muestra los encabezados del los
mensajes en el buzn
grep From $MAIL | grep -v Pirulo Busca los
mensajes que no vengan del usuario pirulo.
grep -y pirulo $HOME/lib/agenda Busca el telfono
de pirulo en agenda
who | grep pirulo Mira si pirulo se ha conectado

La opcin -n imprime nmeros de lnea, -v


invierte el sentido (las que no satisfacen), y permite que se busque todo (con
maysculas o minsculas). Existen adems
ciertos caracteres que indican al comando
alguna accin a realizar en forma
predeterminada:
c (normal, es decir indica el caracter c)
\c (indica que si el caracter c era especial ha
perdido su significado)
^ Indica inicio de lnea
$ Indica final de lnea
Operacin de Sistema Operativo Multiusuario

. Cualquier caracter individual


[...] cualquier caracter en ...; el rango tipo a-z es
vlido
[^...] Los que no se encuentren en ...
\n lo igual al n-simo
r * cero o ms ocurrencias de r
r+ una o ms ocurrencias de r
r? cero o una ocurrencia de r
r1r2 r1 seguido de r2
r1|r2 r1 o r2
\(r\) expresin regular marcada r

Ejemplos: grep ^From $MAIL Imprime


las lneas que comienzan por From del
buzn. grep [^0-9] *.c Imprime las lneas
que contienen algn caracter que no sea
un dgito. ls -l | grep ^d Lista los
nombres de los subdirectorios ls -l | grep
^rw- Lista los archivos que los
permisos del public sean rwx * para cualquier cadena que comienza por x
[a-z][A-Z] * cualquier cadena alfabtica
reconoce cualquier cosa hasta una nueva lnea
.*x hasta la ltima x en el rengln

Debe tenerse en cuenta que el * se aplica


slo una vez, por ejemplo xy * reconoce
una secuencia con xy y no xyxyxyx,
adems cualquier nmero incluye el cero
por ejemplo [a-zA-Z] * busca una cadena
de una letra seguida de cero ms letras.
fgrep y egrep permiten buscar cadenas
mltiples (son ms completos que el
grep).
El fgrep -f file permite leer de file los
patrones a buscar. Ambos aceptan los
caracteres igual que el grep per con
adiciones: los parntesis agrupan por
ejemplo (xy) * buscar la cadena vaca, xy,
xyxyx y as sucesivamente.
La barra vertical es un operador or:
piru(melon|lindon) encontrar pirumelon
o pirulindon. Adems x+ reconoce una o
ms x y x? reconoce cero o una pero no
varias.

65

sed:
El sed deriva directamente del ed por lo
cual es fcil de aprender. La idea es
sencilla:
sed lista de cmd del ed archivos
Lee un rengln a la vez a partir de los
archivos de entrada; aplica los comandos
de la lista por ordena a cada rengln y
escribe su forma editada en la salida
estndar. Recordar que sed no modifica
los archivos de entrada, sino que produce
una salida modificada que hay que
redireccionar si se quiere guardar.
sed s/UNIX/UNIX(tm)/g archivos salida

Reemplaza en archivos UNIX por UNIX(tm)


y los almacena en el archivo salida. Esta es
una mala idea pues significa utilizar un
archivo temporal para modificar el
contenido de archivos, pero hay solucin
consultar el comando overwrite.
Supongamos utilizar el du -a ./ dar una
lista como
y queremos eliminar los nmeros y el tab
que hay antes de la a:
du -a ./ | sed s/.\t//
a.1
a.2
a.3

La sustitucin borra todos los caracteres


(.*) hasta incluir el tabulador (puesto
como \t) de la derecha.
sed 3q archivo imprime solo los tres primeros
renglones de archivo y termina.
sed -f file lee los comandos de file
sed /patrn/q imprime hasta incluir la primera lnea
que contenga patrn.
sed /patrn/d cancela todas las lneas que
contengan patrn.
sed -n /patrn/p donde -n deshabilita la impresin
automtica en pantalla y p imprime solo la que
tengan patrn.

66

sed s/$/\/ inserta una lnea en blanco al final de


cada lnea.
sed -n 20,30p imprime desde la lnea 20 a la 30.
sed 1,10d borra desde la 1 a la 10 (es igual tail +
11)
sed 1,/^$/d borra hasta la primera lnea en blanco
inclusive
sed -n /^$/,/^end/p imprime cada grupo de lneas
desde la vaca hasta la que comienza por end.
sed $d borra la ltima lnea.

Resumen de comandos del sed:


a\ anexar lneas en la salida hasta una que no
termine en \
b label [branch] salto hasta el comando : label
c\ cambiar lneas al siguiente texto
d borrar lnea
i\ insertar texto siguiente antes de la siguiente
salida
l listar lnea incluido caracteres no imprimibles
p imprimir lnea
q abandonar
r file leer archivo y copiar en la salida
s/viejo/nuevo/mod sustituir viejo por nuevo si mod
=g reemplazar todas la
ocurrencias, =p imprimir, f=w file escribir en file
t label prueba: ir a label si se hace una sustitucin
en el rengln actual
w file escribir en file
y/str1/str2/ reemplazar cada caracteres de str1 con
cada caracter de str2 (sin rango)
= imprimir nmero de lnea
!cmd hacer sed cmd slo si no se selecciona la
lnea
: label poner label en los comandos b y t
{ considerar los comandos hasta el siguiente } como
un grupo

CONTEXTUALIZACIN
Competencia analtica
Aplicar la tecnologa de sistemas
operativos como administrador de
aplicaciones y procesos de utilidad al
quehacer cotidiano.
Operacin de Sistema Operativo Multiusuario

Realizacin del ejercicio


Sustituir el prompt por otro que
visualice la cadena mande>.
Modifica su fichero profile de modo
que al iniciar una sesin de trabajo
aparezcan por pantalla, la fecha, la
hora, el directorio de trabajo y el
nmero de personas que estn
conectadas en ese momento al
sistema.
Crea una orden denominada dir que
sea equivalente a la orden ls -l y
aadir la sentencia anterior al
fichero profile.
Listar del directorio /usr/bin aquellos
ficheros cuyo nombre comience por
la letra c.

Resumen
Interpreta instrucciones a travs de
shell.

Operacin de Sistema Operativo Multiusuario

67

PRCTICA DE EJERCICIO Y LISTA DE COTEJO


Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Comandos iniciales UNIX

Propsito de la
prctica:

Al finalizar la prctica, el alumno ejecutara comandos bsicos del sistema operativo


por medio del shell de UNIX.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III)

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

68

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Entrar al UNIX Shell
Digitar el comando who y teclear enter, anotar resultado.
Digitar el comando who am I y teclear enter, anotar resultado.
Digitar write [userid] y teclear enter, escribir un mensaje teclear ctrl. d y teclear enter, anotar resultado.
Digitar el comando mesg y teclear enter, anotar resultado.
Digitar el comando data + son las %r del %d de %y teclear enter, anotar resultado.
Digitar el comando banner con parmetro Sali a comer y teclear enter, anotar resultado.
Digitar el comando cal 2005, y teclear enter, anotar resultado
Digitar el comando mcal 11 2005 y teclear enter, anotar resultado
Digitar el comando uname -a y teclear enter, anotar resultado
Digitar el comando passwod y teclear enter, anotar resultado
Digitar el comando man banner y teclear enter, anotar resultado
Repetir los procedimientos con asesora del PSP.
Apagar el equipo de cmputo

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje toner, discos y papel.

Operacin de Sistema Operativo Multiusuario

69

Lista de cotejo de la prctica


Nmero 1:

Comandos iniciales UNIX

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

No introdujo objetos extraos en los dispositivos de disco,


No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Encendi el equipo de cmputo.
Abri sesin de emulacin UNIX.
Entr al UNIX Shell
Digit el comando who y anot resultado.
Digit el comando who am I y anot resultado.
Digit write [userid], escribi mensaje y anot resultado.
Digit el comando mesg y anot resultado.
Digit el comando data tonel parmetro indicado y anot resultado.
Digit el comando banner con parmetro y anot resultado.
Digit el comando cal 2005, y anot resultado
Digit el comando mcal 11 2005 y anot resultado
Digit el comando uname -a y anot resultado
Digit el comando passwod y anot resultado
Digit el comando man banner y anot resultado

70

Operacin de Sistema Operativo Multiusuario

Si

Desarrollo

No

No
Aplica

15. Repiti los procedimientos con asesora del PSP.


16. Apag adecuadamente el equipo de cmputo
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

71

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Creacin de directorios

Propsito de la
prctica:

Al finalizar la prctica, el alumno crear directorios siguiendo los lineamientos de


las estructuras de archivos y directorios existentes.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

72

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Identificar el directorio raz
Identificar el directorio home y ubicarse en l.
Identificar el directorio pc11user y ubicarse en l.
Crear los directorios programas y alumno
Digitar el comando mkdir
Digitar las opciones p
Digitar el path a crear home/pc11user/programas/alumno como argumento de comando
Digitar el comando ls l
Digitar el comando pr redireccionando al dispositivo de impresin
Imprimir los resultados
Repetir los procedimientos con asesora del PSP creando otros directorios.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje toner, discos y papel.

Operacin de Sistema Operativo Multiusuario

73

Lista de cotejo de la prctica


Nmero 2:

Creacin de directorios

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.

1.
2.
3.
4.
5.
6.
7.
8.
9.

No introdujo objetos extraos en los dispositivos de disco,


No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Encendi el equipo de cmputo.
Abri sesin de emulacin UNIX.
Identific el directorio raz
Identific el directorio home y se ubic en l.
Identific el directorio pc11user y se ubic en l.
Cre los directorios programas y alumno
Digit el comando mkdir
Digit las opciones p
Digit el path a crear home/pc11user/programas/alumno como argumento
de comando
10. Digit el comando ls l
11. Digit el comando pr redireccionando al dispositivo de impresin
12. Imprimi resultados
13. Repiti los procedimientos con asesora del PSP creando otros directorios.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:
74

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Manejo de archivos.

Propsito de la
prctica:

Al finalizar la prctica, el alumno crear, modificar y borrar archivos en una


sesin de UNIX

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

75

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Digitar el comando ls y teclear enter, anotar resultados.
Digitar el comando cd nombre del directorio y teclear enter, anotar resultados.
Digitar el comando cd \ y teclear enter, anotar resultados.
Digitar el comando mkdir prueba y teclear enter, anotar resultados.
Digitar el comando ls l y teclear enter, anotar resultados.
Digitar el comando cd/usr/bin y teclear enter, anotar resultados.
Digitar el comando ls 1 more y teclear enter, anotar resultados.
Digitar el comando cd\ y teclear enter, anotar resultados.
Teclear CTRL d para salir de shel de UNIX
Apagar el equipo de cmputo
Repetir los procedimientos con asesora del PSP creando otros directorios.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje toner, discos y papel.

76

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


Nmero 3:

Manejo de archivos

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de emulacin UNIX.
3. Abri sesin de emulacin de terminal UNIX.
4. Digit el comando ls y anot resultados.
5. Digit el comando cd nombre del directorio y anot resultados.
6. Digit el comando cd \ y anot resultados.
7. Digit el comando mkdir prueba y anot resultados.
8. Digit el comando ls l y anot resultados.
9. Digit el comando cd/usr/bin y anot resultados.
10. Digit el comando ls 1 more y anot resultados.
11. Digit el comando cd\ y anot resultados.
12. Tecle CTRL d para salir de sep de UNIX
13. Apag el equipo de cmputo
14. Repiti los procedimientos con asesora del PSP creando otros archivos.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

77

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Manejo de texto con vi

Propsito de la
prctica:

Al finalizar la prctica, el alumno redactar un texto utilizando del editor vi para


familiarizarse con movimientos de cursor y manejo de texto.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

78

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Escribir n el shell vi prueba.doc.
Introducir el siguiente texto con vi.
Turismo en Grecia
En 2002 unos 14,2 millones de turistas eligieron Grecia como destino de sus vacaciones, para visitar sus
antigedades y relajarse al sol del Mediterrneo. Ese ao, las cifras reflejaron una entrada de dinero por
turismo de 3.989 millones de dlares.
Comunicaciones en Grecia
Grecia cuenta con servicios de radio y televisin, tanto privados como estatales. En 1997 el pas tena unos
5 millones de receptores de radio y 5 millones de aparatos de televisin. La mayora de la prensa diaria
griega se publica en Atenas o Salnica. Entre los diarios de mayor tirada estn el Apogevmatini, el
Eleftherotypia y el Ta Nea, todos ellos impresos en Atenas.

5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

Situar el cursor al final del texto.


Ir al principio del texto.
Situar el cursor al principio de la lnea 3.
Ir ahora al final de la lnea anterior.
Eliminar la lnea actual.
Copiar el primer prrafo de texto en un buffer de nombre a.
Teclear :wq.
Teclear ctrl.-d para salir de shell.
Apagar el equipo de cmputo.
Repetir los procedimientos con asesora del PSP creando otros directorios.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje toner, discos y papel.

Operacin de Sistema Operativo Multiusuario

79

Lista de cotejo de la prctica


Nmero 4:

Creacin de directorios

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de emulacin UNIX.
3. Escribi el sep vi prueba.doc
4. Introdujo el texto indicado
5. Situ el cursor al final del texto.
6. Posicion el cursor al principio del texto
7. Situ el cursor al principio de la lnea 3
8. Situ el cursor al final de la lnea anterior
9. Elimin la lnea indicada
10. Copi el primer prrafo de texto en un buffer de nombre a
11. Digit :wq
12. Tecle ctrl.-d para salir de shell
13. Apag el equipo de cmputo
14. Repiti los procedimientos con asesora del PSP creando otros directorios.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:
80

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Ordenamiento de informacin

Propsito de la
prctica:

Al finalizar la prctica, el alumno ordenar de acuerdo a diferentes criterios


informacin en un archivo existente.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

81

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Identificar el directorio raz
Identificar el directorio home y ubicarse en l.
Crear un directorio denominado diurno
Crear un directorio denominado dirdos
Crear un directorio usuario y ubicarse en l.
Crear archivo llamado uno con 10 renglones numerados del 1 al 10 y escribir dos columnas de palabras
separadas por: (dos puntos).
Crear archivo llamado dos con 10 renglones numerados del 11 al 20 y escribir dos columnas de
nmeros aleatorios separados por comas.
Utilizando los archivos uno y dos digitar el comando sort con la opcin -m , anotar resultados
Utilizando los directorios diurno, dardos y usuario digitar el comando sort con la opcin d, anotar
resultados
Utilizando el archivo uno digitar el comando sort con la opcin f, anotar resultados
Utilizando el archivo dos digitar el comando sort con la opcin r, anotar resultados
Utilizando el archivo uno digitar el comando sort con la opcin t:, anotar resultados
Digitar el comando sort utilizando el archivo uno y especificar un archivo de salida con la opcin o
Digitar el comando sort utilizando el archivo dos y especificar orden numrico con la opcin n
Repetir los procedimientos con asesora del PSP creando otros directorios.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

82

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


Nmero 5:

Ordenamiento de informacin.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.

Desarrollo

Si

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

No introdujo objetos extraos en los dispositivos de disco,


No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Encendi el equipo de cmputo.
Abri sesin de emulacin UNIX.
Identific el directorio raz
Identific el directorio home y se ubic en l.
Cre un directorio denominado diurno
Cre un directorio denominado dirdos
Cre un directorio llamado usuario y ubicarse en l.
Cre archivo llamado uno con 10 renglones numerados del 1 al 10 y
escribir dos columnas de palabras separadas por: (dos puntos).
Cre archivo llamado dos con 10 renglones numerados del 11 al 20 y
escribir dos columnas de nmeros aleatorios separados por comas.
Digit el comando sort con la opcin -m , anot resultados
Digit el comando sort con la opcin d, anot resultados
Digit el comando sort con la opcin f, anot resultados
Digit el comando sort con la opcin r, anot resultados

Operacin de Sistema Operativo Multiusuario

9 10.

1 12.

1 14.

83

Si

Desarrollo

No

No
Aplica

14. Utiliz el archivo uno, digit el comando sort con la opcin t:, anot
resultados
15. Digit el comando sort utilizando el archivo uno y especific un archivo de
salida con la opcin o
16. Digit el comando sort utilizando el archivo dos y especific orden numrico
con la opcin n
17. Repiti los procedimientos con asesora del PSP creando otros directorios.
4 Deposit los residuos recuperables.

Observaciones:
PSP:
Hora de
inicio:

84

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica

Manejo de archivos con el comando out

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejara archivos existentes de acuerdo con los


comandos de UNIX que le permitan la manipulacin de los archivos.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

85

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Identificar el directorio raz
Identificar el directorio home y ubicarse en l.
Crear el directorio pcuser y ubicarse en l.
Crear un archivo llamado data.fil de acuerdo a:
01 : Ana Ramrez: 5556-78-90 : Mxico D.F. : Presidente
02: Laura Daz: 5589-22-22 : Mxico D.F.: Gerente
03: Laura Rosales: 5555-11-22 : Mxico D.F.: Ventas

7. Digitar el comando cut de acuerdo a cut d: -f2,4,5 data.fil


8. Verificar que la salida sea:
Ana Ramrez: Mxico D.F.: Presidente
Laura Daz: Mxico D.F.: Gerente
Laura Rosales: Mxico D.F.: Ventas
9. Borrar el archivo data.fil
10. Borrar el directorio pcuser
11. Repetir los procedimientos con asesora del PSP explorando todas las opciones del comando.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

86

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


nmero 6:

Manejo de archivos con el comando cut.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de emulacin UNIX.
3. Identific el directorio raz
4. Identific el directorio home y se ubic en l.
5. Cre el directorio pcuser y se ubic en l.
6. Cre el archivo data.fil
7. Digit el comando cut de acuerdo a lo especificado
8. Verific el resultado de la ejecucin del programa
9. Borr el archivo data.fil
10. Borr el directorio pcuser
11. Repiti los procedimientos con asesora del PSP creando otros directorios.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

87

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Manejo de permisos

Propsito de la
prctica:

Al finalizar la prctica, el alumno modificar y limitar atributos de permisos de


propietario y grupo para lectura y escritura a travs de comandos.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

88

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Encender equipo de cmputo.


Abrir sesin de UNIX o emulacin de terminal UNIX.
Entrar al Unix Shell.
Teclear cd \ , teclear enter.
Teclear mkdir prueba, teclear enter.
Teclear pwd, teclear enter.
Teclear en el directorio prueba, vi primer.doc, teclear enter.
Escribir el siguiente texto: Este es mi primer cambio de permisos.
Salvar el archivo con la instruccin: Wq, teclear enter.
Cd \, teclear enter.
Cd prueba, teclear enter. ls l , teclear enter.
Teclear chmod 354 primer, teclear enter.
Teclear ls l , teclear enter.
Regresar los permisos anteriores.
Repetir los procedimientos con asesora del PSP cambiando permisos a otros archivos.
Teclear ctrl. d para salir del shell
Apagar el equipo de cmputo

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Operacin de Sistema Operativo Multiusuario

89

Lista de cotejo de la prctica


Nmero 7:

Manejo de permisos

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

No introdujo objetos extraos en los dispositivos de disco,


No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Encendi el equipo de cmputo.
Abri sesin de UNIX.
Tecle cd \
Tecle mkdir prueba
Tecle pwd
Tecle en el directorio prueba, vi primer.doc, tecle enter.
Escribi el texto: Este es mi primer cambio de permisos
Salv el archivo con la instruccin: wq, tecle enter.
Tecle cd\, tecle enter
Tecleo cd prueba, tecle enter
Tecle ls l, dio enter
Tecleo chmod 354 primer, dio enter
Tecle ls l, dio enter
Regres los permisos anteriores
Repiti los procedimientos con asesora del PSP cambiando permisos a otros
archivos.
16. Sali del shell
17. Apag el equipo
4 Deposit los residuos recuperables.

90

Operacin de Sistema Operativo Multiusuario

Observaciones:

PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

91

Unidad de
aprendizaje:

Prctica nmero:

Nombre de la
prctica:

Manejo de direccionamientos.

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar direccionamientos entre directorios del


sistema a travs de comandos.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo

Herramienta

Terminal o Computadora
(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

92

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de emulacin de terminal UNIX.
Entrar al Unix Shell.
Hacer un esquema que refleje la estructura del rbol de los principales directorios del sistema hasta el
tercer nivel.

fuentes

C++

bin

doc
ps

utiles
correo

5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

Averiguar de todas las formas que conozca (al menos tres) cul es su directorio HOME.
Cree un subdirectorio que se llame pruebas cuyo padre sea el directorio raz. Qu ocurre y por qu?.
Cree el siguiente rbol de directorios a partir de su directorio HOME:
Qu secuencia de rdenes ha utilizado?.
Sitese en el subdirectorio utiles e intente borrarlo desde l mismo.
Desde el subdirectorio utiles, sitese en el subdirectorio c
Utilizando direccionamiento relativo.
Indique todas las formas posibles para situarse desde el subdirectorio C, a su directorio HOME.
Sitese en el subdirectorio fuentes usando direccionamiento absoluto.
Intente borrar, desde el subdirectorio fuentes, el subdirectorio docs usando la orden rmdir. Qu ocurre y
por qu?
15. Teclear ctrl.-d para salir de shell.
16. Repetir los procedimientos con asesora del PSP.
17. Apagar el equipo de cmputo
Nota: El instructor deber adecuar la prctica al equipo con el que se cuenta.
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Operacin de Sistema Operativo Multiusuario

93

Lista de cotejo de la prctica


Nmero 8:

Manejo de direccionamientos

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de emulacin UNIX.
3. Entr a Unix Shell.
4. Hizo el esquema hasta el tercer nivel.
5. Averigu en al menos tres formas cul es su directorio HOME.
6. Cre el subdirectorio pruebas
7. Explic que ocurri y porqu
8. Cre completo el rbol de directorios.
9. Anot las secuencias de ordenes utilizadas
10. Se situ en utiles y lo intent borrar
11. Desde utiles se situ en c utilizando direccionamiento relativo
12. Indic las formas posibles para situarse desde c en home
13. Se situ en fuentes usando direccionamiento absoluto
14. Uso la orden rmdir
15. Anot lo que ocurri y por qu
16. Sali del shell de UNIX.
17. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

94

Operacin de Sistema Operativo Multiusuario

Observaciones:

PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

95

RESUMEN

El S.O. Unix fu creado a finales de la


dcada de los 60 sobre la base de varios
trabajos realizados conjuntamente por el
MIT y Laboratorios BELL. Dichos trabajos
(proyecto MULTICS) iban encaminados a la
creacin de un macrosistema de
computacin que diese servicio a miles de
usuarios. Si bien el proyecto fracas,
posiblemente
por
intentar
abarcar
demasiado contando con unos elementos
hardware limitados en sa poca, influy;
decisivamente sobre la evolucin de los
sistemas informticos posteriores.
Un antiguo componente de dicho
proyecto (Ken Thompson) desarroll por
su
cuenta
un
sistema
operativo
monousuario con la caracterstica principal
de un sistema de archivos jerrquico.

96

El sistema encontr muchos entusiastas y


se hizo portable al reescribirse casi
ntegramente en lenguaje C, y se
suministr en cdigo fuente a las
universidades como objeto de formacin.
As, la universidad de California en
Berkeley
retoc
dicho
sistema
(fundamentalmente, comunicaciones y
diversas utilidades como el editor vi), y
liber lo que luego sera el BSD, uno de los
dos dialectos principales del UNIX.
Un sistema UNIX en modo multiusuario
(puede arrancarse en modo monousuario
para labores de administracin) espera la
entrada de un usuario al sistema, proceso
que recibe el nombre de login.

Operacin de Sistema Operativo Multiusuario

AUTOEVALUACIN DE CONOCIMIENTOS DEL CAPITULO 1

1.
2.
3.
4.

Para qu sirven los mens de compilacin?


Cul es la sintaxis de la instruccin MEN ?
Qu realiza la instruccin MESSAGE?
Qu instrucciones pueden asociarse a la instruccin ERROR para despliegue de
mensajes?
5. Cul es la sintaxis de la instruccin PROMPT?

Operacin de Sistema Operativo Multiusuario

97

Respuestas a las autoevaluaciones de conocimientos por captulo


CAPTULO 1
1.

Los mens de compilacin son utilizados para compilar el cdigo 4GL, o bien como
mdulo ejecutable, o bien como un mdulo ligable.

2.
men NOMBRE_DEL_MENU
command OPCION
command key (LISTA_DE_TECLAS)
command key (LISTA_DE_TECLAS) OPCION MENSAJE DE AYUDA PARA OPCION
help NUMERO_DE_AYUDA
instrucciones en 4gl
...
(continue menu)
(exit menu)
(next option OPCION
end men

3.

Se usa para desplegar una cadena de caracteres sobre la lnea de mensajes. La lnea de
mensajes default se ubica en la lnea 2 de la ventana activa.

4.
reverse
blink
underline
normal
bold
dim
invisible

5.
prompt TEXTO DEL MENSAJE ( attribute ( LISTA DE ATRIBUTOS ) )
for ( char ) NOMBRE DE VARIABLE
( help NUMERO DE AYUDA )
( on key ( LISTA DE TECLAS )
INSTRUCCIN
end prompt

98

Operacin de Sistema Operativo Multiusuario

ADMINISTRACIN DE PROCESOS DE SISTEMA OPERATIVO


MULTIUSUARIO.
Al finalizar finalizar la unidad, el alumno administrar cuentas, procesos y
archivos por medios de shell y comandos, para gestionar eficazmente todos
los procesos que conlleva el manejo de un Sistema Operativo Multisuario.

Operacin de Sistema Operativo Multiusuario

99

MAPA CURRICULAR DE LA UNIDAD DE APRENDIZAJE

Operacin de
Sistema operativo
Multiusuario

Mdulo

144 hrs.

Unidad de
Aprendizaje

1. Manejo de
ambiente de sistema
operativo
multiusuario.
55 hrs.

Resultados
de
Aprendizaje

100

2.Administracin de
procesos de
sistema operativo
multiusuario.
53 hrs.

2.1 Utilizar comandos con sus opciones por medio de instrucciones UNIX.

18 hrs.

2.2 Manejar la administracin de cuentas de UNIX con base a permisos


establecidos de usuarios
2.3 Organizar la informacin de archivos y discos mediante el sistema de
archivos.

18 hrs.
17 hrs.

Operacin de Sistema Operativo Multiusuario

SUMARIO

USO DE SHELL
RED
PARADA Y ARRANQUE DEL SISTEMA UNIX
ADMINISTRACION DE LOS USAURIOS Y GRUPOS
SISTEMA DE ARCHIVOS
ORDENES PARA ADMINISTRAR EL SISTEMA DE ARCHIVOS

RESULTADO DE APRENDIZAJE
2.1.

Utilizar comandos con sus opciones por medio de instrucciones UNIX

2.1.1 USO DE SHELL


.Paso de parmetros a un programa de shell.

Teclas usadas para el control de trabajos.

Operacin de Sistema Operativo Multiusuario

101

Variables especiales de shell


(funciones en programas de
shell).

Una variable de entorno en la shell es una


referencia a un valor. Se distinguen dos
tipos locales y globales.
Una variable local es aquella que se define
en el shell actual y slo se conocer en ese
shell durante la sesin de conexin
vigente.
Una variable global es aquella que se
exporta desde un proceso activo a todos
los procesos hijos.
Para crear una variable local :

Una variable se referencia anteponiendo a


su nombre el signo dlar $. Utilizando el
comando echo, que imprime por la
salida estndar el valor que se le indique,
podemos ver el contenido de algunas de
stas va riables:
# echo TERM
TERM
(!! MUY MAL!! - Hemos dicho que la variable se
referencia por $).
# echo $TERM
vt220
(AHORA SI)

Para borrar una variable, empleamos el


comando unset junto con el nombre de
la variable que queremos quitar, como:
# echo $cosa ( saca el valor de dicha variable )
ANTONIO ROMERO ( el que le dimos antes )

# cosa=ANTONIO ROMERO

Para hacerla global


# export cosa

Para ver qu variables tenemos:


# set
LOGNAME=root
TERM=vt220
PS1=#
SHELL=/bin/sh
( .. salen mas .. )

Una variable se inicializa con la expresin


<variable>=<valor> . Es imprescindible
que el carcter de igual = vaya SIN
espacios. Son lcitas las siguientes
declaraciones:
# TERM=vt220
# TERM=vt220"

(TERM toma el mismo valor en ambos


casos)
# contador=0

102

# unset cosa ( BORRAR la variable )


# echo $cosa
# ( ya no tiene nada )

Se debe tener cuidado con borrar


variables empleadas por programas
nativos de UNIX, tales como TERM! Si
borris sta variable, el editor vi
automticamente dejar de funcionar.
Otro problema que es susceptible de
suceder es el siguiente: supongamos una
variable denominada COSA y otra
denominada COSAS. La shell, en el
momento de evaluar la expresin
$COSAS, se encuentra ante la siguiente
disyuntiva:
Evaluar $COSA y pegar su contenido a la S (
<contenido de COSA> + S )
Evaluar $COSAS , empleando intuicin.

Cara a la galera, ambas evaluaciones por


parte de la shell seran correctas, pero
dependiendo de lo que nosotros
queramos hacer puede producir efectos
indeseados. A tal fin, en conveniente
Operacin de Sistema Operativo Multiusuario

utilizar los caracteres ;llave -{}- para


encerrar la variable que queremos
expandir. De tal forma, para reflejar
COSA, escribiramos:
${COSA}

Y para reflejar COSAS,


${COSAS}

Con lo que tenemos la seguridad de que


las
variables
siempre
son
bien
interpretadas. Las llaves se utilizan
SIEMPRE en el momento de evaluar la
variable, no de asignarle valores. No tiene
sentido
hacer
cosas
como
{COSAS}=tontera.
Algunas de las variables usadas por el
sistema por programas del mismo son:
HOME:: Directorio personal . Usado por el
comando cd , se cambia aqu al ser llamado sin
argumentos.
LOGNAME: Nombre del usuario con el que se ha
comenzado la sesin.
PATH: Lista de rutas de acceso, separadas por dos
puntos : y donde una entrada con un slo punto
identifica el direcorio actual. Son vlidas
asignaciones como:
# PATH=$PATH:/home/pepe:/home/antonio
PS1: Smbolo principal del indicador de
preparado del sistema. Normalmente, su valor
ser # -o $.
TERM: Tipo de terminal.
Podemos ver cmo se inicializan las variables
consultando los ficheros de inicializacin. Estos
ficheros son:
/etc/profile: Fichero de inicializacin global .
Significa que, tras hacer login, todos los usuarios
pasan a travs del mismo. Inicializa variables como
PATH, TERM ....
<directorio usuario>/.profile: Fichero particular,
reside en el home directory del usuario en
cuestin. Es, por tanto, particular para cada uno
de ellos y es aqu donde podemos configurar
cosas tale s como que les salga un men al entrar,
mostrarles el correo ...
Operacin de Sistema Operativo Multiusuario

Dependiendo de cuales sean las comillas


utilizadas en una expresin, los resultados
son los siguientes:
Carcter backslash \ :Quita el significado especial
del carcter a continuacin de la barra invertida.
Comillas simples :Quitan el significado especial
de todos los caracteres encerrados entre comillas
simples.
Comillas dobles :Quitan el significado especial
de todos los caracteres EXCEPTO los siguientes : $
(dolar) , \ (backslash) y ` (comilla de ejecucin).
Comillas de ejecucin :Ejecutan el comando
encerrado entre las mismas y sustituyen su valor
por la salida estndar del comando que se ha
ejecutado .

Es mejor, sobre todo en el ltimo caso,


ver algunos ejemplos:
Para sacar un cartel en pantalla que contenga
comillas, deberemos escaparlas pues, si no, la
shell las interpretara, como en:
# echo Pulse INTRO para seguir ( MAL!! - la
shell ve 4 comillas y no las sacara ! )
# echo Pulse \INTRO\ para seguir ( AHORA SI
sale bien )
Tambin, podramos haber escrito el texto entre
comillas simples:
# echo Pulse INTRO para seguir ( BIEN como
antes)

lo que ocurre es que de sta manera no se


interpretara nada; nos podra convenir
algo como:
# echo Oye, $LOGNAME pulsa INTRO para
seguir

y saldra:
Oye, $LOGNAME pulsa INTRO para seguir

Lo cual no vale. Habra que poner:


# echo Oye, $LOGNAME pulsa \INTRO\ para
seguir

y saldra:
Oye, root pulsa INTRO para seguir.

103

En el caso de comillas de ejecucin ,


podemos escribir:

Adems de stas, existen otras que


detallam os a continuacin:

# echo Oye, `logname` pulsa \INTRO\ para


seguir

$0 : Su contenido es el nombre de la shell-script


que estamos ejecutando.
$1 , $2 : Primer y segundo parmetro posicional.
$# : Nmero de parmetros que han pasado a la
shell.
$ * : Un argumento que contiene todos los
parmetros que se han pasado ( $1 , $2 ...) menos
el $0.
$? :Nmero donde se almacena el cdigo de error
del ltimo comando que se ha ejecutado.
$$ :Nmero de proceso actual (PID)
$! :Ultimo nmero de proceso ejecutado.

(sale bien, la shell sustituye el comando


logname por su resultado)
o bien, valdran expresiones como:
# echo Y estas en el terminal: `tty`

Y estas en el terminal /dev/ttyp002


Hay que imaginarse, por tanto, que la
shell ve el resultado del comando en la
lnea de ejecucin.
Valen
tambin,
como
asignaciones a variables:

es

lgico,

# TERMINAL=tty
# echo $TERMINAL
/dev/ttyp001

La shell, adems de interpretar y ejecutar


comandos, tiene primitivas de control de
ejecucin de programas tales como
sentencias condicionales y bucles.
La interpretacin del lenguaje se lleva a
cabo prcticamente en tiempo real; a
medida que va interpretando va
ejecutando.
Los programas, como se ha mencionado
antes, se interpretan en tiempo de
ejecucin. Por tanto, la codificacin de
una shell-script es sumamente sencilla en
el sentido en el que basta con escribir en
un fichero de texto l os comandos y
ejecutarlo.
Variables
Dentro de una shell, existen las variables
de entorno que hayamos definido
anteriormente, bien en la misma, en otra
en los ficheros profile de inicializacin.
104

# :COMENTARIO: Todo lo que haya a la


derecha de la almohadilla se toma como
comentario.
Ejemplo: Supongamos que hemos escrito
la
siguiente
shell-script
llamada
prueba.sh:
echo La escript se llama $0
echo Me han llamado con $# argumentos
echo El primero es $1
echo Y todos son $*
echo Hasta luego lucas!

Y la podemos ejecutar de dos maneras:


1) Directamente:
# sh prueba.sh uno dos

2) Dando permisos y ejecutando como


un comando:
# chmod 777 prueba.sh
# prueba.sh uno dos

La salida:
Me han llamado com 2 argumentos
El primero es uno
Y todos son uno dos
Hasta luego lucas

Hemos visto que los comandos se separan


por lneas, y se van ejecutando de forma
secuencial. Podemos, no obstante, poner
Operacin de Sistema Operativo Multiusuario

varios comandos en la misma lnea


separandolos por punto y coma ;.

Si la ejecutamos como

Adems, podemos agrupar comandos


mediante parntesis, lo cual permite
ejecutarlos en un subentorno ( las
variables que usemos no nos van a
interferir en nuestro proceso padre)

al volver al # NO se ha modificado la
variable! Para que SI la modifique, se
llamara como:

# ( date ; who ) | wc l

Hay que suponerse al punto como un


include, que en vez de crear un proceso
hijo expande el cdigo dentro de
nuestra shell actual.

Normalmente, ejecutar una shell implica


crear un proceso hijo, y el proceso padre
(normalmente, nuestra sesin inicial de
shell) espera a que dicho proceso acabe
para continuar su ejecucin ( si nosotros
lanzamos un pro grama shell-script, hasta
que ste no acaba (hijo), no nos aparece
en pantalla el inductor de comandos #
(padre) ).
Por definicin, en UNIX un proceso
hijo, al rodar en un espacio de datos
distinto, hereda varias cosas del padre,
entre ellas todas las variables de entorno;
pero por ello, no puede modificar el
entorno del padre ( si modificamos en
una shell script el contenido, por ejemplo,
de TERM, al acabar dicha shell y volver
al padre la variable contina con su valor
original. Hay situaciones en las cuales
necesitamos que una shell modifique
nuestro entorno actu al, y a tal efecto se
ejecuta con un punto (.) delante de la
shell-script.
Es mejor ver ste ltimo aspecto mediante
un programa en shell.script: supongamos
una shell que se llame tipoterm que nos
pida el terminal y nos ponga la variable
TERM de acuerdo a sta entrada:
# script para pedir el tipo de terminal
echo Por favor escriba que terminal tiene :
read TERM
echo Ha elegido $TERM
Operacin de Sistema Operativo Multiusuario

# tipoterm

# . tipoterm

Comando read
Con el fin de permitir una ejecucin
interactiva, existe el comando read
<nombre_variable>, el cual, en el
momento de ejecucin, espera una
entrada de datos por teclado terminada
en <INTRO>; lo que han introducido por
el teclado va a la variable especificada.
Supongamos la siguiente shell-script:
echo Como te llamas?
read nom
echo Hola $nom

Ejecucin:
Como te llamas ?
jose ( aqu escribimos jose y pulsamos <INTRO>
)
Hola jose
el comando read , ha cargado jose en nom.

Secuencias condicionales : if .. fi:


La sintaxis de sta sentencia es:
if <condicion>
then
..... comandos ....
else
..... comandos ....
fi

105

(la clusula else puede omitirse; slo se


usar cuando se requiera).

echo Jose NO esta registrado como usuario.


fi

Secuencia condicional case.. esac.


La condicin puede escribirse como test
<argumentos> con corchetes. Es
imprescindible en este ltimo caso, poner
espacios entre los corchetes y los valores.
Posibles condiciones y su sintaxis:
if [ <variable> = <valor> ] : variable es igual a
valor. Ojo con los espacios en = .
if [ <variable> != <valor> ] : variable es distinta
a valor.
if [ <variable -eq <valor> ] : variable es igual a
valor . La variable debe contener nmeros. En ste
caso , valen las comparaciones siguientes :
-eq : Igual (equal)
-ne : Distinto (not equal)
-ge : Mayor igual (Greater or equal).
-le : Menor igual (Less or equal).
-lt : Menor que (Less than).
-gt : Mayor que (Greater than).
if [ -f <fichero> ] : Existe <fichero>. Ojo con los
espacios.
if [ -d <fichero> ] : Existe <fichero> y es un
directorio.
if [ -s <fichero> ] :Existe <fichero> y tiene un
tamao mayor de cero.
if [ -x <fichero> ] : Existe <fichero> y es
ejecutable.

Sintaxis:
case <variable> in
<valor> ) <comando> ( la variable es = valor,
ejecuta los comandos hasta ;; )
<comando>
;;
<valor> ) <comando>
<comando>
;;

) <comando> ( Clausula otherwise


default : Si no se cumple alguna
<comando> de las anteriores ejecuta los
comandos hasta ;; )
;;

esac ( Igual que if acaba en fi , case acaba


en esac )
Ejemplos: minimenu.sh

Ejemplo de sto ltimo sera el siguiente


programa:

clear # borrar pantalla


echo 1.- Quien hay por ahi ? # pintar opciones
echo 2.- Cuanto disco queda ?
echo 3.- Nada. Salir.
echo Cual quieres ? : \c # el carcter \c evita
que el echo salte nueva lnea
read opcion # opcion vale lo que se ha tecleado
en pantalla
case $opcion in # IMPORTANTE : Poner la
variable como $opcion
1) who ;; # pues si el seor pulsa <INTRO> dara
error al no valer nada.
2) df;;
3) echo Adios;;
*) echo Opcion $opcion Es Incorrecta ;;
esac
Bucles FOR.
Sintaxis :
for <variable> in <lista>
do
<.. comandos ..>
done

if grep jose /etc/passwd.


then # retorno del comando -grep- ha sido CERO.
echo Jose esta registrado como usuario.
else # retorno del comando grep NO ha sido
CERO.

El bloque entre for y done da tantas


vueltas como elementos existan en
<lista>, tomando la variable cada uno de

En el campo <condicin> vale escribir


comandos, los cuales se ejecutarn y el
valor de la condicin depender de dos
factores:
* Retorno 0 del comando = VERDADERO.
* Retorno != 0 del comando = FALSO.

106

Operacin de Sistema Operativo Multiusuario

los elementos de <lista> para cada


iteracin. En sto conviene no confun
dirlo con los for..next existentes en los
lenguajes de tipo algol (pascual, basic ...)
que varan contadores.
Supongamos un programa que contenga
un bucle for de la siguiente manera;
for j in rosa antonio
do
echo Variable = $j
done

Y la salida que produce es:


Variable es rosa
Variable es antonio

Explicacin: el bloque ha efectuado dos


iteraciones (dos vueltas). Para la primera,
la variable -j- toma el valor del primer
elemento -rosa-, y para la segunda, antonio-.
En el campo <lista> podemos sustituir la
lista por patrones de ficheros para la shell,
la cual expande dichos patrones por los
ficheros correspondientes; de tal forma
que al escribir
for j in *

la shell cambia el * por todos los ficheros


del directorio actual. Por tanto, el
siguiente programa:
for j in *
do
echo $j
done

equivale al comando ls sin opciones merece la pena detenerse un momento


para comprender sto.

Operacin de Sistema Operativo Multiusuario

Vale tambin poner en el campo <lista>


comillas de ejecucin junto con cualquier
comando; la construccin - for j in cat
/etc/passwd -, por ejemplo, ejecutara
tantas iteraciones como lneas tuviese
dicho fichero, y para cada vuelta, la
variable -j- contendra cada una de las
lneas del mismo. Por tanto, valdran
expresiones como - for j in who - para
procesar todos los usuarios activos en el
sistema, - for j in lpstat -o -, para
procesar todos los listados pendientes ,
- for j in ps -e - para tratar todos los
procesos de nuestra sesin.
Bucles WHILE.
Sintaxis :
while <condicin>
do
( ... comandos ... )
done

Aqu las iteraciones se producen mientras


que la <condicin> sea verdadera (
retorno = 0 ). En caso que sea falsa (
retorno != 0 ), el bucle termina.
La sintaxis de <condicin> es igual que
en el comando -if- .
Ejemplo:
while [ $opcion != 3 ]
do
echo Meta opcion
read opcion
done

tambin, utilizando comandos:


echo Escribe cosas y pulsa ^D para terminar
while read cosa
do
echo $cosa >> /tmp/borrame
done
echo Las lineas que has escrito son :
cat /tmp/borrame

107

Explicacin : El comando -read- devuelve


un retorno VERDADERO (cero) mientras
que no se pulse el carcter EOF ( ^D); por
tanto, el bucle est indefinidamente
dando vueltas hasta dar se carcter.
Contadores: sentencia expr

La sentencia expr evala una expresin y


la muestra en la salida estndar. La
expresin normalmente consiste de dos
nmeros variables de contenido
numrico y un operador de suma, resta,
multiplicacin divisin.

El 1 resultante va a sacar por la salida


estndar. Pero como hemos puesto las
comillas de ejecucin, se asigna a pepe.
Al final , $pepe vale 1.

Pues ya se pueden ejecutar bucles con


contadores. Considerese el siguiente
programa:
cnt=0
while [ $cnt -lt 50 ]
do
cnt=expr $cnt + 1
echo Vuelta numero $cnt
done

Se autoexplica.
Operadores AND / OR.

Son vlidos los comandos siguientes:


expr 100 + 1 # saca en pantalla 101
expr 100 - 1 # saca en pantalla 99
expr 100 * 2 # OJO CON LAS COMILLAS
DOBLES- Previenen a la shell de sustituciones.

# Bueno, todo el mundo sabe lo que es


100 * 2, no?.
expr 100 / 2

Por tanto, podemos escribir :


pepe=expr 10 * 5 # y la variable pepe vale 50.

incluso:
pepe=0
pepe=expr $pepe + 1

Esto ltimo es bastante menos evidente.


Para comprenderlo, hay que creerse que
la shell ejecuta lo siguiente:
Al principio , $pepe vale 0.

En cualquier expresin de asignacin,


PRIMERO se calcula el resultado y
DESPUES se ejecuta la asignacin. Por
tanto, lo primero que la shell hace es
expr 0 + 1.

108

Una construccin usual en la shell,


utilizada principalmente por lo compacto
de su cdigo, pero con el inconveniente
de que permite oscurecer el cdigo son el
operador OR -||- y el operador AND&q
uot; -&&- .
El operador OR ejecuta el primer
comando, y si el cdigo de error del
mismo es FALSO (distinto de cero),
ejecuta el segundo comando.
El operador AND ejecuta el primer
comando, y si el cdigo de error del
mismo es VERDADERO (igual a cero),
ejecuta el segundo comando.
Veamos un ejemplo y, por favor, relase a
continuacin los dos prrafos anteriores:
cd /home/basura && rm -f *

Explicacin: nos cambiamos al directorio


indicado. Slamente en el caso de haber
tenido xito, nos cargamos todos los
ficheros del directorio actual.
ls /home/basurilla || mkdir /home/basurilla

Operacin de Sistema Operativo Multiusuario

Explicacin: El comando ls falla si no


existe el directorio indicado. En tal caso,
se crea.
banner hola | lp && echo Listado
Mandado || echo Listado ha cascado

set -n :Noexec. Lee comandos, los


interpreta pero NO los ejecuta. Vale para
ver errores de sintaxis antes de probarlo
de verdad.

Explicacin: El comando son dos , el


banner y el lp. Si por lo que sea no se
puede imprimir, da el mensaje de error; si
va todo bien, sale Listado Mandado.

set -e :Errexit. Terminar la ejecucin


inmediatamente si alguno de los
comandos
empleados devuelve un
retorno distinto de VERDADERO ( 0 ) y NO
se evala su retorno. El retorno de un
comando se determina evaluado en las
siguientes sentencias:

Depuracin de shell scripts.

if..fi , while do..done , until do..done.

Si bien los mtodos utilizados para sto


son bastante toscos, ha de tenerse en
cuenta que la shell NO se hizo como un
lenguaje de programacin de propsito
general.

a la izquierda del operador AND/OR (-|| -&&- ).

Cuando se requieren virguer&i acute;as,


ha de acudirse bien a lenguajes
convencionales bien a intrpretes ms
modernos
y
sofisticados
(y
ms
complicados, por supuesto), tales como el
TCL (Task Control Language) el PERL, los
cuales si bien son de libre dominio no
vienen de fabrica en todos los equipos.
Normalmente, emplearemos el comando
set, el cual modifica algunos de los
comportamientos de la shell a la hora de
interpretar los comandos:
set -v: Verbose. Saca en la salida de error
su entrada (es decir, las lneas del script
segn los va leyendo, que no ejecutando,
pues pirmero se lee y despus se ejecuta,
que sto es un intrprete y no hay que
olvidarlo).
set -x :Xtrace. Muestra cada comando
segn lo va ejecutando por la salida de
error, antecedido por un +.

Operacin de Sistema Operativo Multiusuario

Seales y orden trap.

Las puertas falsas (trap doors o back


doors) son un mecanismo establecido en
el sistema por su diseador o por alguien
que ha modificado el funcionamiento del
mismo. Su objetivo es ofrecer un modo de
acceder al sistema esquivando todas las
medidas de seguridad establecidas
cuando se usa el procedimiento normal.
Se trata pues de proporcionar una ruta
directa y oculta de acceso al sistema.
En algunas ocasiones las puertas falsas se
establecen durante el desarrollo de la
aplicacin, con el fin de testearla o
permitir un acceso directo y fcil a
determinados mdulos en caso de fallo
del mecanismo normal de acceso. En
general estas puertas se eliminan al
distribuir la aplicacin, pero siempre hay
olvidos.
El mecanismo de acceso, conocido por la
persona que crea la puerta falsa, puede
ser una combinacin de teclas dadas, una
secuencia bien definida de acciones, un
login particular, etc.

109

Un ejemplo de puerta falsa es la que


presentan las BIOS de las placas AWARD.
A la hora de modificar sus parmetros
podemos utilizar cualquiera de las
siguientes contraseas mgica: condo y
589589. Aunque el propietario del
ordenador haya incorporado su propia
contrasea, las dos anteriores suponen
una puerta falsa que permite entrar a la
configuracin de la BIOS.

2.1.2 RED

Servicios de red.

Dentro de este apartado vamos a


comentar brevemente la funcin de
algunos servicios de Unix y sus potenciales
problemas de seguridad. Los aqu
expuestos
son
servicios
que
habitualmente han de estar cerrados, por
lo que no implican excesivos problemas
de seguridad conocidos. As, no vamos a
entrar en muchos detalles con ellos; en
puntos siguientes hablaremos con ms
extensin de otros servicios que suelen
estar ofrecidos en todas las mquinas,
como ftp, telnet o SMTP, y que en su
mayora presentan mayores problemas de
seguridad.
systat
El servicio systat se asocia al puerto 11 de
una mquina Unix, de forma que al recibir
una peticin mediante TCP el demonio
inetd ofrece una imagen de la tabla de
procesos del sistema, por ejemplo
ejecutando una orden como ps -auwwx
en Linux o ps -ef en Solaris; en algunos
Unices se ofrece la salida de rdenes
como who o w en lugar de la tabla de
procesos: es fcil configurar lo que cada
110

administrador desee mostrar simplemente


modificando la lnea correspondiente
de/etc/inetd.conf:
anita:~# grep systat /etc/inetd.conf
systat stream tcp nowait root /usr/bin/ps
-ef
anita:~#

ps

Bien se ofrezca la tabla de procesos o bien


otro tipo de informacin sobre el sistema,
este servicio es habitual encontarlo
deshabilitado, ya que cualquier dato
sobre nuestro sistema (especialmente
procesos, nombres de usuario, mquinas
desde las que conectan...) puede ser
aprovechado por un pirata para atacar el
equipo. Si por motivos de comodidad a la
hora de administrar varios hosts dentro
de una red local necesitamos tener
abierto systat, debemos restringir las
direcciones desde las que se puede
acceder al servicio mediante TCP
Wrappers.
daytime
El servicio daytime, asociado al puerto 13,
tanto TCP como UDP, es un servicio
interno de inetd (esto es, no hay un
programa externo que lo sirva, el propio
inetd se encarga de ello); al recibir una
conexin a este puerto, el sistema
mostrar la fecha y la hora, en un formato
muy similar al resultado de la orden date:
anita:~# telnet rosita daytime
Trying 195.195.5.1...
Connected to rosita.
-Escape character is ^].
Thu Apr 20 05:02:33 2000
Connection closed by foreign host.
anita:~#

Aunque a primera vista este servicio no


represente un peligro para la integridad
de nuestro sistema, siempre hemos de
Operacin de Sistema Operativo Multiusuario

recordar una norma de seguridad


fundamental: slo hay que ofrecer los
servicios estrictamente necesarios para el
correcto funcionamiento de nuestras
mquinas. Como daytime no es un
servicio bsico, suele ser recomendable
cerrarlo; adems, la informacin que
proporciona, aunque escasa, puede ser
suficiente para un atacante: le estamos
indicando el estado del reloj de nuestro
sistema, lo que por ejemplo le da una idea
de la ubicacin geogrfica del equipo. Un
servicio parecido en muchos aspectos a
daytime es time (puerto 37, TCP y UDP);
tambin indica la fecha y hora del equipo,
pero esta vez en un formato que no es
inteligible para las personas:
anita:~# telnet rosita time
Trying 195.195.5.1...
Connected to rosita.
Escape character is ^].
[^Connection closed by foreign host.
anita:~#

Este servicio suele ser ms til que el


anterior: aunque una persona no entienda
la informacin mostrada por time, s que
lo hace una mquina Unix. De esta forma,
se utiliza time en un servidor para que las
estaciones cliente puedan sincronizar sus
relojes con l con rdenes como netdate o
rdate:
luisa:~# date
Thu Apr 20 02:19:15 CEST 2000
luisa:~# rdate rosita
[rosita] Thu Apr 20 05:10:49 2000
luisa:~# date
Thu Apr 20 02:20:02 CEST 2000
luisa:~# rdate -s rosita
luisa:~# date
Thu Apr 20 05:11:59 2000
luisa:~#

Operacin de Sistema Operativo Multiusuario

Los problemas de time son en principio


los mismos que los de daytime; aunque
tambin es recomendable mantener ese
servicio cerrado, es ms fcil imaginar
situaciones en las que un administrador
desee ofrecer time en varias mquinas
que imaginar la necesidad de ofrecer
daytime.
netstat
De la misma forma que systat ofreca
informacin sobre el estado de nuestro
sistema, netstat la ofrece sobre el estado
de nuestra red. Este servicio, asociado al
puerto 15 con protocolo TCP, ejecuta una
orden como netstat (con argumentos que
dependen del clon de Unix utilizado) para
mostar principalmente las conexiones
activas en la mquina; por ejemplo, si en
Linux invocamos a netstat desde
/etc/inetd.conf con la opcin -A inet, al
recibir una conexin se mostrar algo
parecido a lo siguiente:
anita:~# telnet rosita netstat
Trying 195.195.5.1...
Connected to rosita.
Escape character is ^].
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address
Foreign
Address State
tcp
0
0 rosita:netstat anita:4990
ESTABLISHED
Connection closed by foreign host.
anita:~#

Como
suceda
con
systat,
es
recomendable deshabilitar este servicio
comentando la lnea correspondiente de
/etc/inetd.conf, o en todo caso restringir
el acceso al mismo a mquinas de nuestra
red local, mediante TCP Wrappers. La
informacin sobre el estado del sistema
de red - o al menos de parte del mismo 111

puede ser muy til para un atacante, ya


que por ejemplo le est mostrando
nombres de hosts y adems le permite
hacerse una idea del trfico que soporta
la mquina, de los servicios que ofrece, de
los hbitos de conexin de los usuarios.
chargen
chargen (puerto 19, TCP y UDP) es un
generador
de
caracteres
servido
internamente por inetd, que se utiliza
sobre todo para comprobar el estado de
las conexiones en la red; cuando alguien
accede a este servicio simplemente ve en
su terminal una secuencia de caracteres
ASCII que se repite indefinidamente. Los
posibles
problemas
de
seguridad
relacionados con chargen suelen ser
negaciones de servicio, tanto para la parte
cliente como para la servidora. Sin duda el
ejemplo ms famoso de utilizacin de
chargen es una de las ancdotas del
experto
en
seguridad
Tsutomu
Shimomura (el principal contribuidor en la
captura de Kevin Mitnick, el pirata ms
famoso de los noventa): cuando
conectaba a un servidor de ftp annimo,
Shimomura se di cuenta de que la
mquina lanzaba un finger contra el
cliente que realizaba la conexin. Esto no
le gust, y decidi comprobar si ese
sistema utilizaba el finger habitual; para
ello modific el fichero /etc/inetd.conf de
su sistema de forma que las peticiones
finger se redireccionaran al generador de
caracteres chargen. Conect al servidor de
nuevo, y al hacer ste otro finger, la
mquina de Shimomura se dedic a
enviar megas y megas de caracteres (
chargen no finaliza hasta que el cliente
corta la conexin); en unas pocas horas el
sistema remoto qued inoperativo, y a la
112

maana siguiente ese finger automtico


haba sido eliminado de la configuracin
del servidor. Ese servidor no habra
sufrido una cada si hubiera utilizado
safe_finger, un programa de Wietse
Venema que se distribuye junto a TCP
Wrappers y que limita la potencial
cantidad de informacin que finger puede
recibir.
tftp
tftp ( Trivial File Transfer Protocol) es un
protocolo de transferencia de ficheros
asociado al puerto 69 y basado en UDP
que no proporciona ninguna seguridad.
Por tanto en la mayora de sistemas es
obligatorio que este servicio est
desactivado; su uso principal es el
arranque de estaciones diskless o de
routers a travs de la red, ya que la
simpleza
del
protocolo
permite
implementarlo en un chip, y slo en ese
caso nos veremos obligados a ofrecer el
servicio. Si es este el caso, los ficheros que
deseemos que sean pblicos se han de
situar en un determinado directorio
(dependiendo del clon de Unix, /tftpboot/,
/etc/tftpboot/, /usr/local/boot/...) o utilizar
otros nombres de directorio como
argumentos
del
demonio
en
/etc/inetd.conf, algo no recomendable.
Por ejemplo, si en /tftpboot/ guardamos
una copia de la imagen del kernel, los
clientes podrn acceder a ella mediante la
orden tftp:
luisa:~# tftp rosita
tftp> get vmlinuz
Received 531845 bytes in 3.4 seconds
tftp> quit
luisa:~#

Operacin de Sistema Operativo Multiusuario

Podemos ver que en ningn momento se


solicita un nombre de usuario o una clave,
lo que nos da una idea de los graves
problemas de seguridad que el ofrecer
este servicio puede implicarnos. Hasta
hace unos aos, era normal que los
fabricantes de sistemas Unix vendieran
sus productos con tftp abierto y sin
configurar, con lo que un pirata lo tena
muy fcil para conseguir cualquier fichero
de contraseas:
luisa:~# t
tp victima
tftp> get /etc/passwd /tmp/salida
Received 1845 bytes in 0.6 seconds
tftp> quit
luisa:~#

finger
Tpicamente el servicio finger (puerto 79,
TCP) ha sido una de las principales fuentes
de probl
mas de Unix. Este protocolo proporciona
informacin - demasiado detallada - de
los usuarios de una mquina, estn o no
conectados en el momento de acceder al
servicio; para hacerlo, se utiliza la
aplicacin finger desde un cliente,
dndole como argumento un nombre de
mquina precedido del smbolo @ y,
opcionalmente, de un nombre de usuario
( finger sobre el sistema local no utiliza el
servicio de red, por lo que no lo vamos a
comentar aqu). En el primer caso, finger
nos dar datos generales de los usuarios
conectados en ese momento a la
mquina, y en el segundo nos informar
con ms detalle del usuario especificado
como parmetro, est o no conectado:
anita:~# finger @rosita
[rosita]
Login Name
Tty Idle Login Time
Office Office Phone
Operacin de Sistema Operativo Multiusuario

toni
Toni at ROSITA */0
28 Apr 20 04:43
(anita)
root
El Spiritu Santo 1
12 Apr 11 02:10
anita:~# finger toni@rosita
[rosita]
Login: toni
Name: Toni at ROSITA
Directory: /home/toni
Shell: /bin/bash
On since Thu Apr 20 04:43 (CEST) on pts/0 from
anita
30 minutes 28 seconds idle
(messages off)
No mail.
No Plan.
anita:~#

Como
podemos
ver,
finger
est
proporcionando mucha informacin que
podra ser de utilidad para un atacante:
nombres de usuario, hbitos de conexin,
cuentas
inactivas...incluso
algunas
organizaciones rellenan exhaustivamente
el campo gecos del fichero de
contraseas, con datos como nmeros de
habitacin de los usuarios o incluso su
telfono. Est claro que esto es fcilmente
aprovechable por un pirata para practicar
ingeniera social contra nuestros usuarios
- o contra el propio administrador -. Es
bsico para la integridad de nuestras
mquinas deshabilitar este servicio,
restringir su acceso a unos cuantos
equipos de la red local mediante TCP
Wrappers o utilizar versiones del demonio
fingerd como ph ( Phone Book), que
permiten especificar la informacin que se
muestra al acceder al servicio desde cada
mquina.
POP
El servicio POP ( Post Office Protocol,
puertos 109 y 110 en TCP) se utiliza para
que los usuarios puedan acceder a su
correo sin necesidad de montar sistemas
de ficheros compartidos mediante NFS:
los clientes utilizan SMTP para enviar
113

correo y POP para recogerlo del servidor,


de forma que el procesamiento se realice
en la mquina del usuario. Se trata de un
servicio
que
podramos
considerar
peligroso, por lo que - como el resto, pero
este
especialmente
debemos
deshabilitarlo a no ser que sea
estrictamente necesario ofrecerlo; en ese
caso debemos restringir al mximo los
lugares desde los que se puede acceder,
mediante TCP Wrappers. En algunos
sistemas se utiliza POP simplemente para
evitar otorgar cuentas completas a los
usuarios: si slo van a utilizar la mquina
para leer su correo, por qu ofrecerles un
shell completo, con acceso a todo el
sistema? Realmente esto es cierto (sera
un error permitir ejecutar ciertas rdenes
a aquellos que slo utilizarn el equipo
para gestionar su correo), pero en muchas
ocasiones esta solucin no es del todo
conveniente: aparte de los peligros que
implica un servicio adicional, que de otra
forma no utilizaramos - en algunos
demonios de POP han surgido bugs que
incluso otorgaban un privilegio de root
remoto sin necesidad de ninguna clave -,
estamos generando un trnsito peligroso
de contraseas a travs de la red. POP
ofrece tres modelos distintos de
autenticacin: uno basado en Kerberos,
apenas utilizado, otro basado en un
protocolo desafo-respuesta (APOP, que
tampoco se suele utilizar), y otro basado
en un simple nombre de usuario con su
password correspondiente. Este ltimo, el
ms usado en todo tipo de entornos, es
un excelente objetivo para un pirata con
un sniffer: los usuarios suelen configurar
sus clientes para que chequeen el buzn
de correo cada pocos minutos, con lo que
a intervalos muy cortos envan su clave a
un puerto conocido de una mquina
114

conocida;
al
realizar
toda
esta
comunicacin en texto claro, un atacante
no tiene ms que interceptar la sesin
POP para averiguar nombres de usuario y
claves (aparte de poder leer el correo que
baja del servidor al cliente). Si lo que
deseamos es que nuestros usuarios no
disfruten de una cuenta completa
simplemente para gestionar su correo,
podemos sustituir su shell en /etc/passwd
por el nombre de dicho lector:
ircd:x:1001:100:Gestion
IRC,,,:/home/ircd:/usr/bin/pine

En este caso hemos de tomar una


precaucin adicional: la mayora de
programas de correo ( elm, pine...)
permiten escapes al shell, procedimientos
que tarde o temprano ejecutan con xito
un intrprete de rdenes; por ejemplo,
con elm no tenemos ms que iniciar vi
para escribir un mensaje y en el editor
ejecutar :!/bin/sh para ejecutar este
intrprete. Para evitar estos escapes o
bien podemos modificar el cdigo del
gestor de correo - algo no muy habitual o utilizar ya versiones modificadas
disponibles a travs de Internet.
auth
Se llama socket a la combinacin de una
direccin de mquina y un puerto; esta
entidad identifica un proceso nico en la
red ([CZ95]). Un par de sockets, uno en la
mquina receptora y otro en la emisora
definen una conexin en protocolos como
TCP; esta conexin tambin ser nica en
la red en un instante dado. Como vemos,
no entra en juego ningn nombre de
usuario: en TCP/IP se establecen canales
de comunicacin entre mquinas, no
entre personas; no obstante, en muchas
Operacin de Sistema Operativo Multiusuario

ocasiones nos puede interesar conocer el


nombre de usuario bajo el que cierta
conexin se inicia. Por ejemplo, de esta
forma podramos ofrecer o denegar un
servicio en funcin del usuario que lo
solicita, aparte de la mquina desde
donde viene la peticin. El protocolo auth
(puerto 113, TCP) viene a solucionar este
problema con un esquema muy simple:
cuando un servidor necesita determinar el
usuario que ha iniciado una conexin
contacta con el demonio identd y le enva
los datos necesarios para distinguir dicha
conexin (los componentes de los dos
sockets que intervienen) de las dems.
De esta forma, el demonio identifica al
usuario en cuestin y devuelve al servidor
informacin
sobre
dicho
usuario,
generalmente su login. Por ejemplo, si
utilizamos TCP Wrappers - un programa
servidor que utiliza este mecanismo para
determinar nombres de usuario siempre
que sea posible -, se registar el login del
usuario remoto que solicita un servicio en
nuestra mquina si el sistema remoto
tiene habilitado auth:
luisa:~# tail -2 ~adm/syslog
Apr 24 04:16:19 luisa wu.ftpd[1306]: connect
from
rosita
Apr 24 04:16:21 luisa ftpd[1306]: ANONYMOUS
FTP LOGIN FROM \
rosita [195.195.5.1], toni@
luisa:~#

No obstante, si el sistema desde el que


esa persona conecta no tiene habilitado
dicho servicio, el nombre de usuario no se
va a poder conseguir:
luisa:~# tail -2 ~adm/syslog
Apr 24 04:19:37 luisa wu.ftpd[1331]: connect
from root@anita
Operacin de Sistema Operativo Multiusuario

Apr 24 04:19:39 luisa ftpd[1331]: ANONYMOUS


FTP LOGIN FROM \
root @ anita [195.195.5.3], toni@
luisa:~#

El servicio auth no se debe utilizar nunca


con propsitos de autenticacin robusta,
ya que dependemos no de nuestros
sistemas, sino de la honestidad de la
mquina remota; un atacante con el
suficiente nivel de privilegio en esta puede
enviarnos cualquier nombre de usuario
que desee. Incluso en ciertas situaciones,
si ident no est habilitado ni siquiera
hacen falta privilegios para devolver un
nombre falso: cualquier usuario puede
hacerlo. En cambio, s que es til para
detectar
pequeas
violaciones
de
seguridad, por lo que quizs interese
habilitar el servicio en nuestras mquinas
(aunque limitemos su uso mediante TCP
Wrappers.
NNTP
El servicio NNTP ( Network News Transfer
Protocol, puerto 119 TCP) se utiliza para
intercambiar mensajes de grupos de
noticias entre servidores de news. Los
diferentes demonios encargados de esta
tarea (como in.nntpd o innd) suelen
discriminar conexiones en funcin de la
direccin o el nombre de la mquina
cliente; por ejemplo, el primero utiliza el
fichero nntp_access para decidir si ofrece
el servicio de news a un determinado
host, y si es as concretar de que forma
puede acceder a l (slo lectura, slo
ciertos grupos...). De esta forma, los
servidores NNTP son muy vulnerables a
cualquier ataque que permita falsear la
identidad de la mquina origen, como el
IP Spoofing. Los problemas relacionados
con las news no suelen ser excesivamente

115

graves desde un punto de vista


estrictamente tcnico, pero en ocasiones
s que lo son aplicando una visin global.
Por ejemplo, habra que evaluar el dao
que le supone a la imagen de nuestra
organizacin el que un atacante enve
mensajes insultantes o pornogrficos
utilizando nuestro nombre o nuestros
recursos. Tambin es un problema la mala
educacin de los usuarios en materias de
seguridad informtica: tienden a creer
todo lo que leen en ciertos grupos de
noticias, por lo que un atacante podra
utilizar ingeniera social para perjudicar a
nuestra organizacin. Otra amenaza
comn es el uso de grupos de news
privados
(internos)
para
tratar
informacin
confidencial
en
la
organizacin: esto es un error, ya que si la
privacidad
del
servidor
se
ve
comprometida
un
atacante
puede
obtener datos que a priori no estara
autorizado a saber. Realmente, es muy
poco probable que necesitemos ofrecer
este servicio, por lo que lo ms razonable
para nuestra seguridad es deshabilitarlo.
Generalmente slo existen servidores de
noticias en grandes organizaciones como las universidades -, y adems lo
normal es que slo haya uno por entidad.
Si debemos administrar ese equipo la
mejor forma de proteger el servicio NNTP
es utilizando un buen cortafuegos
([GS96]).
NTP
NTP ( Network Time Protocol, puerto 123
UDP y TCP) es un protocolo utilizado para
sincronizar relojes de mquinas de una
forma muy precisa; a pesar de su
sofisticacin no fu diseado con una
idea de robustez ante ataques, por lo que
116

puede convertirse en una gran fuente de


problemas
([Bis90])
si
no
est
correctamente configurado o si no
utilizamos versiones actualizadas de
nntpd, el demonio que ofrece este
servicio. Son muchos los problemas de
seguridad relacionados con un tiempo
correcto; el ms simple y obvio es la poca
fiabilidad que ofrecer nuestro sistema de
log a la hora de determinar cundo
sucedi determinado evento: aunque se
registrara que alguien hizo un telnet a las
tres de la tarde, no podramos ni siquiera
asegurar que la hora es correcta. Otro
problema tpico radica en las facilidades
que ofrece Unix para la planificacin de
tareas: si el reloj tiene problemas, es
posible que ciertas tareas no se lleguen a
ejecutar, que se ejecuten varias veces, o
que se ejecuten cuando no han de
hacerlo; esto es especialmente peligroso
para tareas de las que depende nuestra
seguridad, como la rotacin de logs. Si
hablamos de problemas ms sofisticados,
podemos pensar en sistemas distribuidos,
en los que una correcta sincronizacin
entre nodos es bsica para garantizar el
correcto funcionamiento del sistema
global
([Tan95],
[CDK94]...);
la
sincronizacin es muy importantes en
modelos de autenticacin como Kerberos,
que utiliza marcas de tiempo como
pruebas de frescura para evitar ataques
por reenvo. Como hemos visto, una
correcta sincronizacin del reloj de
nuestro equipo es vital para la seguridad;
no obstante, muy pocos sistemas
necesitan la precisin de NTP, por lo que
es
habitual
tener
este
servicio
deshabilitado. En la mayora de ocasiones
el propio reloj de la mquina, o un
protocolo mucho ms simple, como time,
Operacin de Sistema Operativo Multiusuario

es ms que suficiente para sincronizar


equipos.
UUCP
UUCP ( Unix to Unix CoPy, puerto 540
TCP) es un servicio que, como su nombre
indica, se utiliza para copiar ficheros entre
mquinas Unix, generalmente a travs de
lneas telefnicas o redes de baja
velocidad; aunque hoy en da apenas se
utiliza, durante aos ha sido la base de los
sistemas de correo electrnico y de news
(incluso hoy en da algunos sistemas
UUCP son capaces de transmitir noticias
de Usenet ms eficientemente que la ms
moderna implementacin de NNTP). Dos
riesgos fundamentales amenazan a UUCP:
al tratarse de una transmisin en texto
claro, un potencial atacante puede tener
acceso a informacin privada de los
usuarios, vulnerando su privacidad.
Evidentemente, en el caso de transmisin
de news esto no es muy relevante, ya que
todos los mensajes son en principio de
acceso pblico, pero la cosa cambia si
estamos transmitiendo correo electrnico.
El segundo riesgo es incluso ms
preocupante que la prdida de privacidad:
las contraseas de los usuarios tambin se
transmiten en texto claro, con el
consiguiente peligro que supone la
interceptacin por parte de un pirata de
dichas claves. Aunque si utilizamos lneas
telefnicas la probabilidad de que un
sniffer capture los datos enviados es
menor que si utilizamos una red TCP, en
ambos casos el riesgo est presente.
Como siempre, y dado que como hemos
dicho UUCP no se suele utilizar hoy en
da, lo ms recomendable es deshabilitar
este servicio; es ms, dado que suele
existir un usuario uucp en todo sistema
Unix (por motivos simplemente de
Operacin de Sistema Operativo Multiusuario

compatibilidad), hemos de estar atentos a


los posibles problemas que dicho usuario
pueda generar. Es necesario asegurarse
que no se permiten conexiones bajo este
nombre de usuario, que en su directorio
$HOME no existen un fichero .rhosts...las
precauciones habituales con cualquier
nombre de usuario de este tipo que
tengamos en nuestro sistema; incluso nos
puede interesar sustituir su shell original
(si lo tiene) por uno como /bin/false, para
que un posible atacante que se haga
pasar por uucp no tenga posibilidad de
ejecutar rdenes en la mquina. Si
estamos obligados a ofrecer conexiones
va UUCP en nuestro sistema, una buena
referencia para conocer ms detalles de
este mecanismo y su seguridad es [OT88]
(slo su fecha nos da una idea del grado
de desuso en que ha cado UUCP); otra
excelente fuente de informacin sobre la
seguridad - e inseguridad - de UUCP es el
captulo 15 de [GS96]. Una medida de
proteccin bsica es asignar un login y
password diferente para cada sistema que
conecte con el nuestro mediante este
mtodo; aparte de incrementar la
seguridad - si un atacante averigua una
clave slo podr utilizar un acceso, no
todos - as conseguimos un mayor
refinamiento a la hora de registrar los
eventos que se produzcan en nuestro
sistema, lo que es muy til de cara a
perseguir un abuso del servicio por parte
de usuarios no autorizados. Adems, en
situaciones extremas podemos configurar
los mdems para realizar un callback
cuando reciben una peticin, lo que
asegura que estamos llamando al sistema
deseado y no a otro - siempre que un
atacante no haya podido modificar esos
nmeros -.

117

El servicio FTP
FTP (File Transfer Protocol, puerto 21 TCP)
es, como su nombre indica, un protocolo
de transferencia de ficheros entre
sistemas. Desde un equipo cliente
conectamos a un servidor para descargar
ficheros desde l - lo habitual - o para
enviarle nuestros propios archivos. Un
problema bsico y grave de FTP es que
est pensado para ofrecer la mxima
velocidad en la conexin, pero ni mucho
menos para ofrecer la mxima seguridad;
todo el intercambio de informacin,
desde el login y password del usuario en
el servidor hasta la transferencia de
cualquier fichero, se realiza en texto claro,
con lo que un atacante lo tiene muy fcil
para capturar todo ese trfico y conseguir
as un acceso vlido al servidor. Incluso
puede ser una amenaza a la privacidad de
nuestros datos el hecho de que ese
atacante tambin pueda capturar y
reproducir los ficheros transferidos. Para
solucionar este problema es conveniente
concienciar a nuestros usuarios de la
utilidad de aplicaciones como scp y sftp,
incluidas en el paquete SSH, que permiten
transferir ficheros pero cifrando todo el
trfico; de esta forma, son el mejor
sustituto de FTP. Parece evidente que la
conexin FTP a nuestro sistema ha de
estar restringida a los usuarios que
realmente lo necesiten: por ejemplo, un
usuario como root en principio no va a
necesitar utilizar este servicio, ya que por
lo general va a trabajar en consola; otros
usuarios considerados del sistema
(donde se incluye por ejemplo a
postmaster,
bin,
uucp,
shutdown,
daemon...) tampoco necesitarn hacer
uso de FTP. Podemos indicar este tipo de
usuarios a los que no les est permitida
una conexin va FTP a nuestra mquina
118

en /etc/ftpusers, con un nombre por lnea;


un ejemplo de este fichero es el siguiente:
luisa:~# cat /etc/ftpusers
halt
operator
root
shutdown
sync
bin
daemon
adm
lp
mail
postmaster
news
uucp
man
games
guest
postgres # postgres NO hace ftp
nobody
inferno
luisa:~#

FTP annimo
Los problemas relacionados con la
seguridad
del
servicio
FTP
son
especialmente preocupantes cuando se
trata de configurar un servidor de FTP
annimo; muchos de estas mquinas
situadas en universidades espaolas se
convierten en servidores de imgenes
pornogrficas o de warez (copias ilegales
de programas comerciales). Conseguir un
servidor de FTP annimo seguro puede
llegar a ser una tarea complicada: incluso
en las pginas de ayuda de algunas
variantes de Unix (como Solaris) se trata
de
facilitar
el
proceso
para
el
administrador mediante un shellscript que
- por defecto - presenta graves problemas
de seguridad, ya que deja una copia del
fichero de claves del sistema como un
archivo de acceso pblico y annimo. Para
configurar correctamente un servidor de
Operacin de Sistema Operativo Multiusuario

este tipo necesitamos en primer lugar


crear al usuario ftp en /etc/passwd y
/etc/shadow, as como su directorio de
conexin (algunos Unices, como Linux, ya
incorporan esto al instalar el sistema).
Este directorio ha de pertenecer a root
(ningn fichero o subdirectorio ha de
pertenecer nunca a ftp) y al grupo al que
pertenece ftp: con esto conseguimos que
los permisos de propietario sean para el
administrador y los de grupo para los
usuarios annimos; estos permisos sern
555. Dentro del $HOME de ftp hemos de
crear el rbol de directorios mnimo para
poder trabajar correctamente; esto es
debido a la llamada a chroot() que se
utiliza en los accesos annimos, que
permite a esos usuarios ver el directorio
raz de su conexin en el directorio real
~ftp/. Al menos dos directorios son
necesarios: etc/ y bin/, ambos propiedad
de root y con modo 111. En el primero de
ellos hemos de crear un fichero passwd y
otro group, utilizados no con propsitos
de autenticacin sino para visualizar el
propietario y grupo de cada fichero en el
entorno sobre el que se ha aplicado
chroot() al ejecutar ls: por tanto, no hace
falta ninguna contrasea en ese fichero
passwd, y slo ha de contener entradas
para los usuarios que posean ficheros
bajo la jerarqua de ftp, como root; de la
misma forma, el fichero group slo ha de
contener las entradas correspondientes a
grupos que posean ficheros en dicha
jerarqua:
anita:~# cat /export/home/ftp/etc/passwd
root:*:0:1:El Spiritu Santo:/:/sbin/sh
anita:~# cat /export/home/ftp/etc/group
root::0:
other::1:
daemon::2:
ftp::30000:
anita:~#

Operacin de Sistema Operativo Multiusuario

Como vemos, el usuario ftp tiene un shell


denominado /bin/false; aunque aqu no
tiene ningn efecto, en el archivo de
contraseas real de la mquina esto es
til para prevenir que dicho usuario
pueda conectar mediante TELNET o
similar. Por su parte, en el otro directorio
que hemos creado (bin/) hemos de
almacenar una copia del programa ls, de
forma que los usuarios puedan listar los
contenidos de los directorios cuyos
permisos lo permitan; si utilizamos una
versin esttica del programa, como hace
por ejemplo Linux, no hemos de
configurar nada para que la aplicacin
funcione, pero si en cambio utilizamos un
ls dinmico (como SunOS o Solaris)
hemos de crear el directorio lib/ dentro de
~ftp/ y copiar en l las libreras necesarias
para que el programa funcione (podemos
ver de cules se trata con ldd). Con estos
pasos ya tenemos configurada la base de
nuestro servidor de FTP annimo; no
obstante, es habitual crear dos directorios
ms, uno denominado pub/ y otro
incoming/, dentro de la misma jerarqua
que los anteriores (esto es, en el $HOME
del usuario ftp). El primero suele contener
directorios con todos los ficheros que
deseemos ofrecer a los usuarios
annimos; su modo ha de ser 555, o 2555
en los sistemas que utilicen el bit setgid
en un directorio para que sus
subdirectorios y ficheros hereden el grupo
del propietario. El directorio incoming es
justo lo contrario: sirve para que esos
usuarios annimos puedan enviar archivos
a nuestra mquina. Y es aqu donde
suelen comenzar muchos problemas: al
permitir el upload de software, es posible
que algunos piratas utilicen nuestra
mquina para crear servidores warez,
subiendo programas comerciales a este

119

directorio
y
luego
indicando
su
localizacin exacta a otras personas, para
que los puedan descargar. Por tanto, los
permisos de incoming son vitales para
nuestra seguridad (incluso si no deseamos
que los usuarios annimos nos enven
ficheros podemos borrar este directorio):
esos permisos han de ser 1733, y el
propietario del directorio es el root. Para
qu ponemos el bit de permanencia? Muy
sencillo: para que los usuarios no puedan
sobreescribir o borrar ficheros existentes;
aunque la mayora de servidores FTP no
permiten a los usuarios annimos
sobreescribir ficheros, si no pusiramos
este modo un usuario normal del sistema
s que podra hacerlo.
El siguiente shellscript puede utilizarse
para configurar cmodamente un entorno
restringido destinado a los usuarios de ftp
annimo siguiendo las directrices que
acabamos
de
comentar;
funciona
correctamente (en teora) sobre Solaris,
Linux y AIX 3. Al igual que sucede con
muchas tareas automatizadas, conviene
repasar manualmente la estructura de
directorios y ficheros creados para
comprobar
que
todo
es
como
esperabamos:
anita:~# cat /usr/local/sbin/creaentorno
#!/bin/sh

# Script para crear un entorno


chroot()eado.# Funciona OK en Linux,
Solaris y AIX.## Esta variable es una lista
con los programas que necesitamos en
el#
entorno
restringido.PROGS=/bin/ls#
Imprime
modo de usoif (test $# -lt 1); then echo
Usage: $0 /path/to/chroot-environment
exitfi#
Detectamos
clon
de
UnixOS=`uname -s`# Creamos estructura
120

de directoriosecho Creando estructura de


directorios para $OSif [ ! -d $1 ]; then
mkdir -p $1fichown root $1for i in bin etc;
do if [ ! -d $1/$i ] ; then mkdir -p $1/$i
fi chown root $1/$idone# En funcion del
Unix, la estructura sera una u otra...if [
$OS = Linux ]; then if [ ! -d $1/lib ];
then mkdir -p $1/lib fi chown root $1/li
fi
if ( test $OS = SunOS || test $OS = AIX );
then
if [ ! -d $1/usr/lib ]; then
mkdir -p $1/usr/lib
fi
chown root $1/usr/lib
cd $1
ln -s ./usr/lib $1/lib
fi

# Instalamos programas y las librerias que


necesitan
echo Instalando programas y librerias...
for i in $PROGS; do
if [ ! -f $1/$i ]; then
cp $i $1/bin
fi
chmod 111 $1/bin
chown root $1/bin
if [ $OS = AIX ]; then
for j in ldd $i|awk -F( {if(NR!=1) print $1};
do
if [ ! -f $1/$j ]; then
cp $j $1/lib
fi
chown root $1/$j
done
else
for j in ldd $i|awk {print $3}; do
if [ ! -f $1/$j ]; then
cp $j $1/lib
fi
chown root $1/$j
done
fi
done
# Estos ficheros quizas sea necesario retocarlos a
mano, en funcion del tipo
# de entorno restringido que fabriquemos.
# Generamos PASSWD
Operacin de Sistema Operativo Multiusuario

echo Generando /etc/passwd...


awk -F: $1==root {print
$1":*:$3":$4":$5":$6":$7} /etc/passwd >\
$1/etc/passwd
awk -F: $1==bin {print
$1":*:$3":$4":$5":$6":$7} /etc/passwd>>\
$1/etc/passwd
awk -F: $1==daemon {print
$1":*:$3":$4":$5":$6":$7} /etc/passwd>>\
$1/etc/passwd
chmod 444 $1/etc/passwd
chown root $1/etc/passwd
# Quizas hay que anyadir otros grupos que nos
interesen
# Generamos GROUP con algunas entradas
echo Generando /etc/group...
awk -F: $1==root {print $1":*:$3":$4}
/etc/group>$1/etc/group
awk -F: $1==bin {print $1":*:$3":}
/etc/group>>$1/etc/group
awk -F: $1==daemon {print $1":*:$3":}
/etc/group>>$1/etc/group
chmod 444 $1/etc/group
chown root $1/etc/group
# Generamos pub/ e incoming/
echo Generando pub/ e incoming/...
if [ ! -d $1/pub ]; then
mkdir -p $1/pub
fi
chmod 2555 $1/pub
chown root $1/pub
if [ ! -d $1/incoming ]; then
mkdir -p $1/incoming
fi
chmod 1733 $1/incoming
chown root $1/incoming
# Si estamos en Solaris, aun no hemos acabado
if [ $OS = SunOS ]; then
# Mas librerias
echo $OS: Instalando librerias...
for i in ld.so.1 libc.so.1 libdl.so.1 libmp.so.2
libnsl.so.1 \
libsocket.so.1 nss_compat.so.1 nss_dns.so.1
nss_files.so.1 \
nss_nis.so.1 nss_nisplus.so.1 nss_xfn.so.1
straddr.so \
straddr.so.2; do
cp /usr/lib/$i $1/usr/lib
done
if [ ! -d $1/dev ]; then
mkdir -p $1/dev
fi
Operacin de Sistema Operativo Multiusuario

chown root $1/dev


# Generamos dispositivos
echo $OS: Generando dispositivos...
for i in /dev/zero /dev/tcp /dev/udp /dev/ticotsord;
do
MAJOR=ls -lL $i|awk {print $5}|sed s/,//g
MINOR=ls -lL $i|awk {print $6}
TYPE=ls -lL $i|cut -c1-1
mknod $1/$i $TYPE $MAJOR $MINOR
done
chmod 666 $1/dev/*
fi
echo FIN
# FIN de Solaris
anita:~#

Algunos problemas relacionados con


incoming/ provienen de los permisos con
que se crean sus ficheros y subdirectorios:
aunque los usuarios annimos no puedan
leer el directorio, con algunos servidores
ftpd s que es posible que puedan leer los
ficheros contenidos en l (y sus
subdirectorios), con lo que sigue siendo
posible acceder a los archivos conociendo
su nombre exacto; para evitar este
problema,
muchos
administradores
planifican un sencillo shellscript para que
cada cierto tiempo mueva los contenidos
de incoming a otro lugar, fuera del
alcance de los usuarios annimos (por
ejemplo, un subdirectorio con modo 000
de /tmp/). Ciertos servidores, como WUftpd, tienen un fichero de configuracin
(/etc/ftpaccess) donde indicar - entre otras
cosas - los modos con que se van a crear
entradas en incoming/. Otro ataque tpico
a los servidores de FTP es una negacin de
servicio llenando todo el espacio
disponible para el upload de ficheros;
para minimizar las consecuencias de este
ataque, es conveniente situar el directorio
~ftp/ en una particin separada del resto
del sistema de ficheros, donde slo se
encuentre dicho directorio; algunos
demonios permiten directamente limitar
121

la cantidad de ficheros subidos al servidor


en cada sesin. Por ltimo, es una buena
idea mostrar un mensaje cuando los
usuarios annimos conectan a nuestra
mquina donde se indiquen claramente
los fines del sistema y la atencin a su uso
indebido; este mensaje puede sernos til
tanto con fines jurdicos (as el atacante
no podr argumentar que desconoca la
finalidad del sistema) como con fines
disuasorios: si el pirata se da cuenta de
que nos preocupamos por la seguridad de
nuestro servidor, es posible que lo
abandone y busque otro menos
protegido. Por ejemplo, si utilizamos WUftpd, en ~ftp/welcome.msg podemos
escribir el mensaje mostrado al conectar
al sistema, y en diferentes ficheros
.message el mensaje que se vuelca a
acceder a un directorio (estos nombres
son configurables en /etc/ftpaccess). Un
ejemplo del mensaje de entrada puede ser
el siguiente:
anita:~# cat /export/home/ftp/welcome.msg
* * * ANITA
***
Bienvenid@s a ANITA

Esta maquina es propiedad de la


Universidad Politecnica de Valencia y sus
fines son exclusivamente academicos y de
investigacion. Cualquier otro uso sera
perseguido y castigado con el maximo
rigor.
Cualquier actividad realizada en, desde o
hacia este sistema esta sujeta a
monitorizacion sin previo aviso.
anita:~#

El servicio TELNET
El protocolo TELNET (TCP, puerto 23)
permite utilizar una mquina como
122

terminal virtual de otra a travs de la red,


de forma que se crea un canal virtual de
comunicaciones similar - pero mucho ms
inseguro - a utilizar una terminal
fsicamente conectada a un servidor; la
idea es sencilla: estamos accediendo
remotamente en modo texto a un equipo
- en principio potente - igual que si
estuviramos utilizando su consola o una
de sus terminales fsicas, lo que nos
permite aprovechar toda su potencia de
clculo si necesidad de desplazarnos hasta
la ubicacin de ese servidor, sino
trabajando cmodamente desde nuestro
propio equipo. TELNET es el clsico
servicio que hasta haceunos aos no se
sola deshabilitar nunca: no es habitual
adquirir una potente mquina corriendo
Unix y permitir que slo se trabaje en ella
desde su consola; lo ms normal es que
este servicio est disponible para que los
usuarios puedan trabajar remotamente, al
menos desde un conjunto de mquinas
determinado. Evidentemente, reducir al
mnimo imprescindible el conjunto de
sistemas desde donde es posible la
conexin es una primera medida de
seguridad; no obstante, no suele ser
suficiente: recordemos que TELNET no
utiliza ningn tipo de cifrado, por lo que
todo el trfico entre equipos se realiza en
texto claro. Cualquier atacante con un
analizador de red (o un vulgar sniffer)
puede capturar el login y el password
utilizados en una conexin; el sniffing
siempre es peligroso, pero ms an en
sesiones TELNET en las que transmitimos
nombres de usuarios y contraseas:
estamos otorgando a cualquiera que lea
esos datos un acceso total a la mquina
destino, bajo nuestra identidad. Por
tanto, es muy recomendable no utilizar
TELNET para conexiones remotas, sino
Operacin de Sistema Operativo Multiusuario

sustituirlo por aplicaciones equivalentes


pero que utilicen cifrado para la
transmisin de datos: SSH o SSL-Telnet
son las ms comunes. En estos casos
necesitamos adems de la parte cliente en
nuestro equipo, la parte servidora en la
mquina remota escuchando en un
puerto determinado. Aparte del problema
de los atacantes esnifando claves, los
demonios telnetd han sido tambin una
fuente
clsica
de
problemas
de
programacin (se puede encontrar un
excelente repaso a algunos de ellos en el
captulo 29 de [Ano97]); bsicamente,
cualquier versin de este demonio que no
est actualizada es una potencial fuente
de problemas, por lo que conviene
conseguir la ltima versin de telnetd
para
nuestro
Unix
particular,
especialmente si an tenemos una versin
anterior a 1997. Otros problemas, como
la posibilidad de que un atacante consiga
recuperar una sesin que no ha sido
cerrada correctamente, el uso de telnet
para determinar qu puertos de un host
estn abiertos, o la utilizacin del servicio
TELNET (junto a otros, como FTP) para
averiguar el clon de Unix concreto (versin
de kernel incluida) que un servidor utiliza,
tambin han hecho famosa la inseguridad
de este servicio.
Antes hemos hablado de la configuracin
de un entorno restringido para usuarios
ftp invitados, que accedan mediante su
login y su contrasea pero que no vean la
totalidad del sistema de ficheros de
nuestra mquina. Es posible -aunque ni
de lejos tan habitual- hacer algo parecido
con ciertos usuarios interactivos, usuarios
que conectarn al sistema mediante telnet
utilizando tambin su login y su
password, pero que no vern el sistema
Operacin de Sistema Operativo Multiusuario

de ficheros completo: slo la parte que a


nosotros nos interese (en principio).
Para que un usuario acceda mediante
telnet a un entorno restringido con
chroot() necesitamos en primer lugar un
entorno parecido al que hemos visto
antes: a partir de su directorio $HOME,
una serie de subdirectorios bin/, lib/, etc/. .
. Dentro de este ltimo existir al menos
un fichero group y otro passwd (igual que
suceda antes, no se usan con propsitos
de autenticacin, por lo que no es
necesario -ni recomendable- que existan
claves reales en ninguno de ellos). En el
directorio bin/ incluiremos los ejecutables
que queremos que nuestro usuario pueda
ejecutar, y en lib/ (o usr/lib/) las libreras
que necesiten; si usamos el shellscript
anterior -de nuevo, con alguna pequea
modificacin- para crear este entorno, en
la variable $PROGS podemos definir tales
ejecutables para que automticamente se
copien junto a las libreras necesarias en el
directorio correspondiente:
PROGS=/bin/ls /bin/sh

Finalmente, en el archivo /etc/passwd real


hemos de definir un shell para el usuario
como el siguiente:
luisa:~# cat /home/toni/prog/shell.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#define SHELL /bin/sh
int main(){
struct passwd *entry=(struct passwd
*)malloc(sizeof(struct passwd));
char *const ARGS[2]={SHELL,NULL};
while((entry=getpwent())->pw_uid!=getuid());
endpwent();
if(chdir(entry->pw_dir)<0) perror(chdir());
if(chroot(entry->pw_dir)<0) perror(chroot());
if(setuid(getuid())<0) perror(setuid());

123

if(execvp(SHELL,ARGS)<0) perror(execvp());
// No alcanzado
return(0);
}
luisa:~#

Este
cdigo,
convenientemente
compilado, ser el shell real del usuario
restringido; como vemos, obtiene el
directorio $HOME del mismo, hace un
chroot() a l, y ejecuta en este entorno el
shell secundario (bin/sh, que realmente
ser $HOME/bin/sh). Para que el chroot()
sea correcto el programa ha de estar
setuidado bajo la identidad de root (slo
el superusuario puede realizar esta
llamada), con los riesgos que esto implica;
al contrario de lo que dira Knuth, yo slo
defiendo que el cdigo anterior funciona,
no que sea correcto... o seguro :)
Si tenemos que crear un entorno como
este para usuarios interactivos hemos de
tener en cuenta ciertas medidas de
seguridad relativas a los ejecutables que
situemos -o que permitamos situar- en
dicho entorno. Para empezar, hemos de
evitar a toda costa los ejecutables
setuidados, as como las llamadas
mknod(), chmod() o la propia chroot();
adems, no debe ser posible obtener
privilegios de administrador dentro del
entorno restringido, ya que para el root
estas restricciones pierden su sentido: no
tenemos ms que pensar que si un
usuario con privilegios de root dentro del
entorno es capaz de generar un
dispositivo que represente un disco duro,
con algo tan sencillo como la utilidad
mknod, automticamente acceder a la
totalidad de ese disco, olvidando ya el
chroot() y la potencial proteccin que
pueda ofrecernos. Algo similar ocurre con
124

la
memoria
del
sistema,
ciertos
dispositivos fsicos, o estructuras de datos
del ncleo: si esto es accesible desde el
entorno restringido, es muy probable que
nuestra seguridad se vea rota tarde o
temprano (ms bien temprano).
-Tampoco es aconsejable permitir la
ejecucin de compiladores de C o de
intrpretes de Perl.
Como hemos dicho, este tipo de entornos
es mucho menos habitual que los de ftp,
aparte de bastante ms peligrosos. Una
tarea tan habitual como cambiar la
contrasea no es posible -al menos de
forma trivial- en este entorno (aunque
podramos modificar el cdigo anterior
para que se ofrezca al usuario esta
posibilidad antes de situarlo en el entorno
restringido). Y que sucede si necesitamos
que el usuario acceda no a un slo
directorio, sino a dos? Las soluciones -al
menos las seguras- no son inmediatas.
El servicio SMTP
El servicio SMTP ( Simple Mail Transfer
Protocol, puerto 25 TCP) se utiliza para
transferir correo electrnico entre equipos
remotos; estas mquinas pueden ubicarse
fsicamente en la misma sala, en la misma
universidad, o en la otra parte del mundo,
a miles de kilmetros de distancia. Este
servicio suele ser atendido por un
demonio denominado sendmail, que ha
sido uno de los que ms problemas de
seguridad ha tenido a lo largo de la
historia de Unix; y no es para menos: se
trata de un software muy complejo y
potente - incluso demasiado para las
necesidades de la mayora de servidores -,
Operacin de Sistema Operativo Multiusuario

por lo es inevitable que en su cdigo


existan bugs; para hacernos una idea del
grado de complejidad de sendmail
simplemente tenemos que echarle un
vistazo a su fichero de configuracion
principal, /etc/sendmail.cf. Existen incluso
libros casi dedicados exclusivamente a
este archivo ([CA97a], [CA97b]...). Una
medida de proteccin bsica para nuestro
servicio
SMTP,
y
que
muchos
administradores
desconocen,
es
la
posibilidad de servir sendmail desde inetd
en lugar de hacerlo como un demonio
independiente, y por tanto poder
restringir el acceso al mismo mediante
TCP Wrappers. En la mayora de
organizaciones existe un servidor de
correo principal que es el encargado de
recoger el mail para todas las direcciones
*@*.upv.es; el resto de equipos slo
recibirn correo desde este equipo - o
desde otro que sirve slo a un
subdominio, y que a su vez recibe slo
desde el principal -. Entonces, parece
claro que si nuestro sendmail slo recibe
correo vlido desde una mquina, lo
lgico es configurarlo para que slo
acepte peticiones desde ella: en lugar de
lanzar el demonio al arrancar el sistema,
en uno de los scripts de /etc/rc.d/ o
similar, lo serviremos desde inetd. Para
esto necesitamos en primer lugar
modificar el script correspondiente para
que sendmail no se lance como demonio
en el arranque: en lugar de invocarlo
como sendmail -bd -q15m lo haremos
como sendmail -q15m. Ademas, es
necesario identificar el servicio en
/etc/services, con una lnea como la
siguiente:
luisa:~# grep smtp /etc/services
smtp
25/tcp
mail
luisa:~#

Operacin de Sistema Operativo Multiusuario

Tras reconocer el servicio, hemos de


aadir una lnea en /etc/inetd.conf
indicando cmo se ha de ejecutar
sendmail cuando inetd reciba una
peticin en el puerto 25; dicha lnea es
similar a la siguiente:
luisa:~# grep smtp /etc/inetd.conf
smtp stream tcp nowait root /usr/sbin/tcpd
sendmail -bs
luisa:~#

Una vez realizados estos cambios


podemos controlar el acceso a nuestro
servicio SMTP mediante TCP Wrappers;
por ejemplo, en el caso de la Universidad
Politcnica, el servidor de correo principal
se denomina vega.cc.upv.es. Para que
slo esta mquina nos pueda enviar
correo, incluiremos una lnea como la
siguiente en /etc/hosts.allow:
luisa:~# grep sendmail /etc/hosts.allow
sendmail: vega.cc.upv.es
luisa:~#

El resto de sistemas no han de estar


autorizados a conectar al puerto; esto
incluye tambin a la mquina local: para
un correcto funcionamiento de nuestro
sistema de correo, ni siquiera hace falta
que localhost tenga permiso para acceder
a su puerto 25. En [Gon97] se explica
cmo
combinar
estas
restricciones
ofrecidas por TCP Wrappers con un
cortafuegos como TIS Firewall Toolkit; en
esta obra tambin se habla con ms
detalle de los problemas que puede
implicar el correo electrnico, y por
supuesto
de
cmo
solucionarlos.
Evidentemente, esto es aplicable a
sistemas que reciban correo de un nico
mailer; si debemos configurar el propio
mailer de la organizacin, que por lo
general recibir correo de un nmero
125

indeterminado de mquinas, no podemos


bloquear el acceso a su sendmail de esta
forma. No obstante, en este caso
podemos aplicar unas medidas de
seguridad simples, como realizar una
consulta inversa a DNS para asegurarnos
de que slo mquinas registradas envan
correo o no permitir que nuestro sistema
reenve correo que no provenga de
direcciones registradas bajo su dominio.
Estas medidas, bsicas para evitar
problemas de spam y mail bombing, son
necesarias en la configuracin de los
sistemas de cualquier entidad.
Servidores WWW
Hoy en da las conexiones a servidores
web son sin duda las ms extendidas
entre usuarios de Internet, hasta el punto
de que muchas personas piensan que este
servicio (HTTP, puerto 80 TCP) es el nico
que existe en la red - junto al IRC -. Lo que
en un principio se dise para que unos
cuantos
fsicos
intercambiaran
y
consultaran artculos fcilmente, en la
actualidad mueve a diario millones de
dlares y es uno de los pilares
fundamentales de cualquier empresa: es
por tanto un objetivo muy atractivo para
cualquier pirata. Los problemas de
seguridad relacionados con el protocolo
HTTP se dividen en tres grandes grupos en
funcin de los datos a los que pueden
afectar ([GS97]):
Seguridad en el servidor. Es necesario
garantizar que la informacin almacenada
en la mquina servidora no pueda ser
modificada
sin
autorizacin,
que
permanezca disponible y que slo pueda

126

ser accedida por los usuarios a los que les


est legtimamente permitido.
Seguridad en la red. Cuando un usuario
conecta a un servidor web se produce un
intercambio de informacin entre ambos;
es vital garantizar que los datos que
recibe el cliente desde el servidor sean los
mismos que se estn enviando (esto es,
que no sufran modificaciones de
terceros), y tambin garantizar que la
informacin que el usuario enva hacia el
servidor no sea capturada, destruida o
modificada por un atacante. Esto es
especialmente
importante
si
la
informacin en trnsito es secreta, como
en el caso de los passwords que el usuario
teclea para autenticarse en el servidor, o
en el comercio electrnico y el
intercambio de nmeros de tarjetas de
crdito.
Seguridad en el cliente. Por ltimo es
necesario garantizar al usuario que lo que
descarga de un servidor no va a perjudicar
a la seguridad de su equipo; sin llegar a
extremos de applets maliciosos o
programas con virus, si simplemente el
navegador del usuario se cuelga al
acceder al visitar las pginas de una
organizacin, seguramente esa persona
dejar de visitarlas, con la consecuente
prdida de imagen - y posiblemente de un
futuro cliente - para esa entidad.
Asegurar el servidor implica - aparte de las
medidas
habituales
para
cualquier
mquina Unix - medidas excepcionales
dedicadas al demonio servidor de web y
su entorno de trabajo; estas medidas son
propias para cada programa servidor, por
Operacin de Sistema Operativo Multiusuario

lo que aqu no en traremos en detalles


concretos sobre cada uno de ellos. No
obstante, y sea cual sea el servidor
utilizado (Apache, NCSA, Netscape...), es
necesario seguir un consejo bsico:
minimizar el nmero de usuarios en la
mquina y minimizar el nmero de
servicios ofrecidos en ella; aunque lo
normal es que una mquina dedicada a
cualquier tarea con decenas - o con miles
- de usuarios sea tambin el servidor web,
es recomendable que dicho servidor sea
un equipo dedicado a esa tarea. Los
problemas relacionados con servidores
web suelen proceder de errores de
programacin en los CGIs ubicados en el
servidor. Un CGI ( Common Gateway
Interface) es un cdigo capaz de
comunicarse con aplicaciones del servidor,
de forma que desde una pgina se
invoque a dichas aplicaciones pasndoles
argumentos y el resultado se muestre en
el navegador de un cliente; cuando
rellenamos un formulario, vemos una
imagen
sensible,
o
simplemente
incrementamos el contador de cierta
pgina, estamos utilizando CGIs. Esta
capacidad del CGI para comunicarse con
el resto del sistema que alberga las
pginas es lo que le otorga su potencia,
pero tambin lo que causa mayores
problemas de seguridad: un fallo en estos
programas suele permitir a cualquier
visitante de las pginas ejecutar rdenes
en el sistema. Los errores ms habituales
en un CGI provienen de los datos
recibidos desde el navegador del cliente:
un simple formulario, en el que el
visitante rellena ciertos campos, puede ser
una puerta de acceso a nuestro sistema;
es necesario comprobar la validez de
todos y cada uno de los datos ledos antes
de que sean procesados. Por ejemplo,
Operacin de Sistema Operativo Multiusuario

imaginemos un CGI que pida un nombre


de usuario por teclado y a continuacin
ejecute un finger contra ese nombre de
usuario y muestre el resultado en el
traremos en detalles concretos sobre cada
uno de ellos. No obstante, y sea cual sea
el servidor utilizado (Apache, NCSA,
Netscape...), es necesario seguir un
consejo bsico: minimizar el nmero de
usuarios en la mquina y minimizar el
nmero de servicios ofrecidos en ella;
aunque lo normal es que una mquina
dedicada a cualquier tarea con decenas o con miles - de usuarios sea tambin el
servidor web, es recomendable que dicho
servidor sea un equipo dedicado a esa
tarea. Los problemas relacionados con
servidores web suelen proceder de errores
de programacin en los CGIs ubicados en
el servidor. Un CGI ( Common Gateway
Interface) es un cdigo capaz de
comunicarse con aplicaciones del servidor,
de forma que desde una pgina se
invoque a dichas aplicaciones pasndoles
argumentos y el resultado se muestre en
el navegador de un cliente; cuando
rellenamos un formulario, vemos una
imagen
sensible,
o
simplemente
incrementamos el contador de cierta
pgina, estamos utilizando CGIs. Esta
capacidad del CGI para comunicarse con
el resto del sistema que alberga las
pginas es lo que le otorga su potencia,
pero tambin lo que causa mayores
problemas de seguridad: un fallo en estos
programas suele permitir a cualquier
visitante de las pginas ejecutar rdenes
en el sistema. Los errores ms habituales
en un CGI provienen de los datos
recibidos desde el navegador del cliente:
un simple formulario, en el que el
visitante rellena ciertos campos, puede ser
una puerta de acceso a nuestro sistema;

127

es necesario comprobar la validez de


todos y cada uno de los datos ledos antes
de que sean procesados. Por ejemplo,
imaginemos un CGI que pida un nombre
de usuario por teclado y a continuacin
ejecute un finger contra ese nombre de
usuario y muestre el resultado en el sigue
siendo una excelente opcin para
administracin remota y para transmitir
informacin confidencial en redes de
propsito general.
En ltimo lugar es necesario hablar de la
seguridad desde el punto de vista del
cliente que visita pginas web; para el
usuario, un servidor es seguro si protege
la informacin que recibe y enva hacia l,
manteniendo su privacidad, y si no
conduce al usuario a descargar programas
maliciosos - generalmente virus - en su
equipo; si sucede lo contrario, la
compaa responsable de las pginas se
enfrenta a una importante prdida de
imagen - aparte de posibles problemas
judiciales - de cara a sus usuarios:
simplemente imaginemos que salta a los
medios un fallo de seguridad en la versin
electrnica de cierto banco; ser difcil
que
todos
sus
usuarios
sigan
manteniendo la suficiente confianza en l
como para guardar all su dinero.
Tambin es necesario hablar de los
applets hostiles - o simplemente de los
mal diseados - que en muchas ocasiones
llegan a detener todas las copias del
navegador en memoria; aunque sus
implicaciones de seguridad no suelen ser
muy graves, la prdida de imagen de la
compaa es tambin considerable en
estos casos.

En muy pocas mquinas se pueden


permitir el lujo de deshabilitar este
servicio, ya que como hemos dicho es de
los ms utilizados actualmente; no
obstante, por alguna extraa razn personalmente no la llego a comprender en algunos clones de Unix (por ejemplo,
ciertas variantes de Linux) el servicio HTTP
est activado por defecto an a sabiendas
de que muchos de los usuarios de este
sistema van a utilizarlo en su casa o como
estacin de trabajo independiente, donde
evidentemente no es habitual - ni
necesario en la mayora de ocasiones ofrecerlo. Por supuesto, en estos casos es
importante detener el demonio httpd y
evitar que se vuelva a iniciar con el
arranque de la mquina, modificando el
script correspondiente. Siempre hemos de
recordar que hemos de ofrecer slo los
servicios imprescindibles en cada sistema.
Los servicios rLos servicios r-* de Unix BSD (aparecieron
inicialmente en la versin 4.2 de esta
variante de Unix) son herramientas con
una parte cliente y una servidora que
permiten la conexin remota entre
mquinas, principalmente para servicios
de terminal remota y transferencia de
ficheros. Las herramientas clientes son
rsh, rlogin y rcp, mientras que las
servidoras son demonios como rexecd,
rshd o rlogind (en algunas versiones de
Unix, con in. delante del nombre del
demonio); rdist y rdistd, otro par de estas
herramientas r-*, no los vamos a tratar
aqu.
rlogin (puerto 513, TCP) se utiliza como
terminal virtual de un sistema Unix , de

128

Operacin de Sistema Operativo Multiusuario

una forma muy parecida a TELNET. rsh


(puerto 514, TCP) es utilizado para
ejecutar comandos en una mquina
remota sin necesidad de acceder a ella, y
rcp (va rsh) para copiar ficheros entre
diferentes mquinas:
luisa:~# rlogin -l toni rosita
Overflow on /dev/null, please empty the bit
bucket.
rosita:~$ exit
logout
rlogin: connection closed.
luisa:~# rsh -l toni rosita id
uid=1000(toni) gid=100(users)
groups=100(users)
luisa:~# rcp prueba.tex toni@rosita:/tmp/
luisa:~#

Como vemos, la ltima orden no ha


solicitado ninguna contrasea; ha copiado
el fichero local prueba.tex en el
directorio /tmp/ del sistema remoto, bajo
la identidad del usuario toni. A
continuacin veremos por qu no se ha
pedido clave para realizar esta accin.
Estos servicios pretenden evitar el trnsito
de contraseas por la red, ya que este
movimiento de claves implica molestias a
los usuarios y tambin problemas de
seguridad; para conseguirlo, entran en
juego lo que los diseadores del sistema
de red de Unix BSD denominaron
mquinas fiables y usuarios fiables:
cualquier usuario, puede hacer uso de
recursos de una mquina remota sin
necesidad de una clave si su conexin
proviene de una mquina fiable o su
nombre de usuario es fiable.
Una mquina se puede considerar fiable
de dos formas: o bien su nombre se
encuentra en /etc/hosts.equiv, o bien se
encuentra en un fichero denominado
Operacin de Sistema Operativo Multiusuario

.rhosts y situado en el $HOME de algn


usuario. Si estamos en el primer caso,
cualquier usuario (excepto el root) del
sistema remoto - y fiable - puede hacer
acceder a nuestro equipo bajo el mismo
login que tiene en el primero, sin
necesidad de claves. En el segundo caso,
utilizando los ficheros .rhosts, cualquier
usuario del sistema remoto podr
conectar al nuestro pero slo bajo el
nombre de usuario en cuyo $HOME se
encuentra el archivo. Por ejemplo,
imaginemos la siguiente configuracin:
rosita:~# cat /etc/hosts.equiv
luisa
rosita:~# cat ~toni/.rhosts
anita
rosita:~#

En esta situacin, cualquier usuario de


luisa puede acceder a rosita si su nombre
de usua
rio es el mismo; adems, el usuario toni
de anita puede tambin conectar a rosita
sin necesidad de ninguna contrasea:
anita:~$ rlogin rosita
In the long run, every program becomes rococo,
and then rubble.
Alan Perlis
rosita:~$ id
uid=1000(toni) gid=100(users)
groups=100(users)
rosita:~$

Aparte de mquinas fiables habamos


hablado de usuarios fiables; la idea es la
misma que antes, pero aplicndola ahora
a nombres de usuario junto a (o en lugar
de) nombres de mquina. Podemos
indicar
estos
nombres
tanto
en
/etc/hosts.equiv como en los archivos
.rhosts; no obstante, la primera opcin no
es recomendable, ya que estaramos
permitiendo al usuario fiable del sistema
129

remoto acceder sin contrasea a cualquier


cuenta de nuestra mquina. De esta
forma, si deseamos crear usuarios fiables
de sistemas remotos, es necesario hacerlo
en los archivos .rhosts. Por ejemplo,
imaginemos que el usuario toni de
nuestra mquina tiene un nombre de
usuario distinto ( antonio) en un sistema
remoto, y desea establecer una relacin
de confianza; para ello crear en su
$HOME el siguiente archivo .rhosts:
rosita:~# cat ~toni/.rhosts
amparo antonio
rosita:~#

Entonces, desde la mquina amparo el


usuario antonio podr acceder a la cuenta
de toni en nuestro sistema sin utilizar
contraseas:
amparo:~$ id
uid=102(antonio) gid=10(staff)
amparo:~$ rlogin -l toni rosita
It is practically impossible to teach good
programming style to
students that have had prior exposure to BASIC: as
potential
programmers they are mentally mutilated beyond
hope of
regeneration.
Dijkstra
rosita:~$ id
uid=1000(toni) gid=100(users)
groups=100(users)
rosita:~$

Como podemos ver, las relaciones de


confianza entre equipos Unix pueden ser
muy tiles y cmodas, pero al mismo
tiempo
muy
peligrosas:
estamos
confiando plenamente en sistemas
remotos, por lo que si su seguridad se ve
comprometida tambin se ve la nuestra.
Las mquinas fiables se han de reducir a
equipos de la misma organizacin, y
130

administrados por la misma persona;


adems, es necesario tener siempre
presente que si tenemos habilitados los
servicios r-* cualquier usuario puede
establecer relaciones de confianza, lo que
puede suponer una violacin de nuestra
poltica de seguridad. Es conveniente
chequear los directorios $HOME en busca
de ficheros .rhosts (en la seccin 10.2.6 se
presentaba
un
shellscript
que
convenientemente
planificado
puede
ayudarnos en esta tarea); muchos
administradores prefieren no complicarse
buscando estos ficheros, y configuran sus
sistemas para que en cada $HOME exista
un fichero con este nombre, propiedad de
root y con modo 000: as los usuarios no
tienen ocasin de otorgar confianza a
sistemas remotos. Esto se puede
conseguir con el siguiente shellscript:
#!/bin/sh
for i in cat /etc/passwd |awk -F: {print $6}; do
cd $i
> .rhosts
chmod 0 .rhosts
done

Las
relaciones
de
confianza
son
transitivas: si una mquina confa en otra,
lo hace tambin en todas en las que
confa ella. De esta forma se crean anillos
de confianza entre mquinas, y como las
relaciones suelen estar basadas en el
nombre del equipo se trata de objetivos
ideales para un atacante mediante IP
Spoofing: si un pirata consigue hacer
pasar su equipo por uno de los confiables,
automticamente ha conseguido acceso casi ilimitado - al resto de las mquinas.
X Window
El entorno X Window proporciona
herramientas increblemente potentes,
Operacin de Sistema Operativo Multiusuario

pero que si no son correctamente


configuradas pueden convertirse en
peligrosas. Este sistema est formado por
una serie de piezas que trabajan
conjuntamente para ofrecer al usuario
final un interfaz grfico:
La ms importante de ellas, sobre todo
desde el punto de vista de la seguridad es
el
servidor
X.
Este
programa
generalmente se ejecuta en la terminal de
usuario, y tiene como funcin principal
ofrecer unas primitivas bsicas de dibujo
(trazado de rectas, relleno de reas...)
sobre la pantalla; adems gestiona
eventos de teclado y ratn.
Las aplicaciones X son programas de
usuario que lanzan llamadas contra un
servidor X. Mientras que el servidor se
ejecuta habitualmente en la terminal
desde donde conecta el usuario las
aplicaciones se pueden lanzar desde el
mismo equipo o tambin desde una
mquina ms potente, de forma que
aprovechamos
la
capacidad
de
procesamiento de ese equipo pero
visualizamos el resultado en la terminal
grfica; en este caso se ha de indicar a los
clientes la ubicacin del servidor,
mediante la variable de entorno $DISPLAY
o mediante la opcin de lnea de
comandos -display.
El gestor de ventanas es un caso
particular de aplicacin, ya que se
encarga de ofrecer un entorno de trabajo
ms amigable al usuario que est
trabajando en la terminal: dibujo de
marcos, mens, cerrado de ventanas.
Es el servidor X Window quien establece
su poltica de seguridad para permitir a
determinados
clientes
utilizar
sus
servicios.
Para
ello
existen
dos
mecanismos bsicos: la autenticacin por
Operacin de Sistema Operativo Multiusuario

testigo y la autenticacin por mquina


([Fis95]; otros esquemas, como SUN-DES1, no los vamos a contemplar aqu.
Autenticacin por mquina
La autenticacin por mquina cliente (
host authentication) es el mecanismo ms
simple, pero la seguridad que proporciona
es muy limitada; es til en entornos
donde los clientes X se ejecutan o bien en
estaciones monousuarios o bien en
equipos donde todos los usuarios son
confiables ([Vic94]). Adems, en sistemas
antiguos es el nico modelo de seguridad
disponible, por lo que en ocasiones no
queda ms remedio que limitarse a l.
Funciona configurando el servidor para
permitir conexiones a l provenientes de
una lista de mquinas, por ejemplo con la
orden xhosts:
anita:~# xhost +luisa
luisa being added to access control list
anita:~#

Si ejecutamos la sentencia anterior en la


mquina donde se ejecuta el servidor,
cualquier usuario del sistema remoto
estar autorizado a lanzar aplicaciones
contra l12.3:
luisa:~# xterm -display anita:0.0 &
[1] 11974
luisa:~#

La orden xhost sin opciones nos dar una


lista de los clientes que pueden lanzar
aplicaciones contra el servidor, mientras
que la opcin especial + deshabilitar
este control de acceso, algo que
evidentemente no es recomendable:
cualquier usuario de cualquier sistema
podr utilizar nuestro servidor:
anita:~# xhost
access control enabled, only authorized clients can
connect
LOCAL:
INET:anita

131

INET:localhost
INET:luisa
anita:~# xhost +
access control disabled, clients can connect from
any host
anita:~# xhost
access control disabled, clients can connect from
any host
LOCAL:
INET:anita
INET:localhost
INET:luisa
anita:~#

Una medida de seguridad bsica


utilizando este modelo es habilitar la
mquina en nuestra lista de hosts slo el
tiempo necesario para que el cliente
arranque, y deshabilitarla despus; as la
ejecucin de la aplicacin cliente
funcionar normalmente, pero no se
podrn lanzar nuevas peticiones al
servidor. Tambin para eliminar una
direccin de la lista utilizamos la orden
xhost:
anita:~# xhost
access control enabled, only authorized clients can
connect
LOCAL:
INET:anita
INET:localhost
INET:luisa
anita:~# xhost -luisa
luisa being removed from access control list
anita:~# xhost
access control enabled, only authorized clients can
connect
LOCAL:
INET:anita
INET:localhost
anita:~#

De esta forma, cuando alguien intente


lanzar una aplicacin contra nuestro
servidor desde un sistema no autorizado
ver un mensaje de error similar al
siguiente:
132

luisa:~# xterm -display anita:0.0


Xlib: connection to anita:0.0 refused by server
Xlib: Client is not authorized to connect to Server
Error: Cant open display: anita:0.0
luisa:~#

Como hemos dicho, este modelo de


seguridad es demasiado vulnerable; por
un lado, estamos autenticando clientes en
base a una direccin o a un nombre de
mquina, algo fcilmente falsificable por
un atacante. Por otro, aunque los
usuarios de los sistemas a los que
permitimos utilizar nuestro servidor sean
conocidos, fiables, y amantes de la
naturaleza, nada nos demuestra que sus
sistemas sean seguros, por lo que si sus
equipos se ven comprometidos, nuestro
servidor tambin.
Autenticacin por testigo
Este mecanismo de X Window es el ms
seguro, y por tanto el ms recomendado;
en l, el servidor controla el acceso de los
clientes mediante una cookie MITMAGIC-COOKIE-1, que no es ms que un
cdigo de acceso aleatorio de 128 bits en
un formato legible por la mquina: esta
cookie actua como un password
temporal, de forma que slo los clientes
que conozcan ese password podrn
acceder al servidor. La cookie es generada
por xdm o por el propio usuario al
principio de cada sesin, con xauth, y
guardada
en
el
fichero
$HOME/.Xauthority; a partir de ese
momento, los programas clientes leern
su valor y lo enviarn al servidor cada vez
que deseen conectar a l. Podemos
comprobar que poseemos - al menos - la
cookie correspondiente a nuestro display
con una orden como la siguiente:
luisa:~# xauth list
Operacin de Sistema Operativo Multiusuario

luisa:0 MIT-MAGIC-COOKIE-1
8c1d09aab44573a524467c4e8faaaeb5
luisa/unix:0 MIT-MAGIC-COOKIE-1
8c1d09aab44573a524467c4e8faaaeb5
luisa:~#

El comando anterior, xauth, se utiliza para


manejar la informacin de las cookies de
cada usuario; por ejemplo, un uso muy
habitual es la transferencia de cookies a
mquinas remotas, para que puedan as
conectar al servidor X de un determinado
equipo. Para ello debemos extraer la
cookie de nuestro $DISPLAY y enviarla al
fichero $HOME/.Xauthority del sistema
remoto, con una orden como esta:
luisa:~# xauth extract - $DISPLAY | ssh anita -l
toni xauth merge luisa:~#

Este mecanismo tiene principalmente dos


problemas de seguridad: por un lado, las
cookies se transmiten en texto claro por la
red, por lo que son susceptibles de ser
interceptadas;
por
otro,
al
estar
guardadas
en
el
fichero
$HOME/.Xauthority, cualquiera que lo
pueda leer tendr acceso a ellas: es muy
importante que este archivo tenga
permiso de lectura y escritura slo para su
propietario, y que tambin tomemos
precauciones si los directorios $HOME de
los usuarios son exportados va NFS.
Identificacin.
Dada la caracterstica multiusuario del
sistema UNIX y por motivos de seguridad,
el acceso al mismo est restringido. Slo
tendrn acceso al sistema aquellos
usuarios a los que el administrador haya
asignado previamente un identificativo
(ID). El identificativo de usuario, asignado
por el administrador, puede tener
longitud variable, pero tan slo sern
significativos
los
primeros
ocho
Operacin de Sistema Operativo Multiusuario

caracteres.
espacios.

No

estn

permitidos

los

Para incrementar la seguridad, cada


usuario puede aadir opcionalmente una
contrasea de acceso al sistema. La
existencia de contrasea puede ser
impuesta por el administrador.
Cuando se va a trabajar desde un terminal
conectado directamente al ordenador,
nada ms encenderlo aparecer un
mensaje solicitando la identificacin del
usuario. Este mensaje puede ser
modificado por el administrador. En este
momento el usuario puede introducir el
identificativo que se le haya asignado y
pulsar retorno de carro. Es importante
que el identificativo sea introducido en
minsculas, pues en caso contrario el
sistema asume que el terminal slo
dispone de maysculas y mantendr la
comunicacin de esta forma durante toda
la sesin de trabajo. Esto puede traer
complicaciones, pues el sistema UNIX
diferencia maysculas de minsculas.
En caso de que el usuario tuviera
contrasea de acceso al sistema, le ser
solicitada a continuacin por medio de la
palabra passwd. Para mayor seguridad,
la contrasea tecleada por el usuario no
aparece jams en la pantalla. Cualquier
equivocacin al teclear el identificativo
har que el sistema solicite una
contrasea y una vez tecleada sta,
contestar con login incorrect y volver
a pedir el identificativo. Con esto se
complica el intento de acceso al sistema
por usuarios no autorizados, pues no
pueden distinguir si el error lo han
cometido al introducir el identificativo o
la contrasea.
Tan slo cuando el identificativo de
usuario y la contrasea de acceso se han
133

introducido correctamente, aparecern en


pantalla una serie de mensajes (mensaje
del da, etc.) y el sistema queda preparado
para recibir rdenes del usuario.
Siempre que el sistema est en espera
para recibir rdenes, aparecer en la
pantalla un mensaje indicativo o prompt.
Hay ms de un tipo de prompt,
dependiendo del SHELL:
- Bourne
$
- Berkeley
%
- Creados por el usuario
- Super usuario #

Para finalizar la sesin de trabajo basta


mantener pulsada la tecla Control y
pulsar la d. Otra forma de finalizar la
sesin es tecleando exit seguido de
retorno de carro. Una vez finalizada la
sesin, el sistema vuelve a mostrar los
mensajes con los que solicita el
identificativo de usuario. En este
momento se puede apagar el terminal.

Resolucin
de
nombres
y
direcciones.
Como el proceso de comunicacin entre
dos mquinas en la red lleva consigo un
intercambio de paquetes. Cada mquina
tiene una direccin nica en Internet, de
modo que para que un paquete llegue a
una mquina, basta con que en l se
especifique la direccin de destino de
sta. Las direcciones tienen el formato de
cuatro nmeros de 0 a 255 separados por
puntos. Una direccin Internet es por
ejemplo
150.214.70.2.
Todos
los
paquetes con destino a esa mquina
tendrn como direccin de destino
150.214.70.2 . Este nmero es conocido
como direccin Internet o nmero IP.

134

Este nombre es equivalente a la direccin


Internet o direccin IP. As el nombre
equivalente para el nmero 150.214.70.3
es
platea.pntic.mec.es.
En
este
distinguimos entre el nombre del
ordenador propiamente dicho platea, el
subdomino pntic y el dominio mec.es
que identifica la red en que se encuentra
el ordenador. As, sabemos que platea
es una mquina que pertenece a la red
del PNTIC del MEC, y que forma parte de
todas las redes espaolas es.
Se ha visto, de forma somera como se
comunican los ordenadores a travs de
una red. Normalmente estos procesos
deberan pasar inadvertidos para el
usuario. De ello se encargan las distintas
aplicaciones o programas que utilizan la
red, estos son cada vez ms sofisticados y
potentes, creando la ilusin de que hay
cosas que se estn realizando en modo
local, cuando en realidad se estn
utilizando recursos de mquinas remotas
(discos, CPU, aplicaciones,...).

Conexin remota.

Servidores archie
Debe utilizar la herramienta Telnet y
conectarse a alguno de los servidores que
existen.
Cuando aparezca el login utilice
archie, no se necesita password. Al
entrar aparecer una pantalla de ayuda
explicando como usar el sistema. Pero en
cualquier caso, siempre se puede solicitar
ayuda sobre Archie con el comando
help. Y si la que se busca es especifica
de un comando entonces se utiliza help
Operacin de Sistema Operativo Multiusuario

seguido del comando. Por ejemplo, help


prog.
Buscar. documentos.- Pruebe primero la
bsqueda por nombre de fichero.
Simplemente indique la subcadena que
quiera localizar a lo largo de todos los
nombres archivados en la Base de Datos.
Independientemente de que lo teclee en
maysculas, minsculas o ambos tipos
conjuntamente, Archie lo encontrar
tambin. Puede hacer una bsqueda que
tenga o no en cuenta como est escrita la
subcadena.

Y pronto recibir en su cuenta todos los


resultados que solicit por correo
electrnico.

CONTEXTUALIZACIN
Competencia tecnolgica
Utilizar herramientas de hardware y
software disponibles.

Por ejemplo: prog education.


Cuando Archie
mostrar:

acaba

la

bsqueda,

Los ficheros cuyos nombres contengan la


cadena education.
Los ordenadores, servidores de FTP
anonymous, donde conseguir dichos
ficheros.
El subdirectorio donde se encuentran
archivados.
Si desea tener una copia de los resultados
en
su
propia
cuenta
por
correo,simplemente teclee:

Estudio individual
Realizar un programa de shell que
reciba desde lnea de rdenes tres
palabras
y
se
encargue
de
mostrarlas por pantalla ordenadas
alfabticamente prctica de ejercicio
nm. 4 Ordenes del sistema de
red.
Realizar un programa de shell que
visualice por pantalla los nmeros
del 1 al 100, as como, sus cuadros.
Ejecutar las rdenes para el servicio
de red.

mail <su_direccin_completa_de_correo>

Ahora intente una bsqueda rpida por el


contenido del fichero.
Simplemente poniendo: whatis education
Le mostrar todas la apariciones que ha
localizado de esa subcadena en la Base de
Datos. De nuevo si desea tener una copia
de esto teclee su direccin de correo
electrnico.

Repeticin del ejercicio


Repetir el ejercicio anterior.

Para terminar la sesin Archie teclee:


quit
Operacin de Sistema Operativo Multiusuario

135

RESULTADO DE APRENDIZAJE
2.2.

Manejar la administracin de cuentas de UNIX con base a permisos establecidos de


usuarios.

2.2.1. PARADA Y ARRANQUE DEL SISTEMA


UNIX

Campos de /etc/initlab.

Se puede dividir en dos etapas principales:


el arranque del ncleo del sistema
operativo (SO), y la inicializacin que lleva
acabo el programa init.
Nada ms encender la mquina,
normalmente toma el control algn tipo
de ROM que se encarga de verificar la
integridad del hardware. En las PC es la
BIOS, y el las Sun es la PROM. Una vez
que la ROM haya terminado su testeo
cede el control al sistema operativo. Este
mecanismo depende de cada arquitectura
en particular, en los PC se carga el primer
sector del disco rgido primario (o
disquete), que es el MBR (Master Boot
Record), en las Sun, la PROM ofrece la
posibilidad de elegir el dispositivo de
desde donde se cargar el SO, esto puede
ser tan atpico como un lector de cinta
magntica o una red local. En las
modernas placas madres la BIOS permite
la carga del SO desde un CD-ROM.
El gestor de arranque, que suele estar en
los primeros clusters del dispositivo
elegido, se encarga de cargar y ejecutar el
ncleo UNIX, llamado normalmente
vmunix, en Linux vmlinuz. Para cargar
136

dicho archivo, o bien la informacin sobre


los clusters donde se halla en el mismo
gestor, como es el caso del LILO, o bien el
gestor es tan inteligente de entender un
sistema de archivos UNIX, como es el caso
de las Estaciones de Trabajo. Una vez
cargado en un segmento de memoria
reservada para tal fin, el gestor lo
interpreta y cede el control al SO.

Acciones de INIT despus del


arranque.

El ncleo se ejecuta en modo supervisor


del procesador, inicia las tablas de
interrupciones, excepciones, etc, (en el
caso
de
Linux
ver
/usr/src/linux/arch/i386/kernel/head.S, esta
rutina se encarga de ser la antesala a la
rutina main()) la gestin de la memoria
paginada MMU (Memory Management
Unit) y finalmente el planificador de
procesos o scheduler. Despues reconoce
uno por uno los dispositivos para los que
fue configurado, e inicia los controladores
correpondientes (device drivers). Una vez
terminada esta operacin monta el
directorio raz, una vez ms el
dispositivo donde se encuentra debe estar
definido en el propio ejecutable
encargado. Si no lo encuentra el SO
genera un error especial llamado pnico
(panic). Este tipo de error es bloqueante
para el SO, y no contina hasta que sea
Operacin de Sistema Operativo Multiusuario

corregido (en el caso de las PC apagando


la mquina, en los sitemas MainFrame
lanza un prompt y un intrprete propio
de comandos para corregirlo).

Archivo /etc/inittab.

Cuando ha conseguido montar el


directorio raz, el ncleo busca en /etc un
programa llamado init (el Linux est en
/sbin/init) que se encargar de continuar
la iniciacin del SO. El proceso original
(PID 0) ejecuta una llamada fork(), se
clona en el proceso PID 1 que hace otra
llamada exec() al init que sustituye en
memoria al clonado. El proceso PID 0
pasa a realizar tareas que depende de los
SO, en Linux pasa a ser el swapper, en
BSD el kernel memory manager, etc.
Previamente a la ejecucin del init el PID 1
pasa a modo usuario y la nica forma de
acceder al modo supervisor es por una
llamada al sistema (system call). El
programa init lee su configuracin del
archivo ubicado en /etc/inittab. Con el
programa init el Sistema V introduce el
concepto de niveles de ejecucin o
runlevels. Estos son estados del SO en
funcin de los servicis que puede
ofrecer. Hay niveles diferentes para
arrancar
la
mquina
en
modo
mantenimiento
(single
user),
multiusuario, o para arrancar el sistema
de ventanas XWindow.

Comando PATH.

Lista de rutas de acceso, separadas por


dos puntos : y donde una entrada con
un slo punto identifica el direcorio
actual. Son vlidas asignaciones como:

Procesos gatty.
Las entradas que encontramos en el
fichero inittab son los guiones (script) que
contiene los comandos de inicializacin
del sistema. Tambin hay lneas que
contienen comandos a ejecutarse en caso
de sucesos excepcionales, como ser un
corte de energa. Los indicadores del
proceso tienen ciertas instrucciones
especiales como ser: wait,para esperar a
que termine antes de continuar,
respawn, para ejecutar otra copia
cuando termina, o once, para ejecutar
por nica vez.

Identificadores de proceso grupo


de procesos.

En el Sistema V normalmente hay un


guin que debe ejecutarse siempre y que
contiene los mecanismos especiales de
ejecucin independientes del nivel. ste
posee la entrada si en general el guin
se llama rc.sysinit. Luego le pasa el control
a los guiones ubicados en /etc/rc.d/rc...
que segn el nivel lanzan los procesos en
segundo plano supervisados por el init
(demonios). Estos demonios se encargan
de gestionar el transporte del correo
(sendmail), impresin (lpd), etc.

Permisos.

Una vez activados los servicios de


procesos y grupos de procesos, se lanzan
los procesos que permiten la entrada de
los usuarios al sistema con previa
autenticacin. Estos son los encargados
de llamar los intrpretes de comandos
especificados en /etc/passwd.

# PATH=$PATH:/home/pepe:/home/antonio

Operacin de Sistema Operativo Multiusuario

137

Parada del sistema UNIX.

Las paradas de sistema Unix son creadas


para autorizar o no a usuarios con
caractersticas de sistema determinadas.
El administrador del sistema no debe
tener restricciones ni paradas del sistema
Unix.

2.2.2 ADMINISTRACION
USUARIOS Y GRUPOS

DE

LOS

El archivo /etc/passwd.
Antes de plantearse configurar y
administrar una mquina UNIX es
necesario tener
ciertos conocimientos generales de uso:
La mayora de los servicios (demonios) se
configuran mediante un fichero de texto
plano. Por ello es imprescindible conocer
un editor de texto. El editor vi est
siempre disponible, por lo que es
fundamental conocer las ordenes bsicas
de ste. La hoja de manual en lnea es una
buena fuente de informacin: $ man vi. O
la ayuda de GNU: $ info vi.
Es necesario conocer el esquema de
permisos. UNIX basa toda la seguridad
interna en el esquema de proteccin de
los ficheros.
La forma ms fcil de realizar tareas
repetitivas de mantenimiento y seguridad
es
utilizando
scripts
interpretados.
Inicialmente slo se dispona del shell,
pero actualmente se dispone de una gran
variedad de lenguajes interpretados:

138

El archivo /etc/group.

Perl (Practical
Language)

Extraction

and

Report

Es un interprete muy verstil que permite


realizar todo tipo de operaciones sobre
ficheros con un potente analizador de
expresiones. Muy utilizado para la
administracin y para la creacin de CGIs.
TCL/TK
TCL es un lenguaje interpretado con
algunas reminiscencias de Lisp, que junto
con la librera grfica TK forman una
herramienta perfecta para producir en
muy poco tiempo pequeas aplicaciones
grficas.
AWK
No es realmente un lenguaje pensado
para administrar, pero es un interprete
compacto (un slo fichero ejecutable),
con un lenguaje de programacin muy
similar a C. El lenguaje AWK se podra
describir como una fusin de C y BASIC
todo ello interpretado y con funciones
para el trabajo con expresiones regulares.
Al igual que el editor vi este programa
suele estar disponible en todos los
sistemas UNIX

Aadir usuarios al sistema.

La administracin del sistema consiste


bsicamente en gestionar los recursos del
sistema para que se puedan utilizar de la
forma ms eficiente posible as como
llevar control de los usuarios potenciales
del sistema. Entrando ms en detalle, las
Operacin de Sistema Operativo Multiusuario

tareas de administracin del sistema ms


comunes son las siguientes:
Instalar el sistema operativo.
Aadir, eliminar y controlar usuarios y sus
contraseas.
Instalar software de aplicacin.
Instalar
hardware
(como
tarjetas,
impresoras, terminales y modems).
Mantener la seguridad e integridad del
sistema y de la red.
Diagnosticar
y
arreglar
problemas
software y hardware cuando ocurran.
Comprobar el uso de los sistemas de
archivos para asegurarse que no estn
llenos y adems controlar el uso
indiscriminado de
stos.
Mantener
impresoras,
terminales remotos.

modems

Realizar copias de seguridad de los


sistemas de archivos.
Recuperar archivos
seguridad.

desde

copias

de

Mantener servicios de red, correo y otros


servicios de comunicaciones.
Optimizar el uso de los recursos del
sistema.
Asistir a los usuarios en sus necesidades.

Comunicacin
administrador y usuarios.

entre

El administrador tiene la obligacin de


estar en constante monitoreo de cada
uno de sus usuarios para poder llevar un
seguimiento del control de flujo de
informacin. Esto lo lleva a cabo por
medio de restricciones, permisos y
proteccin de ficheros y, dado el caso, la
desconexin de una terminal.

Medidas de seguridad en un
sistema UNIX.

Proteccin de archivos.
Cuando administramos un sistema
informtico, ya sea el ordenador de
nuestro hogar o toda una red de
computadoras, no debemos de olvidar
que el trabajo no slo consiste en
configuracin y mantenimiento. El hecho
de administrar un sistema lleva implcita
la obligacin de protegerlo contra
elementos maliciosos que directa o
indirectamente puedan causar perjuicio
para la integridad del mismo o hacia la
confidencialidad de los datos que en l se
guardan.
La versatilidad y filosofa de Unix permite
emprender esta tarea como una aventura,
en contra de la lejana utopa de proteger
entornos de ventanitas }:)

Suspensin de usuarios a grupos.

Los comandos y archivos relativos a la


administracin del sistema vara de una
versin a otra del UNIX, pero la filosofa
es siempre la misma.

Operacin de Sistema Operativo Multiusuario

Desconexin de terminales
Existen dos casos concretos en que es
conveniente el almacenamiento de
informacin en otros medios que no sean

139

los discos del sistema. Debido a la


desconexin de terminales.

Seguridad
terminal

para

el

usuario

en

su

El primero de estos casos se usa para


mejorar la utilizacin de los recursos de
disco, y consiste en copiar a otros medios
(cintas o disquetes) los archivos de datos
u otro tipo, que no se utilizan
habitualmente para, a continuacin,
borrarlos del disco. Cuando sea necesario
volver
a
utilizar
la
informacin
archivada, se recuperarn desde el
medio correspondiente. Lgicamente,
este caso puede variar de importancia
dependiendo de la capacidad de los
discos instalados.
Observacin en los archivos de control.
Sin duda alguna, el segundo caso es de
una importancia especial. Se trata de
mantener copias de seguridad de toda la
informacin contenida en el disco, lo ms
actualizada
posible
para
poder
recuperarla en caso de que, ya sea por
fallo hardware de la mquina o por error
humano, esta informacin se pierda.

CONTEXTUALIZACIN
Competencia analtica
Aplicar la tecnologa de sistemas
operativos como administrador de
aplicaciones y procesos de utilidad al
quehacer cotidiano.
140

Realizacin del ejercicio


Determinar el valor de la variable
PATH para el superusuario y
compruebe si est activada con el
valor adecuado.
Comprobar que los directorios de
sistema tienen todos sus derechos
habilitados correctamente.

Investigacin documental
Obtener
informacin sobre
proceso init para determinar
configuracin particular de
sistema.
Trabajar en equipo
Deter la mquina utilizando
orden shutdown, esperando
minutos y enviando un mensaje
finalizacin.

el
la
su
la
2
de

Investigacin de campo
Verificar qu terminales son seguros
y cules no en su sistema.
Iniciar una sesin como root y
determine si los subdirectorios /etc,
/usr/bin y /usr/lib tienen los derechos
adecuados para la seguridad del
sistema prctica de ejercicio nm. 5
Permisos.
Transformar permisos a lectura y
escritura.

Operacin de Sistema Operativo Multiusuario

RESULTADO DE APRENDIZAJE
2.3.

Organizar la informacin de archivos y discos mediante el sistema de archivos.

2.3.1. SISTEMA DE ARCHIVOS

Caractersticas.

CARACTERSTICAS DEL SISTEMA DE ARCHIVOS


Un fichero es una coleccin de informacin que se almacena en un disco o cinta
magntica.

organizar y almacenar informacin.


Existen 2 tipos de ficheros del sistema:

Almacenamiento

ALMACENAMIENTO DE FICHEROS

Ficheros
ordinarios:
estos
ficheros
contienen datos, textos y programas
ejecutables (comandos).

Los ficheros del sistema son estructuras


que los ordenadores utilizan para

Ficheros
directorios:
estos
ficheros
contienen nombres de ficheros. Los

Operacin de Sistema Operativo Multiusuario

141

directorios no se utilizan para almacenar


datos, si no que se utilizan para organizar
otros ficheros en grupos.

Los directorios pueden contener otros


directorios, ficheros ordinarios o estar
vacos.

Todos los ficheros tienen asociado un


nombre de fichero; este nombre
identifica el fichero y su contenido.

Un fichero ordinario es siempre el ltimo


fichero en un path (camino).
El primer directorio de la estructura es el
directorio raz; todos los dems ficheros y
directorios parten de l. El directorio raz
se designa con un nombre especial, /.
Ningn otro fichero puede tener este
nombre.
En el sistema UNIX, todos los ficheros
forman parte de la jerarqua. Cualquier
fichero de esta estructura es parte de una
red de directorios conectados. Esta red de
directorios, junto con el nombre de un
fichero particular, constituye el pathname
para un fichero.

El nombre de un fichero puede tener de 1


a 255 caracteres; pero se pueden utilizar
nicamente los siguientes caracteres:
a)
b)
c)
d)
e)
f)

Letras maysculas ( A - Z ).
Letras minsculas ( a - z ).
Nmeros ( 0 - 9 ).
Subrayado ( _ ).
Punto ( . ).
Coma ( , ).

Cada fichero se identifica con un nico


pathname, que describe su localizacin
con respecto a los otros directorios.
Se puede especificar un nombre de
fichero utilizando pathnames absolutos o
relativos:
Un pathname absoluto especifica la
localizacin de un fichero desde el
directorio raz. Por lo tanto, todos los
pathnames absolutos deben de empezar
con un slash (/).

La estructura del conjunto de todos los


ficheros del sistema, es una estructura de
rbol invertido, como se puede apreciar
en la figura siguiente. Un directorio
equivale a abrir una rama dentro del
rbol.

Un pathname relativo especifica la


localizacin de un fichero con respecto al
directorio en que se est trabajando, en
lugar del directorio raz, por lo que no
empienzan con un slash (/).

Observemos que:

El home directory es un subdirectorio del


directorio raz (root) en el que se entra

142

El punto (.) se refiere al directorio en que


se est, y dos puntos (..) se refiere al
directorio anterior.

Operacin de Sistema Operativo Multiusuario

cada vez que se hace login; es donde van


a residir los ficheros del usuario.
Normalmente tiene el mismo nombre que
el nombre de usuario.
El comando pwd ( print working
directory) nos dice en qu directorio
estamos. El formato es simplemente :
pwd

Lista el contenido del directorio en que


nos encontramos. Si ponemos slo ls se
obtiene una lista con el nombre de los
ficheros; si se quiere obtener ms
informacin sobre esos ficheros se utilizan
las opciones del comando, cuya sintaxis
general es:
ls [-alsF] fichero

Estas opciones se pueden combinar para


obtener la informacin que queramos al
mismo tiempo; por ejemplo, ls -sF, dar la
lista de los ficheros en la que el nombre
de cada fichero va precedido por su
tamao (en kilobytes) y va seguido de un
slash (/) en el caso de que sea un
directorio o de un asterisco (*) en el caso
de que sea un fichero ejecutable.
Por ltimo, indicaremos que se puede
listar el contenido de un directorio
diferente al que estamos, sin ms que
especificar el path correspondiente a
continuacin de las opciones; por
ejemplo:
ls -s /usr/Johnson/documentacin

Tipos de Archivos.
Directorios.

usuario no sabe en qu disco estn los


ficheros que est utilizando.

Un fichero (o archivo) es un conjunto de


informacin al que se le da un nombre
(nombre del fichero). Existen tres tipos de
ficheros en UNIX:
Ordinarios: Son cadenas de bytes
terminadas con <ctrl>D (este cdigo
significa fin de fichero). Pueden ser texto,
objetos, ejecutables, bibliotecas de
mdulos, ...
Directorios: Contienen nombres de
ficheros y su direccin fsica. Puede
pensarse en ellos como carpetas que
contienen ficheros y directorios. Un
directorio dentro de otro directorio se
denomina subdirectorio.
Especiales: Asociados a dispositivos
entrada/salida. Contienen referencias a los
drivers
(programas
que
manejan
directamente los dispositivos y que forman
parte del ncleo). Pueden ser de tipo
bloque (apuntan a dispositivos tipo disco)
y carcter (apuntan a dispositivos como
terminales, impresoras, etc). Por convenio,
residen en el directorio /dev.

Archivos de dispositivo
Al elegir los nombres de los ficheros, es
conveniente limitarse a utilizar slo los
caracteres que correspondan a letras,
nmeros, el carcter subrayado _ y el
carcter punto.

Estructura
archivos.

del

sistema

de

UNIX emplea un sistema de ficheros


jerrquico de directorios-ficheros.

Los ficheros cuyo nombre comience por


punto permanecen ocultos.

No existe, a nivel de usuario, el concepto de


volumen, ni de dispositivo fsico. Es decir, el

En UNIX existe una jerarqua de


directorios que para un sistema estndar
sera:

Operacin de Sistema Operativo Multiusuario

143

Tuberas con nombre


Los ficheros se especifican por:
{camino jerrquico}/nombre{.ext}

donde las llaves ({}) pueden ser o no


necesarias. Los ficheros pueden constar
de una extensin que es lo que aparece
tras el punto (.). Un ejemplo sera:

Bloque de arranque.

Supongamos la siguiente estructura de


ficheros-directorios:
Y que nos encontramos en el directorio
otros_archivos. Las referencias a los
diferentes ficheros se haran de la
siguiente manera:

Lista de nodos ndice.

Existen
3
ficheros
implementados en UNIX:

estndar

Entrada estndar (stdinput): Teclado (0)


Salida estndar (stdoutput): Pantalla (1)
Errores estndar (stderr): Pantalla (2)

La redireccin entrada/salida, que se


explicar ms adelante, permite cambiar
estas asignaciones en cualquier momento.

Bloques de datos.

Los bloques de datos estn determinados


por sus caractersticas en conjunto, ya
sean de lectura, escritura, eliminacin,
etc.

Superbloque.
Normalmente, ser ms corto y sencillo
utilizar el acceso relativo excepto en
determinados casos (por ejemplo, en
nuestro caso, /bin/fgrep).
UNIX no mantiene versiones de ficheros,
por lo que es necesario prestar especial
atencin a acciones como borrarlos o
modificarlos.

144

Operacin de Sistema Operativo Multiusuario

2.3.2 ORDENES PARA ADMINISTRAR EL


SISTEMA DE ARCHIVOS

Creacin
archivos.

de

un

sistema

de

crypt(1)
La orden crypt permite cifrar y descifrar
ficheros en diferentes sistemas Unix; si no
recibe parmetros lee los datos de la
entrada estndar y los escribe en la salida
estndar, por lo que seguramente
habremos de redirigir ambas a los
nombres de fichero adecuados. Un
ejemplo simple de su uso puede ser el
siguiente:
$ crypt <fichero.txt >fichero.crypt
Enter key:
$

En el anterior ejemplo hemos cifrado


utilizando crypt el archivo fichero.txt y
guardado el resultado en fichero.crypt; el
original en texto claro se mantiene en
nuestro directorio, por lo que si queremos
evitar que alguien lo lea deberemos
borrarlo.

Montaje de
archivos.

un

sistema

de

Para descifrar un fichero cifrado mediante


crypt (por ejemplo, el anterior) utilizamos
la misma orden y la misma clave:
$ crypt <fichero.crypt>salida.txt
Enter key:
$

El anterior comando ha descifrado


fichero.crypt con la clave tecleada y
guardado el resultado en el archivo
salida.txt, que coincidir en contenido con
Operacin de Sistema Operativo Multiusuario

el anterior fichero.txt. crypt no se debe


utilizar nunca para cifrar informacin
confidencial; la seguridad del algoritmo
de cifra utilizado por esta orden es
mnima, ya que crypt se basa en una
mquina con un rotor de 256 elementos
similar en muchos aspectos a la alemana
Enigma, con unos mtodos de ataque
rpidos y conocidos por todos ([RW84]).
Por si esto fuera poco, si en lugar de
teclear la clave cuando la orden nos lo
solicita lo hacemos en lnea de comandos,
como en el siguiente ejemplo:
$ crypt clave < fichero.txt > fichero.crypt
$

Entonces a la debilidad criptogrfica de


crypt se une el hecho de que en muchos
Unices cualquier usuario puede observar
la clave con una orden tan simple como
ps (no obstante, para minimizar este
riesgo, el propio programa guarda la clave
y la elimina de su lnea de argumentos
nada ms leerla). Obviamente, la orden
crypt(1) no tiene nada que ver con la
funcin crypt(3), utilizada a la hora de
cifrar claves de usuarios, que est basada
en una variante del algoritmo DES y se
puede considerar segura en la mayora de
entornos.

Informacin del Espacio en disco.

La informacin referente al espacio en


disco se puede obtener tecleando el
comando ls, nos desplegar la lista de los
diferentes archivos y directorios del
sistema, as como el espacio sobrante en
el disco.

Copias de seguridad.

145

rdenes para realizar las copias de


seguridad
Las copias de seguridad del sistema son
con frecuencia el nico mecanismo de
recuperacin
que
poseen
los
administradores para restaurar una
mquina que por cualquier motivo - no
siempre se ha de tratar de un pirata que
borra los discos - ha perdido datos. Por
tanto, una correcta poltica para realizar,
almacenar y, en caso de ser necesario,
restaurar los backups es vital en la
planificacin de seguridad de todo
sistema. Asociados a los backups suelen
existir unos problemas de seguridad
tpicos en muchas organizaciones. Por
ejemplo, uno de estos problemas es la no
verificacin de las copias realizadas: el
administrador ha diseado una poltica de
copias de seguridad correcta, incluso
exhaustiva en muchas ocasiones, pero
nadie se encarga de verificar estas
copias...hasta que es necesario restaurar
ficheros de ellas. Evidentemente, cuando
llega ese momento el responsable del
sistema se encuentra ante un gran
problema, problema que se podra haber
evitado
simplemente
teniendo
la
precaucin de verificar el correcto
funcionamiento de los backups; por
supuesto, restaurar una copia completa
para comprobar que todo es correcto
puede ser demasiado trabajo para los
mtodos habituales de operacin, por lo
que lo que se suele hacer es tratar de
recuperar varios ficheros aleatorios del
backup,
asumiendo
que
si
esta
recuperacin funciona, toda la copia es
correcta.
Otro problema clsico de las copias de
seguridad es la poltica de etiquetado a
seguir. Son pocos los administradores que
no etiquetan los dispositivos de backup,
146

algo que evidentemente no es muy til: si


llega el momento de recuperar ficheros, el
operador ha de ir cinta por cinta (o disco
por disco, o CD-ROM por CD-ROM...)
tratando
de
averiguar
dnde
se
encuentran las ltimas versiones de tales
archivos.
No
obstante,
muchos
administradores siguen una poltica de
etiquetado exhaustiva, proporcionando
todo tipo de detalles sobre el contenido
exacto de cada medio; esto, que en
principio puede parecer una posicin
correcta, no lo es tanto: si por cualquier
motivo un atacante consigue sustraer una
cinta, no tiene que investigar mucho para
conocer su contenido exacto, lo que le
proporciona acceso a informacin muy
concreta (y muy valiosa) de nuestros
sistemas sin ni siquiera penetrar en ellos.
La poltica correcta para etiquetar los
backups ha de ser tal que un
administrador pueda conocer la situacin
exacta de cada fichero, pero que no
suceda lo mismo con un atacante que
roba el medio de almacenamiento; esto se
consigue, por ejemplo, con cdigos
impresos en cada etiqueta, cdigos
cuyosignificado sea conocido por los
operadores de copias de seguridad pero
no por un potencial atacante.
La ubicacin final de las copias de
seguridad tambin suele ser errnea en
muchos entornos; generalmente, los
operadores tienden a almacenar los
backups muy cerca de los sistemas,
cuando no en la misma sala. Esto, que se
realiza para una mayor comodidad de los
tcnicos y para recuperar ficheros
fcilmente, es un grave error: no hay ms
que imaginar cualquier desastre del
entorno, como un incendio o una
inundacin, para hacerse una idea de lo
que les sucedera a los backups en esos
Operacin de Sistema Operativo Multiusuario

casos. Evidentemente, se destruiran junto


a los sistemas, por lo que nuestra
organizacin
perdera
toda
su
informacin; no obstante, existen voces
que reivindican como correcto el
almacenaje de las copias de seguridad
junto a los propios equipos, ya que as se
consigue centralizar un poco la seguridad
(protegiendo una nica estancia se
salvaguarda tanto las mquinas como las
copias). Lo habitual en cualquier
organizacin suele ser un trmino medio
entre
ambas
aproximaciones:
por
ejemplo, podemos tener un juego de
copias de seguridad completas en un
lugar diferente a la sala de operaciones,
pero protegido y aislado como esta, y un
juego para uso diario en la propia sala, de
forma que los operadores tengan fcil la
tarea de recuperar ficheros; tambin
podemos utilizar armarios ignfugos que
requieran de ciertas combinaciones para
su apertura (combinaciones que slo
determinado personal ha de conocer), si
decidimos almacenar todos los backups
en la misma estancia que los equipos.
Por ltimo, qu almacenar? Obviamente
debemos realizar copias de seguridad de
los archivos que sean nicos a nuestro
sistema; esto suele incluir directorios
como /etc/, /usr/local/ o la ubicacin de los
directorios de usuario (dependiendo del
Unix utilizado, /export/home/, /users/,
/home/...). Por supuesto, realizar una
copia de seguridad de directorios como
/dev/ o /proc/ no tiene ninguna utilidad,
de la misma forma que no la tiene realizar
backups de directorios del sistema como
/bin/ o /lib/: su contenido est almacenado
en la distribucin original del sistema
operativo (por ejemplo, los CD-ROMs que
utilizamos para instalarlo).

Operacin de Sistema Operativo Multiusuario

Compresores
Existen multitud de dispositivos diferentes
donde almacenar nuestras copias de
seguridad, desde un simple disco flexible
hasta unidades de cinta de ltima
generacin. Evidentemente, cada uno
tiene sus ventajas y sus inconvenientes,
pero utilicemos el medio que utilicemos,
ste ha de cumplir una norma bsica: ha
de ser estndar. Con toda probabilidad
muchos administradores pueden presumir
de poseer los streamers ms modernos,
con unidades de cinta del tamao de una
cajetilla de tabaco que son capaces de
almacenar gigas y ms gigas de
informacin;
no
obstante,
utilizar
dispositivos de ltima generacin para
guardar los backups de nuestros sistemas
puede convertirse en un problema: qu
sucede si necesitamos recuperar datos y
no disponemos de esa unidad lectora tan
avanzada? Imaginemos simplemente que
se produce un incendio y desaparece una
mquina, y con ella el dispositivo que
utilizamos para realizar copias de
seguridad.
En
esta
situacin,
o
disponemos de otra unidad idntica a la
perdida, o recuperar nuestra informacin
va a ser algo difcil. Si en lugar de un
dispositivo
moderno,
rpido
y
seguramente
muy
fiable,
pero
incompatible con el resto, hubiramos
utilizado algo ms habitual (una cinta de
8mm., un CD-ROM, o incluso un disco
duro) no tendramos problemas en leerlo
desde cualquier sistema Unix, sin importar
el hardware sobre el que trabaja.
Aqu vamos a comentar algunos de los
dispositivos de copia de seguridad ms
utilizados hoy en da; de todos ellos (o de
otros,
no
listados
aqu)
cada
administrador ha de elegir el que ms se
adapte a sus necesidades. En la tabla 7.1
147

se muestra una comparativa de todos


ellos.
Discos flexibles
S, aunque los clsicos diskettes cada da
se utilicen menos, an se pueden
considerar
un
dispositivo
donde
almacenar copias de seguridad. Se trata
de un medio muy barato y portable entre
diferentes operativos (evidentemente,
esta portabilidad existe si utilizamos el
disco como un dispositivo secuencial, sin
crear sistemas de ficheros). Por contra, su
fiabilidad es muy baja: la informacin
almacenada se puede borrar fcilmente si
el disco se aproxima a aparatos que
emiten cualquier tipo de radiacin, como
un telfono mvil o un detector de
metales. Adems, la capacidad de
almacenamiento de los floppies es muy
baja, de poco ms de 1 MB por unidad;
esto hace que sea casi imposible
utilizarlos como medio de backup de
grandes
cantidades
de
datos,
restringiendo
su
uso
a
ficheros
individuales.
Un diskette puede utilizarse creando en l
un sistema de ficheros, montndolo bajo
un directorio, y copiando en los archivos a
guardar. Por ejemplo, podemos hacer un
backup de nuestro fichero de claves en un
disco flexible de esta forma.
luisa:~# mkfs -t ext2 /dev/fd0
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b,
95/08/09
Linux ext2 filesystem format
Filesystem label=
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group

148

Writing inode tables: done


Writing superblocks and filesystem accounting
information: done
luisa:~# mount -t ext2 /dev/fd0 /mnt/
luisa:~# cp /etc/passwd /mnt/
luisa:~# umount /mnt/
luisa:~#

Si quisiramos recuperar el archivo, no


tendramos ms que montar de nuevo el
diskette y copiar el fichero en su ubicacin
original. No obstante, este uso de los
discos flexibles es minoritario; es ms
habitual utilizarlo como un dispositivo
secuencial (como una cinta), sin crear en
l sistemas de ficheros - que quizs son
incompatibles entre diferentes clones de
Unix - sino accediendo directamente al
dispositivo. Por ejemplo, si de nuevo
queremos hacer un backup de nuestro
fichero de passwords, pero siguiendo este
modelo de trabajo, podemos utilizar la
orden tar (comentada ms adelante) para
conseguirlo:
luisa:~# tar cvf /dev/fd0 /etc/passwd
tar: Removing leading / from absolute path names
in the archive
etc/passwd
luisa:~#

Para recuperar ahora el archivo guardado,


volvemos a utilizar la orden tar indicando
como contenedor la unidad de disco
correspondiente:
luisa:~# tar xvf /dev/fd0
etc/passwd
luisa:~#

Discos duros
Es posible utilizar una unidad de disco
duro completa (o una particin) para
realizar copias de seguridad; como
suceda con los discos flexibles, podemos
crear un sistema de ficheros sobre la
unidad o la particin correspondiente,
montarla, y copiar los ficheros que nos
interese guardar en ella (o recuperarlos).
Operacin de Sistema Operativo Multiusuario

De la misma forma, tambin podemos


usar la unidad como un dispositivo
secuencial y convertirlo en un contenedor
tar o cpio; en este caso hemos de estar
muy atentos a la hora de especificar la
unidad, ya que es muy fcil equivocarse
de dispositivo y machacar completamente
la informacin de un disco completo
(antes tambin poda suceder, pero ahora
la probabilidad de error es ms alta). Por
ejemplo, si en lugar del nombre del
dispositivo
correcto
(supongamos
/dev/hdc) especificamos otro (como
/dev/hdd), estaremos destruyendo la
informacin guardada en este ltimo.
Algo muy interesante en algunas
situaciones es utilizar como dispositivo de
copia un disco duro idntico al que est
instalado en nuestro sistema, y del que
deseamos hacer el backup; en este caso es
muy sencillo hacer una copia de
seguridad completa. Imaginemos por
ejemplo que /dev/hda y /dev/hdc son dos
discos exactamente iguales; en este caso,
si queremos conseguir una imagen
especular del primero sobre el segundo,
no tenemos ms que utilizar la orden dd
con los parmetros adecuados:
luisa:~# dd if=/dev/hda of=/dev/hdc bs=2048
1523+0 records in
1523+0 records out
luisa:~#

Cintas magnticas
Las cintas magnticas han sido durante
aos (y siguen siendo en la actualidad) el
dispositivo de backup por excelencia. Las
ms antiguas, las cintas de nueve pistas,
son las que mucha gente imagina al
hablar de este medio: un elemento
circular con la cinta enrollada en l; este
tipo de dispositivos se utiliz durante
Operacin de Sistema Operativo Multiusuario

mucho tiempo, pero en la actualidad est


en desuso, ya que a pesar de su alta
fiabilidad y su relativa velocidad de
trabajo, la capacidad de este medio es
muy limitada (de hecho, las ms
avanzadas son capaces de almacenar
menos de 300 MB., algo que no es
suficiente en la mayor parte de sistemas
actuales).
Despus de las cintas de 9 pistas
aparecieron las cintas de un cuarto de
pulgada (denominadas QIC), mucho ms
pequeas en tamao que las anteriores y
con una capacidad mxima de varios
Gigabytes (aunque la mayor parte de ellas
almacenan menos de un Giga); se trata de
cintas ms baratas que las de 9 pistas,
pero tambin ms lentas. El medio ya no
va descubierto, sino que va cubierto de
una envoltura de plstico.
A finales de los ochenta aparece un nuevo
modelo de cinta que releg a las cintas
QIC a un segundo plano y que se ha
convertido en el medio ms utilizado en la
actualidad: se trata de las cintas de 8mm.,
diseadas en su origen para almacenar
vdeo. Estas cintas, del tamao de una
cassette de audio, tienen una capacidad
de hasta cinco Gigabytes, lo que las hace
perfectas para la mayora de sistemas:
como toda la informacin a salvaguardar
cabe en un mismo dispositivo, el operador
puede introducir la cinta en la unidad del
sistema, ejecutar un sencillo shellscript, y
dejar que el backup se realice durante
toda la noche; al da siguiente no tiene
ms que verificar que no ha habido
errores, retirar la cinta de la unidad, y
etiquetarla correctamente antes de
guardarla. De esta forma se consigue que
149

el proceso de copia de seguridad sea


sencillo y efectivo.
No obstante, este tipo de cintas tiene un
grave inconveniente: como hemos dicho,
originalmente estaban diseadas para
almacenar vdeo, y se basan en la misma
tecnologa para registrar la informacin.
Pero con una importante diferencia
([P$^$94]): mientras que perder unos
bits de la cinta donde hemos grabado los
mejores momentos de nuestra ltima
fiesta no tiene mucha importancia, si esos
mismos bits los perdemos de una cinta de
backup el resto de su contenido puede
resultar inservible. Es ms, es probable
que despus de unos cuantos usos
(incluidas las lecturas) la cinta se dae
irreversiblemente. Para intentar solucionar
estos problemas aparecieron las cintas
DAT, de 4mm., diseadas ya en origen
para almacenar datos; estos dispositivos,
algo ms pequeos que las cintas de
8mm. pero con una capacidad similar, son
el mejor sustituto de las cintas antiguas:
son mucho ms resistentes que stas, y
adems relativamente baratas (aunque
algo ms caras que las de 8mm.).
Hemos dicho que en las cintas de 8mm. (y
en las de 4mm.) se pueden almacenar
hasta 5 GB. de informacin. No obstante,
algunos fabricantes anuncian capacidades
de hasta 14 GB. utilizando compresin
hardware, sin dejar muy claro si las cintas
utilizadas son estndar o no ([Fri95]);
evidentemente, esto puede llevarnos a
problemas de los que antes hemos
comentado: qu sucede si necesitamos
recuperar datos y no disponemos de la
unidad lectora original? Es algo vital que
150

nos aseguremos la capacidad de una fcil


recuperacin en caso de prdida de
nuestros datos (este es el objetivo de los
backups al fin y al cabo), por lo que
quizs no es conveniente utilizar esta
compresin hardware a no ser que sea
estrictamente necesario y no hayamos
podido aplicar otra solucin.
CD-ROMs
En la actualidad slo se utilizan cintas
magnticas en equipos antiguos o a la
hora de almacenar grandes cantidades de
datos - del orden de Gigabytes. Hoy en
da, muchas mquinas Unix poseen
unidades grabadoras de CD-ROM, un
hardware barato y, lo que es ms
importante, que utiliza dispositivos de
muy bajo coste y con una capacidad de
almacenamiento suficiente para muchos
sistemas: con una unidad grabadora,
podemos almacenar ms de 650
Megabytes en un CD-ROM que cuesta
menos de 150 pesetas. Por estos motivos,
muchos administradores se decantan por
realizar sus copias de seguridad en uno o
varios CD-ROMs; esto es especialmente
habitual en estaciones de trabajo o en PCs
de sobremesa corriendo algn clon de
Unix (Linux, Solaris o FreeBSD por regla
general), donde la cantidad de datos a
salvaguardar no es muy elevada y se
ajusta a un par de unidades de CD,
cuando no a una sola.

Operacin de Sistema Operativo Multiusuario

Determinar el nmero de bloques


ocupado por el directorio /etc y /usr.
Comprobar el estado del sistema de
ficheros raz y corrija los posibles
errores.
Modificar el fichero /etcfstab para
que el anterior sistema de ficheros
sea montado de forma automtica
cuando se inicia el sistema.
Organizar informacin a travs de
ficheros.

CONTEXTUALIZACIN
Competencia analtica
Aplicar la tecnologa de sistemas
operativos como administrador de
aplicaciones y procesos de utilidad al
quehacer cotidiano.

Realizacin del ejercicio


Determinar qu sistemas de ficheros
hay montados en su sistema.
Probar para crear un sistema de
ficheros en el disco flexible. Una vez
creado, montar en un directorio
denominado /fd. Probar a acceder
al sistema de ficheros recin
montado.

Operacin de Sistema Operativo Multiusuario

151

PRCTICAS DE EJERCICIO Y LISTA DE COTEJO


Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Manejo de ambiente UNIX.

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar comandos en el sistema operativo que


le permitirn obtener informacin del ambiente UNIX.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.
Manual en lnea de UNIX.
Cuaderno de notas.
Pluma o lpiz.

Maquinaria y Equipo
Terminal o Computadora
(Pentium III).

Herramienta

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1. Encender equipo de cmputo.
2. Entrar al Unix Shell.
3. Hacer un esquema que refleje la estructura del rbol de los principales directorios del sistema hasta el
tercer nivel.

fuentes

C++

bin

doc
ps

utiles
correo

4. Muestre el contenido del directorio padre del directorio raz. Qu ocurre?.


4.
Sitese en el subdirectorio /dev y liste el contenido del mismo.
5.
Sitese en su directorio HOME y liste el contenido del subdirectorio /dev en formato largo. Qu
indican los caracteres c y b que aparecen a la izquierda de los permisos de Acces a los archivos?.
6.
Liste todos los archivos, incluidos aquellos cuyo nombre comienza por punto (.), del archivo raz en
formato largo. Indique cuntos archivos, enlaces y directorios cuelgan del directorio raz.
7.
Indique cuntos subdirectorios tiene el subdirectorio /etc de todas las formas que conozca.
8.
Averige los usuarios que estn conectados al sistema en este momento.
9.
Averige cuntos usuarios tienen cuenta en el sistema.
10.
Visualice el contenido del archivo /etc/hosts.
11.
Copie el archivo /etc/hosts en su subdirectorio docs.
12.
Calcule el nmero de lneas, palabras y caracteres del archivo hosts.
13.
Busque aquellas lneas del archivo /etc/passwd que contengan la subcadena sso3.
14.
Copie, desde su directorio HOME, el archivo hosts del directorio docs en los directorios ps y utiles.
15.
Repetir los procedimientos con asesora del PSP.
16.
Salir del shell
17.
Apagar el equipo de cmputo
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Operacin de Sistema Operativo Multiusuario

153

Lista de cotejo de la prctica


nmero 9:

Manejo de ambiente UNIX

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Si

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Hizo el esquema hasta el tercer nivel.
4. Mostr el contenido del directorio padre del directorio raz
5. Se situ en el subdirectorio /dev y list el contenido del mismo
6. Se situ en el directorio HOME y list el contenido del subdirectorio /dev en
formato largo.
7. List todos los archivos. Indic cuntos archivos, enlaces y directorios
cuelgan del directorio raz.
8. Indic cuntos subdirectorios tiene el subdirectorio /etc
9. Averigu los usuarios que estaban conectados al sistema en este momento.
10. Averigu cuntos usuarios tienen cuenta en el sistema.
11. Visualiz el contenido del archivo /etc/hosts.
12. Copi el archivo /etc/hosts en su subdirectorio docs.
13. Calcul el nmero de lneas, palabras y caracteres del archivo hosts.

154

Operacin de Sistema Operativo Multiusuario

Si

Desarrollo

No

No
Aplica

14. Busc aquellas lneas del archivo /etc/passwd que contengan la subcadena
sso3
15. Copi, desde su directorio HOME, el archivo hosts del directorio docs en los
directorios ps y utiles.
16. Repiti los procedimientos con asesora del PSP.
17. Sali del shell de UNIX.
18. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.
Observaciones:
PSP:
Hora de
inicio:

Operacin de Sistema Operativo Multiusuario

Hora de
trmino:

Evaluacin:

155

Unidad de aprendizaje:

Prctica nmero:

10

Nombre de la prctica:

Manejo de enlaces

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar enlaces a travs de comandos

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo
Terminal o Computadora

Herramienta

(Pentium III)

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

156

Operacin de Sistema Operativo Multiusuario

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1. Encender equipo de cmputo.
2. Entrar al Unix Shell.
3. Hacer un esquema que refleje la estructura del rbol de los principales directorios del sistema hasta el
tercer nivel.

fuentes

C++

bin

doc
ps

utiles
correo

4. Cree en su directorio HOME un archivo que denomine mppc.c con el siguiente contenido usando la orden
cat:
#include <stdio.h>
main ( )
{
printf(Este es un programa en C\n) ;
}

5.
6.
7.
8.
9.
10.
11.

Mueva este archivo al subdirectorio c.


Sitese en el directorio c++ y haga un enlace al archivo mppc.c del directorio c con el mismo nombre.
Haga otro enlace pero con el nombre mppc2.c.
Compruebe cuntos enlaces tiene el archivo mpp2.c y cuntos el mppc.c del directorio c.
Compruebe que se trata del mismo archivo observando su nmero de nodoi (ver opciones de ls).
Elimine el archivo mppc.c del subdirectorio c++. Cuntos enlaces existen ahora del archivo mpp2.c?.
Aada la siguiente lnea al final del archivo mppc.c con la orden cat >>:
/* Esto es un comentario en c */
// Esto es un comentario en c++
12. Compruebe que esta modificacin afecta tambin al archivo mpp2.c.
13. Elimine el archivo original y observe cmo se sigue accediendo al archivo con el enlace restante.

Operacin de Sistema Operativo Multiusuario

157

Procedimiento
14.
15.
16.
17.
18.
19.
20.
21.

Comprubese que el archivo es el mismo por su nmero de inodo.


Cree un archivo de texto, llamado texto, y haga un enlace simblico al mismo.
Compruebe que se trata de archivos distintos obteniendo sus nmeros de nodoi.
Elimine el archivo original y compruebe que ya no es posible acceder al contenido del mismo mediante el
enlace.
Cree un nuevo archivo, llamado tambin texto. Qu pasa si mostramos el contenido del enlace anterior?
Repetir los procedimientos con asesora del PSP.
Salir del shell
Apagar el equipo de cmputo

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

158

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


nmero 10:

Manejo de enlaces

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo
Desarrollo

Si

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Hizo el esquema hasta el tercer nivel.
4. Cre directorio HOME, y archivo que denomine mppc.c usando la orden cat
5. Movi este archivo al subdirectorio c.
6. Sit el directorio c++ e hiz un enlace al archivo mppc.c del directorio c con
el mismo nombre.
7. Hiz otro enlace pero con el nombre mppc2.c.
8. Comprob cuntos enlaces tiene el archivo mpp2.c y cuntos el mppc.c del
directorio c.
9. Comprob que se trata del mismo archivo observando su nmero de nodoi
(ver opciones de ls).
10. Elimin el archivo mppc.c del subdirectorio c++. Cuntos enlaces existen
ahora del archivo mpp2.c?.

Operacin de Sistema Operativo Multiusuario

159

Si

Desarrollo

No

No
Aplica

11. Aadi la siguiente lnea al final del archivo mppc.c con la orden cat >>:
12. Compruebe que esta modificacin afecta tambin al archivo mpp2.c.
13. Elimin el archivo original y observe cmo se sigue accediendo al archivo
con el enlace restante.
14. Comprob que el archivo es el mismo por su nmero de inodo.
15. Cre un archivo de texto, llamado texto, y haga un enlace simblico al
mismo.
16. Comprob que se trata de archivos distintos obteniendo sus nmeros de
nodoi.
17. Elimin el archivo original.
18. Cre un nuevo archivo, llamado tambin texto.
19. Repiti los procedimientos con asesora del PSP.
20. Sali del shell de UNIX.
21. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.

Observaciones:
PSP:
Hora de
inicio:

160

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de aprendizaje:

Prctica nmero:

11

Nombre de la prctica:

Manejo y clasificacin de archivos y directorios

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar y clasificara archivos y directorios a


travs de comandos

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo
Terminal o Computadora

Herramienta

(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

161

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1. Encender equipo de cmputo.
2. Entrar al Unix Shell.
3. Hacer un esquema que refleje la estructura del rbol de los principales directorios del sistema hasta el
tercer nivel.

fuentes

C++

doc

bin
ps

utiles
correo

4. Sitese en subdirectorio fuentes. Borre su contenido usando la orden rm.


5. Ordene de forma descendente el archivo /etc/hosts, seleccione las cinco primeras lneas y gurdelas en un
archivo en el subdirectorio correo.
6. Muestre todos los archivos del subdirectorio /bin que comiencen por l. Qu ocurre?.
7. Igual que el anterior pero que comiencen por c y tengan al menos dos caracteres.
8. Igual que el anterior pero que comiencen por d, c l y terminen por s d.
9. Igual que el anterior pero que comiencen por d, c l, terminen por s d y ocupen ms de 20 bloques.
10. Liste los nombres de los archivos que cuelgan a partir del directorio /usr/bin cuyo nombre comienza por p.
11. Obtenga los subdirectorios del sistema que han sido modificados en los ltimos 20 das. Por qu
aparecen mensajes de error?.
12. Muestre el contenido del directorio HOME de un usuario definido por el PSP.
13. Obtenga los nombres de los archivos que son propiedad del sper usuario (root).
14. Obtenga los nombres de archivos del directorio /usr cuyo nombre empiece por s y tengan un tamao
inferior a 20 bloques.
15. Obtenga los nombres de archivos del directorio /usr cuyo nombre empiece por s o tengan un tamao
inferior a 20 bloques, seleccione los 10 primeros y almacnelos en un archivo.
16. Repetir los procedimientos con asesora del PSP.
17. Salir del shell
18. Apagar el equipo de cmputo
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

162

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


nmero 11:

Manejo y clasificacin de archivos y directorios

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Desarrollo

Si

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Hizo el esquema hasta el tercer nivel.
4. Se situ en subdirectorio fuentes. Borr su contenido usando la orden rm.
5. Orden descendente el archivo /etc/hosts, seleccion las cinco primeras
lneas y las guard en un archivo en el subdirectorio correo.
6. Mostr todos los archivos del subdirectorio /bin que comiencen por l.
7. Repiti el ejercicio comenzando por c y tengan al menos dos caracteres
8. Repiti el ejercicio comenzando por d, c l y terminen por s d.
9. Repiti el ejercicio comenzando por d, c l, terminen por s d y ocupen
ms de 20 bloques.

Operacin de Sistema Operativo Multiusuario

163

Si

Desarrollo

No

No
Aplica

10. List los nombres de los archivos que cuelgan a partir del directorio /usr/bin
cuyo nombre comienza por p.
11. Obtuvo los subdirectorios del sistema que han sido modificados en los
ltimos 20 das. Explico por qu aparecen mensajes de error?.
12. Mostr el contenido del directorio HOME de un usuario definido por el PSP.
13. Obtuvo los nombres de archivos que son propiedad del sper usuario (root).
14. Obtuvo los nombres de archivos del directorio /usr cuyo nombre empiece
por s y tengan un tamao inferior a 20 bloques.
15. Obtuvo los nombres de archivos del directorio /usr cuyo nombre empiece
por s o tengan un tamao inferior a 20 bloques, seleccion los 10 primeros y
los almacen en un archivo.
16. Repiti los procedimientos con asesora del PSP.
17. Sali del shell de UNIX.
18. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.

Observaciones:
PSP:
Hora de
inicio:

164

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de aprendizaje:

Prctica nmero:

12

Nombre de la prctica:

Manejo de estadsticas de archivos y directorios

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar estadsticas de archivos y directorios a


travs de comandos

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo
Terminal o Computadora

Herramienta

(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

165

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1. Encender equipo de cmputo.
2. Entrar al Unix Shell.
3. Hacer un esquema que refleje la estructura del rbol de los principales directorios del sistema hasta el
tercer nivel.

fuentes

C++

bin

doc
ps

utiles
correo

4. Supongamos que tenemos un archivo sobre el que existen varios enlaces duros (por ejemplo el usado en la
prctica sobre enlaces). Cmo podramos, con una nica orden eliminar dicho archivo y todos sus
enlaces?
5. Obtenga un listado largo de los archivos del sistema cuyo nombre contenga la subcadena as.
6. Calcule el espacio en disco que ocupa el subdirectorio /usr.
7. Calcule el espacio en disco que ocupa su directorio HOME.
8. Calcule el espacio libre y ocupado del sistema de archivos.
9. Determine los tipos de los archivos del directorio raz.
10. Determine los tipos de los archivos de los subdirectorios /bin, /etc y /dev y almacene el resultado en un
archivo que se llame tipos.txt en su directorio HOME.
11. Copie el archivo tipos.txt al archivo fichs.txt en el subdirectorio correo usando la orden cat.
12. Calcule cuntas entradas tienen los subdirectorios /bin y /etc.
13. Calcule cuntos directorios hay en el sistema.
14. Calcule cuntos archivos hay en el sistema. Ejecute la orden necesaria en background y redireccione el
resultado al archivo numero de su directorio HOME. Cundo se sabe que se ha terminado la orden?.
Nota. Lanzar la orden en un shell Bourne y redirigir la salida de error.
15. Repetir los procedimientos con asesora del PSP.
16. Salir del shell
17. Apagar el equipo de cmputo
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

166

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


nmero 12:

Manejo de estadsticas de archivos y directorios

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Desarrollo

Si

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Hizo el esquema hasta el tercer nivel.
4. Elimin el archivo y sus enlaces.
5. Obtuvo el listado largo.
6. Calcul el espacio en disco que ocupa el subdirectorio /usr.
7. Calcul el espacio en disco que ocupa su directorio HOME.
8. Calcul el espacio libre y ocupado del sistema de archivos.
9. Determin los tipos de los archivos del directorio raz
10. Determin los tipos de los archivos de los subdirectorios /bin, /etc y /dev y
almacen el resultado en un archivo que se llam tipos.txt en su directorio
HOME
11. Copi el archivo tipos.txt al archivo fichs.txt en el subdirectorio correo
usando la orden cat.
12. Calcul cuntas entradas tienen los subdirectorios /bin y /etc.

Operacin de Sistema Operativo Multiusuario

167

Si

Desarrollo

No

No
Aplica

13. Calcul cuntos directorios hay en el sistema


14. Calcul cuantos archivos hay en el sistema.
15. Repiti los procedimientos con asesora del PSP.
16. Sali del shell de UNIX.
17. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

168

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de aprendizaje:

Prctica nmero:

13

Nombre de la prctica:

Manejo de procesos

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar procesos a travs de comandos

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo
Terminal o Computadora

Herramienta

(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

169

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Encender equipo de cmputo.


Entrar al Unix Shell.
Averige los permisos que tienen los archivos del directorio raz.
Obtenga un listado de todos los procesos que le pertenecen.
Use la orden man para ver el formato de la orden ps. Pruebe y anote cules son las principales opciones.
Obtenga un listado de todos los procesos que se estn ejecutando en el sistema, paginando la salida.
Averige los procesos que se estn ejecutando en el sistema que pertenezcan al usuario root.
Ejecute en background un proceso que almacene en un archivo el nombre de aquellos archivos cuyo
tamao es mayor de 200 bloques a partir del archivo raz. Transcurridos unos segundos, si no ha
terminado, elimine el proceso.
Lance un proceso de larga duracin (por ejemplo, una orden find sobre todo el sistema). Detenga su
ejecucin con CTRL-Z y observe que el proceso sigue estando en el sistema. Elimnelo.
Busque en el manual cmo funciona la familia de rdenes jobs. Pruebe, con el ejemplo anterior, cmo se
puede reanudar un proceso que previamente ha sido detenido.
Haga algunos ejemplos de procesos para ver cmo se puede cambiar la ejecucin entre primer y segundo
plano y viceversa.
Supongamos que se tiene una orden ejecutando en segundo plano (p.e., un find) y queremos detenerla
temporalmente (no abortarla). Cmo lo hara?
Averige a qu grupo pertenece.
Repetir los procedimientos con asesora del PSP.
Salir del shell
Apagar el equipo de cmputo

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

170

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


nmero 13:

Manejo de procesos

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser


verificados en el desempeo del alumno mediante la observacin
del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.

Desarrollo

Si

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Averigu los permisos que tienen los archivos del directorio raz.
4. Obtuvo un listado de todos los procesos que le pertenecen
5. Us la orden man para ver el formato de la orden ps. Prob y anot cules
son las principales opciones
6. Obtuvo un listado de todos los procesos que se estn ejecutando en el
sistema, paginando la salida
7. Averiguo los procesos que se estn ejecutando en el sistema que
pertenezcan al usuario root.
8. Ejecut en background un proceso que almacene en archivo el nombre de
los archivos cuyo tamao es mayor de 200 bloques a partir del archivo raz.
9. Lanz un proceso de larga duracin, Detuvo su ejecucin con CTRL-Z y
observ que el proceso sigue estando en el sistema. Lo elimin
10. Busc en el manual cmo funciona la familia de rdenes jobs. Prob, con el
ejemplo anterior, cmo se puede reanudar un proceso que previamente ha
sido detenido.
11. Hizo algunos ejemplos de procesos para ver cmo se puede cambiar la
ejecucin entre primer y segundo plano y viceversa.
12. Detuvo temporalmente una orden ejecutando en segundo plano
13. Averigu a que grupo perteneca
14. Repiti los procedimientos con asesora del PSP.
15. Sali del shell de UNIX.
16. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.

Operacin de Sistema Operativo Multiusuario

171

Observaciones:
PSP:
Hora de
inicio:

172

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

Unidad de aprendizaje:

Prctica nmero:

14

Nombre de la prctica:

Manejo de atributos de archivos y compresin


de archivos

Propsito de la
prctica:

Al finalizar la prctica, el alumno manejar atributos de archivos y podr


comprimir archivos a travs de comandos

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software instalado de UNIX o
software de emulacin UNIX.

Maquinaria y Equipo
Terminal o Computadora

Herramienta

(Pentium III).

Manual en lnea de UNIX.


Cuaderno de notas.
Pluma o lpiz.

Operacin de Sistema Operativo Multiusuario

173

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Encender equipo de cmputo.


Entrar al Unix Shell.
Comprobar cul es el valor de la mascara de usuario.
Cree un archivo nuevo y compruebe los permisos que adquiere.
Modifique la mscara de usuario para que los miembros de su grupo puedan leer sus nuevos archivos y los
de otros grupos no. Cree un nuevo archivo y directorio y compare sus permisos con los del problema
anterior.
Modifique los permisos del archivo y directorio del apartado anterior para que nicamente pueda ser ledo
y
modificado por el propietario. Usar la forma octal del modo.
Modifique los permisos del directorio de conexin para que los dems miembros del grupo tengan
permiso de lectura nicamente.
Cree un nuevo archivo y protjalo al mximo de forma que ni siquiera pueda leerlo. Restablezca sus
permisos para que pueda borrarlo.
Queremos que los archivos de nueva creacin adquieran los permisos rw-r-----, qu orden usaremos?
Utilice la orden tar para hacer un archivo tar del contenido de su directorio HOME. Gurdelo en un archivo
que se llame copia.tar.
Observe el contenido del archivo copia.tar.
Comprima el archivo copia.tar con la orden compress.
Descomprima el archivo copia.tar.Z y expanda su contenido a partir del subdirectorio ps.
Obtenga la descripcin y sintaxis de la orden talk. Pngase de acuerdo con otro usuario y utilicen dicha
orden.
Repetir los procedimientos con asesora del PSP.
Salir del shell
Apagar el equipo de cmputo.

Nota: El instructor deber adecuar la prctica al equipo con el que se cuenta.


4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

174

Operacin de Sistema Operativo Multiusuario

Lista de cotejo de la prctica


Nmero 14:

Manejo de atributos de archivos y compresin de archivos.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo
Si

Desarrollo
Aplic las medidas de seguridad e higiene.
Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
1. Encendi el equipo de cmputo.
2. Abri sesin de UNIX.
3. Comprob cul es el valor de la mascara de usuario.
4. Cre un archivo nuevo y comprob los permisos que adquiere.
5. Modific la mscara de usuario y cre un nuevo archivo y directorio y
compar sus permisos.
6. Modific los permisos del archivo y directorio del apartado anterior para que
nicamente pueda ser ledo y modificado por el propietario.
7. Modific los permisos del directorio de conexin para que los dems
miembros del grupo tengan permiso de lectura nicamente.
8. Cre un nuevo archivo y lo protegi al mximo de forma que ni siquiera
pudo leerlo. Restableci sus permisos y lo borr.
9. Cre nuevos con los permisos rw-r----10. Utiliz la orden tar para hacer un archivo tar del contenido de su directorio
HOME. Lo guard en un archivo llamado copia.tar.
11. Observ el contenido del archivo copia.tar.
12. Comprimi el archivo copia.tar con la orden compress.
13. Descomprimi el archivo copia.tar.Z y expandi su contenido a partir del
subdirectorio ps.
14. Obtuvo la descripcin y sintaxis de la orden talk y utiliz dicha orden.
15. Repiti los procedimientos con asesora del PSP.
16. Sali del shell de UNIX.
17. Apag el equipo de cmputo.
4 Deposit los residuos recuperables.

Operacin de Sistema Operativo Multiusuario

No

No
Aplica

175

Observaciones:

PSP:
Hora de
inicio:

176

Hora de
trmino:

Evaluacin:

Operacin de Sistema Operativo Multiusuario

RESUMEN

Una variable de entorno en la shell es una


referencia a un valor. Se distinguen dos
tipos : locales y globales.
Una variable local es aquella que se define
en el shell actual y slo se conocer en ese
shell durante la sesin de conexin
vigente.
Una variable global es aquella que se
exporta desde un proceso activo a todos
los procesos hijos
Con lo que tenemos la seguridad de que
las
variables
siempre
son
bien
interpretadas . Las llaves se utilizan
SIEMPRE en el momento de evaluar la
variable , no de asignarle valores. No tiene
sentido
hacer
cosas
como
{COSAS}=tontera

Operacin de Sistema Operativo Multiusuario

Los programas , se interpretan en tiempo


de ejecucin. Por tanto , la codificacin de
una shell-script es sumamente sencilla en
el sentido en el que basta con escribir en
un fichero de texto l os comandos y
ejecutarlo.
Dentro de una shell , existen las variables
de entorno que hayamos definido
anteriormente , bien en la misma , en otra
en los ficheros profile de inicializacin.
Adems de stas , existen otras que
detallam os a continuacin

177

AUTOEVALUACIN DE CONOCIMIENTOS DEL CAPITULO 2

1.
2.
3.
4.
5.

178

Cul es la sintaxis de la instruccin OPTIONS?


Cul es la utilidad MKMESSAGE?
Qu archivos se generan al crear una forma?
Qu realiza la instruccin OPEN FORM y cul es su sintaxis?
Cules son los atributos de las ventanas?

Operacin de Sistema Operativo Multiusuario

RESULTADOS DE AUTOEVALUACIN DE CONOCIMIENTOS


1.
options message line NUMERO DE LA LNEA DE MENSAJE,
error line
NUMERO DE LA LNEA DE ERROR,
prompt line NUMERO DE LA LNEA DE PETICIN DE RESPUESTA

2. Es una facilidad que permite al usuario crear su propio sistema de archivos de ayuda
para una aplicacin, debe ser invocado desde el sistema operativo, para que compile
un archivo de texto con mensajes de ayuda y de esta forma pueda ser invocado por un
programa 4GL.
3.
*.per que es un archivo ascii con las especificaciones de la forma
*.frm que es un archivo ejecutable con la versin compilada de la forma. Un usuario
no puede modificar un archivo .frm
4

La instruccin OPEN FORM se utiliza para asociar el nombre de una forma 4GL con un
archivo previamente compilado que contiene las especificaciones de una forma.
open form FORM-NAME from FORM-FILE

5.
ATRIBUTOS

DEFAULT

BORDER

NO BORDER

REVERSE

NO REVERSE

PROMPT LINE

FIRST

MESSAGE LINE

FIRST + 1

FORM LINE

FIRST + 2

COMMENT LINE

LAST

Operacin de Sistema Operativo Multiusuario

179

GLOSARIO DE TRMINOS DE E-CBNC


Campo de
aplicacin

Competencia
laboral
Criterio de
desempeo

Parte constitutiva de una Norma Tcnica de Competencia Laboral que describe el


conjunto de circunstancias laborales posibles en las que una persona debe ser capaz de
demostrar dominio sobre el elemento de competencia. Es decir, el campo de aplicacin
describe el ambiente laboral donde el individuo aplica el elemento de competencia y
ofrece indicadores para juzgar que las demostraciones del desempeo son suficientes
para validarlo
Aptitud de un individuo para desempear una misma funcin productiva en diferentes
contextos y con base en los requerimientos de calidad esperados por el sector
productivo. Esta aptitud se logra con la adquisicin y desarrollo de conocimientos,
habilidades y capacidades que son expresados en el saber, el hacer y el saber-hacer.
Parte constitutiva de una Norma Tcnica de Competencia Laboral que se refiere al
conjunto de atributos que debern presentar tanto los resultados obtenidos, como el
desempeo mismo de un elemento de competencia; es decir, el cmo y el qu se espera
del desempeo. Los criterios de desempeo se asocian a los elementos de competencia.
Son una descripcin de los requisitos de calidad para el resultado obtenido en el
desempeo laboral; permiten establecer si se alcanza o no el resultado descrito en el
elemento de competencia.

Elemento de
Competencia.

Es la descripcin de la realizacin que debe ser lograda por una persona en al mbito de
su ocupacin. Se refiere a una accin, un comportamiento o un resultado que se debe
demostrar por lo tanto es una funcin realizada por un individuo. La desagregacin de
funciones realizada a lo largo del proceso de anlisis funcional usualmente no sobrepasa
de cuatro a cinco niveles. Estas diferentes funciones, cuando ya pueden ser ejecutadas
por personas y describen acciones que se pueden lograr y resumir, reciben el nombre de
elementos de competencia.

Evidencia de
conocimiento.

Parte constitutiva de una Norma Tcnica de Competencia Laboral que hace referencia al
conocimiento y comprensin necesarios para lograr el desempeo competente.
Puede referirse a los conocimientos tericos y de principios de base cientfica que el
alumno y el trabajador deben dominar, as como a sus habilidades cognitivas en
relacin con el elemento de competencia al que pertenecen.

180

Operacin de Sistema Operativo Multiusuario

Evidencia por
producto
Evidencia de
Desempeo.

Hacen referencia a los objetos que pueden usarse como prueba de que la persona
realiz lo establecido en la Norma Tcnica de Competencia Laboral. Las evidencias por
producto son pruebas reales, observables y tangibles de las consecuencias del
desempeo
Parte constitutiva de una Norma Tcnica de Competencia Laboral, que hace referencia a
una serie de resultados y/o productos, requeridos por el criterio de desempeo y
delimitados por el campo de aplicacin, que permite probar y evaluar la competencia
del trabajador. Cabe hacer notar que en este apartado se incluirn las manifestaciones
que correspondan a las denominadas habilidades sociales del trabajador. Son
descripciones sobre variables o condiciones cuyo estado permite inferir que el
desempeo fue efectivamente logrado. Las evidencias directas tienen que ver con la
tcnica utilizada en el ejercicio de una competencia y se verifican mediante la
observacin. La evidencia por desempeo se refiere a las situaciones que pueden usarse
como pruebas de que el individuo cumple con los requerimientos de la Norma Tcnicas
de Competencia Laboral.

Evidencia de
actitud
Formacin
ocupacional

Las Normas Tcnicas de Competencia Laboral incluyen tambin la referencia a las


actitudes subyacentes en el desempeo evaluado

Mdulo
ocupacional

Unidad autnoma integrada por unidades de aprendizaje con la finalidad de combinar


diversos propsitos y experiencias de aprendizaje en una secuencia integral de manera
que cada una de ellas se complementa hasta lograr el dominio y desarrollo de una
funcin productiva.

Norma Tcnica
de
Competencia
Laboral

Documento en el que se registran las especificaciones con base en las cuales se espera
sea desempeada una funcin productiva. Cada Norma Tcnica de Competencia Laboral
esta constituida por unidades y elementos de competencia, criterios de desempeo,
campo de aplicacin y evidencias de desempeo y conocimiento.

Proceso por medio del cual se construye un desarrollo individual referido a un grupo
comn de competencias para el desempeo relevante de diversas ocupaciones en el
medio laboral.

Operacin de Sistema Operativo Multiusuario

181

GLOSARIO DE TRMINOS TCNICOS


Glosariovi

D
P
X
Y
d
p
x
y
Insertar nuevo
texto A
I
O
a
i
o
Desplazar el
cursor dentro
de un archivo
^B
^D
^F
^H
^J

182

El editor VI es un editor que opera en modo consola, utilizado por muchos usuarios de
Unix. El editor VI posee caractersticas muy tiles para los programadores, pero muchos
principiantes evitan emplearlo porque se ven abrumados por sus variadas funciones.
Este tutorial ha sido escrito con el propsito de ayudar a los principiantes a
familiarizarse con el uso del editor VI, pero tambin contiene apartados de inters para
quienes ya lo utilizan habitualmente
Especifica un bfer para ser utilizado por cualquiera de las rdenes que se sirven de
ellos. Aada una letra o nmero tras el signo para signarle un bfer.
Borra desde la posicin actual del cursor hasta el final de la lnea.
Pega el bfer especificado delante de la lnea o posicin actual del cursor. Si no se
especifica ningn bfer (con la orden ), entonces P hace uso del bfer general.
Borra el carcter anterior al cursor.
Graba la lnea actual en el bfer especificado. Si no se especifica ninguno la grabar en
el bfer general.
Borra hasta dnde. dd borra la lnea actual. Una cifra indica el nmero de lneas a
borrar. Cualquier cosa borrada se grabar en el bfer especificado con la orden . Si no
se especifica ningn bfer, utilizar el bfer general.
Pega el contenido del bfer especificado tras la lnea o posicin actual del cursor. Si no
se especifica ningn bfer (con la orden ), entonces p hace uso del bfer general.
Borra el carcter sobre el que se halla el cursor. Una cifra indicar cuntos caracteres
han de borrarse. Los caracteres se borrarn tras el cursor.
Graba hasta , colocndolo en un bfer. yy graba la lnea actual. Una cifra indicar
cuntas lneas han de grabarse. El bfer puede especificarse con la orden . Si no se
especifica ninguno, se utilizar el bfer general.
Aade el texto al final de la lnea actual.
Inserta el texto desde el comienzo de la lnea.
Introduce el modo insertar en una nueva lnea encima de la posicin actual del cursor.
Cambia al modo insertar. Los caracteres escritos se insertarn tras la posicin actual del
cursor. Una cifra insertar el texto aadido la cantidad de veces indicada.
Cambia al modo insertar. Los caracteres escritos se insertarn delante de la posicin
actual del cursor. Una cifra insertar el texto aadido la cantidad de veces indicada.
Introduce el modo insertar en una nueva lnea bajo la posicin actual del cursor.
Nos lleva una pgina atrs. Con una cifra, nos desplazar el nmero de pginas
indicado.

Nos lleva media ventana hacia delante. Con una cifra, nos desplazar el nmero de
lneas indicado.
Nos lleva una pgina hacia delante. Con una cifra, nos desplazar el nmero de pginas
indicado.
Mueve el cursor un espacio hacia la izquierda. Con una cifra, nos desplazar el nmero
de espacios indicado.
Mueve el cursor una lnea hacia abajo en la misma columna. Con una cifra, lo har
descender el nmero de lneas indicado.
Operacin de Sistema Operativo Multiusuario

^M
^N
^P
^U
$
%
^
(
)
{
}
|
+
_
0
B
E
G
H
L
M
W
b
e
h
j
k
l
w
Desplazar el
cursor por la
pantalla ^E
^Y
z

Lleva el cursor al primer carcter de la lnea siguiente.


Mueve el cursor una lnea hacia abajo en la misma columna. Con una cifra, lo har
descender el nmero de lneas indicado.
Mueve el cursor una lnea hacia arriba en la misma columna. Con una cifra, lo har
subir el nmero de lneas indicado.
Nos lleva media ventana hacia atrs. Con una cifra, nos desplazar el nmero de lneas
indicado.
Desplaza el cursor hasta el final de la lnea actual. Con una cifra, nos llevar cuantas
lneas adelante indiquemos.
Desplaza el cursor hasta el parntesis o comillas correspondientes.
Lleva el cursor hasta el primer lugar que no est en blanco.
Lleva el cursor al comienzo de una frase.
Lleva el cursor al comienzo de la frase siguiente.
Lleva el cursor al prrafo anterior.
Lleva el cursor al siguiente prrafo.
Lleva el cursor a la columna especificada por la cifra.
Lleva el cursor hasta el primer lugar de la lnea siguiente que no est en blanco.
Lleva el cursor hasta el primer lugar de la lnea anterior que no est en blanco.
Lleva el cursor hasta el primer lugar de la lnea actual que no est en blanco.
(Cero) Lleva el cursor a la primera columna de la lnea actual.
Lleva el cursor una palabra hacia atrs, incluyendo los signos de puntuacin.
Lleva el cursor al final de la palabra actual, incluyendo los signos de puntuacin.
Nos lleva al nmero de lnea especificado en la cifra. Si no se indica una cifra, nos
llevar al final del archivo.
Lleva el cursor hasta el primer lugar de la parte superior de la pantalla que no est en
blanco.
Lleva el cursor hasta el primer lugar de la parte inferior de la pantalla que no est en
blanco.
Lleva el cursor hasta el primer lugar del centro de la pantalla que no est en blanco.
Lleva el cursor hacia delante hasta el comienzo de una palabra, incluyendo los signos de
puntuacin.
Lleva el cursor una palabra hacia atrs. Si el cursor se encuentra en medio de una
palabra, desplazar el cursor hasta el primer carcter de esa palabra.
Lleva el cursor una palabra hacia delante. Si el cursor se encuentra en medio de una
palabra, desplazar el cursor hasta el ltimo carcter de esa palabra.
Mueve el cursor una posicin hacia la izquierda.
Lleva el cursor una lnea hacia abajo.
Lleva el cursor una lnea hacia arriba.
Mueve el cursor una posicin hacia la derecha.
Lleva el cursor una palabra hacia delante. Si el cursor se encuentra en medio de una
palabra, desplazar el cursor hasta el primer carcer de la siguiente palabra.
Nos lleva una lnea hacia delante. Con una cifra, nos desplazar el nmero de lneas
indicado.
Nos lleva una lnea hacia atrs. Con una cifra, nos desplazar el nmero de lneas
indicado.
Rehace la pantalla con las opciones que se especifiquen a continuacin. z<enter>
coloca la lnea actual en el extremo superior de la pantalla; z. coloca la lnea actual en

Operacin de Sistema Operativo Multiusuario

183

Reemplazar
texto C
R
S
c
r
s
Buscar texto o
caracteres ,
/
;
?
F
N
T
n
t
Manipulacin
de
caracteres/For
mateo de
lneas ~
<
>
J
Guardar y salir
^\
Q
ZZ
^G
^L
^R
184

el centro de la pantalla; y z- coloca la lnea actual en el extremo inferior de la


pantalla. Si especifica una cifra antes de la orden z, trasladar la lnea especificada al
lugar sealado. Por ejemplo, 16z. coloca la lnea 16 en el centro de la pantalla.
Para cambiar lo que hay a partir de la posicin actual del cursor hasta el fin de la lnea.
Sustituye los caracteres en pantalla por los que continuacin se introduzcan; para
finalizar hay que pulsar la tecla Esc.
Para cambiar una lnea entera.
Para cambiar hasta . cc cambia la lnea actual. Si se especifica una cifra, cambiar el
nmero de lneas especificado.
Para sustituir el carcter sobre el que se encuentra el cursor. Especifique una cifra para
sustituir un determinado nmero de caracteres.
Para sustituir el carcter sobre el que se encuentra el cursor y pasar a modo insertar.
Especifique una cifra para sustituir un determinado nmero de caracteres. Un signo de
dollar ($) aparecer en el ltimo carcter a sustituir.
Repite las ltimas rdenes f, F, t or T en la direccin opuesta.
Busca hacia abajo, en el archivo, la secuencia especificada tras /.
Repite las ltimas rdenes f, F, t or T.
Busca hacia arriba, en el archivo, la secuencia especificada tras ?.
Busca en la lnea actual, hacia atrs, la secuencia especificada tras la orden F. Si
encuentra, el cursor se desplaza hasta ella.
Repite la ltima bsqueda realizada mediante / o ?, en la direccin opuesta.
Busca en la lnea actual, hacia atrs, el carcter especificado tras la orden T. Si
encuentra, el cursor se desplaza a la columna posterior a l. f
Busca en la lnea actual el carcter especificado tras la orden f. Si lo encuentra,
cursor se desplaza hasta l.
Repite la ltima bsqueda realizada mediante / o ?.
Busca en la lnea actual el carcter especificado tras la orden t. Si lo encuentra,
cursor se desplaza hasta la columna que lo precede.

la

lo
el

el

Cambia el carcter que se encuentra bajo el cursor de mayscula a minscula o


viceversa.
Desplaza el nmero de lneas especificado una tabulacin hacia la izquierda. <<
desplaza la lnea actual hasta la izquierda, pudiendo especificarse tambin una cifra.
Desplaza el nmero de lneas especificado una tabulacin hacia la derecha. >>
desplaza la lnea actual hasta la derecha, pudiendo especificarse tambin una cifra.
Junta la lnea actual con la siguiente. Puede especificarse una cifra para juntar un
determinado nmero de lneas.
Salir del modo VI y entrar en modo EX. El editor EX es un editor de lneas sobre el
que se ha construido el editor VI. La orden de EX para regresar a VI es :vi.
Salir del modo VI y entrar en modo EX. El editor EX es un editor lnea-a-lnea. La
orden de EX para regresar a VI es :vi.
Salir del editor guardando los cambios que se hubieran hecho.
Muestra el nombre del archivo actual y su estado.
Para limpiar y rehacer la pantalla.
Operacin de Sistema Operativo Multiusuario

^[
^^
!
&

.
:
@
U
m
u
rdenes de EX
:ab secuencia1
secuencia2

:map teclas
nueva_secuenc
ia_de_teclas
:q

Para rehacer la pantalla eliminando las lneas errneas.


Igual que la tecla Esc. Cancela las rdenes parcialmente escritas.
Regresar al ltimo archivo editado.
Ejecutar un shell. Si se especifica una cifra el programa que se ejecuta utilizando !,
tomar la(s) linea(s) especificadas como entrada (input) y reemplazar dichas lneas con
el resultado obtenido (output) del programa ejecutado. !! ejecuta un programa
utilizando como entrada la lnea actual. Por ejemplo, !4jsort tomar la lnea en que se
encuentra el cursor ms las cuatro siguientes y ejecutar sort. Tras activar la orden
aparecer un signo de exclamacin donde usted podr escribir las instruccin completa.
Repite la orden previa :s.
Repite la ltima orden que modific el archivo.
Para comenzar a escribir una orden del editor EX. La orden se ejecutar una vez que el
usuario pulse Enter. (Vase el siguiente apartado.)
Imprime el comando almacenado en el bfer especificado.
Devuelve la lnea actual al estado en que se encontraba antes de que el cursor se
colocara en ella.
Marca la posicin actual con el carcter especificado tras la orden m.
Deshace el ltimo cambio operado en el archivo. Pulsando u de nuevo rehar el
cambio.
El editor VI est construido sobre otro editor, denominado EX. El editor EX slo edita
por lneas. Para introducir una orden de EX desde el editor VI, deber utilizar la orden :.
La lista que ofrecemos a continuacin no es completa, pero aparecen ah las rdenes
que habitualmente ms se emplean. Si se quiere que una orden -como :s o :w
modifique ms de una lnea, hay que especificar el intervalo al que afectar dicha
orden. Por ejemplo, para hacer alguna sustitucin entre las lneas 3 y 15, la orden sera
:3,15s/esto/estotro/g.
Abreviatura. De este modo, si en VI se escribe la secuencia 1, ewl editor insertar
automticamente las palabras correspondientes (secuencia2). Por ejemplo, la orden
:ab lup Licencia de Uso Pblico hara que siempre que se escribiese lup se insertara
la expresin Licencia de Uso Pblico.
Esto le permite que una tecla o secuencia de teclas desempee la misma funcin que
determinada tecla o secuencia de teclas.
Salir de VI. Si se ha hecho algn cambio, el editor producir un mensaje de aviso.
Salir de VI sin guardar los cambios.

:q!
:s/secuencia/nu
eva_secuencia/
opcin
Sustitucin. Esta orden sustituye la secuencia especificada por la nueva_secuencia. Si no
:set [all]

:una secuencia
:unm teclas
:vi
nombre_de_ar
chivo
:w

se aade ninguna opcin, slo sustituir la primera aparicin de la secuencia. Si se


indica la opcin g, la sustitucin se har en todos los lugares en que aparezca. Por
ejemplo, la orden :1,$s/Dwayne/Dwight/g sustituir todo Dwayne por Dwight.
Configura algunas opciones para personalizar VI y EX. La orden :set all muestra todas
las opciones posibles. (Consltese el apartado de personalizacin de VI para ver algunas
de ellas.)
Borra la abreviatura previamente definida por :ab.
Borra la asignacin de funciones a nuevas teclas, definidas a travs de :map.

Comienza la edicin de un nuevo archivo. Si no han sido guardados los cambios, el


editor le avisar de ello.

Operacin de Sistema Operativo Multiusuario

185

:w
nombre_de_ar
chivo
:w >>
nombre_de_ar
chivo
:wq

186

Guarda el trabajo en el archivo actual.

Escribe el contenido del bfer en el archivo especificado.

Aade el contenido del bfer en el archivo especificado.


Escribe el contenido del bfer y cierra el editor.

Operacin de Sistema Operativo Multiusuario

REFERENCIAS DOCUMENTALES

Bened Palacios, Jos Alberto, UNIX, Ediciones Anaya Multimedia, Espaa, 2004.

Hansen Augie, Aprenda C ya!, Microsoft Press, 1988.

T. Hawryszkiewycz, Anlisis y diseo de bases de datos, Grupo Noriega Editores,


1996.

Kernighan Brian W., El lenguaje de programacin C, Prentice Hall, 1986.

L.Viescas Jhon, Gua Completa de Microsoft Access 2 para Windows, McGraw Hill,
1994.

Mansoor Sarwar, Syed, Robert Koretsky, Syed Aqeel Sarwar. El libro de UNIX. 2da.
Edicin, Ed. Pearson Educacin, Espaa, 2002.

Miren Begoa Albizuri, Estructuras de Datos e Introduccin a Bases de Datos, Grupo


Noriega Editores, 1996.

Snchez, Sebastin. Unix y Linux / gua prctica, Alfaomega Grupo Editor, Mxico,
D.F., 2002.

Tenenbaum Aaron M., Estructuras de datos en C, Prentice Hall, 1993.

Operacin de Sistema Operativo Multiusuario

187

También podría gustarte