You are on page 1of 63

 

Implantación de 
Sistemas Operativos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Mario Donaire Mendoza 
2011 – 2012 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Estos apuntes han sido creados en base al material elaborado por Sergio de 
Mingo  para  el  primer  curso  del  ciclo  de  grado  superior  Administración  de 
Sistemas Informáticos y Redes (año 2011 – 2012), licenciados bajo Creative 
Commons Attribution – ShareAlike 3.0 Unported (CC BY‐SA 3.0). 
 
 

Tema Uno 
 
 

 
Introducción a los Computadores 
 
DEFINICIONES   Unidad Central (UC). Es la encargada de interpretar las ins‐
  trucciones  y  convertirlas  en  señales  eléctricas  para 
Computador: Cualquier cosa que tenga un procesador que sea capaz  ejecutarlas. 
de ejecutar un programa. Formado por componentes lógicos (softwa‐  Unidad Aritmético – Lógica (ALU). Se encarga de los cálcu‐
re) y componentes físicos (hardware).  los aritméticos y lógicos (y, o, sí, no; unión, intersección y 
Sistema Operativo: Primer y último programa que lee el computador.  complemento). 
Es el programa base del computador.   Registros. Son los que van a almacenar los datos e instruc‐
Firmware: Sistema operativo de los computadores pequeños.  ciones utilizados por la CPU. 
Programa:  Son  un  conjunto  de  instrucciones  y  datos  que  son  leídas,   
interpretadas y ejecutadas por el computador.  MEMORIA 
   
La  memoria  está  dividida  en  direcciones  que  podrán  albergar 
ANTECEDENTES 
únicamente una instrucción o un dato (funciones y variables). En ella 
 
se  alojarán  los  programas,  donde  estarán  contenidas,  a  su  vez,  las 
Tras  la  segunda  guerra  mundial  (1939  –  1945)  Alan  Touring  y 
instrucciones que tendrá que llevar a cabo el computador. 
Von Neumann desarrollan un modelo teórico para crear una máquina 
Posee dos registros importantes: 
programable  de  propósito  general.  Ésta  sería  la  primera  máquina 
 
creada sin una finalidad específica, capaz de variar en su funcionalidad 
 Registro  de  Direcciones,  donde  escribimos  la  dirección  de 
según  el  programa  que  se  le  implantara,  es  decir,  un  computador, 
memoria con la que queremos trabajar, bien sea una ope‐
limitado  únicamente  por  aquello  que  el  programador  sea  capaz  de 
ración de escritura o de lectura. Este registro depende del 
ordenarle. 
bus de direcciones, por lo que su tamaño será igual al ta‐
 
maño de dicho bus. 
MODELO VON NEUMANN   Registro de Datos, en el caso de ser una operación de lectu‐
  ra  aparecerá  el  dato  o  la  instrucción  almacenada  en  la 
Este modelo es conceptual y aunque fue desarrollado a media‐ dirección que se indica en el registro de la dirección. En el 
dos del siglo pasado, a día de hoy todos los computadores lo siguen.  caso  de  ser  una  operación  de  escritura,  se  actualizará  el 
  valor de la dirección que se indica en el registro de direc‐
Componentes:  ción  con  el  valor  del  registro  de  datos.  El  tamaño  del 
  registro  de  datos  es  igual  al  tamaño  de  cada  ranura  de 
 Unidad Central de Proceso (CPU).   memoria. 
 Memoria  Principal.  Encargada  de  almacenar  el  programa   
del programador.  Según necesite leer o escribir, habrá un interruptor que cambia‐
 Unidad  de  Entrada/Salida.  Sirve  de barrera  lógica  entre  el  rá  ambos  modos.  Dicha  línea  eléctrica  también  estará  incluida  en  la 
procesador y los periféricos.  memoria. 
 Buses. Son los cables, los medios de comunicación entre los   
elementos del computador.  Modos de Direccionamiento. 
 Periféricos. Cualquier dispositivo añadido a la máquina para   
permitir la interacción del computador con el medio.  Los datos podrán ser incluidos de diferentes maneras en las ins‐
  trucciones. Según se referencien de una u otra forma, tendremos uno 
UNIDAD CENTRAL DE PROCESO (CPU)  u otro modo de direccionamiento. 
   
Encargada  de  la  lectura,  la  comprensión  e  interpretación  del 
programa y de su ejecución. Está constituida por: 


 
Implantación de Sistemas Operativos 
 
 INMEDIATO: El dato se incluye en la instrucción, como con‐ BUSES 
secuencia  se  leerá  más  rápidamente,  pero  el  ancho  de   
memoria estará dividido entre la instrucción y el dato.  Son líneas eléctricas de comunicación. Sus parámetros de medi‐
 DIRECTO: La instrucción no incluye el dato, sino que lo refe‐ ción son: 
rencia a otra dirección de memoria. Así todo el ancho de   
memoria  estará  dedicado  para  ese  dato,  aunque  al  tener   Ancho de bus: total de líneas en paralelo de un bus. Por ca‐
que ir a la dirección del dato, su procesado será más lento.  da  línea  circulará  una  señal  eléctrica.  Cada  línea  en 
 INDIRECTO:  La  instrucción  nos  manda  a  una  dirección  de  paralelo transmite un bit. Cada línea de bus emite un im‐
memoria  donde  a  su  vez  existe  un  nuevo  redirecciona‐ pulso que se traduce en 0 y 1 (binario). 
miento  hacia  el  dato.  Esto  tiene  como  ventaja  poder   Frecuencia del  bus:  es el  número de  pulsos  por  unidad de 
cambiar los datos sin tener que tocar el código.   tiempo (Hz). 
   
Ciclo de Instrucción (CPU – Memoria)  PERIFÉRICOS 
   
Es el mecanismo que sigue la CPU al leer y ejecutar una instruc‐ Todo lo que no es la CPU y la memoria. Permiten a la CPU co‐
ción de la memoria. Este ciclo es la manera que tienen de interactuar  municarse  con  el  exterior.  Los  hay  de  entrada,  de  salida  y  de 
estos dos componentes.  entrada/salida. Sus características son: 
   
1. La CPU lee el registro contador (es un registro de la CPU). La   Fiabilidad. Es la probabilidad de que el periférico esté ope‐
dirección que allí encuentra la escribe en el registro de di‐ rativo. 
recciones de la memoria (es un registro de la memoria).   Modo de acceso (secuencial, directo). Es la forma en la que 
2. La  memoria  escribe  el  contenido  de  dicha  dirección  en  su  hemos de acceder al dispositivo. 
registro de datos.   Velocidad  de  transferencia.  La  velocidad  con  la  que  el  dis‐
3. La memoria le da el contenido del registro de datos a través  positivo  puede  suministrarnos  datos  o  procesar  los  datos 
del bus de sistema.  enviados a él. 
4. La instrucción se escribe en el registro de instrucción (es un   Buffering. Los periféricos almacenan datos. Un buffer es un 
registro de la CPU) durante su procesamiento.  almacén intermedio de datos utilizado para sincronizar co‐
5. En este punto la CPU pide a la memoria los datos direccio‐ sas que trabajan a diferentes velocidades. 
nados directa e indirectamente, si los hubiera. En ese caso   
se repiten los pasos anteriores.  EL COMPUTADOR MODERNO 
6. La UC decodifica la instrucción, y la ALU la ejecuta. 
 
7. La ALU incrementa el registro contador (en “n+1”) y vuelve 
Está basado en el modelo de von Neumann. En ellos, los com‐
a comenzar el ciclo.  
ponentes  electrónicos  están  grabados  en  placas  o  circuitos.  Existen 
 
numerosas arquitecturas que llevan ese modelo a la práctica. 
Hay que tener en cuenta que el tamaño de memoria tiene que 
 
ser igual o menor que el tamaño del registro. Es decir, si en memoria 
EL ORDENADOR PERSONAL 
caben 2 bytes, el registro de datos tendrá que ser de 2 bytes. 
 
Cuando el registro de instrucción llega a la “instrucción de sal‐
En  1970 nace el ordenador  personal.  Se  trata  de ofrecer  estas 
to”,  ésta  modifica  el  registro  contador  y  se  va  a  esa  instrucción  de 
máquinas en un entorno doméstico, idea que fue llevada a cabo por 
trabajo. 
Macintosh.  IBM,  que  no  apostó  por  el  comercio  de  los  ordenadores 
 
entre  usuarios  de  la  calle,  llegó  tarde al mercado  y  por  eso no  pudo 
UNIDAD DE ENTRADA/SALIDA 
desarrollar  su propia  tecnología, creando un  equipo  clónico formado 
 
por  piezas  de los  demás  fabricantes  y  que funcionara  en  entorno de 
En  los  computadores  actuales  no  hay  un  equivalente  directo. 
MS DOS. En ellos introdujo el chip BIOS, que rápidamente fue desen‐
Sirven de barrera lógica entre el procesador y los periféricos. Evita que 
criptado  y  permitió  la  difusión  de  los  ordenadores  personales. 
el  procesador  se  conecte  con  diferentes  periféricos  y  tenga  que  ser 
Actualmente es la arquitectura que seguimos usando. 
compatible  con  todos  ellos,  de  manera  que  pueda  abstraerse.  Es  un 
El PC está constituido por una fuente de alimentación, una pla‐
intermediario. 
ca  base  (donde  están  integrados  el  chip  de  memoria  BIOS,  el 
 
procesador y los buses, la memoria principal y los puertos de expan‐
 
sión internos y externos), unidades de almacenamiento y periféricos. 
 
 
 


 
Implantación de Sistemas Operativos 
 
REPRESENTACIÓN DE LA INFORMACIÓN  Nº bits = log24 = 2 bits; es decir, el número al que tendré que 
  elevar 2 para obtener 4. De la misma forma, para codificar 8 va‐
LA INFORMACIÓN  lores, tendré que elevar 2 a la 3, por lo que necesitaré 3 bits. 
   
Es la materia prima de la informática. El PC transforma la infor‐ Para pasar de binario a decimal divido el número en dos sucesi‐
mación,  traduciendo  el  cifrado  binario  (dos  valores  de  voltaje)  en  el  vas  veces,  si  la  división  no  es  exacta  ponemos  un  1,  si  sí  lo  es, 
que se encuentran los datos y las instrucciones.  ponemos un 0, así 33: 
  33/2=16 (resto 1) 
  16/2=8 (resto 0) 
LOS CÓDIGOS  8/2=4 (resto 0) 
  4/2=2 (resto 0) 
Es  una  tabla  que  relaciona  dos  alfabetos,  de  forma  que  me  2/2=1 (resto 0) 
permitirá codificar un lenguaje en otro distinto.  1/2=0 (resto 1) 
Los ordenadores trabajan con dos tipos de voltaje debido a sus  Sería 100001 
restricciones técnicas y eléctricas; es decir, códigos binarios. Todos los   
software (datos e instrucciones) están codificados en códigos de dos   Código Hexadecimal 
símbolos (0 y 1) combinados de diferentes formas.  Se suele utilizar para simplificar la notación. Cada dígito equiva‐
  le  a  4  bits,  por  lo  que  4bits  se  podrán  simplificar  con  un  dígito 
 Códigos numéricos: Codifican valores numéricos (binario…).  hexadecimal. 
 Códigos  alfanuméricos:  Codifican  valores    numéricos  y  no  Los dígitos hexadecimales van del 0 al 9 y luego de la A a la F. Se 
numéricos (ASCII‐7…).  calculan igual que los binarios pero al ser un sistema en base 16, será: 
 
 Otros  códigos  no  binarios:  Para  simplificar  notación  (hexa‐
X * 16i 
decimal). 
 
 
Además hay que tener en cuenta que la A=10, la B=11… la F=15. 
Códigos Numéricos 
 
 
Códigos Alfanuméricos 
 Código Binario. 
 
Representa dos tipos de voltaje, y se representa con dos símbo‐
 Código ASCII – 7. 
los (0 y 1). Estos dos símbolos son la unidad mínima de información, 
Utiliza  7  bits  para  codificar  cada  dígito  y  sólo  codifica  128  (27) 
denominado BIT. 8 bits forman un byte. 
caracteres. 
 
 
1Kbyte = 210 bytes = 1024 bytes 
1Mb = 1024 Kb   Código ISO‐8859‐1. 
1Gb = 1024 Mb  Amplía  al  código  ASCII.  Añade  un  bit  más,  por  lo que  serán  28 
1Tb = 1024 Gb  caracteres (256). Conocido como Latín1. 
   
El código binario es ponderado, es decir, la posición que ocupen   Código Unicode. 
los números tendrá un significado. Dicho significado vendrá determi‐ Recoge todos los alfabetos del mundo. Tiene diferentes imple‐
nado por:  mentaciones, de las que la UTF – 8 utiliza hasta 4 bytes por carácter;  
  utilizando 232 caracteres. 
X * 2i   
Donde “X” es el valor del bit (1 ó 0) e ”i” la posición que ocupa  EL SOFTWARE 
(de derecha a izquierda).   
  LENGUAJES DE PROGRAMACIÓN 
1001 = 9 (1*23+0*22+0*21+1*20)   
  Poseen una sintaxis muy estricta destinada a ser traducida lite‐
Para saber cuántos bits serán necesarios para  codificar  X  valo‐ ralmente  al  lenguaje  máquina.  Esta  traducción  se  denomina 
res,  habrá  que  calcular:  Nº  bits  =  log2X  =  ld  X.  Es  decir,  si  quiero  COMPILACIÓN. 
transmitir los primeros 4 valores numéricos, necesitaré:   
   
 


 
Implantación de Sistemas Operativos 
 
COMPILACIÓN   Abiertas  y  restrictivas:  Tienen  que  hacer  público  su  código 
  fuente si lo distribuyen. Puedes cambiar su código fuente, 
Como  se ha  dicho  antes,  es  la  traducción  del  lenguaje  de  pro‐ pero si lo comercializas o distribuyes tienes que compartir 
gramación  al  lenguaje  máquina.  Esta  traducción  la  lleva  a  cabo  el  los derechos y hacerlo público. Es el caso de Línux (GPL). 
compilador, traduciendo cada palabra al código máquina. A partir del   Abiertas y sin límites: El código fuente está abierto y no tie‐
código fuente genera otro archivo llamado código objeto o ejecutable.  nes que compartir derechos si lo cambias (MIT). 
  PREGUNTAS. 
COMPILADORES E INTÉRPRETES   
  1. Define qué es un programa. 
Un intérprete es un programa que tras ejecutarse lee el código  2. ¿Qué hace especial al computador con respecto al resto de 
fuente. No lo traduce al lenguaje máquina, sino que lo lee y lo inter‐ máquinas? 
preta  y  hace  lo  que  determine  la  instrucción  fuente.  Este  código  3. Describe  y  enumera  los  componentes  del  modelo  de  Von 
intermedio compila el código fuente, de manera que consigue porta‐ Neumann. 
bilidad porque cualquier lenguaje podrá ser interpretado por el código  4. Describe  la  estructura  y  funcionamiento  de  la  memoria  en 
intermedio.  el modelo de Von Neumann. 
Se denomina SCRIPT al código fuente en lenguaje interpretado.  5. Describe brevemente los modos de direccionamiento vistos. 
  Define qué son y pon un ejemplo de cada uno de ellos. 
DISTRIBUCIÓN DEL SOFTWARE  6. Describe  el  ciclo  de  instrucción  en  el  modelo  de  Von  Neu‐
  mann. 
Debe distribuirse con el código objeto (es decir, el código com‐ 7. ¿Qué es el registro contador? ¿Cuál es su importancia en el 
pilado),  y  no  tiene  por  qué  distribuirse  con  el  código  fuente.  Hay  procesado de la instrucción? ¿Qué relación tiene con la ins‐
muchas cuestiones sobre si el código fuente debería o no estar siem‐ trucción de salto? 
pre abierto.  8. Pasar de binario a decimal: 10, 101, 1101, 1011. 
Cuando adquieres un software, lo adquieres con una licencia, es  9. Pasar de Hexadecimal a decimal: 22ª, 71. 
decir,  con  la  cesión  de  ciertos  permisos.  Dicha  licencia  te  dice  qué  10. Si  un  programa  ha  sido  compilado  sobre  una  arquitectura 
derechos te ha cedido el programador. Es un contrato de cesión. Hay  x86, ¿podría ejecutar un teléfono móvil? 
diferentes tipos de licencias:  11. ¿Qué es el proceso de compilación? Define el proceso de in‐
  terpretación y la diferencia entre ambos. 
 Cerradas  y  restrictivas:  Sólo  puedes  utilizar  el  software  en 
los términos de la licencia. Es muy limitada. Nunca te de‐
jan ver el código fuente (Windows, Oracle…). 
 


 
 

Tema Dos 
 
 

 
El Sistema Operativo 
 
INTRODUCCIÓN   Número  de  procesadores:  Los  habrá  MONOPROCESADOR, 
  si  soportan  un  único  procesador  que  ejecute  los  progra‐
El sistema operativo, tal y como se indicó en el tema uno, es el  mas,  y  MULTIPROCESADOR,  si  soporta  la  ejecución 
primer  programa  y  el  último  en  ejecutarse.  Una  vez  ha  arrancado  el  simultánea de programas en varios procesadores a la vez. 
sistema, el sistema operativo sólo se ejecutará cuando algún compo‐  Tiempo de respuesta: El tiempo de respuesta es lo que tar‐
nente  físico  o  lógico  lo  requiera.  En  este  capítulo  se  verán  las  da un proceso en hacer lo que se le ha pedido. En función 
relaciones que tiene con el hardware y el software.  de  esto,  podremos  diferenciar  entre  TIEMPO  COMPARTI‐
  DO  y  TIEMPO  REAL.  Por  tiempo  compartido  se  entiende 
INTERFAZ  que el procesador comparte el tiempo de la CPU de forma 
  que puede simular simultaneidad. De esta forma, el proce‐
Definido  ampliamente  como  un  elemento  que  funciona  como  sador computa más de un proceso en un mismo intervalo 
intermediario en una comunicación entre dos actores. Es decir, podría  de tiempo, por lo que el tiempo de respuesta será varia‐
ser  una  interfaz  un  cable  USB,  un  menú,  el  sistema  operativo…  una  ble.  Por  tiempo  real  se  entiende  que  el  procesador  se 
puerta sería una interfaz entre dos estancias.  dedica a un solo proceso en un intervalo de tiempo dado, 
La  ventaja  de  utilizar  una  interfaz  es  que  si  la  conoces  puedes  de  esta  forma  evita  simultanear  varios  procesos  y  puede 
ignorar lo que hay detrás de ella, pudiendo facilitar el uso de procesos  garantizar el tiempo de respuesta, que tendrá un valor fi‐
complejos.  jo.  El  tiempo  real  implica  que  los  programas  no  efectúen 
Por  ello  las  interfaces  aportan  transparencia  y  portabilidad.  entrada/salida (leer/escribir en el disco duro, ya que es un 
Transparencia porque los cambios que hacemos en los dos lados sólo  proceso muy lento), ni que sean interactivos, ya que si lle‐
implican un cambio en la interfaz, por lo demás son invisibles; y por‐ varan  a  cabo  alguna  de  estas  acciones  no  podrían 
tabilidad porque al ser un intermediario podemos cambiar una de las  garantizar el tiempo de respuesta. 
dos partes sin que afecte al resto. Estas características harán posible   
que  ambos  elementos,  en  comunión  a  través  de  la  interfaz,  puedan  COMPONENTES DEL SISTEMA OPERATIVO 
abstraerse el uno del otro.   
El sistema operativo es la interfaz entre los soportes físicos y ló‐ Los  cuatro  componentes  que  se  citan  a  continuación  son  los 
gicos.  Todos  los  soportes  físicos  serán  manipulados  por  los  lógicos  a  cuatro pilares del sistema operativo y todos ellos se alojan y gestionan 
través del sistema operativo. De esta forma, si cambio el monitor, el  en el área de KERNEL del sistema. 
Word no tendrá que cambiar (se podrá abstraer), porque el Word pide  El KERNEL es el núcleo del sistema. No es una aplicación más, lo 
al sistema operativo que dibuje cosas en la pantalla.  que  se ejecuta en  KERNEL es “especial”.  Aunque es un  programa, se 
  ubica en un  lugar  particular  de la  memoria denominado  ESPACIO  DE 
CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS  KERNEL (más allá del espacio de Kernel está el espacio usuario). En esa 
  zona, las instrucciones maquina hacen cosas que los códigos de otras 
Se pueden clasificar en función de:  zonas  no  pueden  hacer;  pueden  manipular  el  Registro  Contador  y  el 
  registro de la CPU. 
 Número de usuarios: Serán MONOUSUARIOS aquellos que  Debido  a  estas  peculiaridades,  los  errores  cometidos  en  esta 
no  distinguen  entre  diferentes  perfiles  de  usuarios  (MS‐ zona suelen tener peores consecuencias (siendo la peor consecuencia 
DOS, Android). Serán MULTIUSUARIOS aquellos que sí ha‐ un cuelgue del sistema) que los que suceden en espacio usuario. Por 
cen esta distinción (Windows, UNIX).  este  motivo  se  hicieron  micro  Kernel  que  limitaran  el  número  de 
 Número  de  procesos:  Serán  MONOPROCESO  los  que  sólo  operaciones  a  realizar  dentro  de  esta  área  y  así  se  pudieran  limitar 
puedan ejecutar  un proceso  a  la vez  (MS‐DOS).  Se  llama‐ también el número de errores graves del sistema. 
rán  MULTIPROCESO  los  que  sean  capaces  de  realizar   
multigestión.   
 


 
Implantación de Sistemas Operativos 
 
 Gestor de Procesos.  Bloqueo  Mutuo:  Llamado  “deadlock”.  Se  produce  cuando 
 Gestor de Memoria. Gestionará la memoria volátil.  dos procesos están utilizando dos recursos, y cada uno de 
 Sistema  de  Ficheros.  Gestionará  y  clasificará  toda  la  infor‐ los  procesos  requiere  del  recurso  del  otro.  Es  decir,  los 
mación almacenada en la memoria no volátil.  procesos A y B están utilizando los recursos R1 y R2, res‐
 Gestor  de  Entrada/Salida.  Gestionará  los  drivers  del  siste‐ pectivamente, y ambos procesos quedan bloqueados, el A 
ma; los periféricos.  por el recurso R2 y el B por el R1. En estos casos, ambos 
  procesos quedarán bloqueados indefinidamente. Para evi‐
GESTOR DE PROCESOS  tar  esto  se  recurre  a  la  expropiación  o  a  la  detección 
  preventiva. 
El gestor de procesos se encargará de los programas que se es‐  Ejecutando:  El  proceso  se  está  ejecutado  y  por  tanto  está 
tén  ejecutando.  Antes  de  ser  ejecutado,  cuando  se  requiere  la  siendo leído. 
actuación  de  un programa,  el sistema  operativo  crea una  imagen  de   
dicho  programa  en  memoria.  En  ese  momento,  cuando  el  código  Transiciones. 
objeto de un programa es copiado en memoria y está preparado para   
ser  ejecutado,  pasa  a  denominarse  PROCESO.  Además,  el  sistema   Parado  a  Ejecutando:  El  proceso  comienza  a  ejecutar  por‐
operativo  crea  una  estructura  para  almacenar  información  sobre  él;  que el sistema operativo le otorga el uso de la CPU. 
dicha estructura recibe el nombre de bloque de control.    Ejecutando  a  Bloqueado:  El  proceso  sufre  un  bloqueo.  No 
  podrá seguir ejecutándose hasta que se produzca la condi‐
Bloque de Control: Es una ficha que almacena toda la informa‐ ción del bloqueo. 
ción  de  cada  proceso,  creada  cuando  el  proceso  aparece  en   Bloqueado a Parado: Se ha producido la condición del blo‐
memoria  y se  almacena  en el espacio  de kernel. Esta  informa‐ queo,  por  lo  que  el  proceso  se  interrumpe  hasta  que  el 
ción,  llamada  también metadatos del proceso,  incluye:  PID del  sistema operativo lo crea conveniente. 
proceso (número entero asignado al proceso y que el kernel uti‐  Ejecutando  a  Parado:  El  sistema  operativo  estima  que  el 
liza  para  identificarlo  de  manera  unívoca),  estado,  localización  proceso ha usado la CPU el tiempo suficiente y expulsa al 
en la memoria, recursos usados, propietario o lanzador, priori‐ proceso. 
dad.   
  Interrupciones. 
Cada uno de los programas ejecutados (procesos) tiene su ima‐  
gen y su bloque de control, estando destinados los bloques al espacio  Las interrupciones software, o llamadas al sistema, sirven para 
de kernel y las imágenes al resto de la memoria.  que los procesos invoquen al sistema operativo. Con ellas, los proce‐
  sos pueden interactuar con el sistema, pidiéndole servicios (ficheros, 
Estados de los Procesos.  memoria, etc.). 
  El proceso es como sigue: se activa la línea de interrupción y la 
El estado describe cómo se están ejecutando los procesos en un  CPU  salta  a  la  línea  donde  están  las  rutinas  de  interrupción,  la  CPU 
momento  dado.  Cada  sistema  utiliza  sus  propios  estados  para  sus  tiene que saber dónde están para que sepa donde saltar (lo sabrá por 
procesos, y nosotros utilizaremos tres de ellos para nuestro modelo:  la  memoria  ROM  o  por  lo  que  sea);  en  ese  momento  se  ejecuta  el 
  sistema operativo. 
 Parado: En este estado el proceso no se está ejecutando. El  Se  entiende  por  LLAMADA  AL  SISTEMA  una  interrupción  soft‐
proceso  está  interrumpido,  quedando  ignorado.  Su  inte‐ ware;  el  proceso  invoca  al sistema  operativo usando una  instrucción 
rrupción  no  depende  de  ninguna  condición  por  lo  que  de salto. 
podrá volver a ser ejecutado.   
 Bloqueado: Como antes, en este estado el proceso tampo‐ Planificación de los Procesos. 
co  se  está  ejecutando.  El  proceso  está  bloqueado  hasta   
que se cumpla la condición del bloqueo, por lo que no po‐ La planificación es necesaria para gestionar el tiempo que em‐
drá  volver  a  ejecutarse  hasta  que  se  cumpla  dicha  plea la CPU entre los diferentes procesos activos. De ello se encargará 
condición (que además es ajena al sistema). Por ejemplo,  el planificador o SCHEDULER, utilizando las siguientes estructuras: 
el programador introduce “cuando pulse una tecla pasa la   
diapositiva”, hasta que no se pulse esa tecla (la condición   
del bloqueo) no se cumplirá dicha condición.   Tabla de procesos. Es el área donde se guardan los bloques 
Si un proceso A está utilizando un recurso R, y un segundo  de control. en el área de kernel. 
proceso B requiere de ese mismo recurso, el sistema blo‐  Cola de procesos. Guarda el orden de los procesos que van 
queará a B hasta que A libere dicho recurso.  a  disfrutar  de  la  CPU.  Guarda  el  PID  (process  ID)  de  los 


 
Implantación de Sistemas Operativos 
 
procesos  que  van  a  ejecutarse.  Se  guarda  en  el  área  de  Los quantum los asigna  el sistema operativo, pero si se ejecuta 
kernel.  Sobre  esta  estructura  se  aplican  las  políticas  de  el B y termina su quantum ¿quién asigna el siguiente quantum a 
planificación.  C? Eso lo hace el reloj del sistema que está dentro del procesa‐
 Bloque de control. Estructura que almacena la información  dor. Cuando empieza un quantum el sistema operativo resetea 
del proceso. Se guarda  en  el  área de  kernel.  El  “Adminis‐ el  reloj,  y  cuando  el  reloj  llega a  cero  manda  una interrupción 
trador de tareas” de Windows consigue la información que  de reloj. Entonces el sistema operativo asigna el siguiente quan‐
aporta con una llamada al sistema.  tum,  elige  el  proceso,  resetea  el  reloj  y  se  marcha.  Esto  se 
  denomina  CAMBIO  DE  CONTEXTO,  es  decir,  cuando  el  sistema 
Los planificadores  son  códigos sencillos.  Son  la parte  del siste‐ operativo  deja  de  ejecutar  un  proceso  y  se  pone  a  ejecutar  el 
ma operativo  que administra los procesos y distribuye el tiempo para  siguiente. 
todos  ellos  en  base  a  unas  políticas  que  tenga  asignadas.  Podríamos  La interrupción de reloj va por una línea de interrupción distinta 
tocar el kernel del sistema y pedir que el planificador no permita más  (es un hardware distinto); cada hardware tiene una línea de in‐
interrupciones. Sin interrupciones el sistema se congela, no funciona‐ terrupción distinta. 
rá nada.   
Existen diferentes políticas de planificación, y aquí se nombran  Cambio de contexto. 
tres de ellas, pero su importancia no radica en sus nombres, sino en   
cómo ejecutan cada una de sus preferencias.  Los cambios de contexto siempre llevan un tiempo, no son gra‐
  tuitos.  En  ese  tiempo  es  el  sistema  operativo  el  que  se  está 
 Round – Robin: Es una política expulsiva (la CPU expulsará a  ejecutando, es tiempo perdido. La planificación Round Robin es la más 
los procesos). Puede poner los procesos en alta prioridad;  completa y sigue estos pasos: 
hasta  que  no  terminen  los  de  prioridad  alta  no  pasará  a   
otros. El timón de un avión, por ejemplo, sería siempre de  1. Se activa la interrupción del reloj (reloj es el hardware que 
alta prioridad.  marca el tiempo del quantum). 
 SJN  (Short  Job  Next):  Política  no  expulsiva.  El  proceso  se  2. La CPU pasa de ignorar al proceso y se ejecuta el sistema 
ejecutará y la CPU no podrá expulsarlo. Cuando el proceso  operativo. El sistema operativo (el planificador) expulsa al 
llama  al  sistema  (no  todas  las  llamadas  crean  bloqueos,  proceso. 
como escribir en un buffer, pedir espacio de memoria…) se  3. El  sistema  operativo  almacena el estado del  registro  con‐
bloqueará,  pero  sólo  una  vez  haya  terminado.  El  propio  tador  (es  como  el  marca  páginas  de  un  proceso)  en  su 
sistema  hará  una  llamada  al  sistema  para  informar  al sis‐ bloque de control. Así, cuando vuelva a ejecutar ese pro‐
tema operativo de que ya ha acabado. El siguiente proceso  ceso sabrá por donde va. 
será el más corto de los procesos.  4. Se calcula el siguiente proceso que debe entrar en base a 
 FIFO: Los procesos se ejecutan por completo, uno detrás de  la política que sea. 
otro. Es una política no expulsiva.  5. El sistema operativo resetea el reloj y se autoexcluye. 
  6. Vamos al bloque de control donde está guardado el núme‐
EJEMPLO. Tenemos un proceso A ejecutándose y a mitad de su  ro de dirección y lo metemos en el registro contador. 
quantum hace una llamada al sistema para escribir un byte. Es‐ 7. La CPU ejecuta el programa por donde iba. 
to implica saltar al espacio de kernel. Dentro del kernel escribe   
el byte en el bus para mandarlo al disco. Una vez escrito en el  Hoy día se intentan tener diferentes flujos de procesos para evi‐
bus el disco duro tarda mucho en dar el byte. Mientras el disco  tar  los  tiempos  muertos  del  cambio  de  contexto.  De  esta  forma,  los 
devuelve el dato aprovechamos y dejamos al proceso A en es‐ programas ejecutarán un solo proceso y dentro de ese proceso inclui‐
tado bloqueado por el disco duro (la condición de bloqueo será,  rán  una  pequeña  librería  que  generará  esos  pequeños  procesos 
“hasta que el disco no responda”). En ese momento ejecutamos  (llamados hilos) para evitar cambios de contexto y así ahorrar tiempo.   
los procesos B y C (ejecutan todo su quantum) múltiples veces   
(de manera consecutiva, primero B y luego C) hasta que el disco  Sincronización de Procesos. 
responde. Entonces el disco manda una interrupción cuando se   
estaba  ejecutando  el  proceso  C.  El  sistema  operativo  pone  en  Existen  mecanismos  externos  para  provocar  que  dos  procesos 
estado parado a C y A (acude a la tabla de procesos y pone pa‐ concurrentes se ejecuten siempre de la misma manera, denominados 
rados a los procesos). Podría seguir con A, B, o C, en función de  IPC  (Inter  –  Process  Comunication).  Por  lo  general  suelen  provocar 
la política de planificación.  bloqueos artificiales. Son muy usados por los programadores. 
Si B y C no hacen llamadas al sistema, el sistema operativo no  El planificador planifica, pero los procesos pueden sincronizarse 
será ejecutado; si son procesos que no tienen entrada/salida no  ejecutando bloqueos. Puede hacer que B no pueda empezar hasta que 
requerirán al sistema operativo.  A no haya terminado, de esa forma se bloquea a B con una tubería (un 


 
Implantación de Sistemas Operativos 
 
buffer  de  memoria).  Se  trata  de  forzar  el  orden  de  ejecución  de  los   Protección: Los procesos tendrán un mapa de memoria pri‐
procesos mediante la sincronización, provocando bloqueos  vado para que los demás procesos no toquen su espacio. 
   Movilidad: Hay que permitir que se puedan cargar procesos 
GESTOR DE MEMORIA  en  diferentes  zonas  de  memoria,  para  ello  se  utilizan  las 
  direcciones virtuales. 
La  memoria  es  algo  básico.  Aloja  todo  el  software,  incluido  el   Sobre – asignación de zonas externas (si fuera necesario): 
sistema  operativo.  Normalmente  sólo  aloja  el  software  activo  (los  Es la capacidad de darle a un proceso más espacio del que 
procesos). Los programas (software no activo) se alojan en memorias  disponemos. A esto se le llama MEMORIA VIRTUAL. Es de‐
secundarias de almacenamiento permanente.  cir,  si  tenemos  un  proceso  que  ocupa  100  direcciones  y 
La memoria es un recurso caro que se ha de gestionar con cui‐ sólo tenemos 80 libres, tendremos que meterlo por partes 
dado para no desaprovecharlo.  en diferentes momentos.  
   Se produce carga bajo demanda. Se van cargando las cosas 
Jerarquía de Memoria.  según se van necesitando. Si el gestor de memoria es ma‐
  lo, dejará cosas de uso inmediato en el disco duro, por lo 
