You are on page 1of 63

Implantacinde

SistemasOperativos

MarioDonaireMendoza
20112012

EstosapunteshansidocreadosenbasealmaterialelaboradoporSergiode
Mingo para el primer curso del ciclo de grado superior Administracin de
SistemasInformticosyRedes(ao20112012),licenciadosbajoCreative
CommonsAttributionShareAlike3.0Unported(CCBYSA3.0).

TemaUno

IntroduccinalosComputadores

DEFINICIONES

Computador:Cualquiercosaquetengaunprocesadorqueseacapaz
deejecutarunprograma.Formadoporcomponenteslgicos(softwa
re)ycomponentesfsicos(hardware).
SistemaOperativo:Primeryltimoprogramaqueleeelcomputador.
Eselprogramabasedelcomputador.
Firmware:Sistemaoperativodeloscomputadorespequeos.
Programa: Son un conjunto de instrucciones y datos que son ledas,
interpretadasyejecutadasporelcomputador.

UnidadCentral(UC).Eslaencargadadeinterpretarlasins
trucciones y convertirlas en seales elctricas para
ejecutarlas.
UnidadAritmticoLgica(ALU).Seencargadelosclcu
losaritmticosylgicos(y,o,s,no;unin,intersecciny
complemento).
Registros.Sonlosquevanaalmacenarlosdatoseinstruc
cionesutilizadosporlaCPU.

MEMORIA

La memoria est dividida en direcciones que podrn albergar


nicamenteunainstruccinoundato(funcionesyvariables).Enella
se alojarn los programas, donde estarn contenidas, a su vez, las
instruccionesquetendrquellevaracaboelcomputador.
Poseedosregistrosimportantes:

Registro de Direcciones, donde escribimos la direccin de


memoriaconlaquequeremostrabajar,bienseaunaope
racindeescrituraodelectura.Esteregistrodependedel
busdedirecciones,porloquesutamaoserigualalta
maodedichobus.
RegistrodeDatos,enelcasodeserunaoperacindelectu
ra aparecer el dato o la instruccin almacenada en la
direccinqueseindicaenelregistrodeladireccin.Enel
caso de ser una operacin de escritura, se actualizar el
valordeladireccinqueseindicaenelregistrodedirec
cin con el valor del registro de datos. El tamao del
registro de datos es igual al tamao de cada ranura de
memoria.

Segnnecesiteleeroescribir,habruninterruptorquecambia
r ambos modos. Dicha lnea elctrica tambin estar incluida en la
memoria.

ModosdeDireccionamiento.

Losdatospodrnserincluidosdediferentesmanerasenlasins
trucciones.Segnsereferenciendeunauotraforma,tendremosuno
uotromododedireccionamiento.

ANTECEDENTES

Tras la segunda guerra mundial (1939 1945) Alan Touring y


VonNeumanndesarrollanunmodelotericoparacrearunamquina
programable de propsito general. sta sera la primera mquina
creadasinunafinalidadespecfica,capazdevariarensufuncionalidad
segn el programa que se le implantara, es decir, un computador,
limitado nicamente por aquello que el programador sea capaz de
ordenarle.

MODELOVONNEUMANN

Estemodeloesconceptualyaunquefuedesarrolladoamedia
dosdelsiglopasado,adadehoytodosloscomputadoreslosiguen.

Componentes:

UnidadCentraldeProceso(CPU).
Memoria Principal. Encargada de almacenar el programa
delprogramador.
Unidad de Entrada/Salida. Sirve debarrera lgica entre el
procesadorylosperifricos.
Buses.Sonloscables,losmediosdecomunicacinentrelos
elementosdelcomputador.
Perifricos.Cualquierdispositivoaadidoalamquinapara
permitirlainteraccindelcomputadorconelmedio.

UNIDADCENTRALDEPROCESO(CPU)

Encargada de la lectura, la comprensin e interpretacin del


programaydesuejecucin.Estconstituidapor:

ImplantacindeSistemasOperativos

BUSES

Sonlneaselctricasdecomunicacin.Susparmetrosdemedi
cinson:

Anchodebus:totaldelneasenparalelodeunbus.Porca
da lnea circular una seal elctrica. Cada lnea en
paralelotransmiteunbit.Cadalneadebusemiteunim
pulsoquesetraduceen0y1(binario).
Frecuenciadel bus: esel nmerode pulsos por unidadde
tiempo(Hz).

PERIFRICOS

TodoloquenoeslaCPUylamemoria.PermitenalaCPUco
municarse con el exterior. Los hay de entrada, de salida y de
entrada/salida.Suscaractersticasson:

Fiabilidad.Eslaprobabilidaddequeelperifricoestope
rativo.
Mododeacceso(secuencial,directo).Eslaformaenlaque
hemosdeaccederaldispositivo.
Velocidad de transferencia. La velocidad con la que el dis
positivo puede suministrarnos datos o procesar los datos
enviadosal.
Buffering.Losperifricosalmacenandatos.Unbufferesun
almacnintermediodedatosutilizadoparasincronizarco
sasquetrabajanadiferentesvelocidades.

INMEDIATO:Eldatoseincluyeenlainstruccin,comocon
secuencia se leer ms rpidamente, pero el ancho de
memoriaestardivididoentrelainstruccinyeldato.
DIRECTO:Lainstruccinnoincluyeeldato,sinoquelorefe
renciaaotradireccindememoria.Astodoelanchode
memoria estar dedicado para ese dato, aunque al tener
queiraladireccindeldato,suprocesadosermslento.
INDIRECTO: La instruccin nos manda a una direccin de
memoria donde a su vez existe un nuevo redirecciona
miento hacia el dato. Esto tiene como ventaja poder
cambiarlosdatossintenerquetocarelcdigo.

CiclodeInstruccin(CPUMemoria)

EselmecanismoquesiguelaCPUalleeryejecutarunainstruc
cindelamemoria.Estecicloeslamaneraquetienendeinteractuar
estosdoscomponentes.

1. LaCPUleeelregistrocontador(esunregistrodelaCPU).La
direccinqueallencuentralaescribeenelregistrodedi
reccionesdelamemoria(esunregistrodelamemoria).
2. La memoria escribe el contenido de dicha direccin en su
registrodedatos.
3. Lamemorialedaelcontenidodelregistrodedatosatravs
delbusdesistema.
4. Lainstruccinseescribeenelregistrodeinstruccin(esun
registrodelaCPU)durantesuprocesamiento.
5. EnestepuntolaCPUpidealamemorialosdatosdireccio
nadosdirectaeindirectamente,siloshubiera.Enesecaso
serepitenlospasosanteriores.
6. LaUCdecodificalainstruccin,ylaALUlaejecuta.
7. LaALUincrementaelregistrocontador(enn+1)yvuelve
acomenzarelciclo.

Hayquetenerencuentaqueeltamaodememoriatieneque
serigualomenorqueeltamaodelregistro.Esdecir,sienmemoria
caben2bytes,elregistrodedatostendrqueserde2bytes.
Cuandoelregistrodeinstruccinllegaalainstruccindesal
to, sta modifica el registro contador y se va a esa instruccin de
trabajo.

UNIDADDEENTRADA/SALIDA

En los computadores actuales no hay un equivalente directo.


Sirvendebarreralgicaentreelprocesadorylosperifricos.Evitaque
el procesador se conecte con diferentes perifricos y tenga que ser
compatible con todos ellos, de manera que pueda abstraerse. Es un
intermediario.

ELCOMPUTADORMODERNO

EstbasadoenelmodelodevonNeumann.Enellos,loscom
ponentes electrnicos estn grabados en placas o circuitos. Existen
numerosasarquitecturasquellevanesemodeloalaprctica.

ELORDENADORPERSONAL

En 1970naceelordenador personal. Se trata deofrecer estas


mquinasenunentornodomstico,ideaquefuellevadaacabopor
Macintosh. IBM, que no apost por el comercio de los ordenadores
entre usuarios de la calle, lleg tardealmercado y por esono pudo
desarrollar supropia tecnologa,creandoun equipo clnicoformado
por piezas delos dems fabricantes y quefuncionara en entornode
MSDOS.EnellosintrodujoelchipBIOS,querpidamentefuedesen
criptado y permiti la difusin de los ordenadores personales.
Actualmenteeslaarquitecturaqueseguimosusando.
ElPCestconstituidoporunafuentedealimentacin,unapla
ca base (donde estn integrados el chip de memoria BIOS, el
procesadorylosbuses,lamemoriaprincipalylospuertosdeexpan
sininternosyexternos),unidadesdealmacenamientoyperifricos.

ImplantacindeSistemasOperativos

Nbits=log24=2bits;esdecir,elnmeroalquetendrque
elevar2paraobtener4.Delamismaforma,paracodificar8va
lores,tendrqueelevar2ala3,porloquenecesitar3bits.

Parapasardebinarioadecimaldividoelnmeroendossucesi
vas veces, si la divisin no es exacta ponemos un 1, si s lo es,
ponemosun0,as33:
33/2=16(resto1)
16/2=8(resto0)
8/2=4(resto0)
4/2=2(resto0)
2/2=1(resto0)
1/2=0(resto1)
Sera100001

CdigoHexadecimal
Sesueleutilizarparasimplificarlanotacin.Cadadgitoequiva
le a 4 bits, por lo que 4bits se podrn simplificar con un dgito
hexadecimal.
Losdgitoshexadecimalesvandel0al9yluegodelaAalaF.Se
calculanigualquelosbinariosperoalserunsistemaenbase16,ser:

X*16i

AdemshayquetenerencuentaquelaA=10,laB=11laF=15.

CdigosAlfanumricos

CdigoASCII7.
Utiliza 7 bits para codificar cada dgito y slo codifica 128 (27)
caracteres.

CdigoISO88591.
Ampla al cdigo ASCII. Aade un bit ms, por loque sern 28
caracteres(256).ConocidocomoLatn1.

CdigoUnicode.
Recogetodoslosalfabetosdelmundo.Tienediferentesimple
mentaciones,delasquelaUTF8utilizahasta4bytesporcarcter;
utilizando232caracteres.

REPRESENTACINDELAINFORMACIN

LAINFORMACIN

Eslamateriaprimadelainformtica.ElPCtransformalainfor
macin, traduciendo el cifrado binario (dos valores de voltaje) en el
queseencuentranlosdatosylasinstrucciones.

LOSCDIGOS

Es una tabla que relaciona dos alfabetos, de forma que me


permitircodificarunlenguajeenotrodistinto.
Losordenadorestrabajancondostiposdevoltajedebidoasus
restriccionestcnicasyelctricas;esdecir,cdigosbinarios.Todoslos
software(datoseinstrucciones)estncodificadosencdigosdedos
smbolos(0y1)combinadosdediferentesformas.

Cdigosnumricos:Codificanvaloresnumricos(binario).
Cdigos alfanumricos: Codifican valores numricos y no
numricos(ASCII7).
Otros cdigos no binarios: Para simplificar notacin (hexa
decimal).

CdigosNumricos

CdigoBinario.
Representadostiposdevoltaje,yserepresentacondossmbo
los(0y1).Estosdossmbolossonlaunidadmnimadeinformacin,
denominadoBIT.8bitsformanunbyte.

1Kbyte=210bytes=1024bytes
1Mb=1024Kb
1Gb=1024Mb
1Tb=1024Gb

Elcdigobinarioesponderado,esdecir,laposicinqueocupen
losnmerostendrunsignificado.Dichosignificadovendrdetermi
nadopor:

X*2i
DondeXeselvalordelbit(10)eilaposicinqueocupa
(dederechaaizquierda).

1001=9(1*23+0*22+0*21+1*20)

Parasabercuntosbitssernnecesariospara codificar X valo


res, habr que calcular: N bits = log2X = ld X. Es decir, si quiero
transmitirlosprimeros4valoresnumricos,necesitar:

ELSOFTWARE

LENGUAJESDEPROGRAMACIN

Poseenunasintaxismuyestrictadestinadaasertraducidalite
ralmente al lenguaje mquina. Esta traduccin se denomina
COMPILACIN.

ImplantacindeSistemasOperativos

COMPILACIN

Como seha dicho antes, es la traduccin del lenguaje de pro


gramacin al lenguaje mquina. Esta traduccin la lleva a cabo el
compilador,traduciendocadapalabraalcdigomquina.Apartirdel
cdigofuentegeneraotroarchivollamadocdigoobjetooejecutable.

COMPILADORESEINTRPRETES

Unintrpreteesunprogramaquetrasejecutarseleeelcdigo
fuente.Nolotraduceallenguajemquina,sinoqueloleeylointer
preta y hace lo que determine la instruccin fuente. Este cdigo
intermediocompilaelcdigofuente,demaneraqueconsigueporta
bilidadporquecualquierlenguajepodrserinterpretadoporelcdigo
intermedio.
SedenominaSCRIPTalcdigofuenteenlenguajeinterpretado.

DISTRIBUCINDELSOFTWARE

Debedistribuirseconelcdigoobjeto(esdecir,elcdigocom
pilado), y no tiene por qu distribuirse con el cdigo fuente. Hay
muchascuestionessobresielcdigofuentedeberaonoestarsiem
preabierto.
Cuandoadquieresunsoftware,loadquieresconunalicencia,es
decir, con la cesin de ciertos permisos. Dicha licencia te dice qu
derechostehacedidoelprogramador.Esuncontratodecesin.Hay
diferentestiposdelicencias:

Cerradas y restrictivas: Slo puedes utilizar el software en


lostrminosdelalicencia.Esmuylimitada.Nuncatede
janverelcdigofuente(Windows,Oracle).

PREGUNTAS.

1.
2.

Definequesunprograma.
Quhaceespecialalcomputadorconrespectoalrestode
mquinas?
3. Describe y enumera los componentes del modelo de Von
Neumann.
4. Describe la estructura y funcionamiento de la memoria en
elmodelodeVonNeumann.
5. Describebrevementelosmodosdedireccionamientovistos.
Definequsonyponunejemplodecadaunodeellos.
6. Describe el ciclo de instruccin en el modelo de Von Neu
mann.
7. Queselregistrocontador?Culessuimportanciaenel
procesadodelainstruccin?Qurelacintieneconlains
truccindesalto?
8. Pasardebinarioadecimal:10,101,1101,1011.
9. PasardeHexadecimaladecimal:22,71.
10. Si un programa ha sido compilado sobre una arquitectura
x86,podraejecutaruntelfonomvil?
11. Queselprocesodecompilacin?Defineelprocesodein
terpretacinyladiferenciaentreambos.

Abiertas y restrictivas: Tienen que hacer pblico su cdigo


fuentesilodistribuyen.Puedescambiarsucdigofuente,
perosilocomercializasodistribuyestienesquecompartir
losderechosyhacerlopblico.EselcasodeLnux(GPL).
Abiertasysinlmites:Elcdigofuenteestabiertoynotie
nesquecompartirderechossilocambias(MIT).

TemaDos

ElSistemaOperativo

INTRODUCCIN

Elsistemaoperativo,talycomoseindiceneltemauno,esel
primer programa y el ltimo en ejecutarse. Una vez ha arrancado el
sistema,elsistemaoperativosloseejecutarcuandoalgncompo
nente fsico o lgico lo requiera. En este captulo se vern las
relacionesquetieneconelhardwareyelsoftware.

INTERFAZ

Definido ampliamente como un elemento que funciona como


intermediarioenunacomunicacinentredosactores.Esdecir,podra
ser una interfaz un cable USB, un men, el sistema operativo una
puertaseraunainterfazentredosestancias.
La ventaja de utilizar una interfaz es que si la conoces puedes
ignorarloquehaydetrsdeella,pudiendofacilitarelusodeprocesos
complejos.
Por ello las interfaces aportan transparencia y portabilidad.
Transparenciaporqueloscambiosquehacemosenlosdosladosslo
implicanuncambioenlainterfaz,porlodemssoninvisibles;ypor
tabilidadporquealserunintermediariopodemoscambiarunadelas
dospartessinqueafectealresto.Estascaractersticasharnposible
que ambos elementos, en comunin a travs de la interfaz, puedan
abstraerseelunodelotro.
Elsistemaoperativoeslainterfazentrelossoportesfsicosyl
gicos. Todos los soportes fsicos sern manipulados por los lgicos a
travsdelsistemaoperativo.Deestaforma,sicambioelmonitor,el
Wordnotendrquecambiar(sepodrabstraer),porqueelWordpide
alsistemaoperativoquedibujecosasenlapantalla.

CLASIFICACINDELOSSISTEMASOPERATIVOS

Sepuedenclasificarenfuncinde:

Nmerodeusuarios:SernMONOUSUARIOSaquellosque
no distinguen entre diferentes perfiles de usuarios (MS
DOS,Android).SernMULTIUSUARIOSaquellosquesha
cenestadistincin(Windows,UNIX).
Nmero de procesos: Sern MONOPROCESO los que slo
puedanejecutar unproceso a lavez (MSDOS). Se llama
rn MULTIPROCESO los que sean capaces de realizar
multigestin.

Nmero de procesadores: Los habr MONOPROCESADOR,


si soportan un nico procesador que ejecute los progra
mas, y MULTIPROCESADOR, si soporta la ejecucin
simultneadeprogramasenvariosprocesadoresalavez.
Tiempoderespuesta:Eltiempoderespuestaesloquetar
daunprocesoenhacerloqueselehapedido.Enfuncin
de esto, podremos diferenciar entre TIEMPO COMPARTI
DO y TIEMPO REAL. Por tiempo compartido se entiende
queelprocesadorcomparteeltiempodelaCPUdeforma
quepuedesimularsimultaneidad.Deestaforma,elproce
sadorcomputamsdeunprocesoenunmismointervalo
detiempo,porloqueeltiempoderespuestaservaria
ble. Por tiempo real se entiende que el procesador se
dedicaaunsoloprocesoenunintervalodetiempodado,
de esta forma evita simultanear varios procesos y puede
garantizareltiempoderespuesta,quetendrunvalorfi
jo. El tiempo real implica que los programas no efecten
entrada/salida(leer/escribireneldiscoduro,yaqueesun
procesomuylento),niqueseaninteractivos,yaquesille
varan a cabo alguna de estas acciones no podran
garantizareltiempoderespuesta.

COMPONENTESDELSISTEMAOPERATIVO

Los cuatro componentes que se citan a continuacin son los


cuatropilaresdelsistemaoperativoytodosellossealojanygestionan
enelreadeKERNELdelsistema.
ElKERNELeselncleodelsistema.Noesunaaplicacinms,lo
que seejecutaen KERNELesespecial. Aunqueesun programa,se
ubicaenun lugar particular dela memoriadenominado ESPACIO DE
KERNEL(msalldelespaciodeKernelestelespaciousuario).Enesa
zona,lasinstruccionesmaquinahacencosasqueloscdigosdeotras
zonas no pueden hacer; pueden manipular el Registro Contador y el
registrodelaCPU.
Debido a estas peculiaridades, los errores cometidos en esta
zonasuelentenerpeoresconsecuencias(siendolapeorconsecuencia
uncuelguedelsistema)quelosquesucedenenespaciousuario.Por
este motivo se hicieron micro Kernel que limitaran el nmero de
operaciones a realizar dentro de esta rea y as se pudieran limitar
tambinelnmerodeerroresgravesdelsistema.

ImplantacindeSistemasOperativos

GestordeProcesos.
GestordeMemoria.Gestionarlamemoriavoltil.
Sistema de Ficheros. Gestionar y clasificar toda la infor
macinalmacenadaenlamemorianovoltil.
Gestor de Entrada/Salida. Gestionar los drivers del siste
ma;losperifricos.

GESTORDEPROCESOS

Elgestordeprocesosseencargardelosprogramasquesees
tn ejecutando. Antes de ser ejecutado, cuando se requiere la
actuacin de unprograma, elsistema operativo creauna imagen de
dicho programa en memoria. En ese momento, cuando el cdigo
objetodeunprogramaescopiadoenmemoriayestpreparadopara
ser ejecutado, pasa a denominarse PROCESO. Adems, el sistema
operativo crea una estructura para almacenar informacin sobre l;
dichaestructurarecibeelnombredebloquedecontrol.

BloquedeControl:Esunafichaquealmacenatodalainforma
cin de cada proceso, creada cuando el proceso aparece en
memoria yse almacena enelespacio dekernel.Esta informa
cin, llamada tambinmetadatosdelproceso, incluye: PIDdel
proceso(nmeroenteroasignadoalprocesoyqueelkerneluti
liza para identificarlo de manera unvoca), estado, localizacin
enlamemoria,recursosusados,propietarioolanzador,priori
dad.

Cadaunodelosprogramasejecutados(procesos)tienesuima
genysubloquedecontrol,estandodestinadoslosbloquesalespacio
dekernelylasimgenesalrestodelamemoria.

EstadosdelosProcesos.

Elestadodescribecmoseestnejecutandolosprocesosenun
momento dado. Cada sistema utiliza sus propios estados para sus
procesos,ynosotrosutilizaremostresdeellosparanuestromodelo:

Parado:Enesteestadoelprocesonoseestejecutando.El
proceso est interrumpido, quedando ignorado. Su inte
rrupcin no depende de ninguna condicin por lo que
podrvolveraserejecutado.
Bloqueado:Comoantes,enesteestadoelprocesotampo
co se est ejecutando. El proceso est bloqueado hasta
quesecumplalacondicindelbloqueo,porloquenopo
dr volver a ejecutarse hasta que se cumpla dicha
condicin(queademsesajenaalsistema).Porejemplo,
elprogramadorintroducecuandopulseunateclapasala
diapositiva,hastaquenosepulseesatecla(lacondicin
delbloqueo)nosecumplirdichacondicin.
SiunprocesoAestutilizandounrecursoR,yunsegundo
procesoBrequieredeesemismorecurso,elsistemablo
quearaBhastaqueAliberedichorecurso.

Transiciones.

Parado a Ejecutando: El proceso comienza a ejecutar por


queelsistemaoperativoleotorgaelusodelaCPU.
Ejecutando a Bloqueado: El proceso sufre un bloqueo. No
podrseguirejecutndosehastaqueseproduzcalacondi
cindelbloqueo.
BloqueadoaParado:Sehaproducidolacondicindelblo
queo, por lo que el proceso se interrumpe hasta que el
sistemaoperativolocreaconveniente.
Ejecutando a Parado: El sistema operativo estima que el
procesohausadolaCPUeltiemposuficienteyexpulsaal
proceso.

Interrupciones.

Lasinterrupcionessoftware,ollamadasalsistema,sirvenpara
quelosprocesosinvoquenalsistemaoperativo.Conellas,losproce
sospuedeninteractuarconelsistema,pidindoleservicios(ficheros,
memoria,etc.).
Elprocesoescomosigue:seactivalalneadeinterrupcinyla
CPU salta a la lnea donde estn las rutinas de interrupcin, la CPU
tienequesaberdndeestnparaquesepadondesaltar(losabrpor
la memoria ROM o por lo que sea); en ese momento se ejecuta el
sistemaoperativo.
Se entiende por LLAMADA AL SISTEMA una interrupcin soft
ware; el proceso invoca alsistema operativousandouna instruccin
desalto.

PlanificacindelosProcesos.

Laplanificacinesnecesariaparagestionareltiempoqueem
plealaCPUentrelosdiferentesprocesosactivos.Deelloseencargar
elplanificadoroSCHEDULER,utilizandolassiguientesestructuras:

Tabladeprocesos.Eselreadondeseguardanlosbloques
decontrol.enelreadekernel.
Coladeprocesos.Guardaelordendelosprocesosquevan
a disfrutar de la CPU. Guarda el PID (process ID) de los

Bloqueo Mutuo: Llamado deadlock. Se produce cuando


dosprocesosestnutilizandodosrecursos,ycadaunode
los procesos requiere del recurso del otro. Es decir, los
procesosAyBestnutilizandolosrecursosR1yR2,res
pectivamente,yambosprocesosquedanbloqueados,elA
porelrecursoR2yelBporelR1.Enestoscasos,ambos
procesosquedarnbloqueadosindefinidamente.Paraevi
tar esto se recurre a la expropiacin o a la deteccin
preventiva.
Ejecutando: El proceso se est ejecutado y por tanto est
siendoledo.

ImplantacindeSistemasOperativos

procesos que van a ejecutarse. Se guarda en el rea de


kernel. Sobre esta estructura se aplican las polticas de
planificacin.
Bloquedecontrol.Estructuraquealmacenalainformacin
delproceso.Seguarda en el reade kernel. El Adminis
tradordetareasdeWindowsconsiguelainformacinque
aportaconunallamadaalsistema.

Losquantumlosasignaelsistemaoperativo,perosiseejecuta
elByterminasuquantumquinasignaelsiguientequantuma
C?Esolohaceelrelojdelsistemaqueestdentrodelprocesa
dor.Cuandoempiezaunquantumelsistemaoperativoresetea
el reloj, y cuando el reloj llegaa cero manda unainterrupcin
dereloj.Entonceselsistemaoperativoasignaelsiguientequan
tum, elige el proceso, resetea el reloj y se marcha. Esto se
denomina CAMBIO DE CONTEXTO, es decir, cuando el sistema
operativo deja de ejecutar un proceso y se pone a ejecutar el
siguiente.
Lainterrupcinderelojvaporunalneadeinterrupcindistinta
(esunhardwaredistinto);cadahardwaretieneunalneadein
terrupcindistinta.

Cambiodecontexto.

Loscambiosdecontextosiemprellevanuntiempo,nosongra
tuitos. En ese tiempo es el sistema operativo el que se est
ejecutando,estiempoperdido.LaplanificacinRoundRobineslams
completaysigueestospasos:

1. Seactivalainterrupcindelreloj(relojeselhardwareque
marcaeltiempodelquantum).
2. LaCPUpasadeignoraralprocesoyseejecutaelsistema
operativo.Elsistemaoperativo(elplanificador)expulsaal
proceso.
3. El sistema operativo almacenaelestadodel registro con
tador (es como el marca pginas de un proceso) en su
bloquedecontrol.As,cuandovuelvaaejecutaresepro
cesosabrpordondeva.
4. Secalculaelsiguienteprocesoquedebeentrarenbasea
lapolticaquesea.
5. Elsistemaoperativoreseteaelrelojyseautoexcluye.
6. Vamosalbloquedecontroldondeestguardadoelnme
rodedireccinylometemosenelregistrocontador.
7. LaCPUejecutaelprogramapordondeiba.

Hoydaseintentantenerdiferentesflujosdeprocesosparaevi
tar los tiempos muertos del cambio de contexto. De esta forma, los
programasejecutarnunsoloprocesoydentrodeeseprocesoinclui
rn una pequea librera que generar esos pequeos procesos
(llamadoshilos)paraevitarcambiosdecontextoyasahorrartiempo.

SincronizacindeProcesos.

Existen mecanismos externos para provocar que dos procesos


concurrentesseejecutensiempredelamismamanera,denominados
IPC (Inter Process Comunication). Por lo general suelen provocar
bloqueosartificiales.Sonmuyusadosporlosprogramadores.
Elplanificadorplanifica,perolosprocesospuedensincronizarse
ejecutandobloqueos.PuedehacerqueBnopuedaempezarhastaque
Anohayaterminado,deesaformasebloqueaaBconunatubera(un

Losplanificadores son cdigossencillos. Son laparte delsiste


maoperativoqueadministralosprocesosydistribuyeeltiempopara
todos ellos en base a unas polticas que tenga asignadas. Podramos
tocarelkerneldelsistemaypedirqueelplanificadornopermitams
interrupciones.Sininterrupcioneselsistemasecongela,nofunciona
rnada.
Existendiferentespolticasdeplanificacin,yaqusenombran
tresdeellas,perosuimportancianoradicaensusnombres,sinoen
cmoejecutancadaunadesuspreferencias.

RoundRobin:Esunapolticaexpulsiva(laCPUexpulsara
losprocesos).Puedeponerlosprocesosenaltaprioridad;
hasta que no terminen los de prioridad alta no pasar a
otros.Eltimndeunavin,porejemplo,serasiemprede
altaprioridad.
SJN (Short Job Next): Poltica no expulsiva. El proceso se
ejecutarylaCPUnopodrexpulsarlo.Cuandoelproceso
llama al sistema (no todas las llamadas crean bloqueos,
comoescribirenunbuffer,pedirespaciodememoria)se
bloquear, pero slo una vez haya terminado. El propio
sistema har una llamada al sistema para informar alsis
temaoperativodequeyahaacabado.Elsiguienteproceso
serelmscortodelosprocesos.
FIFO:Losprocesosseejecutanporcompleto,unodetrsde
otro.Esunapolticanoexpulsiva.

EJEMPLO.TenemosunprocesoAejecutndoseyamitaddesu
quantumhaceunallamadaalsistemaparaescribirunbyte.Es
toimplicasaltaralespaciodekernel.Dentrodelkernelescribe
elbyteenelbusparamandarloaldisco.Unavezescritoenel
buseldiscodurotardamuchoendarelbyte.Mientraseldisco
devuelveeldatoaprovechamosydejamosalprocesoAenes
tadobloqueadoporeldiscoduro(lacondicindebloqueoser,
hastaqueeldisconoresponda).Enesemomentoejecutamos
losprocesosByC(ejecutantodosuquantum)mltiplesveces
(demaneraconsecutiva,primeroByluegoC)hastaqueeldisco
responde.Entonceseldiscomandaunainterrupcincuandose
estaba ejecutando el proceso C. El sistema operativo pone en
estadoparadoaCyA(acudealatabladeprocesosyponepa
radosalosprocesos).PodraseguirconA,B,oC,enfuncinde
lapolticadeplanificacin.
SiByCnohacenllamadasalsistema,elsistemaoperativono
serejecutado;sisonprocesosquenotienenentrada/salidano
requerirnalsistemaoperativo.

ImplantacindeSistemasOperativos

buffer de memoria). Se trata de forzar el orden de ejecucin de los


procesosmediantelasincronizacin,provocandobloqueos

GESTORDEMEMORIA

La memoria es algo bsico. Aloja todo el software, incluido el


sistema operativo. Normalmente slo aloja el software activo (los
procesos).Losprogramas(softwarenoactivo)sealojanenmemorias
secundariasdealmacenamientopermanente.
Lamemoriaesunrecursocaroquesehadegestionarconcui
dadoparanodesaprovecharlo.

JerarquadeMemoria.

Elmapadememoriaseconstruyesobrediferentesdispositivos.
Podemos tener unas direcciones destinadas a la memoria voltil y
rpida, y otras a la memoria no voltil y lenta. El programador del
sistemaoperativoconoceestaarquitectura.
Segn su tamao y su velocidad de acceso se utilizarn para
unas funciones u otras. De ms precio y menor tamao a menos
precioymscapacidad.

Registros(delaCPUymemoria).Elregistrocontadorsera
ladireccincerodelmapadememoria.
Cache (L1 y L2),cerca delprocesador.Seutilizaparaguar
dar las ltimas instrucciones que has utilizado de la
memoria RAM. Hay polticas de cache, podra guardar lo
ltimoolomsutilizado,enfuncindelasmismas.Segn
dichas polticas, su rendimiento puede variar. Tiene dos
niveles,elL1esmsrpidoqueelL2.
MemoriaRAM(voltil,derpidoacceso)
Discoduro.

MapadeMemoria.

Porcadaprocesoseguardaunaimagenyunregistrodelproce
soenelbloquedecontrol.Estaimagencontiene:

Losdatosdelprograma.
Lasinstrucciones.
Lapilayotroselementos.

El mapa de memoria est distribuido en muchos dispositivos


(registro, disco duro). Hay una zona para los procesos de usuario
(espaciodeprocesos)yelrestoestreservadoparalasdireccionesde
entrada/salida,elsistemaoperativoylosvectoresdeinterrupcin.

AsignacindeMemoria.

Eslaaccindeasignarespacioacadaimagendecadaproceso
entrante.Enunsistemamultiprocesosehabrndegarantizar3cosas:

Ejemplo.Seaunprogramacon3direcciones(#1,#2,#3),en
lasquetenemos[SUMA#2,#3],[7]y[8],respectivamente.
Cuandocargamosesteprogramaenlamemoriaelproceso
sercargadoencualquierranuradememoria.Paraellono
tendremosquecargarelprocesoenlasranuras#1,#2,#3
de nuestra memoria para que se pueda ejecutar la SUMA
del programa, sino que la cargaremos en cualquier direc
cin, por ejemplo, la #51, #52, #53. Para que el programa
noacudaaladireccin#2,#3denuestramemoriaparaha
cer la suma, se crea un mapa de memoria privado y el
sistema operativo tendr que asignar las equivalencias, es
decir,elsistemaoperativoseencargardedecirqueladi
reccin del mapa privado del proceso #2 es igual a la
direccin#52realdelamemoria.Deestamaneralospro
gramas tendrn movilidad, y podrn ser cargados siempre
enelmismositio.Conestesistemalaproteccinvienedela
mano.

MemoriaVirtual.

Es un dispositivo hardware llamado MMU (memory manage


ment unit); es una memoria ms. Aqu se guardan los mapas de
direccinunavezelsistemaoperativohahecholasequivalenciasde
lasdireccionesfsicasyvirtuales.
Cuandoelsistemaoperativoasignaunmapaalproceso,enton
ces mete la equivalencia a la MMU, donde acceder la CPU (a las
direccionesfsicas).

Paginacin.

Lapaginacinesunatcnicanecesariaparaconseguirlasobre
asignacin, y adems conseguiremos movilidad y proteccin. Los
procesoscargadosenmemoriasedividenenpginas(fragmentos)

10

Proteccin:Losprocesostendrnunmapadememoriapri
vadoparaquelosdemsprocesosnotoquensuespacio.
Movilidad:Hayquepermitirquesepuedancargarprocesos
en diferentes zonas de memoria, para ello se utilizan las
direccionesvirtuales.
Sobreasignacindezonasexternas(sifueranecesario):
Eslacapacidaddedarleaunprocesomsespaciodelque
disponemos.AestoselellamaMEMORIAVIRTUAL.Esde
cir, si tenemos un proceso que ocupa 100 direcciones y
slotenemos80libres,tendremosquemeterloporpartes
endiferentesmomentos.
Seproducecargabajodemanda.Sevancargandolascosas
segnsevannecesitando.Sielgestordememoriaesma
lo,dejarcosasdeusoinmediatoeneldiscoduro,porlo
queelsistema seralentizarysuproducirtrashing.Si
se le deja descansar, el sistema operativo bloquear los
procesosycesarsuejecucin,dejandoderequerirsems
fragmentosaldisco.

ImplantacindeSistemasOperativos

de igual tamao. Todos los procesos se van a dividir en el mismo


tamaodepgina,ynotieneporqusermltiploexacto.Adems,la
memoriasedividirenzonasllamadasmarcosdepgina,delmismo
tamaoquelaspginasdelosprocesos,deformaquetodaslaspgi
nas de todos los procesos encajarn en cualquier marco de la
memoria.Laspginasseirnalojandobajodemanda.

Ejemplo.Siunprocesotiene52ranurasytenemos10ranuras
porpgina,tendremos6pginas(lasextatendr2ranuras).
Si a ese proceso le asignamos 3 marcos estando cargadas las
pginas1,2y4,yunainstruccindelprocesopidelapgina5,
elsistemaoperativotendrqueirporellaaldiscoduroyquitar
unadelaspginascargadasparameterestanueva.

ParasabersiundatoestenunapginarecurrimosalaMMU,
que va a guardar la tabla de paginacin de cada proceso (como si
fueraunbloquedecontrol).

Ejemplo.ElprocesoA est divididoenpginasde 10 direccio


nes.CuandodichoprocesopideunaSUMA[#35,7],habrque
saberdndeestladireccinvirtual#35.Comohemosdividido
cadapginaen10direcciones,sabemosquela#35estarenla
pgina4.Resultaquelapgina4estcargadaenmemoria,en
elmarco1.LaMMUtendrentonceslaequivalenciadelame
moria virtual #35 con la memoria fsica #5. Entonces, la CPU
daralaALU,SUMA[#5,7].
Sisehubierapedidounapginaquenohubieraestadocargada
enmemoria,laMMUdaraunmensajedeerrorylanzarauna
interrupcin,consiguiendoqueelsistemaoperativobloqueara
el proceso y que pidiera al discoduro que busque esa pgina.
EstoesunERRORDEPAGINACIN.

Loquesehaceesdaratodoslosprocesosunmnimodemar
cosdememoriaparaacelerarlosprocesos.
Podradarseelcasodequetodoslosmarcosestuvieranocupa
dosytuviramosquecargarunapginamsesteeselproblemadel
REEMPLAZAMIENTO.
Segnelsistemaoperativosegestionarndeunaformauotra
laspginasquenocabenenlamemoriavoltil.Porejemplo,Windows
utiliza un fichero para colocar las pginas que no caben y las trata
como si fueran un fichero ms, mientras que Linux utiliza una parti
cin(vermsadelante,ensistemadeficheros)metiendolaspginas
endiscoperoconlasmismasreglasdelamemoriavoltil(salvoque
esmslento).

Segmentacin.

Esotratcnicanecesariaparaconseguirsobreasignacin.Con
estatcnica,cadaprocesosedivideensegmentosdetamaovariable
yquesuelensertemticos.Losprocesosagruparnsuinformacinen
segmentos,enfuncindesunaturaleza.EsteprocesoNOESTRANS

PARENTE para el programador (lo decide el programador), ser el


compiladorelquehacelossegmentos.
Lostipossontres:

DeCdigo:Serecogentodaslasinstrucciones.
DeDato:Serecogentodoslosdatos.
DePila:

EnlaMMUseguardalatabladesegmentos.Seguardasuinicio
ysufin(sulongitud).Estopermitequevariosprocesosabiertoscom
partanlosmismossegmentos.Esdecir,siabrimosdosFirefox,podrn
compartirsegmentos.
Toda esta informacin desaparece una vez el proceso deja de
estarcargadoenmemoria.

Fragmentacin.

Losprocesosvanadejarhuecosalserdescargadosdelamemo
ria. El sistema operativo ser el encargado de volver a asignar esos
huecos.Sinotienehuecos,ircargandotrozosdeprocesos,utilizando
memoriavirtual,deformaqueelordenadorseralentizar.Porello,a
msRAM,msvelocidad.
Lafragmentacinconsisteenundesperdiciodelamemoria,por
dejarhuecosdesaprovechados.Escomocuandoenunaparcamiento
en lnea se producen huecos por salidas y aparcamientos de los co
ches. La segmentacin tiene fragmentacin EXTERNA porque los
segmentossondetamaovariable.

SISTEMADEFICHEROS

Elsistemadeficheros(tambinpartedelkernel)debealmace
narlainformacinsobrelossoportesfsicosytienequesercapazde
encontrarla rpidamente. Para dar buenos tiempos de respuesta se
tendr que clasificar la informacin; el sistema operativo se encarga
de organizar los dispositivos de almacenamiento para garantizar
tiemposrazonables.
El sistema de ficheros crea una estructura bsica dentro del
propio dispositivo de almacenamiento (como si fueran las estante
ras).Aunqueestoocupaespacio,contribuyealordenyportantoala
rapidez.AestoselellamaFORMATOLGICO:aplicarsobreelformato
fsicodeldiscounoscompartimentos(bytes)paraparcelarsuestruc
tura, es decir, lo que se denomina FORMATEO. Es por este espacio
lgicoporloquelosdiscosnotienentodosuespacionetodisponible,
yaquelasmarcasutilizadasparacrearsuestructurafundamental(con
elfindeobtenerrpidamentelainformacin)ocupanespaciodentro
del disco. Cuando realizo un formateo, estoy reconstruyendo el for
mato lgico sin tocar la informacin que est contenida en l. De
hecho, dicha informacin permanece inalterada y oculta, se podra
accederaellaleyendoeldiscobitabit,encrudo.
Cadasistemadeficherosutilizasupropioformato:

11

ImplantacindeSistemasOperativos

como en UNIX, o ser un atributo ms destinado a vincular cada


archivoconunprograma,comoenWindows.

ElDirectorio.

Es una estructura organizativa de orden superior, por lo que


comotal,contendrlosnombresdelosarchivosylasrelacionescon
sulocalizacin,nolosarchivosensmismos.Porellocontienebytes,
pero no contiene todos los bytes de los archivos que relaciona. En
aquellos bytes se almacena una tabla de dos columnas, una con los
nombres y la otra con la ubicacin de esos nombres. Esos nombres
pueden ser de archivos o de otros directorios, ya que un directorio
puedetenerlasrelacionesdeotrosdirectorios,sinqueloscontenga
fsicamente.
Laestructuraorganizativaconlasqueelsistemadeficherosor
ganizalosarchivosserportantojerrquica,enformaderbol.Esta
estructura queda obscurecida por las interfaces grficas de usuario,
convirtiendolamquinaenunacajanegra.

ElrboldeFicheros.

Eslaestructuraorganizativaformadaporarchivosydirectorios.
Elrboldeficherossiempreposeeunaraz,queenfuncindelsiste
ma operativo ser una otra (para Windows sera C:\, D:\ , y para
Linux/).
Con esta estructura podemos trazar la ruta o camino de cada
archivo,desdelarazhastasuubicacin.

Metadatos.

Se denomina metadatos a aquellos datos que informan sobre


otros datos. El sistema de ficheros guarda informacin sobre los
archivos, sobre sus propiedades (tamao, propietario, permisos,
ubicacin, fecha de creacin, etc.). Los metadatos aportan informa
cindelarchivo,peronoformanpartedelmismo.
Los metadatospuedenperderseal pasarunarchivode unsis
tema operativo a otro, ya que si el formato lgico es distinto habr
quereconstruirlo.

Ejemplo. Sistemas de Ficheros FAT (File Allocation Table). Se


estudiaestesistemaporqueesunmodelorealysencillo.Seha
utilizadodesdelas primeras versionesde MSDOS, y ensu co
mienzosepensparadiscosdepequeotamao,porloqueno
funciona muy bien sobre soportes de gran almacenamiento.
DesdesuprimeraaparicinenelIBMPC286,sehaseguidouti
lizando a la par que los soportes de almacenamiento crecan,
porloqueesunsistemaobsoletodesdeelpuntodevistatcni
co, pero en boga desde el punto vista comercial (como se
apuntmsarriba,susencillezysucompatibilidadconlamayo
ra de los sistemas operativos ha hecho que prcticamente
todos los dispositivos lo utilicen, convirtindolo en un estn
dar).

NTFS (New Technology File System): Es el sistema de


ficherosdewindows.
FAT (File Allocation Table): El sistema de MSDOS. Aunque
tienebajasprestaciones,esmuysencillodeleeryfcilde
programar;porellosehaconvertidoenunestndar.
FAT32:Sistemadeficherosdependrive,mviles,cmaras.

Particiones.

La primera estructura que va a realizar el sistema de ficheros


sobreeldiscoduroesunaPARTICIN.Unaparticinesunademarca
cin que establece una zona formateable en una unidad de
almacenamiento. Dicha unidad ser la encargada de contener la
informacin de forma reglada y ordenada a travs de un formato
lgico.Aaquellossoportesfsicosquepuedanserparticionadosseles
podr aplicar un formato lgico a cada una de sus particiones (no
todoslossoportesfsicoslosoportan,porejemplo,elCDnopuedeser
particionado). Esto es muy til porque podemos formatear cada
particindemaneraindependiente.
LosdiscosdurosIDE,SCSI,SATAsoportanvariostiposdeparti
ciones(MBRoGPTslopordiscosSCSIoSATA).
Hayvariostiposdeparticiones:

Primarias: Esta es la particin fundamental. Los discos IDE


(tipoMBR)puedentenerhasta4particionesdeestetipo,
porque en el ndice slo caben 4 reas formateables. Di
cho ndice se almacena en la TABLA DE PARTICIONES,
guardadaenelsectormaestro(elprimersectordeldisco).
Extendidas:Cadaparticin extendida tienesu propia tabla
de particiones; dicha tabla no se guarda en los primeros
sectoresdeldiscoypuedetenercualquiertamao.Slose
puedecrearunaparticinextendida.
Una particinextendida no es formateable, a menos que
contengaunaparticinlgica(esterequisitoloimponeel
hardware).
Lgicas: Son las particiones que se realizan dentro de las
particionesextendidas;puedehabertantascomosequie
ra. Las particiones lgicas no estn referenciadas en las
tablas.

Ejemplo. En un disco IDE podramos tener hasta 4 particiones


primarias;o3primariasy1extendida;2primariasy1extendi
da;1primariay1extendida;o0primariasy1extendida.

ElArchivo.

Es la unidad mnima de almacenamiento; contiene bytes a los


que asociamos un nombre y unas propiedades (almacenadas como
metadatos,vermsadelante).Losarchivospuedentenertambinun
formatointerno,peroelsistemadeficherosesajenoalmismo.
En funcin del sistema operativo, la extensin de los archivos
ser parte del nombre (meramente informativo de cara al usuario),

12

ImplantacindeSistemasOperativos

EstesistemasebasaenunaTABLAFATquerelacionaacadafi
cheroconsuubicacineneldisco.Enestatablaestntodoslos
archivosdeldisco,porloquesisetrataradeundiscograndey
lleno,latablaocuparamuchoespacio.Adems,cuandoelsis
temaarranca,cargalatablaenmemoria,porloquesiesmuy
grandeconsumirmuchamemoria.
AntesdenadahabrquedefinirCLUSTERS.Sondivisioneslgi
cas del espacio disponible orientadas al almacenamiento. El
disco de FAT est dividido en clusters guardados en memoria.
Cadaclusterdelimitaunespaciodeterminadoquesiempreser
igual.
CuandoformateamosenFATcreamos:

Sector de Arranque: Guarda informacin de la particin


FAT.
TablaFAT:Deasignacin.Esunalistadeclusters,yporcada
unodeellostendrunaentrada.Cuantomsgrandeseael
espacioalmacenado,msclusterstendrymsocupar.
LatablaFATtieneelsiguienteaspecto:

CLUSTER OCUPADO FINAL SIGUIENTE

X
(10)
(10)
Y

DondelacolumnaCluster(conXigualalvalordelcluster,
desde1hastan)nosindicaelnmerodeesecluster.Ocu
pado, puede ser igual a 1 (en este caso el cluster estar
ocupado),oa0(enestecasoestarlibre).Final,quepo
drtenerunvalorde1(indicandoqueesclusterfinal)o0
(noesclusterfinal).Siguiente,quesiemprequehayaun1
enFinal,tendrun0,ysino,indicarelsiguientecluster
quehabrqueleerparacompletaresearchivo.
Directorio raz: Es una tabla de dos columnas que guarda
losficherosyenquclusterempiezan.
readeDatos:Aquseguardanlosdatosdenuestrosfiche
ros.Estoocupael90%delespaciodelaparticin.

FATdivideelreaformateableenclusters.Porejemplo,si
unarchivoAocupa10bytesycadaclustertieneuntamao
de5bytes,dichoarchivoocupardosclusters.Imaginemos
queocupalosclusters1y2.Cuandograbemosunsegundo
archivoBde5bytesocuparemoselcluster3.Ahorabien,si
volvemosaabrirAyleaadimosinformacin,elsistemade
ficherosmeteresainformacinnuevaenelcluster4,que
dandolasiguientetablaFAT:

CLUSTER OCUPADO FINAL SIGUIENTE

1
1
0
2

2
1
0
4

3
1
1
0

4
1
1
0

Hayquetenerencuentaqueeneldirectoriorazpodemoste
ner tambin directorios que nos sealen en qu cluster
empiezan.CuandonosvamosalatablaFATyentramosporese
clusternosencontraremosunatabladedirectoriosdondeesta
rnlasreferenciasdelosarchivosconsusclusters,aligualque
en el directorio raz. Las tablasde directoriosestnesparcidas
endiferentesclustersdelreadedatos.
Recordadqueunclustersloperteneceaunfichero,nopuede
habervariosficherosenuncluster.
Condesfragmentarloquehacemosesagrupartodoslosfiche
rosenclustercontiguos.
PROBLEMAS DE FAT: En versiones antiguas, el programador
pensquecondestinar8bytesparanombrarlosarchivossera
suficiente, por eso estaban restringidos a 8 letras. Adems, el
rendimientoparadiscosgrandesesmuybajo,yunreadeda
tosmuygrandegeneraunatablaFATdegrantamao.

FATestpatentadoenUSAporMicrosoft,peronohaejercido
su derecho sobre su patente porque le interesa que todo el
mundoloutilice.

ENTRADA/SALIDA

Elsistemaoperativocontrolalacomunicacinentrelosperifri
cosylosprocesos.Esunacomunicacinendossentidos:

De los procesosa los perifricos:Losprocesossecomuni


can con los perifricos a travs del uso de DRIVERS. Los
drivers son programas o libreras que contienen cdigo
para comunicarse con un perifrico, as ganamos MODU
LARIDAD (flexibilidad en el kernel). Los drivers suelen
suministrarloslosfabricantesdelperifrico.Todoslosdri
vers escriben sus lneas de cdigo en el rea de kernel
porqueaccedenalhardware,ytodoloqueestenelrea
dekernelseejecutarsinrestricciones.
Losprogramashacenllamadasalsistemaconunainstruc
cindesalto;elsistemaoperativollamaalaFUNCINDEL
DRIVERyejecutalainstruccin.Elprogramadordeldriver
debeconocerelsistemaoperativoparaquelasfunciones
delosdriversseanexactasalasquetieneelsistemaope
rativo (por eso se hacen para un mismo perifrico
diferentesdriverssegnelsistemaoperativo).
Unavezhechalallamadaalafuncindeldrivertenemos
quellevaracaboesainstruccinescribiendoenregistros
delpropioperifricoobienenbuses.Sielperifricoest
mapeado podremos utilizar instrucciones de escritura y
lecturadememoria;sino,podremosutilizarinstrucciones
especficas directas. Si tenemos muchas instrucciones
ocuparemosmuchoespacioparaellas,yquedarpocoes
paciorestanteparalosdatos.
Delosperifricosalosprocesos:Seutilizaninterrupciones.
Cadalneadeinterrupcindebetenerunarutinadeinte

13

ImplantacindeSistemasOperativos

rrupcinquelatrate.Elconjuntoderutinassedenomina
vector de interrupcin. El vector de interrupcin se carga
enunlugarconocidodelamemoriaquepodramosvariar,
aunquesilohacemos,habraquedecirlealsistemaopera
tivoquecambieesaposicin.

11. Describeenquconsistelasincronizacindeprocesos.
12. Queslajerarquadememorias?
13. Qugarantasdebemosdaralosprocesosdurantelaasig
nacindememoria?
14. Enquconsisteelmecanismodememoriavirtual?
15. Describe la paginacin y comprala con la segmentacin y
explicaenquconsisteelproblemadelreemplazamiento.
16. Enqufuncinescribeelsistemadeficheros?
17. Quesunaparticin?
18. Cmoseorganizanlasparticionesenundiscoduro?
19. Diferenciaentrearchivoydirectorio.
20. Qusonlosmetadatos?
21. CmofuncionaFAT?Describesuestructuraprincipal.Ilus
trarestefuncionamientoconunejemplo.
22. DescribebrevementelosdosflujosdecomunicacindeEn
trada/Salida.
23. Explicalosconceptosdedriveryqupapeljuegaenlaco
municacinconlosperifricos.
24. Describebrevementeelmodelodeinterrupciones.

PREGUNTAS.

1.

Explica las diferencias entre un sistema de tiempo real y


unodetiempocompartido.
2. Quesunainterfaz?Porqudecimosqueelsistemaope
rativoesunainterfaz?
3. Diferenciaprogramayproceso.
4. Queselbloquedecontrol?
5. Definelosestadosenlosquepuedeestarunproceso.
6. Describequesunainterrupcinyunallamadaalsistema.
7. Culeslafuncindeunainterrupcin?
8. Quesunplanificadoryculessufuncin?
9. Describecondetalleelmecanismodecambiodecontexto.
10. Describelasestructurasquerealizaelplanificador.

14

TemaTres

MquinasVirtualesy
VirtualizacindeSistemas

INTRODUCCIN

La virtualizacin es el mecanismo que abstrae los recursos


hardware de una mquina a travs de una interfaz (Virtual Machine
Monitor)entredichohardwareyelsistemaoperativo.
ElVMMesunprocesoms,perovaaofrecerhaciaarribauna
interfaz software que va a imitar al hardware real, as podremos
instalarunsistemaoperativoyunkernelconvencional,creyendoque
loquetienepordebajoeshardware.Deestaformapodremoscom
partir el uso de los recursos hardware entre diferentes sistemas
operativosinstaladosenunamismamquina.

ELEMENTOS

Host:Lamquinafsica.
Monitor: Software que crea la capa de abstraccin en el
host.Sepuedeinstalarsobreelpropiohardware.
Guest: Mquina virtual. Funciona sobre el VMM. Cada sis
temaguesttrabajadeformaindependienteydesconoceel
restodesistemasinvitados.

OTROSMODELOS

Lavirtualizacinsepuedeconseguirdeotrasformas.

Aniveldeprocesos(JVMo.NET).Cadaprocesotieneincor
porado una pequea librera de virtualizacin, como si
cadaprocesotuvierasupropioVMM.
Aniveldesistemaoperativo(OpenVZ).Seinstalansobreel
hardware.Lapropiaplataformapuedesustituiralsistema
operativo. Es un kernel modificado que puede ejecutarse
sinsistemaoperativo.Sloestnpreparadosparaejecutar
sobreellosmquinasvirtuales.Notieneninterfazgrfica,
esalgoligero,paratcnicos.Aquelpropiomonitoresel
sistemaoperativo,yelquegestionarelrepartodeproce
sos con cada mquina virtual. Puede arrancar mquinas
virtualesconprioridades,porloqueelrendimientomejo
rar.EjemplosdeestetiposonCitrixoXen.

Emuladores (Inferno). Virtualiza la plataforma hardware;


emulaunaarquitectura.Algunosejemplosseranlosemu
ladores de Android o IOS (los emuladores de telfonos,
SDKSoftwareDevelopmentKit).

CARACTERSTICAS

Nosotrosvamosautilizarunmodelodenominadomquinavir
tualdesistema.

EmuladorsobreSistemaOperativo(VMware).Seinstalaso
bre el sistema operativo como una aplicacin que no
podrplanificarniasignarmemoria.

VENTAJAS

OptimizacindeRecursos.Lasmquinaspuedensersusti
tuidasporunnmeromuchomenordeellas,consiguiendo
lasmismasprestaciones.Estenmeromenordemquinas
sern mucho ms potentes, deforma quepuedan sopor
targranjasdemquinasvirtualesejecutadassobreellas
(poolderecursos).Conelloconseguimosquenohayam
quinasinfrautilizadas.
Reduccin de Costes. Al necesitar menos mquinas aho
rramos en costes. Adems, a menos mquinas, menos
hardware y por tanto se reduce el nmero de fallos. Al
centralizarlosrecursosenesasmquinasmuchomspo
tentes abarato en las tareas de administracin y
mantenimiento y homogeneizo el hardware. Al consumir
menos energa participo cuidando el medio ambiente
(ecocomputacinogreenIT).
MejoradelaRecuperacinanteFallos.Larestauracindel
sistemaguestestrivial.Recuperarunamquinavirtuales
tansencillocomoarrancarunprograma;lonicoqueten
dremosquehaceresreiniciaresaplataformaenunhostu
otro. El proceso de rearranque es ms ligero que el de
una mquina fsica. Todo el sistema invitado suele estar
representadoensimplesficheros.Adems,sitenemosdi
ferenteshostpodemoshacermigracionesencalientesde

15

ImplantacindeSistemasOperativos

uno a otro. Tambin se pueden hacer SNAPSHOT de m


quinasvirtualescomosifueranunbackupdeunproceso,
puesnodejadeserunprocesoms,restaurandoconfaci
lidadesasmquinas.
OptimizacindelaCargadeTrabajo.Elbalanceodecarga
esmssencillo.Hayprocesosquepermitendeterminara
quehostqueremosenviarlamquinayseejecutarnenel
tiempoqueduralamigracindeeseproceso.Assepodr
balancear la carga entre los diferentes host sin que los
clientesloperciban,ganandoenadaptabilidad.Sitenemos
varias plataformas host en las que se ejecutan mquinas
virtuales,irndistribuyendolaspeticionesentreellas,em
pezando por las que tengan menor carga. Adems, con
doshost muy potentes, si tenemos uno de ellos muy so
brecargado, puede ir migrando mquinas en caliente al
otro.
Seguridad por Aislamiento. En el modelo tradicional de
hosting tenamos muchos usuarios utilizando un servicio
(web,correo,basededatos).Siunodelosusuariospu
dieramodificarelcdigodeesteservicioycambiarlopor
otro cdigo objeto, conseguira que la CPU ejecutara su
cdigo, y comprometiendo la seguridad de la mquina al
completoyportantodetodoslosusuariosqueutilizaban
ese servicio. Con la virtualizacin puedo virtualizar servi
cios,haciendoquepuedanconvivirvariosdeellosenuna
mismamquinafsica.Deestaformalosaslo,consiguien
doquelosataquessloafectenalguestdeesamquina.

CloudComputing.

Estemodelobuscaunaplataformatotalenlaquenosetenga
queejecutarnada(nisiquieraelsistemaoperativo)entuprocesador.
Porlotantolosterminalesparticularesperdernpotencia,delegando
todoelpoderdeclculoensupercomputadoresqueejecutarnnues
tros programas y que almacenarn toda nuestra informacin. Con
esos terminales, el usuario ejecutar el mnimo proceso para poder
acceder a esas aplicaciones remotas. Actualmente esta funcin la
cumpleelnavegador,aunqueelprotocolohttp(delosaos90)estal
lmitedesusposibilidades.
Conestemodelocentralizastodoenunsitio,ahorrandoanivel
administrativoyanivelderecursos(Gmail,Facebook,Twitter).
Amazonofreceestetipodehosting,alquilndoteunacapacidad
deprocesamientoycreandobajodemandaloquesenecesite.Deesa
forma, ante picos de trabajo, mejorars el servicio sin necesidad de
invertir en hardware que quedar sin utilizar en los das de poco
trnsito. Esto tambin ahorra en mantenimiento de mquinas (y el
ahorrodelmantenimientodeunCDPCentrodeProcesamientode
Datos,quetienequeestarclimatizado,protegidocontraincendios).
Lo malo es que el ncleo central del negocio estar en manos de
otros.Porejemplo,WikileaksfuecapadoporAmazon.
Algunasventajassonquesecrecemsrpidamente,porquees
mssencillo mejorar esosservidores centrales. SedicequeesESCA

LABLE,porquepuedeaumentarsuscapacidades,yporelloesFLEXI
BLE. El cloud computing puede permitir por tanto sistemas ms
escalablesyconmayorMOVILIDAD,noporquesemuevaelsoftware
(que de hecho no se mueve en absoluto), sino porque los usuarios
accedernalsoftwareatravsdesusterminales(comoahoraloesel
navegador),desdecualquierparte.

FABRICANTESYLICENCIAS

Las licencias PROPIETARIAS no te ceden ningn derecho.


VMware comercializa productos, todos propietarios, que se instalan
sobre el sistema operativo (Windows o Linux); VMware Workstation
(potenteycompleto),yVMwarePlayer(gratuito,aunquenotepermi
te crear nuevas mquinas virtuales). Virtual PC viene de serie en
Windows,ysusprestacionessonmenoresquelasqueofreceVMwa
re.ParallelsesparaentornoMac.
Las licencias ABIERTAS, como Xen. Xen no requiere una plata
formapordebajo,seinstaladirectamentesobreelhardwareporque
tieneunpequeokerneldeLinuxynonecesitadesistemaoperativo
parafuncionar.

VMWARE

Puede utilizarse sobre Linux o Windows. A partir de imgenes


podemos crear mquinas virtuales. No podr cambiar la plataforma
hardwarequevirtualiza,esdecir,sitengounsistemaoperativode32
bits,losvirtualestambinlotendrn.
Cadamquinavirtualestarreferenciadaaundirectorio,enla
quehabrunosficheros.

CREARUNAMQUINAVIRTUALNUEVA

Se podr crear a partir de un CD o de una imagen ISO. Habr


queelegireltipodesistemainstalarparapoderseleccionarlaVMwa
reToolsadecuadas.

VMwareTools.

Estas herramientas se utilizan para compartir funciones con el


host, como el portapapeles o pasar carpetas del host a la mquina
virtual. Con ellas tenemos ms funcionalidad. Cuando VMware las
instala le hace creer al guest que se trata de un nuevo hardware,
instalandolosdriverscorrespondientes.

CONFIGURACIN

Cada dispositivo virtual que agreguemos crear un puente


software con nuestro dispositivo fsico. Aunque algunos sistemas
permiten agregar hardware en caliente, es aconsejable parar la m
quina.

16

ImplantacindeSistemasOperativos

DiscosDuros.

Podemosaadircuantosqueramosypodremoselegirsucone
xin, IDE o SCSI. Cada disco se representa como un fichero con
extensin VMDK, que representar el disco duro de la mquina vir
tual.Silamquinavirtualtieneundiscode50Gb,eseficheroocupar
lomismo.
Sepuedehacerqueelespaciovayacreciendo,esdecir,quees
tosficheroscrezcandinmicamente,deformaquenotengamosque
especificareltamao,peroaslamquinavirtualperderrendimiento
(no se recomienda para servidores en produccin), aunque tambin
optimizarelespacioendiscoparasuusodomstico.

TarjetasdeRed.

Podemosaadircuantasqueramos,aunquealfinaltodasutili
zarnlastarjetasfsicasquetengamos.Cadatarjetavirtualcrearun
puentesoftware(enConexionesdeRed).
Haytrestiposdeconfiguracin:

HostOnly:Elguestslopodraccederalosserviciosque
estnactivosenelhost.Sielhostnotieneningnservicio,
el guest no podr tenerlos; ambos utilizarn una red pri
vada para comunicarse. Es un entorno ms restringido y
controlado.
Bridge:CadamquinavirtualtendrunidentificadorIPin
dependiente;habrqueconfigurarcadaunadeellascomo
sifueraunamquinanueva.
NAT: Las mquinas virtuales utilizan la misma direccin IP
que la mquina fsica. El guest se conecta a Internet por
mediodelhost.

Snapshots.

Esunafotofijadelestadodelamquina.SeentiendeporES
TADOelcontenidodelosdiscos,elcontenidodelamemoria(guarda
elcontadordelprograma;todoloquehayaenlaRAM),etc.Conlos
snapshots se podr volver a ese estado en cualquier momento. Un
snapshot crea un VMDK que se puede seguir leyendo pero no se
puede modificar. Para volver a ese estado se sustituye el VDMK,
creadoenelmomentodelacaptura,porelVMDKactual.Esteproce
soesmuyrpido(tardaapenasunossegundosenrestaurarse).

Ejemplo. Nadams arrancar mimquinavirtualcreounsnap


shot(1).DespusinstaloenmimquinavirtualelOffice2003y
hagootrosnapshot(2).LuegoinstaloelphotoshopCS4yhago
otroms(3).Podravolveralestadoinicialdelamquinaeins
talar unaversin ms moderna del Office,haciendoun ltimo
snapshot(4).Deestaformatendramos4imgenescorrespon
dientesacuatroestadosdelamquina,cadaunaligadaauna
lneatemporaldistinta.

PREGUNTAS.

1.
2.
3.
4.
5.

6.
7.
8.

17

Enquconsistelavirtualizacin?
Qu elementos intervienen en la virtualizacin de un sis
tema?
Enumera las ventajas que aporta la virtualizacin de siste
mas.
Qutiposdevirtualizacinhemosvistoenclase?Describe
susdiferencias.
Enumeraunpardefabricantesdeproductosdelicenciali
bre y propietaria destinados a la virtualizacin y comenta
algnaspectodeellos.
Quesunsnapshot?Quventajasnosaporta?
Seraposiblecrearunsnapshotsobreunamquinafsica?
Define y explica brevemente el concepto de cloud compu
tingyenumeralasventajasqueaporta.

TemaCuatro

IntroduccinaUnix

INTRODUCCIN

CARACTERSTICAS

Unixesmultiusuario.Tradicionalmente(ensuscomienzos)cada
unodelosusuariosmanejabasusistemaatravsdeunaconsola(una
televisinconteclado),noatravsdeunordenador.Dichaconsolase
conectaba con el ordenador a travs de un bus independiente. Para
acceder,cadausuariosevalidaconsuidentificador(login)ycontrase
a.Siescorrecta,UnixarrancaunprocesollamadoSHELL,queserel
encargado de comunicarse con la consola (ser el portal entre el
kernel y la consola, y viceversa). El usuario tiene como interfaz la
SHELL.Enestemodeloslohabaunordenadorporinfraestructuray
lasconsolasnialmacenabannicomputabannada.
Cada usuario trabaja dentro un espacio de almacenamiento
personal(undirectoriopropio,dentrodelrboldeficherosdelsiste
ma,alqueaccedenlosusuariostrasvalidarsunombreycontrasea).
Atravsdecomandosescritos,elusuariosecomunicaconelsistema.
DichoscomandossoninterpretadosporlaSHELL,queserlaencarga
daderealizarlasllamadasalsistemaoportunas.Portanto,laSHELLse
ejecuta en espacio usuario (si estuviera en el kernel no tendra que
hacerlas,puestoqueserapartedelsistema).
EnUnix,elusuarioROOTeseladministrador,poseeelcontrol
totaldelamquina,sobrelnosecontrolaningnpermiso,simple
menteseledejahacer.
EnUnix,losusuariosseagrupanyseetiquetanenGRUPOS;un
usuariopuedeperteneceravariosgrupos.Todoslosficherosydirec
toriostienenunnicopropietarioypertenecenaunnicogrupo.Los
grupos permiten que varios usuarios trabajen de forma cooperativa
conficherosydirectorios.
Adems,Unixesmultiprocesoydetiempocompartido(verte
ma 2, Clasificacin de sistemas operativos). Es portable gracias a
POSIXyalcompiladordeC(comoseaadienlaintroduccin).Una
caractersticaimportantemsdeUnixesquetodosonficheros.

En1969BellLabscomienzaadesarrollarelprimersistemaopera
tivodetiempocompartido,elproyectoMULTICS.Losrequerimientosde
unapotentemquina(GE645)obliganaabandonarlo.
ThompsonyRitchiecomienzanaescribirunnuevosistemapara
la PDP7; una mquina mucho ms barata. En 1970 aparecen las
primeras versiones escritas en lenguaje ensamblador de la PDP7,
pero eran versiones poco portables. Para solucionarlo, Ritchie desa
rrollaellenguajedealtonivelC,en1973,reescribiendotodoelncleo
deUnixenC.TeniendouncompiladordeCparacadaarquitectura,
Unixesportablesintocarunalnea.
UnixfuedesarrolladoporKenThompsonyDennisRitchiedelos
Bell Labs, para el computador PDP7 de DEC. Fue el primer sistema
operativomultiusuario,reescritoenunlenguajedealtonivelyporta
ble.
LapublicacindelcdigodeUnixydelcompiladordeCsedi
fundi rpidamente entre los mbitos acadmicos. Debido a esto
aparecieronlosprimerosclones(comoBSD,en1975),yelcdigose
ampli y mejor (en el futuro apareceran problemas legales). Entre
lasfamiliasdeUnixseencuentran:

SystemV.Eslaconsideradaherederadelaversinmspu
radeBellLabs.
BSD.CreadaapartirdellicenciamientoaBerkeley.Reescri
ta para evitar problemas legales. Primera pila de
protocolosTCP/IPdeInternet.
AIX.SurgedellicenciamientoaIBM.
GNU/Linux. El movimiento GNU ha intentado reescribir su
propioUnixparalicenciarloconsulicenciaGPL.

ParallamaraalgoUnixtienesquepagar,yaqueesunamarca
licencia del consorcio The Open Group. Por ejemplo, Linux, FreeBSD,
NetBSD,nosonUnix.Lacompatibilidadrealentretodoselloslamarca
el estndar POSIX (es un estndar, escrito en C, sobre la interfaz de
llamadasalsistema).Siestandarizasesto,lohacescontodaslaslibre
ras de llamadas al sistema, mejorando la portabilidad. Los
programadoresyasabenloquevanaencontrarsecuandoelsistema
operativoesPOSIX.UnixyMACOSloson.

ELEMENTOSDELSISTEMA

LOADER(CARGADOR)

Esunpequeoprogramaencargadodecargarelkernel(esde
cir,pasarlodeldiscoalamemoria).
Cuando la CPU arranca, en el principio de la SECUENCIA DE
ARRANQUE, siempre tiene que leer una direccin de memoria. Esta
direccin (quesueleestar fijada porlosdiseadores del microproce

18

ImplantacindeSistemasOperativos

sador) albergar la instruccindel primer programaque ejecutar la


mquina. Pero cmo metemos ese primer programa en esa direc
cin?Unaopcin(lonormal)eshacerquelaCPUcomienceporleer
unapartedelmapadememoriaquesueleestaralojadoenuname
morianovoltil(porejemplo,unaROM).

Ejemplo.LosdiseadoresdeunaCPUnosindicanquesuproce
sadorempiezaaleerporladireccin0000.Nosotrospodemos
pinchar,desdeladireccin0000ala1024unmdulodememo
riaROM.Enesamemoriapodemosponerlasinstruccionesde
nuestroprogramainicial(quelosIBMPCsuelenllamarBIOS)y
la CPU lo ejecutar siempre al inicio. Apaguemos o no el
computadorsabemosqueelprogramainicialestarpreparado
enesamemoriacuandolaCPUvayaaleerloall.

Ese primer programa (la BIOS), podra cargar el kernel del sis
tema, pero en la actualidad los fabricantes de sistemas operativos
prefierenqueeseprimerprogramacargueelprogramaCARGADOR.
LaBIOSsepuedeconfigurar,asignandounalistadeprioridades
dondebuscarelprogramacargador;unavezlohaencontrado,laCPU
lo ejecuta, y una vez en marcha, encuentra al kernel (de manera
sencilla,yaquecadacargadoresprogramadoporloscreadoresdesu
propiosistemaoperativo).Despuslocargaenmemoriaylediceala
CPU dnde empezar a leer la direccin de memoria del kernel. Una
vezcumplidasufuncindesaparecedelamemoria.Enesemomentoel
kernel se ejecuta de forma directa (sin interrupciones ni llamadas al
sistema), cargando todas las estructuras que va a necesitar el sistema
operativo(tablasdeprocesos,planificador,etc.).Eslanicafasedonde
seejecutaelkernelperse.
Todoestoesvlidoparacasicualquiersistema,nosloparaUnix.

KERNEL

Esunarchivoejecutablequerecogelamayorpartedelcdigo
del sistema. Lo que no forma parte del mismo son libreras (DLL
DinamicLinkLibrary).Resultadelacompilacindetodosloselemen
tosfundamentalesestudiadosenelTema2.
CuandoarrancalaCPUylaBIOSejecutaelcargador,stebusca
elarchivodelkernelparaejecutarlo.Serelprimercdigoqueejecu
telaCPUparaponerenordenelsistemaantesdequepuedarecibira
losdemsprocesos.
Sepuedenconseguirkernelmspequeospasandopartedesu
cdigoalibrerasexternasqueseenlacendinmicamente,porejem
plolaslibrerasTCP.Deestaforma,elprimerprogramaquerequiera
esalibreratendrqueesperarhastaquesecarguenenmemoria.Con
esto, lgicamente, conseguiremos que el kernel consuma menos
memoriayserealice,portanto,unarranquemsrpido.

DEMONIOS

SonprocesosNOINTERACTIVOS(esdecir,norecibenningnin
putdelosusuarios,nointeractanconningunashell)ejecutadosenel

rea de usuario. Los inicia el kernel y se estn ejecutando todo el


tiempo(independientementedelosusuarios),comenzandosustareas
cuando la mquina arranca. Aunque no tienen por qu ser iniciados
por ningn usuario en particular, tambin pueden ser lanzados por
ellos.Losobjetivosquecumplensondiversos,desdevalidarusuarios
entrantes,chequeardiscos,registrareventos,etc.
EstosprocesosequivalenalosserviciosdeWindows.
Losdemoniosnopuedensermatadossalvoporelusuarioque
loscre.Yaquetodoslosprocesostienenquehabersidolanzadospor
un usuario (como se ver en Usuarios y Grupos, pgina 26), sern
estos usuarios sin acceso de shell los que podrn acabar con sus
procesosasociados.Adems,rootpodramatarcualquierproceso,ya
quetalycomosehaindicadoantes,cuandoroothacealgo,seledeja
hacer.

SHELL

Eslainterfazdeusuarioentreelkernelylosusuarios,llamada
INTRPRETEdecomandos.Cadashellcontrolaunaconsola,yseeje
cutaenlamquinaUnix,noenlasconsolas.Cuandounusuariovalida
su nombre y contrasea contra un demonio a travs de su consola
hardware, el sistema carga una shell, por lo que dicha shell ser el
nicovnculoentreelusuarioylamquinadurantetodalasesin.
Esto se suele representar en forma de crculos concntricos,
dondeelncleoestocupadoporelkerneldeUnixyrodendoleest
lashell.Elcrculomsexteriorestaraocupadoporlosusuarios.Este
diagrama representa la imposibilidad de lo usuarios para llegar al
kernelsinutilizarparaellolashell.

SECUENCIADEARRANQUEDELSISTEMA

LaCPUcomienzaaejecutaralosdemonios.
Lamquinaquedaalaesperadeconexionesdeusuarios.

FICHEROS

Comosehadichoantes,enUnixsontodoficheros,loquesigni
ficaquerecibirnestadenominacintantoarchivoscomodirectorios.

19

Arranca la CPU y lee las primeras direcciones de memoria


asignadasporeldiseador.AllestalojadalaBIOS.
LaBIOSbuscaalcargadorylocargaenmemoria.
Elcargadorcargaalkernel.
Elkernelcomienzaaejecutarseycargatodoloqueesnece
sario para el sistema, incluidos los demonios, siendo el
planificadorlaltimainstruccindelarutinadearranque
delsistema.Cuandosaltaelplanificadordecideelsiguien
te proceso a ejecutar (realizando por tanto el primer
cambio de contexto) y termina la secuencia de arranque
(sedejadeejecutarelkernel).

ImplantacindeSistemasOperativos

Estos ficheros se organizan en un nico rbol de ficheros, aunque


tengamos muchas particiones. En Windows, al contrario, por cada
volumen de almacenaje (particin, unidad de red, etc.) tenemos un
rboldeficherosdistinto(a:\,c:\,d:\...).
EnUnix,losficherosnotienenextensin,esdecir,queunfiche
ro sea archivo.txt no es indicativo para el sistema, sino para
nosotros(nosorientadequeesunarchivodetexto).Adems,aque
llosarchivosquecomienzanpor.,permanecernocultos.
TodoslosficherosdeUnixtienenunnicopropietarioyperte
necenaunnicogrupo.
Dentrodelrboldeficherosnospodemosencontrar:

Ficherosdedatos.Binariosoplanos.
Directorios: Cuando creamos un directorio tenemos siem
pre dos entradas, la entrada . (apunta al directorio
actual)yla..(apuntasiemprealdirectoriopadre).
Ficheros especiales: Son la interfaz entre los procesos, los
dispositivosyelkernel,Unixlosutilizaparaaccederato
doslosrecursosdelsistemaypodermanipularlos.Noson
bytesalmacenadosen undisco,sino portalesde comuni
cacinconlosdriversdelsistema,alosqueaccederemos
cuando leamos o escribamos en este tipo de ficheros. Es
decir, utilizando las operaciones bsicas de los ficheros
(leeryescribir)podremosmanipularcualquierdispositivo,
consiguiendo HOMOGENEIZAR todo el sistema (con dos
llamadasalsistemasehacetodo).
Algunosficherosdeestetiposon/dev/random
(sobreelquenopodremosescribir,ysiloleemos,elsis
tema nos devolver una serie de bytes aleatorios,
ofrecidosporundriver,yaqueeltamaodelficheroesde
0bytes);/dev/null(delquenopodremosleer,peroso
breelquepodremosescribirsinquesutamaoaumente;
el sistema ignorar todo lo que se escriba en l, sin que
vayaapararaningnsitio).

Rutas.

Todoslosficherosselocalizanenunaruta(path).LaRUTAesel
conjuntodenombresquehabrquecruzarenelrboldeficheros
parallegaracualquieradestino.Cadaunodeesosnombressesepara
porelsmboloslash(/).Enunaruta,todoslosnombrescorrespon
denadirectorios,menoselltimo.
Hay dos formas de establecer la ubicacin de un fichero, me
diante:

RutaRelativa:Larutacomienzaporunnombreynoporla
raz(/).Elsistemaloencuentrautilizandocomoreferencia
laubicacindondeseubicaelusuario.Cuandounusuario
tieneasignadaunashell,sueleapuntaraundirectoriodel
rbol (que suele ser el directorio home, es decir, el
workingdirectorydelusuario).
RutaAbsoluta:Larutacomienzaporeldirectorioraz(/).

Ejemplo.Imaginemosqueennuestraraztenemosundirecto
rioDir1,yquedentrodelmismoexistenotrostresdirectorios
ms:A,ByC.SidentrodeldirectorioAexisteelfichero
F1,ynosencontramosenesedirectorio,A,larutaquede
ber indicarle a shell para que borre F1, ser /Dir1/A/F1
(rutaabsoluta)oA/F1(rutarelativa).

Metadatos.

Losmetadatosyasedefinieroneneltema2SistemadeFiche
ros. Almacenan informacin sobre los ficheros, por lo que son
similares en ficheros y directorios (propietario, grupo del fichero,
tamao,permisos,fechayhorademodificacin).

Permisos

Unixnotienelistasdecontroldeacceso,nocrealistasdeusua
rios(CL)conlasoperacionesquepuederealizar,sinoquepermitetres
operacionesparacadaficheroydirectorio:

Leer(Read):Recuperarbytesdeunfichero.
Escribir(Write):Modificarlo.
Ejecutar(eXecute):Cargarsucontenidoenmemoriayeje
cutarlo, o cargar su intrprete en memoria y que lo
ejecuteste.

Adems,Unixdiferenciatresrolesdeusuariosrespectoafiche
rosydirectorios:

Propietario(Userowner).
Miembrodelgrupodelfichero(Groupmembers).
Todoslosdems(theOther).

Paracadaficheroseguardaunaristrade9bitsquemuestralos
permisosquetiene;3paracadaunodelosrolesydeesostres,uno
paracadaunadelasoperaciones.

Montajes.

Permiten ampliar nuestro rbol de ficheros, y por tanto el ES


PACIO DE NOMBRES (que es el conjunto de nombres que podemos
manejarenelrbol).
Siagregamosunaunidaddediscoyaformateadaconsupropio
rboldeficheros,tendremosqueunireserbolanuestrorbolgene
ral.EnUnix,aesto(esdecir,montardispositivosparavisualizarlosen
nuestro propio rbol) se le llama MONTAJE. Con ello conseguimos
ampliar el espacio de nombres incluyendo la informacin de otros
dispositivos.
Cualquier dispositivo que tenga capacidad de almacenamiento
tienequesermontado.

20

ImplantacindeSistemasOperativos

Sinolomontramostendramosquemanejareldispositivocon
leer/escribir,trabajandoconlainformacinqueestalmacenadaen
crudo(algoquehacenlosgestoresdedisco).

SoftwareLibreyGPL.

AunquetodoelsoftwareGPLeslibre,notodoelsoftwarelibre
es GPL. Esto esporque existen muchas licencias libres. Es la GNU, a
travsdelaFSF(FreeSoftwareFundation),laquedecidesiunalicen
ciaeslibreono.Paraello,tendrquecumplirlascuatrolibertades.
Hay que tener en cuenta que estas libertades no dicen nada
acercadeladistribucin.Referidoaestoexistendiversaspropuestas
msymenosrobustas(MIT,BSD,Apache,etc.).

HISTORIADELINUX

En1980,laGNUyStallmancomienzanacrearunUnixcomple
tamente libre. En su versin, su kernel se denominaba HURD, y
desarrollaronparalungrannmerodeaplicaciones,comouneditor
detextollamadoEmacs(EditorMACroS),gcc
En1990,LinusBenedictTorvalds(ingenierodesoftwarefinlan
ds)empiezaamodificarMinix(unUnixdejuguete)ylocompilaen
unIntel386.
En1991,LinusliberalaprimeraversindeLinuxconsistenteen
unkernelqueharecibidoaportacionesdeotrosyqueestlicenciado
conGPL.Linusutilizaparaestaversinelcompiladoryotroselemen
tosGNU.Naceunapolmicainterna:LinuxoGNU/Linux?
Actualmente HURD est abandonado. Linux es el sistema ofi
cialdelacomunidadlibre.

LinuxyUnix.

LinuxderivadirectamentedelosancestrosdeUnix,enconcreto
de Minix. No es POSIX, aunque cumple su estndar en su totalidad.
Porello,muchosnoleconsideranunUnixpuro,ototalmenteUnix.

AvanceyDesarrollo.

ElavancedeLinuxescomplejo.Noexisteunorganismocentra
lizador ni coordinador. El kernel est gestionado y se actualiza por
Torvalds y su equipo. El resto de usuarios coge el kernel y le aade
aplicacionesexternasasugusto,creandounadistribucin.
Unadistribucinestformadapor:

Kernel+Aplicaciones

dondeelkernelpuedeseroficialoestarmodificado.Cadadistribucin
avanzadeformaindependienteypublicasuspropiasactualizaciones
en sus propios servidores. Muchas distribuciones comparten aplica
ciones. En las distribuciones no existe ningn elemento
estandarizador,yportantopuedenexistircambiosdelibreras,entor
nos,plataformasloquehacequetodoestmuydesorganizado.
Detrsdelasdistribucionesexistendiferentestiposdecolectivos:

Empresas:Ubuntu,Suse.
Gobiernos:Max,GuadaLinex.

LINUX,UNUNIXLIBRE

QUESLINUX?

Linuxbienpuedeserunkerneldeunsistemaoperativoounsis
temaoperativocompletoqueutilizasupropiokernel.Sealoquesea,
essoftwarelibreyutilizalalicenciaGPL.

SoftwareLibre.

El concepto de software libre fue creado por el movimiento


GNU (GNUs Not Unix) que fue fundado por el hacker Richard Stall
man.Sumanifiestopuedeleerseenlasiguientedireccin.

http://www.gnu.org/gnu/manifesto.es.html

Esunamaneradeentenderelsoftware;silainformacintiene
queserlibreyelsoftwareesinformacin,entonceselsoftwaredebe
serlibre.Paraello,elcdigofuentedebeserpblicoylibre,esdecirel
cdigopodrser:

Modificado.
Redistribuido.
Ejecutado.

Segn GNU, el software libre ser aquel que permite las si


guientescuatrolibertades:

Libertad0.Libertaddeejecucinparacualquierpropsito.
Libertad1.Libertadparaestudiarsufuncionamiento.
Libertad2.Libertadparadistribuircopias.
Libertad3.Libertadparamejorarloyadaptarlo.

Algunos ejemplos de software libre son: sistemas operativos


como Linux, FreeBSD, OpenSolaris, etc.; compiladores e intrpretes
comoGcc,Python,Java,etc.;otrasaplicacionescomoFirefox,Emule,
Bittorrent,etc.

LicenciasGPL(GeneralPublicLicense).

Es una licencia propia de GNU cuyo objetivo fundamental es


protegeralpropiosoftwarelibre.ImplicaquesimodificascdigoGPL
yloquieresdistribuir,debeshacerlotambinbajolicenciaGPL.

21

ImplantacindeSistemasOperativos

2.

ComunidadesdeUsuarios:Gentoo,Debian.

ElnicodenominadorcomnatodoestoeslalicenciaGPL.
Losrepositoriosoficialesdelkernelestnenkernel.org.Exis
tenmilesderepositoriosnooficialesyaquecadaunopuedehacerlas
modificaciones que quiera al kernel (por ejemplo Android). Incluso
aquellos que quieran incluir sus modificaciones en el kernel oficial
pueden enviarlas a la lista de correo oficial, donde los committers
decidirnsiincluirlasonoenelkerneloficial.

3.
4.
5.

PREGUNTAS.

9.

6.
7.
8.

1.

DescribebrevementelascaractersticasgeneralesdeUnixy
sumodelodeutilizacin.

22

Quineselusuariorootyqudiferenciasexistenentrel
yelrestodeusuarios?
ExplicaelprocesodearranquedeUnix.
Qufuncionestienelashell?
Describe las caractersticas generales del sistema de fiche
rosdeUnix.
Quesunmontajeyquimplicarealizarlo?
DescribeelmodelodepermisosdeUnix.
Enumera cules son los metadatos estudiados que utiliza
Unix.
Quesunficheroespecialodedispositivo?

TemaCinco

LinuxI
AdministracinyUsoBsico

ARQUITECTURA

CARACTERSTICAS

Linuxesunsistemaoperativomultiprocesoymultiusuario.En
trelosusuariosdistinguearoot(raz)yatodoslosdems.Adems,
estconformadoensutotalidadporficheros.
Ensuorganizacinsloexisteunrboldeficherosdeestructura
horizontal,dondeestosseagrupanendirectoriostemticos.EnLinux,
dichosficherosnotienenextensin,perocadaunotieneunnombrey
unaruta(bienseaabsolutaorelativa).Porltimo,todoslosficheros,
y por tanto todo lo que forma Linux, tiene tres permisos: lectura,
escriturayejecucin.

USODELSISTEMA

LinuxtieneciertasreminiscenciasdelsistemaUnix.Enl,cada
usuariomanejabaunaconsolasobrelaquesevisualizabalashell,de
forma que todos los usuarios se conectaban a un solo sistema Unix,
introduciendosuusuarioycontrasea.Hoyda,nuestraCPUesnues
tropropioUnix,sobreelquepodemosarrancarmltiplesshells.

estndar, todava est presente en todos los sistemas Li


nuxqueseancompatiblesconlosprogramasUNIX.
CShell(csh).Lasintaxisdeestashellessimilaralaqueuti
lizaellenguajedeprogramacinC.
KornShell(ksh).Esunsuperconjuntodesh,complicadapa
raprincipiantes.
BourneAgainSHell(bash).EslashellestndardeGNU,in
tuitiva y flexible. En Linux es la shell estndar para casi
todos los usuarios. Es una sh con aadidos y conexiones,
porloqueshsersiemprecompatibleconbash,perono
siempreloseralainversa.Bashesunashellcompatible
conshqueincorporaherramientasdekshycshysigueel
estndarPOSIX.

Elarchivo/etc/shellsnospodrdarunaideadelasshe
llsdeunsistemaLinux.

~$ cat /etc/shells
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh

Para cambiar de una shell a otra slo hay que introducir el


nombre de la nueva shell en la terminal. El sistema encontrar la
ordenintroducidautilizandolavariablePATH,ypuestoqueunashell
esunarchivoejecutable(unprograma),lashellactualpodractivarla.
Unavezintroducidoelcomando,lonormalserqueelpromptmues
trelaaparienciavinculadaadichashell.

ArranquedelaShell.

Cadavezqueunusuariovalidasuacceso,searrancaunashell
paral.Durantelasesinpodremosarrancarmsdeuna;siejecuto
bash,searrancarotrashell,quedandolaanteriorbloqueadahasta
quelanuevanofinalicesufuncionamiento.
Alarrancarlashell,leesusparmetrosdeconfiguracindeun
fichero llamado .bash_profile (ten en cuenta que el primer punto
indicaqueelficheroestoculto)enmuchasdistribucionesy.bashrc
enUbuntu.Existeunficherodeestetipoporusuario,dondeseguar

SHELL

La shell es un recubrimiento del kernel del sistema. Funciona


como una interfaz entre el usuario y el kernel; sin ella, el usuario
tendraquemanipularlaslibrerasdellamadasalsistema,porloque
suexistenciapermitequeelusuarioseabstraiga,permitiendoquela
shellhagalasllamadasalsistemaporlalinterpretarnuestrasaccio
nes. Adems de esto, la principal tarea de la shell ser proporcionar
unentornodeusuario.

TiposdeShell.

Haymuchasshell:

ShellBourne(sh).Eslashelloriginalanutilizadaensiste
mas UNIX y derivados. Es la shell bsica, un pequeo
programaconpocascaractersticas.Aunquenoeslashell

23

ImplantacindeSistemasOperativos

danlaspreferenciasdesussesiones.Sinosecrearaestefichero,alser
bashunproceso,desapareceraalapagarelsistema.
Cuandovalidamoselnombredeusuarioylacontrasea,apare
cenunaseriedelneasenpantalla.Estaslneasestnescritasporel
kernel y por el proceso INIT, mostrandoun anlisis del arranque. En
laslneasfinalesaparecertty1,quenosmuestraqueestamosenla
consola nmero 1, siguiendo el esquema de funcionamiento de los
aos70.

UsodelaShell.

Unavezarrancada,elusuariolamanipularatravsdecoman
dos que sta entienda. Una vez validado el nombre de usuario, el
sistemamostrarelPROMPT,loquesignificaquelashellestprepa
rada para recibir un comando. El prompt en Linux suele tener la
siguienteforma(terminaconelsmbolo$):

usuario@maquina:/ruta$
(alumno@mvirtual:~$)

LoscomandosseintroducenenLinuxsiguiendoelsiguientees
quema:

~$ comando [-modificadores] [argumentos]


(conespaciosentrecomandos,modificadoresyargumentos)

Ten en cuenta que puedes encadenar comandos, separando


cadaunodeellos(juntoconsusmodificadoresysusargumentos)con
unpuntoycoma(;).
Cuandolehacemosllegaralashellelcarcterintro,conside
raquela ordenyahasidoemitida, interpretndola y ejecutndolay
mostrando el prompt de nuevo en pantalla una vez ha finalizado.
Mientraslosprocesosarrancan,lashellquedarbloqueada.

Ejemplo. Cuando escribo el comando date y pulso intro,


asumequelaordenhasidointroducidaporcompleto.Lashell
haceunallamadaalsistemaparaqueelkernelarranqueelpro
ceso date, etc. En ese momento la shell crea un nuevo
proceso.Mientrasseejecutadate,lashellquedarenesta
dobloqueado.Shellydateestnconectadosatravsdeuna
estructuradesincronizacin;hastaquedatenopongabytes
en el buffer que comparte con la shell, la shell no se desblo
quear.Unavezdesbloqueada,escribirlosdatosenpantalla.
El kernel retirar date de la memoria y la shell volver a
mostrarelprompt.

Para salir de la shell, habr que escribir el comando exit.


Ten en cuenta que la Shell distingue entre maysculas y minsculas
cuandoterefierasalosficheros,asqueprestaatencin.

ExpresionesRegulares.

Ledanflexibilidadalainvocacindecomandos.Loscaracteres
comodines se utilizan para que la shell los sustituya por otra expre
sin. De forma que si utilizamos el asterisco (*), la shell utilizar
cualquiersecuenciadecaracteres,ysiponemoselsignodeinterroga
cin(?),lostendrencuentadeformaindividual.

RedireccionesdeFlujo.

LosprogramasenLinuxtienentresflujosdedatos,queseiden
tificanconlosnmeros0,1y2:

Entrada estndar (por defecto el teclado), cuyo identifica


doresel0.
Salidaestndar(pordefectoelmonitor),cuyoidentificador
esel1.
Salida estndar de errores (por defecto el monitor), cuyo
identificadoresel2.

Cuandolashelllepidealkernelqueejecuteunproceso,infor
maralkernelyalprocesosobreelflujodedichoproceso(esdecir,
sobre suentrada/salida). Por defecto tomar los datos del tecladoy
mostrarlasalidaporpantalla,peropodrasertambinalgocomola
entradalacogesdeestatuberaylavuelcasenaquelfichero.Deesta
formaredirigimoselflujodelosdatos.

Sinohayinformacindeeseflujo,elprocesovolcarlain
formacin al monitor (salida estndar). Sin embargo,
podemos pedirque saquelos datosno porpantalla sino,
por ejemplo, a /dev/null, o redirigirlo a un fichero,
almacenandoenllainformacinquedeotraformamos
traraenpantalla.
Igualmente,lasalidaestndardeerrorserelmonitor.
La entrada estndar es el teclado, pero se puedecambiar,
porejemplo,lashellpodrapedirlequecuentecaracteres,
peronodelteclado,sinodeunfichero.

Engenerallosprogramasycomandosnomuestrannadasitodo
vabien.
Paramodificarlasentradasylassalidasdeloscomandoshabr
queescribir:

>(paraqueredireccionelasalida).
2>(paraqueredireccionelasalidadeerror).
&>(paraqueredireccioneambassalidas).
>>(paraqueredireccionelasalida;sintruncar,esdecir,
loqueescribamosloaadirenunalneanuevaalarchivo
queyaestcreado.Estaopcinpermitetambinlanota
cin2>>&>>).
<(paraqueredireccionelaentrada).

24

ImplantacindeSistemasOperativos

Ejemplos.Siescribo:

~$ ls /bin > /tmp/salida.txt

Lainformacindelosficherosquehaycontenidoseneldirecto
rio bin, se escribir en el fichero salida.txt situado en el
directoriotmp(tododentrodeldirectoriohome).

~$ ls /bin > /tmp/salida.std 2> /tmp/salida.err

Escribirelcontenidodebinensalida.std,ysi dieraerror,
dichomensajeseescribiraenelficherosalida.err.

~$ cat < archive > /tmp/archivo.copia

envezdemostrarelcontenidodelarchivoenpantalla,lomete
renelficheroarchivo.copia.

~$ sort < /tmp/nombres.txt

Ordenalaslneasdelficheronombres.txt.Sortpuedeordenar
variosarchivosalavez.Porejemplo,siqueremosquelosarchi
vosnombres1ynombres2quedenordenadosyquedenas
enunarchivonuevollamadonombres,escribimos:

~$ sort < nombres1 nombres2 > nombres

Tuberas.

Conectanlaentradadeunprocesoconlasalidadeotro,consi
guiendo que se comuniquen datos entre s. Ambos procesos se
arrancanalavez,peromientrasnohayadatosenlatubera,ellector
se bloquea. Es decir, el comando que escribamos a la derecha de la
tuberatomarcomoentradalasalidadelcomandodelaizquierda.

Ejemplo.Siescribo:

~$ cat /tmp/nombres.txt | sort

De esta forma, hacemos que el contenido de nombres.txt


aparezcaenpantalla,ycomolohemosconectadoconunatu
bera a sort, har que el contenido aparezca ordenado
alfabticamenteporfilas.

~$ cat /tmp/nombres.txt | head

Aquloquenosmostrarsernlasprimerasdiezlneasdelar
chivonombres.txtenpantalla.
Se pueden utilizar varias tuberas en la misma invocacin y se
puedencombinarconredirecciones.

Tenencuentaquelastuberasestnlimitadasencapacidad,de
formaqueunavezalcanzadoeselmiteharqueelprocesodesalida
sebloquee.

VariablesdeEntorno.

Sonunconjuntodevaloresasociadosaunnombrequeafecta
almododefuncionardelosprocesosydelashell.Dichosvaloresse
almacenan dentro de bash y slo sern visibles en la shell que se
declararon.Esdecir,siarrancounasegundashellnotendrlasvaria
blesquehayadeclaradoenlashellmadre,porloqueparaquesean
globalestendremosqueutilizar:

/# export VARIABLE

yastodaslasshellhijastendrnincluidasdichasvariables.
Lasvariablesaportaninformacinalashell.Dichainformacin
no se perder al cerrar la shell porque se almacenan en un fichero
estticodedisco,ypodrafectaralosprogramasqueestemosejecu
tando.Lasvariablessonconsultadasporbashdurantesuejecucin,es
decir, si introduzco la variable colors=1, cuando bash consulta el
espacio de variables y se encuentra con esto, har que los procesos
imprimanloscaracteresencolor.Porponerotroejemplo,sialarran
carFirefox necesita guardar ciertoarchivo temporal, le preguntar a
bashsitieneunavariablequeindiquelarutadondepodraguardarlo.
Hoy da casi todos los procesos guardan sus propios ficheros, pero
antiguamente funcionaban en base a las variables que bash pudiera
contener.
Comoseindicantes,hayunficheroquebashleeryejecutar
antes de dar el primer prompt (.bashrc). En dicho fichero podrs
meter las variables de entorno, de forma que aunque las pierdas
cuando cierres el proceso, las volvers a cargar al inicio, por ello se
dicequesondinmicas.
Lasvariablessedeclarandelasiguienteforma:

~$ VARIABLE=valor

Donde VARIABLE puede tomar la forma que quieras, aunque


porconveniosueleirsiempreenmaysculas.Adems,bashessensi
blealasmaysculasyminsculas.Elvaloresalfanumrico.
Loquedeclarescuandoescribesunavariablesequedadentro
debash.
Pararecuperarelvalordeunavariablepuedoescribirelnom
bre de la variable precedida del smbolo $. Por ejemplo, si hago las
siguientesdeclaraciones:

~$ VAR=F1
~$ cat F1(serlomismoquesipongo:cat $VAR).

Ysipongo:

~$ VAR=ls
~$ $VAR(serlomismoqueejecutarls)

25

ImplantacindeSistemasOperativos

Enbashpuedesmeterloquequieras:rutas,comandos,etc.Ten
encuentaque para modificar cualquier variablede entorno siempre
tendremospermisosporquesernuestrashell.

VariablePATH.

Esta variable es muy importante. En ella se guardan las rutas


dondesepodrnencontrarlosficherosbinarios(ejecutables).Utilizar
la nos evita tener que escribir la ruta absoluta de cada comando al
invocarlo.Lasrutasalmacenadasestnseparadaspor:
Por defecto, PATH contiene todas las rutas existentes para los
archivos binarios. Si modifico PATH y sobrescribo su valor, perdere
mos todas las rutas y ser incapaz de ubicar los programas que
ejecutemos, y por tanto, no podr ejecutarlos a menos que nos en
contremosensumismaruta.
Al ejecutar un programa, bash va probando las distintas rutas
contenidasenPATHhastadarconlaubicacindelmismo.Parameter
nuevasrutasaPATH,sineliminarlasexistentes,habrqueescribir:

~$ PATH=$PATH:/nueva/ruta

Tenencuentaquealintroducirelsmbolo$antesdelavariable
estamosrecuperandosuvalor(talycomosedijomsarriba).Elorden
enelqueintroduzcaslasvariablesaPATHserrespetadoporbash.Si
porejemplopongo:

~$ PATH=.:$PATH

Harquesiemprequevayaaarrancarunprograma,bashbus
queprimeroeneldirectorioenelquemeencuentre.
Has de saber que aunque eliminemos el valor por defecto de
PATH,bashsiemprepodrejecutarloscomandosechoyexit,pues
soncomandosinternos.
Algunas variablesde entorno msson:HOME, MAIL,PS1,HIS
TORY,CLASSPATH.

Inodo.

Losinodoshacenreferenciaaunaestructuradedatos,unaes
pecie de ficha con diferentes campos (por ejemplo, el bloque de
control,losmetadatosdelfichero).Elinodoalmacenalosmetadatos
decadaficheroexistiendouninodoporcadadirectorio.Guardanuna
listaconlalocalizacindelosbloquesdediscodondeestguardado
cada fichero. Estos bloques se gestionan en grupos, reduciendo la
fragmentacindelosficheros.
A travs de la ruta de los ficheros llegamos a su nombre que
tendrasociadoun nmerode inodo;dichonmero estarrecogido
en la tabla de inodos. Esta tabla se carga durante el arranque. La
tablasealmacenaenlaprimerapartedeldiscoysecargaenmemoria
(pudiendocargarseporbloques).
Cadatablaemparejanombresynmerosdeinodos.Porejem
plo,sieneldirectorioraztuviramoslasiguientetabla(elinododela
raznohayquebuscarlo,estenlugarconocido):

SISTEMADEFICHEROS

Voyalinodo3ytenemostodoslosmetadatosde/bin/lsynos
dicequeestenelbloque155y156,yallencontramoselfichero.
Existe una cach de bloques para que no tenga que acceder
siemprealdisco.

DiferenciasconFAT.

Dentrodeunficherocadabloqueapuntaasusiguiente,porlo
que no es necesario consultar continuamente la tabla de inodos.
Adems, reduce la fragmentacin debido a la gestin de los inodos
(losbloquestiendenaalmacenarsecercanosyengrupos).

inodo

..

bin

dev

Enestatablalosdirectorios.y..apuntanalaraz,porlo
quecompartenelmismoinodo.Siquieroleer/bin/ls,voyaraz
y/binestenelinodo4.Voyalatabladeinodosyenelinodo4
estnlosmetadatosde/bin,dondepuedoleerqueseencuentra
enelbloque144.Leodichobloqueytengootratabladedirectorios
de/bin.

Ficheros

inodo

/bin/nano

/bin/ls

CARACTERSTICAS

ElsistemadeficherosesparecidoalUFS(UnixFileSystem),por
lo que slo existe un rbol y por tanto slo tiene una raz (/). El
sistemasiemprediferenciaentremaysculasyminsculasylosfiche
ros no tienen extensin. Los ficheros y los directorios son lo mismo
(ambostienenlosmismosmetadatos).
Elsistemadeficherosestbasadoenelconceptodeinodo.

26

Directorios

ImplantacindeSistemasOperativos

Tiposdeficheros.

ExistendiferentestiposdeficherosqueLinuxidentificaconun
carcter.

Utilizaunparalosficherosregulares.
Una d para los directorios (Linux los muestra de color
azul).
Unabocparalosdispositivos.
UnalparalosenlacesSIMBLICOSoblandos.Enellosel
contenido del bloque del fichero enlace es la ruta del fi
chero enlazado, sera lo que son los accesos directos en
Windows.Secreanconln s(desymbolic).Elfichero
enlazadoguardalarutadeaccesodelficheroalqueest
enlazado,porloquesiborroestefichero,elenlazadono
valdrparanada.

Lasintaxisserlasiguiente.Sitengounarchivo,porejem
plo Notas_Trim2012, y quiero mostrarlo con un acceso
directoan012,escribo:

~$ ln s Notas_Trim2012 n012

Deestaforma,cuandohagaunls,meaparecer:

Volcarenelficheroholaelcontenidosaludo.Autom
ticamente, al estar hola y adios enlazados, saludo
tambinestarenadios.
Siahoraescribo:

~$ rm /tmp/hola

Eliminarhola,peronoeseinodo,pueselsistemadefi
cheros no libera un inodo hasta que no se han eliminado
todoslosnombresquetienereferenciado.Paraliberarese
inodohabrqueescribirtambin:

~$ rm /tmp/adios

Paraverlosmetadatosdelficheroylosnombresqueapun
tanacadainodoseutilizals l.

Montajes.

Es un mecanismo que asocia el fichero de dispositivo de una


unidad de almacenamiento con un directorio del rbol. Permite am
pliar el espacio de nombres, accediendo a ellos a travs de otras
unidades.Elmontajeesnecesarioparautilizarlasunidadesdemane
ratransparente.
Para extraer fsicamente una unidad se tiene que desmontar.
Tanto el montaje como el desmontaje eran tareas tradicionalmente
de root. Dicho montaje se puede automatizar durante el arranque
utilizando/etc/fstab,aunquehoydalorealizanlosgestoresde
escritoriodemaneraautomtica.
Para realizar un montaje se suele acudir al directorio /dev
dondeseencuentranlosficherosdedispositivos,deformaquepara
montarunaunidaddecdromescribiremos:

~$ mount /dev/cdrom1 /mnt/cdrom

Siempre que hayamos creado antes el directorio cdrom en


mnt.Paradesmontarlaunidadhabrqueescribir:

~$ umount /dev/cdrom1 /mnt/cdrom

Conloquelashellnosreponder:

umount: /mnt/cdrom: no montado

Organizacin.

AunqueLinuxmantienesurbolorganizadoenzonas,soncon
venios no oficiales, por lo que esta organizacin puede ser alterada
porunadministrador.Muchasaplicacionespresuponenciertascosas
del sistema de ficheros, por ejemplo, que tiene una organizacin
horizontal, ya que cada aplicacin coloca sus ficheros en directorios

lrw-rw-r-- alumno alumno n012

UnparalosenlacesFSICOSoduros.Enlosenlacesfsi
cosunmismoinodoestreferenciadodesdedosficheros
diferentes.Losenlacessonlaformadecrearaccesosafi
cheros en diferentes lugares. Para los enlaces FSICOS se
creaunnombredeficherosqueapunteauninodoyare
ferenciado.Porejemplo,silsapuntaalinodo5,ycreo
listaquehacereferenciaaesemismoinodo,tendrun
ficherocondosnombres(enLinuxelnmerodeficheros
quehayeselnmerodeinodosexistentes).
Nosepuedencrearenlacesfsicosadirectorios.
Los enlaces se crean con el comando ln (link). Por
ejemplo,sitengoelficheros/tmp/hola,yquieroenlazar
loconunficheroqueannoexistellamadoadios,para
queadiosapuntealmismoinodoquehola,escribir:

~$ ln /tmp/hola /tmp/adios

Siejecutamosls inosdevolverelnmerodeinodo
quecorrespondeaesenombre.Ylosdosficherosaparece
rnconunfondoazul:

432455 adios 432455 hola

Siguiendoconelejemploanterior,siescribo:

~$ echo saludo > /tmp/hola

27

ImplantacindeSistemasOperativos

temticos,nocomoenWindows,queseinstalatodounprogramaen
unsolodirectorio.
Losficherosseorganizanenlossiguientesdirectorios:

/bin. Suele indicar la presencia de binarios (ejecutables),


compilados o scripts (programas hechos en lenguajes in
terpretados no se dice script de C porque est
compilado). En este directorio estn los ejecutables fun
damentales: ls, tail,head
/usr/bin.SesuelenmeterlosejecutablessinlosqueLi
nuxseguirafuncionando.
/usr. Sueleindicar informacinpropia de usuarios. Antes
estabanlascuentasdeusuarios,peroalcrearse/home,
sequedcomouncajndesastre.Noesfundamental.
/sbin.Sueleindicarbinariosdestinadosalsuperusuarioo
root.
/dev (device). Suele recoger los ficheros de los dispositi
vos,sontodonombresdeficherosquenoexisten.Esuna
estructura en memoria, cuando apago, desaparece y se
creaalarrancar.Elnombredelosdispositivosestvaco,
ocupamuypocamemoria,sonconductoshacialosdispo
sitivos. Cuando instalas un driver, ste crea un
/dev/devicequeseescribirenelkernel,porloque
siempresecrearalarrancarlamquina.
/home.Indicadirectoriosdecuentasdeusuario.Noesori
ginal,puestienemsdetresletras.
/var.Aquserecogelainformacinvariable,cualquierco
sa que vaya a ser modificada frecuentemente. Por
ejemplo,siinstalounabasededatos,sumotorestaren
/bin, sus libreras en /lib y sus tablas en
/var/tablas.Alserinformacinvariableeldirectorio
estar cambiando constantemente, por lo que antes
(cuandolavelocidaddeaccesoalossoportesdememoria
eraunacuestineconmicamenteatenerencuenta)po
dramos poner /var en aquellos dispositivos ms
rpidos.
/opt. Destinado a la instalacin de programas de forma
vertical.Todoaquelloquetengaqueserinstaladoamano
semeteraqu.EsespecficodeLinux.
/etc.Guardatodalaconfiguracindelsistemaylasaplica
cionesexternasinstaladas.

Permisos.

Elmodelodepermisosestansencilloquepuedequedarlimita
do;segnqucontextohabrquedarmuchasvueltasparaconseguir
loquesequiera.Normalmente,ensistemascomplejosconmltiples
usuarios, suele complementarse con otros sistemas de control de
acceso.
Tanto para ficheros como para directorios hay tres tipos de
permisos:Lectura(r),Escritura(w)yEjecucin(x);paratrestiposde

usuarios:propietario,delmismogrupodelfichero,yelresto.Aroot
seledejahacer,notieneencuentalospermisos.
Lospermisossealmacenanenunaristrade9bits,ysemues
trantraseldgitoqueindicaeltipodeficheroalhacerls l.

Ejemplo.-rwxr--r--(significaqueesunficheroregularysu
propietario puede leerlo, modificarlo y ejecutarlo, y los miem
brosdelgrupoyelrestoslopuedenleerlo.

Quimplicacionestienenlospermisosrwxenundirectorio?

r.Implicapoderleersutabladedirectorio,esdecir,poder
hacerunls.
w.Implicapodermodificarsutabla,crearoeliminarunar
chivo que est contenido en l. Si eliminas un archivo
desenlazassuentradaenlatabladeldirectorioquelocon
tiene.
x.Implicapoderaccederalainformacindelosinodos,es
decir,poderatravesareldirectorio.Porejemplo,sitengo
/dir1/dir2 y /dir2 no tiene permiso de ejecucin, no
podraccederal.

AsignacindePermisos.

Paralamodificacindelospermisosutilizamoschmod.Suele
utilizarsededosformas:

Modo textual. Ms sencillo y lento. Utilizaremos + para


aadirpermisosyparaquitarlos.Adems,segnque
ramos modificarlos para el propietario, el grupo y los
dems, utilizaremos u, g y o, respectivamente. Por
ejemplo, para aadir permisos de escritura al grupo y al
restodeusuariosdeunarchivoescribiremos:

~$ chmod go+w fichero

Modooctal.Menosintuitivoperomsrpido.Modificalos
9bitsalavez.Lasumadelosvaloresder(4),w(2)yx(1)
encadacategoradeusuariocambiarensuconjuntolos
permisosdeunarchivo.Porejemplo,siqueremosqueun
fichero tenga todos los permisos para todos los usuarios
escribiremos:

~$ chmod 777 fichero

MscaradePermisos.

Lamscaradepermisosespecificaqupermisostieneunfiche
ro o directorio cuando es creado. Los permisos base de los ficheros
sernde666enmodooctalyrw-rw-rw-enmodotextual,yde777
para los directorios. Utilizando el comando umask siempre resta
moselvalorquepongamosalvalordelospermisosbase:

28

ImplantacindeSistemasOperativos

/etc/passwd:guardatodalainformacindelosusuarios
menos las contraseas. Es decir, guarda el nombre de
usuario,elUIDyGID,losdatosyeltipodeshell,separados
pordospuntos(:).Estainformacinnosinteresaquesea
consultadaporcualquierusuario,porloquesuspermisos
sern644.Sipongofinger usuarionosdirtodala
informacinsobrel.
Este archivo guarda una lnea por cada usuario,
enlaquesealmacenarlasiguienteinformacin:

usuario:x:1000:1002:datos:/home/usuario:/bin/bash

dondeusuarioesellogindelusuario;xhacerefe
rencia a la pertenencia o no de contrasea (sin x, no
tienecontrasea).Parabloquearunusuario,coneliminar
esax,elusuarionopodrentraralsistema.Losnmeros
de ejemplo 1000 y 1002 hacen referencia al UID y
GIDdelusuario.ElUIDesunnmeronicoqueidentifica
acadausuario.ElUIDpararootes0(cero).ElUIDseguar
daenelinodoyenelbloquedecontrol,elsistemanunca
utilizarelnombredeunusuario,sinosuUID.Sidosper
sonas tienen el mismo UID se consideran iguales; es una
formachapuceradecompartirinformacin.Siseasignael
UID0aunusuario,elsistemacreerqueesroot.
El GID es un nmero nico que identifica a tu
grupoprimario.ElGRUPOPRIMARIOeselnicogrupode
usuario que se guarda dentro de /etc/passwd; aun
que el usuario pertenezca a muchos grupos, aqu slo se
mostrar el primario. Cada grupo tiene su identificador;
queungruposeaprimarionosignificaqueseamsimpor
tante para ese usuario. Un usuario tendr que tener
siemprealmenosunGID.
/etc/group.Aquseencuentrantodoslosgruposexisten
tesenelsistema,yportantotambinestarnelrestode
gruposalosqueperteneceunusuario(ademsdelprima
rio) y que no aparecen en /etc/passwd; es decir,
parasabertodoslosgruposalosqueperteneceunusua
riohabrqueverdosficheros:

~$ cat /etc/group

~$ cat /etc/passwd

/etc/shadow: guarda las contraseas cifradas de cada


usuario.SecifranapartirdeunafuncinHASH.Estetipo
de funciones son irreversibles, es decir, si la aplico sobre
unnombremedevolverunacadenadecaracteresapar
tirdelaqueserimposiblevolveraobtenerelnombre.Es
requisitodeunabuenafuncindeestetipoquetengaun
bajo ndice de colisin, es decir, que sea poco probable
que dos variables distintas produzcan la misma cadena
hash.CuandoteregistrasenlamquinaLinux,lamquina

~$ umask 022 fichero

PropietarioyGrupo.

Todoslosficherosdebentenerunpropietarioyungrupo,yslo
unodeellos.Podemoscambiarelpropietarioutilizando:

~$ chown nombre fichero

Paracambiarelgruposeutilizar:

~$ chgrp nombre fichero

Esdecir,sialhacerunls lennuestrodirectoriohome
tenemosunalneaquedice:

-rw-r--r--1 alumno alumno 179 2010-03-26 05:31 example

Podremoscambiarelgrupoyelpropietarioarootescribiendo
(todoenunamismalnea):

/home/alumno# chgrp root example;chown root example

Ahora,alhacerunls ltendremos:

-rw-r--r--1 root root 179 2010-03-26 05:31 example

USUARIOSYGRUPOS

USUARIOS

Hay dos tipos de usuarios: root y el resto de usuarios. Dentro


delrestodeusuariosestnaquellos,

con acceso de shell: todos aquellos usuarios humanos


(alumnos,profesores,etc.).
ysinaccesodeshell:losquenotienencontraseaasignada
ylanzanlosprocesosdelsistema.

Estadistincinseproduceporquetodoslosprocesosdelam
quina Linux tienen que estar asociados a un usuario; dicha
informacin se almacenar en el bloque de control. Habr procesos
quesernlanzadosporelsistemasintenerusuarioshumanosasocia
dos. Por ejemplo, el sistema ejecuta los demonios, pero como todo
procesotienequeestarasociadoaunusuario,estostambintienen
queteneruno.Paraello,estosprocesoscreanunusuarioquenotiene
accesodeshell.Esteusuarionopuedeserrootyaquesifueradeesta
formatendranlospermisosderootyesoserapeligroso.
La informacin de los usuarios se almacena en tres archivos
ubicadosenlarutaabsoluta/etc:

29

ImplantacindeSistemasOperativos

genera la cadenahash apartirde lo quehas metido y lo


compara con la cadena que tiene almacenada en
/etc/shadow. Si coincide, te deja entrar. Ten en
cuentaquelacadenahashsiempreserdelamismalongi
tud, independientemente de la variable que transforme.
Lasfuncioneshashseutilizanparalosantivirusyparaha
cerseguimientodearchivosconflictivos.

DirectoriosHome.

Son los directorios personales de los usuarios. Normalmente


todos los usuarios se crean bajo /home, aunque pueden crearse
dondesequiera.
Hayunamaneraparadotara/homedecontenidoautomti
camente, por ejemplo, que siempre que lo creemos aparezca un
fichero llamado bienvenido.txt. Dicha estructura se crea en
/etc/skel (deskeleton)ytodos los/home tendrnlamisma
apariencia que nuestro /skel. El comando useradd permite
manejar diferentes /skel, especificando cul de ellos queremos
utilizaralcrearunusuario.

EliminacindeunUsuario.

El sistema desandar todos los pasos efectuados durante la


creacindeusuarios.Esposiblequesequieraguardarla/homedel
usuario,conservandosuscosas.

/# userdel r usuario

Utilizandoelmodificadorreliminamosla/homedelusuario.

GRUPOS

Los grupos permiten compartir informacin entre diferentes


usuarios. Existen grupos ya definidos, y se pueden crear ms en
/etc/groupoconelcomandogroupadd.Lainformacindelos
grupossealmacenaen/etc/group.Cuandohacemos:

~$ cat /etc/group

Nosdevuelveunalistacontodoslosgrupos,suGIDylosusua
riosquepertenecenalmismo.Tenencuentaquealcrearunusuario
conuseradd,siempreaparecerungrupoquesellamedelamisma
formaqueelusuarioyquesersugrupoprimario.
Paracrearunnuevogruposeutiliza:

/# groupadd grupo

Paraeliminarlo:

/# groupdel grupo

Paramodificarelgrupodeunusuario:

/# usermod aG grupo usuario

ConelmodificadoraGaadoesegrupoalusuariosineliminar
los dems. Si utilizo g cambiamos el grupo primario del usuario;y
con G borramos todos los grupos a los que pertenece y slo se
quedaconelquepongamos.

Ensistemasdemilesdeusuariossesueleguardartodoestoen
unabasededatosexternaparapodergestionarlomejor.

CreacindeUsuarios.

Elsistemasiguelossiguientespasosalcrearunusuario:

Creareldirectoriodelusuarioen/home.
CalculaunnuevoUIDyGID.
Inserta dicha informacin en una nueva entrada de
/etc/passwd.
Creaunanuevacontraseacifrada.
Cambialatitularidaddelhomedelusuarioalnuevousuario.

Nosotrosutilizamoslasiguientelneadecomandosparaqueel
sistemarealicelostresprimerospasosanteriores:

/# useradd usuario d /home/usuario m s /bin/bash

Utilizamos-dparaqueubiqueeldirectoriohomedelusuario
en/home/usuario;utilizamos-mparaquecreedichodirecto
rio (si es que no existe); y -s para decirle la shell que utilizar
(poniendosurutaabsoluta).
Ahora tenemos que darle una contrasea al usuario. Para ello
utilizamoselcomandopasswd:

/# passwd usuario

La shell nos devolver una lnea para introducir el password y


noslovolverhacerescribir.Siqueremosquelacontraseacaduque
podremosutilizarlasiguientelneadecomandos:

/# passwd x 30 usuario

Elcomando passwdpuedeserinvocadoporelusuariocuan
doquiera,perosloserparacambiarsucontrasea.Estoesposible
gracias a que este comando tiene el permiso especial s. Cuando
hacemos:

/# chmod +s /bin/ls

Conseguimos que cuando unusuario ejecutels lo haga co


mosifueraroot.Enoctal,lospermisosseran1664.

30

ImplantacindeSistemasOperativos

PROCESOS

SiempresecreanconlafuncindeC,FORKyEXEC.Losproce
sos siempre se crean mediante llamadas al sistema; habr que
meterlas dentro de un cdigo que formar parte de un programa y
queasuvezformarpartedeunproceso.
Sinembargo,tienequehaberunprimerprocesoqueseacrea
domanualmenteynomedianteunallamadaalsistema.Esteprimer
procesosecrealneaalneaporelprogramadorysedenominaINIT;
es por tanto el ancestro de todos los procesos. De esta forma, INIT
siempreserelprimerprocesodelsistema(conunPID1).

DiferenciaentreExecyFork.

Exec.Cuandoarrancamosunprocesoconexeclepasamos
lasrutasqueseencuentranenPATHparaqueencuentre
el cdigo objeto que queremos ejecutar. Entonces exec
llamaalsistemayesperasurespuesta.Porejemplo,cuan
do ejecutamos ls, encuentra su cdigo en /bin/ls y
bashllamaaexecparacrearelproceso.
Fork. Creacin por particin. El proceso se ejecuta y fork
hace la llamada al sistema. Fork crear un proceso igual
queelprocesopadrequeseejecutarentiempocompar
tido.Esunaformadeclonarunproceso,queejecutarel
procesoclonadoapartirdelallamadafork(elPIDdecada
unodelosprocesosserdiferente).

Ten en cuenta que el propietario de un proceso hijo ser el


mismoqueeldelpadre;silanzamosunrmseremoslospropietarios
yportantodebashydeexec.Esdecir,cuandoselanzaunprogra
maenunashell,elprocesoserhijodeesashell.
Linux tiene ms estados que parado y bloqueado y en ejecu
cin.Entreellospodremosencontrar:

Proceso Zombie. Es un proceso acabado cuya informacin


todavaapareceenlatabladeprocesos.Estosucedepor
que quien libera la tabla de procesos siempre es el
procesopadre,ysielpadresemuereantesqueelhijo,en
toncessequedarenlatabladeprocesos.
ProcesoHurfano.Enunprocesocuyopadrehafinalizadoy
esadoptadoporInit,quelolibera.

MonitorizarProcesos.

Paraverlosprocesosqueseestnejecutandoenesaconsolase
suele utilizar el comando ps. Esta orden tiene varios modificadores
a, u, x, que se pueden utilizar en combinacin (en cualquier
orden) y que adems no irn precedidos por el signo -. Para ver
todoslosprocesosdelsistema:

~$ ps aux

Existenalgunasalternativasaps,comotop,queescomando
que permanece bloqueado en la pantalla y que nos va a mostrar la
informacin en tiempo real, viendo cmo funcionan los procesos y
cmo varan. Adems, pstree es un script que sacar por pantalla
losprocesosunidosmedianteunalneadeparentesco,mostrandolos
linajesdelosprocesosquehayejecutndoseenelsistema.

FinalizarProcesos.

Utilizamoselcomandokillparaenviarunasealalproceso;
elmodificadorqueutilizaremosparaacabarconelprocesoser9.
Aunque el propietario deun procesopuede acabar con los procesos
quehayalanzado,slorootpuedeacabarconcualquierproceso:

/# kill 9 [PID del proceso]

PrimerySegundoPlano.

Por defectolosprocesosseejecutanenprimerplano.Cuando
execlanzaunproceso,bashhacequeeseprocesohijotomeelcontrol
de la entrada ysalida estndar. Por ejemplo, si ejecutamossort,
hasta que no acabe, bash no volver a mostrar el prompt. Si por el
contrario, queremos seguir comunicndonos con bash mientras un
proceso se est ejecutando, tenemos que hacer que ese proceso
activo pase a ejecutarse en segundo plano. Para ello, lo nico que
tenemosquehaceresescribiralfinaldelcomandoqueejecutemosel
carcter&.Porejemplo:

/# comando [modificadores] [argumentos] &

Cuando ese proceso haya terminado te enviar una seal que


no ser visible hasta que ejecutes el intro en el prompt. Cuando
enviemosunprocesoasegundoplano,perderemostodalainteracti
vidadquetenamosconl.
Sin embargo, se puede hacer que un proceso vuelva a primer
plano.Cuandolanzasunprocesoasegundoplano,bashleasignaun
identificador que podremos visualizar con el comando jobs. Con
dicho identificador, y con el comando fg podremos hacer que cual
quierprocesovuelvaalprimerplano:

/# fg [identificador del proceso]

Una vez hecho esto, ese proceso ocupar toda la shell, por lo
que si queremos volver a tener acceso al prompt tendremos que
utilizar la combinacin de teclas ctrl+z, para detener el proceso.
Entonces podremos volver a interactuar con la shell y podremos
enviaralprocesoasegundoplanodelasiguientemanera:

/# bg [identificador del proceso]

31

ImplantacindeSistemasOperativos

16. Enfuncindesuruta,qupuedesdecirdeunficheroque
se encuentre en los siguientes directorios? /bin; /usr/bin;
/opt;/sbin;/dev;/home/Sergio/bin;/var.
17. DescribebrevementeelmodelodepermisosdeLinux.
18. Deseamosqueal crear nuevosusuariosles aparezcaun fi
chero llamado bienvenido.txt en la raz de su directorio
/home.Cmoconseguirlo?
19. Tiene sentido tener un UID repetido en elsistema? Qu
consecuenciastendra?ysieselUID0?
20. Describe los pasos que hemos dedar para crear un nuevo
usuarioenelsistema.
21. Describebrevementeelmodelo de procesos de Linuxysu
procesodecreacin.
22. Parecequeunprocesonoresponde,cmoactas?
23. QueselprocesoInit?
24. Cmopodemosejecutarunprocesoensegundoplano?
25. Quesunprocesozombie?Yunohurfano?
26. Quieroqueelsistemamesaludecadavezquemeconecto
alsistemaconunmensajedeltipoBienvenido!Cmolo
consigues?

PREGUNTAS.

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

Crea un archivocon losnombres de losficherosydirecto


riosdelaraz.
Creaunarchivodeloscontenidosanteriores,peroqueslo
contengalas5primeraslneas.
Creaunficheroquecontenga30palabrasenlnea.
Muestraenpantallalaprimeramitaddelarchivo.
Creaotroficherocuyaprimeramitadsealamitaddelante
rioryviceversa.
Qu es una redireccin y una tubera? Diferencia entra
ambas.
Quesunavariabledeestado?
Creaunficheroconelcontenidoficheroenlazado,quese
llamefenlazado.
Creaunenlacefsicoconfenlazadoyllmaloefisico.
Creaunenlacesimblicohaciafenlazadoyllmaloesim
blico.
Muestra en pantalla la informacin de los ficheros de los
ejercicios8,9,10.
Quesuninodo?
QuinformacinalmacenanlosdirectoriosenLinux?
Diferenciasentreenlacessimblicosyfsicos.
Cuandohacesunlsl,qusignificadotieneelprimerca
rcterdecadalneayquvalorespuedetomar?

32

TemaSeis

LinuxII
AdministracinAvanzada

/# head archive | grep patrn

Mostrar,delas10primeraslneas(head)delarchivo,aquellas
quetenganesepatrn.Siquieroqueesepatrnseencuentrealfinal
delalnea,escribo:

/# grep patron$ archivo

Para encontrar los procesos ejecutados por el usuario


alumno,tendraqueteclearlasiguientelnea:

/# ps aux | grep alumno

Donde leer la informacin de la tubera. Ten en cuenta que


podraredireccionarlaentradadegrep,aunquesilohicieraseralo
mismoquesinoloescribiera,esdecir,lasdoslneassiguientesharn
lomismo:

/# grep alumno < archivo


/# grep alumno archivo

ArgumentosdeGrep.

Losargumentossepuedenconcatenar.

-i(insensitive).Buscamaysculasyminsculas.

-w(word).Slobuscapalabrassueltas,esdecir,sipongo:

/# grep w para archivo

Buscarlapalabraparadentrodeesearchivo,ynuncala
encontrarenpalabrasenlasqueesepatrnestconte
nido,comoparaguas.

-v(reVerse).Invierteelsentidodelacoincidencia,esde
cir,muestratodoloquenotengaesepatrn.

-l. Muestra el nombre del fichero donde encontr la


coincidencia,esdecir,buscarelpatrndetodoslosfiche
ros de ese directorio y te imprime el nombre de los
archivosquelocontengan,nolacoincidencia.

BSQUEDADELAINFORMACIN

INTRODUCCIN

Dentrodeungransistemaesnecesariocontarconsistemasde
bsqueda de informacin. Para ello utilizaremos comandospotentes
quenospermitirnbuscartantoficheros,comosucontenidoocomo
lainformacinqueestrecopiladaensusmetadatos.
Hoydalossistemasdeficherosfuncionandemanerapotente,
de forma quenicamentecon introducirciertaspistas, tedevuelven
unalistarelacionada.Algunosejemplospodransertracker,spotlight,
etc.
Vamosautilizarlasherramientasmsbsicasycompatiblescon
todoslosUnix:grepyfind.

GREP

Buscainformacindentrodeunficheroopathline.Nosdevuel
ve las lneas completas que coinciden con ese patrn de bsqueda.
Grep necesita una expresin regular, como las que se vieron ante
riormente(*,?),ylassiguientes:

^.Elacentocircunflejoserefierealprincipiodelnea.

$.Referidoalfindelnea.

Cuando lo utilicemos, buscar lneas que contengan la expre


sinquesebuscaymostrarsusalida.Entrelasmuchasentradas,se
puedeutilizarunarchivo.

/# grep patrn < archivo

Deestaformabuscaresepatrndentrodeesearchivo.Sipor
ejemploescribo:

/# grep ^patrn < archivo

Asbuscartodaslaslneasqueempiecenporesepatrnden
trodeesearchivo.Siporelcontrarioescribo:

33

ImplantacindeSistemasOperativos

/# find /ruta type l

Nos devolver todos los enlaces simblicos situados en


/ruta.

-user. Seguido de un UID (se encuentran en


/etc/passwrd, lo encontraremos utilizando un
grep nombre /etc/passwd). Nos encuentra ar
chivosdeeseusuario.

-perm. Encuentra archivos con esos permisos. Podemos


utilizar los smbolos y / para incluir todas las condi
ciones o permitir opcionalidad, respectivamente. Por
ejemplo:

~$ find . perm /+w

-n (number). Nos devuelveel nmero de lnea donde se


producelacoincidencia,ademsdelalnea.
Adems, con este modificador podremos obtener el n
merodelneasdetodoelficheroconelcomandocat,es
decir:

/# cat n /ruta/fichero

Atencin,muchocuidadoconlostabuladores;greppuedein
terpretar el tabulador de un archivo de texto como 8 espacios.
Cuandoescribamosgrep,agruparemoselargumentoconcomillas.

FIND

Busca informacin en los metadatos, por lo que es ideal para


complementarcongrep.Necesitaunlugardondeempezarabuscar
y unos parmetros de bsqueda. Soporta muchas reglas y puede
asociar comandos en la bsqueda. Permite ejecutar comandos por
cadaarchivocoincidenteconlasreglas.Porejemplo,puedebuscarun
tipo de archivo y hacer que esos tipos de archivo sean borrados. Es
posibleutilizarexpresionesregularesoreglasnoconcretas.
Finddevuelvelasrutasdelosficherosquehaencontrado.Silo
hasutilizadoconrutasrelativas,telasdevolverenrutasrelativas;del
mismomodotedevolverrutasabsolutassilasutilizasteconfind.

Reglas.

Cada regla se utiliza como un modificador: -regla valor.


Unainvocacinpuedeutilizarvariasreglas.

/# find /ruta regla1 valor1 regla2 valor2

Aunquehaymuchasreglas,lasquevamosaversonlassiguien
tes,aunquepuedesconsultarlastodasenelmanual(man find).

-name.Buscaarchivoscuyonombrecoincidaconelvalor.
Por ejemplo, si queremos que encuentre todos aquellos
archivosquecomiencenporAmayscula:

/# find /ruta name A*

-ctime.Archivoscreadoshacetantosdascomoindique
elvalor.Porejemplo:

/# find /ruta ctime 3

Enestecasomostraraquellosficheroscreadoshaceme
nosdetresdasyqueseencuentren/ruta.

-type.Encuentralosarchivosdeesetipo,b(bloques),c
(carcter),d(directorio),f(file,regular),l(enlacesimbli
co).Porejemplo:

Nosencontrareneldirectoriodondenosencontremos
loslosarchivosquetengapermisodemodificacinen
cualquieradesuspermisos.

~$ find . perm /ug+w

Nosencontrartodoslosficherosquepuedansermodifi
cadosoporelpropietariooporlosmiembrosdelgrupoo
porlosdos.Perosiescribo:

~$ find . perm -ug+w

Sloencontrarlosficherosquetenganpermisosdemodi
ficacintantoelpropietariocomolosmiembrosdelgrupo.

-exec. Seguidode un comando,un espacio, {}, un es


pacio y \; podremos ejecutar comandos y aplicar su
resultadoafind.Porejemplo,paraborrartodoslosarchi
vosconpermisos640deldirectoriotmp,escribiremos:

~$ find /tmp perm 640 type f exec rm {} \;

Dentrode{},bashsustituirloquehaencontradofind.

Unusoprcticode/dev/nullconfind,seraredirigirlela
salidadeerroralhacerunfindcomousuario,yaquenotendremos
permisosparabuscarenmuchosdirectorios.Porejemplo,siescribo:

~$ find / 2> /home/alumno/error

Ademsdetirarseunbuenratomostrandoporpantallatodoel
espaciodenombres(parafinalizarelprocesopulsarctrl+c),alter
minartendremosunficheroen/home/alumnollamadoerrory
quecontendrlneasdeerror,deltipo:

find: /lost+found: Permiso denegado

34

ImplantacindeSistemasOperativos

/# sed 10d < archive

Loqueharsermostrartetodaslaslneasdeentradamenosla
nmero10.Tenencuentaquenoborradichalnea,sinoquesimple
mente no la muestra. Para borrar esa lnea lo que podremos hacer
serredireccionarlasalidaaunnuevoarchivo,dondedichalneano
aparecer(noquedargrabada),esdecir:

/# sed 10d < archive > modif.archive

Atencin,sileemosdeunficheroyredireccionamoslasalidaa
ese mismo fichero, perderemos toda la informacin contenida en el
mismo.Sermejornoescribiresto:

/# sed 10d < archive > archive

ModificarLneas.

Es el uso ms extendido de sed. Se escribe utilizando la si


guientesintaxis:

/# sed s/cadena1/cadena2/ < archive

Esto modificar la primera aparicin de cadena1 por cade


na2encadalnea.Paracambiartodaslasaparicionesdecadena1
porcadena2deunalnea,tendremosqueescribirunagalfinal:

/# sed s@cadena1@cadena2@g < archive

AWK

Este comando se considera un lenguaje de programacin. Es


una herramienta muy potente y compleja utilizada para procesar
informacindeficherosodeflujos.Awkinterpretasuentrada(seade
una tubera o de un archivo) y fracciona cada lnea de la misma en
campos (nos referiremos a cada una de las columnas interpretadas
por awk como $X, donde X>0 ser igual al nmero de columna, y
paraX=0,sacartodalalnea).
Lasintaxiseslasiguiente:

/# awk expresin accin < archive

Awkcomprobarparacadalneasisecumplelaexpresin,y
despus ejecutar la accin (dicha expresin y accin podrn
sermuycomplejas).Lasaccionessesepararnporcomas(,)queal
mostrarlas en pantalla las sustituir por el delimitador estndar, es
decir,unespacio).Tenencuentaqueawkpodrutilizarlossiguientes
caracteresensusexpresiones:

>
mayorque
<
menorque
>=
mayoroigualque
<=
menoroigualque

Siesainformacinnoqueremosquequedeincluidaennuestro
ficherofileclean,podremoshacerquelavuelquea/dev/null,
escribiendo:

~$ find / 2> /dev/null 1> home/alumno/fileclean

TRATAMIENTODELAINFORMACIN

Aunquepodemosmodificararchivosconuneditor,latarease
convierteenalgotediosocuandosetratademltiplesarchivos.Para
ello, podemos buscar informacin con grep y find y aprovechar
pararealizarmodificacionesautomticasaarchivosdeformamasiva.
EnUnixseutilizandeformatradicionaldosprocesos,muypo
tentesycomplejos:

sed.

awk.

SED

Esuneditordeflujo,ynoesinteractivo(comonano).LaED
vienedeeditor.Essimilaragrepyaquerecibelneasporsuentra
da, tambin recibe un patrn y expulsa la entrada en funcin de
aquel, pero mientras que sed modifica los patrones, grep slo los
busca.Esdecir,cuandosedleedesuentrada(unatubera,unfiche
ro,),aplicarsusmodificadoresycolocarelresultadomodificado
ensusalida.
Podremosomitirlaentradaoespecificarla:

/# sed [commandos] < archive


/# sed [commandos]
Estecomandonospermitirimprimir,borrarymodificarlneas.

ImprimirLneas.

Paraimprimirlneasutilizamoslaletrap (print).Siescribo:

/# sed 10p < archive

Imprimir lalnea 10 dearchivey luego, todoelfichero. Sin


embargo,siescribo:

/# sed n 10p < archive

Imprimirsololalnea10dearchive.

BorrarLneas.

Paraborrarlneasutilizamoslaletrad(delete).Porejemplo,al
escribir:

35

ImplantacindeSistemasOperativos

==
!=
&&
||

/# cat ciudades.txt | awk {print Ciudad:, $1}


Ciudad: Madrid
Ciudad: Barcelona
Ciudad: Londres
Ciudad: Berln
Ciudad: Sevilla

igualque
distintoque
y
o

Ejemplo. Si escribimos un fichero (llamado ciudades.txt con


tres columnas (que hacen referencia a ciudades, nacionali
dades,temperaturas):

Madrid
ES
31
Barcelona ES
25
Londres
UK
19
Berln
DE
12
Sevilla
ES
36

Awkpodrreferirsealacolumnadondeestnescritaslasciu
dades con $1, a la columna donde estn escritas las
nacionalidadescon$2,yalacolumnadelastemperaturascon
$3.Porlotantosiqueremosquenossaqueporpantallatodas
lasciudadesconunatemperaturasuperiora30grados,escribi
remos:

/# awk $3>30 {print $1} < ciudades.txt


Madrid

Indicndolequedelacolumnatres($3)seleccionelosnmeros
mayores de 30 y que nos muestre la lnea de la columna uno
($1)quecoincidaconesevalor.
Si queremos que nos imprima las ciudades cuya nacionali
dadseaespaola:

/# awk $2==ES {print $1} < ciudades.txt


Madrid
Barcelona
Sevilla

Indicndolequedelacolumnadosseleccioneaquellosvalores
igualesaES,yquenosmuestrelalneadelacolumnaunoque
coincidanconesevalor.
Siqueremosquenosimprimalasciudadesdenacionalidad
distintaalaespaolayconunatemperaturasuperioralos15
grados:

/# awk $2!=ES && $3>15 {print $1} < ciudades.txt


Londres

Indicndolequedelacolumnadosylatresseleccionen aque
llosvaloresdistintosaESyconunatemperaturade15grados,y
quenosmuestrelalneadelacolumnaunoquecoincidancon
esosdosvalores.
Tambin podremos hacer que lea los datos de entrada de
unatubera,porejemplo:

O podremos definir una variable LIN=lin+1, y pedir que nos


muestreenpantallalavariableLINytodoloquehayamosintroduci
do:

/# awk {LIN=lin+1; print LIN $0}

ADMINISTRACINDEPROCESOS

GESTINAVANZADA

Elobjetivoseraprenderaprogramarprocesosparaquearran
quen automticamente. Para ello vamos a conocer los niveles de
ejecucinyelarranqueprogramado(cadaciertotiempo)deprocesos.
Estossernpuntosfundamentalesparacadaadministrador.
Una vez se logre aprender a programar las tareas, habr que
aprenderaescribirlas(haciendoscripts).

NivelesdeEjecucin.

LosnivelesdeejecucinsonpropiosdemquinasUnixSYSTEM
V(elhijomspurodeUnixensuladoopuestoestaraBSD).
ComoLinuxdesciendedeMinix,ystedeUnix,seconsideraun
SYSTEMV.Noobstante,estonofuncionaenlasdistribucionesUbuntu
y Devian actuales, aunque existir algo parecido. Ubuntu agiliz y
modifictodoesto,mejorandoelarranqueyprocesadodelamqui
na.
Losnivelesdeejecucin(normalmente7,del0al6)sonmodos
de operacin (llamados run levels) que describen mecanismos de
automatizacin de parada y arranque de procesos cuando se inician
los run levels (ten en cuentaquepara pasar al nivel 4no habr que
pasarlosanteriores).
Esdecir,cuandosepasaaunnuevomodohabrunaseriede
procesos que arrancarn y otros que morirn con ellos. El nivel por
defectoseencuentraen/etc/inittab.Porejemplo,cuandola
mquina arranca pasa a un run levelconcreto, arrancando todos los
procesosquehayacontenidosendichonivel(servidorweb,demonio
debackup,etc.).Porseguirponiendoejemplos,sinuestrosistemade
copiasderespaldoconsumemuchosrecursosytienequeejecutarse
en solitario, podramos describir un nivel que arrancara todos los
procesosvinculadosconelbackupymataraatodoslosdems.
Cadanivelsedescribeenlosdirectorios/etc/rcX.d,don
delaXnosindicaelniveldelrunlevel.

X=0
Niveldeapagadodelamquina.
X=1
Nivelmonousuario(root).Pruebadeerrores.

36

ImplantacindeSistemasOperativos

Siqueremosprogramarlosprocesosparaqueseanlanzadosen
cualquiermomento,tenemosdosherramientasparahacerlo:

cron Programaprocesosparalanzarseperidicamente.
at
Programa procesos para lanzarse en un momento
concreto.
Cron.

Permiteprogramarprocesosparaserlanzadosperidicamente
(cadasemana,cadames,cadahora,etc.).Eslanzadoporundemonio
llamado crond (es decir, para que funcione, el demonio tiene que
estarejecutndose)yleelainformacindeunficheropersonal(aun
queseapersonalnosealmacenaennuestrahome,sinoen/var)
llamadocrontab.
Para acceder a nuestro crontab, accederemos a nuestro script
crontab.Siutilizamoscrontab lnosmostrarlastareasprogra
madas (como si hiciramos un cat); si usamos crontab e
podremoseditarlo(comosihiciramosunnano).
Cada lnea tiene cinco dgitos separados por espacios; cada l
nea corresponde a una programacin distinta y tiene un formato
diferente:

min hor da mes da-sem


comando

Losvaloresparacadacamposon:

minutos:
059

horas:
023

das:
131

meses:
112

dasdelasemana: 06(0=domingo)

Adems,podremosponerlossiguientescaracteresenloscampos:

*
cualquiervalor.

-
indicaunrangodevalores.

,
parasepararunaseriedevalores.

Ten en cuenta que aunque haya varios usuarios conectados a
variasshells,losprocesosdeunashellnoafectanalaotra.
Lasalidapordefectodecroneshaciaelinboxdelcorreodel
usuario,porloquehabrqueredireccionarla.

Ejemplo.Paracadalneadeabajo,lossiguientesperiodos:
Cada15minutosdecadahora,todosloslunesdecadames
Alas13horas,elquincedecadames
Alas13horas,elquincequeseadeLVdecadames
Primerlunesdecadamesalas0:00
Cada8horasdelunesaviernes
Cada12horas,loslunesymircolesenlosmesesestivales

/# crontab e

X=[2-5]Nivelesdeusodelsistema.Sonnivelesestndar
parasermodificadoscomosedesee.
X=6
Niveldereiniciodelamquina.

Estos directorios contienen scripts (tienen permisos de ejecu


cin) rc, y todos los nombres contenidos siguen una estructura
particular,empezandopor K (kill, parada delservicio) oS (start,
iniciodelservicio);luegovaunnmero,queimpondrlajerarquaen
laejecucindeesescript,esdecir,un569seejecutarantesqueun
575;yalfinalirunnombredescriptivodelprocesoquearranca,por
ejemplo:

/etc/rc1.d# ls
K15pulseaudio
K20rsync

Comoconsecuencia,elrunlevel0tendrcasitodosscriptsK.

ArranqueProgramadodeProcesos.

Paraarrancarprocesosaliniciooalapagadodelsistemautilizare
moslosscriptrc.Estosscriptssegeneranapartirdeuncomandollamado
update-rc.d, que crea las estructuras de los scripts contenidos en
etc/rcX.d a partir de los scripts contenidos en /etc/init.d.
DentrodeestedirectorioseencuentranlosscriptsinSoKysinnmero,y
con esos scripts podremos controlar el arranque y parada de todos los
demonios. Por ejemplo, /etc/init.d/apache podr invocar el
scriptgeneraldecontroldeapacheparadetenerlo,apagarlo,reiniciarloo
iniciarlo.
Es decir, init.d es un directorio que guarda los scripts de
controlyfuncionacomounpaneldecontroldedemoniosyservicios
en general. A travs de los scripts contenidos en dicho directorio,
podremos controlar por completo todos los procesos asociados a
dichodemonio.Estedirectorioestestrechamentevinculadoalosrun
levels,porloquenoseraconvenienteubicarlosscriptsdeinit.d
enotrolugar.
Unavezconocidoesto,podremosejecutarupdate-rc.dpa
ra que cree de forma automtica los scripts K o S a partir de los
scriptscontenidoseninit.d.Porejemplo:

/# update-rc.d cron start 2 2 3 4 5 . stop 2 0 1 6 .

Estecomandoarrancareldemoniodecronenlosniveles2,
3,4y5lopararenlosniveles0,1y6.Porcitardos,crearenelrun
level 2 (directorio etc/rc2.d) el script S2cron y en run level 0
(directorio etc/rc0.d) elscript K2cron.Fjateenlospuntosque
vantraslosnmerosdestartylosnmerosdestop.
Paraquelohagasolo,escribiremos:

/# update-rc.d cron defaults

Siqueremosprogramarloaliniciodeunasesindeunusuario
bastarconinvocarloenel.bash_profile,escribiendoinit 2.

37

ImplantacindeSistemasOperativos

MIN
15
00
00
00
00
00

At.

HOR
*
13
13
0
0,8,16
0,12

DA
*
15
15
1-7
*
*

MES
*
*
*
*
*
6-9

DA-SEM
1
*
1-5
1
1-5
1,3

LOGS.

LogsdelSistema.

Son archivos de eventos. El sistema de logs lo mantienen dos


demonios:

syslogd:quegestionaloslogsdelsistema.

klogd:quegestionaloslogsdelkernel.

Los logs suelen guardarse en archivos bajo /var/log. Po


dremos consultarlos usando las herramientas clsicas: cat, grep,
sed,awk,etc.

/var/log/messagesSoneventosdeprioridadmedia.

/var/log/kern.log Eventos de mxima prioridad.


Generadosporelkernel.

/var/log/auth.logInformansobrelosaccesosalsis
tema,escaladodeprivilegiosyaccesosfallidos.

/var/log/dmesgEventosproducidosduranteelarran
que(comandodmesg).

Estosarchivospuedencrecerhastatenergrantamao.

Logrotate.

Elscriptlogrotateeselencargadodesuarchivado.Sucon
figuracinesten/etc/logrotate.confyestconfiguradoen
el crontab de root. Logrotate crea peridicamente archivos com
primidosconlasextensiones*.1.gz,*.2.gz,etc.Adems,trunca
a cero el archivo log correspondiente. Cuanto mayor sea el nmero,
msantiguoserelarchivo.

Logger.

Conestecomandopodremosgenerarnuestrospropioseventos
yregistrarlosenloslogs.Suusoesmuysencillo:

/# logger -f /var/log/message mi evento

COMANDOS.

Algunoscomandosbsicosson:

last (permiteconsultarlosltimosaccesos)

Permiteprogramarprocesosparaserlanzadosdemanerapun
tual. El lanzador es un demonio llamado atd (es decir, para que
funcione,eldemoniotienequeestarejecutndose)yleelosprocesos
delaentradaestndar.
Lasintaxisescomosigue:

/# at hora:min da.mes.ao

Una vez escritose ledaalintro y se introducenpor teclado


loscomandos(suentradaestndar)hastaqueatnorecibaelcarc
ter de fin de fichero (ctrl+d). Si redirigimos su entrada hacia un
fichero, at lo leer byte a byte, por lo que tambin tendremos que
escribirlosintroquenecesitemos.
Losargumentospuedenserlossiguientes:

-l
Listalastareas.
-d
Borraunatarea.
-f
Leelastareasdesdeunficheroenlugardelaen
tradaestndar.

Sihaydostareasenejecucin(laXylaY),yquieroeliminarlaY,
tendrqueescribir:

/# at l
1 tarea X
2 tarea Y
/# at d 2
atlanzarlashellshqueserlaqueleernuestrosprocesosy
losejecutar.Estosignificaquesiutilizamoscomandosinternosdela
shellbash,nofuncionarn,yaqueatejecutarelscriptmediantesh.
Porejemplo,siquierolanzarelcomando/bin/tareael12de
junioalas18:30de2012,escribir:

/# echo /bin/tarea | at 18:30 12.6.2012

AUDITORAS

AUDITARELSISTEMA

Lasauditoras sonla formade controlarelsistema ms bsica


para un administrador. Con ellas se podr saber quin entra, quin
sale,quinusaqu,etc.
Parallevarlasacaboseutilizandiferentesmecanismos:

38

Logs.
Comandos.
Scriptpropios.
Herramientasespecializadas.

ImplantacindeSistemasOperativos

who(listadeusuariosconectadosahora)

finger(aportainformacinsobreunusuario)

Siempreesconvenientecontarconherramientaespecializadas
demonitorizacinyauditoras.

variable PATH. Si creamos un directorio dentro de nuestro home,


llamadoscripts,escribiremos:

~$ export PATH="$PATH:~/scripts"

Comentarios.

Todoaquelloquevayadespusdelsmboloalmohadilla(#),se
rignoradoporbashysloservisiblecuandoseediteelcontenido
delscript.Deestaformapodremosintroducirtododetipodecomen
tarios y aclaraciones sobre nuestro script. Podremos introducir
comentariosenunamismalneadecdigo,porejemplo:

echo Hola, $USER!


# as te saludar

Losscriptsdeinit,porejemplo,eneldirectorioinit.d,suelen
estarbiencomentadosyaquetienenqueserentendidosytienenque
podersereditadosporcualquieraqueutiliceLinux.

MododePrueba.

Podemosejecutarlosscriptsparaquelohaganenpruebadefa
llos.Lonormalserescribir:

~$ bash x script_ejemplo

Loquenosirmostrandocadalneadelscriptprecedidadeun
smbolo+,yejecutndolaacontinuacin,esdecir:

+ echo Hola, $USER!


Hola, alumno!

Podremos introducir dentro de nuestro script el comando set


para localizar aquellos comandos de los que tengamos dudas de su
funcionamiento, de forma que nicamente se activar el modo de
falloscuandollegueaesasentencia:

set x
# activa el modo de prueba
echo Hola, $USER!
set +x
# desactvalo
IntroducirDatos.

Para ello existen dos mtodos. Bien utilizando la instruccin


read(nospedirquemetamoselvalordelaVARIABLE):

/# read VARIABLE

PROGRAMACINDELASHELL

SCRIPTS

Unscriptdelashellesunasecuenciadecomandosqueseeje
cutarn al introducir el nombre del script en la lnea de comandos.
Sonficherosderdenes.Comotales,sonficherosdetextoplano;las
rdenes incluidas en ellos las lee un intrprete. En nuestro caso, la
shell de Unix se utilizar como un intrprete de nuestros scripts.
Alternativamente,podrsutilizarscriptspararealizartareasautom
ticasusandoelcomando cron.Otrosusos paralos scripts serpara
losprocedimientosdeapagadoyarrancadodelamquina,dondelas
operacionesde losdemonios ylosserviciosse definenenlosscripts
deinit.
Paracrearunscriptdeshell,abreunnuevoficherovacoconun
editor(vim,emacs,gedit,dtpad,nano,etc.).Loseditoresvimoemacs
pueden ser configurados para reconocer la sintaxis de bash, lo que
puedeserdegranayudasisenosolvidaponercorchetesopuntosy
comas.Pararesaltarloserroresdeescrituraenvim,podremosescribir
(:syntax enable),quesiemprenosaparecersilointroducimosen
nuestroarchivo.vimrc
Unavezabiertoeleditor,ponloscomandosdeLinuxquequie
rasensuinterior,comosilosestuvierasintroduciendoenlalneade
comandos. En un script, la primera lnea comienza con la ruta del
intrprete,comenzandoporloscaracteres#!.Porejemplo:

#! /bin/bash

Elintrpretesecargarenmemoriayselepasarelficherode
rdenes para que las procese. A partir de la cabecera se escriben
todaslasrdenessiguiendolasintaxisdelintrprete.
Daleatuscriptunnombrequeestrelacionadodealgunama
nera con su funcin, y asegrate de que no entra en conflicto con
ninguna de los rdenes que ya existan. Para asegurarse de que no
hayaningunaconfusin,losnombresdelosscriptssuelenterminaren
.sh; aunque podra ser que incluso de esta forma se repitan los
nombres.Paraaclarartodoestopodremosutilizarloscomandos:

/# wich -a script_ejemplo

/# whereis script_ejemplo

Obienutilizandoargumentosenlallamada.Sihagounscriptllamado
pruebaconlasiguienteestructura:

#! /bin/bash
echo $1 $2

/# locate script_ejemplo

Todoscriptdebetenerpermisosdeejecucin,yparaejecutarse
tendrqueescribirsesurutaabsoluta,relativaoincluirsurutaenla

39

ImplantacindeSistemasOperativos

Podr ejecutarlo escribiendo dos argumentos en la llamada que me


mostraracontinuacin.Sipongoms,sernignorados.

Si no aparece [in LISTA], se reemplazar por in $@, y for


ejecutar las instrucciones una vez por cada parmetro introducido.
VARIABLE puede ser cualquiera. LISTA puede ser cualquier lista de
palabras o nmeros. En el principio del bucle, VARIABLE toma el
primervalordelaLISTA,luegotomaelsegundovalor,etc.Elbucle
terminacuandoVARIABLEhatomadotodoslosvaloresdelaLISTAy
noquedanmsentradasenella.
Porejemplo,siqueremoscrearunacopiadeseguridaddenuestros
archivos de texto (.pdf) situados en /home/alumno/trabajos,
podremosutilizarestafuncin.Pruebaestopasoapaso:

~/trabajos$ touch Iso1.pdf Iso2.pdf Hardware.pdf

~/trabajos$ ls *.pdf
Iso1.pdf Iso2.pdf
Hardware.pdf

/# ./prueba hola qu tal


hola qu

$1, $2, $3 guardan el valor de los argumentos introducidos


durante la llamada. $* guarda todos los argumentos. $# guarda el
nmerodeargumentosintroducidos.$?Guardaun10dependien
dodelxitoofracasodelltimocomandoutilizado.

Condicionales.

Podemosutilizarinstruccionesdeseleccindeltipoifthenelse;
siguiendoestaestructura:

If [ condicin ]
then
instrucciones
else
instrucciones
fi

Sisecumplelacondicinseejecutarnlasinstruccionesdentro
dethen,ysinosecumple,seejecutarnlasinstruccionesconteni
das en else. En las condiciones podemos introducir operadores
numricos: lt(lower than), eq(equal), nq(not equal), gt(greater
than);operadoresparacadenas:==(igual),!=(distinto);uoperadores
lgicos:a(and),o(or),!(not).
Podremos utilizar operadores unarios: (f ficheros, d directo
rios, r permiso de lectura, w permiso de escritura, x permiso de
ejecucin). Por ejemplo, si queremos saber si existe el archivo de
mensajeslocalizadoen/var/log,escribiremos:

#!/bin/bash

~/trabajos$ ls *.pdf > lista

~/trabajos$ nano for1


#!/bin/bash
# Este script es un ejemplo para saber
# cmo funciona FOR.
echo
echo Realizando copias de seguridad...
echo
LISTA=`cat lista`
for i in $LISTA
do
cp $i $i.bak
echo $i ---> copiado a $i.bak
done
echo
echo Se han realizado las copias
echo

echo "Este script comprueba la existencia del


archivo de mensajes."
echo "Comprobando..."
if [ -f /var/log/messages ]
then
echo "/var/log/messages existe."
fi
echo
echo "...hecho."

InstruccionesdeIteracin.

Estasinstruccionessondeltipoforeach.Ejecutarnunalistade
comandosporcadavalorenlalista.

for VARIABLE [in LISTA]


do
instrucciones
done

~/trabajos$ ./for1
Realizando copias de seguridad...
Iso1.pdf ---> copiado a Iso1.pdf.bak
Iso2.pdf ---> copiado a Iso2.pdf.bak
Hardware.pdf ---> copiado a Hardware.pdf.bak
Se han realizado las copias
~/trabajos$ ls *.pdf*
Iso1.pdf
Iso2.pdf
Hardware.pdf
Iso1.pdf.bak Iso2.pdf.bak Hardware.pdf.bak

Puedes comprobar lo que hace lnea por lnea el script, escri


biendo(esmuyaclaratorio):

40

ImplantacindeSistemasOperativos

~$ bash x for1

3.
4.
5.

PREGUNTAS.

1.
2.

Diferenciasentregrepyfind.
Creaunarchivoconnombresdealumnosyciclos.
a. Mostrarlosnombresdelosalumnosqueempie
cenporp.
b. MostrartodoslosalumnosdelcicloASIR.
c. Separartresficherosconalumnosdecadaciclo.
d. Hacer nuevos ficheros ordenados alfabticamen
te.
e. MuestratodoslosalumnosquesellamenPepe
delostresciclos(ASIR,DAW,SMR).

6.
7.
8.

BIBLIOGRAFA.

Garrels,M.BashGuideforBeginners.Version1.11.

41

Diferenciasentregrepysed.
Qufuncionesdesedhemosestudiado?Ponejemplos.
Enquconsisteunrunlevelycmopodemosdeterminarlo
queseejecuta,ono,alpasaresenivel.
Describecmofuncionaelpasodeunrunlevelaotro.
Paraqueseusael/etc/init.d.
Diferenciasentrecronyat;definesufuncionamientobsi
co.

TemaSiete

LinuxIII
AdministracinenRed

ASIGNACINDEPUERTADEENLACEYENROUTAMIENTO

Paraello,utilizaremoselcomandoroute,quesirveparamodi
ficarlatabladerutasdenuestramquina.Cualquiermquinanecesita
dosrutaspordefecto:unadeentradayotradesalida.
Ahora slo tenemos la ruta de entrada (la introducida con
ifconfig),yparaverlapodemosescribir:

/# route -n
192.168.5.120
0.0.0.0
255.255.0.0
eth2

Esarutaqueaparecesehacreadoalconfigurarelinterfazcon
ifconfig.Tendremosqueaadirunarutahacianuestrapuertade
enlace (gateway gw) que nos comunique con la red por defecto
0.0.0.0 (Internet). La direccin de la puerta de enlace es conocida y
noslatienenquesuministrar;ennuestrocasoser192.168.5.254:

/# route add default gw 192.168.5.254

Obtendremos ahora la ruta de entrada y salida si volvemos a


escribir:

/# route -n
192.168.5.120 0.0.0.0
255.255.0.0 eth2
0.0.0.0
192.168.5.254 0.0.0.0
eth2

Para comprobar la conectividad de nuestra puerta de enlace


utilizaremos la utilidad ping (Packet INternet Groper). ping com
pruebaestoenviandopaquetesICMPdesolicitudyderespuesta,as,
podremos diagnosticar el estado, velocidad y calidad de la red que
acabamosdeestablecer:

/# ping 192.168.5.254

CONFIGURACINDELARED

Antesdenadaconfiguralatarjetadereddetumquinavirtual
comobridge,segnsedijoenelTemaTres(pgina15):Cadamqui
na virtual tendr un identificador IP independiente; habr que
configurarcadaunadeellascomosifueraunamquinanueva.

ASIGNACINDEDIRECCINIPYMSCARADERED

Tradicionalmenteseutilizaelcomando ifconfig.Cuandolo
introducimosenlaconsola,nosmuestralaconfiguracindelasdife
rentes interfaces de red existentes. Habr dos epgrafes principales,
unoethX(dondeXpuedesercualquiernmero),yelotrolo;ethX
harreferenciaalpuertoEthernetysunmero(X),dondeaparecern
descritaslascaractersticasdenuestratarjetadered;ylo,sereferir
aladireccinloopback,127.0.0.1.Estadireccinderedesigualpara
todas las mquinas (adems, no existe rango de red para ella), y la
utilizanparacomunicarseconsigomismas.
Adems,con ifconfigpodremoseditarlasconfiguraciones
delastarjetasdered,aunquehoydaexistencientosdeaplicaciones
grficassobrecualquierescritorioquenospermitirnconfigurarlosin
recurriralaconsoladecomandos.
Primerotendremosqueasignarladireccinylamscaradered
denuestro equipo anuestra tarjeta. El valor de ethX visto al hacer
ifconfig ser necesario ahora. Por ejemplo, si nuestra red es la
192.168.5.0/16(claseB),ydecidimosescogerlaIP120,escribiremos:

/# ifconfig eth2 192.168.5.120 netmask 255.255.0.0

Ahorayatenemosintroducidosestosvaloresyelpuertoestabier
toyesoperativo.Siqueremosdeshabilitarelpuertointroducimos:

/# ifconfig eth2 down

Y si queremos volver a abrirlo (con la misma configuracin in


troducidaantes):

/# ifconfig eth2 up

64 bytes from 192.168.254: icmp_seq=1 ttl=254 time=1.04ms

Ynosaparecernlneascomoladearriba,donde:

icmp_seq=1hacereferenciaalInternetControlMessage
Protocol (ICMP), un subprotocolo de control y notifica
cin de errores del Internet Protocol (IP), y al nmero de

42

ImplantacindeSistemasOperativos

paquete enviado. Estos mensajes de peticin harn que


pingpuedadeterminarsielhostestdisponible.
TTL(TimeToLive),TiempodeVida.ElTTLesuncampoen
la estructura del paquete del protocolo IP. Nos indica el
nmero denodosque puede atravesarunpaquete antes
deserdescartadoporlaredoserdevueltoasuorigen.Sin
estecampo,lospaquetesquefueranenviadosarutasno
existentes o a direcciones errneas, estaran circulando
porlaredindefinidamente,utilizandoanchodebandasin
ningnmotivo.
time es el tiempo en milisegundos que ha tardado el
routerendevolverelpaquete.

Todossebasanenunprogramaclienteyenundemonioejecu
tadoenlamquinaobjeto.

Telnet.

Esunprotocolodecomunicacinquepermiteabrirunashellen
unamquinaremota.Todalainformacinvasincifrar.Elclienteque
utilizaestelnetyeldemoniosellamatelnetd.Esrecomendable
noutilizaresteprotocolosiendoroot.
Laformadeusarloes(sueleutilizarseelpuertoel23):

~$ telnet direccin [puerto]

Porejemplo:

~$ telnet 192.168.5.130

SSH(SecureSHell).

Es un protocolo de comunicacin seguro y cifrado entre un


clienteyunservidor.Sepuedeutilizarpara:

Abrirunashellenunamquinaremota(similaratelnet).
Transferirficheros.
Realizarconexionescifradasparaotrosyencapsularproto
colos(sshtunneling).

Si no est instalado habr que ejecutar apt-get update y


apt-get install openssh-server.
Requiere de un cliente y un servidor; cliente: ssh, demonio:
sshd. Hay muchas aplicaciones grficas que utilizan conexin ssh
paraWindowsyLinux,comoelPuTTY,porejemplo.
Seutilizaescribiendo(normalmentesueleutilizarseelpuerto22):

~$ ssh [argumentos] direccin

Losargumentosprincipalesson:

-lUsodeunusuariodiferenteenlaconexinremota.
-p Usodeunpuertodiferenteenelservidor

SSHAbrirunaShellenunamquinaremota.

SiguiendoconelejemploutilizadoenConfiguracindelaRed,
imagina que tenemos un ordenador ms conectado a nuestra red,
cuyadireccines192.168.5.130.Imaginatambinqueendichoorde
nador existe un usuario que tiene el mismo nombre que el que
nosotrosestamosutilizando,esdecir,siheingresadocomoalumno
yquieroconectarmeaesaotramquina,tendrquehacerlotambin
como alumno (por tanto, alumno tiene que existir como cuenta

ASIGNACINDESERVIDORESDNS

Domain Name System (DNS) asocia diferente informacin con


nombresde dominios. Se encarga (entreotras cosas) de traducir los
nombres que utilizamos en identificadores binarios que sean com
prensiblesparaloscomputadores,conelpropsitodepoderlocalizar
ydireccionaresosequipos.Porejemplo,cuandoqueremosaccedera
undominioponemossunombre,nosudireccinIP,loquehacenlas
DNSesasociaresenombreaunadireccin.LosservidoresDNScon
testanlaspeticionesdelosclientes(sonlosquepidenlatraduccinde
susnombresabinario),esdecir,traducenlosnombresqueintroducen
abinarioparaquepuedanconectarseconsusmquinas.
Las direcciones DNS se almacenan en el archivo de texto
/etc/resolv.conf. Podremos introducir en el fichero las direc
cionesdenuestrosservidoresDNS(lasquesedanabajocorresponden
alosservidoresdeGoogle),deestaforma:

nameserver
8.8.8.8
nameserver
8.8.4.4

ASIGNACINDEFICHEROSDENOMBRESLOCALES

Enlasredespequeasoprivadaspodemosnodisponerdeser
vidores DNS. Podemos evitar el uso de direcciones IP y utilizar
nombres de mquinas. Slo tendremos que escribir la relacin de
direccionesIPysusnombresen/etc/hosts.

GESTINREMOTADEEQUIPOS

Consiste en abrir unashellenuna mquina remota, utilizando


comobusdeconexinunareddecomunicaciones.
Es til para aquellos equipos destinados como servidores que
nosuelentenermonitorniteclado.
Para realizar la gestin remota de equipos existen diferentes
mecanismos:

telnet
rlogin
ssh

43

ImplantacindeSistemasOperativos

deusuarioenlamquinaremota).Paraabrirunashellenesamqui
natendremosqueescribir:

alumno@mvirtual:~$ ssh 192.168.5.130

Ahoranospedirconfirmacindeconexinyluegonospedir
lacontraseadealumno(siemprequequierasabrirunashell
enotramquinatendrsqueconocerlacontraseadelusuario
conelquenosconectemos).
Unavezestablecidalaconexin,estaremosenelhomede
alumno de la mquina a la que nos hemos conectado. Para
salirdelashell,habrqueescribirexit.

Siporelcontrarioelusuarioalumnonoexisteenlamquina
a la que nos vamos a conectar, sino que existe el usuario Peter,
tendremosqueutilizar el argumento l(yconocer la contrasea de
Peterparaabrirunashellensumquina).Escribiremos:

alumno@mvirtual:~$ ssh l Peter 192.168.5.130

TrasconfirmarlaconexineintroducirlacontraseadePeter,
habremosabiertounashellenesamquinayelpromptserde
estaforma:

Peter@mvirtual:~$_

SSHTransferenciadeFicheros.

Para realizar transferencia de ficheros se utiliza el comando


scp. Se utiliza para transferir ficheros de forma segura, funciona
sobreunaconexinssh.
Paraenviarficherosaunamquinaremota:

~$ scp /ruta/local usuario@mquina:/ruta/destino

OTROSCOMANDOS

ping.

Como se ha dicho antes, ping enva un pequeo paquete de


datososondahaciaeldestinoquehayamosindicado.Seutilizapara
probar si una mquina responde, pudiendo comprobar si dicha m
quina se ha cado o no. ping utiliza el protocolo ICMP. Con ping
podremoscontrolardiferentesparmetros(nmerodesondas,tama
o,ttl,etc.).

mtr.

Realizauntrazadodelarutadeconexin,combinaloscoman
dos ping y traceroute. Dado un destino de la conexin, ofrece
datos sobre cada salto (router) cruzado por los paquetes hasta el
destino. Cada salto es sondeado utilizando ping. Este comando es
muy til para testear instalaciones de red complejas, con varios
routersyportanto,variassubredes.

netstat.

Permitemonitorizarlalistayelestadodelasconexionesdeuna
mquina. Adems, tambin muestra otros aspectos de la configura
cin de red (ip, tabla de rutas, etc.). netstat utiliza los siguientes
argumentos:

tmuestralasconexionesTCP.
-lmuestralasconexionesenmodoescucha(servicios).
-smuestralasestadsticas.

nmap.

Esunapotenteherramientadeanlisisderedesymquinas.Es
complejademanejar,sobretodoenmodoconsola.Existeninterfaces
grficas para su uso, como Zenmap. Es fundamental para cualquier
administrador de servidores y redes. Para su uso se puede visitar:
http://www.insecure.org
Aunquetienemuchosusos,algunosdeellos:

Rastreodemquinasactivasenunaredquecumplancier
tascaractersticas.
Descubrimientodeservicios.
Descubrimientodeltipodesistemaoperativo,versin,etc.
deunamquina(fingerprinting).
Descubrimientodelhardwaredereddeunamquinaom
quinas.

Por ejemplo, si quiero enviar mi trabajo de ISO (Iso2.pdf) a la


otramquinaconectadaamired:
~$ scp /home/alumno/Iso2.pdf alumno@192.168.5.130:/home/alumno

Pararecogerficherosdeunamquinaremota:
~$ scp usuario@mquina:/ruta/destino /ruta/local

Porejemplo,siquierorecogerelresumendeISO(IsoR.pdf)de
laotramquinaconectadaamired:

~$ scp alumno@192.168.5.130:/home/alumno/IsoR.pdf /home/alumno

44

ImplantacindeSistemasOperativos

nc(Netcat).

Netcatvaleparatodo.Suideaesmuybsica:crearunsocketo
conexinTCP/IPencrudoentreunclienteyundestino.Seutilizapara
muchos objetivos: depurar aplicaciones, comprobar el estado de un
servicio,usoremotodescripts,etc.
Porejemplo,sepuedeutilizarpara:

Chatparados:Podemosarrancarunnccomoservidor:

~$ nc l p 2323

Nosconectamosalenotramquina:

~$ nc mquina-servidor 2323

Consolaremota:Creamosunservidorenelpuerto2323.

~$ nc l p 2323 e /bin/bash

Nosconectamosaella:

~$ nc mquina-servidor 2323

FTP

Esunprotocolodetransferenciadeficheros,normalmenteuti
liza el cliente ftp y el demonio ftpd. Existen muchos clientes con
interfazgrfica.Seinstalautilizandoelcomandoapt-getosimilar.

Este servicio tiene un directorio raz, por ejemplo:


/home/ftp.
Cadausuariopuedeposeerundirectorio.
Los usuarios annimos tienen una cuenta especial de slo
lectura.
HTTP

Es un protocolo de transferencia de ficheros HTML. Normal


menteutilizacomocliente:firefox,lyx,chrome,etc.,ycomodemonio,
apache, lighthttpd, etc. Se instala utilizando el comando apt-get o
similar.

Este servicio tiene un directorio raz, por ejemplo:


/var/www.
Bajoestedirectoriosueleexportarselatotalidaddelaweb,
yalbergaarchivosdeextensin.html.

45

TemaOcho

WindowsServer2008
GestinLocal

PREPARACINDELENTORNOFSICO

Paraellonovaleunasalacualquiera.Paraqueelservidorest
en condiciones ptimas y est en funcionamiento 24x7 habr que
tenerencuentaunaseriedecuestionesparapodertomarlasmedidas
adecuadas. Habr que proteger el sistema del calor, del agua y del
fuego, de los ruidos elctricos y de la electricidad esttica, de los
cortesdecorriente,yregularyprotegerelaccesofsico

Proteccin contra el calor: Es un factor fundamental. La


maquinavaaestartrabajando24x7,yesogeneramucho
calor,uncalorqueperjudicaralasmquinas;porello,es
importante que esa temperatura se pueda rebajar. Aun
quelomssencilloescontarconaireacondicionado,hay
quetenerencuentasolucionesestructuralesquepuedan
crearsistemasderefrigeracinyventilacinconstantessin
elementos mecnicos y que puedan solventar problemas
aislados de falta de corriente elctrica. Es recomendable
quelasalaestlomsfraqueseaposible.
Proteccin contra el agua y el fuego: Tiene que haber un
sistema de control de incendios, teniendo en cuenta que
habrquecontarconextintoresdefuegoelctricoqueno
daen los equipos electrnicos. Se puede contar con c
maras de vaco y sobre todo evitar que la sala tenga un
diseoinadecuado(comoevitarquelascaerasybajan
tespasenporelCPD).Tambinhabrquetenerencuenta
lahumedad,puestoqueconelcalor,puedeserunfocode
proliferacin de hongos que podran llegar daar fsica
menteloscomponentesdelosequipos.
Ruidoselctricos:Hayqueevitartodotipodeinterferencias
ynoinstalarlasfaseselctricasmezcladas,preparandola
instalacinparaevitarloscortesdecorrientes(SAI),hasta
quesepuedanutilizarlosequiposdiesel.
Accesofsico:Habrquecontrolarlaentradaylasalidaalasa
la,lahorayeltiempodeestancia.Elaccesoestarcontrolado
e impedido con barreras fsicas. El acceso fsico garantiza el
controltotaldelCPD,porloqueesunlugaralquenosedebe
rapoderentrar.Adems,tuCPDnotendraporquestarni
entuedificio,nientuciudad,nisiquieraentupas.

INTRODUCCIN

QUESUNSERVIDOR?

Unservidoresunamquinaqueejecutaprocesosservidoreso
servicios. Ya que a priori no se necesita ninguna cualidad especial,
cualquiermquinapodrafuncionarcomounservidor.

Caractersticas.

Un nico servidor puede ejecutar varios servicios, siempre te


niendoencuentaquequizdichosserviciosnecesitenrequerimientos
hardwareespeciales.Lonormalesqueunservidorrequiera:

Disponibilidaddeservicios24x7.
Seguridad.
Altorendimiento(tantosoftwarecomohardware).

QUESUNSERVICIO?

Unservicioesunprocesoqueatiendepeticionesdeotrospro
cesosllamadosclientes,procesndolasyenviandounarespuesta.
Losserviciospuedenrequerirgrandesrecursoshardware,yhay
cientosdetiposdistintos:correo,ficheros,web,autenticacin,

WINDOWS2008.ANTECEDENTES

FueanunciadoporMicrosoftenmayode2007.Aunqueelker
nel estaba basado en su predecesor, Windows 2003 Server, sali
habiendosufridocambiossignificativos,siguiendolaramadedesarro
llo iniciada con Windows NT. Est orientado a servidores y pensado
paraoptimizarsusrequerimientos.

INSTALACINYARRANQUE

Todo servidor tiene que cumplir con una serie de requisitos


(preparacin del entorno fsico, montaje hardware de la mquina,
instalacin del sistema software y configuracin inicial, arranque y
configuracindeotrosparmetros).

46

ImplantacindeSistemasOperativos

Contarcontodasestasmedidasesalgocaro,porloquemontar
unCPDnosloimplicacomprarseunamquinaeinstalarunsistema
operativo. Este hecho hace que la alternativa de la virtualizacin
(TemaTres)seaalgodignoatenerencuentaeconmicamente,aun
que externalizar las necesidades del CPD, inevitablemente implicar
externalizarlainformacindetupropiaempresa.

MONTAJEHARDWAREDELAMQUINA

Hay que hacer una eleccin correcta de los componentes, te


niendo en cuenta el presupuesto, relacionando calidad precio, la
optimizacin del rendimiento de los servicios y las compatibilidades
delsistemaoperativoconrespectoalhardware.Todoestotieneque
estar documentado, cuanto ms se documente, mejor. Hay que do
cumentartodo:instalacin,errores,montaje,problemasdemontaje,
cmofuncionalamquina,evolucinderendimiento,etc.Aspodre
mos conocer los rendimientos de la mquina. Recuerda que los
reportes podrn automatizarse, generando scripts para generar in
formes lanzados, por ejemplo, por cron, y as poder monitorizar el
sistema.

INSTALACINDELSISTEMASOFTWARE

La primera eleccin ser la del sistema operativo, cul es el


mejor sistema operativo para gestionar el hardware de la mquina?
Habrqueatenderamuchasvariablesalahoradeelegirlo:factores
econmicos,familiarizacindeuso,compatibilidadesDespushabr
queinstalarunsistemadebasededatosydemsaplicaciones,cuya
eleccintambindependerdemuchosfactores.
EnestetemavamosahablardeWindowsServer2008.Estesis
temasesuministraenvariasediciones:

WebEdition.
StandardEdition.
EnterpriseEdition.
DatacenterEdition.

Tcnicamente, a nivel de Kernel, no existe ninguna diferencia


entre las diferentes ediciones. Elegir una u otra te impondr unas u
otras limitaciones, pero ser el fabricante el que las imponga, ven
diendolicenciasmslimitadasenserviciosporpreciosmsreducidos.
Para instalarlohabr que introducir el CD deladistribucin, o
iniciarlainstalacindesdeunacarpetacompartidadered.Paraarran
car el instaladorhabr que reiniciar el equipo y seguir los siguientes
pasosdelasistente:

Iniciodelinstalador.
Aceptarlostrminosdelalicencia.
Particionaryformateareldisco.
Copiarlosarchivosylibreras.

InstalacinenModoDesatendido.

Permitelainstalacinsincontestarpreguntas,porloquesetra
tadeunmododeinstalacinnointeractivo.Nosserdeutilidadsise
tienequerepetirlainstalacinenmltiplesequipos.Sebasaenintro
duciralinstaladorunficheroconlasrespuestasatodaslaspreguntas
quenosharduranteelprocesodeinstalacin,estructuradosiguien
dounesquemadeetiquetasenXML.Paraello,habrqueincluirdicho
ficheroenelpropioCD.
Elficheropodrgenerarsemanualmentedesdecualquiereditor
detexto,obienusandounprogramallamadoWindowsSystemIma
geManager(lomsrecomendable),queaunquenoformapartedela
instalacin bsica, se encuentra en la base de datos de Microsoft
llamadaTECHNET(dondeseencuentratodalainformacinparaque
cualquieradministradorresuelvasusdudas)ysulicenciaesgratuita.
HayotrabasededatosparadesarrolladoresllamadaMSDN,dondese
encuentra toda la informacin til para poder programar cosas para
Microsoft.
Si las mquinas donde se quiere instalar el sistema operativo
tienenhardwaremuydistinto,sermsrecomendableinstalarloas.

MtododeClonacin.

Para ello habr que crear una maqueta (una imagen de ese
equipo)enunsoportedealmacenamientoajeno.As,tendremosuna
copia byte a byte de lo que contiene ese equipo. Si volcamos esa
imagenenotrosdiscos,tendremosexactamentelomismo,porloque
siesosequipos tienenunhardware muy distinto, puedeque losdri
vers no funcionen, aunque si son ligeramente parecidos, funcionar.
As,tendremosclonadonosloelsistemaoperativo,sinotambinlas
aplicacionesquetuvierainstaladoelsistemaoperativooriginal.
Parahacerestohayvariasherramientas:NortonGhostoAcro
nis. Ghost arranca el equipo y puede comunicarse con la unidad de
reddondetienelamaqueta,pasandocadabytedestaaldiscoduro.
Tenencuentaqueconlaclonacin,laIP,elnombredelequipo,
etc.,sernelmismo,yesoserunproblema.Lotendrsquecambiar
amano,osino,utilizaralgunaaplicacincomoporejemploAcronis,
quetepermitirasignaresascaractersticasautomticamente.
Porlotanto,silasmquinasdondesequiereinstalarelsistema
operativotienenhardwaremuydistinto,noserrecomendableinsta
larloas.

SECUENCIADEARRANQUE

Ha sido modificada notablemente con respecto a Windows


2003.Elnuevo sistemaes ms verstil,puespermiteelarranque en
sistemassinBIOS,ymsportable,permitiendoarrancarelkernelen
todo tipo de arquitecturas (no slo x86). Windows utiliza el archivo

47

Configuracin del sistema (zona horaria, nombre delservi


dor,etc.).

ImplantacindeSistemasOperativos

bcd.logenlugardeltradicionalboot.ini.Lasecuenciadearranque
constade:

ControldelsistemaporlaBIOS.
Lecturayejecucindelregistrodeiniciomaestro(MBR,Mas
ter Boot Record). El MBR es el primer sector de un disco
duro,quecomienzaelprocesodeiniciodelequipo.ElMBR
contiene la tabla de particiones del disco y una pequea
cantidaddecdigoejecutablellamadocdigodeinicioprin
cipal,desdedondesecargaBootMgr(BootManager).
BootMgr controla el proceso de arranque (detecta las op
ciones de arranque para elegir el kernel) y muestra las
opcionesdelmen(siexisten).
BootMgrllamaaWinLoad.exeparaquealojealkernelele
gidoenmemoria.
Se carga el archivo del kernel (new technology operating
systemkernel,ntoskrnl.exe)byteabyte,esejecutadoy
pasaasegundoplanohastalaprimerallamadaalsistema.

PersonalizacindelArranque.

ParapersonalizarelarranqueeditaremoselBootConfiguration
Data (fichero bcd.log). Este fichero es binario (es decir, no est
codificado con cdigos alfanumricos), por lo quehabr que modifi
carloconunprogramaquepuedamodificarelficherocorrectamente.
Paraelloutilizaremoselprogramabcedit.exe.bcd.logestubica
doen\boot,yestoculto.
Antes,elficheroeraelboot.iniyeraunficheroplanoquese
podaeditardirectamenteyquecontenalascaractersticasdenues
troarranque.
bcd.logenumeraylocalizalasparticionesarrancablesdelsis
tema,ytambinpodrgestionarsedesdelainterfazgrfica.

estructurado en categoras. Cada categora se puede dividir en ms


categorasoenentradas.Lasentradasestnformadasporunnombre,
un tipo y unos datos. Dentro de la categora HKEY_CLASSES_ROOT,
tenemoscientosdecategoras,ysiporejemplo,sinosmetemosenla
categoraFirefoxHTML,tendremosdosentradas:

Nombre
Tipo
Datos
ab(Predeterminado) REG_SZ
FirefoxHTMLDocument
abFriendlyTypeName REG_SZ
FirefoxHTMLDocument

Aunque el administrador pueda acceder al registro de Win


dows,steestdestinadoprincipalmentealasaplicaciones,quesern
lasqueloleanylasqueescribanenl,dejandoallsusparmetrosde
configuracin.

CategorasPrincipales.

HKEY_CLASSES_ROOT. Parmetros sobre ficheros, libreras y sus


relaciones.
HKEY_CURRENT_USER.Parmetrosdelusuarioactivodelasesin.
HKEY_LOCAL_MACHINE.Parmetroslocalesdelamquinayelsiste
ma.
HKEY_USERS_USERS.Parmetrosdelosusuarios.
HKEY_CURRENT_CONFIG. Parmetros del software y el hardware
instalado.

CONFIGURACINDELARED

Configurarlared,juntoconelnombredelservidor,esunpaso
inicialbsico.Suconfiguracindependedelroldelamquinadentro
de la red (Servidor web, router, firewall, Proxy, etc.), y podremos
configurarlo a travs 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. Despus,
seleccionaremosProtocoloIPv4yconfiguraremossuspropiedades.
Para nuestro centro pondremos, por ejemplo: IP 192.168.5.111;
Mscara255.255.255.0ypuertadeenlace192.168.5.254.
Laconfiguracinbsicasiemprenecesitarlosiguiente:

DireccinIPdelservidor.
MscaradeSubred.
Puertadeenlace.
ServidoresDNS.

Aunqueparalosrolesantesmencionados,harfaltaunaconfi
guracinmscompleja.

UTILIDADESDEADMINISTRACIN

Lasherramientasquepermitenanalizarymonitorizarelestado
y funcionamiento de la mquina reciben el nombre de utilidades de
administracin. Todas ellas son fundamentales para cualquier admi

ADMINISTRACIN

INTRODUCCIN

Laadministracinseencargardequeelsistemaestsiempre
funcionando.Paraello,todotendrqueestaroptimizado(configura
cin del software, hardware y las comunicaciones del servidor) para
poderexplotarlamquinaasurendimientoptimo.

REGISTRODEWINDOWS

Esunabasededatosjerarquizadaquecontienelosprincipales
parmetrosdeconfiguracindelsistema.Esunaespeciede/etc,
donde se encuentran las directivas del sistema, de cada usuario, de
seguridad,etc.Setratadeunarchivobinario,conelquepodrsconfi
gurartodoelsistema.
Sepuedemodificarconlautilidadregedit.exe.Alabrirlo,ve
mos que muestra la base de datos jerarquizada en forma de rbol,

48

ImplantacindeSistemasOperativos

nistrador.Entreellasveremoslaconsoladeadministracin,elvisorde
eventos, el monitor de rendimiento y alertas, el programador de
tareas,yelgeneradordeinformes.

ConsoladeAdministracin.

LaMicrosoftManagementConsole(MMC)esunaherramienta
utilizada para crear, guardar y abrir colecciones de herramientas
administrativas,llamadasconsolas.Lasconsolascontienenelementos
como complementos, extensiones de complementos, controles de
monitor,tareas,asistentesydocumentacinrequeridaparaadminis
trar la mayora de los componentes hardware, software y de red de
Windows.SepuedenagregarelementosaunaconsolaMMCexistente
o bien crear nuevas consolas y configurarlas para administrar un
componente especfico del sistema; sern una especie de scripts
visualesquepodremosguardarcomoarchivosindependientes.
ParaabrirMMC,habrquepincharenInicioyacontinuacin,
enEjecutar,escribirmmc.
TodaMMCtienedospaneles,ysuestructuraserlamismapa
ra cada una de las utilidades de administracin que veremos a
continuacin.

PanelIzquierdo.Complementosaadidos.
PanelDerecho.Detallesdelcomplementoseleccionado.

ConsoladeAdministracin.UsuariosyGruposLocales

El sistema tiene una base de datos de usuarios y grupos. Esta


basededatoseslocalalamquina,quenolacompartirconninguna
otra,porloquesicreamosunusuarioenunamquina,sloexistir
en ella (cambiar cuando hablemos en el Tema Nueve de los Domi
nios;seentiendeporDOMINIOunaseriedemquinasWindowsque
tomanaunacomoreferencia(llamadacontroladordedominio)yque
comparteninformacinentreellas).
Cuandocreamos un usuario (Panelde Administracin/Herra
mientasadministrativas/UsuariosyGrupos),nospedirunnombrey
un dominio. Si ponemos un dominio distinto al local, el usuario se
crear en la mquina controladora del dominio que pongamos (as
podremoscrearunservidordeusuarios).
Paragestionarusuariosygruposlocales,utilizaremoslaconsola
predefinida: Administracin de Equipo, aunque podremos agregar
este complemento en una MMC nueva. Tambin tendremos que
asignaraestosusuariosunacontrasea.
Las contraseas estn condicionadas por unas fuertes restric
ciones de seguridad, que pueden limitarse desde el panel de
DirectivadeSeguridadLocal,conloquehabrquesermuycuida
dosoparanoponerelpeligrolaseguridaddelsistema.

VisordeEventos.

Estevisormuestralosregistrosdeeventos(tablasdondeseal
macenansucesosocurridosenelsistema)ysucontenido.Cuentacon

varios registros predeterminados y nos dar la posibilidad de que


podamos definir nuestros propios registros nuevos. Adems, las
aplicacionestambincuentanconregistrosseparadosparasuseven
tos, pudiendo crear su propio evento.log (visualizado a travs del
VisordeEventos).
Dentrodetodoslosregistrosqueaparecenenelpanelizquier
do del visor de sucesos, los registros ms importantes son los tres
primeros:

Aplicacin.Elregistrodeaplicacincontienelossucesosre
gistrados por aplicaciones o programas. Por ejemplo, un
programadebasededatospodraregistrarunerrordear
chivoenelregistrodeaplicacin.Sernlosprogramadores
losquedecidirnqusucesossesupervisarn.
Seguridad.Elregistrodeseguridadguardasucesoscomoin
tentosdeiniciodesesinvlidosynovlidos,ademsde
sucesosrelacionadosconelusoderecursos,comolacrea
cin, apertura o eliminacin de archivos u otros objetos.
Unadministradorpodrespecificarlossucesosquesere
gistrarn en el registro de seguridad. Por ejemplo, si
habilitaste la auditora de inicio de sesin, se registrarn
enelregistrodeseguridadlosintentosdeiniciodesesin
enelsistema.
Sistema. El registro del sistema contiene sucesos registra
dosporcomponentesdelsistemaWindows.Porejemplo,
elerrordelacargadeuncontroladoruotrocomponente
del sistema durante el inicio quedar registrado en el re
gistrodelsistema.Lostiposdesucesosregistradosporlos
componentes del sistema estarn predeterminados por
Windows.

Cadaunodeestosregistrosalmacenaeventosdetipoinforma
cin,advertenciaoerror(aunqueloseventosreferidosalaseguridad
podrn tener ms tipos, como autenticaciones fallidas), con la hora,
fecha, usuario, categora, suceso y equipo donde se produjo la inci
dencia. Podremos buscar informacin dentro de esos registros,
creandovistaspersonalizadasoaplicandoFiltros.

LasVISTASsonfiltrospermanentesquequedanregistrados
y que permanentemente se van a cargar asociadas a un
nombre. Son por tanto, mecanismos de recuperacin de
eventosconciertosparmetroscomunes(unscriptconel
nombre de esa bsqueda). Las vistas se podrn exportar
deunPCaotro.Porejemplo,podremostenervistassobre
elregistrodeseguridadparaalmacenarlainformacinde
loserrores;olavistaparaalmacenarloseventossobreel
apagadodelsistema.
Los FILTROS son bsquedas, como un grep. En el rbol
de la consola habr que seleccionar el registro que se
deseefiltrar.Enelmenver,buscarFILTRO,yallespecifi
carlascaractersticasquesedesean.

49

ImplantacindeSistemasOperativos

Sobrecadaregistropodremos:

Modificarsuconfiguracin.
Buscareventospordiferentescriterios.
Exportarlos a un fichero o base de datos (.evt binario,
.txt, .csv). Si hacemos esto, podremos almacenarlos, algo
fundamentalparafuturasauditoras.

MonitordeRendimientoyAlertas.

Monitorizar el rendimiento es una tarea bsica de cualquier


administrador.Unmalrendimientoesindicativodeunmalfunciona
miento,loqueimplicaofrecerunmalservicioatusclientes.Aunque
Windows2008ofrecediferentesherramientasparaestalabor,noso
tros veremos el Monitor de Rendimiento (Rendimiento, en
HerramientasadministrativasdelPaneldeControl).
Elmonitorderendimientonospermitiragregardiferentespa
rmetrosamonitorizar,cadaunodeellosconuncontadordistinto.El
monitor de rendimiento trabaja con contadores, y stos a su vez,
trabajanconlosrecopiladoresdedatos.Esdecir,losrecopiladoresde
datosestnregistrandolainformacinqueutilizarnloscontadores,
paraqueluegoelmonitorpuedamostrarlos.As,podremosdefinir.

CONTADOR. Aquellos parmetros de diferente ndole que


sonrepresentadosenunagrficayquepodremosmonito
rizar. Con ellos podremos visualizar datos sobre un
componentesoftwareohardware.Loscontadoressonuti
lizadosporelmonitorderendimiento.
ConjuntoRECOPILADORDEDATOS.Unconjuntodeconta
dores con una configuracin especfica (para registrar
eventos). Segn su objetivo, los contadores utilizados se
utilizarndeunaformauotra.

Hay que tener en cuenta que el monitor de rendimiento nos


mostrarlosparmetroscontenidosenelcontadorsobreunagrfica
que podremos exportar, y nos permitir monitorizar parmetros a
tiempo real de cualquier sistema, tanto local como remoto. Slo
tendr una labor de visualizacin, pues para ejecutar acciones con
ellosseutilizarnlosrecopiladoresdedatos.

ProgramadordeTareas.

El programador de tareas permite al servidor lanzar tareas de


formaautomtica.EselequivalenteacrondeLinux.
Nospermitirasociarlastareasalanzar(acciones)aunevento
concreto(disparadores),loquelepermitirobteneraladministrador
unavisoentiemporealdeleventoencuestin.As,podremosdefinir:

Acciones. Lo que se ejecutar cuando la tarea se dispare.


Haytrestiposdeaccionesdentrodeladministradordeta
reas:

Iniciodeunprograma.

GeneradordeInformes

Elgeneradordeinformeshacefotografasdelsistemaenun
momentodadoenbaseaunosparmetrosconfiguradosapriori(por
tantonoesatiemporeal).Estosparmetrostrabajanconlosmismos
elementosqueelmonitorderendimiento,esdecir,conloscontado
resyconlosconjuntosrecopiladoresdedatos.

GESTINDELAINFORMACIN

SISTEMADEFICHEROSNTFS

ElsistemadeficherosNTFStienemejorassignificativasconres
pectoaFAT32,entrelosqueseencuentranlospermisosdearchivosy
carpetas (podremos hacerunamejor gestinde permisos y listas de
controldeacceso),elcifrado(seguridad),lacompatibilidadconvol
menesdegrantamao,laadministracindearchivosdispersos,mejor
recuperacinfrenteafallosyconfiguracionesavanzadasvasoftware.

NTFS.Permisos

ElniveldepermisosNTFScontrolaelaccesofinalaunficheroo
carpetadetodoslosusuarios,ytienecomofinasegurarlaseguridade
integridaddelsistemadeficheros.Lospermisossonreglasasociadasa
archivos o carpetas con usuarios o grupos, y todo fichero contenido
enunacarpeta,heredarlospermisosdesta.
Hay diferentes permisos en Windows, aunque realmente son
operacionesquesevanapermitirodenegar:

Control Total: Podremos leer archivos o carpetas, ejecutar


binarios,ycambiarymoverelementos.
Modificar:Podremoscambiarelementosexistentesperono
crearlosnuevos.
LeeryEjecutar:Podremosleerelementosexistentesyeje
cutararchivosbinarios.
Leer:Podremosleerelementosexistentes.
Escribir:Essimilaramodificar,peronopodremosborrarlos.

50

Enviaruncorreo.

Mostrarunmensaje.
Disparadores (desencadenadores). Cualquier situacin que
provoquelaejecucindeunatarea.Haymuchosdeellos,
entrelosquesepuedennombrar:segnprogramacin,al
iniciaroapagarsesin,aliniciarelsistema,oalestarinac
tivo.Hayquetenerencuentaquenoexisteundisparador
alapagarelsistema,ysiqueremoshacerlotendremosque
buscarelid.evento1074,conorigenUSER32(unmdu
lodelkernel)ycuyoregistroseasistema.

ImplantacindeSistemasOperativos

Windows recomienda asignar permisos a grupos en vez de a


usuarios, ya que no considera muy eficaz el mantener cuentas de
usuariodirectamente.

NTFS.HerenciadePermisos.

TodoarchivoocarpetaposeeunaACL(AccessControlList).Ca
da entrada en la ACL relaciona cada actor (usuario o grupo) con las
operacionesquetienepermitidasodenegadas.UnaACLpuedehere
darentradasdesusantecesores,perosiestnheredadasnopodrn
eliminarse, tan slo podrn denegarse. Windows recomienda utilizar
denegarsloencasosespeciales,comopara:

Excluir un subconjunto de un grupo que tiene permisos


permitidos.
Excluir un permiso especial cuando ya se haya concedido
controltotalaunusuarioogrupo.

EncasodequenosintereseeditarporcompletounaACLten
dremos que romper la herencia respecto de sus antecesores. Para
hacerlo,habrqueirsealasopcionesavanzadasdentrodelapestaa
deseguridadunavezestandoenpropiedades.Unavezdentro,enla
pestaadePermisos,habrquedeseleccionarelrecuadroHeredar
del objeto principal las entradas de permisos relativas a los objetos
secundarios. Una vez hecho esto, podremos elegir copiar toda la
ACL de nuestro antecesor o borrarla para crear una nueva. De cual
quier forma, la ACL ahora pertenecer a ese elemento de forma
completa.
Es recomendable romper la herencia en los niveles ms altos,
aunquehabrquetenerlosiempreencuentaalahoradeahorrarnos
eltrabajo.
Hayquetenerencuentaqueanteunconflictoentrepermisos,
siempreseaplicarelmsrestrictivo.

EXPORTARINFORMACIN

LainformacinalmacenadaenunamquinaWindows2008es
normalmenteexportadaatravsdelared.Puedenutilizarsemuchos
serviciosderedexternosparahaceresto:NFS,FTP,SSH,HTTP.Nor
malmente, en Windows utilizaremos el protocolo SMB. El antiguo
SMB (ahora CIFS) es un sistema de transferencia de ficheros que
proviene de la antigua implementacin GNU SAMBA de Linux. SMB
nospermitir, por tanto,compartirrecursos, como ficheros, directo
riosoimpresorasatravsdeunared.SMBvienedeserieentodoslos
sistemas Windows, por lo que se ha convertido a la fuerza en un
estndar.

Permisos.

Estospermisossloseaplicanalosusuariosqueaccedenalre
curso compartido a travs del servicio de comparticin de SMB. No

confundir con los permisos NTFS. En caso de contradiccin con los


permisosNTFS,siempreseaplicarnlospermisosmsrestrictivos.
Lospermisosson:

ControlTotal.
Cambiar.
Leer.

Mecanismos.

ParapoderexportarlainformacinutilizaremoslacarpetaAc
ceso Pblico, o en el men propiedades, Compartir. Si hacemos
esto ltimo, conseguiremos ms exactitud en la configuracin de
usuariosypermisos,puespodremoselegirlosusuariosylospermisos.
AlcompartirdosficherosconSAMBA,tendrsunNAS(verms
adelante).

UsoDesconectado.

Windows permite el uso desconectado de archivos y carpetas


compartidas.Loscambiosquesehayanrealizadosesincronizarntras
unanuevaconexin.SernecesariohabilitarelservicioenelPanelde
Controldelservidorydelcliente.

ALMACENAMIENTO

Segneluso,sepodrnutilizarunosuotrosdispositivosdeal
macenamiento. Para su uso continuado, utilizaremos discos
magnticos, mientras que para su uso puntual, utilizaremos discos
pticosycintasmagnticas.
Sin embargo, hay otras tecnologas de almacenamiento, bien
hardware o mdulos software del propio Windows, que servirn
comosustitutosdedichohardware.

Raid(RedundantArrayofIndependentDisks).

Es un conjunto de discos magnticos independientes que fun


cionan coordinados y que ofrecen servicio como si fueran uno solo
(son por tanto dispositivos hardware). Para que funcionen como un
todo, necesitan del gobierno de una controladora, que optimizarla
velocidaddeaccesoylareparticindebytesencadadisco(elcmose
repartan definirn el NIVEL DEL RAID). Esta configuracin permitir
obtener menores tiempos de acceso, tolerancia a fallos e integridad
dedatos.
Aunquehaymuchosniveles,vamosavertresdeellos:

RAID0.Eselmssencillo.Lainformacinsedivideentiras
(stripes) que se almacenan en paralelo en dos discos (no
hayinformacinduplicada).

Ventajas: Maximizamos el tiempo de acceso,


pues podremos hacer lecturas paralelas (ya que

51

ImplantacindeSistemasOperativos

so unidades fsicas independientes). De hecho,


reducimoseltiempodeaccesoalamitad.

Inconvenientes: No tiene tolerancia de fallos. Si


perdemos un disco, perdemos la mitad de la in
formacin.
RAID1.Discosenespejo.Cadabytequeguardamosenun
disco,seguardatambinenelotro;todoslosdiscosdees
te RAID tendrn la misma informacin. Este nivel no
mejoralavelocidaddeaccesodelectura.

Ventajas:Tienetoleranciaafallos,comomucho,
un fallo. Si perdemos un disco, no perdemos in
formacin, pues est duplicada en el resto de
discos.

Inconvenientes: Desperdiciamos el doble de es


pacio. Si compro dos discos de 500Gb, slo
tendr500Gbdealmacenamiento.
RAID5.Estaconfiguracinreparteuncdigodeparidadso
bre todos los discos. Este nivel no duplica informacin,
sino que para cada conjunto de stripes reparte entre los
demsdiscosunatiramsqueasegurelaintegridaddelas
tirasanteriores.Enelcasodequefalleunodelosdiscos,
sepodrreconstruirlainformacindelmismoapartirde
loscdigosdeparidaddistribuidosentrelosdemsdiscos.
Para ello utiliza un mecanismo similar al que utilizaba la
funcinHASH(sidosarchivosgenerancadenasHASHidn
ticas,sernelmismoarchivo).

Ventajas: Al repartir la informacin mejora los


tiemposdeacceso(adiferenciadelosniveles3y
4 que dejan los cdigos de paridad en un nico
disco y, por tanto, crean un cuello de botella).
Adems, no desperdiciamos espacio y tenemos
toleranciaafallos,comomximo,deundisco.Si
perdemosmsdeundisco,nopodremosrecupe
rarlainformacin.

Inconvenientes: Necesitamos ms discos para


montar un RAID5, al menos 3, por lo que ser
mscaro.

Aniveldealmacenamiento,elobjetivoidealparacualquierad
ministrador es que cada componente funcione ntegramente con el
sistemaynoimpliqueunatrabaparaelclculo.Paraesto,elRAIDno
es muy vlido, pues es poco flexible, de forma que se recurre a las
redes.

RedesSAN(StorageAreaNetwork).

Son conjuntos de discos conectados en una red local. De esta


forma,siqueremosmsespacio,lonicoquetenemosquehaceres
conectarotrodiscoalared.
Estos discos estarn organizados por un sistema de ficheros
nico que se encargar de resolver la ubicacin de cada uno de los
bloquesdeinformacinrepartidosentretodoslosdiscos.Esdecir,las
solicitudes se harn al sistema de ficheros, pero este generar una
solicitudhaciaeldiscoenredquetengaelbloque.Portanto,elsiste
madeficherosgestionalosdiscosabajonivel(orientadoabloques).
LareddediscossemontaatravsdeunatopologaFiberChan
nel (FB) o una red iSCSI sobre una infraestructura de cables par
trenzado(utilizaelprotocoloiSCSI;losmensajessemetendentrode
undatagramaIP,nadadeTCP).
Funcionadelasiguienteforma:

Laaplicacinaccedealsistemadeficheros.
El sistema de ficheros accede a su mapa y llama al driver
iSCSI.
El driver iSCSI sabe que tiene que comunicarse por la red,
esperando mensajes para confirmar donde est la infor
macinqueselehaubicadoenelmapa.
iSCSI se comunica con la red para pedir la informacin, se
haceconella,lacompila,selapasaalsistemadeficheros
ystealaaplicacin.

LarediSCSInodeberacompartirnadaconlaredlocalydebe
ratenersupropioswitch.
Esteesunsistemamuyflexible;lonicoquetenemosqueha
cerparaampliarlo,esaadirmsnodosalared.Adems,cadanodo
podrtenerunsistemaRAIDensuinterior.

RedesNAS(NetworkAttachedStorage).

Sonunconjuntodediscosconectadosenunaredlocal,aligual
que la SAN, pero conceptualmente est por encima del sistema de
ficheros,adiferenciadelaSAN.
NASsebasaenunserviciodeficheros:aceptamensajesasocia
dosaficherosquetrabajaconrutas(lee,escribe,cierra,abre,elimina,
etc.,mensajesdealtonivel).
Funcionadelasiguientemanera:

Elclienteaccedealserviciodeficheros(NFS,SMB,etc.).

CuandomontemosunRAIDennuestroequiposloveremosun
disco, es decir, siempre se ver como una unidad de bajo nivel. El
sistema operativo no accede ni controla los discos, sino que ser la
controladoralaqueseencargardeello.
Windows 2008 tiene mecanismos para emular RAID (ver ms
adelanteAlmacenamiento.Windows2008).

Almacenamiento.Redes.

Enlaltimadcadasehanutilizadootrostiposdesistemasde
almacenamiento para mejorar la escalabilidad, es decir que pueda
crecer en tamao y que siga funcionando (crecimiento en cuanto a
volumendedatos,ascomoencuantoasucapacidaddeclculo).

52

ImplantacindeSistemasOperativos

Una vez se ha dado la orden al servicio de ficheros, ste


desvalapeticinalsistemadeficherosdecadaunodelos
nodosdelared.

Comosedijomsarriba,dosequiposcomunicadosconSAMBA,
formanunNAS.Adems,aligualqueelSAN,cadanodopodrtener
unsistemaRAIDensuinterior.

DiferenciasentreSANyNAS.

En las redes SAN, la aplicacin accede directamente al sis


temadeficheros,ylarutasequedaenelmapa.Apartir
deah,larediSCSItrabajarconbloques,bytes,etc.,por
loquedebajodelmapa,lasrutasnotendrnningunautili
dad. Conceptualmente estar por debajo del sistema
deficheros(orientadoabloques).
EnlasredesNAS,elserviciodeficherosderivaalsistemade
ficheroslapeticindelcliente,porloquetrabajarconru
tas. Conceptualmente est por encima del sistema de
ficheros(orientadoaficheros).

Almacenamiento.Windows2008

Windows2008tienemecanismosparaemularelfuncionamien
to de los RAID a nivel software, donde el rbitro ser el sistema
operativoquetratarlosdiscosconectadoscomosifueraunRAID.
Estotienecomoventajaprincipalelahorrodedinero.Sinem
bargo, tiene algunos inconvenientes. Este mtodo, donde el kernel
manejalacircuitera,esmslento,puesenunRAIDreal,lacontrola
dora lo hace a travs del hardware directo; por tanto la emulacin
tendrunbajorendimiento.Adems,Windowsnodejainstalarnada
del sistema (ni service pack, ni libreras, etc.) sobre estas unidades
RAIDemuladas.
Paraello,Windows2008distingueentre:

DiscosBsicos.Aquellosdiscosfsicosquecontienenparti
cionesovolmenesbsicos.
DiscosDinmicos.Losdiscosdinmicosofrecenunafuncio
nalidad de la que carecen los discos bsicos, como la
posibilidaddecrearvolmenesrepartidosentrevariosdis
cos (volmenes distribuidos y seccionados) y de crear
volmenes tolerantes a errores (volmenes reflejados y
RAID5). Todos los volmenes de los discos dinmicos se
consideran volmenes dinmicos (similares a las particio
nes),ysonlossiguientes:

Volumen Distribuido: Su espacio abarca ms de


undiscofsico,esdecir,lainformacindelmismo
podrestarrepartidaenvariosdiscos.Nosonto
lerantesaerrores,perosepuedenreflejar.

VolumenSeccionado(similaraRAID0):Almacena
datosenstripesendosomsdiscos,queseasig
nan de forma equitativa y alternada. Mejora el

Para administrar los volmenes dinmicos hay que acceder al


AdministradordeDiscosdelPaneldeControl.

BACKUPS

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
complementarios.

Backup de archivos. Consisteen respaldar los archivos del


sistemadeficheros,peronolaestructuralgica.
Backup de sistema. Crear una imagen exacta,byte a byte,
delsistemadeficheroscontodosucontenido.

Antiguamente,losrespaldossehacansobrecintasmagnticas,
pudiendo caber varios de ellos en una sola cinta. Actualmente, el
soporte puede ser cualquier otra cosa. A partir de un sistema de
ficherossepuedehacerunbackup:

Normal.Secopiatodoelsistemadeficheroscadavezque
semodificaunarchivodentrodelmismo,independiente
mentedesisemodificaron,o no, elrestode ficheros. Al
haceresto,cadabackupocuparlomismoquelatotalidad
del sistema, sin embargo, te garantizar la restauracin
mslimpiayrpida,puesslonecesitaremoselltimoba
ckuprealizadoparaello.
Incremental.Partedeunbackupcompleto,dondeapartir
delmismo,sloserespaldarnaquellosficherosqueten
gan el atributo de modificado. Hay muchas maneras de
conocersiunarchivohasidomodificadoono(porejem
plo, a travs de la comparacin de sus cadenas HASH),
peroalgonormalesqueelsistemadeficherosincorpore
unbitqueindiquesilosficheroshansido,ono,modifica
dos. As,cuandohagamosel respaldo, elsistemabuscar
aquellos con ese bit y los copiar, quitndoles el bit una
vezhayansidorespaldados.Obviamente,estetipoderes
paldoocuparmenosespacioqueelnormal,sinembargo,
si quisiramos reconstruir el sistema por completo, ten

53

rendimiento,peronisontolerantesaerrores,ni
sepuedenampliarnireflejar.
VolumenReflejado(similaraRAID1):Volumento
lerante a errores que duplica la informacin en
dos discos fsicos. Crea redundancia de datos al
utilizar dos volmenes idnticos llamados espe
jos.
RAID5:Volumentoleranteaerrorescondatosy
paridades distribuidas, en tres o ms discos fsi
cos,deformaintermitenteenbandas.Laparidad
es un valor calculado que se utiliza para recons
truir datos cuando se produce un error. No se
podrnreflejarniextender.

ImplantacindeSistemasOperativos

dramosquecargarlacopiatotalycadaunadelascopias
incrementalesrealizadashastaelpuntoderestauracin.
Por ejemplo, podramos programar respaldos normales
cadasemanayunincrementalcadada.
Diferencial.Partedeunbackupnormal,ycopiaapartirde
ahtodoslosarchivosmodificados,perotrascadarespaldo
diferencial,elbitquesealaquesehamodificadounar
chivonoseelimina,porloqueaunqueesosarchivosyano
se vuelvan a modificar, se copiarn en las subsiguientes
copiasdiferenciales.Lomaloesquesitenemosunsistema
que sufra muchasmodificaciones,tendremos copiasdife
renciales de un tamao similar o superior al original. Lo
bueno es que, en caso de prdida, slo necesitaremos el
backupcompletoyelltimodiferencial.

HyperVnorequieredelsistemahostparafuncionar,esdecir,
no tienes que cargar en memoria ni el kernel ni las libreras de en
torno grfico del sistema operativo. Al evitar esto, ya ests
optimizando el recurso de la memoria; casi todo el espacio de la
mismaestardedicaalasmquinasguests.
HyperVesidealparaDatacentersconaltadisponibilidad.

VirtualPC.

Esunmonitoraniveldeprocesos,basadoenunVirtualMoni
tor(similaraVMwareoParallels).Funcionasobreelsistemaoperativo
(en nuestro caso, Windows 2008) como un sistema host, por lo que
gran parte de nuestra memoria quedar ocupada por el kernel del
sistema operativo, rebajando el rendimiento de nuestra plataforma
virtual(enestesentido,HyperVesmseficiente).
VirtualPCestpensadoparaentornosdeescritorioycontextos
mslimitadosqueHyperV.

Windows 2008 posee un asistente de backups llamado Win


dows Server Backup. Tendremos que elegir un backup u otro en
funcindesuusoascomodelasfacilidades,ycoste,quetendremos
alhacerunarestauracin(noslodelsistema,sinoquizsdearchivos
ocarpetassueltas)enelfuturo.

PREGUNTAS.

1.

VIRTUALIZACIN
2.

LavirtualizacinestmuypresenteenWindows2008(yasevio
algo de virtualizacin en el tema 3, pgina 13), que incorpora dos
mecanismosomodosdehipervisor:

HyperV.Aniveldesistemaoperativo.
VirtualPC.Aniveldeaplicacin.

HyperV.

EstalojadodentrodelkerneldelWindows2008,porloquees
unhipervisoraniveldesistemaoperativo.HyperV,funcionadirec
tamentesobreelhardware,esdecir,lapropiaplataformasustituyeal
sistema operativo, que tiene nicamente lo necesario para alojar
mquinasguestsobrel(nisiquieracuentaconunainterfazgrfica).
Estemecanismoestslodisponibleparaarquitecturasx86de
64bits(nolosoportanlosde32bits).
Lavirtualizacinestasistidadesdeelpropiohardwareatravs
de mecanismos como IntelVT. Los fabricantes de procesadores y
placasimplementanrepertoriosdeinstruccionesparaqueelhardwa
repuedaadaptarsemejoraestosmodelosdehipervisores,dondelos
esquemas tradicionales de llamadas al sistema se vern modificados
altenerdirectamentesobreelhardwareunhipervisor,ynounsiste
maoperativo.Esto,obviamenteharqueelsistematengaunmayor
rendimientoyoptimizarlostiemposdemigracinyrecuperacinde
lossistemasvirtualizados.

3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

54

Qu es un servidor y qu tipo de mquinas pueden ser


servidores?
Qu parmetros o requisitos bsicos debe observar cual
quierservidor?
Describebrevementelasprecaucionesbsicasenrelacinal
entornofsicodelservidor.
Enquconsisteelprocesodeinstalacindesatendida?
DescribelasecuenciadearranquedeWindows2008.
Comentalasdiferenciasentrelosarchivosdeconfiguracin
dearranquede2008ydesuantecesor,el2003.
CuleslafuncindelBootmgr?
DescribelaestructuradelregistrodeWindows2008.
Qu aspectos tendremos que configurar en relacin a la
conectividaddenuestramquina?
Describebrevementelasherramientasadministrativaspara
realizarauditoras.
Describelaestructurainternadelvisordesucesos.
Quesunavistaycmofuncionayserelacionaconelfil
tro?
Qurelacinexisteentremonitorderendimiento,loscon
tadoresylosrecopiladoresdedatos?
Cmodefinirasuncontadoryunconjuntorecopiladorde
datos?
Diferenciasentredisparadoresyacciones.
Enumeralasaccionesysustiposeneladministradordeta
reasyalmenostresdisparadores.
Quesyparaqusirveunaconsoladeadministracin?

TemaNueve

WindowsServer2008
GestinenRed

nardiferentesserviciosalavez,yportanto,capazdecrearelcontex
toglobalquedefinelosDominios.Adems,ActiveDirectory,permitir
coordinarvarioscontroladoresdedominioparaque,encasodefallo
deunodeellos,eldominiopuedaseguirfuncionando.
Elcontroladordedominioalmacenalosdatosdetodaslasm
quinas,porloquetodasellastendrnquesolicitarsuscredencialesal
controlador. En un dominio, todos los objetos confiarn en las cre
denciales emitidas por el controlador, donde un protocolo llamado
KERBEROS (ver ms adelante), se encargar de que dicha credencial
seafiable;esdecir,quenohayasidocambiada,quehayasidoemitida
poresedominio,yquenohayasidomonitorizada.Portanto,elcon
troladoremitirentodoeldominiocredencialesvlidas.

INTRODUCCIN

Windows2008estdiseadoparafuncionarcomoanfitrinde
serviciosenunared.Veremoslofundamentalparasugestinenred,
comenzandopordefinirloqueesunDOMINIO.

QUESUNDOMINIO?

ComoseintrodujoenelTema8,paraMicrosoft,undominioes
un conjunto de equipos conectados en red con ciertos parmetros
comunes.Microsoftlodefinecomo:

Un grupo de equipos que forman parte de una red y


comparten una base de datos de directorio comn. Un
dominio se administra como una unidad con reglas y
procedimientoscomunes.Cadadominiotieneunnombre
nico.

Es decir, un dominio crea un entorno de equipos/impresoras


paraquelosusuarioslosutilicenypuedanaccederaelloslibremente,
pudiendoutilizartodoslosrecursosenglobadosdentrodelmismo.En
un dominio, usuarios y sus relaciones, objetos o recursos (equipos,
impresoras...), privilegios de acceso, etc., se configuran de forma
global,formandouncontextocomnarbitradoporelcontroladorde
dominio.

ControladordeDominio.

Elcontroladoralmacenarunabasededatosdeusuariosyob
jetos,siendoelanfitrindetodoslosserviciosenunared:nombres,
webyActiveDirectory.
Aunquesevermsadelante,ActiveDirectoryesunserviciode
directorioquealmacenainformacinacercadelosobjetosdeunared
ylaponeadisposicindelosusuariosyadministradoresdelamisma.
ActiveDirectorydaalosusuariosaccesoalosrecursospermitidosen
cualquier punto de la red mediante un nico proceso de inicio de
sesin.Proporcionaalosadministradoresderedunavistajerrquica
intuitivadelaredyunpuntodeadministracinnicoparatodossus
objetos.ActiveDirectoryesunaherramientacapazdeponerafuncio

SERVICIODENOMBRESYDHCP

Sehadefinidoundominiocomouncontextocomndeobjetos,
donde cada uno de ellos tendr su propia direccin IP. El dominio
utilizar cada uno de estos objetos a travs de su nombre, y no a
travs de su IP, por lo que el servicio de nombres ser fundamental
parasufuncionamiento.Lonormalesquetodocontroladordedomi
nioseaasuvezunserviciodenombres.
Windows poseeun servicio de DNS (DomainName System, se
vioporencimaenelTema7),quehabrqueinstalardeformaexplci
ta,esdecir,novieneinstaladopordefecto.Bsicamente,DNStraduce
los nombres en direcciones IP, por lo que podremos asociarlas a los
nombresdelasmquinas.Enladcadadelos90,Microsoftcreun
serviciodenombresllamadoWINS(WindowsInternetNameService),
unserviciodesoftwareque,aligualqueDNS,asignabadinmicamen
te direcciones IP a nombres de equipo, permitiendo a los usuarios
tener acceso a los recursos por su nombre, en vez de a travs de
direccionesIPdifcilesdereconoceryrecordar.Debidoasuincompa
tibilidad,quedobsoleto,aunqueMicrosoftsigueutilizndolo.
EnAdministrarnuestroservidor,habrqueagregarnuevafun
cionalidadparainstalarDNS.Unavezinstalado,habrqueconfigurarlo.

DOMAINNAMESYSTEM(DNS)

DNSesunprotocolojerrquico.DNSsebasaenzonascuyaad
ministracin est delegada a servidores concretos. Por ejemplo,

55

ImplantacindeSistemasOperativos

supongamosqueexisteunservidorDNSrazconpocosnombres(slo
albergalos.com,.net,.org,.es,.fr,etc.).Cadaunodeestos
nombressecorresponderconunazonaqueestaradministradaen
unDNSdistinto,unDNSquealmacenarlosnombresdecadaunade
laszonasanteriores.Esdecir,lazona.estendrmuchosmsnom
bres,yesosnombrespodrnserzonas,comoejemplo.es,quesern
administradas a su vez por otro servidor DNS. Podramos decir, por
tanto, que cada zona es una base de datos que contiene registros
dondeseindicanlosrecursosquealmacena.
Cuandoalguienadministraunazona,eslibredecreartodaslas
subzonasorecursosenellacomoquiera.Nadanosimpedircrearuna
zona DNS de mbito privado, dondelos nombres se resolvernutili
zandoelcontroladordedominio.
Algunosdelosregistrosdelasbasesdedatosdelaszonas,son:

SOA(StartofAuthority).Esteregistroindicaqueeseservicio
es el propietario de una zona DNS, especificado su inicio
de autoridad. Incluye el nombre primario del servidor, el
maildeladministradordedominio,elnmerodeseriedel
dominio,yvariostemporizadoresencaminadosalaactua
lizacindelazona.
NS(NameServer).Indicalosserviciosprincipalesysecunda
riosautorizadosparaesazona.
A(Address).IndicalaIPdeunrecurso
PTR(Pointer).Indicaelnombredeunequiposilaconsulta
es una direccin IP (es decir, bsquedas inversas). Si no,
dirigeelpunteroaotrainformacin.

Adems,existenmuchosmsregistros,comoCNAME(indicaun
nombre cannico para un alias), MX (indica el intercambiador de
correo)ySRV.

ConfigurarelServiciodeDNS

UnavezinstaladoDNS,tendremosquecrear(almenos)unazo
na de resolucin directa, con al menos los registros SOA y NS.
Adems,podremoscrearzonasderesolucininversa.
Paraterminardeconfigurarnuestrazona,tendremosquecrear
unprimerrecursodetipoAconelnombredenuestrazona.Unavez
creadoste,podremoscreartodoslosrecursostipoAquequeramos.
TuDNSnoconocertodoelmapadeInternet.lnoadministra
rlos.comporloquetendrqueenviarlapeticinaotroDNS.La
formaparaellovariar,peroloqueestclaroesquetendremosque
tenercorrectamenteconfiguradootrosserviciosalosquereenviarlas
peticionesencasodequenuestroservicionoseparesolverlas.

Instalacin. Nos vamos a Administrador del Servidor, le da


mosaFuncionesyluegoaServicioDNS.Ahloinstalamos.
En el panel DNS, a la derecha se crearn 2 registros de inicio,
unoSOAyotroNS.Adems,tendremosquecrearunprimerre
gistrotipoAconlaIPdelservidor,sino,nofuncionar.Despus

podremos aadir cualquier registro A adicional. Con esto, ya


tendremosnuestroservicioDNSenmarcha.

DYNAMICHOSTCONFIGURATIONPROTOCOL(DHCP)

Esteesotrodelosserviciosconlosquepodremoscomplemen
taranuestrocontroladordedominio,aunquenoesfundamental.
ElprotocoloDHCPpermitelaasignacindinmicadedireccio
nesIPyotrosdatoscomolamscaradesubredolapuertadeenlace,
haciendoposibleunaadministracinderedcmoda,flexible,seguray
confiable.DHCPasignarmbitosdedirecciones(crearunareservao
pool)dedondelosdiferentesnodosobtendrnsudireccindered.Es
decir, en vezde configurar a mano los datos a nivel IP (direccin IP,
mscara,puertadeenlace)delasmquinasdetudominio,cadauna
de ellas se lo preguntar auna tercera utilizando elprotocolo DHCP
(trabajaenlacapa2deenlace),evitandoconflictosdedireccionesy
ayudandoaconservarelusodelasdireccionesIPdeclientesenlared.
Por ejemplo, el router de nuestras casas viene equipado con este
protocolo, as, cada vez que arranca nuestra mquina, le pedir al
servicioDHCPlosdatosIP.
Esteprotocolosimplificamucholascosas,perohabrmquinas
concretas que no podrn conseguir su IP mediante DHCP, como los
servidores. Sin embargo, al tomar como base las direcciones MAC
(recuerda que trabaja en la capa 2 del modelo TCP/IP), podremos
hacerque unservidor tenga siempre la misma IP. Cmo? Asociare
mos siempre esa IP con la direccin MAC del servidor y
conseguiremos que siempre quede reservada para l, aunque se
asignedinmicamente.
Debido a que el DHCP se descubre por mensajes de difusin,
tener varios servicios de ellos funcionando en la misma subred IP
podra ser problemtico, pues podra haber solapes de mbitos (es
decir,quedosserviciosDHCPledenlamismadireccinIPaunmismo
equipo).

ConfigurarelServiciodeDHCP

LainstalacinessimilaraladelserviciodeDNS.Debemosagre
gar una nueva funcionalidad en Administrar nuestro servidor. A
partirdeaquarrancarunsencilloasistentedeinstalacin.
Para su configuracin no requeriremos el uso de servicios de
WINS, ni la compatibilidad con IPv6, sino que slo tendremos que
crearnuestrombitodedireccionesofrecidas,indicandoel:

Rangodedirecciones.
Mscara.
Puertadeenlace.

LasIPconcedidasalasdiferentesMACsevernenelConteni
dodembito,Concesionesdedirecciones.Elserviciopermiteotras
configuracionesmsavanzadascomolaasignacindelnombredela
mquinaylaIPatravsdeladireccinMAC(parahaceresasreservas
quesecomentaronantes).

56

ImplantacindeSistemasOperativos

Unavezfinalizadoelasistentedeinstalacin,elservicioestar
listoparautilizarse.
Esteprotocoloserespecialmentetil,porejemplo,enunaofi
cinaenlaquesearranquenguestdevezencuando.Deestaforma,
podremosdecirqueloshosttenganIPfijasydejaremosquelosguest
virtuales pidan sus IP por DHCP (as, todas tendrn una IP correcta).
HayquetenerencuentaqueDHCPfuncionaaniveldeenlace(capa
2), es decir, no traspasar un router, por lo que habr que instalar
DHCPencadared(internoalasubredIP).
Las redes WiFi utilizan el protocolo DHCP para no tener que
configurarlaIPdecadaterminalamano.

la, Zentyal, tiene una interfaz web para conectar un servidor para
controlartododesdeunpanelgrfico,peroestmuylejosanivelde
fiabilidad de la versin Windows). No ser nada sencillo configurar
estosserviciosdeformamanualyporseparado,yluegointegrarlos.
ActiveDirectoryeslasolucindeMicrosoftparalacreacinde
dominios;msqueunservicio,esunconjuntodeserviciosparaper
mitir que toda la informacin de usuarios, objeto e impresoras, sea
accesibledesdelasdemsmquinasdeldominio,evitandoacumular
esainformacinencadaunadelasmquinas.Cualquierusuariopodr
accederacualquiermquinasinnecesidaddetenercuentadeusuario
enella.Paraestosernnecesariosvariosserviciosdelosqueveremos
los siguientes (aunque bsicamente, Active Directory es un conjunto
delosdosltimos):

DNS(DomainNameSystem).Eselprotocoloderesolucin
denombres,utilizadopararesolverlaubicacinanivelde
redapartirdeunnombre.ActiveDirectoryrequieresiem
pre este servicio para resolver la ubicacin de los
elementosregistradosensubasededatos,aunqueseins
talaapartedeActiveDirectory.PuestoqueDNSnoexige
muchosrecursos,normalmenteelcontroladordedominio
tambin ser nuestro servicio de nombres a la hora de
configurarundominio.
DHCP (Dynamic Host Configuration Protocol). Se instala a
parte.
LDAP(LightweightDirectoryAccessProtocol).Eselprotoco
lodeaccesoprincipaldeActiveDirectory,comotal,tendr
queserinstaladotantoenelclientecomoenelservidor.
Pordecirlode forma sencilla,LDAP regulaelaccesoalos
contenedorescreadosporActiveDirectorycontodalain
formacin de usuarios y objetos. Se entiende por
contenedor, cualquier tabla que contiene nombres de
elementos, cada uno de ellos cos sus caractersticas; es
decir,unabasededatosmuysimple.UnservicioLDAPda
accesoaesecontenedor(obasededatosligera)dondese
almacenan las entidades y sus propiedades. Active Direc
toryutilizaesteprotocoloparaalmacenarinformacinde
usuarios, objetos, configuraciones, directivas, etc. Lo pri
meroparacrearundominiosermontaresteservicio.
EstndardeAutenticacinKerberos.Esunestndar(esde
cir,undiseo,nounaimplementacin);unmecanismode
autenticacin utilizado para comprobar la identidad de
usuariosohosts.Esunprotocoloparapermitirunacomu
nicacin confiable y segura. Con l, sabremos que los
actoressonquienesdicenserynadiepodrseguirocopiar
la comunicacin, permitiendo que dos entidades en una
red puedan mostrar sus identidades de manera segura,
evitando que sean usurpadas. Cuando queramos recupe
rarinformacindelActiveDirectorydeformaremotanos
garantizarsufiabilidad.AlgoparecidoaKerberosseutili
zaparaevitarlamonitorizacindelaspginasdelosbancos.

ACTIVEDIRECTORY

Active Directory es un servicio de directorio que almacena in


formacinacercadelosobjetosdeunaredylaponeadisposicinde
losusuariosyadministradoresdelamisma.ActiveDirectorydaalos
usuarios de redacceso a los recursospermitidos en cualquier punto
de la red mediante un nico proceso de inicio de sesin, proporcio
nandoalosadministradoresunavistajerrquicaeintuitivadelared,
yunpuntodeadministracinnicoparatodossusobjetos.
ElserviciodedirectorioActiveDirectoryparaWindowscataloga
lainformacinacercadetodoslosobjetosdeunared,incluidosusua
rios,equiposeimpresoras,ydistribuyelainformacinportodalared.
Adems, proporciona un modo coherente para dar nombre, describir,
buscar, tener acceso, administrar y asegurar informacin sobre estos
recursos individuales. La seguridad est integrada en Active Directory
mediantelaautenticacindeiniciodesesinyelcontroldeacceso.Con
ActiveDirectoryslohabrqueiniciarlasesinunavezparaencontrary
utilizarfcilmentelosrecursosdecualquierpartedelared.
Active Directory usa objetos para representar recursos de red
comousuarios,gruposyequipos.Estosobjetos(comounusuario,una
impresoraounprograma)sonlasentidadesqueconformanunared.
Porejemplo,unobjetodeusuariopuedecontenervaloresparaatri
butos como el nombre, apellidos y nombre de inicio de sesin del
usuario.Porfinesorganizativos,losobjetossecolocarnencontene
dores (o unidades organizativas), como, por ejemplo, la unidad
organizativadeldepartamentodemercadotecniaouncontenedorde
objetosrelacionados,comoimpresoras.Elaccesoaestoscontenedo
resestarregladoporLDAP(vermsadelante),yascualquierusuario
podraccederalainformacincontenidaenellos.
Aunque Active Directory slo est disponible actualmente en
controladores de dominio de Windows, se podrn incluir al dominio
estacionesdetrabajoUNIX.Aunquetendrnaccesototalalosrecur
soscompartidosdentrodeldominio,sloaquellasmquinasbasadas
enWindowsconelsoftwaredeclienteActiveDirectorypodrnutilizar
Active Directory para solicitar informacin acerca de estos recursos
compartidos.
Sinembargo,sepodrnmontardominiossinActiveDirectorya
travsdepaquetesyaplicaciones(sernecesariounservidorSAMBA,
servidor DNS, servidor LDAP y estndar Kerberos) sobre Linux, pero
tendremosqueconfigurarlosdeformaaislada(ladistribucinespao

57

ImplantacindeSistemasOperativos

CONCEPTOS

ControladordeDominio.

Mquinaque centralizalaejecucinde losserviciosdel Active


Directory (la mquina donde se instala ese directorio). Es decir, la
mquina donde se instale el Active Directory, ser el controlador de
dominio.

rboldeDominio.

Estructura conceptual que representa controladores en forma


derbolysusmquinasasociadas.Requiereunoovarioscontrolado
res de dominio. Una vez montado un rbol de dominio, podr ser
configuradoatravsdecomandosmediantelaPowerShell(unainter
fazdelneadecomandosconposibilidaddeescriturayconjuncinde
comandospormediodemdulosdevisualBasic),quepermitirhacer
scripts y macros para automatizar tareas, incluso de forma remota.
Porejemplo,podramosautomatizarlacreacindetodaslascuentas
de usuarios con un script que leyera los nombres de un archivo. La
PowerShellserfundamentalparasacarletodoelpartidoalservidor.
Todorboldedominioestcompuestopor:

Unoovarioscontroladoresraz.Todosestoscontroladores
tendrnunabasededatosconelmismocontenido.Sison
varioscontroladores,estarplicanospermitirtenertole
rancia a fallos. De forma automtica, al crear un
controladoradicionalenundominioyaexistente,secrea
runarplicadelabasededatosyamboscontroladores
se comunicarn. NO EXISTEN DIFERENCIAS entre un con
troladordedominioprimarioyunosecundario,aunquesi
la informacin de un usuario es creada en el controlador
secundario, esta informacin tardar un tiempo en estar
sincronizadaconelprimario,ysi las mquinastienenco
mo DNS primario la del controlador creado en primer
lugar, podra tardar un tiempo hasta que se comuniquen
entre controladores, creando retardos y negaciones tem
porales. Cada mquina podr ser configurada como se
deseeparapreguntarenprimerlugarauncontroladoroa
otro.
Mquinas asociadas a ese dominio. Introduciendo el DNS
del controlador y el nombre del dominio, se unirn al
mismo.
Controladoresdedominioshijos.

BosquedeDominio.

Estructura conceptual que representa un conjunto de rboles


dedominiodesimilarimportancia(nocompartenraz).Cuandotene
mos un conjunto de dominios, tendremos un rbol, y esos dominios
tendrn una jerarqua relacionada. Si tuviramos dominios sin rela

cin,tendramosvariosrbolesdeigualimportancia,sinqueunode
ellossearazdeotro,teniendoentoncesunbosquededominio.

Ejemplorboldedominionico.Sicreamosundominiocuyo
nombre es IES.COM, la mquina controladora se llamar
DC1.IES.COM. Despus acoplaremos el resto de mquinas al
dominio, que se llamarn PCX.IES.COM. Una vez hecho esto,
podremoscrearcuentasdeusuarioseimpresorasenelcontro
lador,paraquelosusuariospuedanloguearseencualquierPCy
acceder a cualquier informacin del dominio desde cualquier
terminal.Incluso,aunqueunodelosPCtengaunNAS,cualquier
usuario desde otro PC podr acceder a las carpetas en red
siemprequetengapermisosparaello,puessuidentificacines
tarfirmadaporDC1.Losusuariossernglobales.SiDC1secae,
todo dejar de funcionar. Para evitarlo, podremos introducir
unacontroladoraadicional,DC2,dondetendremosqueactivar
elActive,yconfigurarlocomocontroladordedominioparauno
queyaexiste.DC2tardarunratoensincronizarse,perocuan
dolohaga,tendrlamismainformacinqueDC1.
Aunque tener ms controladores no mejora el rendimiento, la
naturalezadelaorganizacinpodrrequerirdemsdominios.

EjemploDominiorazydominiosdelegados.Siqueremoscrear
subdominios,loprimeroquetendremosquehacersercomprar
otramquinaserver,instalarWindows2008yponerleunnombre
al dominio, en nuestro ejemplo, ADMIN. Ahora tendremos que
instalar Active Directory, para convertirla en la controladora de
undominionuevo.Aunquedichodominioseanuevo,serdele
gadodeldominioIES.COM,yestarpordebajojerrquicamente.
El nuevo dominio se llamar ADMIN.IES.COM., y el controlador
DC.ADMIN.IES.COM.Enlospermisosentralapolticadegrupos,y
susrestriccionesvendrndadasporlosgruposalosquepertene
ce.
AniveldeDNSfuncionadeformajerrquica.Sinotieneladi
reccin,lepreguntaalcontroladordenivelsuperior.

INSTALACIN

Antes de instalar Active Directory habr que tener en cuenta


unascuestionesprevias.Tendremosqueconfigurarlared(TCP/IP)con
una direccin IP esttica; tener instalado el servicio DNS (si se ha
configurado previamente, lomejor ser borrarlazonade resolucin
directa para evitar problemas posteriores); ponerle un nombre a la
mquina desde Propiedades del Equipo (siempre minsculas, sin
espaciosnitildes);yconfigurarelDNSprimarioconlaIPdelcontrola
dordeldominio(laalternativapodraser,porejemplo,8.8.8.8,elDNS
degoogle).
Para iniciar la instalacin ejecutaremos el comando dcpromo
(Domain Controler PROMOtion). Una vez ejecutado, arrancar el
instalador. Lo primero que nos preguntar es si queremos crear un
controlador en un bosque existente (agregndolo como controlador
en un dominio existente, o creando un controlador como raz de

58

ImplantacindeSistemasOperativos

dominio en un dominio nuevo, por ejemplo, ADMIN.IES.COM, es


decir, el segundo controlador de IES.COM), o crearlo en un bosque
nuevo (haciendo referencia al ejemplo anterior, sera el dominio
IES.COM).
Habrunaseriedepasosmsentrelosqueestarnlaeleccin
delnombredeldominio;localizacindelasbasesdedatos(laubica
cindelosficherosquevanaalmacenarlainformacindeesabase
datos que guarda el Active Directory, por defecto en los directorios
NTDSySYSVOLdelaraz,peropodrainteresarqueesabasededatos
estenunaunidadRAID);ycontraseadelusuarioadministrador(el
administrador tendr el poder de crear nuevos objetos y de unir
mquinasal).Unavezconcluidalainstalacinpodremosexportarsu
configuracinparaunmododesatendido.

Asociarmquinasaesedominio.

Para unir una mquina con Windows XP a un dominio no me


harfaltaaccederalsistemaoperativoWindows2008,puesfunciona
comoservidor.
Loprimero,enPropiedadesdeMiPC,cambioelnombredel
equipo:lepongounnombre,elijoungrupo(Workgroups)ylepongo
elnombredeldominiocreado.Unavezhechoestotepedirelnom
bre y clave de alguien con privilegios de administrador. Una vez
introducido,lamquinaestarunidaaldominio(telocomunicarpor
pantalla) y tendrs que reiniciarla para poder acceder a todos los
recursosdelmismo.

USUARIOSYGRUPOS

Lagestindelosusuariosylosgruposesbastantecomplejacon
ActiveDirectory,yaqueentrarnenjuegolaspolticasdegruposque
severnenel2cursodelciclo.
Al crear un dominio, podremos tener un espacio comn de
usuarios globales, con una base de datos global de usuarios, donde
tantousuarioscomogrupossernobjetosdelamisma.
La identidad de un usuario se compartir entre todas las m
quinas y procesos del dominio, y estar basada en un certificado de
confianza(segnelestndarKerberos)expedidoporelcontroladorde
dominio (kerberos asegurar que estos certificados no puedan ser
emitidosporningunaotramquina).Esdecir,losprocesosdecidirn,
en base a la identidad del solicitante, si podrn o no hacer algo. El
sistema operativo comparar la identidad del cliente que arranca el
procesoconlaidentidaddesubasededatos,yenbaseaeso,podro
nollevaracabolasaccionesqueseproponga.
Paralagestindelosusuariosygruposutilizaremosunaconso
la de administracin predefinida: Usuarios y equipos del Active
Directory. Una vez dentro, veremos que est compartimentada en
dosmarcos:

Marcoizquierdo:Dondeseencuentranloscontenedores
ounidadesorganizativasdelActiveDirectory.Muestrael
contenidodelabasededatosdelActiveDirectorydefor

Losusuariosylosgrupossonobjetosdelabasededatos,don
delosobjetosgruporelacionandistintosobjetosusuario.Esto,sin
embargo,noimplicaquelosusuariosestncontenidosengrupos,
slorelacionados.Esdecir,sieliminamosungrupo,noeliminaremos
los objetos relacionados con l, sino los permisos asociados a ese
grupo.Portanto,unobjetogruponocontieneaobjetosusuario.
TodoobjetoestidentificadoporunSIDnico,ycomoobjetos,
losusuariosygrupostendrnelsuyopropio.
Para crear un nuevo usuario o grupo simplemente habr que
pulsarelbotn derecho sobre elcontenedor quequeramos, yelegir
nuevo usuario o grupo (con su login, nombre, etc., o mbito y tipo
distribuidoparagrupos),ytenercuidadoconlascontraseas(directi
vasdeseguridad).Delosusuariospodremoselegirlacaducidaddesu
contrasea, el horario de acceso a cualquier equipo del dominio, la
capacidaddediscoyelcontrolremoto.

INTERNETINFORMATIONSERVER(IIS)

ConesteserviciopodremosconvertirnuestroWindows2008en
unservidorweb.LaversinlibreesApache.
IISenglobaserviciosdesoftwarequeadmitenlacreacin,con
figuracinyadministracindesitiosWeb,ademsdeotrasfunciones
de Internet. Entre los Servicios de Internet Information Server se
incluyen el Protocolo de transferencia de noticias a travs de la red
(NNTP), el Protocolo de transferencia de archivos (FTP), el Protocolo
simpledetransferenciadecorreo(SMTP),elprotocolodetransferen
ciadehipertexto(HTTP),etc.
TalycomoseconcibiInternet,cadaunadenuestrasmquinas
podra funcionar como un servidor web, con una direccin IP fija y
propia,pudiendoexportarsurutaabsolutaalrestodeusuariosconec
tados a la red. Por ejemplo, si un cliente solicitara leer en nuestra
mquina, index.html, el servicio web, cuya ruta absoluta podra ser
C:\miweb,ledaralarutaC:\miweb\index.html,llamandoyleyendo
directamentesobrelosarchivosestticosdenuestrodisco.
Enlarealidad,nocontamosconunaIPfija,ysiqueremosque
nuestroscontenidosestnalalcancedetodos,habrquerecurriraun

59

ma jerarquizada. Aunque tienen la apariencia de directo


riosenrbol,nosontalcosa,sino,talycomosehavenido
diciendo,unaestructuraorganizativadelabasededatos.
Los contenedores se utilizan para organizar elementos
(agruparyconteneraotrosobjetos);sonpropiosdelaba
se de datos y por tanto no tendrn reflejo fuera de ella.
Tenencuentaquenoinfluirelcmoorganiceslosconte
nedoresconlasrelacionesexistentesentreellos.Adems,
aunqueborremosuncontenedor,noborraremostodoslos
objetoscontenidosenelmismo.
Marco derecho: Una vez pinchado en uno de los contene
dores de la izquierda, su contenido aparecer en la
derecha.Hayquetenerencuentaqueaqutambinpodr
aparecercualquiercontenedorqueestcontenidodentro
deotro.

ImplantacindeSistemasOperativos

IISescompatibleconmdulos.NET,comoVisualBasicScript,y
ASP,ypermitelagestindediferentessitiosweb.

Instalacin. Para instalarlo, en la consola principal, habr que


buscarlasfuncionesypulsaragregarnuevafuncin.Seleccio
namos el componente IIS e iniciamos la instalacin (segn la
distribucinnospedir,ono,eldiscodeinstalacin).Yyaesta
r listo. Para acceder a l, buscaremos Administrador de
Internet Information Services (IIS) en Herramientas Adminis
trativas. Cuando nos metamos, veremos que por defecto ha
creado, en Sitios, Default Web Site, una pgina web que
podremos modificar, y que si estamos conectados en red con
otrosequipos,podrnveraccediendoanuestroservidor.

servidor conIP fija para alojarlos enla red. Actualmente, el servidor


webnoleecontenidosdeunficheroesttico,sinoquefuncioname
diante la generacin dinmica de contenidos, trabajando sobre
procesos que estn ejecutndose en la mquina. Cuando un cliente
haceunapeticinvaHTTP,elservidorwebpreguntaraesasaplica
ciones en ejecucin acerca de la ubicacin de dicha peticin. Las
aplicaciones accedern a una base de datos donde se encontrar el
contenido solicitado, aadindole cdigo HTML para mandrsela al
servidorwebqueseencargardeenviardichainformacinalcliente
queverelresultadodedichomontajeensunavegador.
IISpermitesergestionadodesdelaMMCcomouncomponente
ms y permite su administracin de forma remota (crucial para el
casodelosservidores).
Pordefecto,eldirectoriorazdelservidorserC:\inetpub,
dondeseencontrartodoelrboldeficherosrelacionadoconelservicio
web. Entre los directorios que encontraremos dentro de esta carpeta,
estn:

C:\inetpub\ftproot\>Dondeseencuentralascuen
tasdeusuarioconaccesoFTP.
C:\inetpub\wwwroot\>Dondeestelcontenidoweb
denuestroservidor.
C:\inetpub\mailroot\> Que es el directorio raz de
losusuariosconserviciodemail.

PREGUNTAS.

1.
2.
3.
4.
5.

60

InstalaelservicioDNS.
InstalaelActiveDirectory.
Aadeunamquinaaundominio.
Aadedosmquinasaldominio.
InstalaelservicioIIS.

TemaDiez

Seguridad

patronesqueharanmssencillodesentramarlo.Portanto,paradarle
robustezanuestroalgoritmopodramosaadirlelaclaven.Deesta
forma,cuandoquisiramoscifrarunmensajeconnuestroalgoritmo,
sumaramosnposicionesacadacarcter.Conestoconseguiramos
queaunquenuestroalgoritmofuesepblico,nofueraposibledesen
tramar nuestros mensajes codificados (aunque podran conseguir
descifrarsemediantelabsquedadepatronesabasedefuerzabruta).
Elsecretoestaraenlaclave,noenelalgoritmo.Portanto,larobus
tezdelcifradodeberaresidirenelsecretodelaclave,noeneldel
algoritmo.

TIPOSDECIFRADO

Existen bsicamente dos tipos de cifrados, que se diferencian


enlagestinquehacendesusclaves.

Cifradosimtrico.
Cifradoasimtrico.

CifradoSimtrico.

Estetipodecifradossondeltipodelejemploquehemosvisto
antes,esdecir,unavezcifradounmensaje,slopodrserdescifrado
aplicando la misma clave (es decir, si n=3, restar tres posiciones a
cadacarcteryyatendrmimensajeenclaro);portanto,enelcifra
do simtrico, emisor y receptor cifrarn y descifrarn con la misma
clave.Estosuponeunproblemaclaro,cmoacuerdodichaclavede
forma segura? Ya que la robustez de mi cifrado est basada en el
secreto de la clave, distribuirla a mi receptor de forma segura ser
complicado.Apesardequeestecifradoeselmsseguroyrpido(en
tiempodeclculo),cuentaconeseproblema,ademsdelaincomodi
dad de tener que generar una clave distinta para cada uno de los
receptores de nuestros mensajes cifrados. Como alternativa, y para
solucionarestosproblemas,aparecienlaltimadcadadelsigloXX
elcifradoasimtrico.

CifradoAsimtrico.

Conestecifrado,elemisoryelreceptorcifranydescifrancon
clavesdistintas.Cuandoquieracifrarunmensajegenerarunparde
claves mellizas (es decir, se generarn al mismo tiempo y una ser
dependientedelaotra):

CRIPTOGRAFA

Lacriptografaesunconjuntodetcnicasqueestudialamodifi
cacin de la informacin en base a unas reglas acordadas entre un
emisoryunreceptor,yquenadiemsconoce.Deestaforma,podre
mosocultarelcontenidodeunmensajeareceptoresnoautorizados.
Tenencuentaquelacriptografanoocultalaseal(deesoseencarga
la Esteganografa, que hace que el mensaje se transmita sin que
denuncie siquiera su existencia) sino el contenido que transporta la
seal.Ademsdeocultardichocontenido,lacriptografanoasegura
nadams,nisiquieraqueelmensajenoseamanipulado,slolohar
ilegibleparaaquellosusuariosnoautorizados.

ELEMENTOS

Lacriptografatrabajacon:

Mensajes en claro. Es decir, el mensaje que queremos


transmitirantesdequeseacifrado.
Algoritmo de cifrado. El conjunto de instrucciones que se
aplicarnalmensajeparamodificarlo.Losalgoritmospue
den incorporar puertas traseras (aquellos mecanismos
quenospermitirndescifrarlosinelusodeclaves).
Clave. Elemento variable que, aplicado al algoritmo, har
questevareencmomodificarelmensajeenclaropa
rasucifrado.
Mensajecifrado.Aquelloenloqueseconvierteelmensaje
en claro despus de haber sido sometido a las modifica
cionesdelalgoritmoreguladasporlaclave.

FUNCIONAMIENTO

Elalgoritmotomaelmensajeylaclave,procesndoloycifrn
doloenfuncindesta,yexpulsandoporsusalidaelmensajecifrado.
Por ejemplo, el cifrado Csar aumenta en 3 cada cdigo de cada
carcter.Esdecir,siciframosdeestaformalapalabraala,alproce
sarlaconnuestroalgoritmo(sumar3acadacarcter),tendremosen
nuestrasalidaelsiguientemensajecifrado:dod.Sinuestroalgorit
mo se hiciera pblico, todo el mundo podra descifrar nuestros
mensajes,ylaseguridaddenuestrocdigoestaraaexpensasdeque
nuestroalgoritmonuncafueradescubierto.Adems,sinuestroalgo
ritmo hiciera siempre las mismas modificaciones, al final alumbrara

61

ImplantacindeSistemasOperativos

tamao. Adems, lo normal es que para dos cadenas diferentes sea


muydifcilquelafuncinhashgenereunamismacadenadesalida.
Lacadenahashdeunficheroomensajeessuhuelladigital,es
decir, si dos mensajes generan diferentes hash, no sern el mismo
mensaje.

Ejemplo.SiJuanrecibeunmensajedePepe,cmopuedease
gurarsequenadietocelficherodurantelatransmisin?Para
asegurarlaintegridadtendrquehacerlosiguiente.Pepequie
reenviarunmensajeaJuan.Loprimeroquetienequehaceres
calcularlacadenahashdelmensajeenclaro.Luego,adjuntala
huelladigitalyelmensaje,ycifraelconjuntoconlaclavepbli
ca de Juan. Cuando Juan recibe el paquete, lo descifra con su
claveprivada,separandolahuelladigitaldelmensajeenclaro.
Paracomprobarqueelmensajenohasidomanipuladoporter
ceros, lo nico que tendr que hacer, ser calcular la cadena
hashdelmensaje enclarode Pepe y compararlaconlahuella
digitalqueadjuntPepe.Siambascadenashashsoniguales,se
habraseguradolaintegridad.

FIRMADIGITAL

An habiendo garantizado la integridad, quedar un ltimo


problema:JuanseguirsinestarsegurodequehasidoPepequienha
escritoelmensaje.Elmensajepodrahabersidointerceptado;alguien
podrahabermodificadoelmensajedePepe,habercalculadolahash
delmensajealterado,habercifradoelconjuntoconlaclavepblicade
Juanyhabrseloenviadoaste,quealrecibirlohabracomprobado
que el mensaje ha permanecido ntegro. Sin embargo, desconocera
que ha sufrido un ataque maninthemiddle, y que el mensaje de
Pepehasidosuplantado.
Slolafirmadigitalasegurarqueunmensajeesdequiendice
ser.Lafirmanoesmsqueunafuncinhashdelmensaje,perocifra
daconlaclaveprivadadelemisor.Deestemodo,cuandoelmensaje
seadescifradoconlaclaveprivadadelreceptor,lafirmasedescifrar
conlaclavepblicadelemisor.

Ejemplo.Enestecaso,partimosdenuevodenuestromensajeen
claro. Obtenemos su hash, y ciframos esahash connuestraclave
privada.Lacadenahash(cifrada),laadjuntamosalmensajeencla
ro, yel conjuntolociframos conlaclavepblicadeldestinatario.
Cuandoeldestinatariorecibeel mensaje,lodescifraconsuclave
privadayobtieneunahashcifrada(esdecir,unafirmadigital)yel
mensajeenclaro.ElmensajediceserdePepe,porloqueeldesti
natario coge la clave pblica de Pepe y la utiliza para descifrar la
hashadjunta.Siconsiguedescifrarlahash,entonceselquelahaci
fradohasidoPepe(asegurandoidentidad),ysialcalcularlahash
delmensajeenclarocoincideconlahashdescifradadePepe,en
toncestambinsehabraseguradolaintegridad.

Clave pblica. Aquella que publicaremos para que todo el


mundolautiliceparacifrarlosmensajesquevayandesti
nadosanosotros(esdecir,lonormalesqueseutilicepara
cifrar).
Clave privada. Que ser la nica clave del par que podr
descifrar los mensajes cifrados con nuestra clave pblica
(esdecir,lonormalesqueseutiliceparadescifrar).

Noobstante,aunquelolgicosercifrarconnuestraclavep
blicaydescifrarconlaprivada,podremoscifrarconlaprivada,yas,
cualquiera que tenga la pblica podr descifrar nuestro mensaje. Es
decir,podremosdescifrarocifrarconunauotra,sinqueimportesies
pblicaoprivada.
Estecifradotienelaventajadequenotendremosquegenerar
clavesdistintasparacadaunodelosreceptoresdenuestrosmensajes
(yaquesiempredescifrarconunasolaclave),ynohabrproblema
paraacordarlaclavedeformasegura,desapareciendoelproblemade
ladistribucindelasclaves(losdosproblemasdelcifradosimtrico),
pudiendoconsultar,paracifrar,undirectoriopblicodeclavespbli
cas(porejemplo,enInternet).
Sinembargo,elcifradoasimtricosermslento(entiempode
clculo)queelcifradosimtrico,ypodrromperseatravsdelafactori
zacin (es menos segura que el cifrado simtrico, que slo podremos
descifraraplicandolafuerzabruta),yaquelaclavepblicaserelresul
tadodelproductodedosnmerosprimosdegranlongitud(dondeuno
delosfactoresdeeseproductoserlaclaveprivada).Esdecir,simulti
plicolosnmerosprimos2y3(unodeellosmiclaveprivada),obtendr
mi clave pblica, 6. Si factorizo 6, obtendr pues la clave privada. Sin
embargo, la velocidad de clculo a la hora de factorizar nmeros con
muchsimosdgitosnoesdetiemporazonable(sepodratardarmsde
1000aosencompletarunaoperacinsemejante).

Ejemplo.SiPepeyJuanquierencomunicarsedeformacifrada,
Pepe utilizar la clave pblica de Juan para cifrar su mensaje.
CuandoseloenvaaJuan,comostehageneradoelpardecla
ves, posee la clave privada (nica capaz de descifrar ese
cdigo),ylautilizaparadesentramarelcontenidodelmensaje
dePepe.

INTEGRIDAD

Eslapropiedadquedenotaelcarcterinalteradodeunmensaje
durante su transmisin, se garantiza cuando puedes asegurar que el
mensajeno haya sido modificado.Los tipos de cifrado vistos antes no
solucionan el problema de la integridad, pues no la garantizan, por lo
que habr que combinar otras tcnicas, como Hashing y funciones
resumen.
Laintegridadsepodrpreservarconunafuncinhash,comoel
MD5 (messagedigest algorithm 5), que aplicada a un mensaje o
ficheropodrutilizarseparacrearsufirmadigital(omarcadeagua).
Como se vio anteriormente, una funcin hash es aquella que toma
como entrada una cadena de bytes y genera otra de mucho menor

62

ImplantacindeSistemasOperativos

CERTIFICADOS

El ltimo problema surge a la hora de asegurar que una clave


pblica sea de quien dice ser. Para ello tendr que estar certificada
por una Autoridad deCertificacin(CA),creandouncertificado digi
tal. Un certificado digital asegura la relacin entre el titular del
certificadoylaclavepblicacontenidaenl.
Uncertificadodigitalestcompuestode:

Datosdeltitular.
Clavepblicadeltitularsincifrar.
Nmerodeserie.
Fechadeexpiracindelcertificado.
Firmadigitaldelaautoridad(hashdelaclavepblicaque
acreditalaautoridad,cifradaconlaclaveprivadadelaau
toridad).

Enrealidad,cualquierapodremitiruncertificadodigital,aun
que no tendr validez a menos que haya sido autorizado por una
autoridad competente. Es decir, estas autoridades de certificacin
sernautorizadaspororganismosdemximaconfianza,generalmen
tepblicos.
Porejemplo,Verisignpuedeemitircertificadosdigitalesautori
zadosporunorganismoautorizador(queenEspaaeslaCasadela
MonedayTimbre).
UtilizamosloscertificadosconelDNIdigitalyconlasconexio
nesHTTPSparatrmitesbancarios.

Ejemplo HTTP Secure. Tambin denominado https. HTTPS


acuerda la clavesimtricaatravsdel cifrado asimtrico. Esto
lohaceporquecomoelcifradoasimtricoesmuylento,utiliza
mejoruncanaldetransmisinseguroapartirdecifradosim
trico.
HTTPS se integra en el propio navegador, quesuele traer pre
configuradolaautoridaddecertificacinenquienvaaconfiar

(VeriSign, Microsoft, etc.). Cuando te conectes a un sitio web,


ste proporcionar un certificado firmado por una autoridad
que verificar la autenticidad de su clave pblica. Una vez la
clavepblicahasidoverificadaseiniciauncifradoTLS/SSLpara
ocultareltrficohaciaelsitioweb.

SecureSocketsLayer(SSL).

Estndarabiertopropuestoparaestableceruncanaldecomu
nicacionesseguroqueimpidalainterceptacindeinformacin
crtica,comoelnmerodelastarjetasdecrdito.Principalmen
te,permitelastransaccionesfinancieraselectrnicassegurasen
elWorldWideWeb,aunqueestdiseadoparafuncionartam
binenotrosserviciosInternet.

TransportLayerSecurity(TLS).

Protocolo estndar utilizado para asegurar las comunicaciones


Web en Internet o intranets. Permite a los clientes autenticar
servidores o, de forma opcional, a los servidores autenticar
clientes. Tambin proporciona un canal seguro medianteelci
frado de las comunicaciones. TLS es la versin ms reciente y
seguradelprotocoloSSL.

PREGUNTAS.

1.
2.
3.
4.
5.

63

Queslacriptografa?
Qutipodecifradoshayencriptografa?
Describeloselementosyelprocesodedescifradoconcada
unodeestostipos.
Ventajasydesventajasdeestostipos.
Describir elprocesoporelque podremos asegurar la inte
gridaddelmensajeylaidentidaddelemisor.

You might also like