El mapa de memoria se construye sobre diferentes dispositivos.  que el sistema  se ralentizará y su producirá “trashing”. Si 
Podemos  tener  unas  direcciones  destinadas  a  la  memoria  volátil  y  se  le  deja  descansar,  el  sistema  operativo  bloqueará  los 
rápida,  y  otras  a  la  memoria  no  volátil  y  lenta.  El  programador  del  procesos y cesará su ejecución, dejando de requerirse más 
sistema operativo conoce esta arquitectura.   fragmentos al disco. 
Según  su  tamaño  y  su  velocidad  de  acceso  se  utilizarán  para   
unas  funciones  u  otras.  De  más  precio  y  menor  tamaño  a  menos  Ejemplo. Sea un programa con 3 direcciones (#1, #2, #3), en 
precio y más capacidad.  las que tenemos [SUMA #2, #3], [7] y [8], respectivamente. 
  Cuando cargamos este programa en la memoria el proceso 
 Registros (de la CPU y memoria). El registro contador sería  será cargado en cualquier ranura de memoria. Para ello no 
la dirección cero del mapa de memoria.  tendremos que cargar el proceso en las ranuras #1, #2, #3 
 Cache  (L1  y  L2), cerca  del procesador. Se utiliza para guar‐ de  nuestra  memoria  para  que  se  pueda  ejecutar  la  SUMA 
dar  las  últimas  instrucciones  que  has  utilizado  de  la  del  programa,  sino  que  la  cargaremos  en  cualquier  direc‐
memoria  RAM.  Hay  políticas  de  cache,  podría  guardar  lo  ción,  por  ejemplo,  la  #51,  #52,  #53.  Para  que  el  programa 
último o lo más utilizado, en función de las mismas. Según  no acuda a la dirección #2, #3 de nuestra memoria para ha‐
dichas  políticas,  su  rendimiento  puede  variar.  Tiene  dos  cer  la  suma,  se  crea  un  mapa  de  memoria  privado  y  el 
niveles, el L1 es más rápido que el L2.  sistema  operativo  tendrá  que  asignar  las  equivalencias,  es 
 Memoria RAM (volátil, de rápido acceso)  decir, el sistema operativo se encargará de decir que la di‐
 Disco duro.  rección  del  mapa  privado  del  proceso  #2  es  igual  a  la 
  dirección #52 real de la memoria. De esta manera los pro‐
Mapa de Memoria.  gramas  tendrán  movilidad,  y  podrán  ser  cargados  siempre 
  en el mismo sitio. Con este sistema la protección viene de la 
Por cada proceso se guarda una imagen y un registro del proce‐ mano. 
so en el bloque de control. Esta imagen contiene:   
  Memoria Virtual. 
 Los datos del programa.   
 Las instrucciones.  Es  un  dispositivo  hardware  llamado  MMU  (memory  manage‐
 La pila y otros elementos.  ment  unit);  es  una  memoria  más.  Aquí  se  guardan  los  mapas  de 
  dirección una vez el sistema operativo ha hecho las equivalencias de 
El  mapa  de  memoria  está  distribuido  en  muchos  dispositivos  las direcciones físicas  y virtuales. 
(registro,  disco  duro…).  Hay  una  zona  para  los  procesos  de  usuario  Cuando el sistema operativo asigna un mapa al proceso, enton‐
(espacio de procesos) y el resto está reservado para las direcciones de  ces  mete  la  equivalencia  a  la  MMU,  donde  accederá  la  CPU  (a  las 
entrada/salida, el sistema operativo y los vectores de interrupción.  direcciones físicas). 
   
Asignación de Memoria.  Paginación. 
     
Es la acción de asignar espacio a cada imagen de cada proceso  La paginación es una técnica necesaria para conseguir la sobre 
entrante. En un sistema multiproceso se habrán de garantizar 3 cosas:  asignación,  y  además  conseguiremos  movilidad  y  protección.  Los 
  procesos cargados en memoria se dividen en “páginas” (fragmentos) 

10 
 
Implantación de Sistemas Operativos 
 
de  igual  tamaño.  Todos  los  procesos  se  van  a  dividir  en  el  mismo  PARENTE  para  el  programador  (lo  decide  el  programador),  será  el 
tamaño de página, y no tiene por qué ser múltiplo exacto. Además, la  compilador el que hace los segmentos. 
memoria se dividirá en zonas llamadas “marcos de página”, del mismo  Los tipos son tres: 
tamaño que las páginas de los procesos, de forma que todas las pági‐  
nas  de  todos  los  procesos  encajarán  en  cualquier  marco  de  la   De Código: Se recogen todas las instrucciones. 
memoria. Las páginas se irán alojando bajo demanda.   De Dato: Se recogen todos los datos. 
   De Pila: … 
Ejemplo. Si un proceso tiene 52 ranuras y tenemos 10 ranuras   
por página, tendremos 6 páginas (la sexta tendrá 2 ranuras).  En la MMU se guarda la tabla de segmentos. Se guarda su inicio 
Si  a  ese  proceso  le  asignamos  3  marcos  estando  cargadas  las  y su fin (su longitud). Esto permite que varios procesos abiertos com‐
páginas 1, 2 y 4, y una instrucción del proceso pide la página 5,  partan los mismos segmentos. Es decir, si abrimos dos Firefox, podrán 
el sistema operativo tendrá que ir por ella al disco duro y quitar  compartir segmentos. 
una de las páginas cargadas para meter esta nueva.  Toda  esta  información  desaparece  una  vez  el  proceso  deja  de 
  estar cargado en memoria.  
Para saber si un dato está en una página recurrimos a la MMU,   
que  va  a  guardar  la  tabla  de  paginación  de  cada  proceso  (como  si  Fragmentación. 
fuera un bloque de control).   
  Los procesos van a dejar huecos al ser descargados de la memo‐
Ejemplo. El proceso A  está  dividido en páginas de  10  direccio‐ ria.  El  sistema  operativo  será  el  encargado  de  volver  a  asignar  esos 
nes. Cuando dicho proceso pide una SUMA [#35, 7], habrá que  huecos. Si no tiene huecos, irá cargando trozos de procesos, utilizando 
saber dónde está la dirección virtual #35. Como hemos dividido  memoria virtual, de forma que el ordenador se ralentizará. Por ello, a 
cada página en 10 direcciones, sabemos que la #35 estará en la  más RAM, más velocidad. 
página 4. Resulta que la página 4 está cargada en memoria, en  La fragmentación consiste en un desperdicio de la memoria, por 
el marco 1. La MMU tendrá entonces la equivalencia de la me‐ dejar huecos desaprovechados. Es como cuando en un aparcamiento 
moria  virtual  #35  con  la  memoria  física  #5.  Entonces,  la  CPU  en  línea  se  producen  huecos  por  salidas  y  aparcamientos  de  los  co‐
dará a la ALU, SUMA [#5, 7].  ches.  La  segmentación  tiene  fragmentación  EXTERNA  porque  los 
Si se hubiera pedido una página que no hubiera estado cargada  segmentos son de tamaño variable. 
en memoria, la MMU daría un mensaje de error y lanzaría una   
interrupción, consiguiendo que el sistema operativo bloqueara  SISTEMA DE FICHEROS 
el  proceso  y  que  pidiera  al  disco duro  que  busque  esa  página.   
Esto es un ERROR DE PAGINACIÓN.  El sistema de ficheros (también parte del kernel) debe almace‐
  nar la información sobre los soportes físicos y tiene que ser capaz de 
Lo que se hace es dar a todos los procesos un mínimo de mar‐ encontrarla  rápidamente.  Para  dar  buenos  tiempos  de  respuesta  se 
cos de memoria para acelerar los procesos.  tendrá  que  clasificar  la  información;  el  sistema  operativo  se  encarga 
Podría darse el caso de que todos los marcos estuvieran ocupa‐ de  organizar  los  dispositivos  de  almacenamiento  para  garantizar 
dos y tuviéramos que cargar una página más… este es el problema del  tiempos razonables. 
REEMPLAZAMIENTO.  El  sistema  de  ficheros  crea  una  estructura  básica  dentro  del 
Según el sistema operativo se gestionarán de una forma u otra  propio  dispositivo  de  almacenamiento  (como  si  fueran  las  estante‐
las páginas que no caben en la memoria volátil. Por ejemplo, Windows  rías). Aunque esto ocupa espacio, contribuye al orden y por tanto a la 
utiliza  un  fichero  para  colocar  las  páginas  que  no  caben  y  las  trata  rapidez. A esto se le llama FORMATO LÓGICO: aplicar sobre el formato 
como  si  fueran  un  fichero  más,  mientras  que  Linux  utiliza  una  parti‐ físico del disco unos compartimentos (bytes) para parcelar su estruc‐
ción (ver más adelante, en sistema de ficheros) metiendo las páginas  tura,  es  decir,  lo  que  se  denomina  FORMATEO.  Es  por  este  espacio 
en disco pero con las mismas reglas de la memoria volátil (salvo que  lógico por lo que los discos no tienen todo su espacio neto disponible, 
es más lento).  ya que las marcas utilizadas para crear su estructura fundamental (con 
  el fin de obtener rápidamente la información) ocupan espacio dentro 
Segmentación.  del  disco.  Cuando  realizo  un  formateo,  estoy  reconstruyendo  el  for‐
  mato  lógico  sin  tocar  la  información  que  está  contenida  en  él.  De 
Es otra técnica necesaria para conseguir sobre asignación. Con  hecho,  dicha  información  permanece  inalterada  y  oculta,  se  podría 
esta técnica, cada proceso se divide en segmentos de tamaño variable  acceder a ella leyendo el disco bit a bit, en crudo. 
y que suelen ser temáticos. Los procesos agruparán su información en  Cada sistema de ficheros utiliza su propio formato: 
segmentos, en función de su naturaleza. Este proceso NO ES TRANS‐  

11 
 
Implantación de Sistemas Operativos 
 
 NTFS  (New  Technology  File  System):  Es  el  sistema  de  como  en  UNIX,  o  será  un  atributo  más  destinado  a  vincular  cada 
ficheros de windows.  archivo con un programa, como en Windows. 
 FAT  (File  Allocation  Table):  El  sistema  de  MS‐DOS.  Aunque   
tiene bajas prestaciones, es muy sencillo de leer y fácil de  El Directorio. 
programar; por ello se ha convertido en un estándar.    
 FAT32: Sistema de ficheros de pen drive, móviles, cámaras.  Es  una  estructura  organizativa  de  orden  superior,  por  lo  que 
  como tal, contendrá los nombres de los archivos y las relaciones con 
Particiones.  su localización, no los archivos en sí mismos. Por ello contiene bytes, 
  pero  no  contiene  todos  los  bytes  de  los  archivos  que  relaciona.  En 
La  primera  estructura  que  va  a  realizar  el  sistema  de  ficheros  aquellos  bytes  se  almacena  una  tabla  de  dos  columnas,  una  con  los 
sobre el disco duro es una PARTICIÓN. Una partición es una demarca‐ nombres  y  la  otra  con  la  ubicación  de  esos  nombres.  Esos  nombres 
ción  que  establece  una  zona  formateable  en  una  unidad  de  pueden  ser  de  archivos  o  de  otros  directorios,  ya  que  un  directorio 
almacenamiento.  Dicha  unidad  será  la  encargada  de  contener  la  puede tener las relaciones de otros directorios, sin que los contenga 
información  de  forma  reglada  y  ordenada  a  través  de  un  formato  físicamente. 
lógico. A aquellos soportes físicos que puedan ser particionados se les  La estructura organizativa con las que el sistema de ficheros or‐
podrá  aplicar  un  formato  lógico  a  cada  una  de  sus  particiones  (no  ganiza los archivos será por tanto jerárquica, en forma de árbol. Esta 
todos los soportes físicos lo soportan, por ejemplo, el CD no puede ser  estructura  queda  obscurecida  por  las  interfaces  gráficas  de  usuario, 
particionado).  Esto  es  muy  útil  porque  podemos  formatear  cada  convirtiendo la máquina en una caja negra. 
partición de manera independiente.   
Los discos duros IDE, SCSI, SATA soportan varios tipos de parti‐ El Árbol de Ficheros. 
ciones (MBR o GPT – sólo por discos SCSI o SATA).   
Hay varios tipos de particiones:  Es la estructura organizativa formada por archivos y directorios. 
  El árbol de ficheros siempre posee una raíz, que en función del siste‐
 Primarias:  Esta  es  la  partición  fundamental.  Los  discos  IDE  ma  operativo  será  una    otra  (para  Windows  sería  C:\,  D:\  …,  y  para 
(tipo MBR) pueden tener hasta 4 particiones de este tipo,  Linux “/”). 
porque  en  el  índice  sólo  caben  4  áreas  formateables.  Di‐ Con  esta  estructura  podemos  trazar  la  ruta  o  camino  de  cada 
cho  índice  se  almacena  en  la  TABLA  DE  PARTICIONES,  archivo, desde la raíz hasta su ubicación. 
guardada en el sector maestro (el primer sector del disco).   
 Extendidas: Cada partición  extendida  tiene su  propia  tabla  Metadatos. 
de  particiones;  dicha  tabla  no  se  guarda  en  los  primeros   
sectores del disco y puede tener cualquier tamaño. Sólo se  Se  denomina  metadatos  a  aquellos  datos  que  informan  sobre 
puede crear una partición extendida.  otros  datos.  El  sistema  de  ficheros  guarda  información  sobre  los 
Una  partición extendida  no  es  formateable,  a  menos  que  archivos,  sobre  sus  propiedades  (tamaño,  propietario,  permisos, 
contenga una partición lógica (este requisito lo impone el  ubicación,  fecha  de  creación,  etc.).  Los  metadatos  aportan  informa‐
hardware).  ción del archivo, pero no forman parte del mismo. 
 Lógicas:  Son  las  particiones  que  se  realizan  dentro  de  las  Los  metadatos pueden perderse al  pasar un archivo de  un sis‐
particiones extendidas; puede haber tantas como se quie‐ tema  operativo  a  otro,  ya  que  si  el  formato  lógico  es  distinto  habrá 
ra.    Las  particiones  lógicas  no  están  referenciadas  en  las  que reconstruirlo. 
tablas.   
  Ejemplo.  Sistemas  de  Ficheros  FAT  (File  Allocation  Table).  Se 
Ejemplo.  En  un  disco  IDE  podríamos  tener  hasta  4  particiones  estudia este sistema porque es un modelo real y sencillo. Se ha 
primarias; o 3 primarias y 1 extendida; 2 primarias y 1 extendi‐ utilizado desde las  primeras  versiones de  MS‐DOS,  y  en su  co‐
da; 1 primaria y 1 extendida; o 0 primarias y 1 extendida.  mienzo se pensó para discos de pequeño tamaño, por lo que no 
  funciona  muy  bien  sobre  soportes  de  gran  almacenamiento. 
El Archivo.  Desde su primera aparición en el IBM PC 286, se ha seguido uti‐
  lizando  a  la  par  que  los  soportes  de  almacenamiento  crecían, 
Es  la  unidad  mínima  de  almacenamiento;  contiene  bytes  a  los  por lo que es un sistema obsoleto desde el punto de vista técni‐
que  asociamos  un  nombre  y  unas  propiedades  (almacenadas  como  co,  pero  en  boga  desde  el  punto  vista  comercial  (como  se 
metadatos, ver más adelante). Los archivos pueden tener también un  apuntó más arriba, su sencillez y su compatibilidad con la mayo‐
formato interno, pero el sistema de ficheros es ajeno al mismo.  ría  de  los  sistemas  operativos  ha  hecho  que  prácticamente 
En  función  del  sistema  operativo,  la  extensión  de  los  archivos  todos  los  dispositivos  lo  utilicen,  convirtiéndolo  en  un  están‐
será  parte  del  nombre  (meramente  informativo  de  cara  al  usuario),  dar). 

12 
 
Implantación de Sistemas Operativos 
 
Este sistema se basa en una TABLA FAT que relaciona a cada fi‐ Hay que tener en cuenta que en el directorio raíz podemos te‐
chero con su ubicación en el disco. En esta tabla están todos los  ner  también  directorios  que  nos  señalen  en  qué  cluster 
archivos del disco, por lo que si se tratara de un disco grande y  empiezan. Cuando nos vamos a la tabla FAT y entramos por ese 
lleno, la tabla ocuparía mucho espacio. Además, cuando el sis‐ cluster nos encontraremos una tabla de directorios donde esta‐
tema arranca, carga la tabla en memoria, por lo que si es muy  rán las referencias de los archivos con sus clusters, al igual que 
grande consumirá mucha memoria.  en  el  directorio  raíz.  Las  tablas de  directorios están esparcidas 
Antes de nada habrá que definir CLUSTERS. Son divisiones lógi‐ en diferentes clusters del área de datos. 
cas  del  espacio  disponible  orientadas  al  almacenamiento.  El  Recordad que un cluster sólo pertenece a un fichero, no puede 
disco  de  FAT  está  dividido  en  clusters  guardados  en  memoria.  haber varios ficheros en un cluster. 
Cada cluster delimita un espacio determinado que siempre será  Con desfragmentar lo que hacemos es agrupar todos los fiche‐
igual.  ros en cluster contiguos. 
Cuando formateamos en FAT creamos:  PROBLEMAS  DE  FAT:  En  versiones  antiguas,  el  programador 
  pensó que con destinar 8 bytes para nombrar los archivos sería 
 Sector  de  Arranque:  Guarda  información  de  la  partición  suficiente,  por  eso  estaban  restringidos  a  8  letras.  Además,  el 
FAT.  rendimiento para discos grandes es muy bajo, y un área de da‐
 Tabla FAT: De asignación. Es una lista de clusters, y por cada  tos muy grande genera una tabla FAT de gran tamaño. 
uno de ellos tendrá una entrada. Cuanto más grande sea el   
espacio almacenado, más clusters tendrá y más ocupará.  FAT está patentado en USA por Microsoft, pero no ha ejercido 
La tabla FAT tiene el siguiente aspecto:  su  derecho  sobre  su  patente  porque  le  interesa  que  todo  el 
  mundo lo utilice.  
  CLUSTER  OCUPADO  FINAL  SIGUIENTE   
  X  (1 ó 0)  (1 ó 0)  Y  ENTRADA/SALIDA 
   
Donde la columna “Cluster” (con X igual al valor del cluster,  El sistema operativo controla la comunicación entre los periféri‐
desde 1 hasta n) nos indica el número de ese cluster. “Ocu‐ cos y los procesos. Es una comunicación en dos sentidos: 
pado”,  puede  ser  igual  a  1  (en  este  caso  el  cluster  estará   
ocupado), o a 0 (en este caso estará libre). “Final”, que po‐  De  los  procesos a  los  periféricos: Los procesos se comuni‐
drá tener un valor de 1 (indicando que es cluster final) o 0  can  con  los  periféricos  a  través  del  uso  de  DRIVERS.  Los 
(no es cluster final). “Siguiente”, que siempre que haya un 1  drivers  son  programas  o  librerías  que  contienen  código 
en “Final”, tendrá un 0, y si no, indicará el siguiente cluster  para  comunicarse  con  un  periférico,  así  ganamos  MODU‐
que habrá que leer para completar ese archivo.  LARIDAD  (flexibilidad  en  el  kernel).  Los  drivers  suelen 
 Directorio  raíz:  Es  una  tabla  de  dos  columnas  que  guarda  suministrarlos los fabricantes del periférico. Todos los dri‐
los ficheros y en qué cluster empiezan.  vers  escriben  sus  líneas  de  código  en  el  área  de  kernel 
 Área de Datos: Aquí se guardan los datos de nuestros fiche‐ porque acceden al hardware, y todo lo que está en el área 
ros. Esto ocupa el 90% del espacio de la partición.  de kernel se ejecutará sin restricciones. 
  Los programas hacen llamadas al sistema con una instruc‐
FAT divide el área formateable en clusters. Por ejemplo, si  ción de salto; el sistema operativo llama a la FUNCIÓN DEL 
un archivo A ocupa 10 bytes y cada cluster tiene un tamaño  DRIVER y ejecuta la instrucción. El programador del driver 
de 5 bytes, dicho archivo ocupará dos clusters. Imaginemos  debe conocer el sistema operativo para que las funciones 
que ocupa los clusters 1 y 2. Cuando grabemos un segundo  de los drivers sean exactas a las que tiene el sistema ope‐
archivo B de 5 bytes ocuparemos el cluster 3. Ahora bien, si  rativo  (por  eso  se  hacen  para  un  mismo  periférico 
volvemos a abrir A y le añadimos información, el sistema de  diferentes drivers según el sistema operativo).  
ficheros meterá esa información nueva en el cluster 4, que‐ Una vez hecha la llamada a la función del driver tenemos 
dando la siguiente tabla FAT:  que llevar a cabo esa instrucción escribiendo en registros 
  del propio periférico o bien en buses. Si el periférico está 
  CLUSTER  OCUPADO  FINAL  SIGUIENTE  mapeado  podremos  utilizar  instrucciones  de  escritura  y 
  1  1  0  2  lectura de memoria; si no, podremos utilizar instrucciones 
  2  1  0  4  específicas  directas.  Si  tenemos  muchas  instrucciones 
  3  1  1  0  ocuparemos mucho espacio para ellas, y quedará poco es‐
  4  1  1  0  pacio restante para los datos. 
   De los periféricos a los procesos: Se utilizan interrupciones. 
  Cada línea de interrupción debe tener una rutina de inte‐

13 
 
Implantación de Sistemas Operativos 
 
rrupción que la trate. El conjunto de rutinas se denomina  11. Describe en qué consiste la sincronización de procesos. 
vector  de  interrupción.  El  vector  de  interrupción  se  carga  12. ¿Qué es la jerarquía de memorias? 
en un lugar conocido de la memoria que podríamos variar,  13. ¿Qué garantías debemos dar a los procesos durante la asig‐
aunque si lo hacemos, habría que decirle al sistema opera‐ nación de memoria? 
tivo que cambie esa posición.  14. ¿En qué consiste el mecanismo de memoria virtual? 
  15. Describe  la  paginación  y  compárala  con  la  segmentación  y 
PREGUNTAS.  explica en qué consiste el problema del reemplazamiento. 
  16. ¿En qué función escribe el sistema de ficheros? 
1. Explica  las  diferencias  entre  un  sistema  de  tiempo  real  y  17. ¿Qué es una partición? 
uno de tiempo compartido.  18. ¿Cómo se organizan las particiones en un disco duro? 
2. ¿Qué es una interfaz? ¿Por qué decimos que el sistema ope‐ 19. Diferencia entre archivo y directorio. 
rativo es una interfaz?  20. ¿Qué son los metadatos? 
3. Diferencia programa y proceso.  21. ¿Cómo funciona FAT? Describe su estructura principal. Ilus‐
4. ¿Qué es el bloque de control?  trar este funcionamiento con un ejemplo. 
5. Define los estados en los que puede estar un proceso.  22. Describe brevemente los dos flujos de comunicación de En‐
6. Describe qué es una interrupción y una llamada al sistema.  trada/Salida. 
7. ¿Cuál es la función de una interrupción?  23. Explica los conceptos de driver y qué papel juega en la co‐
8. ¿Qué es un planificador y cuál es su función?  municación con los periféricos. 
9. Describe con detalle el mecanismo de cambio de contexto.  24. Describe brevemente el modelo de interrupciones. 
10. Describe las estructuras que realiza el planificador.   
 

14 
 
 

Tema Tres 
 
 

Máquinas Virtuales y 
 
Virtualización de Sistemas 
 
INTRODUCCIÓN   Emuladores  (Inferno).  Virtualiza  la  plataforma  hardware; 
  emula una arquitectura. Algunos ejemplos serían los emu‐
La  virtualización  es  el  mecanismo  que  abstrae  los  recursos  ladores  de  Android  o  IOS  (los  emuladores  de  teléfonos, 
hardware  de  una  máquina  a  través  de  una  interfaz  (Virtual  Machine  SDK – Software Development Kit). 
Monitor) entre dicho hardware y el sistema operativo.   
El VMM es un proceso más, pero va a ofrecer hacia arriba una  CARACTERÍSTICAS 
interfaz  software  que  va  a  imitar  al  hardware  real,  así  podremos   
instalar un sistema operativo y un kernel convencional, creyendo que  Nosotros vamos a utilizar un modelo denominado máquina vir‐
lo que tiene por debajo es hardware. De esta forma podremos com‐ tual de sistema. 
partir  el  uso  de  los  recursos  hardware  entre  diferentes  sistemas   
operativos instalados en una misma máquina.   Emulador sobre Sistema Operativo (VMware). Se instala so‐
  bre  el  sistema  operativo  como  una  aplicación  que  no 
ELEMENTOS  podrá planificar ni asignar memoria. 
   
 Host: La máquina física.  VENTAJAS 
 Monitor:  Software  que  crea  la  capa  de  abstracción  en  el   
host. Se puede instalar sobre el propio hardware.   Optimización de Recursos. Las máquinas pueden ser susti‐
 Guest:  Máquina  virtual.  Funciona  sobre  el  VMM.  Cada  sis‐ tuidas por un número mucho menor de ellas, consiguiendo 
tema guest trabaja de forma independiente y desconoce el  las mismas prestaciones. Este número menor de máquinas 
resto de sistemas invitados.  serán  mucho  más  potentes,  de forma  que puedan  sopor‐
  tar “granjas” de máquinas virtuales ejecutadas sobre ellas 
OTROS MODELOS  (pool de recursos). Con ello conseguimos que no haya má‐
  quinas infrautilizadas. 
La virtualización se puede conseguir de otras formas.   Reducción  de  Costes.  Al  necesitar  menos  máquinas  aho‐
  rramos  en  costes.  Además,  a  menos  máquinas,  menos 
 A nivel de procesos (JVM o .NET). Cada proceso tiene incor‐ hardware  y  por  tanto  se  reduce  el  número  de  fallos.  Al 
porado  una  pequeña  librería  de  virtualización,  como  si  centralizar los recursos en esas máquinas mucho más po‐
cada proceso tuviera su propio VMM.  tentes  abarato  en  las  tareas  de  administración  y 
 A nivel de sistema operativo (OpenVZ). Se instalan sobre el  mantenimiento  y  homogeneizo  el  hardware.  Al  consumir 
hardware. La propia plataforma puede sustituir al sistema  menos  energía  participo  cuidando  el  medio  ambiente 
operativo.  Es  un  kernel  modificado  que  puede  ejecutarse  (eco‐computación o green IT). 
sin sistema operativo. Sólo están preparados para ejecutar   Mejora de la Recuperación ante Fallos. La restauración del 
sobre ellos máquinas virtuales. No tienen interfaz gráfica,  sistema guest es trivial. Recuperar una máquina virtual es 
es algo ligero, para técnicos. Aquí el propio monitor es el  tan sencillo como arrancar un programa; lo único que ten‐
sistema operativo, y el que gestionará el reparto de proce‐ dremos que hacer es reiniciar esa plataforma en un host u 
sos  con  cada  máquina  virtual.  Puede  arrancar  máquinas  otro.  El  proceso  de  re‐arranque  es  más  ligero  que  el  de 
virtuales con prioridades, por lo que el rendimiento mejo‐ una  máquina  física.  Todo  el  sistema  invitado  suele  estar 
rará. Ejemplos de este tipo son Citrix o Xen.  representado en simples ficheros. Además, si tenemos di‐
ferentes host podemos hacer migraciones en calientes de 

15 
 
Implantación de Sistemas Operativos 
 
uno  a  otro.  También  se  pueden  hacer  SNAPSHOT  de  má‐ LABLE, porque puede aumentar sus capacidades, y por ello es FLEXI‐
quinas virtuales como si fueran un backup de un proceso,  BLE.  El  cloud  computing  puede  permitir  por  tanto  sistemas  más 
pues no deja de ser un proceso más, restaurando con faci‐ escalables y con mayor MOVILIDAD, no porque se mueva el software 
lidad esas máquinas.   (que  de  hecho  no  se  mueve  en  absoluto),  sino  porque  los  usuarios 
 Optimización de la Carga de Trabajo. El balanceo de carga  accederán al software a través de sus terminales (como ahora lo es el 
es más sencillo. Hay procesos que permiten determinar a  navegador), desde cualquier parte. 
que host queremos enviar la máquina y se ejecutarán en el   
tiempo que dura la migración de ese proceso. Así se podrá  FABRICANTES Y LICENCIAS 
balancear  la  carga  entre  los  diferentes  host  sin  que  los   
clientes lo perciban, ganando en adaptabilidad. Si tenemos  Las  licencias  PROPIETARIAS  no  te  ceden  ningún  derecho. 
varias  plataformas  host  en  las  que  se  ejecutan  máquinas  VMware  comercializa  productos,  todos  propietarios,  que  se  instalan 
virtuales, irán distribuyendo las peticiones entre ellas, em‐ sobre  el  sistema  operativo  (Windows  o  Linux);  VMware  Workstation 
pezando  por  las  que  tengan  menor  carga.  Además,  con  (potente y completo), y VMware Player (gratuito, aunque no te permi‐
dos host  muy  potentes,  si  tenemos  uno  de  ellos  muy  so‐ te  crear  nuevas  máquinas  virtuales).  Virtual  PC  viene  de  serie  en 
brecargado,  puede  ir  migrando  máquinas  en  caliente  al  Windows, y sus prestaciones son menores que las que ofrece VMwa‐
otro.   re. Parallels es para entorno Mac. 
 Seguridad  por  Aislamiento.  En  el  modelo  tradicional  de  Las  licencias  ABIERTAS,  como  Xen.  Xen  no  requiere  una  plata‐
hosting  teníamos  muchos  usuarios  utilizando  un  servicio  forma por debajo, se instala directamente sobre el hardware porque 
(web, correo, base de datos…). Si uno de los usuarios pu‐ tiene un pequeño kernel de Linux y no necesita de sistema operativo 
diera modificar el código de este servicio y cambiarlo por  para funcionar. 
otro  código  objeto,  conseguiría  que  la  CPU  ejecutara  su   
código,  y  comprometiendo  la  seguridad  de  la  máquina  al  VMWARE 
completo y por tanto de todos los usuarios que utilizaban   
ese  servicio.  Con  la  virtualización  puedo  virtualizar  servi‐ Puede  utilizarse  sobre  Linux  o  Windows.  A  partir  de  imágenes 
cios, haciendo que puedan convivir varios de ellos en una  podemos  crear  máquinas  virtuales.  No  podrá  cambiar  la  plataforma 
misma máquina física. De esta forma los aíslo, consiguien‐ hardware que virtualiza, es decir, si tengo un sistema operativo de 32 
do que los ataques sólo afecten al guest de esa máquina.  bits, los virtuales también lo tendrán. 
  Cada máquina virtual estará referenciada a un directorio, en la 
Cloud Computing.  que habrá unos ficheros.  
   
Este modelo busca una plataforma total en la que no se tenga  CREAR UNA MÁQUINA VIRTUAL NUEVA 
que ejecutar nada (ni siquiera el sistema operativo) en tu procesador.   
Por lo tanto los terminales particulares perderán potencia, delegando  Se  podrá  crear  a  partir  de  un  CD  o  de  una  imagen  ISO.  Habrá 
todo el poder de cálculo en supercomputadores que ejecutarán nues‐ que elegir el tipo de sistema instalar para poder seleccionar la VMwa‐
tros  programas  y  que  almacenarán  toda  nuestra  información.  Con  re Tools adecuadas. 
esos  terminales,  el  usuario  ejecutará  el  mínimo  proceso  para  poder   
acceder  a  esas  aplicaciones  remotas.  Actualmente  esta  función  la  VMware Tools. 
cumple el navegador, aunque el protocolo http (de los años 90) está al   
límite de sus posibilidades.  Estas  herramientas  se  utilizan  para  compartir  funciones  con  el 
Con este modelo centralizas todo en un sitio, ahorrando a nivel  host,  como  el  portapapeles  o  pasar  carpetas  del  host  a  la  máquina 
administrativo y a nivel de recursos (Gmail, Facebook, Twitter…).  virtual.  Con  ellas  tenemos  más  funcionalidad.  Cuando  VMware  las 
Amazon ofrece este tipo de hosting, alquilándote una capacidad  instala  le  hace  creer  al  guest  que  se  trata  de  un  nuevo  hardware, 
de procesamiento y creando bajo demanda lo que se necesite. De esa  instalando los drivers correspondientes. 
forma,  ante  picos  de  trabajo,  mejorarás  el  servicio  sin  necesidad  de   
invertir  en  hardware  que  quedará  sin  utilizar  en  los  días  de  poco  CONFIGURACIÓN 
tránsito.  Esto  también  ahorra  en  mantenimiento  de  máquinas  (y  el   
ahorro del mantenimiento de un CDP – Centro de Procesamiento de  Cada  dispositivo  virtual  que  agreguemos  creará  un  puente 
Datos, que tiene que estar climatizado, protegido contra incendios…).  software  con  nuestro  dispositivo  físico.  Aunque  algunos  sistemas 
Lo  malo  es  que  el  núcleo  central  del  negocio  estará  en  manos  de  permiten  agregar  hardware  en  caliente,  es  aconsejable  parar  la  má‐
otros. Por ejemplo, Wikileaks fue capado por Amazon.  quina. 
Algunas ventajas son que se crece más rápidamente, porque es   
más sencillo  mejorar  esos servidores  centrales.  Se dice que es ESCA‐  

16 
 
Implantación de Sistemas Operativos 
 
Discos Duros.  Snapshots. 
   
Podemos añadir cuantos queramos y podremos elegir su cone‐ Es una foto fija del estado de la máquina. Se entiende por ES‐
xión,  IDE  o  SCSI.  Cada  disco  se  representa  como  un  fichero  con  TADO el contenido de los discos, el contenido de la memoria (guarda 
extensión  VMDK,  que  representará  el  disco  duro  de  la  máquina  vir‐ el contador del programa; todo lo que haya en la RAM), etc.  Con los 
tual. Si la máquina virtual tiene un disco de 50 Gb, ese fichero ocupará  snapshots  se  podrá  volver  a  ese  estado  en  cualquier  momento.  Un 
lo mismo.   snapshot  crea  un  VMDK  que  se  puede  seguir  leyendo  pero  no  se 
Se puede hacer que el espacio vaya creciendo, es decir, que es‐ puede  modificar.  Para  volver  a  ese  estado  se  sustituye  el  VDMK, 
tos ficheros crezcan dinámicamente, de forma que no tengamos que  creado en el momento de la captura, por el VMDK actual. Este proce‐
especificar el tamaño, pero así la máquina virtual perderá rendimiento  so es muy rápido (tarda apenas unos segundos en restaurarse). 
(no  se  recomienda  para  servidores  en  producción),  aunque  también   
optimizará el espacio en disco para su uso doméstico.  Ejemplo.  Nada más  arrancar  mi máquina virtual creo un snap‐
  shot (1). Después instalo en mi máquina virtual el Office 2003 y 
Tarjetas de Red.  hago otro snapshot (2). Luego instalo el photoshop CS4 y hago 
  otro más (3). Podría volver al estado inicial de la máquina e ins‐
Podemos añadir cuantas queramos, aunque al final todas utili‐ talar  una versión  más  moderna  del  Office, haciendo un  último 
zarán las tarjetas físicas que tengamos. Cada tarjeta virtual creará un  snapshot (4). De esta forma tendríamos  4 imágenes correspon‐
puente software (en “Conexiones de Red”).  dientes a cuatro estados de la máquina, cada una ligada a una 
Hay tres tipos de configuración:  línea temporal distinta. 
   
 Host – Only: El guest sólo podrá acceder a los servicios que  PREGUNTAS. 
estén activos en el host. Si el host no tiene ningún servicio,   
el  guest  no  podrá  tenerlos;  ambos  utilizarán  una  red  pri‐ 1. ¿En qué consiste la virtualización? 
vada  para  comunicarse.  Es  un  entorno  más  restringido  y  2. ¿Qué  elementos  intervienen  en  la  virtualización  de  un  sis‐
controlado.  tema? 
 Bridge: Cada máquina virtual tendrá un identificador IP in‐ 3. Enumera  las  ventajas  que  aporta  la  virtualización  de  siste‐
dependiente; habrá que configurar cada una de ellas como  mas. 
si fuera una máquina nueva.  4. ¿Qué tipos de virtualización hemos visto en clase? Describe 
 NAT:  Las  máquinas  virtuales  utilizan  la  misma  dirección  IP  sus diferencias. 
que  la  máquina  física.  El  guest  se  conecta  a  Internet  por  5. Enumera un par de fabricantes de productos de licencia li‐
medio del host.  bre  y  propietaria  destinados  a  la  virtualización  y  comenta 
  algún aspecto de ellos. 
6. ¿Qué es un snapshot? ¿Qué ventajas nos aporta? 
7. ¿Sería posible crear un snapshot sobre una máquina física? 
8. Define  y  explica  brevemente  el  concepto  de  cloud  compu‐
ting y enumera las ventajas que aporta. 
 
 

17 
 
 

Tema Cuatro 
 
 

 
Introducción a Unix 
 
INTRODUCCIÓN  CARACTERÍSTICAS 
   
En 1969 Bell Labs comienza a desarrollar el primer sistema opera‐ Unix es multiusuario. Tradicionalmente (en sus comienzos) cada 
tivo de tiempo compartido, el proyecto MULTICS. Los requerimientos de  uno de los usuarios manejaba su sistema a través de una consola (una 
una potente máquina (GE‐645) obligan a abandonarlo.  televisión con teclado), no a través de un ordenador. Dicha consola se 
Thompson y Ritchie comienzan a escribir un nuevo sistema para  conectaba  con  el  ordenador  a  través  de  un  bus  independiente.  Para 
la  PDP‐7;  una  máquina  mucho  más  barata.  En  1970  aparecen  las  acceder, cada usuario se valida con su identificador (login) y contrase‐
primeras  versiones  escritas  en  lenguaje  ensamblador  de  la  PDP‐7,  ña. Si es correcta, Unix arranca un proceso llamado SHELL, que será el 
pero  eran  versiones  poco  portables.  Para  solucionarlo,  Ritchie  desa‐ encargado  de  comunicarse  con  la  consola  (será  el  portal  entre  el 
rrolla el lenguaje de alto nivel C, en 1973, reescribiendo todo el núcleo  kernel  y  la  consola,  y  viceversa).  El  usuario  tiene  como  interfaz  la 
de Unix en C. Teniendo un compilador de C para cada arquitectura,  SHELL. En este modelo sólo había un ordenador por infraestructura y 
Unix es portable sin tocar una línea.  las consolas ni almacenaban ni computaban nada. 
Unix fue desarrollado por Ken Thompson y Dennis Ritchie de los  Cada  usuario  trabaja  dentro  un  espacio  de  almacenamiento 
Bell  Labs,  para  el  computador  PDP‐7  de  DEC.  Fue  el  primer  sistema  personal (un directorio propio, dentro del árbol de ficheros del siste‐
operativo multiusuario, reescrito en un lenguaje de alto nivel y porta‐ ma, al que acceden los usuarios tras validar su nombre y contraseña). 
ble.  A través de comandos escritos, el usuario se comunica con el sistema. 
La publicación del código de Unix y del compilador de C se di‐ Dichos comandos son interpretados por la SHELL, que será la encarga‐
fundió  rápidamente  entre  los  ámbitos  académicos.  Debido  a  esto  da de realizar las llamadas al sistema oportunas. Por tanto, la SHELL se 
aparecieron los primeros clones (como BSD, en 1975), y el código se  ejecuta  en  espacio  usuario  (si  estuviera  en  el  kernel  no  tendría  que 
amplió  y  mejoró  (en  el  futuro  aparecerían  problemas  legales).  Entre  hacerlas, puesto que sería parte del sistema). 
las familias de Unix se encuentran:  En Unix, el usuario ROOT es el administrador, posee el control 
  total de la máquina, sobre él no se controla ningún permiso, simple‐
 System V. Es la considerada heredera de la versión más pu‐ mente se le deja hacer. 
ra de Bell Labs.  En Unix, los usuarios se agrupan y se etiquetan en GRUPOS; un 
 BSD. Creada a partir del licenciamiento a Berkeley. Reescri‐ usuario puede pertenecer a varios grupos. Todos los ficheros y direc‐
ta  para  evitar  problemas  legales.  Primera  pila  de  torios tienen un único propietario y pertenecen a un único grupo. Los 
protocolos TCP/IP de Internet.  grupos  permiten  que  varios  usuarios  trabajen  de  forma  cooperativa 
 AIX. Surge del licenciamiento a IBM.  con ficheros y directorios. 
 GNU/Linux.  El  movimiento  GNU  ha  intentado  reescribir  su  Además, Unix es multiproceso y de tiempo compartido (ver te‐
propio Unix para licenciarlo con su licencia GPL.  ma  2,  “Clasificación  de  sistemas  operativos”).  Es  portable  gracias  a 
  POSIX y al compilador de C (como se añadió en la introducción). Una 
Para llamar a algo Unix tienes que pagar, ya que es una marca  característica importante más de Unix es que todo son ficheros. 
licencia  del  consorcio  The  Open  Group.  Por  ejemplo,  Linux,  FreeBSD,   
NetBSD, no son Unix. La compatibilidad real entre todos ellos la marca  ELEMENTOS DEL SISTEMA 
el  estándar  POSIX  (es  un  estándar,  escrito  en  C,  sobre  la  interfaz  de   
llamadas al sistema). Si estandarizas esto, lo haces con todas las libre‐ LOADER (CARGADOR) 
rías  de  llamadas  al  sistema,  mejorando  la  portabilidad.  Los   
programadores ya saben lo que van a encontrarse cuando el sistema  Es un pequeño programa encargado de cargar el kernel (es de‐
operativo es POSIX. Unix y MAC OS lo son.  cir, pasarlo del disco a la memoria). 
  Cuando  la  CPU  arranca,  en  el  principio  de  la  SECUENCIA  DE 
  ARRANQUE,  siempre  tiene  que  leer  una  dirección  de  memoria.  Esta 
  dirección  (que suele estar  fijada  por los diseñadores  del  microproce‐

18 
 
Implantación de Sistemas Operativos 
 
sador)  albergará  la  instrucción del  primer  programa que  ejecutará  la  área  de  usuario.  Los  inicia  el  kernel  y  se  están  ejecutando  todo  el 
máquina.  Pero  ¿cómo  metemos  ese  primer  programa  en  esa  direc‐ tiempo (independientemente de los usuarios), comenzando sus tareas 
ción? Una opción (lo normal) es hacer que la CPU comience por leer  cuando  la  máquina  arranca.  Aunque  no  tienen  por  qué  ser  iniciados 
una parte del mapa de memoria que suele estar alojado en una me‐ por  ningún  usuario  en  particular,  también  pueden  ser  lanzados  por 
moria no volátil (por ejemplo, una ROM).   ellos. Los objetivos que cumplen son diversos, desde validar usuarios 
  entrantes, chequear discos, registrar eventos, etc. 
Ejemplo. Los diseñadores de una CPU nos indican que su proce‐ Estos procesos equivalen a los servicios de Windows. 
sador empieza a leer por la dirección 0000. Nosotros podemos  Los demonios no pueden ser matados salvo por el usuario que 
pinchar, desde la dirección 0000 a la 1024 un módulo de memo‐ los creó. Ya que todos los procesos tienen que haber sido lanzados por 
ria ROM. En esa memoria podemos poner las instrucciones de  un  usuario  (como  se  verá  en  “Usuarios  y  Grupos”,  página  26),  serán 
nuestro programa inicial (que los IBM‐PC suelen llamar BIOS) y  estos  usuarios  sin  acceso  de  shell  los  que  podrán  acabar  con  sus 
la  CPU  lo  ejecutará  siempre  al  inicio.  Apaguemos  o  no  el  procesos asociados. Además, root podría matar cualquier proceso, ya 
computador sabemos que el programa inicial estará preparado  que tal y como se ha indicado antes, cuando root hace algo, se le deja 
en esa memoria cuando la CPU vaya a leerlo allí.  hacer. 
   
Ese  primer  programa  (la  BIOS),  podría  cargar  el  kernel  del  sis‐ SHELL 
tema,  pero  en  la  actualidad  los  fabricantes  de  sistemas  operativos   
prefieren que ese primer programa cargue el programa CARGADOR.  Es la interfaz de usuario entre el kernel y los usuarios, llamada 
La BIOS se puede configurar, asignando una lista de prioridades  INTÉRPRETE de comandos. Cada shell controla una consola, y se eje‐
donde buscar el programa cargador; una vez lo ha encontrado, la CPU  cuta en la máquina Unix, no en las consolas. Cuando un usuario valida 
lo  ejecuta,  y  una  vez  en  marcha,  encuentra  al  kernel  (de  manera  su  nombre  y  contraseña  contra  un  demonio  a  través  de  su  consola 
sencilla, ya que cada cargador es programado por los creadores de su  hardware,  el  sistema  carga  una  shell,  por  lo  que  dicha  shell  será  el 
propio sistema operativo). Después lo carga en memoria y le dice a la  único vínculo entre el usuario y la máquina durante toda la sesión. 
CPU  dónde  empezar  a  leer  la  dirección  de  memoria  del  kernel.  Una  Esto  se  suele  representar  en  forma  de  círculos  concéntricos, 
vez cumplida su función desaparece de la memoria. En ese momento el  donde el núcleo está ocupado por el kernel de Unix y rodeándole está 
kernel  se  ejecuta  de  forma  directa  (sin  interrupciones  ni  llamadas  al  la shell. El círculo más exterior estaría ocupado por los usuarios. Este 
sistema),  cargando  todas  las  estructuras  que  va  a  necesitar  el  sistema  diagrama  representa  la  imposibilidad  de  lo  usuarios  para  llegar  al 
operativo (tablas de procesos, planificador, etc.). Es la única fase donde  kernel sin utilizar para ello la shell. 
se ejecuta el kernel per se.    
Todo esto es válido para casi cualquier sistema, no sólo para Unix.  SECUENCIA DE ARRANQUE DEL SISTEMA 
   
KERNEL   Arranca  la  CPU  y  lee  las  primeras  direcciones  de  memoria 
  asignadas por el diseñador. Allí está alojada la BIOS. 
Es un archivo ejecutable que recoge la mayor parte del código 
 La BIOS busca al cargador y lo carga en memoria. 
del  sistema.  Lo  que  no  forma  parte  del  mismo  son  librerías  (DLL  – 
 El cargador carga al kernel. 
Dinamic Link Library). Resulta de la compilación de todos los elemen‐
 El kernel comienza a ejecutarse y carga todo lo que es nece‐
tos fundamentales estudiados en el Tema 2. 
sario  para  el  sistema,  incluidos  los  demonios,  siendo  el 
Cuando arranca la CPU y la BIOS ejecuta el cargador, éste busca 
planificador la última instrucción de la rutina de arranque 
el archivo del kernel para ejecutarlo. Será el primer código que ejecu‐
del sistema. Cuando salta el planificador decide el siguien‐
te la CPU para poner en orden el sistema antes de que pueda recibir a 
te  proceso  a  ejecutar  (realizando  por  tanto  el  primer 
los demás procesos. 
cambio  de  contexto)  y  termina  la  secuencia  de  arranque 
Se pueden conseguir kernel más pequeños pasando parte de su 
(se deja de ejecutar el kernel). 
código a librerías externas que se enlacen dinámicamente, por ejem‐
 
plo las librerías TCP. De esta forma, el primer programa que requiera 
esa librería tendrá que esperar hasta que se carguen en memoria. Con   
esto,  lógicamente,  conseguiremos  que  el  kernel  consuma  menos   La CPU comienza a ejecutar a los demonios. 
memoria y se realice, por tanto, un arranque más rápido.   La máquina queda a la espera de conexiones de usuarios. 
   
DEMONIOS  FICHEROS  
   
Son procesos NO INTERACTIVOS (es decir, no reciben ningún in‐ Como se ha dicho antes, en Unix son todo ficheros, lo que signi‐
put de los usuarios, no interactúan con ninguna shell) ejecutados en el  fica que recibirán esta denominación tanto archivos como directorios. 

19 
 
Implantación de Sistemas Operativos 
 
Estos  ficheros  se  organizan  en  un  único  árbol  de  ficheros,  aunque   
tengamos  muchas  particiones.  En  Windows,  al  contrario,  por  cada  Ejemplo. Imaginemos que en nuestra raíz tenemos un directo‐
volumen  de  almacenaje  (partición,  unidad  de  red,  etc.)  tenemos  un  rio “Dir1”, y que dentro del mismo existen otros tres directorios 
árbol de ficheros distinto (a:\, c:\, d:\...).  más: “A”, “B” y “C”. Si dentro del directorio “A” existe el fichero 
En Unix, los ficheros no tienen extensión, es decir, que un fiche‐ “F1”, y nos encontramos en ese directorio, “A”, la ruta que de‐
ro  sea  “archivo.txt”  no  es  indicativo  para  el  sistema,  sino  para  beré  indicarle  a  shell  para  que  borre  “F1”,  será  “/Dir1/A/F1” 
nosotros (nos orienta de que es un archivo de texto). Además, aque‐ (ruta absoluta) o “A/F1” (ruta relativa). 
llos archivos que comienzan por “.”, permanecerán ocultos.   
Todos los ficheros de Unix tienen un único propietario y perte‐ Metadatos. 
necen a un único grupo.   
Dentro del árbol de ficheros nos podemos encontrar:   Los metadatos ya se definieron en el tema 2 “Sistema de Fiche‐
  ros”.  Almacenan  información  sobre  los  ficheros,  por  lo  que  son 
 Ficheros de datos. Binarios o planos.  similares  en  ficheros  y  directorios  (propietario,  grupo  del  fichero, 
 Directorios:  Cuando  creamos  un  directorio  tenemos  siem‐ tamaño, permisos, fecha y hora de modificación). 
pre  dos  entradas,  la  entrada  “.”  (apunta  al  directorio   
actual) y la “..” (apunta siempre al directorio padre).  Permisos 
 Ficheros  especiales:  Son  la  interfaz  entre  los  procesos,  los   
dispositivos y el kernel, Unix los utiliza para acceder a to‐ Unix no tiene listas de control de acceso, no crea listas de usua‐
dos los recursos del sistema y poder manipularlos. No son  rios (CL) con las operaciones que puede realizar, sino que permite tres 
bytes almacenados en  un disco, sino  portales de  comuni‐ operaciones para cada fichero y directorio: 
cación con los drivers del sistema, a los que accederemos   
cuando  leamos  o  escribamos  en  este  tipo  de  ficheros.  Es   Leer (Read): Recuperar bytes de un fichero. 
decir,  utilizando  las  operaciones  básicas  de  los  ficheros   Escribir (Write): Modificarlo. 
(leer y escribir) podremos manipular cualquier dispositivo,   Ejecutar (eXecute): Cargar su contenido en memoria y eje‐
consiguiendo  HOMOGENEIZAR  todo  el  sistema  (con  dos  cutarlo,  o  cargar  su  intérprete  en  memoria  y  que  lo 
llamadas al sistema se hace todo).  ejecute éste. 
Algunos ficheros de este tipo son “/dev/random”   
(sobre el que no podremos escribir, y si lo leemos, el sis‐ Además, Unix diferencia tres roles de usuarios respecto a fiche‐
tema  nos  devolverá  una  serie  de  bytes  aleatorios,  ros y directorios: 
ofrecidos por un driver, ya que el tamaño del fichero es de   
0 bytes); “/dev/null” (del que no podremos leer, pero so‐  Propietario (User owner). 
bre el que podremos escribir sin que su tamaño aumente;   Miembro del grupo del fichero (Group members). 
el  sistema  ignorará  todo  lo  que  se  escriba  en  él,  sin  que   Todos los demás (the Other). 
vaya a parar a ningún sitio).   
  Para cada fichero se guarda una ristra de 9 bits que muestra los 
Rutas.  permisos que tiene; 3 para cada uno de los roles y de esos tres, uno 
  para cada una de las operaciones. 
Todos los ficheros se localizan en una ruta (path). La RUTA es el   
conjunto de nombres que habrá que “cruzar” en el árbol de ficheros  Montajes. 
para llegar a cualquiera destino. Cada uno de esos nombres se separa   
por el símbolo slash (“/”). En una ruta, todos los nombres correspon‐ Permiten  ampliar  nuestro  árbol  de  ficheros,  y  por  tanto  el  ES‐
den a directorios, menos el último.  PACIO  DE  NOMBRES  (que  es  el  conjunto  de  nombres  que  podemos 
Hay  dos  formas  de  establecer  la  ubicación  de  un  fichero,  me‐ manejar en el árbol). 
diante:  Si agregamos una unidad de disco ya formateada con su propio 
  árbol de ficheros, tendremos que unir ese árbol a nuestro árbol gene‐
 Ruta Relativa: La ruta comienza por un nombre y no por la  ral. En Unix, a esto (es decir, montar dispositivos para visualizarlos en 
raíz (/). El sistema lo encuentra utilizando como referencia  nuestro  propio  árbol)  se  le  llama  MONTAJE.  Con  ello  conseguimos 
la ubicación donde se ubica el usuario. Cuando un usuario  ampliar  el  espacio  de  nombres  incluyendo  la  información  de  otros 
tiene asignada una shell, suele apuntar a un directorio del  dispositivos. 
árbol  (que  suele  ser  el  directorio  “home”,  es  decir,  el  Cualquier  dispositivo  que  tenga  capacidad  de  almacenamiento 
“working directory” del usuario).  tiene que ser montado. 
 Ruta Absoluta: La ruta comienza por el directorio raíz (/). 

20 
 
Implantación de Sistemas Operativos 
 
Si no lo montáramos tendríamos que manejar el dispositivo con  Software Libre y GPL. 
“leer/escribir”, trabajando con la información que está almacenada en   
crudo (algo que hacen los gestores de disco).  Aunque todo el software GPL es libre, no todo el software libre 
  es  GPL.  Esto  es porque  existen  muchas  licencias  libres.  Es  la  GNU,  a 
LINUX, UN UNIX LIBRE  través de la FSF (Free Software Fundation), la que decide si una licen‐
  cia es libre o no. Para ello, tendrá que cumplir las cuatro libertades.  
¿QUÉ ES LINUX?  Hay  que  tener  en  cuenta  que  estas  libertades  no  dicen  nada 
  acerca de la distribución. Referido a esto existen diversas propuestas 
Linux bien puede ser un kernel de un sistema operativo o un sis‐ más y menos robustas (MIT, BSD, Apache, etc.). 
tema operativo completo que utiliza su propio kernel. Sea lo que sea,   
es software libre y utiliza la licencia GPL.  HISTORIA DE LINUX 
   
Software Libre.  En 1980, la GNU y Stallman comienzan a crear un Unix comple‐
  tamente  libre.  En  su  versión,  su  kernel  se  denominaba  HURD,  y 
El  concepto  de  software  libre  fue  creado  por  el  movimiento  desarrollaron para él un gran número de aplicaciones, como un editor 
GNU  (GNU´s  Not  Unix)  que  fue  fundado  por  el  hacker  Richard  Stall‐ de texto llamado Emacs (Editor MACroS), gcc… 
man. Su manifiesto puede leerse en la siguiente dirección.  En 1990, Linus Benedict Torvalds (ingeniero de software finlan‐
  dés) empieza a modificar Minix (un Unix de juguete) y lo compila en 
http://www.gnu.org/gnu/manifesto.es.html  un Intel 386. 
  En 1991, Linus libera la primera versión de Linux consistente en 
Es una manera de entender el software; si la información tiene  un kernel que ha recibido aportaciones de otros y que está licenciado 
que ser libre y el software es información, entonces el software debe  con GPL. Linus utiliza para esta versión el compilador y otros elemen‐
ser libre. Para ello, el código fuente debe ser público y libre, es decir el  tos GNU. Nace una polémica interna: ¿Linux o GNU/Linux? 
código podrá ser:  Actualmente  HURD  está  abandonado.  Linux  es  el  sistema  “ofi‐
  cial” de la comunidad libre. 
 Modificado.   
Linux y Unix. 
 Redistribuido. 
 
 Ejecutado. 
Linux deriva directamente de los ancestros de Unix, en concreto 
 
de  Minix.  No  es  POSIX,  aunque  cumple  su  estándar  en  su  totalidad. 
Según  GNU,  el  software  libre  será  aquel  que  permite  las  si‐
Por ello, muchos no le consideran un Unix puro, o totalmente Unix. 
guientes cuatro libertades: 
 
 
Avance y Desarrollo. 
 Libertad 0. Libertad de ejecución para cualquier propósito. 
 
 Libertad 1. Libertad para estudiar su funcionamiento. 
El avance de Linux es complejo. No existe un organismo centra‐
 Libertad 2. Libertad para distribuir copias. 
lizador  ni  coordinador.  El  kernel  está  gestionado  y  se  actualiza  por 
 Libertad 3. Libertad para mejorarlo y adaptarlo. 
Torvalds  y  su  equipo.  El  resto  de  usuarios  coge  el  kernel  y  le  añade 
 
aplicaciones externas a su gusto, creando una distribución. 
Algunos  ejemplos  de  software  libre  son:  sistemas  operativos 
Una distribución está formada por: 
como  Linux,  FreeBSD,  OpenSolaris,  etc.;  compiladores  e  intérpretes 
 
como Gcc, Python, Java, etc.; otras aplicaciones como Firefox, Emule, 
Kernel + Aplicaciones 
Bittorrent, etc. 
 
 
donde el kernel puede ser oficial o estar modificado. Cada distribución 
Licencias GPL (General Public License). 
avanza de forma independiente y publica sus propias actualizaciones 
 
en  sus  propios  servidores.  Muchas  distribuciones  comparten  aplica‐
Es  una  licencia  propia  de  GNU  cuyo  objetivo  fundamental  es 
ciones.  En  las  distribuciones  no  existe  ningún  elemento 
proteger al propio software libre. Implica que si modificas código GPL 
estandarizador, y por tanto pueden existir cambios de librerías, entor‐
y lo quieres distribuir, debes hacerlo también bajo licencia GPL. 
nos, plataformas… lo que hace que todo está muy desorganizado. 
 
Detrás de las distribuciones existen diferentes tipos de colectivos: 
 
 
 
 Empresas: Ubuntu, Suse. 
 
 Gobiernos: Max, GuadaLinex. 

21 
 
Implantación de Sistemas Operativos 
 
 Comunidades de Usuarios: Gentoo, Debian.  2. ¿Quién es el usuario root y qué diferencias existen entre él 
  y el resto de usuarios? 
El único denominador común a todo esto es la licencia GPL.  3. Explica el proceso de arranque de Unix. 
Los repositorios oficiales del kernel están en “kernel.org”. Exis‐ 4. ¿Qué funciones tiene la shell? 
ten miles de repositorios no oficiales ya que cada uno puede hacer las  5. Describe  las  características  generales  del  sistema  de  fiche‐
modificaciones  que  quiera  al  kernel  (por  ejemplo  Android).  Incluso  ros de Unix. 
aquellos  que  quieran  incluir  sus  modificaciones  en  el  kernel  oficial  6. ¿Qué es un montaje y qué implica realizarlo? 
pueden  enviarlas  a  la  lista  de  correo  oficial,  donde  los  “committers”  7. Describe el modelo de permisos de Unix. 
decidirán si incluirlas o no en el kernel oficial.  8. Enumera  cuáles  son  los  metadatos  estudiados  que  utiliza 
  Unix. 
PREGUNTAS.  9. ¿Qué es un fichero especial o de dispositivo? 
   
1. Describe brevemente las características generales de Unix y 
su modelo de utilización. 
 

22 
 
 

Tema Cinco 
 
 

Linux I 
 
Administración y Uso Básico 
 
ARQUITECTURA  estándar,  todavía  está  presente  en  todos  los  sistemas  Li‐
  nux que sean compatibles con los programas UNIX. 
CARACTERÍSTICAS   C‐Shell (csh). La sintaxis de esta shell es similar a la que uti‐
  liza el lenguaje de programación C.  
Linux es un sistema operativo multiproceso y multiusuario. En‐  Korn Shell (ksh). Es un superconjunto de sh, complicada pa‐
tre los usuarios distingue a root (“raíz”) y a todos los demás. Además,  ra principiantes. 
está conformado en su totalidad por ficheros.   Bourne Again SHell (bash). Es la shell estándar de GNU, in‐
En su organización sólo existe un árbol de ficheros de estructura  tuitiva  y  flexible.  En  Linux  es  la  shell  estándar  para  casi 
horizontal, donde estos se agrupan en directorios temáticos. En Linux,  todos  los  usuarios.  Es  una  sh  con  añadidos  y  conexiones, 
dichos ficheros no tienen extensión, pero cada uno tiene un nombre y  por lo que sh será siempre compatible con bash, pero no 
una ruta (bien sea absoluta o relativa). Por último, todos los ficheros,  siempre lo será a la inversa. Bash es una shell compatible 
y  por  tanto  todo  lo  que  forma  Linux,  tiene  tres  permisos:  lectura,  con sh que incorpora herramientas de ksh y csh y sigue el 
escritura y ejecución.  estándar POSIX. 
   
USO DEL SISTEMA  El archivo “/etc/shells” nos podrá dar una idea de las she‐
  lls de un sistema Linux. 
Linux tiene ciertas reminiscencias del sistema Unix. En él, cada   
usuario manejaba una consola sobre la que se visualizaba la shell, de  ~$ cat /etc/shells
/bin/bash
forma  que  todos  los  usuarios  se  conectaban  a  un  solo  sistema  Unix,  /bin/sh
introduciendo su usuario y contraseña. Hoy día, nuestra CPU es nues‐ /bin/tcsh
tro propio Unix, sobre el que podemos arrancar múltiples shells.  /bin/csh
   
SHELL  Para  cambiar  de  una  shell  a  otra  sólo  hay  que  introducir  el 
nombre  de  la  nueva  shell  en  la  terminal.  El  sistema  encontrará  la 
 
orden introducida utilizando la variable PATH, y puesto que una shell 
La  shell  es  un  recubrimiento  del  kernel  del  sistema.  Funciona 
es un archivo ejecutable (un programa), la shell actual podrá activarla. 
como  una  interfaz  entre  el  usuario  y  el  kernel;  sin  ella,  el  usuario 
Una vez introducido el comando, lo normal será que el prompt mues‐
tendría que manipular las librerías de llamadas al sistema, por lo que 
tre la apariencia vinculada a dicha shell. 
su existencia permite que el usuario se abstraiga, permitiendo que la 
 
shell haga las llamadas al sistema por él al interpretar nuestras accio‐
Arranque de la Shell. 
nes.  Además  de  esto,  la  principal  tarea  de  la  shell  será  proporcionar 
 
un entorno de usuario. 
Cada vez que un usuario valida su acceso, se arranca una shell 
 
para él. Durante la sesión podremos arrancar más de una; si ejecuto 
Tipos de Shell. 
“bash”, se arrancará otra shell, quedando la anterior bloqueada hasta 
 
que la nueva no finalice su funcionamiento. 
Hay muchas shell: 
Al arrancar la shell, lee sus parámetros de configuración de un 
 
fichero  llamado  “.bash_profile”  (ten  en  cuenta  que  el  primer  punto 
 Shell Bourne (sh). Es la shell original aún utilizada en siste‐
indica que el fichero está oculto) en muchas distribuciones y “.bashrc” 
mas  UNIX  y  derivados.  Es  la  shell  básica,  un  pequeño 
en Ubuntu. Existe un fichero de este tipo por usuario, donde se guar‐
programa con pocas características. Aunque no es la shell 

23 
 
Implantación de Sistemas Operativos 
 
dan las preferencias de sus sesiones. Si no se creara este fichero, al ser  Expresiones Regulares. 
bash un proceso, desaparecería al apagar el sistema.   
Cuando validamos el nombre de usuario y la contraseña, apare‐ Le dan flexibilidad a la invocación de comandos. Los caracteres 
cen una serie de líneas en pantalla. Estas líneas están escritas por el  comodines  se  utilizan  para  que  la  shell  los  sustituya  por  otra  expre‐
kernel  y  por  el  proceso  INIT,  mostrando un  análisis  del  arranque.  En  sión.  De  forma  que  si  utilizamos  el  asterisco  (*),  la  shell  utilizará 
las líneas finales aparecerá “tty1”, que nos muestra que estamos en la  cualquier secuencia de caracteres, y si ponemos el signo de interroga‐
consola  número  1,  siguiendo  el  esquema  de  funcionamiento  de  los  ción (?), los tendrá en cuenta de forma individual. 
años 70.   
  Redirecciones de Flujo. 
Uso de la Shell.   
  Los programas en Linux tienen tres flujos de datos, que se iden‐
Una vez arrancada, el usuario la manipulará a través de coman‐ tifican con los números 0, 1 y 2: 
dos  que  ésta  entienda.  Una  vez  validado  el  nombre  de  usuario,  el   
sistema mostrará el PROMPT, lo que significa que la shell está prepa‐  Entrada  estándar  (por  defecto  el  teclado),  cuyo  identifica‐
rada  para  recibir  un  comando.  El  prompt  en  Linux  suele  tener  la  dor es el 0. 
siguiente forma (termina con el símbolo “$”):   Salida estándar (por defecto el monitor), cuyo identificador 
  es el 1. 
usuario@maquina:/ruta$  Salida  estándar  de  errores  (por  defecto  el  monitor),  cuyo 
(alumno@mvirtual:~$)  identificador es el 2. 
   
Los comandos se introducen en Linux siguiendo el siguiente es‐ Cuando la shell le pide al kernel que ejecute un proceso, infor‐
quema:  mará al kernel y al proceso sobre el flujo de dicho proceso (es decir, 
  sobre  su entrada/salida).  Por  defecto  tomará  los  datos  del  teclado y 
~$ comando [-modificadores] [argumentos]
mostrará la salida por pantalla, pero podría ser también algo como “la 
(con espacios entre  comandos, modificadores y argumentos) 
entrada la coges de esta tubería y la vuelcas en aquel fichero”. De esta 
 
forma redirigimos el flujo de los datos. 
Ten  en  cuenta  que  puedes  encadenar  comandos,  separando 
 
cada uno de ellos (junto con sus modificadores y sus argumentos) con 
 Si no hay información de ese flujo, el proceso volcará la in‐
un punto y coma (“;”). 
formación  al  monitor  (salida  estándar).  Sin  embargo, 
Cuando le hacemos llegar a la shell el carácter “intro”, conside‐
podemos  pedir que  saque los  datos no  por pantalla  sino, 
ra que la  orden ya ha sido emitida,  interpretándola  y  ejecutándola y 
por  ejemplo,  a  “/dev/null”,  o  redirigirlo  a  un  fichero, 
mostrando  el  prompt  de  nuevo  en  pantalla  una  vez  ha  finalizado. 
almacenando en él la información que de otra forma mos‐
Mientras los procesos arrancan, la shell quedará bloqueada.  
traría en pantalla. 
 
 Igualmente, la salida estándar de error será el monitor. 
Ejemplo.  Cuando  escribo  el  comando  “date”  y  pulso  “intro”, 
 La  entrada  estándar  es  el  teclado,  pero  se  puede cambiar, 
asume que la orden ha sido introducida por completo. La shell 
por ejemplo, la shell podría pedirle que cuente caracteres, 
hace una llamada al sistema para que el kernel arranque el pro‐
pero no del teclado, sino de un fichero. 
ceso  “date”,  etc.  En  ese  momento  la  shell  crea  un  nuevo 
 
proceso. Mientras se ejecuta “date”, la shell quedará en esta‐
En general los programas y comandos no muestran nada si todo 
do bloqueado. Shell y “date” están conectados a través de una 
va bien. 
estructura de sincronización; hasta que “date” no ponga bytes 
Para modificar las entradas y las salidas de los comandos habrá 
en  el  buffer  que  comparte  con  la  shell,  la  shell  no  se  desblo‐
que escribir: 
queará. Una vez desbloqueada, escribirá los datos en pantalla. 
 
El  kernel  retirará  “date”  de  la  memoria  y  la  shell  volverá  a 
 “>” (para que redireccione la salida). 
mostrar el prompt. 
   “2>” (para que redireccione la salida de error). 
Para  salir  de  la  shell,  habrá  que  escribir  el  comando  “exit”.   “&>” (para que redireccione ambas salidas). 
Ten  en  cuenta  que  la  Shell  distingue  entre  mayúsculas  y  minúsculas   “>>” (para que redireccione la salida; sin truncar, es decir, 
cuando te refieras a los ficheros, así que presta atención.  lo que escribamos lo añadirá en una línea nueva al archivo 
  que ya está creado. Esta opción permite también la nota‐
ción “2>>” ó “&>>”). 
 “<” (para que redireccione la entrada). 

24 
 
Implantación de Sistemas Operativos 
 
  Ten en cuenta que las tuberías están limitadas en capacidad, de 
Ejemplos. Si escribo:  forma que una vez alcanzado ese límite hará que el proceso de salida 
  se bloquee. 
~$ ls /bin > /tmp/salida.txt  
  Variables de Entorno. 
La información de los ficheros que hay contenidos en el directo‐  
rio  “bin”,  se  escribirá  en  el  fichero  “salida.txt”  situado  en  el  Son un conjunto de valores asociados a un nombre que afecta 
directorio “tmp” (todo dentro del directorio “home”).  al modo de funcionar de los procesos y de la shell. Dichos valores se 
  almacenan  dentro  de  bash  y  sólo  serán  visibles  en  la  shell  que  se 
~$ ls /bin > /tmp/salida.std 2> /tmp/salida.err declararon. Es decir, si arranco una segunda shell no tendrá las varia‐
  bles que haya declarado en la shell madre, por lo que para que sean 
Escribirá el contenido de “bin” en “salida.std”, y si  diera error,  globales tendremos que utilizar: 
dicho mensaje se escribiría en el fichero “salida.err”.   
  /# export VARIABLE
~$ cat < archive > /tmp/archivo.copia  
  y así todas las shell hijas tendrán incluidas dichas variables. 
en vez de mostrar el contenido del archivo en pantalla, lo mete‐ Las variables aportan información a la shell. Dicha información 
rá en el fichero “archivo.copia”.  no  se  perderá  al  cerrar  la  shell  porque  se  almacenan  en  un  fichero 
  estático de disco, y podrá afectar a los programas que estemos ejecu‐
~$ sort < /tmp/nombres.txt
tando. Las variables son consultadas por bash durante su ejecución, es 
 
decir,  si  introduzco  la  variable  “colors=1”,  cuando  bash  consulta  el 
Ordena las líneas del fichero “nombres.txt”. Sort puede ordenar 
espacio  de  variables  y  se  encuentra  con  esto,  hará  que  los  procesos 
varios archivos a la vez. Por ejemplo, si queremos que los archi‐
impriman los caracteres en color. Por poner otro ejemplo, si al arran‐
vos “nombres1” y “nombres2” queden ordenados y queden así 
car Firefox  necesita  guardar  cierto archivo  temporal,  le  preguntará  a 
en un archivo nuevo llamado “nombres”, escribimos: 
bash si tiene una variable que indique la ruta donde podría guardarlo. 
 
Hoy  día  casi  todos  los  procesos  guardan  sus  propios  ficheros,  pero 
~$ sort < nombres1 nombres2 > nombres
  antiguamente  funcionaban  en  base  a  las  variables  que  bash  pudiera 
Tuberías.  contener. 
  Como se indicó antes, hay un fichero que bash leerá y ejecutará 
Conectan la entrada de un proceso con la salida de otro, consi‐ antes  de  dar  el  primer  prompt  (“.bashrc”).  En  dicho  fichero  podrás 
guiendo  que  se  comuniquen  datos  entre  sí.  Ambos  procesos  se  meter  las  variables  de  entorno,  de  forma  que  aunque  las  pierdas 
arrancan a la vez, pero mientras no haya datos en la tubería, el lector  cuando  cierres  el  proceso,  las  volverás  a  cargar  al  inicio,  por  ello  se 
se  bloquea.  Es  decir,  el  comando  que  escribamos  a  la  derecha  de  la  dice que son dinámicas. 
tubería tomará como entrada la salida del comando de la izquierda.  Las variables se declaran de la siguiente forma: 
   
~$ VARIABLE=valor
Ejemplo. Si escribo: 
 
 
Donde  VARIABLE  puede  tomar  la  forma  que  quieras,  aunque 
~$ cat /tmp/nombres.txt | sort
  por convenio suele ir siempre en mayúsculas. Además, bash es sensi‐
De  esta  forma,  hacemos  que  el  contenido  de  “nombres.txt”  ble a las mayúsculas y minúsculas. El valor es alfanumérico. 
aparezca en pantalla, y como lo hemos conectado con una tu‐ Lo que declares cuando escribes una variable se queda dentro 
bería  a  sort,  hará  que  el  contenido  aparezca  ordenado  de bash. 
alfabéticamente por filas.  Para recuperar el valor de una variable puedo escribir el nom‐
  bre  de  la  variable  precedida  del  símbolo  $.  Por  ejemplo,  si  hago  las 
~$ cat /tmp/nombres.txt | head siguientes declaraciones: 
   
Aquí lo que nos mostrará serán las primeras diez líneas del ar‐ ~$ VAR=F1
chivo “nombres.txt” en pantalla.  ~$ cat F1 (será lo mismo que si pongo: cat $VAR). 
Se  pueden  utilizar  varias  tuberías  en  la  misma  invocación  y  se   
pueden combinar con redirecciones.  Y si pongo: 
   
~$ VAR=ls
~$ $VAR (será lo mismo que ejecutar “ls”) 

25 
 
Implantación de Sistemas Operativos 
 
  I‐nodo. 
En bash puedes meter lo que quieras: rutas, comandos, etc. Ten   
en cuenta que  para  modificar  cualquier  variable de  entorno  siempre  Los i‐nodos hacen referencia a una estructura de datos, una es‐
tendremos permisos porque será nuestra shell.  pecie  de  ficha  con  diferentes  campos  (por  ejemplo,  el  bloque  de 
  control, los metadatos del fichero…). El inodo almacena los metadatos 
Variable PATH.  de cada fichero existiendo un inodo por cada directorio. Guardan una 
  lista con la localización de los bloques de disco donde está guardado 
Esta  variable  es  muy  importante.  En  ella  se  guardan  las  rutas  cada  fichero.  Estos  bloques  se  gestionan  en  grupos,  reduciendo  la 
donde se podrán encontrar los ficheros binarios (ejecutables). Utilizar‐ fragmentación de los ficheros.  
la  nos  evita  tener  que  escribir  la  ruta  absoluta  de  cada  comando  al  A  través  de  la  ruta  de  los  ficheros  llegamos  a  su  nombre  que 
invocarlo. Las rutas almacenadas están separadas por “:”  tendrá asociado un  número de  inodo; dicho número  estará recogido 
Por  defecto,  PATH  contiene  todas  las  rutas  existentes  para  los  en  la  tabla  de  i‐nodos.  Esta  tabla  se  carga  durante  el  arranque.  La 
archivos  binarios.  Si  modifico  PATH  y  sobrescribo  su  valor,  perdere‐ tabla se almacena en la primera parte del disco y se carga en memoria 
mos  todas  las  rutas  y  será  incapaz  de  ubicar  los  programas  que  (pudiendo cargarse por bloques). 
ejecutemos,  y  por  tanto,  no  podrá  ejecutarlos  a  menos  que  nos  en‐ Cada tabla empareja nombres y números de inodos. Por ejem‐
contremos en su misma ruta.  plo, si en el directorio raíz tuviéramos la siguiente tabla (el inodo de la 
Al  ejecutar  un  programa,  bash  va  probando  las  distintas  rutas  raíz no hay que buscarlo, está en lugar conocido): 
contenidas en PATH hasta dar con la ubicación del mismo. Para meter   
nuevas rutas a PATH, sin eliminar las existentes, habrá que escribir:  Directorios  i‐nodo 
  . 1 
~$ PATH=$PATH:/nueva/ruta
  .. 1 
Ten en cuenta que al introducir el símbolo $ antes de la variable  bin 4 
estamos recuperando su valor (tal y como se dijo más arriba). El orden  dev 7 
en el que introduzcas las variables a PATH será respetado por bash. Si 
 
por ejemplo pongo: 
En esta tabla los directorios “.” y “..” apuntan a la raíz, por lo 
 
que comparten el mismo inodo. Si quiero leer “/bin/ls”, voy a raíz 
~$ PATH=.:$PATH
y “/bin” está en el inodo 4. Voy a la tabla de inodos y en el inodo 4 
 
están los metadatos de “/bin”, donde puedo leer que se encuentra 
Haré que siempre que vaya a arrancar un programa, bash bus‐
en el bloque 144. Leo dicho bloque y tengo otra tabla de directorios 
que primero en el directorio en el que me encuentre. 
de “/bin”. 
Has  de  saber  que  aunque  eliminemos  el  valor  por  defecto  de 
 
PATH, bash siempre podrá ejecutar los comandos echo y exit, pues 
son comandos internos.  Ficheros  i‐nodo 
Algunas  variables de  entorno  más son: HOME,  MAIL, PS1, HIS‐ /bin/nano 8 
TORY, CLASSPATH.  /bin/ls 3 
   
SISTEMA DE FICHEROS  Voy al inodo 3 y tenemos todos los metadatos de “/bin/ls” y nos 
  dice que está en el bloque 155 y 156, y allí encontramos el fichero. 
CARACTERÍSTICAS  Existe  una  caché  de  bloques  para  que  no  tenga  que  acceder 
  siempre al disco. 
El sistema de ficheros es parecido al UFS (Unix File System), por   
lo  que  sólo  existe  un  árbol  y  por  tanto  sólo  tiene  una  raíz  (“/”).  El  Diferencias con FAT. 
sistema siempre diferencia entre mayúsculas y minúsculas y los fiche‐  
ros  no  tienen  extensión.  Los  ficheros  y  los  directorios  son  lo  mismo  Dentro de un fichero cada bloque apunta a su siguiente, por lo 
(ambos tienen los mismos metadatos).  que  no  es  necesario  consultar  continuamente  la  tabla  de  inodos. 
El sistema de ficheros está basado en el concepto de i‐nodo.  Además,  reduce  la  fragmentación  debido  a  la  gestión  de  los  inodos 
  (los bloques tienden a almacenarse cercanos y en grupos). 
   
 

26 
 
Implantación de Sistemas Operativos 
 
Tipos de ficheros.   
  Volcaré en el fichero “hola” el contenido “saludo”. Automá‐
Existen diferentes tipos de ficheros que Linux identifica con un  ticamente,  al  estar  “hola”  y  “adios”  enlazados,  “saludo” 
carácter.  también estará en “adios”. 
  Si ahora escribo: 
 Utiliza un “–“ para los ficheros regulares.   
 Una  “d”  para  los  directorios  (Linux  los  muestra  de  color  ~$ rm /tmp/hola
azul).   
 Una “b” o “c” para los dispositivos.  Eliminaré “hola”, pero no ese inodo, pues el sistema de fi‐
 Una “l” para los enlaces SIMBÓLICOS o blandos. En ellos el  cheros  no  libera  un  inodo  hasta  que  no  se  han  eliminado 
contenido  del  bloque  del  fichero  enlace  es  la  ruta  del  fi‐ todos los nombres que tiene referenciado. Para liberar ese 
chero  enlazado,  sería  lo  que  son  los  accesos  directos  en  inodo habrá que escribir también: 
Windows. Se crean con “ln –s” (de symbolic). El fichero   
~$ rm /tmp/adios
enlazado guarda la ruta de acceso del fichero al que está 
 
enlazado, por lo que si borro este fichero, el enlazado no 
Para ver los metadatos del fichero y los nombres que apun‐
valdrá para nada. 
tan a cada inodo se utiliza “ls –l”. 
 
 
La sintaxis será la siguiente. Si tengo un archivo, por ejem‐
Montajes. 
plo  “Notas_Trim2012”,  y  quiero  mostrarlo  con  un  acceso 
 
directo a “n012”, escribo: 
Es  un  mecanismo  que  asocia  el  fichero  de  dispositivo  de  una 
 
unidad  de  almacenamiento  con  un  directorio  del  árbol.  Permite  am‐
~$ ln –s Notas_Trim2012 n012
  pliar  el  espacio  de  nombres,  accediendo  a  ellos  a  través  de  otras 
De esta forma, cuando haga un ls, me aparecerá:  unidades. El montaje es necesario para utilizar las unidades de mane‐
ra transparente. 
lrw-rw-r-- alumno alumno … n012 Para  extraer  físicamente  una  unidad  se  tiene  que  desmontar. 
  Tanto  el  montaje  como  el  desmontaje  eran  tareas  tradicionalmente 
 Un “–“ para los enlaces FÍSICOS o duros. En los enlaces físi‐ de  root.  Dicho  montaje  se  puede  automatizar  durante  el  arranque 
cos un mismo inodo está referenciado desde dos ficheros  utilizando “/etc/fstab”, aunque hoy día lo realizan los gestores de 
diferentes. Los enlaces son la forma de crear accesos a fi‐ escritorio de manera automática. 
cheros  en  diferentes  lugares.  Para  los  enlaces  FÍSICOS  se  Para  realizar  un  montaje  se  suele  acudir  al  directorio  “/dev” 
crea un nombre de ficheros que apunte a un inodo ya re‐ donde se encuentran los ficheros de dispositivos, de forma que para 
ferenciado. Por ejemplo, si “ls” apunta al inodo 5, y creo  montar una unidad de cd rom escribiremos: 
“lista” que hace referencia a ese mismo inodo, tendré un   
fichero con dos nombres (en Linux el número de ficheros  ~$ mount /dev/cdrom1 /mnt/cdrom
que hay es el número de inodos existentes).   
No se pueden crear enlaces físicos a directorios.  Siempre  que  hayamos  creado  antes  el  directorio  “cdrom”  en 
Los  enlaces  se  crean  con  el  comando  “ln”  (link).  Por  “mnt”. Para desmontar la unidad habrá que escribir: 
ejemplo, si tengo el ficheros “/tmp/hola”, y quiero enlazar‐  
lo con un fichero que aún no existe llamado “adios”, para  ~$ umount /dev/cdrom1 /mnt/cdrom
 
que “adios” apunte al mismo inodo que “hola”, escribiré: 
Con lo que la shell nos reponderá: 
 
~$ ln /tmp/hola /tmp/adios  
  umount: /mnt/cdrom: no montado
 
Si ejecutamos “ls –i” nos devolverá el número de inodo 
Organización. 
que corresponde a ese nombre. Y los dos ficheros aparece‐
 
rán con un fondo azul: 
Aunque Linux mantiene su árbol organizado en zonas, son con‐
 
432455 adios 432455 hola venios  no  oficiales,  por  lo  que  esta  organización  puede  ser  alterada 
  por un administrador. Muchas aplicaciones presuponen ciertas cosas 
Siguiendo con el ejemplo anterior, si escribo:  del  sistema  de  ficheros,  por  ejemplo,  que  tiene  una  organización 
  horizontal,  ya  que  cada  aplicación  coloca  sus  ficheros  en  directorios 
~$ echo saludo > /tmp/hola

27 
 
Implantación de Sistemas Operativos 
 
temáticos, no como en Windows, que se instala todo un programa en  usuarios: propietario, del mismo grupo del fichero, y el resto. A root 
un solo directorio.  se le deja hacer, no tiene en cuenta los permisos. 
Los ficheros se organizan en los siguientes directorios:  Los permisos se almacenan en una ristra de 9 bits, y se mues‐
  tran tras el dígito que indica el tipo de fichero al hacer “ls –l”. 
 /bin.  Suele  indicar  la  presencia  de  binarios  (ejecutables),   
compilados  o  scripts  (programas  hechos  en  lenguajes  in‐ Ejemplo. -rwxr--r--(significa que es un fichero regular y su 
terpretados  –no  se  dice  script  de  C  porque  está  propietario  puede  leerlo,  modificarlo  y  ejecutarlo,  y  los  miem‐
compilado).  En  este  directorio  están  los  ejecutables  fun‐ bros del grupo y el resto sólo pueden leerlo. 
damentales: ls, tail, head…    
 /usr/bin. Se suelen meter los ejecutables sin los que Li‐ ¿Qué implicaciones tienen los permisos rwx en un directorio? 
nux seguiría funcionando.   
 /usr.  Suele indicar  información propia  de  usuarios.  Antes   r. Implica poder leer su tabla de directorio, es decir, poder 
estaban las cuentas de usuarios, pero al crearse “/home”,  hacer un “ls”. 
se quedó como un cajón de sastre. No es fundamental.   w. Implica poder modificar su tabla, crear o eliminar un ar‐
 /sbin. Suele indicar binarios destinados al superusuario o  chivo  que  esté  contenido  en  él.  Si  eliminas  un  archivo 
root.  desenlazas su entrada en la tabla del directorio que lo con‐
 /dev  (device).  Suele  recoger  los  ficheros  de  los  dispositi‐ tiene. 
vos, son todo nombres de ficheros que no existen. Es una   x. Implica poder acceder a la información de los inodos, es 
estructura  en  memoria,  cuando  apago,  desaparece  y  se  decir, poder atravesar el directorio. Por ejemplo, si tengo 
crea al arrancar. El nombre de los dispositivos está vacío,  “/dir1/dir2”  y  “/dir2”  no  tiene  permiso  de  ejecución,  no 
ocupa muy poca memoria, son conductos hacia los dispo‐ podré acceder a él. 
sitivos.  Cuando  instalas  un  driver,  éste  crea  un   
“/dev/device” que se escribirá en el kernel, por lo que  Asignación de Permisos. 
siempre se creará al arrancar la máquina.   
 /home. Indica directorios de cuentas de usuario. No es ori‐ Para la modificación de los permisos utilizamos “chmod”. Suele 
ginal, pues tiene más de tres letras.  utilizarse de dos formas: 
 /var. Aquí se recoge la información variable, cualquier co‐  
sa  que  vaya  a  ser  modificada  frecuentemente.  Por   Modo  textual.  Más  sencillo  y  lento.  Utilizaremos  “+”  para 
ejemplo, si instalo una base de datos, su motor estará en  añadir permisos y “‐“ para quitarlos. Además, según que‐
“/bin”,  sus  librerías  en  “/lib”  y  sus  tablas  en  ramos  modificarlos  para  el  propietario,  el  grupo  y  los 
“/var/tablas”. Al ser información variable el directorio  demás,  utilizaremos  “u”,  “g”  y  “o”,  respectivamente.  Por 
estará  cambiando  constantemente,  por  lo  que  antes  ejemplo,  para  añadir  permisos  de  escritura  al  grupo  y  al 
(cuando la velocidad de acceso a los soportes de memoria  resto de usuarios de un archivo escribiremos: 
era una cuestión económicamente a tener en cuenta) po‐  
dríamos  poner  “/var”  en  aquellos  dispositivos  más  ~$ chmod go+w fichero
rápidos.   
 /opt.  Destinado  a  la  instalación  de  programas  de  forma   Modo octal. Menos intuitivo pero más rápido. Modifica los 
vertical. Todo aquello que tenga que ser instalado a mano  9 bits a la vez. La suma de los valores de r(4), w(2) y x (1) 
se meterá aquí. Es específico de Linux.  en cada categoría de usuario cambiará en su conjunto los 
 /etc. Guarda toda la configuración del sistema y las aplica‐ permisos de un archivo. Por ejemplo, si queremos que un 
ciones externas instaladas.  fichero  tenga  todos  los  permisos  para  todos  los  usuarios 
  escribiremos: 
Permisos.   
~$ chmod 777 fichero
 
 
El modelo de permisos es tan sencillo que puede quedar limita‐
Máscara de Permisos. 
do; según qué contexto habrá que dar muchas vueltas para conseguir 
 
lo que se quiera. Normalmente, en sistemas complejos con múltiples 
La máscara de permisos especifica qué permisos tiene un fiche‐
usuarios,  suele  complementarse  con  otros  sistemas  de  control  de 
ro  o  directorio  cuando  es  creado.  Los  permisos  base  de  los  ficheros 
acceso. 
serán de 666 en modo octal y rw-rw-rw- en modo textual, y de 777 
Tanto  para  ficheros  como  para  directorios  hay  tres  tipos  de 
para  los  directorios.  Utilizando  el  comando  “umask”  siempre  resta‐
permisos: Lectura (r), Escritura (w) y Ejecución (x); para tres tipos de 
mos el valor que pongamos al valor de los permisos base: 

28 
 
Implantación de Sistemas Operativos 
 
  /etc/passwd: guarda toda la información de los usuarios 
~$ umask 022 fichero menos  las  contraseñas.  Es  decir,  guarda  el  nombre  de 
  usuario, el UID y GID, los datos y el tipo de shell, separados 
Propietario y Grupo.  por dos puntos (“:”). Esta información nos interesa que sea 
  consultada por cualquier usuario, por lo que sus permisos 
Todos los ficheros deben tener un propietario y un grupo, y sólo  serán 644. Si pongo “finger usuario” nos dirá toda la 
uno de ellos. Podemos cambiar el propietario utilizando:  información sobre él. 
  Este  archivo  guarda  una  línea  por  cada  usuario, 
~$ chown nombre fichero en la que se almacenará la siguiente información: 
 
 
Para cambiar el grupo se utilizará:  usuario:x:1000:1002:datos:/home/usuario:/bin/bash
   
~$ chgrp nombre fichero donde “usuario” es el login del usuario; “x” hace refe‐
 
rencia  a  la  pertenencia  o  no  de  contraseña  (sin  “x”,  no 
Es decir, si al hacer un “ls –l” en nuestro directorio “home” 
tiene contraseña). Para bloquear un usuario, con eliminar 
tenemos una línea que dice: 
esa “x”, el usuario no podrá entrar al sistema. Los números 
 
de  ejemplo  “1000”  y  “1002”  hacen  referencia  al  UID  y 
-rw-r--r--1 alumno alumno 179 2010-03-26 05:31 example
GID del usuario. El UID es un número único que identifica 
 
a cada usuario. El UID para root es 0 (cero). El UID se guar‐
Podremos cambiar el grupo y el propietario a root escribiendo 
da en el inodo y en el bloque de control, el sistema nunca 
(todo en una misma línea): 
utilizará el nombre de un usuario, sino su UID. Si dos per‐
 
/home/alumno# chgrp root example;chown root example sonas  tienen  el  mismo  UID  se  consideran  iguales;  es  una 
  forma chapucera de compartir información. Si se asigna el 
Ahora, al hacer un “ls –l” tendremos:  UID 0 a un usuario, el sistema creerá que es root. 
  El  GID  es  un  número  único  que  identifica  a  tu 
-rw-r--r--1 root root 179 2010-03-26 05:31 example grupo primario. El GRUPO PRIMARIO es el único grupo de 
  usuario  que  se  guarda  dentro  de  “/etc/passwd”;  aun‐
USUARIOS Y GRUPOS  que  el  usuario  pertenezca  a  muchos  grupos,  aquí  sólo  se 
mostrará  el  primario.  Cada  grupo  tiene  su  identificador; 
 
que un grupo sea primario no significa que sea más impor‐
USUARIOS 
tante  para  ese  usuario.  Un  usuario  tendrá  que  tener 
 
siempre al menos un GID. 
Hay  dos  tipos  de  usuarios:  root  y  el  resto  de  usuarios.  Dentro 
del resto de usuarios están aquellos,   /etc/group. Aquí se encuentran todos los grupos existen‐
  tes en el sistema, y por tanto también estarán el resto de 
grupos a los que pertenece un usuario (además del prima‐
 con  acceso  de  shell:  todos  aquellos  usuarios  humanos 
rio)  y  que  no  aparecen  en  “/etc/passwd”;  es  decir, 
(alumnos, profesores, etc.). 
para saber todos los grupos a los que pertenece un usua‐
 y sin acceso de shell: los que no tienen contraseña asignada 
rio habrá que ver dos ficheros: 
y lanzan los procesos del sistema. 
 
 
~$ cat /etc/group
Esta distinción se produce porque todos los procesos de la má‐
 
quina  Linux  tienen  que  estar  asociados  a  un  usuario;  dicha  ~$ cat /etc/passwd
información  se  almacenará  en  el  bloque  de  control.  Habrá  procesos   
que serán lanzados por el sistema sin tener usuarios humanos asocia‐  /etc/shadow:  guarda  las  contraseñas  cifradas  de  cada 
dos.  Por  ejemplo,  el  sistema  ejecuta  los  demonios,  pero  como  todo  usuario. Se cifran a partir de una función HASH. Este tipo 
proceso tiene que estar asociado a un usuario, estos también tienen  de  funciones  son  irreversibles,  es  decir,  si  la  aplico  sobre 
que tener uno. Para ello, estos procesos crean un usuario que no tiene  un nombre me devolverá una cadena de caracteres a par‐
acceso de shell. Este usuario no puede ser root ya que si fuera de esta  tir de la que será imposible volver a obtener el nombre. Es 
forma tendrían los permisos de root y eso sería peligroso.  requisito de una buena función de este tipo que tenga un 
La  información  de  los  usuarios  se  almacena  en  tres  archivos  bajo  índice  de  colisión,  es  decir,  que  sea  poco  probable 
ubicados en la ruta absoluta “/etc”:  que  dos  variables  distintas  produzcan  la  misma  cadena 
  hash. Cuando te registras en la máquina Linux, la máquina 

29 
 
Implantación de Sistemas Operativos 
 
genera  la  cadena hash  a partir de  lo  que has  metido  y  lo  Directorios Home. 
compara  con  la  cadena  que  tiene  almacenada  en   
“/etc/shadow”.  Si  coincide,  te  deja  entrar.  Ten  en  Son  los  directorios  personales  de  los  usuarios.  Normalmente 
cuenta que la cadena hash siempre será de la misma longi‐ todos  los  usuarios  se  crean  bajo  “/home”,  aunque  pueden  crearse 
tud,  independientemente  de  la  variable  que  transforme.  donde se quiera. 
Las funciones hash se utilizan para los antivirus y para ha‐ Hay una manera para dotar a “/home” de contenido automáti‐
cer seguimiento de archivos “conflictivos”.  camente,  por  ejemplo,  que  siempre  que  lo  creemos  aparezca  un 
  fichero  llamado  “bienvenido.txt”.  Dicha  estructura  se  crea  en 
En sistemas de miles de usuarios se suele guardar todo esto en  “/etc/skel”  (de skeleton) y todos  los “/home”  tendrán la misma 
una base de datos externa para poder gestionarlo mejor.  apariencia  que  nuestro  “/skel”.  El  comando  useradd  permite 
  manejar  diferentes  “/skel”,  especificando  cuál  de  ellos  queremos 
Creación de Usuarios.  utilizar al crear un usuario. 
   
El sistema sigue los siguientes pasos al crear un usuario:  Eliminación de un Usuario. 
   
 Crear el directorio del usuario en “/home”.  El  sistema  desandará  todos  los  pasos  efectuados  durante  la 
 Calcula un nuevo UID y GID.  creación de usuarios. Es posible que se quiera guardar la “/home” del 
 Inserta  dicha  información  en  una  nueva  entrada  de  usuario, conservando sus cosas. 
“/etc/passwd”.   
 Crea una nueva contraseña cifrada.  /# userdel –r usuario
 
 Cambia la titularidad del home del usuario al nuevo usuario. 
Utilizando el modificador “r” eliminamos la “/home” del usuario. 
 
 
Nosotros utilizamos la siguiente línea de comandos para que el 
GRUPOS 
sistema realice los tres primeros pasos anteriores: 
 
 
/# useradd usuario –d /home/usuario –m –s /bin/bash Los  grupos  permiten  compartir  información  entre  diferentes 
  usuarios.  Existen  grupos  ya  definidos,  y  se  pueden  crear  más  en 
Utilizamos “-d” para que ubique el directorio home del usuario  “/etc/group” o con el comando groupadd. La información de los 
en “/home/usuario”; utilizamos “-m” para que cree dicho directo‐ grupos se almacena en “/etc/group”. Cuando hacemos: 
rio  (si  es  que  no  existe);  y  “-s”  para  decirle  la  shell  que  utilizará   
(poniendo su ruta absoluta).  ~$ cat /etc/group
 
Ahora  tenemos  que  darle  una  contraseña  al  usuario.  Para  ello 
Nos devuelve una lista con todos los grupos, su GID y los usua‐
utilizamos el comando passwd: 
rios que pertenecen al mismo. Ten en cuenta que al crear un usuario 
 
/# passwd usuario con useradd, siempre aparecerá un grupo que se llame de la misma 
  forma que el usuario y que será su grupo primario. 
La  shell  nos  devolverá  una  línea  para  introducir  el  password  y  Para crear un nuevo grupo se utiliza: 
nos lo volverá hacer escribir. Si queremos que la contraseña caduque   
podremos utilizar la siguiente línea de comandos:  /# groupadd grupo
 
 
/# passwd –x 30 usuario Para eliminarlo: 
   
El comando passwd puede ser invocado por el usuario cuan‐ /# groupdel grupo
 
do quiera, pero sólo será para cambiar su contraseña. Esto es posible 
Para modificar el grupo de un usuario: 
gracias  a  que  este  comando  tiene  el  permiso  especial  “s”.  Cuando 
 
hacemos: 
/# usermod –aG grupo usuario
 
 
/# chmod +s /bin/ls
Con el modificador “aG” añado ese grupo al usuario sin eliminar 
 
los  demás.  Si  utilizo  “g”  cambiamos  el  grupo  primario  del  usuario; y 
Conseguimos  que  cuando  un usuario  ejecute “ls”  lo  haga  co‐
con  “G”  borramos  todos  los  grupos  a  los  que  pertenece  y  sólo  se 
mo si fuera root. En octal, los permisos serían 1664. 
queda con el que pongamos. 
 
 

30 
 
Implantación de Sistemas Operativos 
 
PROCESOS  Existen algunas alternativas a ps, como top, que es comando 
  que  permanece  bloqueado  en  la  pantalla  y  que  nos  va  a  mostrar  la 
Siempre se crean con la función de C, FORK y EXEC. Los proce‐ información  en  tiempo  real,  viendo  cómo  funcionan  los  procesos  y 
sos  siempre  se  crean  mediante  llamadas  al  sistema;  habrá  que  cómo  varían.  Además,  pstree  es  un  script  que  sacará  por  pantalla 
meterlas  dentro  de  un  código  que  formará  parte  de  un  programa  y  los procesos unidos mediante una línea de parentesco, mostrando los 
que a su vez formará parte de un proceso.  linajes de los procesos que hay ejecutándose en el sistema. 
Sin embargo, tiene que haber un primer proceso que sea crea‐  
do “manualmente” y no mediante una llamada al sistema. Este primer  Finalizar Procesos. 
proceso se crea línea a línea por el programador y se denomina INIT;   
es  por  tanto  el  ancestro  de  todos  los  procesos.  De  esta  forma,  INIT  Utilizamos el comando kill para enviar una señal al proceso; 
siempre será el primer proceso del sistema (con un PID 1).  el modificador que utilizaremos para acabar con el proceso será “9”. 
  Aunque  el  propietario  de un  proceso puede  acabar  con  los  procesos 
Diferencia entre Exec y Fork.  que haya lanzado, sólo root puede acabar con cualquier proceso: 
   
 Exec. Cuando arrancamos un proceso con exec le pasamos  /# kill –9 [PID del proceso]
las rutas que se encuentran en PATH para que encuentre   
el  código  objeto  que  queremos  ejecutar.  Entonces  exec  Primer y Segundo Plano. 
llama al sistema y espera su respuesta. Por ejemplo, cuan‐  
do  ejecutamos  “ls”,  encuentra  su  código  en  “/bin/ls”  y  Por  defecto los procesos se ejecutan en primer plano. Cuando 
bash llama a exec para crear el proceso.  exec lanza un proceso, bash hace que ese proceso hijo tome el control 
 Fork.  Creación  por  partición.  El  proceso  se  ejecuta  y  fork  de  la  entrada  y salida  estándar.  Por  ejemplo,  si  ejecutamos “sort”, 
hace  la  llamada  al  sistema.  Fork  creará  un  proceso  igual  hasta  que  no  acabe,  bash  no  volverá  a  mostrar  el  prompt.  Si  por  el 
que el proceso padre que se ejecutará en tiempo compar‐ contrario,  queremos  seguir  comunicándonos  con  bash  mientras  un 
tido. Es una forma de clonar un proceso, que ejecutará el  proceso  se  está  ejecutando,  tenemos  que  hacer  que  ese  proceso 
proceso clonado a partir de la llamada fork (el PID de cada  activo  pase  a  ejecutarse  en  segundo  plano.  Para  ello,  lo  único  que 
uno de los procesos será diferente).  tenemos que hacer es escribir al final del comando que ejecutemos el 
  carácter &. Por ejemplo: 
Ten  en  cuenta  que  el  propietario  de  un  proceso  hijo  será  el   
/# comando –[modificadores] [argumentos] &
mismo que el del padre; si lanzamos un “rm” seremos los propietarios 
 
y por tanto de “bash” y de exec. Es decir, cuando se lanza un progra‐
Cuando  ese  proceso  haya  terminado  te  enviará  una  señal  que 
ma en una shell, el proceso será hijo de esa shell. 
no  será  visible  hasta  que  ejecutes  el  “intro”  en  el  prompt.  Cuando 
Linux  tiene  más  estados  que  parado  y  bloqueado  y  en  ejecu‐
enviemos un proceso a segundo plano, perderemos toda la interacti‐
ción. Entre ellos podremos encontrar: 
vidad que teníamos con él. 
 
Sin  embargo,  se  puede  hacer  que  un  proceso  vuelva  a  primer 
 Proceso  Zombie.  Es  un  proceso  acabado  cuya  información 
plano. Cuando lanzas un proceso a segundo plano, bash le asigna un 
todavía aparece en la tabla de procesos. Esto sucede por‐
identificador  que  podremos  visualizar  con  el  comando  jobs.  Con 
que  quien  libera  la  tabla  de  procesos  siempre  es  el 
dicho  identificador,  y  con  el  comando  fg  podremos  hacer  que  cual‐
proceso padre, y si el padre se muere antes que el hijo, en‐
quier proceso vuelva al primer plano: 
tonces se quedará en la tabla de procesos. 
 
 Proceso Huérfano. En un proceso cuyo padre ha finalizado y 
/# fg [identificador del proceso]
es adoptado por Init, que lo libera.   
  Una  vez  hecho  esto,  ese  proceso  ocupará  toda  la  shell,  por  lo 
Monitorizar Procesos.  que  si  queremos  volver  a  tener  acceso  al  prompt  tendremos  que 
  utilizar  la  combinación  de  teclas  “ctrl+z”,  para  detener  el  proceso. 
Para ver los procesos que se están ejecutando en esa consola se  Entonces  podremos  volver  a  interactuar  con  la  shell  y  podremos 
suele  utilizar  el  comando  ps.  Esta  orden  tiene  varios  modificadores  enviar al proceso a segundo plano de la siguiente manera: 
”a”,  “u”,  “x”,  que  se  pueden  utilizar  en  combinación  (en  cualquier   
orden)  y  que  además  no  irán  precedidos  por  el  signo  “-“.  Para  ver  /# bg [identificador del proceso]
todos los procesos del sistema:   
 
~$ ps aux
 

31 
 
Implantación de Sistemas Operativos 
 
PREGUNTAS.  16. En función de su ruta, ¿qué puedes decir de un fichero que 
  se  encuentre  en  los  siguientes  directorios?  /bin;  /usr/bin; 
1. Crea  un  archivo con  los nombres  de  los ficheros y directo‐ /opt; /sbin; /dev; /home/Sergio/bin; /var. 
rios de la raíz.  17. Describe brevemente el modelo de permisos de Linux. 
2. Crea un archivo de los contenidos anteriores, pero que sólo  18. Deseamos que al  crear  nuevos usuarios les  aparezca un  fi‐
contenga las 5 primeras líneas.  chero  llamado  “bienvenido.txt”  en  la  raíz  de  su  directorio 
3. Crea un fichero que contenga 30 palabras en línea.  “/home”. ¿Cómo conseguirlo? 
4. Muestra en pantalla la primera mitad del archivo.  19. ¿Tiene  sentido  tener  un  UID  repetido  en  el sistema?  ¿Qué 
5. Crea otro fichero cuya primera mitad sea la mitad del ante‐ consecuencias tendría? ¿y si es el UID 0? 
rior y viceversa.  20. Describe  los  pasos  que  hemos  de dar  para  crear  un  nuevo 
6. ¿Qué  es  una  redirección  y  una  tubería?  Diferencia  entra  usuario en el sistema. 
ambas.  21. Describe brevemente el modelo  de  procesos  de  Linux y su 
7. ¿Qué es una variable de estado?  proceso de creación. 
8. Crea un fichero con el contenido “fichero enlazado”, que se  22. Parece que un proceso no responde, ¿cómo actúas? 
llame “fenlazado”.  23. ¿Qué es el proceso Init? 
9. Crea un enlace físico con “fenlazado” y llámalo “efisico”.  24. ¿Cómo podemos ejecutar un proceso en segundo plano? 
10. Crea un enlace simbólico hacia “fenlazado” y llámalo “esim‐ 25. ¿Qué es un proceso zombie? ¿Y uno huérfano? 
bólico”.  26. Quiero que el sistema me salude cada vez que me conecto 
11. Muestra  en  pantalla  la  información  de  los  ficheros  de  los  al sistema con un mensaje del tipo “Bienvenido!” ¿Cómo lo 
ejercicios 8, 9, 10.  consigues? 
12. ¿Qué es un i‐nodo?   
13. ¿Qué información almacenan los directorios en Linux?   
14. Diferencias entre enlaces simbólicos y físicos.   
15. Cuando haces un “ls –l”, ¿qué significado tiene el primer ca‐
rácter de cada línea y qué valores puede tomar? 
 

32 
 
 

Tema Seis 
 
 

Linux II 
 
Administración Avanzada 
 
BÚSQUEDA DE LA INFORMACIÓN  /# head archive | grep patrón
 
 
Mostrará, de las 10 primeras líneas (head) del archivo, aquellas 
INTRODUCCIÓN 
que tengan ese patrón. Si quiero que ese patrón se encuentre al final 
 
de la línea, escribo: 
Dentro de un gran sistema es necesario contar con sistemas de 
 
búsqueda  de  información.  Para  ello  utilizaremos  comandos potentes 
/# grep patron$ archivo
que nos permitirán buscar tanto ficheros, como su contenido o como   
la información que esté recopilada en sus metadatos.  Para  encontrar  los  procesos  ejecutados  por  el  usuario 
Hoy día los sistemas de ficheros funcionan de manera potente,  “alumno”, tendría que teclear la siguiente línea: 
de  forma  que únicamente con  introducir ciertas pistas,  te devuelven   
una lista relacionada. Algunos ejemplos podrían ser tracker, spotlight,  /# ps aux | grep alumno
etc.   
Vamos a utilizar las herramientas más básicas y compatibles con  Donde  leerá  la  información  de  la  tubería.  Ten  en  cuenta  que 
todos los Unix: grep y find.  podría redireccionar la entrada de grep, aunque si lo hiciera sería lo 
  mismo que si no lo escribiera, es decir, las dos líneas siguientes harán 
GREP  lo mismo: 
   
Busca información dentro de un fichero o pathline. Nos devuel‐ /# grep alumno < archivo
ve  las  líneas  completas  que  coinciden  con  ese  patrón  de  búsqueda.  /# grep alumno archivo
Grep  necesita  una  expresión  regular,  como  las  que  se  vieron  ante‐  
riormente (*, ?), y las siguientes:  Argumentos de Grep. 
   
 ^. El acento circunflejo se  refiere al principio de línea.  Los argumentos se pueden concatenar. 
 $. Referido al fin de línea.   
   -i (insensitive). Busca mayúsculas y minúsculas. 
Cuando  lo  utilicemos,  buscará  líneas  que  contengan  la  expre‐  -w (word). Sólo busca palabras sueltas, es decir, si pongo: 
sión que se busca y mostrará su salida. Entre las muchas entradas, se   
puede utilizar un archivo.  /# grep –w para archivo
 
 
/# grep patrón < archivo Buscará la palabra “para” dentro de ese archivo, y nunca la 
  encontrará en palabras en las que ese patrón esté conte‐
De esta forma buscará ese patrón dentro de ese archivo. Si por  nido, como “paraguas”. 
ejemplo escribo:   
   -v (reVerse). Invierte el sentido de la coincidencia, es de‐
/# grep ^patrón < archivo cir, muestra todo lo que no tenga ese patrón. 
   -l.  Muestra  el  nombre  del  fichero  donde  encontró  la 
Así buscará todas las líneas que empiecen por ese patrón den‐ coincidencia, es decir, buscará el patrón de todos los fiche‐
tro de ese archivo. Si por el contrario escribo:  ros  de  ese  directorio  y  te  imprime  el  nombre  de  los 
  archivos que lo contengan, no la coincidencia. 

33 
 
Implantación de Sistemas Operativos 
 
 -n  (number).  Nos  devuelve el  número  de  línea  donde  se   
produce la coincidencia, además de la línea.  /# find /ruta –type l
Además,  con  este  modificador  podremos  obtener  el  nú‐  
mero de líneas de todo el fichero con el comando cat, es  Nos  devolverá  todos  los  enlaces  simbólicos  situados  en 
decir:  “/ruta”. 
   
/# cat –n /ruta/fichero  -user.  Seguido  de  un  UID  (se  encuentran  en 
  “/etc/passwrd”,  lo  encontraremos  utilizando  un 
Atención, mucho cuidado con los tabuladores; grep puede in‐ “grep nombre /etc/passwd”).  Nos  encuentra  ar‐
terpretar  el  tabulador  de  un  archivo  de  texto  como  8  espacios.  chivos de ese usuario. 
Cuando escribamos grep, agruparemos el argumento con comillas.   -perm.  Encuentra  archivos  con  esos  permisos.  Podemos 
  utilizar  los  símbolos  “‐“  y  “/”  para  incluir  todas  las  condi‐
FIND  ciones  o  permitir  opcionalidad,  respectivamente.  Por 
  ejemplo: 
Busca  información  en  los  metadatos,  por  lo  que  es  ideal  para   
complementar con grep. Necesita un lugar donde empezar a buscar  ~$ find . –perm /+w
y  unos  parámetros  de  búsqueda.  Soporta  muchas  reglas  y  puede 
asociar  comandos  en  la  búsqueda.  Permite  ejecutar  comandos  por  Nos encontrará en el directorio donde nos encontremos 
cada archivo coincidente con las reglas. Por ejemplo, puede buscar un  los los archivos que tenga permiso de modificación en 
tipo  de  archivo  y  hacer  que  esos  tipos  de  archivo  sean  borrados.  Es  cualquiera de sus permisos. 
posible utilizar expresiones regulares o reglas no concretas.   
~$ find . –perm /ug+w
Find devuelve las rutas de los ficheros que ha encontrado. Si lo 
 
has utilizado con rutas relativas, te las devolverá en rutas relativas; del 
Nos encontrará todos los ficheros que puedan ser modifi‐
mismo modo te devolverá rutas absolutas si las utilizaste con find. 
cados o por el propietario o por los miembros del grupo o 
 
por los dos. Pero si escribo: 
Reglas. 
 
 
~$ find . –perm -ug+w
Cada  regla  se  utiliza  como  un  modificador:  -regla valor.   
Una invocación puede utilizar varias reglas.   Sólo encontrará los ficheros que tengan permisos de modi‐
  ficación tanto el propietario como los miembros del grupo.  
/# find /ruta –regla1 valor1 –regla2 valor2 …
 
 
 -exec.  Seguido de  un  comando, un  espacio,  “{}”,  un  es‐
Aunque hay muchas reglas, las que vamos a ver son las siguien‐
pacio  y  “\;”  podremos  ejecutar  comandos  y  aplicar  su 
tes, aunque puedes consultarlas todas en el manual (“man find”). 
resultado a find. Por ejemplo, para borrar todos los archi‐
 
vos con permisos 640 del directorio “tmp”, escribiremos: 
 -name. Busca archivos cuyo nombre coincida con el valor. 
 
Por  ejemplo,  si  queremos  que  encuentre  todos  aquellos 
~$ find /tmp –perm 640 –type f –exec rm {} \; 
archivos que comiencen por A mayúscula:   
  Dentro de {}, bash sustituirá lo que ha encontrado find. 
/# find /ruta –name “A*”
 
 
Un uso práctico de “/dev/null” con find, sería redirigirle la 
 -ctime. Archivos creados hace tantos días como indique 
salida de error al hacer un find como usuario, ya que no tendremos 
el valor. Por ejemplo: 
permisos para buscar en muchos directorios. Por ejemplo, si escribo: 
 
 
/# find /ruta –ctime –3
~$ find / 2> /home/alumno/error
 
 
En este caso mostrará aquellos ficheros creados hace me‐
Además de tirarse un buen rato mostrando por pantalla todo el 
nos de tres días y que se encuentren “/ruta”. 
espacio de nombres (para finalizar el proceso pulsar “ctrl+c”), al ter‐
 
minar tendremos un fichero en “/home/alumno” llamado “error” y 
 -type. Encuentra los archivos de ese tipo, b (bloques), c 
que contendrá líneas de error, del tipo: 
(carácter), d (directorio), f (file, regular), l (enlace simbóli‐
 
co). Por ejemplo:  find: «/lost+found»: Permiso denegado

34 
 
Implantación de Sistemas Operativos 
 
  /# sed 10d < archive
Si esa información no queremos que quede incluida en nuestro   
fichero “fileclean”, podremos hacer que la vuelque a “/dev/null”,  Lo que hará será mostrarte todas las líneas de entrada menos la 
escribiendo:  número 10. Ten en cuenta que no borra dicha línea, sino que simple‐
  mente  no  la  muestra.  Para  borrar  esa  línea  lo  que  podremos  hacer 
~$ find / 2> /dev/null 1> home/alumno/fileclean será redireccionar la salida a un nuevo archivo, donde dicha línea no 
  aparecerá (no quedará grabada), es decir: 
TRATAMIENTO DE LA INFORMACIÓN   
/# sed 10d < archive > modif.archive
 
 
Aunque podemos modificar archivos con un editor, la tarea se 
Atención, si leemos de un fichero y redireccionamos la salida a 
convierte en algo tedioso cuando se trata de múltiples archivos. Para 
ese  mismo  fichero,  perderemos  toda  la  información  contenida  en  el 
ello,  podemos  buscar  información  con  grep  y  find  y  aprovechar 
mismo. Será mejor no escribir esto: 
para realizar modificaciones automáticas a archivos de forma masiva. 
 
En Unix se utilizan de forma tradicional dos procesos, muy po‐
/# sed 10d < archive > archive
tentes y complejos:   
  Modificar Líneas. 
 sed.  
 awk. Es  el  uso  más  extendido  de  sed.  Se  escribe  utilizando  la  si‐
 
guiente sintaxis: 
SED 
 
  /# sed s/cadena1/cadena2/ < archive
Es un editor de flujo, y no es interactivo (como nano). La “ED”   
viene de “editor”. Es similar a grep ya que recibe líneas por su entra‐ Esto  modificará  la  primera  aparición  de  “cadena1”  por  “cade‐
da,  también  recibe  un  patrón  y  expulsa  la  entrada  en  función  de  na2” en cada línea.  Para cambiar todas las apariciones de “cadena1” 
aquel,  pero  mientras  que  sed  modifica  los  patrones,  grep  sólo  los  por “cadena2” de una línea, tendremos que escribir una g al final: 
busca. Es decir, cuando sed lee de su entrada (una tubería, un fiche‐  
ro, …), aplicará sus modificadores y colocará el resultado modificado  /# sed s@cadena1@cadena2@g < archive
en su salida.   
Podremos omitir la entrada o especificarla:  AWK 
   
/# sed [commandos] < archive Este  comando  se  considera  un  lenguaje  de  programación.  Es 
/# sed [commandos] una  herramienta  muy  potente  y  compleja  utilizada  para  procesar 
información de ficheros o de flujos. Awk interpreta su entrada (sea de 
Este comando nos permitirá imprimir, borrar y modificar líneas. 
una  tubería  o  de  un  archivo)  y  fracciona  cada  línea  de  la  misma  en 
 
campos  (nos  referiremos  a  cada  una  de  las  columnas  interpretadas 
Imprimir Líneas. 
por  awk  como  $X,  donde  X>0  será  igual  al  número  de  columna,  y 
 
para X=0, sacará toda la línea).  
Para imprimir líneas utilizamos la letra p (print). Si escribo: 
La sintaxis es la siguiente: 
 
/# sed 10p < archive  
  /# awk ’expresión acción’ < archive
 
Imprimirá  la línea  10  de “archive” y  luego,  todo el fichero.  Sin 
Awk comprobará para cada línea si se cumple la “expresión”, y 
embargo, si escribo: 
después  ejecutará  la  “acción”  (dicha  “expresión”  y  “acción”  podrán 
 
/# sed –n 10p < archive ser muy complejas). Las “acciones” se separarán por comas (,) que al 
  mostrarlas  en  pantalla  las  sustituirá  por  el  delimitador  estándar,  es 
Imprimirá solo la línea 10 de “archive”.  decir, un espacio). Ten en cuenta que awk podrá utilizar los siguientes 
  caracteres en sus expresiones: 
Borrar Líneas.   
  >  mayor que 
Para borrar líneas utilizamos la letra d (delete). Por ejemplo, al  <  menor que 
escribir:  >=  mayor o igual que 
  <=  menor o igual que 

35 
 
Implantación de Sistemas Operativos 
 
==  igual que  /# cat ciudades.txt | awk ’{print “Ciudad:”, $1}’
!=  distinto que  Ciudad: Madrid
Ciudad: Barcelona
&&  y 
Ciudad: Londres
||  o  Ciudad: Berlín
  Ciudad: Sevilla
Ejemplo.  Si  escribimos  un  fichero  (llamado  “ciudades.txt”  con 
tres  columnas  (que  hacen  referencia  a  “ciudades”,  “nacionali‐ O  podremos  definir  una  variable  LIN=lin+1,  y  pedir  que  nos 
dades”, “temperaturas”):  muestre en pantalla la variable LIN y todo lo que hayamos introduci‐
  do: 
Madrid  ES  31   
/# awk ’{LIN=lin+1; print LIN $0}’
Barcelona  ES  25 
 
Londres  UK  19 
Berlín  DE  12  ADMINISTRACIÓN DE PROCESOS 
Sevilla  ES  36   
  GESTIÓN AVANZADA 
Awk podrá referirse a la columna donde están escritas las ciu‐  
dades  con  $1,  a  la  columna  donde  están  escritas  las  El objetivo será aprender a programar procesos para que arran‐
nacionalidades con $2, y a la columna de las temperaturas con  quen  automáticamente.  Para  ello  vamos  a  conocer  los  niveles  de 
$3. Por lo tanto si queremos que nos saque por pantalla todas  ejecución y el arranque programado (cada cierto tiempo) de procesos. 
las ciudades con una temperatura superior a 30 grados, escribi‐ Estos serán puntos fundamentales para cada administrador.  
remos:  Una  vez  se  logre  aprender  a  programar  las  tareas,  habrá  que 
  aprender a escribirlas (haciendo scripts). 
/# awk ’$3>30 {print $1}’ < ciudades.txt  
Madrid Niveles de Ejecución. 
   
Indicándole que de la columna tres ($3) seleccione los números  Los niveles de ejecución son propios de máquinas Unix SYSTEM 
mayores  de  30  y  que  nos  muestre  la  línea  de  la  columna  uno  V (el hijo más puro de Unix –en su lado opuesto estaría BSD).  
($1) que coincida con ese valor.  Como Linux desciende de Minix, y éste de Unix, se considera un 
Si  queremos  que  nos  imprima  las  ciudades  cuya  nacionali‐ SYSTEM V. No obstante, esto no funciona en las distribuciones Ubuntu 
dad sea española:  y  Devian  actuales,  aunque  existirá  algo  parecido.  Ubuntu  agilizó  y 
  modificó todo esto, mejorando el arranque y procesado de la máqui‐
/# awk ’$2==”ES” {print $1}’ < ciudades.txt
na. 
Madrid
Barcelona Los niveles de ejecución (normalmente 7, del 0 al 6) son modos 
Sevilla de  operación  (llamados  run  levels)  que  describen  mecanismos  de 
  automatización  de  parada  y  arranque  de  procesos  cuando  se  inician 
Indicándole que de la columna dos seleccione aquellos valores  los  run  levels  (ten  en  cuenta que para  pasar  al  nivel  4 no  habrá  que 
iguales a ES, y que nos muestre la línea de la columna uno que  pasar los anteriores). 
coincidan con ese valor.  Es decir, cuando se pasa a un nuevo modo habrá una serie de 
  Si queremos que nos imprima las ciudades de nacionalidad  procesos  que  arrancarán  y  otros  que  morirán  con  ellos.  El  nivel  por 
distinta a la española y con una temperatura superior a los 15  defecto se encuentra en “/etc/inittab”. Por ejemplo, cuando la 
grados:  máquina  arranca  pasa  a  un  run  level concreto,  arrancando  todos  los 
  procesos que haya contenidos en dicho nivel (servidor web, demonio 
/# awk ’$2!=”ES” && $3>15 {print $1}’ < ciudades.txt de backup, etc.). Por seguir poniendo ejemplos, si nuestro sistema de 
Londres copias de respaldo consume muchos recursos y tiene que ejecutarse 
 
en  solitario,  podríamos  describir  un  nivel  que  arrancara  todos  los 
Indicándole que de la columna dos y la tres seleccionen  aque‐
procesos vinculados con el backup y matara a todos los demás. 
llos valores distintos a ES y con una temperatura de 15 grados, y 
Cada nivel se describe en los directorios “/etc/rcX.d”, don‐
que nos muestre la línea de la columna uno que coincidan con 
de la X nos indica el nivel del run level. 
esos dos valores. 
 
También  podremos  hacer  que  lea  los  datos  de  entrada  de 
 X=0  Nivel de apagado de la máquina. 
una tubería, por ejemplo: 
 X=1  Nivel monousuario (root). Prueba de errores. 
 

36 
 
Implantación de Sistemas Operativos 
 
 X=[2-5] Niveles de uso del sistema. Son niveles estándar  Si queremos programar los procesos para que sean lanzados en 
para ser modificados como se desee.  cualquier momento, tenemos dos herramientas para hacerlo: 
 X=6 Nivel de reinicio de la máquina.  
   cron   Programa procesos para lanzarse periódicamente. 
Estos  directorios  contienen  scripts  (tienen  permisos  de  ejecu‐  at  Programa  procesos  para  lanzarse  en  un  momento 
ción)  “rc”,  y  todos  los  nombres  contenidos  siguen  una  estructura  concreto. 
particular, empezando por  K  (“kill”,  parada  del servicio)  o S  (“start”,  Cron. 
inicio del servicio); luego va un número, que impondrá la jerarquía en   
la ejecución de ese script, es decir, un 569 se ejecutará antes que un  Permite programar procesos para ser lanzados periódicamente 
575; y al final irá un nombre descriptivo del proceso que arranca, por  (cada semana, cada mes, cada hora, etc.). Es lanzado por un demonio 
ejemplo:  llamado  “crond”  (es  decir,  para  que  funcione,  el  demonio  tiene  que 
  estar ejecutándose) y lee la información de un fichero personal (aun‐
/etc/rc1.d# ls que sea personal no se almacena en nuestra “home”, sino en “/var”) 
K15pulseaudio llamado “crontab”. 
K20rsync
Para  acceder  a  nuestro  crontab,  accederemos  a  nuestro  script 
 
crontab. Si utilizamos “crontab –l” nos mostrará las tareas progra‐
Como consecuencia, el run level 0 tendrá casi todos scripts “K”. 
madas  (como  si  hiciéramos  un  “cat”);  si  usamos  “crontab –e” 
 
podremos editarlo (como si hiciéramos un “nano”). 
Arranque Programado de Procesos. 
Cada  línea  tiene  cinco  dígitos  separados  por  espacios;  cada  lí‐
 
nea  corresponde  a  una  programación  distinta  y  tiene  un  formato 
Para arrancar procesos al inicio o al apagado del sistema utilizare‐
diferente: 
mos los script rc. Estos scripts se generan a partir de un comando llamado 
 
“update-rc.d”,  que  crea  las  estructuras  de  los  scripts  contenidos  en 
min hor día mes día-sem comando
“etc/rcX.d”  a  partir  de  los  scripts  contenidos  en  “/etc/init.d”.  
 
Dentro de este directorio se encuentran los script sin S o K y sin número, y  Los valores para cada campo son:  
con  esos  scripts  podremos  controlar  el  arranque  y  parada  de  todos  los 
 
demonios.  Por  ejemplo,  “/etc/init.d/apache”  podrá  invocar  el 
 minutos:   0‐59 
script general de control de apache para detenerlo, apagarlo, reiniciarlo o 
 horas:   0‐23 
iniciarlo. 
 días:   1‐31 
Es  decir,  init.d  es  un  directorio  que  guarda  los  scripts  de 
 meses:   1‐12 
control y funciona como un panel de control de demonios y servicios 
 días de la semana:   0‐6 (0=domingo) 
en  general.  A  través  de  los  scripts  contenidos  en  dicho  directorio, 
 
podremos  controlar  por  completo  todos  los  procesos  asociados  a 
Además, podremos poner los siguientes caracteres en los campos:  
dicho demonio. Este directorio está estrechamente vinculado a los run 
 
levels, por lo que no sería conveniente ubicar los scripts de init.d 
 “*”  cualquier valor. 
en otro lugar. 
 “-“  indica un rango de valores. 
Una vez conocido esto, podremos ejecutar update-rc.d pa‐
ra  que  cree  de  forma  automática  los  scripts  K  o  S  a  partir  de  los   “,”  para separar una serie de valores. 
scripts contenidos en init.d. Por ejemplo:     
  Ten  en  cuenta  que  aunque  haya  varios  usuarios  conectados  a 
/# update-rc.d cron start 2 2 3 4 5 . stop 2 0 1 6 . varias shells, los procesos de una shell no afectan a la otra. 
  La salida por defecto de cron es hacia el inbox del correo del 
Este comando arrancará el demonio de cron en los niveles 2,  usuario, por lo que habrá que redireccionarla. 
3, 4 y 5 lo parará en los niveles 0, 1 y 6. Por citar dos, creará en el run   
level  2  (directorio  “etc/rc2.d”)  el  script  S2cron  y  en  run  level  0  Ejemplo. Para cada línea de abajo, los siguientes periodos: 
(directorio  “etc/rc0.d”)  el script  K2cron. Fíjate en los puntos que  Cada 15 minutos de cada hora, todos los lunes de cada mes 
van tras los números de “start” y los números de “stop”.  A las 13 horas, el quince de cada mes 
Para que lo haga solo, escribiremos:  A las 13 horas, el quince que sea de L‐V de cada mes 
  Primer lunes de cada mes a las 0:00 
/# update-rc.d cron defaults Cada 8 horas de lunes a viernes 
  Cada 12 horas, los lunes y miércoles en los meses estivales 
Si queremos programarlo al inicio de una sesión de un usuario   
bastará con invocarlo en el .bash_profile, escribiendo init 2.  /# crontab –e

37 
 
Implantación de Sistemas Operativos 
 
MIN HOR DÍA MES DÍA-SEM  
15 * * * 1  Logs. 
00 13 15 * *
00 13 15 * 1-5  Comandos. 
00 0 1-7 * 1  Script propios. 
00 0,8,16 * * 1-5  Herramientas especializadas. 
00 0,12 * 6-9 1,3  
 
LOGS. 
At. 
 
 
Logs del Sistema. 
Permite programar procesos para ser lanzados de manera pun‐
 
tual.  El  lanzador  es  un  demonio  llamado  ”atd”  (es  decir,  para  que 
Son  archivos  de  eventos.  El  sistema  de  logs  lo  mantienen  dos 
funcione, el demonio tiene que estar ejecutándose) y lee los procesos 
demonios: 
de la entrada estándar. 
 
La sintaxis es como sigue: 
 syslogd: que gestiona los logs del sistema. 
 
 klogd: que gestiona los logs del kernel. 
/# at hora:min día.mes.año
   
Una  vez  escrito se  le da al “intro”  y  se  introducen por  teclado  Los  logs  suelen  guardarse  en  archivos  bajo  “/var/log”.  Po‐
los comandos (su entrada estándar) hasta que at no reciba el carác‐ dremos  consultarlos  usando  las  herramientas  clásicas:  cat,  grep, 
ter  de  fin  de  fichero  (“ctrl+d”).  Si  redirigimos  su  entrada  hacia  un  sed, awk, etc. 
fichero,  at  lo  leerá  byte  a  byte,  por  lo  que  también  tendremos  que   
escribir los “intro” que necesitemos.   /var/log/messages Son eventos de prioridad media. 
Los argumentos pueden ser los siguientes:   /var/log/kern.log  Eventos  de  máxima  prioridad. 
  Generados por el kernel. 
 -l   Lista las tareas.   /var/log/auth.log Informan sobre los accesos al sis‐
 -d  Borra una tarea.  tema, escalado de privilegios y accesos fallidos. 
 -f  Lee las tareas desde un fichero en lugar de la en‐  /var/log/dmesg Eventos producidos durante el arran‐
trada estándar.  que (comando dmesg). 
   
Si hay dos tareas en ejecución (la X y la Y), y quiero eliminar la Y,  Estos archivos pueden crecer hasta tener gran tamaño. 
tendré que escribir:   
  Logrotate. 
/# at –l  
1 tarea X El script logrotate es el encargado de su archivado. Su con‐
2 tarea Y figuración está en “/etc/logrotate.conf” y está configurado en 
/# at –d 2
el  crontab  de  root.  Logrotate  crea  periódicamente  archivos  com‐
primidos con las extensiones *.1.gz, *.2.gz, etc. Además, trunca 
at lanzará la shell sh que será la que leerá nuestros procesos y 
a  cero  el  archivo  log  correspondiente.  Cuanto  mayor  sea  el  número, 
los ejecutará. Esto significa que si utilizamos comandos internos de la 
más antiguo será el archivo. 
shell bash, no funcionarán, ya que at ejecutará el script mediante sh. 
 
Por ejemplo, si quiero lanzar el comando “/bin/tarea” el 12 de 
 
junio a las 18:30 de 2012, escribiré: 
Logger. 
 
/# echo “/bin/tarea” | at 18:30 12.6.2012  
  Con este comando podremos generar nuestros propios eventos 
y registrarlos en los logs. Su uso es muy sencillo: 
AUDITORÍAS 
 
  /# logger -f /var/log/message “mi evento”
AUDITAR EL SISTEMA   
  COMANDOS. 
Las auditorías  son la  forma de  controlar el sistema  más  básica   
para  un  administrador.  Con  ellas  se  podrá  saber  quién  entra,  quién  Algunos comandos básicos son: 
sale, quién usa qué, etc.   
Para llevarlas a cabo se utilizan diferentes mecanismos:   last (permite consultar los últimos accesos) 

38 
 
Implantación de Sistemas Operativos 
 
 who (lista de usuarios conectados ahora)  variable  PATH.  Si  creamos  un  directorio  dentro  de  nuestro  “home”, 
 finger (aporta información sobre un usuario)  llamado “scripts”, escribiremos: 
   
Siempre es conveniente contar con herramienta especializadas  ~$ export PATH="$PATH:~/scripts" 
de monitorización y auditorías.   
  Comentarios. 
PROGRAMACIÓN DE LA SHELL   
Todo aquello que vaya después del símbolo almohadilla (#), se‐
 
rá ignorado por bash y sólo será visible cuando se edite el contenido 
SCRIPTS 
del script. De esta forma podremos introducir todo de tipo de comen‐
 
tarios  y  aclaraciones  sobre  nuestro  script.  Podremos  introducir 
Un script de la shell es una secuencia de comandos que se eje‐
comentarios en una misma línea de código, por ejemplo: 
cutarán  al  introducir  el  nombre  del  script  en  la  línea  de  comandos. 
 
Son ficheros de órdenes. Como tales, son ficheros de texto plano; las 
echo “¡Hola, $USER!” # así te saludará  
órdenes  incluidas  en  ellos  las  lee  un  intérprete.  En  nuestro  caso,  la 
 
shell  de  Unix  se  utilizará  como  un  intérprete  de  nuestros  scripts. 
Los scripts de init, por ejemplo, en el directorio init.d, suelen 
Alternativamente, podrás utilizar scripts para realizar tareas automá‐
estar bien comentados ya que tienen que ser entendidos y tienen que 
ticas usando el comando  cron. Otros usos  para los  scripts  será para 
poder ser editados por cualquiera que utilice Linux. 
los procedimientos de apagado y arrancado de la máquina, donde las 
 
operaciones de  los demonios  y los servicios se  definen en los scripts 
Modo de Prueba. 
de init. 
 
Para crear un script de shell, abre un nuevo fichero vacío con un 
Podemos ejecutar los scripts para que lo hagan en prueba de fa‐
editor (vim, emacs, gedit, dtpad, nano, etc.). Los editores vim o emacs 
llos. Lo normal será escribir: 
pueden  ser  configurados  para  reconocer  la  sintaxis  de  bash,  lo  que 
 
puede ser de gran ayuda si se nos olvida poner corchetes o puntos y  ~$ bash –x script_ejemplo 
comas. Para resaltar los errores de escritura en vim, podremos escribir   
(:syntax enable), que siempre nos aparecerá si lo introducimos en  Lo que nos irá mostrando cada línea del script precedida de un 
nuestro archivo .vimrc  símbolo “+”, y ejecutándola a continuación, es decir: 
Una vez abierto el editor, pon los comandos de Linux que quie‐  
ras en su interior, como si los estuvieras introduciendo en la línea de  + echo “¡Hola, $USER!”
comandos.  En  un  script,  la  primera  línea  comienza  con  la  ruta  del  ¡Hola, alumno! 
intérprete, comenzando por los caracteres “#!”. Por ejemplo:   
  Podremos  introducir  dentro  de  nuestro  script  el  comando  set 
#! /bin/bash  para  localizar  aquellos  comandos  de  los  que  tengamos  dudas  de  su 
  funcionamiento,  de  forma  que  únicamente  se  activará  el  modo  de 
El intérprete se cargará en memoria y se le pasará el fichero de  fallos cuando llegue a esa sentencia:  
órdenes  para  que  las  procese.  A  partir  de  la  cabecera  se  escriben   
todas las órdenes siguiendo la sintaxis del intérprete.  set –x # activa el modo de prueba
Dale a tu script un nombre que esté relacionado de alguna ma‐ echo “¡Hola, $USER!”
nera  con  su  función,  y  asegúrate  de  que  no  entra  en  conflicto  con  set +x # desactívalo
Introducir Datos. 
ninguna  de  los  órdenes  que  ya  existan.  Para  asegurarse  de  que  no 
 
haya ninguna confusión, los nombres de los scripts suelen terminar en 
Para  ello  existen  dos  métodos.  Bien  utilizando  la  instrucción 
.sh;  aunque  podría  ser  que  incluso  de  esta  forma  se  repitan  los 
read (nos pedirá que metamos el valor de la VARIABLE): 
nombres. Para aclarar todo esto podremos utilizar los comandos: 
 
 
/# read VARIABLE
/# wich -a script_ejemplo
 
O bien utilizando argumentos en la llamada. Si hago un script llamado 
/# whereis script_ejemplo
prueba con la siguiente estructura: 
/# locate script_ejemplo  
  #! /bin/bash
Todo script debe tener permisos de ejecución, y para ejecutarse  echo ”$1 $2”
 
tendrá que escribirse su ruta absoluta, relativa o incluir su ruta en la 

39 
 
Implantación de Sistemas Operativos 
 
Podré  ejecutarlo  escribiendo  dos  argumentos  en  la  llamada  que  me  Si  no  aparece  [in LISTA],  se  reemplazará  por  in  $@,  y  for 
mostrará a continuación. Si pongo más, serán ignorados.  ejecutará  las  instrucciones  una  vez  por  cada  parámetro  introducido. 
VARIABLE  puede  ser  cualquiera.  LISTA  puede  ser  cualquier  lista  de 
/# ./prueba hola qué tal palabras  o  números.  En  el  principio  del  bucle,  VARIABLE  toma  el 
hola qué
primer valor de la LISTA, luego toma el segundo valor, etc. El bucle 
 
termina cuando VARIABLE ha tomado todos los valores de la LISTA y 
$1,  $2,  $3  …  guardan  el  valor  de  los  argumentos  introducidos 
no quedan más entradas en ella. 
durante  la  llamada.  $*  guarda  todos  los  argumentos.  $#  guarda  el 
Por ejemplo, si queremos crear una copia de seguridad de nuestros 
número de argumentos introducidos. $? Guarda un 1 ó 0 dependien‐
archivos  de  texto  (.pdf)  situados  en  “/home/alumno/trabajos”, 
do del éxito o fracaso del último comando utilizado. 
podremos utilizar esta función. Prueba esto paso a paso: 
 
 
Condicionales. 
~/trabajos$ touch Iso1.pdf Iso2.pdf Hardware.pdf
 
 
Podemos utilizar instrucciones de selección del tipo if‐then‐else; 
~/trabajos$ ls *.pdf
siguiendo esta estructura:  Iso1.pdf Iso2.pdf Hardware.pdf
 
If [ condición ] ~/trabajos$ ls *.pdf > lista
then
instrucciones  
else ~/trabajos$ nano for1
instrucciones
fi #!/bin/bash
 
Si se cumple la condición se ejecutarán las instrucciones dentro  # Este script es un ejemplo para saber
# cómo funciona FOR.
de “then”, y si no se cumple, se ejecutarán las instrucciones conteni‐
das  en  “else”.  En  las  condiciones  podemos  introducir  operadores 
echo
numéricos:  ‐lt(lower  than),  ‐eq(equal),  ‐nq(not  equal),  ‐gt(greater 
echo ”Realizando copias de seguridad...”
than); operadores para cadenas: == (igual), != (distinto); u operadores  echo
lógicos: ‐a(and), ‐o(or), !(not).  LISTA=`cat lista`
Podremos  utilizar  operadores  unarios:  (‐f  ficheros,  ‐d  directo‐ for i in $LISTA
rios,  ‐r  permiso  de  lectura,  ‐w  permiso  de  escritura,  ‐x  permiso  de  do
ejecución).  Por  ejemplo,  si  queremos  saber  si  existe  el  archivo  de  cp “$i” “$i”.bak
mensajes localizado en “/var/log”, escribiremos:  echo “$i ---> copiado a $i.bak”
  done
#!/bin/bash echo
echo ”Se han realizado las copias”
echo "Este script comprueba la existencia del
archivo de mensajes." echo
echo "Comprobando..."
if [ -f /var/log/messages ] ~/trabajos$ ./for1
then
echo "/var/log/messages existe."
fi Realizando copias de seguridad...
echo
echo "...hecho."  Iso1.pdf ---> copiado a Iso1.pdf.bak
  Iso2.pdf ---> copiado a Iso2.pdf.bak
Instrucciones de Iteración.  Hardware.pdf ---> copiado a Hardware.pdf.bak
 
Estas instrucciones son del tipo for‐each. Ejecutarán una lista de  Se han realizado las copias
comandos por cada valor en la lista. 
   ~/trabajos$ ls *.pdf*
for VARIABLE [in LISTA] Iso1.pdf Iso2.pdf Hardware.pdf
do Iso1.pdf.bak Iso2.pdf.bak Hardware.pdf.bak
instrucciones  
done
Puedes  comprobar  lo  que  hace  línea  por  línea  el  script,  escri‐
 
biendo (es muy aclaratorio): 
 

40 
 
Implantación de Sistemas Operativos 
 
~$ bash –x for1   
  3. Diferencias entre grep y sed. 
PREGUNTAS.  4. ¿Qué funciones de sed hemos estudiado? Pon ejemplos. 
  5. En qué consiste un run level y cómo podemos determinar lo 
1. Diferencias entre grep y find.  que se ejecuta, o no, al pasar ese nivel. 
2. Crea un archivo con nombres de alumnos y ciclos.  6. Describe cómo funciona el paso de un run level a otro. 
a. Mostrar los nombres de los alumnos que empie‐ 7. Para que se usa el “/etc/init.d”. 
cen por “p”.  8. Diferencias entre cron y at; define su funcionamiento bási‐
b. Mostrar todos los alumnos del ciclo ASIR.  co. 
c. Separar tres ficheros con alumnos de cada ciclo.   
d. Hacer  nuevos  ficheros  ordenados  alfabéticamen‐ BIBLIOGRAFÍA. 
te.   
e. Muestra todos los alumnos que se llamen “Pepe”  Garrels, M. Bash Guide for Beginners. Version 1.11. 
de los tres ciclos (ASIR, DAW, SMR). 
 

41 
 
 

Tema Siete 
 
 

Linux III 
 
Administración en Red 
 
CONFIGURACIÓN DE LA RED  ASIGNACIÓN DE PUERTA DE ENLACE Y ENROUTAMIENTO 
   
Antes de nada configura la tarjeta de red de tu máquina virtual  Para ello, utilizaremos el comando route, que sirve para modi‐
como bridge, según se dijo en el Tema Tres (página 15): Cada máqui‐ ficar la tabla de rutas de nuestra máquina. Cualquier máquina necesita 
na  virtual  tendrá  un  identificador  IP  independiente;  habrá  que  dos rutas por defecto: una de entrada y otra de salida. 
configurar cada una de ellas como si fuera una máquina nueva.  Ahora  sólo  tenemos  la  ruta  de  entrada  (la  introducida  con
  ifconfig), y para verla podemos escribir: 
ASIGNACIÓN DE DIRECCIÓN IP Y MÁSCARA DE RED   
/# route -n
 
192.168.5.120 0.0.0.0 255.255.0.0 eth2 
Tradicionalmente se utiliza el comando ifconfig. Cuando lo   
introducimos en la consola, nos muestra la configuración de las dife‐ Esa ruta que aparece se ha creado al configurar el interfaz con 
rentes  interfaces  de  red  existentes.  Habrá  dos  epígrafes  principales,  ifconfig. Tendremos que añadir una ruta hacia nuestra puerta de 
uno ethX (donde X puede ser cualquier número), y el otro lo; ethX  enlace  (gateway  –  gw)  que  nos  comunique  con  la  red  por  defecto 
hará referencia al puerto Ethernet y su número (X), donde aparecerán  0.0.0.0  (Internet).  La  dirección  de  la  puerta  de  enlace  es  conocida  y 
descritas las características de nuestra tarjeta de red; y lo, se referirá  nos la tienen que suministrar; en nuestro caso será 192.168.5.254: 
a la dirección loopback, 127.0.0.1. Esta dirección de red es igual para   
todas  las  máquinas  (además,  no  existe  rango  de  red  para  ella),  y  la  /# route add default gw 192.168.5.254
utilizan para comunicarse consigo mismas.   
Además, con ifconfig podremos editar las configuraciones  Obtendremos  ahora  la  ruta  de  entrada  y  salida  si  volvemos  a 
de las tarjetas de red, aunque hoy día existen cientos de aplicaciones  escribir: 
gráficas sobre cualquier escritorio que nos permitirán configurarlo sin   
recurrir a la consola de comandos.  /# route -n
Primero tendremos que asignar la dirección y la máscara de red  192.168.5.120 0.0.0.0 255.255.0.0 eth2
de nuestro  equipo  a nuestra  tarjeta.  El  valor  de  ethX  visto  al  hacer  0.0.0.0 192.168.5.254 0.0.0.0 eth2
 
ifconfig  será  necesario  ahora.  Por  ejemplo,  si  nuestra  red  es  la 
Para  comprobar  la  conectividad  de  nuestra  puerta  de  enlace 
192.168.5.0/16 (clase B), y decidimos escoger la IP 120, escribiremos: 
utilizaremos  la  utilidad  ping  (Packet  INternet  Groper).  ping  com‐
 
/# ifconfig eth2 192.168.5.120 netmask 255.255.0.0 prueba esto enviando paquetes ICMP de solicitud y de respuesta, así, 
  podremos  diagnosticar  el  estado,  velocidad  y  calidad  de  la  red  que 
Ahora ya tenemos introducidos estos valores y el puerto está abier‐ acabamos de establecer: 
to y es operativo. Si queremos deshabilitar el puerto introducimos:   
  /# ping 192.168.5.254
64 bytes from 192.168.254: icmp_seq=1 ttl=254 time=1.04ms
/# ifconfig eth2 down 
 
 
Y nos aparecerán líneas como la de arriba, donde: 
Y  si  queremos  volver  a  abrirlo  (con  la  misma  configuración  in‐
 
troducida antes): 
 icmp_seq=1 hace referencia al Internet Control Message 
 
/# ifconfig eth2 up  Protocol  (ICMP),  un  sub–protocolo  de  control  y  notifica‐
  ción  de  errores  del  Internet  Protocol  (IP),  y  al  número  de 

42 
 
Implantación de Sistemas Operativos 
 
paquete  enviado.  Estos  mensajes  de  petición  harán  que   
ping pueda determinar si el host está disponible.  Todos se basan en un programa cliente y en un demonio ejecu‐
  TTL (Time To Live), Tiempo de Vida. El TTL es un campo en  tado en la máquina objeto. 
la  estructura  del  paquete  del  protocolo  IP.  Nos  indica  el   
número  de nodos que  puede  atravesar un paquete  antes  Telnet. 
de ser descartado por la red o ser devuelto a su origen. Sin   
este campo, los paquetes que fueran enviados a rutas no  Es un protocolo de comunicación que permite abrir una shell en 
existentes  o  a  direcciones  erróneas,  estarían  circulando  una máquina remota. Toda la información va sin cifrar. El cliente que 
por la red indefinidamente, utilizando ancho de banda sin  utiliza es telnet y el demonio se llama telnetd. Es recomendable 
ningún motivo.  no utilizar este protocolo siendo root. 
 time  es  el  tiempo  en  milisegundos  que  ha  tardado  el  La forma de usarlo es (suele utilizarse el puerto el 23): 
router en devolver el paquete.    
  ~$ telnet dirección [puerto] 
ASIGNACIÓN DE SERVIDORES DNS   
  Por ejemplo: 
Domain  Name  System  (DNS)  asocia  diferente  información  con   
nombres de  dominios.  Se  encarga  (entre otras  cosas)  de  traducir  los  ~$ telnet 192.168.5.130
 
nombres  que  utilizamos  en  identificadores  binarios  que  sean  com‐
SSH (Secure SHell). 
prensibles para los computadores, con el propósito de poder localizar 
 
y direccionar esos equipos. Por ejemplo, cuando queremos acceder a 
Es  un  protocolo  de  comunicación  seguro  y  cifrado  entre  un 
un dominio ponemos su nombre, no su dirección IP, lo que hacen las 
cliente y un servidor. Se puede utilizar para: 
DNS es asociar ese nombre a una dirección. Los servidores DNS con‐
 
testan las peticiones de los clientes (son los que piden la traducción de 
 Abrir una shell en una máquina remota (similar a telnet). 
sus nombres a binario), es decir, traducen los nombres que introducen 
a binario para que puedan conectarse con sus máquinas.   Transferir ficheros. 
Las  direcciones  DNS  se  almacenan  en  el  archivo  de  texto   Realizar conexiones cifradas para otros y encapsular proto‐
/etc/resolv.conf.  Podremos  introducir  en  el  fichero  las  direc‐ colos (ssh tunneling). 
ciones de nuestros servidores DNS (las que se dan abajo corresponden   
a los servidores de Google), de esta forma:  Si  no  está  instalado  habrá  que  ejecutar  apt-get update  y 
  apt-get install openssh-server. 
nameserver 8.8.8.8 Requiere  de  un  cliente  y  un  servidor;  cliente:  ssh,  demonio: 
nameserver 8.8.4.4 sshd.  Hay  muchas  aplicaciones  gráficas  que  utilizan  conexión  ssh 
  para Windows y Linux, como el PuTTY, por ejemplo. 
ASIGNACIÓN DE FICHEROS DE NOMBRES LOCALES  Se utiliza escribiendo (normalmente suele utilizarse el puerto 22): 
   
En las redes pequeñas o privadas podemos no disponer de ser‐ ~$ ssh [argumentos] dirección 
vidores  DNS.  Podemos  evitar  el  uso  de  direcciones  IP  y  utilizar   
nombres  de  máquinas.  Sólo  tendremos  que  escribir  la  relación  de  Los argumentos principales son: 
direcciones IP y sus nombres en /etc/hosts.   
   -l Uso de un usuario diferente en la conexión remota. 
GESTIÓN REMOTA DE EQUIPOS   -p Uso de un puerto diferente en el servidor 
   
Consiste  en  abrir  una shell en una  máquina  remota,  utilizando  SSH – Abrir una Shell en una máquina remota. 
como bus de conexión una red de comunicaciones.   
Es  útil  para  aquellos  equipos  destinados  como  servidores  que  Siguiendo con el ejemplo utilizado en “Configuración de la Red”, 
no suelen tener monitor ni teclado.  imagina  que  tenemos  un  ordenador  más  conectado  a  nuestra  red, 
Para  realizar  la  gestión  remota  de  equipos  existen  diferentes  cuya dirección es 192.168.5.130. Imagina también que en dicho orde‐
mecanismos:  nador  existe  un  usuario  que  tiene  el  mismo  nombre  que  el  que 
  nosotros estamos utilizando, es decir, si he ingresado como “alumno” 
y quiero conectarme a esa otra máquina, tendré que hacerlo también 
 telnet 
como  “alumno”  (por  tanto,  “alumno”  tiene  que  existir  como  cuenta 
 rlogin 
 ssh 

43 
 
Implantación de Sistemas Operativos 
 
de usuario en la máquina remota). Para abrir una shell en esa máqui‐ OTROS COMANDOS 
na tendremos que escribir:   
  ping. 
alumno@mvirtual:~$ ssh 192.168.5.130  
  Como  se  ha  dicho  antes,  ping  envía  un  pequeño  paquete  de 
Ahora nos pedirá confirmación de conexión y luego nos pedirá  datos o sonda hacia el destino que hayamos indicado. Se utiliza para 
la contraseña de “alumno” (siempre que quieras abrir una shell  probar  si  una  máquina  responde,  pudiendo  comprobar  si  dicha  má‐
en otra máquina tendrás que conocer la contraseña del usuario  quina  se  ha  caído  o  no.  ping  utiliza  el  protocolo  ICMP.  Con  ping 
con el que nos conectemos).  podremos controlar diferentes parámetros (número de sondas, tama‐
Una vez establecida la conexión, estaremos en el “home” de  ño, ttl, etc.). 
“alumno”  de  la  máquina  a  la  que  nos  hemos  conectado.  Para   
salir de la shell, habrá que escribir exit.  mtr. 
   
Si por el contrario el usuario “alumno” no existe en la máquina  Realiza un trazado de la ruta de conexión, combina los coman‐
a  la  que  nos  vamos  a  conectar,  sino  que  existe  el  usuario  “Peter”,  dos  ping  y  traceroute.  Dado  un  destino  de  la  conexión,  ofrece 
tendremos que utilizar  el  argumento  –l (y conocer  la  contraseña  de  datos  sobre  cada  salto  (router)  cruzado  por  los  paquetes  hasta  el 
Peter para abrir una shell en su máquina). Escribiremos:  destino.  Cada  salto  es  sondeado  utilizando  ping.  Este  comando  es 
  muy  útil  para  testear  instalaciones  de  red  complejas,  con  varios 
alumno@mvirtual:~$ ssh –l Peter 192.168.5.130 routers y por tanto, varias subredes. 
   
Tras confirmar la conexión e introducir la contraseña de Peter,  netstat. 
habremos abierto una shell en esa máquina y el prompt será de   
esta forma:  Permite monitorizar la lista y el estado de las conexiones de una 
  máquina.  Además,  también  muestra  otros  aspectos  de  la  configura‐
Peter@mvirtual:~$_ 
ción  de  red  (ip,  tabla  de  rutas,  etc.).  netstat  utiliza  los  siguientes 
 
argumentos: 
SSH – Transferencia de Ficheros. 
 
 
 –t muestra las conexiones TCP. 
Para  realizar  transferencia  de  ficheros  se  utiliza  el  comando 
 -l muestra las conexiones en modo escucha (servicios). 
scp.  Se  utiliza  para  transferir  ficheros  de  forma  segura,  funciona 
sobre una conexión ssh.    -s muestra las estadísticas. 
Para enviar ficheros a una máquina remota:   
  nmap. 
~$ scp /ruta/local usuario@máquina:/ruta/destino  
Es una potente herramienta de análisis de redes y máquinas. Es 
Por  ejemplo,  si  quiero  enviar  mi  trabajo  de  ISO  (Iso2.pdf)  a  la  compleja de manejar, sobre todo en modo consola. Existen interfaces 
otra máquina conectada a mi red:  gráficas  para  su  uso,  como  Zenmap.  Es  fundamental  para  cualquier 
administrador  de  servidores  y  redes.  Para  su  uso  se  puede  visitar: 
~$ scp /home/alumno/Iso2.pdf alumno@192.168.5.130:/home/alumno http://www.insecure.org 
Aunque tiene muchos usos, algunos de ellos: 
Para recoger ficheros de una máquina remota:
 
~$ scp usuario@máquina:/ruta/destino /ruta/local  Rastreo de máquinas activas en una red que cumplan cier‐
  tas características. 
Por ejemplo, si quiero recoger el resumen de ISO (IsoR.pdf) de   Descubrimiento de servicios. 
la otra máquina conectada a mi red:   Descubrimiento del tipo de sistema operativo, versión, etc. 
  de una máquina (fingerprinting). 
~$ scp alumno@192.168.5.130:/home/alumno/IsoR.pdf /home/alumno  Descubrimiento del hardware de red de una máquina o má‐
  quinas. 
   
   

44 
 
Implantación de Sistemas Operativos 
 
nc (Netcat).  FTP 
   
Netcat vale para todo. Su idea es muy básica: crear un socket o  Es un protocolo de transferencia de ficheros, normalmente uti‐
conexión TCP/IP en crudo entre un cliente y un destino. Se utiliza para  liza  el  cliente  ftp  y  el  demonio  ftpd.  Existen  muchos  clientes  con 
muchos  objetivos:  depurar  aplicaciones,  comprobar  el  estado  de  un  interfaz gráfica. Se instala utilizando el comando apt-get o similar. 
servicio, uso remoto de scripts, etc.   
Por ejemplo, se puede utilizar para:   Este  servicio  tiene  un  directorio  raíz,  por  ejemplo: 
  /home/ftp. 
 Chat para dos: Podemos arrancar un nc como servidor:   Cada usuario puede poseer un directorio. 
   Los  usuarios  anónimos  tienen  una  cuenta  especial  de  sólo 
~$ nc –l –p 2323 lectura. 
  HTTP 
Nos conectamos a él en otra máquina:   
  Es  un  protocolo  de  transferencia  de  ficheros  HTML.  Normal‐
~$ nc máquina-servidor 2323 mente utiliza como cliente: firefox, lyx, chrome, etc., y como demonio, 
  apache,  lighthttpd,  etc.  Se  instala  utilizando  el  comando  apt-get  o 
  similar. 
 Consola remota: Creamos un servidor en el puerto 2323.   
   Este  servicio  tiene  un  directorio  raíz,  por  ejemplo: 
~$ nc –l –p 2323 –e /bin/bash /var/www. 
   Bajo este directorio suele exportarse la totalidad de la web, 
Nos conectamos a ella:  y alberga archivos de extensión .html. 
   
~$ nc máquina-servidor 2323
 

45 
 
 

Tema Ocho 
 
 

Windows Server 2008 
 
Gestión Local 
 
INTRODUCCIÓN  PREPARACIÓN DEL ENTORNO FÍSICO 
   
¿QUÉ ES UN SERVIDOR?  Para ello no vale una sala cualquiera. Para que el servidor esté 
  en  condiciones  óptimas  y  esté  en  funcionamiento  24x7  habrá  que 
Un servidor es una máquina que ejecuta procesos servidores o  tener en cuenta una serie de cuestiones para poder tomar las medidas 
servicios.  Ya  que  a  priori  no  se  necesita  ninguna  cualidad  especial,  adecuadas.  Habrá  que  proteger  el  sistema  del  calor,  del  agua  y  del 
cualquier máquina podría funcionar como un servidor.  fuego,  de  los  ruidos  eléctricos  y  de  la  electricidad  estática,  de  los 
  cortes de corriente, y regular y proteger el acceso físico 
Características.   
   Protección  contra  el  calor:  Es  un  factor  fundamental.  La 
Un  único  servidor  puede  ejecutar  varios  servicios,  siempre  te‐ maquina va a estar trabajando 24x7, y eso genera mucho 
niendo en cuenta que quizá dichos servicios necesiten requerimientos  calor, un calor que perjudicará a las máquinas; por ello, es 
hardware especiales. Lo normal es que un servidor requiera:  importante  que  esa  temperatura  se  pueda  rebajar.  Aun‐
  que lo más sencillo es contar con aire acondicionado, hay 
 Disponibilidad de servicios 24x7.  que tener en cuenta soluciones estructurales que puedan 
 Seguridad.  crear sistemas de refrigeración y ventilación constantes sin 
elementos  mecánicos  y  que  puedan  solventar  problemas 
 Alto rendimiento (tanto software como hardware). 
aislados  de  falta  de  corriente  eléctrica.  Es  recomendable 
 
que la sala esté lo más fría que sea posible. 
¿QUÉ ES UN SERVICIO? 
   Protección  contra  el  agua  y  el  fuego:  Tiene  que  haber  un 
Un servicio es un proceso que atiende peticiones de otros pro‐ sistema  de  control  de  incendios,  teniendo  en  cuenta  que 
cesos llamados clientes, procesándolas y enviando una respuesta.  habrá que contar con extintores de fuego eléctrico que no 
Los servicios pueden requerir grandes recursos hardware, y hay  dañen  los  equipos  electrónicos.  Se  puede  contar  con  cá‐
cientos de tipos distintos: correo, ficheros, web, autenticación,…   maras  de  vacío  y  sobre  todo  evitar  que  la  sala  tenga  un 
  diseño inadecuado (como evitar que las cañerías y bajan‐
WINDOWS 2008. ANTECEDENTES  tes pasen por el CPD). También habrá que tener en cuenta 
  la humedad, puesto que con el calor, puede ser un foco de 
Fue anunciado por Microsoft en mayo de 2007. Aunque el ker‐ proliferación  de  hongos  que  podrían  llegar  dañar  física‐
nel  estaba  basado  en  su  predecesor,  Windows  2003  Server,  salió  mente los componentes de los equipos. 
habiendo sufrido cambios significativos, siguiendo la rama de desarro‐  Ruidos eléctricos: Hay que evitar todo tipo de interferencias 
llo  iniciada  con  Windows  NT.  Está  orientado  a  servidores  y  pensado  y no instalar las fases eléctricas mezcladas, preparando la 
para optimizar sus requerimientos.  instalación para evitar los cortes de corrientes (SAI), hasta 
  que se puedan utilizar los equipos diesel.  
 Acceso físico: Habrá que controlar la entrada y la salida a la sa‐
INSTALACIÓN Y ARRANQUE 
la, la hora y el tiempo de estancia. El acceso estará controlado 
 
e  impedido  con  barreras  físicas.  El  acceso  físico  garantiza  el 
Todo  servidor  tiene  que  cumplir  con  una  serie  de  requisitos 
control total del CPD, por lo que es un lugar al que no se debe‐
(preparación  del  entorno  físico,  montaje  hardware  de  la  máquina, 
ría poder entrar. Además, tu CPD no tendría por qué estar ni 
instalación  del  sistema  software  y  configuración  inicial,  arranque  y 
en tu edificio, ni en tu ciudad, ni siquiera en tu país. 
configuración de otros parámetros). 

46 
 
Implantación de Sistemas Operativos 
 
   Configuración  del  sistema  (zona  horaria,  nombre  del servi‐
Contar con todas estas medidas es algo caro, por lo que montar  dor, etc.). 
un CPD no sólo implica comprarse una máquina e instalar un sistema   
operativo.  Este  hecho  hace  que  la  alternativa  de  la  virtualización  Instalación en Modo Desatendido. 
(Tema Tres) sea algo digno a tener en cuenta económicamente, aun‐  
que  externalizar  las  necesidades  del  CPD,  inevitablemente  implicará  Permite la instalación sin contestar preguntas, por lo que se tra‐
externalizar la información de tu propia empresa.  ta de un modo de instalación no interactivo. Nos será de utilidad si se 
  tiene que repetir la instalación en múltiples equipos. Se basa en intro‐
MONTAJE HARDWARE DE LA MÁQUINA  ducir al instalador un fichero con las respuestas a todas las preguntas 
  que nos hará durante el proceso de instalación, estructurado siguien‐
Hay  que  hacer  una  elección  correcta  de  los  componentes,  te‐ do un esquema de etiquetas en XML. Para ello, habrá que incluir dicho 
niendo  en  cuenta  el  presupuesto,  relacionando  calidad  precio,  la  fichero en el propio CD. 
optimización  del  rendimiento  de  los  servicios  y  las  compatibilidades  El fichero podrá generarse manualmente desde cualquier editor 
del sistema operativo con respecto al hardware. Todo esto tiene que  de texto, o bien usando un programa llamado Windows System Ima‐
estar  documentado,  cuanto  más  se  documente,  mejor.  Hay  que  do‐ ge Manager (lo más recomendable), que aunque no forma parte de la 
cumentar todo: instalación, errores, montaje, problemas de montaje,  instalación  básica,  se  encuentra  en  la  base  de  datos  de  Microsoft 
cómo funciona la máquina, evolución de rendimiento, etc. Así podre‐ llamada TECHNET (donde se encuentra toda la información para que 
mos  conocer  los  rendimientos  de  la  máquina.  Recuerda  que  los  cualquier administrador resuelva sus dudas) y su licencia es gratuita. 
reportes  podrán  automatizarse,  generando  scripts  para  generar  in‐ Hay otra base de datos para desarrolladores llamada MSDN, donde se 
formes  lanzados,  por  ejemplo,  por  cron,  y  así  poder  monitorizar  el  encuentra  toda  la  información  útil  para  poder  programar  cosas  para 
sistema.  Microsoft. 
  Si  las  máquinas  donde  se  quiere  instalar  el  sistema  operativo 
INSTALACIÓN DEL SISTEMA SOFTWARE  tienen hardware muy distinto, será más recomendable instalarlo así. 
   
La  primera  elección  será  la  del  sistema  operativo,  ¿cuál  es  el  Método de Clonación. 
mejor  sistema  operativo  para  gestionar  el  hardware  de  la  máquina?   
Habrá que atender a muchas variables a la hora de elegirlo: factores  Para  ello  habrá  que  crear  una  maqueta  (una  imagen  de  ese 
económicos, familiarización de uso, compatibilidades… Después habrá  equipo) en un soporte de almacenamiento ajeno. Así, tendremos una 
que instalar un sistema de base de datos y demás aplicaciones, cuya  copia  byte  a  byte  de  lo  que  contiene  ese  equipo.  Si  volcamos  esa 
elección también dependerá de muchos factores.  imagen en otros discos, tendremos exactamente lo mismo, por lo que 
En este tema vamos a hablar de Windows Server 2008. Este sis‐ si esos equipos  tienen un hardware  muy  distinto,  puede que  los dri‐
tema se suministra en varias ediciones:  vers  no  funcionen,  aunque  si  son  ligeramente  parecidos,  funcionará. 
  Así, tendremos clonado no sólo el sistema operativo, sino también las 
 Web Edition.  aplicaciones que tuviera instalado el sistema operativo original. 
 Standard Edition.  Para hacer esto hay varias herramientas: Norton Ghost o Acro‐
 Enterprise Edition.  nis.  Ghost  arranca  el  equipo  y  puede  comunicarse  con  la  unidad  de 
 Datacenter Edition.  red donde tiene la maqueta, pasando cada byte de ésta al disco duro.  
  Ten en cuenta que con la clonación, la IP, el nombre del equipo, 
Técnicamente,  a  nivel  de  Kernel,  no  existe  ninguna  diferencia  etc., serán el mismo, y eso será un problema. Lo tendrás que cambiar 
entre  las  diferentes  ediciones.  Elegir  una  u  otra  te  impondrá  unas  u  a mano, o si no, utilizar alguna aplicación como por ejemplo Acronis, 
otras  limitaciones,  pero  será  el  fabricante  el  que  las  imponga,  ven‐ que te permitirá asignar esas características automáticamente. 
diendo licencias más limitadas en servicios por precios más reducidos.  Por lo tanto, si las máquinas donde se quiere instalar el sistema 
Para  instalarlo habrá  que  introducir  el  CD  de la distribución,  o  operativo tienen hardware muy distinto, no será recomendable insta‐
iniciar la instalación desde una carpeta compartida de red. Para arran‐ larlo así. 
car  el  instalador habrá  que  reiniciar  el  equipo  y  seguir  los  siguientes   
pasos del asistente:  SECUENCIA DE ARRANQUE 
   
 Inicio del instalador.  Ha  sido  modificada  notablemente  con  respecto  a  Windows 
 Aceptar los términos de la licencia.  2003. El nuevo  sistema es  más  versátil, pues permite el arranque  en 
 Particionar y formatear el disco.  sistemas sin BIOS, y más portable, permitiendo arrancar el kernel en 
 Copiar los archivos y librerías.  todo  tipo  de  arquitecturas  (no  sólo  x86).  Windows  utiliza  el  archivo 

47 
 
Implantación de Sistemas Operativos 
 
“bcd.log” en lugar del tradicional “boot.ini”. La secuencia de arranque  estructurado  en  categorías.  Cada  categoría  se  puede  dividir  en  más 
consta de:  categorías o en entradas. Las entradas están formadas por un nombre, 
  un  tipo  y  unos  datos.  Dentro  de  la  categoría  HKEY_CLASSES_ROOT, 
 Control del sistema por la BIOS.  tenemos cientos de categorías, y si por ejemplo, si nos metemos en la 
 Lectura y ejecución del registro de inicio maestro (MBR, Mas‐ categoría FirefoxHTML, tendremos dos entradas: 
ter  Boot  Record).  El  MBR  es  el  primer  sector  de  un  disco   
duro, que comienza el proceso de inicio del equipo. El MBR  Nombre  Tipo  Datos 
contiene  la  tabla  de  particiones  del  disco  y  una  pequeña  ab (Predeterminado)  REG_SZ  Firefox HTML Document 
cantidad de código ejecutable llamado código de inicio prin‐ ab FriendlyTypeName  REG_SZ  Firefox HTML Document 
cipal, desde donde se carga BootMgr (Boot Manager).   
 BootMgr  controla  el  proceso  de  arranque  (detecta  las  op‐ Aunque  el  administrador  pueda  acceder  al  registro  de  Win‐
ciones  de  arranque  para  elegir  el  kernel)  y  muestra  las  dows, éste está destinado principalmente a las aplicaciones, que serán 
opciones del menú (si existen).   las que lo lean y las que escriban en él, dejando allí sus parámetros de 
 BootMgr llama a WinLoad.exe para que aloje al kernel ele‐ configuración. 
gido en memoria.   
 Se  carga  el  archivo  del  kernel  (new  technology  operating  Categorías Principales. 
system kernel, “ntoskrnl.exe”) byte a byte, es ejecutado y   
pasa a segundo plano hasta la primera llamada al sistema.  HKEY_CLASSES_ROOT.  Parámetros  sobre  ficheros,  librerías  y  sus 
  relaciones. 
Personalización del Arranque.  HKEY_CURRENT_USER. Parámetros del usuario activo de la sesión. 
  HKEY_LOCAL_MACHINE. Parámetros locales de la máquina y el siste‐
Para personalizar el arranque editaremos el Boot Configuration  ma. 
Data  (fichero  “bcd.log”).  Este  fichero  es  binario  (es  decir,  no  está  HKEY_USERS_USERS. Parámetros de los usuarios. 
codificado  con  códigos  alfanuméricos),  por  lo  que habrá  que  modifi‐ HKEY_CURRENT_CONFIG.  Parámetros  del  software  y  el  hardware 
carlo con un programa que pueda modificar el fichero correctamente.  instalado. 
Para ello utilizaremos el programa “bcedit.exe”. “bcd.log” está ubica‐  
do en “\boot”, y está oculto.  CONFIGURACIÓN DE LA RED 
Antes, el fichero era el “boot.ini” y era un fichero plano que se   
podía editar directamente y que contenía las características de nues‐ Configurar la red, junto con el nombre del servidor, es un paso 
tro arranque.  inicial básico. Su configuración depende del rol de la máquina dentro 
“bcd.log” enumera y localiza las particiones arrancables del sis‐ de  la  red  (Servidor  web,  router,  firewall,  Proxy,  etc.),  y  podremos 
tema, y también podrá gestionarse desde la interfaz gráfica.  configurarlo  a  través  del  “Centro  de  Redes”  que  se  encuentra  en  el 
  “Panel  de  Control”.  Allí  habrá  que  seleccionar  “Administrar  Conexio‐
nes  de  Red”,  “Red  de  Área  Local”,  “Propiedades”.  Después, 
ADMINISTRACIÓN 
seleccionaremos “Protocolo IPv4” y configuraremos sus propiedades. 
 
Para  nuestro  centro  pondremos,  por  ejemplo:  IP  192.168.5.111; 
INTRODUCCIÓN 
Máscara 255.255.255.0 y puerta de enlace 192.168.5.254. 
 
La configuración básica siempre necesitará lo siguiente: 
La administración se encargará de que el sistema esté siempre 
 
funcionando. Para ello, todo tendrá que estar optimizado (configura‐
 Dirección IP del servidor. 
ción  del  software,  hardware  y  las  comunicaciones  del  servidor)  para 
 Máscara de Subred. 
poder explotar la máquina a su rendimiento óptimo. 
 Puerta de enlace. 
 
REGISTRO DE WINDOWS   Servidores DNS. 
   
Es una base de datos jerarquizada que contiene los principales  Aunque para los roles antes mencionados, hará falta una confi‐
parámetros de configuración del sistema. Es una especie de “/etc”,  guración más compleja. 
donde  se  encuentran  las  directivas  del  sistema,  de  cada  usuario,  de   
seguridad, etc. Se trata de un archivo binario, con el que podrás confi‐ UTILIDADES DE ADMINISTRACIÓN 
gurar todo el sistema.   
Se puede modificar con la utilidad “regedit.exe”. Al abrirlo, ve‐ Las herramientas que permiten analizar y monitorizar el estado 
mos  que  muestra  la  base  de  datos  jerarquizada  en  forma  de  árbol,  y  funcionamiento  de  la  máquina  reciben  el  nombre  de  utilidades  de 
administración.  Todas  ellas  son  fundamentales  para  cualquier  admi‐

48 
 
Implantación de Sistemas Operativos 
 
nistrador. Entre ellas veremos la consola de administración, el visor de  varios  registros  predeterminados  y  nos  dará  la  posibilidad  de  que 
eventos,  el  monitor  de  rendimiento  y  alertas,  el  programador  de  podamos  definir  nuestros  propios  registros  nuevos.  Además,  las 
tareas, y el generador de informes.  aplicaciones también cuentan con registros separados para sus even‐
  tos,  pudiendo  crear  su  propio  evento.log  (visualizado  a  través  del 
Consola de Administración.  “Visor de Eventos”). 
  Dentro de todos los registros que aparecen en el panel izquier‐
La Microsoft Management Console (MMC) es una herramienta  do  del  visor  de  sucesos,  los  registros  más  importantes  son  los  tres 
utilizada  para  crear,  guardar  y  abrir  colecciones  de  herramientas  primeros: 
administrativas, llamadas consolas. Las consolas contienen elementos   
como  complementos,  extensiones  de  complementos,  controles  de   Aplicación. El registro de aplicación contiene los sucesos re‐
monitor, tareas, asistentes y documentación requerida para adminis‐ gistrados  por  aplicaciones  o  programas.  Por  ejemplo,  un 
trar  la  mayoría  de  los  componentes  hardware,  software  y  de  red  de  programa de base de datos podría registrar un error de ar‐
Windows. Se pueden agregar elementos a una consola MMC existente  chivo en el registro de aplicación. Serán los programadores 
o  bien  crear  nuevas  consolas  y  configurarlas  para  administrar  un  los que decidirán qué sucesos se supervisarán. 
componente  específico  del  sistema;  serán  una  especie  de  scripts   Seguridad. El registro de seguridad guarda sucesos como in‐
visuales que podremos guardar como archivos independientes.  tentos de inicio de sesión válidos y no válidos, además de 
Para abrir MMC, habrá que pinchar en “Inicio” y a continuación,  sucesos relacionados con el uso de recursos, como la crea‐
en “Ejecutar”, escribir “mmc”.  ción,  apertura  o  eliminación  de  archivos  u  otros  objetos. 
Toda MMC tiene dos paneles, y su estructura será la misma pa‐ Un administrador podrá especificar los sucesos que se re‐
ra  cada  una  de  las  utilidades  de  administración  que  veremos  a  gistrarán  en  el  registro  de  seguridad.  Por  ejemplo,  si 
continuación.  habilitaste  la  auditoría  de  inicio  de  sesión,  se  registrarán 
  en el registro de seguridad los intentos de inicio de sesión 
 Panel Izquierdo. Complementos añadidos.  en el sistema. 
 Panel Derecho. Detalles del complemento seleccionado.   Sistema.  El  registro  del  sistema  contiene  sucesos  registra‐
  dos por componentes del sistema Windows. Por ejemplo, 
Consola de Administración. Usuarios y Grupos Locales  el error de la carga de un controlador u otro componente 
  del  sistema  durante  el  inicio  quedará  registrado  en  el  re‐
El  sistema  tiene  una  base  de  datos  de  usuarios  y  grupos.  Esta  gistro del sistema. Los tipos de sucesos registrados por los 
base de datos es local a la máquina, que no la compartirá con ninguna  componentes  del  sistema  estarán  predeterminados  por 
otra, por lo que si creamos un usuario en una máquina, sólo existirá  Windows. 
en  ella  (cambiará  cuando  hablemos  en  el  Tema  Nueve  de  los  Domi‐  
nios; se entiende por DOMINIO una serie de máquinas Windows que  Cada uno de estos registros almacena eventos de tipo informa‐
toman a una como referencia (llamada controlador de dominio) y que  ción, advertencia o error (aunque los eventos referidos a la seguridad 
comparten información entre ellas).   podrán  tener  más  tipos,  como  autenticaciones  fallidas),  con  la  hora, 
Cuando creamos  un  usuario  (“Panel de  Administración/ Herra‐ fecha,  usuario,  categoría,  suceso  y  equipo  donde  se  produjo  la  inci‐
mientas administrativas/ Usuarios y Grupos”), nos pedirá un nombre y  dencia.  Podremos  buscar  información  dentro  de  esos  registros, 
un  dominio.  Si  ponemos  un  dominio  distinto  al  local,  el  usuario  se  creando vistas personalizadas o aplicando Filtros. 
creará  en  la  máquina  controladora  del  dominio  que  pongamos  (así   
podremos crear un servidor de usuarios).    Las VISTAS son filtros permanentes que quedan registrados 
Para gestionar usuarios y grupos locales, utilizaremos la consola  y  que  permanentemente  se  van  a  cargar  asociadas  a  un 
predefinida:  “Administración  de  Equipo”,  aunque  podremos  agregar  nombre.  Son  por  tanto,  mecanismos  de  recuperación  de 
este  complemento  en  una  MMC  nueva.  También  tendremos  que  eventos con ciertos parámetros comunes (un script con el 
asignar a estos usuarios una contraseña.   nombre  de  esa  búsqueda).  Las  vistas  se  podrán  exportar 
Las  contraseñas  están  condicionadas  por  unas  fuertes  restric‐ de un PC a otro. Por ejemplo, podremos tener vistas sobre 
ciones  de  seguridad,  que  pueden  limitarse  desde  el  panel  de  el registro de seguridad para almacenar la información de 
“Directiva de Seguridad Local”, con lo que habrá que ser muy cuida‐ los errores; o la vista para almacenar los eventos sobre el 
doso para no poner el peligro la seguridad del sistema.  apagado del sistema. 
   Los  FILTROS  son  búsquedas,  como  un  “grep”.  En  el  árbol 
Visor de Eventos.  de  la  consola  habrá  que  seleccionar  el  registro  que  se 
  desee filtrar. En el menú ver, buscar FILTRO, y allí especifi‐
Este visor muestra los registros de eventos (tablas donde se al‐ car las características que se desean. 
macenan sucesos ocurridos en el sistema) y su contenido. Cuenta con   

49 
 
Implantación de Sistemas Operativos 
 
Sobre cada registro podremos:  ‐ Enviar un correo. 
  ‐ Mostrar un mensaje. 
 Modificar su configuración.   Disparadores  (desencadenadores).  Cualquier  situación  que 
 Buscar eventos por diferentes criterios.  provoque la ejecución de una tarea. Hay muchos de ellos, 
 Exportarlos  a  un  fichero  o  base  de  datos  (.evt  –binario–,  entre los que se pueden nombrar: según programación, al 
.txt,  .csv).  Si  hacemos  esto,  podremos  almacenarlos,  algo  iniciar o apagar sesión, al iniciar el sistema, o al estar inac‐
fundamental para futuras auditorías.  tivo. Hay que tener en cuenta que no existe un disparador 
  al apagar el sistema, y si queremos hacerlo tendremos que 
Monitor de Rendimiento y Alertas.  buscar el id. evento 1074, con origen “USER32” (un módu‐
  lo del kernel) y cuyo registro sea “sistema”. 
Monitorizar  el  rendimiento  es  una  tarea  básica  de  cualquier   
administrador. Un mal rendimiento es indicativo de un mal funciona‐ Generador de Informes 
miento, lo que implica ofrecer un mal servicio a tus clientes. Aunque   
Windows 2008 ofrece diferentes herramientas para esta labor, noso‐ El generador de informes hace “fotografías” del sistema en un 
tros  veremos  el  Monitor  de  Rendimiento  (“Rendimiento”,  en  momento dado en base a unos parámetros configurados a priori (por 
“Herramientas administrativas” del “Panel de Control”).  tanto no es a tiempo real). Estos parámetros trabajan con los mismos 
El monitor de rendimiento nos permitirá agregar diferentes pa‐ elementos que el monitor de rendimiento, es decir, con los contado‐
rámetros a monitorizar, cada uno de ellos con un contador distinto. El  res y con los conjuntos recopiladores de datos. 
monitor  de  rendimiento  trabaja  con  contadores,  y  éstos  a  su  vez,   
trabajan con los recopiladores de datos. Es decir, los recopiladores de  GESTIÓN DE LA INFORMACIÓN 
datos están registrando la información que utilizarán los contadores,   
para que luego el monitor pueda mostrarlos. Así, podremos definir.  SISTEMA DE FICHEROS NTFS 
   
 CONTADOR.  Aquellos  parámetros  de  diferente  índole  que  El sistema de ficheros NTFS tiene mejoras significativas con res‐
son representados en una gráfica y que podremos monito‐ pecto a FAT32, entre los que se encuentran los permisos de archivos y 
rizar.  Con  ellos  podremos  visualizar  datos  sobre  un  carpetas  (podremos  hacer una mejor  gestión de  permisos  y  listas  de 
componente software o hardware. Los contadores son uti‐ control de acceso), el cifrado (seguridad), la compatibilidad con volú‐
lizados por el monitor de rendimiento.  menes de gran tamaño, la administración de archivos dispersos, mejor 
 Conjunto RECOPILADOR DE DATOS. Un conjunto de conta‐ recuperación frente a fallos y configuraciones avanzadas vía software. 
dores  con  una  configuración  específica  (para  registrar   
eventos).  Según  su  objetivo,  los  contadores  utilizados  se  NTFS. Permisos 
utilizarán de una forma u otra.    
  El nivel de permisos NTFS controla el acceso final a un fichero o 
Hay  que  tener  en  cuenta  que  el  monitor  de  rendimiento  nos  carpeta de todos los usuarios, y tiene como fin asegurar la seguridad e 
mostrará los parámetros contenidos en el contador sobre una gráfica  integridad del sistema de ficheros. Los permisos son reglas asociadas a 
que  podremos  exportar,  y  nos  permitirá  monitorizar  parámetros  a  archivos  o  carpetas  con  usuarios  o  grupos,  y  todo  fichero  contenido 
tiempo  real  de  cualquier  sistema,  tanto  local  como  remoto.  Sólo  en una carpeta, heredará los permisos de ésta. 
tendrá  una  labor  de  visualización,  pues  para  ejecutar  acciones  con  Hay  diferentes  permisos  en  Windows,  aunque  realmente  son 
ellos se utilizarán los recopiladores de datos.  operaciones que se van a permitir o denegar: 
   
Programador de Tareas.   Control  Total:  Podremos  leer  archivos  o  carpetas,  ejecutar 
  binarios, y cambiar y mover elementos. 
El  programador  de  tareas  permite  al  servidor  lanzar  tareas  de   Modificar: Podremos cambiar elementos existentes pero no 
forma automática. Es el equivalente a “cron” de Linux.  crearlos nuevos. 
Nos permitirá asociar las tareas a lanzar (acciones) a un evento   Leer y Ejecutar: Podremos leer elementos existentes y eje‐
concreto (disparadores), lo que le permitirá obtener al administrador  cutar archivos binarios. 
un aviso en tiempo real del evento en cuestión. Así, podremos definir:   Leer: Podremos leer elementos existentes. 
   Escribir: Es similar a modificar, pero no podremos borrarlos. 
 Acciones.  Lo  que  se  ejecutará  cuando  la  tarea  se  dispare.   
Hay tres tipos de acciones dentro del administrador de ta‐
reas: 
‐ Inicio de un programa. 

50 
 
Implantación de Sistemas Operativos 
 
Windows  recomienda  asignar  permisos  a  grupos  en  vez  de  a  confundir  con  los  permisos  NTFS.  En  caso  de  contradicción  con  los 
usuarios,  ya  que  no  considera  muy  eficaz  el  mantener  cuentas  de  permisos NTFS, siempre se aplicarán los permisos más restrictivos. 
usuario directamente.  Los permisos son: 
   
NTFS. Herencia de Permisos.   Control Total. 
   Cambiar. 
Todo archivo o carpeta posee una ACL (Access Control List). Ca‐  Leer. 
da  entrada  en  la  ACL  relaciona  cada  actor  (usuario  o  grupo)  con  las   
operaciones que tiene permitidas o denegadas. Una ACL puede here‐ Mecanismos. 
dar entradas de sus antecesores, pero si están heredadas no podrán   
eliminarse,  tan  sólo  podrán  denegarse.  Windows  recomienda  utilizar  Para poder exportar la información utilizaremos la carpeta “Ac‐
“denegar” sólo en casos especiales, como para:  ceso  Público”,  o  en  el  menú  propiedades,  “Compartir”.  Si  hacemos 
  esto  último,  conseguiremos  más  exactitud  en  la  configuración  de 
 Excluir  un  subconjunto  de  un  grupo  que  tiene  permisos  usuarios y permisos, pues podremos elegir los usuarios y los permisos.  
permitidos.  Al compartir dos ficheros con SAMBA, tendrás un NAS (ver más 
 Excluir  un  permiso  especial  cuando  ya  se  haya  concedido  adelante). 
control total a un usuario o grupo.   
  Uso Desconectado. 
En caso de que nos interese editar por completo una ACL ten‐  
dremos  que  romper  la  herencia  respecto  de  sus  antecesores.  Para  Windows  permite  el  uso  desconectado  de  archivos  y  carpetas 
hacerlo, habrá que irse a las opciones avanzadas dentro de la pestaña  compartidas. Los cambios que se hayan realizado se sincronizarán tras 
de seguridad una vez estando en propiedades. Una vez dentro, en la  una nueva conexión. Será necesario habilitar el servicio en el Panel de 
pestaña de “Permisos”, habrá que deseleccionar el recuadro “Heredar  Control del servidor y del cliente. 
del  objeto  principal  las  entradas  de  permisos  relativas  a  los  objetos   
secundarios…”.  Una  vez  hecho  esto,  podremos  elegir  copiar  toda  la  ALMACENAMIENTO 
ACL  de  nuestro  antecesor  o  borrarla  para  crear  una  nueva.  De  cual‐  
quier  forma,  la  ACL  ahora  pertenecerá  a  ese  elemento  de  forma  Según el uso, se podrán utilizar unos u otros dispositivos de al‐
completa.  macenamiento.  Para  su  uso  continuado,  utilizaremos  discos 
Es  recomendable  romper  la  herencia  en  los  niveles  más  altos,  magnéticos,  mientras  que  para  su  uso  puntual,  utilizaremos  discos 
aunque habrá que tenerlo siempre en cuenta a la hora de ahorrarnos  ópticos y cintas magnéticas. 
el trabajo.  Sin  embargo,  hay  otras  tecnologías  de  almacenamiento,  bien 
Hay que tener en cuenta que ante un conflicto entre permisos,  hardware  o  módulos  software  del  propio  Windows,  que  servirán 
siempre se aplicará el más restrictivo.  como sustitutos de dicho hardware. 
   
EXPORTAR INFORMACIÓN  Raid (Redundant Array of Independent Disks). 
   
La información almacenada en una máquina Windows 2008 es  Es  un  conjunto  de  discos  magnéticos  independientes  que  fun‐
normalmente exportada a través de la red. Pueden utilizarse muchos  cionan  coordinados  y  que  ofrecen  servicio  como  si  fueran  uno  solo 
servicios de red externos para hacer esto: NFS, FTP, SSH, HTTP. Nor‐ (son  por  tanto  dispositivos  hardware).  Para  que  funcionen  como  un 
malmente,  en  Windows  utilizaremos  el  protocolo  SMB.  El  antiguo  todo,  necesitan  del  gobierno  de  una  controladora,  que  optimizará la 
SMB  (ahora  CIFS)  es  un  sistema  de  transferencia  de  ficheros  que  velocidad de acceso y la repartición de bytes en cada disco (el cómo se 
proviene  de  la  antigua  implementación  GNU  SAMBA  de  Linux.  SMB  repartan  definirán  el  NIVEL  DEL  RAID).  Esta  configuración  permitirá 
nos permitirá,  por  tanto, compartir recursos,  como  ficheros,  directo‐ obtener  menores  tiempos  de  acceso,  tolerancia  a  fallos  e  integridad 
rios o impresoras a través de una red. SMB viene de serie en todos los  de datos. 
sistemas  Windows,  por  lo  que  se  ha  convertido  a  la  fuerza  en  un  Aunque hay muchos niveles, vamos a ver tres de ellos: 
estándar.   
   RAID 0. Es el más sencillo. La información se divide en tiras 
Permisos.  (stripes)  que  se  almacenan  en  paralelo  en  dos  discos  (no 
  hay información duplicada). 
Estos permisos sólo se aplican a los usuarios que acceden al re‐ ‐ Ventajas:  Maximizamos  el  tiempo  de  acceso, 
curso  compartido  a  través  del  servicio  de  compartición  de  SMB.  No  pues  podremos  hacer  lecturas  paralelas  (ya  que 

51 
 
Implantación de Sistemas Operativos 
 
so  unidades  físicas  independientes).  De  hecho,  A nivel de almacenamiento, el objetivo ideal para cualquier ad‐
reducimos el tiempo de acceso a la mitad.  ministrador  es  que  cada  componente  funcione  íntegramente  con  el 
‐ Inconvenientes:  No  tiene  tolerancia  de  fallos.  Si  sistema y no implique una traba para el cálculo. Para esto, el RAID no 
perdemos  un  disco,  perdemos  la  mitad  de  la  in‐ es  muy  válido,  pues  es  poco  flexible,  de  forma  que  se  recurre  a  las 
formación.  redes. 
 RAID 1. Discos en espejo. Cada byte que guardamos en un   
disco, se guarda también en el otro; todos los discos de es‐ Redes SAN (Storage Area Network). 
te  RAID  tendrán  la  misma  información.  Este  nivel  no   
mejora la velocidad de acceso de lectura.  Son  conjuntos  de  discos  conectados  en  una  red  local.  De  esta 
‐ Ventajas: Tiene tolerancia a fallos, como mucho,  forma, si queremos más espacio, lo único que tenemos que hacer es 
un  fallo.  Si  perdemos  un  disco,  no  perdemos  in‐ conectar otro disco a la red. 
formación,  pues  está  duplicada  en  el  resto  de  Estos  discos  estarán  organizados  por  un  sistema  de  ficheros 
discos.  único  que  se  encargará  de  resolver  la  ubicación  de  cada  uno  de  los 
‐ Inconvenientes:  Desperdiciamos  el  doble  de  es‐ bloques de información repartidos entre todos los discos. Es decir, las 
pacio.  Si  compro  dos  discos  de  500Gb,  sólo  solicitudes  se  harán  al  sistema  de  ficheros,  pero  este  generará  una 
tendré 500Gb de almacenamiento.  solicitud hacia el disco en red que tenga el bloque. Por tanto, el siste‐
 RAID 5. Esta configuración reparte un código de paridad so‐ ma de ficheros gestiona los discos a bajo nivel (orientado a bloques). 
bre  todos  los  discos.  Este  nivel  no  duplica  información,  La red de discos se monta a través de una topología Fiber Chan‐
sino  que  para  cada  conjunto  de  stripes  reparte  entre  los  nel  (FB)  o  una  red  iSCSI  sobre  una  infraestructura  de  cables  par 
demás discos una tira más que asegure la integridad de las  trenzado (utiliza el protocolo iSCSI; los mensajes se meten dentro de 
tiras anteriores. En el caso de que falle uno de los discos,  un datagrama IP, nada de TCP). 
se podrá reconstruir la información del mismo a partir de  Funciona de la siguiente forma: 
los códigos de paridad distribuidos entre los demás discos.   
Para  ello  utiliza  un  mecanismo  similar  al  que  utilizaba  la   La aplicación accede al sistema de ficheros.  
función HASH (si dos archivos generan cadenas HASH idén‐  El  sistema  de  ficheros  accede  a  su  mapa  y  llama  al  driver 
ticas, serán el mismo archivo).  iSCSI. 
‐ Ventajas:  Al  repartir  la  información  mejora  los   El  driver  iSCSI  sabe  que  tiene  que  comunicarse  por  la  red, 
tiempos de acceso (a diferencia de los niveles 3 y  esperando  mensajes  para  confirmar  donde  está  la  infor‐
4  que  dejan  los  códigos  de  paridad  en  un  único  mación que se le ha ubicado en el mapa.  
disco  y,  por  tanto,  crean  un  cuello  de  botella).   iSCSI  se  comunica  con  la  red  para  pedir  la  información,  se 
Además,  no  desperdiciamos  espacio  y  tenemos  hace con ella, la compila, se la pasa al sistema de ficheros 
tolerancia a fallos, como máximo, de un disco. Si  y éste a la aplicación. 
perdemos más de un disco, no podremos recupe‐  
rar la información.  La red iSCSI no debería compartir nada con la red local y debe‐
‐ Inconvenientes:  Necesitamos  más  discos  para  ría tener su propio switch. 
montar  un  RAID5,  al  menos  3,  por  lo  que  será  Este es un sistema muy flexible; lo único que tenemos que ha‐
más caro.  cer para ampliarlo, es añadir más nodos a la red. Además, cada nodo 
  podrá tener un sistema RAID en su interior. 
Cuando montemos un RAID en nuestro equipo sólo veremos un   
disco,  es  decir,  siempre  se  verá  como  una  unidad  de  bajo  nivel.  El  Redes NAS (Network Attached Storage). 
sistema  operativo  no  accede  ni  controla  los  discos,  sino  que  será  la   
controladora la que se encargará de ello.  Son un conjunto de discos conectados en una red local, al igual 
Windows  2008  tiene  mecanismos  para  emular  RAID  (ver  más  que  la  SAN,  pero  conceptualmente  está  por  encima  del  sistema  de 
adelante “Almacenamiento. Windows 2008”).  ficheros, a diferencia de la SAN. 
  NAS se basa en un servicio de ficheros: acepta mensajes asocia‐
Almacenamiento. Redes.  dos a ficheros que trabaja con rutas (lee, escribe, cierra, abre, elimina, 
  etc., mensajes de alto nivel). 
En la última década se han utilizado otros tipos de sistemas de  Funciona de la siguiente manera: 
almacenamiento  para  mejorar  la  escalabilidad,  es  decir  que  pueda   
crecer  en  tamaño  y  que  siga  funcionando  (crecimiento  en  cuanto  a   El cliente accede al servicio de ficheros (NFS, SMB, etc.). 
volumen de datos, así como en cuanto a su capacidad de cálculo). 

52 
 
Implantación de Sistemas Operativos 
 
 Una  vez  se  ha  dado  la  orden  al  servicio  de  ficheros,  éste  rendimiento, pero ni son tolerantes a errores, ni 
desvía la petición al sistema de ficheros de cada uno de los  se pueden ampliar ni reflejar. 
nodos de la red.  ‐ Volumen Reflejado (similar a RAID1): Volumen to‐
  lerante  a  errores  que  duplica  la  información  en 
Como se dijo más arriba, dos equipos comunicados con SAMBA,  dos  discos  físicos.  Crea  redundancia  de  datos  al 
forman un NAS. Además, al igual que el SAN, cada nodo podrá tener  utilizar  dos  volúmenes  idénticos  llamados  espe‐
un sistema RAID en su interior.  jos. 
  ‐ RAID‐5: Volumen tolerante a errores con datos y 
Diferencias entre SAN y NAS.  paridades  distribuidas,  en  tres  o  más  discos  físi‐
  cos, de forma intermitente en bandas. La paridad 
 En  las  redes  SAN,  la  aplicación  accede  directamente  al  sis‐ es  un  valor  calculado  que  se  utiliza  para  recons‐
tema de ficheros, y la ruta se queda en el mapa. A partir  truir  datos  cuando  se  produce  un  error.  No  se 
de ahí, la red iSCSI trabajará con bloques, bytes, etc., por  podrán reflejar ni extender.  
lo que debajo del mapa, las rutas no tendrán ninguna utili‐  
dad.  Conceptualmente  estará  “por  debajo”  del  sistema  Para  administrar  los  volúmenes  dinámicos  hay  que  acceder  al 
de ficheros (orientado a bloques).  “Administrador de Discos” del Panel de Control. 
 En las redes NAS, el servicio de ficheros deriva al sistema de   
ficheros la petición del cliente, por lo que trabajará con ru‐ BACKUPS 
tas.  Conceptualmente  está  “por  encima”  del  sistema  de   
ficheros (orientado a ficheros).  Los  respaldos  son  una  copia  de  un  conjunto  total  o  parcial  de 
  los  datos  del  servidor.  Los  hay  de  dos  tipos,  que  con  compatibles  y 
Almacenamiento. Windows 2008  complementarios. 
   
Windows 2008 tiene mecanismos para emular el funcionamien‐  Backup  de  archivos.  Consiste en  respaldar  los  archivos  del 
to  de  los  RAID  a  nivel  software,  donde  el  árbitro  será  el  sistema  sistema de ficheros, pero no la estructura lógica. 
operativo que tratará los discos conectados como si fuera un RAID.   Backup  de  sistema.  Crear  una  imagen  exacta, byte  a  byte, 
Esto tiene como ventaja principal el ahorro de dinero. Sin em‐ del sistema de ficheros con todo su contenido. 
bargo,  tiene  algunos  inconvenientes.  Este  método,  donde  el  kernel   
maneja la circuitería, es más lento, pues en un RAID real, la controla‐ Antiguamente, los respaldos se hacían sobre cintas magnéticas, 
dora  lo  hace  a  través  del  hardware  directo;  por  tanto  la  emulación  pudiendo  caber  varios  de  ellos  en  una  sola  cinta.  Actualmente,  el 
tendrá un bajo rendimiento. Además, Windows no deja instalar nada  soporte  puede  ser  cualquier  otra  cosa.  A  partir  de  un  sistema  de 
del  sistema  (ni  service  pack,  ni  librerías,  etc.)  sobre  estas  unidades  ficheros se puede hacer un backup: 
RAID emuladas.    
Para ello, Windows 2008 distingue entre:   Normal. Se copia todo el sistema de ficheros cada vez que 
  se modifica un archivo dentro del mismo, independiente‐
 Discos Básicos. Aquellos discos físicos que contienen parti‐ mente de si se modificaron, o  no,  el resto de  ficheros.  Al 
ciones o volúmenes básicos.  hacer esto, cada backup ocupará lo mismo que la totalidad 
 Discos Dinámicos. Los discos dinámicos ofrecen una funcio‐ del  sistema,  sin  embargo,  te  garantizará  la  restauración 
nalidad  de  la  que  carecen  los  discos  básicos,  como  la  más limpia y rápida, pues sólo necesitaremos el último ba‐
posibilidad de crear volúmenes repartidos entre varios dis‐ ckup realizado para ello. 
cos  (volúmenes  distribuidos  y  seccionados)  y  de  crear   Incremental. Parte de un backup completo, donde a partir 
volúmenes  tolerantes  a  errores  (volúmenes  reflejados  y  del mismo, sólo se respaldarán aquellos ficheros que ten‐
RAID5).  Todos  los  volúmenes  de  los  discos  dinámicos  se  gan  el  atributo  de  modificado.  Hay  muchas  maneras  de 
consideran  volúmenes  dinámicos  (similares  a  las  particio‐ conocer si un archivo ha sido modificado o no (por ejem‐
nes), y son los siguientes:  plo,  a  través  de  la  comparación  de  sus  cadenas  HASH), 
‐ Volumen  Distribuido:  Su  espacio  abarca  más  de  pero algo normal es que el sistema de ficheros incorpore 
un disco físico, es decir, la información del mismo  un bit que indique si los ficheros han sido, o no, modifica‐
podrá estar repartida en varios discos. No son to‐ dos.  Así, cuando hagamos el  respaldo,  el sistema buscará 
lerantes a errores, pero se pueden reflejar.  aquellos  con  ese  bit  y  los  copiará,  quitándoles  el  bit  una 
‐ Volumen Seccionado (similar a RAID0): Almacena  vez hayan sido respaldados. Obviamente, este tipo de res‐
datos en stripes en dos o más discos, que se asig‐ paldo ocupará menos espacio que el normal, sin embargo, 
nan  de  forma  equitativa  y  alternada.  Mejora  el  si  quisiéramos  reconstruir  el  sistema  por  completo,  ten‐

53 
 
Implantación de Sistemas Operativos 
 
dríamos que cargar la copia total y cada una de las copias  Hyper–V no requiere del sistema host para funcionar, es decir, 
incrementales realizadas hasta el punto de restauración.  no  tienes  que  cargar  en  memoria  ni  el  kernel  ni  las  librerías  de  en‐
Por  ejemplo,  podríamos  programar  respaldos  normales  torno  gráfico  del  sistema  operativo.  Al  evitar  esto,  ya  estás 
cada semana y un incremental cada día.  optimizando  el  recurso  de  la  memoria;  casi  todo  el  espacio  de  la 
 Diferencial. Parte de un backup normal, y copia a partir de  misma estará dedica a las máquinas guests. 
ahí todos los archivos modificados, pero tras cada respaldo  Hyper–V es ideal para Datacenters con alta disponibilidad. 
diferencial, el bit que señala que se ha modificado un ar‐  
chivo no se elimina, por lo que aunque esos archivos ya no  Virtual PC. 
se  vuelvan  a  modificar,  se  copiarán  en  las  subsiguientes   
copias diferenciales. Lo malo es que si tenemos un sistema  Es un monitor a nivel de procesos, basado en un Virtual Moni‐
que  sufra  muchas modificaciones, tendremos  copias dife‐ tor (similar a VMware o Parallels). Funciona sobre el sistema operativo 
renciales  de  un  tamaño  similar  o  superior  al  original.  Lo  (en  nuestro  caso,  Windows  2008)  como  un  sistema  host,  por  lo  que 
bueno  es  que,  en  caso  de  pérdida,  sólo  necesitaremos  el  gran  parte  de  nuestra  memoria  quedará  ocupada  por  el  kernel  del 
backup completo y el último diferencial.  sistema  operativo,  rebajando  el  rendimiento  de  nuestra  plataforma 
  virtual (en este sentido, Hyper–V es más eficiente). 
Windows  2008  posee  un  asistente  de  backups  llamado  Win‐ Virtual PC está pensado para entornos de escritorio y contextos 
dows  Server  Backup.  Tendremos  que  elegir  un  backup  u  otro  en  más limitados que Hyper–V. 
función de su uso así como de las facilidades, y coste, que tendremos   
al hacer una restauración (no sólo del sistema, sino quizás de archivos  PREGUNTAS. 
o carpetas sueltas) en el futuro.   
  1. ¿Qué  es  un  servidor  y  qué  tipo  de  máquinas  pueden  ser 
VIRTUALIZACIÓN  servidores? 
  2. ¿Qué  parámetros  o  requisitos  básicos  debe  observar  cual‐
La virtualización está muy presente en Windows 2008 (ya se vio  quier servidor? 
algo  de  virtualización  en  el  tema  3,  página  13),  que  incorpora  dos  3. Describe brevemente las precauciones básicas en relación al 
mecanismos o modos de hipervisor:  entorno físico del servidor. 
  4. ¿En qué consiste el proceso de instalación desatendida? 
 Hyper–V. A nivel de sistema operativo.  5. Describe la secuencia de arranque de Windows 2008. 
 Virtual PC. A nivel de aplicación.  6. Comenta las diferencias entre los archivos de configuración 
  de arranque de 2008 y de su antecesor, el 2003. 
Hyper–V.  7. ¿Cuál es la función del Bootmgr? 
  8. Describe la estructura del registro de Windows 2008. 
Está alojado dentro del kernel del Windows 2008, por lo que es  9. ¿Qué  aspectos  tendremos  que  configurar  en  relación  a  la 
un hipervisor a nivel de sistema operativo. Hyper–V, funciona direc‐ conectividad de nuestra máquina? 
tamente sobre el hardware, es decir, la propia plataforma sustituye al  10. Describe brevemente las herramientas administrativas para 
sistema  operativo,  que  tiene  únicamente  lo  necesario  para  alojar  realizar auditorías. 
máquinas guest sobre él (ni siquiera cuenta con una interfaz gráfica).  11. Describe la estructura interna del visor de sucesos. 
Este mecanismo está sólo disponible para arquitecturas x86 de  12. ¿Qué es una vista y cómo funciona y se relaciona con el fil‐
64 bits (no lo soportan los de 32 bits).  tro? 
La virtualización está asistida desde el propio hardware a través  13. ¿Qué relación existe entre monitor de rendimiento, los con‐
de  mecanismos  como  Intel–VT.  Los  fabricantes  de  procesadores  y  tadores y los recopiladores de datos? 
placas implementan repertorios de instrucciones para que el hardwa‐ 14. ¿Cómo definirías un contador y un conjunto recopilador de 
re pueda adaptarse mejor a estos modelos de hipervisores, donde los  datos? 
esquemas  tradicionales  de  llamadas  al  sistema  se  verán  modificados  15. Diferencias entre disparadores y acciones. 
al tener directamente sobre el hardware un hipervisor, y no un siste‐ 16. Enumera las acciones y sus tipos en el administrador de ta‐
ma operativo. Esto, obviamente hará que el sistema tenga un mayor  reas y al menos tres disparadores. 
rendimiento y optimizará los tiempos de migración y recuperación de  17. ¿Qué es y para qué sirve una consola de administración? 
los sistemas virtualizados.   
 

54 
 
 

Tema Nueve 
 
 

Windows Server 2008 
 
Gestión en Red 
 
INTRODUCCIÓN  nar diferentes servicios a la vez, y por tanto, capaz de crear el contex‐
  to global que define los Dominios. Además, Active Directory, permitirá 
Windows 2008 está diseñado para funcionar como anfitrión de  coordinar varios controladores de dominio para que, en caso de fallo 
servicios en una red. Veremos lo fundamental para su gestión en red,  de uno de ellos, el dominio pueda seguir funcionando. 
comenzando por definir lo que es un DOMINIO.  El controlador de dominio almacena los datos de todas las má‐
  quinas, por lo que todas ellas tendrán que solicitar sus credenciales al 
¿QUÉ ES UN DOMINIO?  controlador.  En  un  dominio,  todos  los  objetos  confiarán  en  las  cre‐
  denciales  emitidas  por  el  controlador,  donde  un  protocolo  llamado 
Como se introdujo en el Tema 8, para Microsoft, un dominio es  KERBEROS  (ver  más  adelante),  se  encargará  de  que  dicha  credencial 
un  conjunto  de  equipos  conectados  en  red  con  ciertos  parámetros  sea fiable; es decir, que no haya sido cambiada, que haya sido emitida 
comunes. Microsoft lo define como:  por ese dominio, y que no haya sido monitorizada. Por tanto, el con‐
  trolador emitirá en todo el dominio credenciales válidas. 
Un  grupo  de  equipos  que  forman  parte  de  una  red  y   
comparten  una  base  de  datos  de  directorio  común.  Un  SERVICIO DE NOMBRES Y DHCP 
dominio  se  administra  como  una  unidad  con  reglas  y   
procedimientos comunes. Cada dominio tiene un nombre  Se ha definido un dominio como un contexto común de objetos, 
único.  donde  cada  uno  de  ellos  tendrá  su  propia  dirección  IP.  El  dominio 
  utilizará  cada  uno  de  estos  objetos  a  través  de  su  nombre,  y  no  a 
Es  decir,  un  dominio  crea  un  entorno  de  equipos/impresoras  través  de  su  IP,  por  lo  que  el  servicio  de  nombres  será  fundamental 
para que los usuarios los utilicen y puedan acceder a ellos libremente,  para su funcionamiento. Lo normal es que todo controlador de domi‐
pudiendo utilizar todos los recursos englobados dentro del mismo. En  nio sea a su vez un servicio de nombres. 
un  dominio,  usuarios  y  sus  relaciones,  objetos  o  recursos  (equipos,  Windows  posee un  servicio  de  DNS  (Domain Name  System,  se 
impresoras...),  privilegios  de  acceso,  etc.,  se  configuran  de  forma  vio por encima en el Tema 7), que habrá que instalar de forma explíci‐
global, formando un contexto común arbitrado por el controlador de  ta, es decir, no viene instalado por defecto. Básicamente, DNS traduce 
dominio.  los  nombres  en  direcciones  IP,  por  lo  que  podremos  asociarlas  a  los 
  nombres de las máquinas. En la década de los 90, Microsoft creó un 
Controlador de Dominio.  servicio de nombres llamado WINS (Windows Internet Name Service), 
  un servicio de software que, al igual que DNS, asignaba dinámicamen‐
El controlador almacenará una base de datos de usuarios y ob‐ te  direcciones  IP  a  nombres  de  equipo,  permitiendo  a  los  usuarios 
jetos, siendo el anfitrión de todos los servicios en una red: nombres,  tener  acceso  a  los  recursos  por  su  nombre,  en  vez  de  a  través  de 
web y Active Directory.  direcciones IP difíciles de reconocer y recordar. Debido a su incompa‐
Aunque se verá más adelante, Active Directory es un servicio de  tibilidad, quedó obsoleto, aunque Microsoft sigue utilizándolo. 
directorio que almacena información acerca de los objetos de una red  En “Administrar nuestro servidor”, habrá que agregar nueva fun‐
y la pone a disposición de los usuarios y administradores de la misma.  cionalidad para instalar DNS. Una vez instalado, habrá que configurarlo. 
Active Directory da a los usuarios acceso a los recursos permitidos en   
cualquier  punto  de  la  red  mediante  un  único  proceso  de  inicio  de  DOMAIN NAME SYSTEM (DNS) 
sesión. Proporciona a los administradores de red una vista jerárquica   
intuitiva de la red y un punto de administración único para todos sus  DNS es un protocolo jerárquico. DNS se basa en zonas cuya ad‐
objetos. Active Directory es una herramienta capaz de poner a funcio‐ ministración  está  delegada  a  servidores  concretos.  Por  ejemplo, 

55 
 
Implantación de Sistemas Operativos 
 
supongamos que existe un servidor DNS raíz con pocos nombres (sólo  podremos  añadir  cualquier  registro  A  adicional.  Con  esto,  ya 
alberga los “.com”, “.net”, “.org”, “.es”, “.fr”, etc.). Cada uno de estos  tendremos nuestro servicio DNS en marcha. 
nombres se corresponderá con una zona que estará administrada en   
un DNS distinto, un DNS que almacenará los nombres de cada una de  DYNAMIC HOST CONFIGURATION PROTOCOL (DHCP) 
las zonas anteriores. Es decir, la zona “.es” tendrá muchos más nom‐  
bres, y esos nombres podrán ser zonas, como “ejemplo.es”, que serán  Este es otro de los servicios con los que podremos complemen‐
administradas  a  su  vez  por  otro  servidor  DNS.  Podríamos  decir,  por  tar a nuestro controlador de dominio, aunque no es fundamental. 
tanto,  que  cada  zona  es  una  base  de  datos  que  contiene  registros  El protocolo DHCP permite la asignación dinámica de direccio‐
donde se indican los recursos que almacena.  nes IP y otros datos como la máscara de subred o la puerta de enlace, 
Cuando alguien administra una zona, es libre de crear todas las  haciendo posible una administración de red cómoda, flexible, segura y 
subzonas o recursos en ella como quiera. Nada nos impedirá crear una  confiable. DHCP asignará ámbitos de direcciones (creará una reserva o 
zona  DNS  de  ámbito  privado,  donde los  nombres  se  resolverán utili‐ pool) de donde los diferentes nodos obtendrán su dirección de red. Es 
zando el controlador de dominio.  decir,  en  vez de  configurar  a  mano  los  datos  a  nivel  IP  (dirección  IP, 
Algunos de los registros de las bases de datos de las zonas, son:  máscara, puerta de enlace) de las máquinas de tu dominio, cada una 
  de  ellas  se  lo  preguntará  a una  tercera  utilizando  el protocolo  DHCP 
 SOA (Start of Authority). Este registro indica que ese servicio  (trabaja en la capa 2 de enlace), evitando conflictos de direcciones y 
es  el  propietario  de  una  zona  DNS,  especificado  su  inicio  ayudando a conservar el uso de las direcciones IP de clientes en la red. 
de  autoridad.  Incluye  el  nombre  primario  del  servidor,  el  Por  ejemplo,  el  router  de  nuestras  casas  viene  equipado  con  este 
mail del administrador de dominio, el número de serie del  protocolo,  así,  cada  vez  que  arranca  nuestra  máquina,  le  pedirá  al 
dominio, y varios temporizadores encaminados a la actua‐ servicio DHCP los datos IP. 
lización de la zona.  Este protocolo simplifica mucho las cosas, pero habrá máquinas 
 NS (Name Server). Indica los servicios principales y secunda‐ concretas  que  no  podrán  conseguir  su  IP  mediante  DHCP,  como  los 
rios autorizados para esa zona.  servidores.  Sin  embargo,  al  tomar  como  base  las  direcciones  MAC 
 A (Address). Indica la IP de un recurso  (recuerda  que  trabaja  en  la  capa  2  del  modelo  TCP/IP),  podremos 
 PTR (Pointer). Indica el nombre de un equipo si la consulta  hacer que  un servidor  tenga  siempre  la  misma  IP.  ¿Cómo?  Asociare‐
es  una  dirección  IP  (es  decir,  búsquedas  inversas).  Si  no,  mos  siempre  esa  IP  con  la  dirección  MAC  del  servidor  y 
dirige el puntero a otra información.  conseguiremos  que  siempre  quede  reservada  para  él,  aunque  se 
  asigne dinámicamente. 
Además, existen muchos más registros, como CNAME (indica un  Debido  a  que  el  DHCP  se  descubre  por  mensajes  de  difusión, 
nombre  canónico  para  un  alias),  MX  (indica  el  intercambiador  de  tener  varios  servicios  de  ellos  funcionando  en  la  misma  subred  IP 
correo) y SRV.  podría  ser  problemático,  pues  podría  haber  solapes  de  ámbitos  (es 
  decir, que dos servicios DHCP le den la misma dirección IP a un mismo 
Configurar el Servicio de DNS  equipo). 
   
Una vez instalado DNS, tendremos que crear (al menos) una zo‐ Configurar el Servicio de DHCP 
na  de  resolución  directa,  con  al  menos  los  registros  SOA  y  NS.   
Además, podremos crear zonas de resolución inversa.  La instalación es similar a la del servicio de DNS. Debemos agre‐
Para terminar de configurar nuestra zona, tendremos que crear  gar  una  nueva  funcionalidad  en  “Administrar  nuestro  servidor”.  A 
un primer recurso de tipo A con el nombre de nuestra zona. Una vez  partir de aquí arrancará un sencillo asistente de instalación. 
creado éste, podremos crear todos los recursos tipo A que queramos.  Para  su  configuración  no  requeriremos  el  uso  de  servicios  de 
Tu DNS no conocerá todo el mapa de Internet. Él no administra‐ WINS,  ni  la  compatibilidad  con  IPv6,  sino  que  sólo  tendremos  que 
rá los “.com” por lo que tendrá que enviar la petición a otro DNS. La  crear nuestro ámbito de direcciones ofrecidas, indicando el: 
forma para ello variará, pero lo que está claro es que tendremos que   
tener correctamente configurado otros servicios a los que reenviar las   Rango de direcciones. 
peticiones en caso de que nuestro servicio no sepa resolverlas.   Máscara. 
   Puerta de enlace. 
Instalación.  Nos  vamos  a  “Administrador  del  Servidor”,  le  da‐  
mos a “Funciones” y luego a “Servicio DNS”. Ahí lo instalamos.  Las IP concedidas a las diferentes MAC se verán en el “Conteni‐
En  el  panel  DNS,  a  la  derecha  se  crearán  2  registros  de  inicio,  do de ámbito”, “Concesiones de direcciones”. El servicio permite otras 
uno SOA y otro NS. Además, tendremos que crear un primer re‐ configuraciones más avanzadas como la asignación del nombre de la 
gistro tipo A con la IP del servidor, si no, no funcionará. Después  máquina y la IP a través de la dirección MAC (para hacer esas reservas 
que se comentaron antes).  

56 
 
Implantación de Sistemas Operativos 
 
Una vez finalizado el asistente de instalación, el servicio estará  la,  Zentyal,  tiene  una  interfaz  web  para  conectar  un  servidor  para 
listo para utilizarse.  controlar todo desde un panel gráfico, pero está muy lejos a nivel de 
Este protocolo será especialmente útil, por ejemplo, en una ofi‐ fiabilidad  de  la  versión  Windows).  No  será  nada  sencillo  configurar 
cina en la que se arranquen guest de vez en cuando. De esta forma,  estos servicios de forma manual y por separado, y luego integrarlos. 
podremos decir que los host tengan IP fijas y dejaremos que los guest  Active Directory es la solución de Microsoft para la creación de 
virtuales  pidan  sus  IP  por  DHCP  (así,  todas  tendrán  una  IP  correcta).  dominios; más que un servicio, es un conjunto de servicios para per‐
Hay que tener en cuenta que DHCP funciona a nivel de enlace (capa  mitir  que  toda  la  información  de  usuarios,  objeto  e  impresoras,    sea 
2),  es  decir,  no  traspasará  un  router,  por  lo  que  habrá  que  instalar  accesible desde las demás máquinas del dominio, evitando acumular 
DHCP en cada red (interno a la subred IP).  esa información en cada una de las máquinas. Cualquier usuario podrá 
Las  redes  WiFi  utilizan  el  protocolo  DHCP  para  no  tener  que  acceder a cualquier máquina sin necesidad de tener cuenta de usuario 
configurar la IP de cada terminal a mano.  en ella. Para esto serán necesarios varios servicios de los que veremos 
  los  siguientes  (aunque  básicamente,  Active  Directory  es  un  conjunto 
ACTIVE DIRECTORY  de los dos últimos): 
   
Active  Directory  es  un  servicio  de  directorio  que  almacena  in‐  DNS (Domain Name System). Es el protocolo de resolución 
formación acerca de los objetos de una red y la pone a disposición de  de nombres, utilizado para resolver la ubicación a nivel de 
los usuarios y administradores de la misma. Active Directory da a los  red a partir de un nombre. Active Directory requiere siem‐
usuarios  de  red acceso  a  los  recursos permitidos  en  cualquier  punto  pre  este  servicio  para  resolver  la  ubicación  de  los 
de  la  red  mediante  un  único  proceso  de  inicio  de  sesión,  proporcio‐ elementos registrados en su base de datos, aunque se ins‐
nando a los administradores una vista jerárquica e intuitiva de la red,  tala a parte de Active Directory. Puesto que DNS no exige 
y un punto de administración único para todos sus objetos.  muchos recursos, normalmente el controlador de dominio 
El servicio de directorio Active Directory para Windows cataloga  también  será  nuestro  servicio  de  nombres  a  la  hora  de 
la información acerca de todos los objetos de una red, incluidos usua‐ configurar un dominio. 
rios, equipos e impresoras, y distribuye la información por toda la red.   DHCP  (Dynamic  Host  Configuration  Protocol).  Se  instala  a 
Además,  proporciona  un  modo  coherente  para  dar  nombre,  describir,  parte. 
buscar,  tener  acceso,  administrar  y  asegurar  información  sobre  estos   LDAP (Lightweight Directory Access Protocol). Es el protoco‐
recursos  individuales.  La  seguridad  está  integrada  en  Active  Directory  lo de acceso principal de Active Directory, como tal, tendrá 
mediante la autenticación de inicio de sesión y el control de acceso. Con  que ser instalado tanto en el cliente como en el servidor. 
Active Directory sólo habrá que iniciar la sesión una vez para encontrar y  Por decirlo de  forma  sencilla, LDAP  regula el acceso a los 
utilizar fácilmente los recursos de cualquier parte de la red.  contenedores creados por Active Directory con toda la in‐
Active  Directory  usa  objetos  para  representar  recursos  de  red  formación  de  usuarios  y  objetos.  Se  entiende  por 
como usuarios, grupos y equipos. Estos objetos (como un usuario, una  contenedor,  cualquier  tabla  que  contiene  nombres  de 
impresora o un programa) son las entidades que conforman una red.  elementos,  cada  uno  de  ellos  cos  sus  características;  es 
Por ejemplo, un objeto de usuario puede contener valores para atri‐ decir, una base de datos muy simple. Un servicio LDAP da 
butos  como  el  nombre,  apellidos  y  nombre  de  inicio  de  sesión  del  acceso a ese contenedor (o base de datos ligera) donde se 
usuario. Por fines organizativos, los objetos se colocarán en “contene‐ almacenan  las  entidades  y  sus  propiedades.  Active  Direc‐
dores”  (o  unidades  organizativas),  como,  por  ejemplo,  la  unidad  tory utiliza este protocolo para almacenar información de 
organizativa del departamento de mercadotecnia o un contenedor de  usuarios,  objetos,  configuraciones,  directivas,  etc.  Lo  pri‐
objetos relacionados, como impresoras. El acceso a estos contenedo‐ mero para crear un dominio será montar este servicio. 
res estará reglado por LDAP (ver más adelante), y así cualquier usuario   Estándar de Autenticación Kerberos. Es un estándar (es de‐
podrá acceder a la información contenida en ellos.  cir, un diseño, no una implementación); un mecanismo de 
Aunque  Active  Directory  sólo  está  disponible  actualmente  en  autenticación  utilizado  para  comprobar  la  identidad  de 
controladores  de  dominio  de  Windows,  se  podrán  incluir  al  dominio  usuarios o hosts. Es un protocolo para permitir una comu‐
estaciones de trabajo UNIX. Aunque tendrán acceso total a los recur‐ nicación  confiable  y  segura.  Con  él,  sabremos  que  los 
sos compartidos dentro del dominio, sólo aquellas máquinas basadas  actores son quienes dicen ser y nadie podrá seguir o copiar 
en Windows con el software de cliente Active Directory podrán utilizar  la  comunicación,  permitiendo  que  dos  entidades  en  una 
Active  Directory  para  solicitar  información  acerca  de  estos  recursos  red  puedan  mostrar  sus  identidades  de  manera  segura, 
compartidos.  evitando  que  sean  usurpadas.  Cuando  queramos  recupe‐
Sin embargo, se podrán montar dominios sin Active Directory a  rar información del Active Directory de forma remota nos 
través de paquetes y aplicaciones (será necesario un servidor SAMBA,  garantizará su fiabilidad. Algo parecido a Kerberos se utili‐
servidor  DNS,  servidor  LDAP  y  estándar  Kerberos)  sobre  Linux,  pero  za para evitar la monitorización de las páginas de los bancos. 
tendremos que configurarlos de forma aislada (la distribución españo‐  

57 
 
Implantación de Sistemas Operativos 
 
CONCEPTOS  ción, tendríamos varios árboles de igual importancia, sin que uno de 
  ellos sea raíz de otro, teniendo entonces un bosque de dominio. 
Controlador de Dominio.   
  Ejemplo – Árbol de dominio único. Si creamos un dominio cuyo 
Máquina que  centraliza la ejecución de  los servicios del  Active  nombre  es  IES.COM,  la  máquina  controladora  se  llamará 
Directory  (la  máquina  donde  se  instala  ese  directorio).  Es  decir,  la  DC1.IES.COM.  Después  acoplaremos  el  resto  de  máquinas  al 
máquina  donde  se  instale  el  Active  Directory,  será  el  controlador  de  dominio,  que  se  llamarán  PCX.IES.COM.  Una  vez  hecho  esto, 
dominio.  podremos crear cuentas de usuarios e impresoras en el contro‐
  lador, para que los usuarios puedan loguearse en cualquier PC y 
Árbol de Dominio.  acceder  a  cualquier  información  del  dominio  desde  cualquier 
  terminal. Incluso, aunque uno de los PC tenga un NAS, cualquier 
Estructura  conceptual  que  representa  controladores  en  forma  usuario  desde  otro  PC  podrá  acceder  a  las  carpetas  en  red 
de árbol y sus máquinas asociadas. Requiere uno o varios controlado‐ siempre que tenga permisos para ello, pues su identificación es‐
res  de  dominio.  Una  vez  montado  un  árbol  de  dominio,  podrá  ser  tará firmada por DC1. Los usuarios serán globales. Si DC1 se cae, 
configurado a través de comandos mediante la PowerShell (una inter‐ todo  dejará  de  funcionar.  Para  evitarlo,  podremos  introducir 
faz de línea de comandos con posibilidad de escritura y conjunción de  una controladora adicional, DC2, donde tendremos que activar 
comandos por medio de módulos de visual Basic), que permitirá hacer  el Active, y configurarlo como controlador de dominio para uno 
scripts  y  macros  para  automatizar  tareas,  incluso  de  forma  remota.  que ya existe. DC2 tardará un rato en sincronizarse, pero cuan‐
Por ejemplo, podríamos automatizar la creación de todas las cuentas  do lo haga, tendrá la misma información que DC1. 
de  usuarios  con  un  script  que  leyera  los  nombres  de  un  archivo.  La  Aunque  tener  más  controladores  no  mejora  el  rendimiento,  la 
PowerShell será fundamental para sacarle todo el partido al servidor.  naturaleza de la organización podrá requerir de más dominios. 
Todo árbol de dominio está compuesto por:   
  Ejemplo – Dominio raíz y dominios delegados. Si queremos crear 
 Uno o varios controladores raíz. Todos estos controladores  subdominios, lo primero que tendremos que hacer será comprar 
tendrán una base de datos con el mismo contenido. Si son  otra máquina server, instalar Windows 2008 y ponerle un nombre 
varios controladores, esta réplica nos permitirá tener tole‐ al  dominio,  en  nuestro  ejemplo,  ADMIN.  Ahora  tendremos  que 
rancia  a  fallos.  De  forma  automática,  al  crear  un  instalar  Active  Directory,  para  convertirla  en  la  controladora  de 
controlador adicional en un dominio ya existente, se crea‐ un dominio nuevo. Aunque dicho dominio sea nuevo, será dele‐
rá una réplica de la base de datos y ambos controladores  gado del dominio IES.COM, y estará por debajo jerárquicamente. 
se  comunicarán.  NO  EXISTEN  DIFERENCIAS  entre  un  con‐ El  nuevo  dominio  se  llamará  ADMIN.IES.COM.,  y  el  controlador 
trolador de dominio primario y uno secundario, aunque si  DC.ADMIN.IES.COM. En los permisos entra la política de grupos, y 
la  información  de  un  usuario  es  creada  en  el  controlador  sus restricciones vendrán dadas por los grupos a los que pertene‐
secundario,  esta  información  tardará  un  tiempo  en  estar  ce. 
sincronizada con el primario, y si  las  máquinas tienen co‐ A nivel de DNS funciona de forma jerárquica. Si no tiene la di‐
mo  DNS  primario  la  del  controlador  creado  en  primer  rección, le pregunta al controlador de nivel superior.  
lugar,  podría  tardar  un  tiempo  hasta  que  se  comuniquen   
entre  controladores,  creando  retardos  y  negaciones  tem‐ INSTALACIÓN 
porales.  Cada  máquina  podrá  ser  configurada  como  se   
desee para preguntar en primer lugar a un controlador o a  Antes  de  instalar  Active  Directory  habrá  que  tener  en  cuenta 
otro.  unas cuestiones previas. Tendremos que configurar la red (TCP/IP) con 
 Máquinas  asociadas  a  ese  dominio.  Introduciendo  el  DNS  una  dirección  IP  estática;  tener  instalado  el  servicio  DNS  (si  se  ha 
del  controlador  y  el  nombre  del  dominio,  se  unirán  al  configurado  previamente,  lo mejor  será  borrar la zona de  resolución 
mismo.  directa  para  evitar  problemas  posteriores);  ponerle  un  nombre  a  la 
 Controladores de dominios hijos.  máquina  desde  “Propiedades  del  Equipo”  (siempre  minúsculas,  sin 
  espacios ni tildes); y configurar el DNS primario con la IP del controla‐
Bosque de Dominio.  dor del dominio (la alternativa podría ser, por ejemplo, 8.8.8.8, el DNS 
  de google). 
Estructura  conceptual  que  representa  un  conjunto  de  árboles  Para  iniciar  la  instalación  ejecutaremos  el  comando  dcpromo 
de dominio de similar importancia (no comparten raíz). Cuando tene‐ (Domain  Controler  PROMOtion).  Una  vez  ejecutado,  arrancará  el 
mos  un  conjunto  de  dominios,  tendremos  un  árbol,  y  esos  dominios  instalador.  Lo  primero  que  nos  preguntará  es  si  queremos  crear  un 
tendrán  una  jerarquía  relacionada.  Si  tuviéramos  dominios  sin  rela‐ controlador  en  un  bosque  existente  (agregándolo  como  controlador 
en  un  dominio  existente,  o  creando  un  controlador  como  raíz  de 

58 
 
Implantación de Sistemas Operativos 
 
dominio  en  un  dominio  nuevo,  por  ejemplo,  ADMIN.IES.COM,  es  ma  jerarquizada.  Aunque  tienen  la  apariencia  de  directo‐
decir,  el  segundo  controlador  de  IES.COM),  o  crearlo  en  un  bosque  rios en árbol, no son tal cosa, sino, tal y como se ha venido 
nuevo  (haciendo  referencia  al  ejemplo  anterior,  sería  el  dominio  diciendo, una estructura organizativa de la base de datos. 
IES.COM).  Los  contenedores  se  utilizan  para  organizar  elementos 
Habrá una serie de pasos más entre los que estarán la elección  (agrupar y contener a otros objetos); son propios de la ba‐
del nombre del dominio; localización de las bases de datos (la ubica‐ se  de  datos  y  por  tanto  no  tendrán  reflejo  fuera  de  ella. 
ción de los ficheros que van a almacenar la información de esa base  Ten en cuenta que no influirá el cómo organices los conte‐
datos  que  guarda  el  Active  Directory,  por  defecto  en  los  directorios  nedores con las relaciones existentes entre ellos. Además, 
NTDS y SYSVOL de la raíz, pero podría interesar que esa base de datos  aunque borremos un contenedor, no borraremos todos los 
esté en una unidad RAID); y contraseña del usuario administrador (el  objetos contenidos en el mismo. 
administrador  tendrá  el  poder  de  crear  nuevos  objetos  y  de  unir   Marco  derecho:  Una  vez  pinchado  en  uno  de  los  contene‐
máquinas a él). Una vez concluida la instalación podremos exportar su  dores  de  la  izquierda,  su  contenido  aparecerá  en  la 
configuración para un modo desatendido.  derecha. Hay que tener en cuenta que aquí también podrá 
  aparecer cualquier contenedor que esté contenido dentro 
Asociar máquinas a ese dominio.  de otro. 
   
Para  unir  una  máquina  con  Windows  XP  a  un  dominio  no  me  Los usuarios y los grupos son objetos de la base de datos, don‐
hará falta acceder al sistema operativo Windows 2008, pues funciona  de los objetos “grupo” relacionan distintos objetos “usuario”. Esto, sin 
como servidor.  embargo, no implica que los “usuarios” estén contenidos en “grupos”, 
Lo primero, en “Propiedades” de “Mi PC”, cambio el nombre del  sólo relacionados. Es decir, si eliminamos un grupo, no eliminaremos 
equipo: le pongo un nombre, elijo un grupo (Workgroups) y le pongo  los  objetos  relacionados  con  él,  sino  los  permisos  asociados  a  ese 
el nombre del dominio creado. Una vez hecho esto te pedirá el nom‐ grupo. Por tanto, un objeto grupo no contiene a objetos usuario. 
bre  y  clave  de  alguien  con  privilegios  de  administrador.  Una  vez  Todo objeto está identificado por un SID único, y como objetos, 
introducido, la máquina estará unida al dominio (te lo comunicará por  los usuarios y grupos tendrán el suyo propio. 
pantalla)  y  tendrás  que  reiniciarla  para  poder  acceder  a  todos  los  Para  crear  un  nuevo  usuario  o  grupo  simplemente  habrá  que  
recursos del mismo.  pulsar el botón  derecho  sobre  el contenedor  que queramos,  y elegir 
  nuevo  usuario  o  grupo  (con  su  login,  nombre,  etc.,  o  ámbito  y  tipo 
USUARIOS Y GRUPOS  distribuido para grupos), y tener cuidado con las contraseñas (directi‐
  vas de seguridad). De los usuarios podremos elegir la caducidad de su 
La gestión de los usuarios y los grupos es bastante compleja con  contraseña,  el  horario  de  acceso  a  cualquier  equipo  del  dominio,  la 
Active Directory, ya que entrarán en juego las políticas de grupos que  capacidad de disco y el control remoto. 
se verán en el 2º curso del ciclo.   
Al  crear  un  dominio,  podremos  tener  un  espacio  común  de  INTERNET INFORMATION SERVER (IIS) 
usuarios  globales,  con  una  base  de  datos  global  de  usuarios,  donde   
tanto usuarios como grupos serán objetos de la misma.  Con este servicio podremos convertir nuestro Windows 2008 en 
La  identidad  de  un  usuario  se  compartirá  entre  todas  las  má‐ un servidor web. La versión libre es Apache. 
quinas  y  procesos  del  dominio,  y  estará  basada  en  un  certificado  de  IIS engloba servicios de software que admiten la creación, con‐
confianza (según el estándar Kerberos) expedido por el controlador de  figuración y administración de sitios Web, además de otras funciones 
dominio  (kerberos  asegurará  que  estos  certificados  no  puedan  ser  de  Internet.  Entre  los  Servicios  de  Internet  Information  Server  se 
emitidos por ninguna otra máquina). Es decir, los procesos decidirán,  incluyen  el  Protocolo  de  transferencia  de  noticias  a  través  de  la  red 
en  base  a  la  identidad  del  solicitante,  si  podrán  o  no  hacer  algo.  El  (NNTP),  el  Protocolo  de  transferencia  de  archivos  (FTP),  el  Protocolo 
sistema  operativo  comparará  la  identidad  del  cliente  que  arranca  el  simple de transferencia de correo (SMTP), el protocolo de transferen‐
proceso con la identidad de su base de datos, y en base a eso, podrá o  cia de hipertexto (HTTP), etc. 
no llevar a cabo las acciones que se proponga.  Tal y como se concibió Internet, cada una de nuestras máquinas 
Para la gestión de los usuarios y grupos utilizaremos una conso‐ podría  funcionar  como  un  servidor  web,  con  una  dirección  IP  fija  y 
la  de  administración  predefinida:  “Usuarios  y  equipos  del  Active  propia, pudiendo exportar su ruta absoluta al resto de usuarios conec‐
Directory”.  Una  vez  dentro,  veremos  que  está  compartimentada  en  tados  a  la  red.  Por  ejemplo,  si  un  cliente  solicitara  leer  en  nuestra 
dos marcos:  máquina,  “index.html”,  el  servicio  web,  cuya  ruta  absoluta  podría  ser 
  “C:\miweb”, le daría la ruta “C:\miweb\index.html”, llamando y leyendo 
 Marco izquierdo: Donde se encuentran los “contenedores”  directamente sobre los archivos estáticos de nuestro disco. 
o unidades organizativas del Active Directory. Muestra el  En la realidad, no contamos con una IP fija, y si queremos que 
contenido de la base de datos del Active Directory de for‐ nuestros contenidos estén al alcance de todos, habrá que recurrir a un 

59 
 
Implantación de Sistemas Operativos 
 
servidor  con IP  fija  para  alojarlos  en la  red.  Actualmente,  el  servidor  IIS es compatible con módulos .NET, como Visual Basic Script, y 
web no lee contenidos de un fichero estático, sino que funciona me‐ ASP, y permite la gestión de diferentes sitios web. 
diante  la  generación  dinámica  de  contenidos,  trabajando  sobre   
procesos  que  están  ejecutándose  en  la  máquina.  Cuando  un  cliente  Instalación.  Para  instalarlo,  en  la  consola  principal,  habrá  que 
hace una petición vía HTTP, el servidor web preguntará a esas aplica‐ buscar las funciones y pulsar “agregar nueva función”. Seleccio‐
ciones  en  ejecución  acerca  de  la  ubicación  de  dicha  petición.  Las  namos  el  componente  IIS  e  iniciamos  la  instalación  (según  la 
aplicaciones  accederán  a  una  base  de  datos  donde  se  encontrará  el  distribución nos pedirá, o no, el disco de instalación). Y ya esta‐
contenido  solicitado,  añadiéndole  código  HTML  para  mandársela  al  rá  listo.  Para  acceder  a  él,  buscaremos  “Administrador  de 
servidor web que se encargará de enviar dicha información al cliente  Internet  Information  Services  (IIS)”  en  “Herramientas  Adminis‐
que verá el resultado de dicho montaje en su navegador.  trativas”.  Cuando  nos  metamos,  veremos  que  por  defecto  ha 
IIS permite ser gestionado desde la MMC como un componente  creado,  en  “Sitios”,  “Default  Web  Site”,  una  página  web  que 
más  y  permite  su  administración  de  forma  remota  (crucial  para  el  podremos  modificar,  y  que  si  estamos  conectados  en  red  con 
caso de los servidores).  otros equipos, podrán ver accediendo a nuestro servidor. 
Por defecto, el directorio “raíz” del servidor será “C:\inetpub”,   
donde se encontrará todo el árbol de ficheros relacionado con el servicio   
web.  Entre  los  directorios  que  encontraremos  dentro  de  esta  carpeta,  PREGUNTAS. 
están:   
  1. Instala el servicio DNS. 
 C:\inetpub\ftproot\> Donde se encuentra las cuen‐ 2. Instala el Active Directory. 
tas de usuario con acceso FTP.  3. Añade una máquina a un dominio. 
 C:\inetpub\wwwroot\> Donde está el contenido web  4. Añade dos máquinas al dominio. 
de nuestro servidor.  5. Instala el servicio IIS. 
 C:\inetpub\mailroot\>  Que  es  el  directorio  raíz  de   
los usuarios con servicio de mail. 
 

60 
 
 

Tema Diez 
 
 

 
Seguridad 
 
CRIPTOGRAFÍA  patrones que harían más sencillo desentramarlo. Por tanto, para darle 
  robustez a nuestro algoritmo podríamos añadirle la clave “n”. De esta 
La criptografía es un conjunto de técnicas que estudia la modifi‐ forma, cuando quisiéramos cifrar un mensaje con nuestro algoritmo, 
cación  de  la  información  en  base  a  unas  reglas  acordadas  entre  un  sumaríamos “n” posiciones a cada carácter. Con esto conseguiríamos 
emisor y un receptor, y que nadie más conoce. De esta forma, podre‐ que aunque nuestro algoritmo fuese público, no fuera posible desen‐
mos ocultar el contenido de un mensaje a receptores no autorizados.  tramar  nuestros  mensajes  codificados  (aunque  podrían  conseguir 
Ten en cuenta que la criptografía no oculta la señal (de eso se encarga  descifrarse mediante la búsqueda de patrones a base de fuerza bruta). 
la  Esteganografía,  que  hace  que  el  mensaje  se  transmita  sin  que  El secreto estaría en la clave, no en el algoritmo. Por tanto, la robus‐
denuncie  siquiera  su  existencia)  sino  el  contenido  que  transporta  la  tez del cifrado debería residir en el secreto de la clave, no en el del 
señal. Además de ocultar dicho contenido, la criptografía no asegura  algoritmo. 
nada más, ni siquiera que el mensaje no sea manipulado, sólo lo hará   
ilegible para aquellos usuarios no autorizados.  TIPOS DE CIFRADO 
   
ELEMENTOS  Existen  básicamente  dos  tipos  de  cifrados,  que  se  diferencian 
  en la gestión que hacen de sus claves. 
La criptografía trabaja con:   
   Cifrado simétrico. 
 Mensajes  en  claro.  Es  decir,  el  mensaje  que  queremos   Cifrado asimétrico. 
transmitir antes de que sea cifrado.   
 Algoritmo  de  cifrado.  El  conjunto  de  instrucciones  que  se  Cifrado Simétrico. 
aplicarán al mensaje para modificarlo. Los algoritmos pue‐  
den  incorporar  “puertas  traseras”  (aquellos  mecanismos  Este tipo de cifrados son del tipo del ejemplo que hemos visto 
que nos permitirán descifrarlo sin el uso de claves).  antes, es decir, una vez cifrado un mensaje, sólo podrá ser descifrado 
 Clave.  Elemento  variable  que,  aplicado  al  algoritmo,  hará  aplicando  la  misma  clave  (es  decir,  si  n=3,  restaré  tres  posiciones  a 
que éste varíe en cómo modificará el mensaje en claro pa‐ cada carácter y ya tendré mi mensaje en claro); por tanto, en el cifra‐
ra su cifrado.  do  simétrico,  emisor  y  receptor  cifrarán  y  descifrarán  con  la  misma 
clave. Esto supone un problema claro, ¿cómo acuerdo dicha clave de 
 Mensaje cifrado. Aquello en lo que se convierte el mensaje 
forma  segura?  Ya  que  la  robustez  de  mi  cifrado  está  basada  en  el 
en  claro  después  de  haber  sido  sometido  a  las  modifica‐
secreto  de  la  clave,  distribuirla  a  mi  receptor  de  forma  segura  será 
ciones del algoritmo reguladas por la clave. 
complicado. A pesar de que este cifrado es el más seguro y rápido (en 
 
tiempo de cálculo), cuenta con ese problema, además de la incomodi‐
FUNCIONAMIENTO 
dad  de  tener  que  generar  una  clave  distinta  para  cada  uno  de  los 
 
receptores  de  nuestros  mensajes  cifrados.  Como  alternativa,  y  para 
El algoritmo toma el mensaje y la clave, procesándolo y cifrán‐
solucionar estos problemas, apareció en la última década del siglo XX 
dolo en función de ésta, y expulsando por su salida el mensaje cifrado. 
el cifrado asimétrico. 
Por  ejemplo,  el  cifrado  César  aumenta  en  3  cada  código  de  cada 
 
carácter. Es decir, si ciframos de esta forma la palabra “ala”, al proce‐
Cifrado Asimétrico. 
sarla con nuestro algoritmo (sumar 3 a cada carácter), tendremos en 
  
nuestra salida el siguiente mensaje cifrado: “dod”. Si nuestro algorit‐
Con este cifrado, el emisor y el receptor cifran y descifran con 
mo  se  hiciera  público,  todo  el  mundo  podría  descifrar  nuestros 
claves distintas. Cuando quiera cifrar un mensaje generaré un par de 
mensajes, y la seguridad de nuestro código estaría a expensas de que 
claves  mellizas  (es  decir,  se  generarán  al  mismo  tiempo  y  una  será 
nuestro algoritmo nunca fuera descubierto. Además, si nuestro algo‐
dependiente de la otra): 
ritmo  hiciera  siempre  las  mismas  modificaciones,  al  final  alumbraría 
 

61 
 
Implantación de Sistemas Operativos 
 
 Clave  pública.  Aquella  que  publicaremos  para  que  todo  el  tamaño.  Además,  lo  normal  es  que  para  dos  cadenas  diferentes  sea 
mundo la utilice para cifrar los mensajes que vayan desti‐ muy difícil que la función hash genere una misma cadena de salida. 
nados a nosotros (es decir, lo normal es que se utilice para  La cadena “hash” de un fichero o mensaje es su huella digital, es 
cifrar).  decir,  si  dos  mensajes  generan  diferentes  “hash”,  no  serán  el  mismo 
 Clave  privada.  Que  será  la  única  clave  del  par  que  podrá  mensaje. 
descifrar  los  mensajes  cifrados  con  nuestra  clave  pública   
(es decir, lo normal es que se utilice para descifrar).  Ejemplo. Si Juan recibe un mensaje de Pepe, ¿cómo puede ase‐
  gurarse que nadie tocó el fichero durante la transmisión? Para 
No obstante, aunque lo lógico será cifrar con nuestra clave pú‐ asegurar la integridad tendrá que hacer lo siguiente. Pepe quie‐
blica y descifrar con la privada, podremos cifrar con la privada, y así,  re enviar un mensaje a Juan. Lo primero que tiene que hacer es 
cualquiera  que  tenga  la  pública  podrá  descifrar  nuestro  mensaje.  Es  calcular la cadena hash del mensaje en claro. Luego, adjunta la 
decir, podremos descifrar o cifrar con una u otra, sin que importe si es  huella digital y el mensaje, y cifra el conjunto con la clave públi‐
pública o privada.  ca  de  Juan.  Cuando  Juan  recibe  el  paquete,  lo  descifra  con  su 
Este cifrado tiene la ventaja de que no tendremos que generar  clave privada, separando la huella digital del mensaje en claro. 
claves distintas para cada uno de los receptores de nuestros mensajes  Para comprobar que el mensaje no ha sido manipulado por ter‐
(ya que siempre descifraré con una sola clave), y no habrá problema  ceros,  lo  único  que  tendrá  que  hacer,  será  calcular  la  cadena 
para acordar la clave de forma segura, desapareciendo el problema de  hash del mensaje  en claro de  Pepe  y  compararla con la huella 
la distribución de las claves (los dos problemas del cifrado simétrico),  digital que adjuntó Pepe. Si ambas cadenas hash son iguales, se 
pudiendo consultar, para cifrar, un directorio público de claves públi‐ habrá asegurado la integridad. 
cas (por ejemplo, en Internet).   
Sin embargo, el cifrado asimétrico será más lento (en tiempo de  FIRMA DIGITAL 
cálculo) que el cifrado simétrico, y podrá romperse a través de la factori‐  
zación  (es  menos  segura  que  el  cifrado  simétrico,  que  sólo  podremos  Aún  habiendo  garantizado  la  integridad,  quedará  un  último 
descifrar aplicando la fuerza bruta), ya que la clave pública será el resul‐ problema: Juan seguirá sin estar seguro de que ha sido Pepe quien ha 
tado del producto de dos números primos de gran longitud (donde uno  escrito el mensaje. El mensaje podría haber sido interceptado; alguien 
de los factores de ese producto será la clave privada). Es decir, si multi‐ podría haber modificado el mensaje de Pepe, haber calculado la hash 
plico los números primos 2 y 3 (uno de ellos mi clave privada), obtendré  del mensaje alterado, haber cifrado el conjunto con la clave pública de 
mi  clave  pública,  6.  Si  factorizo  6,  obtendré  pues  la  clave  privada.  Sin  Juan y habérselo enviado a éste, que al recibirlo habría comprobado 
embargo,  la  velocidad  de  cálculo  a  la  hora  de  factorizar  números  con  que  el  mensaje  ha  permanecido  íntegro.  Sin  embargo,  desconocería 
muchísimos dígitos no es de tiempo razonable (se podría tardar más de  que  ha  sufrido  un  ataque  man‐in‐the‐middle,  y  que  el  mensaje  de 
1000 años en completar una operación semejante).  Pepe ha sido suplantado. 
  Sólo la firma digital asegurará que un mensaje es de quien dice 
Ejemplo. Si Pepe y Juan quieren comunicarse de forma cifrada,  ser. La firma no es más que una función hash del mensaje, pero cifra‐
Pepe  utilizará  la  clave  pública  de  Juan  para  cifrar  su  mensaje.  da con la clave privada del emisor. De este modo, cuando el mensaje 
Cuando se lo envía a Juan, como éste ha generado el par de cla‐ sea descifrado con la clave privada del receptor, la firma se descifrará 
ves,  posee  la  clave  privada  (única  capaz  de  descifrar  ese  con la clave pública del emisor. 
código), y la utiliza para desentramar el contenido del mensaje   
de Pepe.  Ejemplo. En este caso, partimos de nuevo de nuestro mensaje en 
  claro.  Obtenemos  su  hash,  y  ciframos  esa hash  con nuestra clave 
INTEGRIDAD  privada. La cadena hash (cifrada), la adjuntamos al mensaje en cla‐
  ro,  y el  conjunto lo ciframos  con la clave pública del destinatario. 
Es la propiedad que denota el carácter inalterado de un mensaje  Cuando el destinatario recibe el  mensaje, lo descifra con su clave 
durante  su  transmisión,  se  garantiza  cuando  puedes  asegurar  que  el  privada y obtiene una hash cifrada (es decir, una firma digital) y el 
mensaje no  haya  sido  modificado. Los  tipos  de  cifrado  vistos  antes  no  mensaje en claro. El mensaje dice ser de Pepe, por lo que el desti‐
solucionan  el  problema  de  la  integridad,  pues  no  la  garantizan,  por  lo  natario  coge  la  clave  pública  de  Pepe  y  la  utiliza  para  descifrar  la 
que  habrá  que  combinar  otras  técnicas,  como  Hashing  y  funciones  hash adjunta. Si consigue descifrar la hash, entonces el que la ha ci‐
resumen.   frado ha sido Pepe (asegurando identidad), y si al calcular la hash 
La integridad se podrá preservar con una función hash, como el  del mensaje en claro coincide con la hash descifrada de Pepe, en‐
MD5  (message‐digest  algorithm  5),  que  aplicada  a  un  mensaje  o  tonces también se habrá asegurado la integridad. 
fichero podrá utilizarse para crear su firma digital (o marca de agua).   
Como  se  vio  anteriormente,  una  función  hash  es  aquella  que  toma   
como  entrada  una  cadena  de  bytes  y  genera  otra  de  mucho  menor   

62 
 
Implantación de Sistemas Operativos 
 
CERTIFICADOS  (VeriSign,  Microsoft,  etc.).  Cuando  te  conectes  a  un  sitio  web, 
  éste  proporcionará  un  certificado  firmado  por  una  autoridad 
El  último  problema  surge  a  la  hora  de  asegurar  que  una  clave  que  verificará  la  autenticidad  de  su  clave  pública.  Una  vez  la 
pública  sea  de  quien  dice  ser.  Para  ello  tendrá  que  estar  certificada  clave pública ha sido verificada se inicia un cifrado TLS/SSL para 
por  una  Autoridad  de Certificación (CA), creando un certificado  digi‐ ocultar el tráfico hacia el sitio web. 
tal.  Un  certificado  digital  asegura  la  relación  entre  el  titular  del   
certificado y la clave pública contenida en él.  Secure Sockets Layer (SSL). 
Un certificado digital está compuesto de:   
  Estándar abierto propuesto para establecer un canal de comu‐
 Datos del titular.  nicaciones seguro que impida la interceptación de información 
 Clave pública del titular sin cifrar.  crítica, como el número de las tarjetas de crédito. Principalmen‐
 Número de serie.  te, permite las transacciones financieras electrónicas seguras en 
 Fecha de expiración del certificado.  el World Wide Web, aunque está diseñado para funcionar tam‐
 Firma digital de la autoridad (hash de la clave pública que  bién en otros servicios Internet. 
acredita la autoridad, cifrada con la clave privada de la au‐  
toridad).  Transport Layer Security (TLS). 
   
En realidad, cualquiera podrá emitir un certificado digital, aun‐ Protocolo  estándar  utilizado  para  asegurar  las  comunicaciones 
que  no  tendrá  validez  a  menos  que  haya  sido  autorizado  por  una  Web  en  Internet  o  intranets.  Permite  a  los  clientes  autenticar 
autoridad  competente.  Es  decir,  estas  autoridades  de  certificación  servidores  o,  de  forma  opcional,  a  los  servidores  autenticar 
serán autorizadas por organismos de máxima confianza, generalmen‐ clientes.  También  proporciona  un  canal  seguro  mediante el ci‐
te públicos.  frado  de  las  comunicaciones.  TLS  es  la  versión  más  reciente  y 
Por ejemplo, Verisign puede emitir certificados digitales autori‐ segura del protocolo SSL.  
zados por un organismo autorizador (que en España es la Casa de la   
Moneda y Timbre).   
Utilizamos los certificados con el DNI digital y con las conexio‐ PREGUNTAS. 
nes HTTPS para trámites bancarios.   
  1. ¿Qué es la criptografía? 
Ejemplo  –  HTTP  Secure.  También  denominado  https.  HTTPS  2. ¿Qué tipo de cifrados hay en criptografía? 
acuerda  la  clave simétrica a través del  cifrado  asimétrico.  Esto  3. Describe los elementos y el proceso de descifrado con cada 
lo hace porque como el cifrado asimétrico es muy lento, utiliza  uno de estos tipos. 
mejor un canal de transmisión seguro a partir de cifrado simé‐ 4. Ventajas y desventajas de estos tipos. 
trico.  5. Describir  el proceso por el que  podremos  asegurar  la  inte‐
HTTPS  se  integra  en  el  propio  navegador,  que suele  traer  pre‐ gridad del mensaje y la identidad del emisor. 
configurado la autoridad de certificación en quien va a confiar   
 

63 
 

You might also like