ImplantacindeSistemasOperativos
MarioDonaireMendoza20112012
EstosapunteshansidocreadosenbasealmaterialelaboradoporSergiodeMingoparaelprimercursodelciclodegradosuperiorAdministracindeSistemasInformticosyRedes(ao20112012),licenciadosbajoCreativeCommonsAttributionShareAlike3.0Unported(CCBYSA3.0).
3
TemaUno
IntroduccinalosComputadoresDEFINICIONESComputador:Cualquiercosaquetengaunprocesadorqueseacapazdeejecutarunprograma.Formadoporcomponenteslgicos(software)ycomponentesfsicos(hardware).SistemaOperativo:Primeryltimoprogramaqueleeelcomputador.Eselprogramabasedelcomputador.Firmware:Sistemaoperativodeloscomputadorespequeos.Programa:Sonunconjuntode instruccionesydatosqueson ledas,interpretadasyejecutadasporelcomputador.
ANTECEDENTES
Tras la segunda guerramundial (1939 1945)AlanTouring y
VonNeumanndesarrollanunmodelotericoparacrearunamquinaprogramable de propsito general. sta sera la primera mquinacreadasinunafinalidadespecfica,capazdevariarensufuncionalidadsegn el programa que se le implantara, es decir, un computador,limitado nicamente por aquello que el programador sea capaz deordenarle.MODELOVONNEUMANN
Estemodeloesconceptualyaunquefuedesarrolladoamediadosdelsiglopasado,adadehoytodosloscomputadoreslosiguen.Componentes:
UnidadCentraldeProceso(CPU). Memoria Principal. Encargada de almacenar el programa
delprogramador. UnidaddeEntrada/Salida.Sirvedebarrera lgicaentreel
procesadorylosperifricos. Buses.Sonloscables,losmediosdecomunicacinentrelos
elementosdelcomputador. Perifricos.Cualquierdispositivoaadidoalamquinapara
permitirlainteraccindelcomputadorconelmedio.UNIDADCENTRALDEPROCESO(CPU)
Encargada de la lectura, la comprensin e interpretacin del
programaydesuejecucin.Estconstituidapor:
UnidadCentral(UC).Eslaencargadadeinterpretarlasinstrucciones y convertirlas en seales elctricas paraejecutarlas.
UnidadAritmticoLgica(ALU).Seencargade losclculosaritmticosylgicos(y,o,s,no;unin, interseccinycomplemento).
Registros.Son losquevanaalmacenar losdatose instruccionesutilizadosporlaCPU.
MEMORIA
Lamemoria est dividida en direcciones que podrn albergar
nicamenteuna instruccinoundato(funcionesyvariables).Enellase alojarn los programas, donde estarn contenidas, a su vez, lasinstruccionesquetendrquellevaracaboelcomputador.
Poseedosregistrosimportantes: RegistrodeDirecciones,dondeescribimos ladireccinde
memoriaconlaquequeremostrabajar,bienseaunaoperacindeescrituraodelectura.Esteregistrodependedelbusdedirecciones,por loquesutamaoser igualaltamaodedichobus.
RegistrodeDatos,enelcasodeserunaoperacindelectura aparecer el dato o la instruccin almacenada en ladireccinqueseindicaenelregistrodeladireccin.Enelcasode ser unaoperacin deescritura, se actualizar elvalorde ladireccinquese indicaenelregistrodedireccin con el valor del registro de datos. El tamao delregistro de datos es igual al tamao de cada ranura dememoria.
Segnnecesiteleeroescribir,habruninterruptorquecambia
rambosmodos.Dicha lneaelctrica tambinestar incluidaen lamemoria.
ModosdeDireccionamiento.
Losdatospodrnserincluidosdediferentesmanerasenlasinstrucciones.Segnsereferenciendeunauotraforma,tendremosunouotromododedireccionamiento.
ImplantacindeSistemasOperativos
4
INMEDIATO:Eldatoseincluyeenlainstruccin,comoconsecuencia se leer ms rpidamente, pero el ancho dememoriaestardivididoentrelainstruccinyeldato.
DIRECTO:Lainstruccinnoincluyeeldato,sinoqueloreferenciaaotradireccindememoria.Astodoelanchodememoriaestardedicadoparaesedato,aunqueal tenerqueiraladireccindeldato,suprocesadosermslento.
INDIRECTO: La instruccin nos manda a una direccin dememoria donde a su vez existe un nuevo redireccionamiento hacia el dato. Esto tiene como ventaja podercambiarlosdatossintenerquetocarelcdigo.
CiclodeInstruccin(CPUMemoria)
EselmecanismoquesiguelaCPUalleeryejecutarunainstruc
cindelamemoria.Estecicloeslamaneraquetienendeinteractuarestosdoscomponentes.
1. LaCPUleeelregistrocontador(esunregistrodelaCPU).La
direccinqueallencuentralaescribeenelregistrodedireccionesdelamemoria(esunregistrodelamemoria).
2. Lamemoriaescribeel contenidodedichadireccinen suregistrodedatos.
3. Lamemorialedaelcontenidodelregistrodedatosatravsdelbusdesistema.
4. Lainstruccinseescribeenelregistrodeinstruccin(esunregistrodelaCPU)durantesuprocesamiento.
5. Enestepunto laCPUpidea lamemoria losdatosdireccionadosdirectaeindirectamente,siloshubiera.Enesecasoserepitenlospasosanteriores.
6. LaUCdecodificalainstruccin,ylaALUlaejecuta.7. LaALUincrementaelregistrocontador(enn+1)yvuelve
acomenzarelciclo.
Hayquetenerencuentaqueeltamaodememoriatienequeserigualomenorqueeltamaodelregistro.Esdecir,sienmemoriacaben2bytes,elregistrodedatostendrqueserde2bytes.
Cuandoelregistrode instruccin llegaa lainstruccindesalto, stamodifica el registro contador y se va a esa instruccin detrabajo.UNIDADDEENTRADA/SALIDA
En los computadores actuales no hay un equivalente directo.Sirvendebarreralgicaentreelprocesadorylosperifricos.Evitaqueelprocesador se conecte condiferentesperifricos y tengaque sercompatiblecon todosellos,demaneraquepuedaabstraerse.Esunintermediario.
BUSESSonlneaselctricasdecomunicacin.Susparmetrosdemedi
cinson: Anchodebus:totaldelneasenparalelodeunbus.Porca
da lnea circular una seal elctrica. Cada lnea enparalelotransmiteunbit.Cada lneadebusemiteun impulsoquesetraduceen0y1(binario).
Frecuenciadelbus:eselnmerodepulsosporunidaddetiempo(Hz).
PERIFRICOS
Todo loquenoes laCPUy lamemoria.Permitena laCPUcomunicarse con el exterior. Los hay de entrada, de salida y deentrada/salida.Suscaractersticasson:
Fiabilidad.Es laprobabilidaddequeelperifricoestope
rativo. Mododeacceso(secuencial,directo).Eslaformaenlaque
hemosdeaccederaldispositivo. Velocidadde transferencia.Lavelocidadcon laqueeldis
positivopuedesuministrarnosdatosoprocesar losdatosenviadosal.
Buffering.Losperifricosalmacenandatos.Unbufferesunalmacnintermediodedatosutilizadoparasincronizarcosasquetrabajanadiferentesvelocidades.
ELCOMPUTADORMODERNO
EstbasadoenelmodelodevonNeumann.Enellos, loscomponentes electrnicos estn grabados en placas o circuitos. Existennumerosasarquitecturasquellevanesemodeloalaprctica.
ELORDENADORPERSONAL
En1970naceelordenadorpersonal.Se tratadeofrecerestas
mquinasenunentornodomstico, ideaque fue llevadaacaboporMacintosh. IBM,quenoapostporel comerciode losordenadoresentreusuariosde lacalle, lleg tardealmercadoyporesonopudodesarrollarsupropia tecnologa,creandounequipoclnico formadoporpiezasde losdems fabricantesyque funcionaraenentornodeMSDOS.Enellos introdujoelchipBIOS,querpidamentefuedesencriptado y permiti la difusin de los ordenadores personales.Actualmenteeslaarquitecturaqueseguimosusando.
ElPCestconstituidoporunafuentedealimentacin,unaplaca base (donde estn integrados el chip de memoria BIOS, elprocesadory losbuses, lamemoriaprincipaly lospuertosdeexpansininternosyexternos),unidadesdealmacenamientoyperifricos.
ImplantacindeSistemasOperativos
5
REPRESENTACINDELAINFORMACIN
LAINFORMACINEslamateriaprimadelainformtica.ElPCtransformalainfor
macin, traduciendoel cifradobinario (dos valoresdevoltaje)enelqueseencuentranlosdatosylasinstrucciones.
LOSCDIGOSEs una tabla que relaciona dos alfabetos, de forma que me
permitircodificarunlenguajeenotrodistinto.Losordenadorestrabajancondostiposdevoltajedebidoasus
restriccionestcnicasyelctricas;esdecir,cdigosbinarios.Todoslossoftware (datose instrucciones)estncodificadosencdigosdedossmbolos(0y1)combinadosdediferentesformas.
Cdigosnumricos:Codificanvaloresnumricos(binario). Cdigos alfanumricos: Codifican valores numricos y no
numricos(ASCII7). Otroscdigosnobinarios:Para simplificarnotacin (hexa
decimal).
CdigosNumricos CdigoBinario.Representadostiposdevoltaje,yserepresentacondossmbo
los (0y1).Estosdossmbolosson launidadmnimade informacin,denominadoBIT.8bitsformanunbyte.
1Kbyte=210bytes=1024bytes1Mb=1024Kb1Gb=1024Mb1Tb=1024GbElcdigobinarioesponderado,esdecir,laposicinqueocupen
losnmerostendrunsignificado.Dichosignificadovendrdeterminadopor:
X*2i
DondeXeselvalordelbit(10)eilaposicinqueocupa(dederechaaizquierda).
1001=9(1*23+0*22+0*21+1*20)ParasabercuntosbitssernnecesariosparacodificarXvalo
res, habr que calcular: N bits = log2X = ld X. Es decir, si quierotransmitirlosprimeros4valoresnumricos,necesitar:
Nbits= log24=2bits;esdecir,elnmeroalquetendrqueelevar2paraobtener4.Delamismaforma,paracodificar8valores,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 CdigoHexadecimalSesueleutilizarparasimplificarlanotacin.Cadadgitoequiva
le a 4 bits, por lo que 4bits se podrn simplificar con un dgitohexadecimal.
Losdgitoshexadecimalesvandel0al9yluegodelaAalaF.Secalculanigualquelosbinariosperoalserunsistemaenbase16,ser:
X*16i
AdemshayquetenerencuentaquelaA=10,laB=11laF=15.
CdigosAlfanumricos CdigoASCII7.Utiliza7bitsparacodificarcadadgitoyslocodifica128 (27)
caracteres. CdigoISO88591.AmplaalcdigoASCII.Aadeunbitms,por loquesern28
caracteres(256).ConocidocomoLatn1. CdigoUnicode.Recogetodos losalfabetosdelmundo.Tienediferentes imple
mentaciones,de lasque laUTF8utilizahasta4bytesporcarcter;utilizando232caracteres.
ELSOFTWARE
LENGUAJESDEPROGRAMACIN
Poseenunasintaxismuyestrictadestinadaasertraducidalite
ralmente al lenguaje mquina. Esta traduccin se denominaCOMPILACIN.
ImplantacindeSistemasOperativos
6
COMPILACINComosehadichoantes,es la traduccindel lenguajedepro
gramacin al lenguaje mquina. Esta traduccin la lleva a cabo elcompilador,traduciendocadapalabraalcdigomquina.Apartirdelcdigofuentegeneraotroarchivollamadocdigoobjetooejecutable.
COMPILADORESEINTRPRETES
Unintrpreteesunprogramaquetrasejecutarseleeelcdigo
fuente.No lotraduceal lenguajemquina,sinoque lo leey lo interpreta y hace lo que determine la instruccin fuente. Este cdigointermediocompilaelcdigofuente,demaneraqueconsigueportabilidadporquecualquierlenguajepodrserinterpretadoporelcdigointermedio.
SedenominaSCRIPTalcdigofuenteenlenguajeinterpretado.
DISTRIBUCINDELSOFTWAREDebedistribuirseconelcdigoobjeto(esdecir,elcdigocom
pilado), y no tiene por qu distribuirse con el cdigo fuente. Haymuchascuestionessobresielcdigofuentedeberaonoestarsiempreabierto.
Cuandoadquieresunsoftware,loadquieresconunalicencia,esdecir, con la cesin de ciertos permisos.Dicha licencia te dice quderechostehacedidoelprogramador.Esuncontratodecesin.Haydiferentestiposdelicencias:
Cerradas y restrictivas: Slopuedesutilizarel softwareen
lostrminosde la licencia.Esmuy limitada.Nuncatedejanverelcdigofuente(Windows,Oracle).
Abiertasy restrictivas:Tienenquehacerpblicosucdigofuentesilodistribuyen.Puedescambiarsucdigofuente,perosilocomercializasodistribuyestienesquecompartirlosderechosyhacerlopblico.EselcasodeLnux(GPL).
Abiertasysinlmites:Elcdigofuenteestabiertoynotienesquecompartirderechossilocambias(MIT).
PREGUNTAS.
1. Definequesunprograma.2. Quhaceespecialalcomputadorconrespectoalrestode
mquinas?3. Describe y enumera los componentes delmodelo deVon
Neumann.4. Describe laestructuray funcionamientode lamemoriaen
elmodelodeVonNeumann.5. Describebrevementelosmodosdedireccionamientovistos.
Definequsonyponunejemplodecadaunodeellos.6. Describeelciclode instruccinenelmodelodeVonNeu
mann.7. Queselregistrocontador?Culessuimportanciaenel
procesadodelainstruccin?Qurelacintieneconlainstruccindesalto?
8. Pasardebinarioadecimal:10,101,1101,1011.9. PasardeHexadecimaladecimal:22,71.10. Siunprogramaha sido compilado sobreunaarquitectura
x86,podraejecutaruntelfonomvil?11. Queselprocesodecompilacin?Defineelprocesodein
terpretacinyladiferenciaentreambos.
7
TemaDos
ElSistemaOperativoINTRODUCCIN
Elsistemaoperativo,talycomoseindiceneltemauno,eselprimerprogramayelltimoenejecutarse.Unavezhaarrancadoelsistema,elsistemaoperativosloseejecutarcuandoalgncomponente fsico o lgico lo requiera. En este captulo se vern lasrelacionesquetieneconelhardwareyelsoftware.
INTERFAZ
Definido ampliamente comounelementoque funciona comointermediarioenunacomunicacinentredosactores.Esdecir,podraseruna interfazun cableUSB,unmen,el sistemaoperativounapuertaseraunainterfazentredosestancias.
Laventajadeutilizaruna interfazesquesi laconocespuedesignorarloquehaydetrsdeella,pudiendofacilitarelusodeprocesoscomplejos.
Por ello las interfaces aportan transparencia y portabilidad.Transparenciaporqueloscambiosquehacemosenlosdosladossloimplicanuncambioen la interfaz,por lodemsson invisibles;yportabilidadporquealserunintermediariopodemoscambiarunadelasdospartessinqueafectealresto.Estascaractersticasharnposiblequeamboselementos,en comunina travsde la interfaz,puedanabstraerseelunodelotro.
Elsistemaoperativoeslainterfazentrelossoportesfsicosylgicos.Todos lossoportes fsicossernmanipuladospor los lgicosatravsdelsistemaoperativo.Deestaforma,sicambioelmonitor,elWordnotendrquecambiar(sepodrabstraer),porqueelWordpidealsistemaoperativoquedibujecosasenlapantalla.
CLASIFICACINDELOSSISTEMASOPERATIVOS
Sepuedenclasificarenfuncinde: Nmerodeusuarios:SernMONOUSUARIOSaquellosque
no distinguen entre diferentes perfiles de usuarios (MSDOS,Android).SernMULTIUSUARIOSaquellosqueshacenestadistincin(Windows,UNIX).
Nmero deprocesos: SernMONOPROCESO losque slopuedanejecutarunprocesoa lavez (MSDOS).Se llamarn MULTIPROCESO los que sean capaces de realizarmultigestin.
Nmerodeprocesadores: LoshabrMONOPROCESADOR,si soportan un nico procesadorque ejecute losprogramas, y MULTIPROCESADOR, si soporta la ejecucinsimultneadeprogramasenvariosprocesadoresalavez.
Tiempoderespuesta:Eltiempoderespuestaesloquetardaunprocesoenhacerloqueselehapedido.Enfuncindeesto,podremosdiferenciarentreTIEMPOCOMPARTIDO y TIEMPO REAL. Por tiempo compartido se entiendequeelprocesadorcomparteeltiempodelaCPUdeformaquepuedesimularsimultaneidad.Deestaforma,elprocesadorcomputamsdeunprocesoenunmismointervalodetiempo,por loqueeltiempoderespuestaservariable. Por tiempo real se entiende que el procesador sededicaaunsoloprocesoenunintervalodetiempodado,deesta formaevita simultanearvariosprocesos ypuedegarantizareltiempoderespuesta,quetendrunvalorfijo.El tiempo real implicaque losprogramasnoefectenentrada/salida(leer/escribireneldiscoduro,yaqueesunprocesomuylento),niqueseaninteractivos,yaquesillevaran a cabo alguna de estas acciones no podrangarantizareltiempoderespuesta.
COMPONENTESDELSISTEMAOPERATIVO
Los cuatro componentes que se citan a continuacin son los
cuatropilaresdelsistemaoperativoytodosellossealojanygestionanenelreadeKERNELdelsistema.
ElKERNELeselncleodelsistema.Noesunaaplicacinms,loqueseejecutaenKERNELesespecial.Aunqueesunprograma,seubicaenun lugarparticularde lamemoriadenominadoESPACIODEKERNEL(msalldelespaciodeKernelestelespaciousuario).Enesazona,lasinstruccionesmaquinahacencosasqueloscdigosdeotraszonasnopuedenhacer;puedenmanipularelRegistroContadoryelregistrodelaCPU.
Debido a estas peculiaridades, los errores cometidos en estazonasuelentenerpeoresconsecuencias(siendolapeorconsecuenciauncuelguedelsistema)que losquesucedenenespaciousuario.Poreste motivo se hicieron micro Kernel que limitaran el nmero deoperaciones a realizardentro deesta rea y as se pudieran limitartambinelnmerodeerroresgravesdelsistema.
ImplantacindeSistemasOperativos
8
GestordeProcesos. GestordeMemoria.Gestionarlamemoriavoltil. SistemadeFicheros.Gestionaryclasificar toda la infor
macinalmacenadaenlamemorianovoltil. GestordeEntrada/Salida.Gestionar losdriversdel siste
ma;losperifricos.
GESTORDEPROCESOSElgestordeprocesosseencargardelosprogramasquesees
tn ejecutando. Antes de ser ejecutado, cuando se requiere laactuacindeunprograma,elsistemaoperativocreauna imagendedicho programa en memoria. En ese momento, cuando el cdigoobjetodeunprogramaescopiadoenmemoriayestpreparadoparaser ejecutado, pasa a denominarse PROCESO. Adems, el sistemaoperativo creaunaestructurapara almacenar informacin sobrel;dichaestructurarecibeelnombredebloquedecontrol.
BloquedeControl:Esunafichaquealmacenatodalainformacin de cada proceso, creada cuando el proceso aparece enmemoriaysealmacenaenelespaciodekernel.Esta informacin, llamada tambinmetadatosdelproceso, incluye:PIDdelproceso(nmeroenteroasignadoalprocesoyqueelkernelutilizapara identificarlodemaneraunvoca),estado, localizacinen lamemoria,recursosusados,propietarioo lanzador,prioridad.Cadaunodelosprogramasejecutados(procesos)tienesuima
genysubloquedecontrol,estandodestinadoslosbloquesalespaciodekernelylasimgenesalrestodelamemoria.
EstadosdelosProcesos.
Elestadodescribecmoseestnejecutandolosprocesosenun
momento dado. Cada sistema utiliza sus propios estados para susprocesos,ynosotrosutilizaremostresdeellosparanuestromodelo:
Parado:Enesteestadoelprocesonoseestejecutando.El
proceso est interrumpido, quedando ignorado. Su interrupcin no depende de ninguna condicin por lo quepodrvolveraserejecutado.
Bloqueado:Comoantes,enesteestadoelprocesotampoco se est ejecutando. El proceso est bloqueado hastaquesecumplalacondicindelbloqueo,porloquenopodr volver a ejecutarse hasta que se cumpla dichacondicin (queademsesajenaalsistema).Porejemplo,elprogramadorintroducecuandopulseunateclapasaladiapositiva,hastaquenosepulseesatecla(lacondicindelbloqueo)nosecumplirdichacondicin.SiunprocesoAestutilizandounrecursoR,yunsegundoprocesoBrequieredeesemismorecurso,elsistemabloquearaBhastaqueAliberedichorecurso.
BloqueoMutuo: Llamado deadlock.Seproducecuandodosprocesosestnutilizandodosrecursos,ycadaunodelos procesos requiere del recurso del otro. Es decir, losprocesosAyBestnutilizando losrecursosR1yR2,respectivamente,yambosprocesosquedanbloqueados,elAporelrecursoR2yelBporelR1.Enestoscasos,ambosprocesosquedarnbloqueadosindefinidamente.Paraevitar esto se recurre a la expropiacin o a la deteccinpreventiva.
Ejecutando:Elproceso seestejecutadoypor tantoestsiendoledo.
Transiciones. ParadoaEjecutando:Elprocesocomienzaaejecutarpor
queelsistemaoperativoleotorgaelusodelaCPU. EjecutandoaBloqueado:Elprocesosufreunbloqueo.No
podrseguirejecutndosehastaqueseproduzcalacondicindelbloqueo.
BloqueadoaParado:Sehaproducido lacondicindelbloqueo, por lo que el proceso se interrumpe hasta que elsistemaoperativolocreaconveniente.
Ejecutando a Parado: El sistema operativo estima que elprocesohausado laCPUeltiemposuficienteyexpulsaalproceso.
Interrupciones.
Las interrupcionessoftware,o llamadasalsistema,sirvenpara
que losprocesos invoquenalsistemaoperativo.Conellas, losprocesospueden interactuarconelsistema,pidindoleservicios (ficheros,memoria,etc.).
Elprocesoescomosigue:seactivalalneadeinterrupcinylaCPU saltaa la lneadondeestn las rutinasde interrupcin, laCPUtienequesaberdndeestnparaquesepadondesaltar(losabrporlamemoriaROM o por lo que sea); en esemomento se ejecuta elsistemaoperativo.
Se entiendepor LLAMADAAL SISTEMA una interrupcin software;elproceso invocaalsistemaoperativousandouna instruccindesalto.PlanificacindelosProcesos.
Laplanificacinesnecesariaparagestionareltiempoqueem
plealaCPUentrelosdiferentesprocesosactivos.DeelloseencargarelplanificadoroSCHEDULER,utilizandolassiguientesestructuras:
Tabladeprocesos.Eselreadondeseguardanlosbloques
decontrol.enelreadekernel. Coladeprocesos.Guardaelordendelosprocesosquevan
a disfrutar de la CPU.Guarda el PID (process ID) de los
ImplantacindeSistemasOperativos
9
procesos que van a ejecutarse. Se guarda en el rea dekernel. Sobre esta estructura se aplican las polticas deplanificacin.
Bloquedecontrol.Estructuraquealmacenalainformacindelproceso.Seguardaenelreadekernel.ElAdministradordetareasdeWindowsconsiguelainformacinqueaportaconunallamadaalsistema.
Losplanificadoressoncdigossencillos.Son lapartedelsiste
maoperativoqueadministralosprocesosydistribuyeeltiempoparatodosellosenbaseaunaspolticasque tengaasignadas.Podramostocarelkerneldelsistemaypedirqueelplanificadornopermitamsinterrupciones.Sininterrupcioneselsistemasecongela,nofuncionarnada.
Existendiferentespolticasdeplanificacin,yaqusenombrantresdeellas,perosu importancianoradicaensusnombres,sinoencmoejecutancadaunadesuspreferencias.
RoundRobin:Esunapolticaexpulsiva(laCPUexpulsara
losprocesos).Puedeponerlosprocesosenaltaprioridad;hastaqueno terminen losdeprioridad altanopasaraotros.Eltimndeunavin,porejemplo,serasiempredealtaprioridad.
SJN (Short JobNext): Poltica no expulsiva. El proceso seejecutarylaCPUnopodrexpulsarlo.Cuandoelprocesollama al sistema (no todas las llamadas crean bloqueos,comoescribirenunbuffer,pedirespaciodememoria)sebloquear, pero slo una vez haya terminado. El propiosistemaharuna llamadaalsistemapara informaralsistemaoperativodequeyahaacabado.Elsiguienteprocesoserelmscortodelosprocesos.
FIFO:Losprocesosseejecutanporcompleto,unodetrsdeotro.Esunapolticanoexpulsiva.
EJEMPLO.TenemosunprocesoAejecutndoseyamitaddesuquantumhaceunallamadaalsistemaparaescribirunbyte.Estoimplicasaltaralespaciodekernel.Dentrodelkernelescribeelbyteenelbusparamandarloaldisco.Unavezescritoenelbuseldiscodurotardamuchoendarelbyte.MientraseldiscodevuelveeldatoaprovechamosydejamosalprocesoAenestadobloqueadoporeldiscoduro(lacondicindebloqueoser,hastaqueeldisconoresponda).EnesemomentoejecutamoslosprocesosByC(ejecutantodosuquantum)mltiplesveces(demaneraconsecutiva,primeroByluegoC)hastaqueeldiscoresponde.EntonceseldiscomandaunainterrupcincuandoseestabaejecutandoelprocesoC.El sistemaoperativoponeenestadoparadoaCyA(acudealatabladeprocesosyponeparadosalosprocesos).PodraseguirconA,B,oC,enfuncindelapolticadeplanificacin.SiByCnohacen llamadasalsistema,elsistemaoperativonoserejecutado;sisonprocesosquenotienenentrada/salidanorequerirnalsistemaoperativo.
Losquantumlosasignaelsistemaoperativo,perosiseejecutaelByterminasuquantumquinasignaelsiguientequantumaC?Esolohaceelrelojdelsistemaqueestdentrodelprocesador.Cuandoempiezaunquantumelsistemaoperativoreseteael reloj,ycuandoel reloj llegaaceromandauna interrupcindereloj.Entonceselsistemaoperativoasignaelsiguientequantum, elige el proceso, resetea el reloj y se marcha. Esto sedenominaCAMBIODECONTEXTO,esdecir,cuandoelsistemaoperativodejadeejecutarunprocesoyseponeaejecutarelsiguiente.Lainterrupcinderelojvaporunalneadeinterrupcindistinta(esunhardwaredistinto);cadahardwaretieneunalneadeinterrupcindistinta.
Cambiodecontexto.Loscambiosdecontextosiemprellevanuntiempo,nosongra
tuitos. En ese tiempo es el sistema operativo el que se estejecutando,estiempoperdido.LaplanificacinRoundRobineslamscompletaysigueestospasos:
1. Seactivalainterrupcindelreloj(relojeselhardwareque
marcaeltiempodelquantum).2. LaCPUpasade ignoraralprocesoyseejecutaelsistema
operativo.Elsistemaoperativo(elplanificador)expulsaalproceso.
3. Elsistemaoperativoalmacenaelestadodel registrocontador (es como el marca pginas de un proceso) en subloquedecontrol.As,cuandovuelvaaejecutareseprocesosabrpordondeva.
4. Secalculaelsiguienteprocesoquedebeentrarenbasealapolticaquesea.
5. Elsistemaoperativoreseteaelrelojyseautoexcluye.6. Vamosalbloquedecontroldondeestguardadoelnme
rodedireccinylometemosenelregistrocontador.7. LaCPUejecutaelprogramapordondeiba.
Hoydaseintentantenerdiferentesflujosdeprocesosparaevi
tar los tiemposmuertosdel cambiodecontexto.Deesta forma, losprogramasejecutarnunsoloprocesoydentrodeeseprocesoincluirn una pequea librera que generar esos pequeos procesos(llamadoshilos)paraevitarcambiosdecontextoyasahorrartiempo.SincronizacindeProcesos.
Existenmecanismosexternosparaprovocarquedosprocesos
concurrentesseejecutensiempredelamismamanera,denominadosIPC (Inter Process Comunication). Por lo general suelen provocarbloqueosartificiales.Sonmuyusadosporlosprogramadores.
Elplanificadorplanifica,perolosprocesospuedensincronizarseejecutandobloqueos.PuedehacerqueBnopuedaempezarhastaqueAnohayaterminado,deesaformasebloqueaaBconunatubera(un
ImplantacindeSistemasOperativos
10
bufferdememoria).Se tratade forzarelordendeejecucinde losprocesosmediantelasincronizacin,provocandobloqueos
GESTORDEMEMORIA
Lamemoriaesalgobsico.Aloja todoel software, incluidoel
sistema operativo. Normalmente slo aloja el software activo (losprocesos).Losprogramas(softwarenoactivo)sealojanenmemoriassecundariasdealmacenamientopermanente.
Lamemoriaesunrecursocaroquesehadegestionarconcuidadoparanodesaprovecharlo.
JerarquadeMemoria.
Elmapadememoriaseconstruyesobrediferentesdispositivos.
Podemos tener unas direcciones destinadas a la memoria voltil yrpida, y otras a lamemoria no voltil y lenta. El programador delsistemaoperativoconoceestaarquitectura.
Segn su tamao y su velocidad de acceso se utilizarn paraunas funciones u otras. De ms precio y menor tamao a menosprecioymscapacidad.
Registros (de laCPUymemoria).Elregistrocontadorsera
ladireccincerodelmapadememoria. Cache (L1yL2),cercadelprocesador.Seutilizaparaguar
dar las ltimas instrucciones que has utilizado de lamemoriaRAM.Haypolticasde cache,podra guardar loltimoolomsutilizado,enfuncindelasmismas.Segndichas polticas, su rendimiento puede variar. Tiene dosniveles,elL1esmsrpidoqueelL2.
MemoriaRAM(voltil,derpidoacceso) Discoduro.
MapadeMemoria.Porcadaprocesoseguardaunaimagenyunregistrodelproce
soenelbloquedecontrol.Estaimagencontiene: Losdatosdelprograma. Lasinstrucciones. Lapilayotroselementos.Elmapa dememoria est distribuido en muchos dispositivos
(registro, disco duro).Hay una zona para los procesos de usuario(espaciodeprocesos)yelrestoestreservadoparalasdireccionesdeentrada/salida,elsistemaoperativoylosvectoresdeinterrupcin.
AsignacindeMemoria.
Es laaccindeasignarespacioacada imagendecadaprocesoentrante.Enunsistemamultiprocesosehabrndegarantizar3cosas:
Proteccin:Losprocesostendrnunmapadememoriaprivadoparaquelosdemsprocesosnotoquensuespacio.
Movilidad:Hayquepermitirquesepuedancargarprocesosendiferentes zonasdememoria,paraello seutilizan lasdireccionesvirtuales.
Sobreasignacindezonasexternas(sifueranecesario):Eslacapacidaddedarleaunprocesomsespaciodelquedisponemos.AestoselellamaMEMORIAVIRTUAL.Esdecir, si tenemos un proceso que ocupa 100 direcciones yslotenemos80libres,tendremosquemeterloporpartesendiferentesmomentos.
Seproducecargabajodemanda.Sevancargandolascosassegnsevannecesitando.Sielgestordememoriaesmalo,dejarcosasdeuso inmediatoeneldiscoduro,por loqueelsistemaseralentizarysuproducirtrashing.Sise le deja descansar, el sistema operativo bloquear losprocesosycesarsuejecucin,dejandoderequerirsemsfragmentosaldisco.
Ejemplo.Seaunprogramacon3direcciones(#1,#2,#3),enlasquetenemos[SUMA#2,#3],[7]y[8],respectivamente.Cuandocargamosesteprogramaen lamemoriaelprocesosercargadoencualquierranuradememoria.Paraellonotendremosquecargarelprocesoen lasranuras#1,#2,#3denuestramemoriaparaque sepuedaejecutar la SUMAdel programa, sino que la cargaremos en cualquier direccin,porejemplo, la#51,#52,#53.Paraqueelprogramanoacudaaladireccin#2,#3denuestramemoriaparahacer la suma, se crea un mapa de memoria privado y elsistemaoperativo tendrqueasignar lasequivalencias,esdecir,elsistemaoperativoseencargardedecirque ladireccin del mapa privado del proceso #2 es igual a ladireccin#52realde lamemoria.Deestamanera losprogramas tendrnmovilidad,ypodrn ser cargados siempreenelmismositio.Conestesistemalaproteccinvienedelamano.
MemoriaVirtual.
Es un dispositivo hardware llamado MMU (memory manage
ment unit); es una memoria ms. Aqu se guardan los mapas dedireccinunavezelsistemaoperativohahecho lasequivalenciasdelasdireccionesfsicasyvirtuales.
Cuandoelsistemaoperativoasignaunmapaalproceso,entonces mete la equivalencia a la MMU, donde acceder la CPU (a lasdireccionesfsicas).
Paginacin.
Lapaginacinesunatcnicanecesariaparaconseguir lasobreasignacin, y adems conseguiremos movilidad y proteccin. Losprocesoscargadosenmemoriasedividenenpginas (fragmentos)
ImplantacindeSistemasOperativos
11
de igual tamao. Todos los procesos se van a dividir en el mismotamaodepgina,ynotieneporqusermltiploexacto.Adems,lamemoriasedividirenzonasllamadasmarcosdepgina,delmismotamaoquelaspginasdelosprocesos,deformaquetodaslaspginas de todos los procesos encajarn en cualquier marco de lamemoria.Laspginasseirnalojandobajodemanda.
Ejemplo.Siunprocesotiene52ranurasytenemos10ranurasporpgina,tendremos6pginas(lasextatendr2ranuras).Si a eseproceso le asignamos 3marcos estando cargadas laspginas1,2y4,yunainstruccindelprocesopidelapgina5,elsistemaoperativotendrqueirporellaaldiscoduroyquitarunadelaspginascargadasparameterestanueva.ParasabersiundatoestenunapginarecurrimosalaMMU,
que va a guardar la tabla de paginacin de cada proceso (como sifueraunbloquedecontrol).
Ejemplo.ElprocesoAestdivididoenpginasde10direcciones.CuandodichoprocesopideunaSUMA[#35,7],habrquesaberdndeestladireccinvirtual#35.Comohemosdivididocadapginaen10direcciones,sabemosquela#35estarenlapgina4.Resultaque lapgina4estcargadaenmemoria,enelmarco1.LaMMUtendrentonceslaequivalenciadelamemoria virtual #35 con lamemoria fsica #5. Entonces, la CPUdaralaALU,SUMA[#5,7].Sisehubierapedidounapginaquenohubieraestadocargadaenmemoria, laMMUdaraunmensajedeerrory lanzaraunainterrupcin,consiguiendoqueelsistemaoperativobloquearaelprocesoyquepidieraaldiscoduroquebusqueesapgina.EstoesunERRORDEPAGINACIN.Loquesehaceesdaratodos losprocesosunmnimodemar
cosdememoriaparaacelerarlosprocesos.Podradarseelcasodequetodoslosmarcosestuvieranocupa
dosytuviramosquecargarunapginamsesteeselproblemadelREEMPLAZAMIENTO.
Segnelsistemaoperativosegestionarndeunaformauotralaspginasquenocabenenlamemoriavoltil.Porejemplo,Windowsutiliza un fichero para colocar las pginas que no caben y las tratacomo si fueranun ficheroms,mientrasqueLinuxutilizaunaparticin(vermsadelante,ensistemadeficheros)metiendo laspginasendiscoperocon lasmismasreglasde lamemoriavoltil(salvoqueesmslento).
Segmentacin.
Esotratcnicanecesariaparaconseguirsobreasignacin.Con
estatcnica,cadaprocesosedivideensegmentosdetamaovariableyquesuelensertemticos.Losprocesosagruparnsuinformacinensegmentos,en funcindesunaturaleza.EsteprocesoNOESTRANS
PARENTE para el programador (lo decide el programador), ser elcompiladorelquehacelossegmentos.
Lostipossontres: DeCdigo:Serecogentodaslasinstrucciones. DeDato:Serecogentodoslosdatos. DePila:
EnlaMMUseguardalatabladesegmentos.Seguardasuinicio
ysufin(sulongitud).Estopermitequevariosprocesosabiertoscompartanlosmismossegmentos.Esdecir,siabrimosdosFirefox,podrncompartirsegmentos.
Todaesta informacindesapareceunavezelprocesodejadeestarcargadoenmemoria.Fragmentacin.
Losprocesosvanadejarhuecosalserdescargadosdelamemoria. El sistemaoperativo serelencargadode volver a asignar esoshuecos.Sinotienehuecos,ircargandotrozosdeprocesos,utilizandomemoriavirtual,deformaqueelordenadorseralentizar.Porello,amsRAM,msvelocidad.
Lafragmentacinconsisteenundesperdiciodelamemoria,pordejarhuecosdesaprovechados.Escomocuandoenunaparcamientoen lnea seproducenhuecospor salidas yaparcamientosde los coches. La segmentacin tiene fragmentacin EXTERNA porque lossegmentossondetamaovariable.
SISTEMADEFICHEROS
Elsistemadeficheros(tambinpartedelkernel)debealmace
nar la informacinsobre lossoportesfsicosytienequesercapazdeencontrarla rpidamente. Para dar buenos tiempos de respuesta setendrqueclasificar la informacin;elsistemaoperativoseencargade organizar los dispositivos de almacenamiento para garantizartiemposrazonables.
El sistema de ficheros crea una estructura bsica dentro delpropio dispositivo de almacenamiento (como si fueran las estanteras).Aunqueestoocupaespacio,contribuyealordenyportantoalarapidez.AestoselellamaFORMATOLGICO:aplicarsobreelformatofsicodeldiscounoscompartimentos(bytes)paraparcelarsuestructura, esdecir, lo que sedenomina FORMATEO. Es por este espaciolgicoporloquelosdiscosnotienentodosuespacionetodisponible,yaquelasmarcasutilizadasparacrearsuestructurafundamental(conelfindeobtenerrpidamentelainformacin)ocupanespaciodentrodeldisco.Cuando realizoun formateo,estoy reconstruyendoel formato lgico sin tocar la informacin que est contenida en l. Dehecho, dicha informacin permanece inalterada y oculta, se podraaccederaellaleyendoeldiscobitabit,encrudo.
Cadasistemadeficherosutilizasupropioformato:
ImplantacindeSistemasOperativos
12
NTFS (New Technology File System): Es el sistema deficherosdewindows.
FAT (FileAllocationTable):ElsistemadeMSDOS.Aunquetienebajasprestaciones,esmuysencillodeleeryfcildeprogramar;porellosehaconvertidoenunestndar.
FAT32:Sistemadeficherosdependrive,mviles,cmaras.
Particiones.Laprimeraestructuraque vaa realizarel sistemade ficheros
sobreeldiscoduroesunaPARTICIN.Unaparticinesunademarcacin que establece una zona formateable en una unidad dealmacenamiento. Dicha unidad ser la encargada de contener lainformacin de forma reglada y ordenada a travs de un formatolgico.Aaquellossoportesfsicosquepuedanserparticionadosselespodr aplicar un formato lgico a cada una de sus particiones (notodoslossoportesfsicoslosoportan,porejemplo,elCDnopuedeserparticionado). Esto es muy til porque podemos formatear cadaparticindemaneraindependiente.
LosdiscosdurosIDE,SCSI,SATAsoportanvariostiposdeparticiones(MBRoGPTslopordiscosSCSIoSATA).
Hayvariostiposdeparticiones: Primarias:Estaes laparticin fundamental.Losdiscos IDE
(tipoMBR)puedentenerhasta4particionesdeestetipo,porqueenel ndice slocaben4reas formateables.Dicho ndice se almacena en la TABLA DE PARTICIONES,guardadaenelsectormaestro(elprimersectordeldisco).
Extendidas:Cadaparticinextendida tienesupropia tabladeparticiones;dicha tablano seguarda en losprimerossectoresdeldiscoypuedetenercualquiertamao.Slosepuedecrearunaparticinextendida.Unaparticinextendidanoes formateable,amenosquecontengaunaparticin lgica(esterequisito lo imponeelhardware).
Lgicas: Son las particiones que se realizan dentro de lasparticionesextendidas;puedehabertantascomosequiera. Lasparticiones lgicasno estn referenciadas en lastablas.
Ejemplo.Enundisco IDEpodramos tenerhasta4particionesprimarias;o3primariasy1extendida;2primariasy1extendida;1primariay1extendida;o0primariasy1extendida.
ElArchivo.
Es launidadmnimadealmacenamiento;contienebytesa losque asociamos un nombre y unas propiedades (almacenadas comometadatos,vermsadelante).Losarchivospuedentenertambinunformatointerno,peroelsistemadeficherosesajenoalmismo.
En funcindel sistemaoperativo, laextensinde losarchivosserparte delnombre (meramente informativode cara alusuario),
como en UNIX, o ser un atributo ms destinado a vincular cadaarchivoconunprograma,comoenWindows.
ElDirectorio.
Es una estructura organizativa de orden superior, por lo quecomotal,contendr losnombresde losarchivosy lasrelacionesconsu localizacin,no losarchivosensmismos.Porellocontienebytes,pero no contiene todos los bytes de los archivos que relaciona. Enaquellosbytes sealmacenauna tabladedos columnas,una con losnombres y laotra con laubicacindeesosnombres.Esosnombrespueden serdearchivosodeotrosdirectorios, yaqueundirectoriopuedetener lasrelacionesdeotrosdirectorios,sinque loscontengafsicamente.
Laestructuraorganizativaconlasqueelsistemadeficherosorganiza losarchivosserportanto jerrquica,enformaderbol.Estaestructura quedaobscurecidapor las interfaces grficas deusuario,convirtiendolamquinaenunacajanegra.
ElrboldeFicheros.
Eslaestructuraorganizativaformadaporarchivosydirectorios.
Elrboldeficherossiempreposeeunaraz,queenfuncindelsistemaoperativo seruna otra (paraWindows seraC:\,D:\, yparaLinux/).
Conestaestructurapodemos trazar la rutao caminode cadaarchivo,desdelarazhastasuubicacin.
Metadatos.
Sedenominametadatosaaquellosdatosque informan sobre
otros datos. El sistema de ficheros guarda informacin sobre losarchivos, sobre sus propiedades (tamao, propietario, permisos,ubicacin, fecha de creacin, etc.). Losmetadatos aportan informacindelarchivo,peronoformanpartedelmismo.
Losmetadatospuedenperdersealpasarunarchivodeunsistemaoperativoaotro, yaque siel formato lgicoesdistintohabrquereconstruirlo.
Ejemplo. SistemasdeFicheros FAT (FileAllocationTable).Seestudiaestesistemaporqueesunmodelorealysencillo.Sehautilizadodesde lasprimerasversionesdeMSDOS,yensucomienzosepensparadiscosdepequeotamao,porloquenofunciona muy bien sobre soportes de gran almacenamiento.DesdesuprimeraaparicinenelIBMPC286,sehaseguidoutilizando a laparque los soportesdealmacenamiento crecan,porloqueesunsistemaobsoletodesdeelpuntodevistatcnico, pero en boga desde el punto vista comercial (como seapuntmsarriba,susencillezysucompatibilidadconlamayora de los sistemas operativos ha hecho que prcticamentetodos los dispositivos lo utilicen, convirtindolo en un estndar).
ImplantacindeSistemasOperativos
13
EstesistemasebasaenunaTABLAFATquerelacionaacadaficheroconsuubicacineneldisco.Enestatablaestntodoslosarchivosdeldisco,porloquesisetrataradeundiscograndeylleno, latablaocuparamuchoespacio.Adems,cuandoelsistemaarranca,carga latablaenmemoria,por loquesiesmuygrandeconsumirmuchamemoria.AntesdenadahabrquedefinirCLUSTERS.Sondivisioneslgicas del espacio disponible orientadas al almacenamiento. EldiscodeFATestdivididoenclustersguardadosenmemoria.Cadaclusterdelimitaunespaciodeterminadoquesiempreserigual.CuandoformateamosenFATcreamos: Sector de Arranque: Guarda informacin de la particin
FAT. TablaFAT:Deasignacin.Esunalistadeclusters,yporcada
unodeellostendrunaentrada.Cuantomsgrandeseaelespacioalmacenado,msclusterstendrymsocupar.LatablaFATtieneelsiguienteaspecto:
DondelacolumnaCluster(conXigualalvalordelcluster,desde1hastan)nosindicaelnmerodeesecluster.Ocupado,puede ser igual a1 (eneste casoel cluster estarocupado),oa0(enestecasoestarlibre).Final,quepodrtenerunvalorde1(indicandoqueesclusterfinal)o0(noesclusterfinal).Siguiente,quesiemprequehayaun1enFinal,tendrun0,ysino,indicarelsiguienteclusterquehabrqueleerparacompletaresearchivo.
Directorio raz: Esuna tabladedos columnasque guardalosficherosyenquclusterempiezan.
readeDatos:Aquseguardanlosdatosdenuestrosficheros.Estoocupael90%delespaciodelaparticin.
FATdivideelrea formateableenclusters.Porejemplo,siunarchivoAocupa10bytesycadaclustertieneuntamaode5bytes,dichoarchivoocupardosclusters.Imaginemosqueocupalosclusters1y2.CuandograbemosunsegundoarchivoBde5bytesocuparemoselcluster3.Ahorabien,sivolvemosaabrirAyleaadimosinformacin,elsistemadeficherosmeteresainformacinnuevaenelcluster4,quedandolasiguientetablaFAT:
Hayquetenerencuentaqueeneldirectoriorazpodemostener tambin directorios que nos sealen en qu clusterempiezan.CuandonosvamosalatablaFATyentramosporeseclusternosencontraremosunatabladedirectoriosdondeestarnlasreferenciasdelosarchivosconsusclusters,aligualqueeneldirectorio raz.Las tablasdedirectoriosestnesparcidasendiferentesclustersdelreadedatos.Recordadqueunclustersloperteneceaunfichero,nopuedehabervariosficherosenuncluster.Condesfragmentar loquehacemosesagrupartodos losficherosenclustercontiguos.PROBLEMAS DE FAT: En versiones antiguas, el programadorpensquecondestinar8bytesparanombrarlosarchivosserasuficiente,poresoestaban restringidosa8 letras.Adems,elrendimientoparadiscosgrandesesmuybajo,yunreadedatosmuygrandegeneraunatablaFATdegrantamao.FATestpatentadoenUSAporMicrosoft,peronohaejercidosu derecho sobre su patente porque le interesa que todo elmundoloutilice.
ENTRADA/SALIDAElsistemaoperativocontrolalacomunicacinentrelosperifri
cosylosprocesos.Esunacomunicacinendossentidos: De losprocesosa losperifricos:Losprocesossecomuni
can con los perifricos a travs delusodeDRIVERS. Losdrivers son programas o libreras que contienen cdigoparacomunicarseconunperifrico,asganamosMODULARIDAD (flexibilidad en el kernel). Los drivers suelensuministrarloslosfabricantesdelperifrico.Todos losdrivers escriben sus lneas de cdigo en el rea de kernelporqueaccedenalhardware,ytodoloqueestenelreadekernelseejecutarsinrestricciones.Losprogramashacenllamadasalsistemaconunainstruccindesalto;elsistemaoperativollamaalaFUNCINDELDRIVERyejecutalainstruccin.Elprogramadordeldriverdebeconocerelsistemaoperativoparaque lasfuncionesdelosdriversseanexactasalasquetieneelsistemaoperativo (por eso se hacen para un mismo perifricodiferentesdriverssegnelsistemaoperativo).Unavezhecha la llamadaa lafuncindeldrivertenemosque llevaracaboesa instruccinescribiendoenregistrosdelpropioperifricoobienenbuses.Sielperifricoestmapeado podremos utilizar instrucciones de escritura ylecturadememoria;sino,podremosutilizarinstruccionesespecficas directas. Si tenemos muchas instruccionesocuparemosmuchoespacioparaellas,yquedarpocoespaciorestanteparalosdatos.
Delosperifricosalosprocesos:Seutilizaninterrupciones.Cada lneade interrupcindebetenerunarutinade inte
CLUSTER OCUPADO FINAL SIGUIENTEX (10) (10) Y
CLUSTER OCUPADO FINAL SIGUIENTE1 1 0 22 1 0 43 1 1 04 1 1 0
ImplantacindeSistemasOperativos
14
rrupcinque latrate.Elconjuntoderutinassedenominavectorde interrupcin.Elvectorde interrupcin se cargaenunlugarconocidodelamemoriaquepodramosvariar,aunquesilohacemos,habraquedecirlealsistemaoperativoquecambieesaposicin.
PREGUNTAS.
1. Explica las diferencias entre un sistema de tiempo real yunodetiempocompartido.
2. Quesunainterfaz?Porqudecimosqueelsistemaoperativoesunainterfaz?
3. Diferenciaprogramayproceso.4. Queselbloquedecontrol?5. Definelosestadosenlosquepuedeestarunproceso.6. Describequesunainterrupcinyunallamadaalsistema.7. Culeslafuncindeunainterrupcin?8. Quesunplanificadoryculessufuncin?9. Describecondetalleelmecanismodecambiodecontexto.10. Describelasestructurasquerealizaelplanificador.
11. Describeenquconsistelasincronizacindeprocesos.12. Queslajerarquadememorias?13. Qugarantasdebemosdaralosprocesosdurantelaasig
nacindememoria?14. Enquconsisteelmecanismodememoriavirtual?15. Describe lapaginacinycompralacon la segmentaciny
explicaenquconsisteelproblemadelreemplazamiento.16. Enqufuncinescribeelsistemadeficheros?17. Quesunaparticin?18. Cmoseorganizanlasparticionesenundiscoduro?19. Diferenciaentrearchivoydirectorio.20. Qusonlosmetadatos?21. CmofuncionaFAT?Describesuestructuraprincipal.Ilus
trarestefuncionamientoconunejemplo.22. DescribebrevementelosdosflujosdecomunicacindeEn
trada/Salida.23. Explica losconceptosdedriveryqupapel juegaen laco
municacinconlosperifricos.24. Describebrevementeelmodelodeinterrupciones.
15
TemaTres
MquinasVirtualesyVirtualizacindeSistemas
INTRODUCCIN
La virtualizacin es el mecanismo que abstrae los recursoshardwaredeunamquinaa travsdeuna interfaz (VirtualMachineMonitor)entredichohardwareyelsistemaoperativo.
ElVMMesunprocesoms,perovaaofrecerhaciaarribaunainterfaz software que va a imitar al hardware real, as podremosinstalarunsistemaoperativoyunkernelconvencional,creyendoqueloquetienepordebajoeshardware.Deesta formapodremoscompartir el uso de los recursos hardware entre diferentes sistemasoperativosinstaladosenunamismamquina.
ELEMENTOS
Host:Lamquinafsica. Monitor: Software que crea la capa de abstraccin en el
host.Sepuedeinstalarsobreelpropiohardware. Guest:Mquinavirtual.Funciona sobreelVMM.Cadasis
temaguesttrabajadeformaindependienteydesconoceelrestodesistemasinvitados.
OTROSMODELOS
Lavirtualizacinsepuedeconseguirdeotrasformas. Aniveldeprocesos(JVMo.NET).Cadaprocesotieneincor
porado una pequea librera de virtualizacin, como sicadaprocesotuvierasupropioVMM.
Aniveldesistemaoperativo(OpenVZ).Se instalansobreelhardware.Lapropiaplataformapuedesustituiralsistemaoperativo.Esunkernelmodificadoquepuedeejecutarsesinsistemaoperativo.Sloestnpreparadosparaejecutarsobreellosmquinasvirtuales.Notienen interfazgrfica,esalgo ligero,paratcnicos.Aquelpropiomonitoreselsistemaoperativo,yelquegestionarelrepartodeprocesos con cadamquina virtual. Puede arrancar mquinasvirtualesconprioridades,porloqueelrendimientomejorar.EjemplosdeestetiposonCitrixoXen.
Emuladores (Inferno). Virtualiza la plataforma hardware;emulaunaarquitectura.Algunosejemplosseranlosemuladores de Android o IOS (los emuladores de telfonos,SDKSoftwareDevelopmentKit).
CARACTERSTICAS
Nosotrosvamosautilizarunmodelodenominadomquinavir
tualdesistema. EmuladorsobreSistemaOperativo(VMware).Seinstalaso
bre el sistema operativo como una aplicacin que nopodrplanificarniasignarmemoria.
VENTAJAS
OptimizacindeRecursos.Lasmquinaspuedensersusti
tuidasporunnmeromuchomenordeellas,consiguiendolasmismasprestaciones.Estenmeromenordemquinassernmuchomspotentes,de formaquepuedansoportargranjasdemquinasvirtualesejecutadassobreellas(poolderecursos).Conelloconseguimosquenohayamquinasinfrautilizadas.
Reduccin de Costes. Al necesitar menos mquinas ahorramos en costes. Adems, a menos mquinas, menoshardware y por tanto se reduce el nmero de fallos. Alcentralizar losrecursosenesasmquinasmuchomspotentes abarato en las tareas de administracin ymantenimiento yhomogeneizoelhardware.Al consumirmenos energa participo cuidando el medio ambiente(ecocomputacinogreenIT).
MejoradelaRecuperacinanteFallos.Larestauracindelsistemaguestestrivial.Recuperarunamquinavirtualestansencillocomoarrancarunprograma;lonicoquetendremosquehaceresreiniciaresaplataformaenunhostuotro. El proceso de rearranque esms ligero que el deunamquina fsica. Todo el sistema invitado suele estarrepresentadoensimplesficheros.Adems,sitenemosdiferenteshostpodemoshacermigracionesencalientesde
ImplantacindeSistemasOperativos
16
unoaotro.TambinsepuedenhacerSNAPSHOTdemquinasvirtualescomosifueranunbackupdeunproceso,puesnodejadeserunprocesoms,restaurandoconfacilidadesasmquinas.
Optimizacinde laCargadeTrabajo.Elbalanceodecargaesmssencillo.Hayprocesosquepermitendeterminaraquehostqueremosenviarlamquinayseejecutarneneltiempoqueduralamigracindeeseproceso.Assepodrbalancear la carga entre los diferentes host sin que losclientesloperciban,ganandoenadaptabilidad.Sitenemosvariasplataformashosten lasque seejecutanmquinasvirtuales,irndistribuyendolaspeticionesentreellas,empezando por las que tengan menor carga. Adems, condoshostmuypotentes,si tenemosunodeellosmuysobrecargado, puede ir migrando mquinas en caliente alotro.
Seguridad por Aislamiento. En el modelo tradicional dehosting tenamosmuchos usuarios utilizando un servicio(web,correo,basededatos).Siunode losusuariospudieramodificarelcdigodeesteservicioycambiarloporotro cdigo objeto, conseguira que la CPU ejecutara sucdigo,ycomprometiendo laseguridadde lamquinaalcompletoyportantodetodoslosusuariosqueutilizabanese servicio.Con la virtualizacin puedo virtualizar servicios,haciendoquepuedanconvivirvariosdeellosenunamismamquinafsica.Deestaformalosaslo,consiguiendoquelosataquessloafectenalguestdeesamquina.
CloudComputing.
Estemodelobuscaunaplataformatotalen laquenosetenga
queejecutarnada(nisiquieraelsistemaoperativo)entuprocesador.Porlotantolosterminalesparticularesperdernpotencia,delegandotodoelpoderdeclculoensupercomputadoresqueejecutarnnuestros programas y que almacenarn toda nuestra informacin. Conesos terminales, elusuarioejecutarelmnimoprocesoparapoderacceder a esas aplicaciones remotas. Actualmente esta funcin lacumpleelnavegador,aunqueelprotocolohttp(delosaos90)estallmitedesusposibilidades.
Conestemodelocentralizastodoenunsitio,ahorrandoaniveladministrativoyanivelderecursos(Gmail,Facebook,Twitter).
Amazonofreceestetipodehosting,alquilndoteunacapacidaddeprocesamientoycreandobajodemandaloquesenecesite.Deesaforma,antepicosde trabajo,mejorarsel servicio sinnecesidaddeinvertir en hardware que quedar sin utilizar en los das de pocotrnsito. Esto tambin ahorra enmantenimiento demquinas (y elahorrodelmantenimientodeunCDPCentrodeProcesamientodeDatos,quetienequeestarclimatizado,protegidocontraincendios).Lo malo es que el ncleo central del negocio estar en manos deotros.Porejemplo,WikileaksfuecapadoporAmazon.
Algunasventajassonquesecrecemsrpidamente,porqueesmssencillomejoraresosservidorescentrales.SedicequeesESCA
LABLE,porquepuedeaumentarsuscapacidades,yporelloesFLEXIBLE. El cloud computing puede permitir por tanto sistemas msescalablesyconmayorMOVILIDAD,noporquesemuevaelsoftware(que de hechono semueve en absoluto), sino porque los usuariosaccedernalsoftwareatravsdesusterminales(comoahoraloeselnavegador),desdecualquierparte.
FABRICANTESYLICENCIAS
Las licencias PROPIETARIAS no te ceden ningn derecho.
VMware comercializaproductos, todospropietarios,que se instalansobreelsistemaoperativo (WindowsoLinux);VMwareWorkstation(potenteycompleto),yVMwarePlayer(gratuito,aunquenotepermite crear nuevas mquinas virtuales). Virtual PC viene de serie enWindows,ysusprestacionessonmenoresque lasqueofreceVMware.ParallelsesparaentornoMac.
Las licenciasABIERTAS, comoXen.Xenno requiereunaplataformapordebajo,se instaladirectamentesobreelhardwareporquetieneunpequeokerneldeLinuxynonecesitadesistemaoperativoparafuncionar.
VMWARE
PuedeutilizarsesobreLinuxoWindows.Apartirde imgenes
podemos crearmquinas virtuales.Nopodr cambiar laplataformahardwarequevirtualiza,esdecir,sitengounsistemaoperativode32bits,losvirtualestambinlotendrn.
Cadamquinavirtualestarreferenciadaaundirectorio,enlaquehabrunosficheros.
CREARUNAMQUINAVIRTUALNUEVA
SepodrcrearapartirdeunCDodeuna imagen ISO.Habr
queelegireltipodesistemainstalarparapoderseleccionarlaVMwareToolsadecuadas.
VMwareTools.
Estasherramientasseutilizanparacompartir funcionesconel
host, como el portapapeles opasar carpetasdel host a lamquinavirtual. Con ellas tenemos ms funcionalidad. Cuando VMware lasinstala le hace creer al guest que se trata de un nuevo hardware,instalandolosdriverscorrespondientes.
CONFIGURACIN
Cada dispositivo virtual que agreguemos crear un puentesoftware con nuestro dispositivo fsico. Aunque algunos sistemaspermitenagregarhardwareen caliente,esaconsejableparar lamquina.
ImplantacindeSistemasOperativos
17
DiscosDuros.Podemosaadircuantosqueramosypodremoselegirsucone
xin, IDE o SCSI. Cada disco se representa como un fichero conextensinVMDK,que representareldiscodurode lamquina virtual.Silamquinavirtualtieneundiscode50Gb,eseficheroocuparlomismo.
Sepuedehacerqueelespaciovayacreciendo,esdecir,queestos ficheroscrezcandinmicamente,deformaquenotengamosqueespecificareltamao,peroaslamquinavirtualperderrendimiento(no se recomiendapara servidoresenproduccin),aunque tambinoptimizarelespacioendiscoparasuusodomstico.
TarjetasdeRed.
Podemosaadircuantasqueramos,aunquealfinaltodasutili
zarn lastarjetasfsicasquetengamos.Cadatarjetavirtualcrearunpuentesoftware(enConexionesdeRed).
Haytrestiposdeconfiguracin: HostOnly:Elguestslopodraccederalosserviciosque
estnactivosenelhost.Sielhostnotieneningnservicio,elguestnopodr tenerlos;ambosutilizarnuna redprivadapara comunicarse. Esun entornoms restringido ycontrolado.
Bridge:Cadamquinavirtualtendrun identificador IP independiente;habrqueconfigurarcadaunadeellascomosifueraunamquinanueva.
NAT: Lasmquinas virtualesutilizan lamismadireccin IPque lamquina fsica.Elguest se conectaa Internetpormediodelhost.
Snapshots.Esuna foto fijadelestadode lamquina.SeentiendeporES
TADOelcontenidodelosdiscos,elcontenidodelamemoria(guardaelcontadordelprograma;todo loquehayaenlaRAM),etc. Conlossnapshots se podr volver a ese estado en cualquiermomento.Unsnapshot crea un VMDK que se puede seguir leyendo pero no sepuede modificar. Para volver a ese estado se sustituye el VDMK,creadoenelmomentodelacaptura,porelVMDKactual.Esteprocesoesmuyrpido(tardaapenasunossegundosenrestaurarse).
Ejemplo.Nadamsarrancarmimquinavirtualcreounsnapshot(1).DespusinstaloenmimquinavirtualelOffice2003yhagootrosnapshot(2).Luego instaloelphotoshopCS4yhagootroms(3).PodravolveralestadoinicialdelamquinaeinstalarunaversinmsmodernadelOffice,haciendounltimosnapshot(4).Deestaformatendramos4imgenescorrespondientesacuatroestadosde lamquina,cadauna ligadaaunalneatemporaldistinta.
PREGUNTAS.
1. Enquconsistelavirtualizacin?2. Quelementos intervienenen lavirtualizacindeun sis
tema?3. Enumera lasventajasqueaporta lavirtualizacinde siste
mas.4. Qutiposdevirtualizacinhemosvistoenclase?Describe
susdiferencias.5. Enumeraunparde fabricantesdeproductosde licencia li
bre ypropietaria destinados a la virtualizacin y comentaalgnaspectodeellos.
6. Quesunsnapshot?Quventajasnosaporta?7. Seraposiblecrearunsnapshotsobreunamquinafsica?8. Defineyexplicabrevementeelconceptodecloudcompu
tingyenumeralasventajasqueaporta.
18
TemaCuatro
IntroduccinaUnixINTRODUCCIN
En1969BellLabscomienzaadesarrollarelprimersistemaoperativodetiempocompartido,elproyectoMULTICS.Losrequerimientosdeunapotentemquina(GE645)obliganaabandonarlo.
ThompsonyRitchiecomienzanaescribirunnuevosistemaparala PDP7; una mquina mucho ms barata. En 1970 aparecen lasprimeras versiones escritas en lenguaje ensamblador de la PDP7,peroeran versionespocoportables.Para solucionarlo,RitchiedesarrollaellenguajedealtonivelC,en1973,reescribiendotodoelncleodeUnixenC.TeniendouncompiladordeCparacadaarquitectura,Unixesportablesintocarunalnea.
UnixfuedesarrolladoporKenThompsonyDennisRitchiedelosBell Labs,parael computadorPDP7deDEC. Fueelprimer sistemaoperativomultiusuario,reescritoenunlenguajedealtonivelyportable.
LapublicacindelcdigodeUnixydelcompiladordeCsedifundi rpidamente entre los mbitos acadmicos. Debido a estoaparecieron losprimerosclones (comoBSD,en1975),yelcdigoseampliymejor (enel futuroapareceranproblemas legales).EntrelasfamiliasdeUnixseencuentran:
SystemV.Eslaconsideradaherederadelaversinmspu
radeBellLabs. BSD.CreadaapartirdellicenciamientoaBerkeley.Reescri
ta para evitar problemas legales. Primera pila deprotocolosTCP/IPdeInternet.
AIX.SurgedellicenciamientoaIBM. GNU/Linux.ElmovimientoGNUha intentado reescribirsu
propioUnixparalicenciarloconsulicenciaGPL.
Para llamaraalgoUnixtienesquepagar,yaqueesunamarcalicenciadelconsorcioTheOpenGroup.Porejemplo,Linux,FreeBSD,NetBSD,nosonUnix.LacompatibilidadrealentretodoselloslamarcaelestndarPOSIX (esunestndar,escritoenC, sobre la interfazdellamadasalsistema).Siestandarizasesto,lohacescontodaslaslibreras de llamadas al sistema, mejorando la portabilidad. Losprogramadoresyasaben loquevanaencontrarsecuandoelsistemaoperativoesPOSIX.UnixyMACOSloson.
CARACTERSTICASUnixesmultiusuario.Tradicionalmente(ensuscomienzos)cada
unodelosusuariosmanejabasusistemaatravsdeunaconsola(unatelevisinconteclado),noatravsdeunordenador.Dichaconsolaseconectabaconelordenadora travsdeunbus independiente.Paraacceder,cadausuariosevalidaconsuidentificador(login)ycontrasea.Siescorrecta,UnixarrancaunprocesollamadoSHELL,queserelencargado de comunicarse con la consola (ser el portal entre elkernel y la consola, y viceversa). El usuario tiene como interfaz laSHELL.Enestemodeloslohabaunordenadorpor infraestructuraylasconsolasnialmacenabannicomputabannada.
Cada usuario trabaja dentro un espacio de almacenamientopersonal(undirectoriopropio,dentrodelrboldeficherosdelsistema,alqueaccedenlosusuariostrasvalidarsunombreycontrasea).Atravsdecomandosescritos,elusuariosecomunicaconelsistema.DichoscomandossoninterpretadosporlaSHELL,queserlaencargadaderealizarlasllamadasalsistemaoportunas.Portanto,laSHELLseejecutaenespaciousuario (siestuvieraenelkernelno tendraquehacerlas,puestoqueserapartedelsistema).
EnUnix,elusuarioROOTeseladministrador,poseeelcontroltotalde lamquina,sobrelnosecontrolaningnpermiso,simplementeseledejahacer.
EnUnix,losusuariosseagrupanyseetiquetanenGRUPOS;unusuariopuedeperteneceravariosgrupos.Todos losficherosydirectoriostienenunnicopropietarioypertenecenaunnicogrupo.Losgrupospermitenque variosusuarios trabajende forma cooperativaconficherosydirectorios.
Adems,Unixesmultiprocesoydetiempocompartido(vertema 2, Clasificacin de sistemas operativos). Es portable gracias aPOSIXyalcompiladordeC(comoseaadien la introduccin).UnacaractersticaimportantemsdeUnixesquetodosonficheros.
ELEMENTOSDELSISTEMA
LOADER(CARGADOR)
Esunpequeoprogramaencargadodecargarelkernel(esdecir,pasarlodeldiscoalamemoria).
Cuando la CPU arranca, en el principio de la SECUENCIA DEARRANQUE, siempre tieneque leerunadireccindememoria.Estadireccin (quesueleestar fijadapor losdiseadoresdelmicroproce
ImplantacindeSistemasOperativos
19
sador)albergar la instruccindelprimerprogramaqueejecutar lamquina. Pero cmometemos ese primer programa en esa direccin?Unaopcin (lonormal)eshacerque laCPUcomiencepor leerunapartedelmapadememoriaquesueleestaralojadoenunamemorianovoltil(porejemplo,unaROM).
Ejemplo.LosdiseadoresdeunaCPUnosindicanquesuprocesadorempiezaa leerpor ladireccin0000.Nosotrospodemospinchar,desdeladireccin0000ala1024unmdulodememoriaROM.Enesamemoriapodemosponer las instruccionesdenuestroprograma inicial(que losIBMPCsuelen llamarBIOS)yla CPU lo ejecutar siempre al inicio. Apaguemos o no elcomputadorsabemosqueelprograma inicialestarpreparadoenesamemoriacuandolaCPUvayaaleerloall.Eseprimerprograma (laBIOS),podracargarelkerneldelsis
tema, pero en la actualidad los fabricantes de sistemas operativosprefierenqueeseprimerprogramacargueelprogramaCARGADOR.
LaBIOSsepuedeconfigurar,asignandounalistadeprioridadesdondebuscarelprogramacargador;unavezlohaencontrado,laCPUlo ejecuta, y una vez en marcha, encuentra al kernel (de manerasencilla,yaquecadacargadoresprogramadoporloscreadoresdesupropiosistemaoperativo).DespuslocargaenmemoriayledicealaCPUdndeempezara leer ladireccindememoriadelkernel.Unavezcumplidasufuncindesaparecedelamemoria.Enesemomentoelkernel se ejecuta de forma directa (sin interrupciones ni llamadas alsistema),cargando todas lasestructurasquevaanecesitarel sistemaoperativo(tablasdeprocesos,planificador,etc.).Eslanicafasedondeseejecutaelkernelperse.
Todoestoesvlidoparacasicualquiersistema,nosloparaUnix.
KERNELEsunarchivoejecutablequerecoge lamayorpartedelcdigo
del sistema. Lo que no forma parte delmismo son libreras (DLL DinamicLinkLibrary).ResultadelacompilacindetodosloselementosfundamentalesestudiadosenelTema2.
CuandoarrancalaCPUylaBIOSejecutaelcargador,stebuscaelarchivodelkernelparaejecutarlo.SerelprimercdigoqueejecutelaCPUparaponerenordenelsistemaantesdequepuedarecibiralosdemsprocesos.
Sepuedenconseguirkernelmspequeospasandopartedesucdigoa librerasexternasqueseenlacendinmicamente,porejemplolas librerasTCP.Deestaforma,elprimerprogramaquerequieraesalibreratendrqueesperarhastaquesecarguenenmemoria.Conesto, lgicamente, conseguiremos que el kernel consuma menosmemoriayserealice,portanto,unarranquemsrpido.
DEMONIOS
SonprocesosNOINTERACTIVOS(esdecir,norecibenningnin
putdelosusuarios,nointeractanconningunashell)ejecutadosenel
rea de usuario. Los inicia el kernel y se estn ejecutando todo eltiempo(independientementedelosusuarios),comenzandosustareascuando lamquinaarranca.Aunqueno tienenporquser iniciadospor ningn usuario en particular, tambin pueden ser lanzados porellos.Losobjetivosquecumplensondiversos,desdevalidarusuariosentrantes,chequeardiscos,registrareventos,etc.
EstosprocesosequivalenalosserviciosdeWindows.Losdemoniosnopuedensermatadossalvoporelusuarioque
loscre.Yaquetodoslosprocesostienenquehabersidolanzadosporunusuario (comoseverenUsuariosyGrupos,pgina26),sernestos usuarios sin acceso de shell los que podrn acabar con susprocesosasociados.Adems,rootpodramatarcualquierproceso,yaquetalycomosehaindicadoantes,cuandoroothacealgo,seledejahacer.
SHELL
Es la interfazdeusuarioentreelkernely losusuarios, llamada
INTRPRETEdecomandos.Cadashellcontrolaunaconsola,yseejecutaenlamquinaUnix,noenlasconsolas.Cuandounusuariovalidasunombre y contrasea contraun demonio a travsde su consolahardware, el sistema carga una shell,por loquedicha shell ser elnicovnculoentreelusuarioylamquinadurantetodalasesin.
Esto se suele representar en forma de crculos concntricos,dondeelncleoestocupadoporelkerneldeUnixyrodendoleestlashell.Elcrculomsexteriorestaraocupadopor losusuarios.Estediagrama representa la imposibilidad de lo usuarios para llegar alkernelsinutilizarparaellolashell.
SECUENCIADEARRANQUEDELSISTEMA
Arranca laCPUy lee lasprimerasdireccionesdememoria
asignadasporeldiseador.AllestalojadalaBIOS. LaBIOSbuscaalcargadorylocargaenmemoria. Elcargadorcargaalkernel. Elkernelcomienzaaejecutarseycargatodoloqueesnece
sario para el sistema, incluidos los demonios, siendo elplanificador laltima instruccinde larutinadearranquedelsistema.Cuandosaltaelplanificadordecideelsiguiente proceso a ejecutar (realizando por tanto el primercambiode contexto) y termina la secuenciadearranque(sedejadeejecutarelkernel).
LaCPUcomienzaaejecutaralosdemonios. Lamquinaquedaalaesperadeconexionesdeusuarios.
FICHEROS
Comosehadichoantes,enUnixsontodoficheros,loquesigni
ficaquerecibirnestadenominacintantoarchivoscomodirectorios.
ImplantacindeSistemasOperativos
20
Estos ficheros se organizan en un nico rbol de ficheros, aunquetengamos muchas particiones. En Windows, al contrario, por cadavolumende almacenaje (particin,unidadde red,etc.) tenemosunrboldeficherosdistinto(a:\,c:\,d:\...).
EnUnix,losficherosnotienenextensin,esdecir,queunfichero sea archivo.txt no es indicativo para el sistema, sino paranosotros(nosorientadequeesunarchivodetexto).Adems,aquellosarchivosquecomienzanpor.,permanecernocultos.
Todos losficherosdeUnixtienenunnicopropietarioypertenecenaunnicogrupo.
Dentrodelrboldeficherosnospodemosencontrar: Ficherosdedatos.Binariosoplanos. Directorios:Cuando creamosundirectorio tenemos siem
pre dos entradas, la entrada . (apunta al directorioactual)yla..(apuntasiemprealdirectoriopadre).
Ficherosespeciales:Son la interfazentre losprocesos, losdispositivosyelkernel,Unix losutilizaparaaccederatodoslosrecursosdelsistemaypodermanipularlos.Nosonbytesalmacenadosenundisco,sinoportalesdecomunicacincon losdriversdelsistema,a losqueaccederemoscuando leamosoescribamoseneste tipode ficheros.Esdecir, utilizando las operaciones bsicas de los ficheros(leeryescribir)podremosmanipularcualquierdispositivo,consiguiendo HOMOGENEIZAR todo el sistema (con dosllamadasalsistemasehacetodo).
Algunosficherosdeestetiposon/dev/random(sobreelquenopodremosescribir,ysi lo leemos,elsistema nos devolver una serie de bytes aleatorios,ofrecidosporundriver,yaqueeltamaodelficheroesde0bytes);/dev/null (delquenopodremos leer,perosobreelquepodremosescribirsinquesutamaoaumente;el sistema ignorar todo loque seescribaenl, sinquevayaapararaningnsitio).
Rutas.
Todoslosficherosselocalizanenunaruta(path).LaRUTAesel
conjuntodenombresquehabrquecruzarenelrbolde ficherosparallegaracualquieradestino.Cadaunodeesosnombresseseparaporelsmboloslash(/).Enunaruta,todos losnombrescorrespondenadirectorios,menoselltimo.
Haydos formasdeestablecer laubicacindeun fichero,mediante:
RutaRelativa:Larutacomienzaporunnombreynoporla
raz(/).Elsistemaloencuentrautilizandocomoreferencialaubicacindondeseubicaelusuario.Cuandounusuariotieneasignadaunashell,sueleapuntaraundirectoriodelrbol (que suele ser el directorio home, es decir, elworkingdirectorydelusuario).
RutaAbsoluta:Larutacomienzaporeldirectorioraz(/).
Ejemplo. ImaginemosqueennuestraraztenemosundirectorioDir1,yquedentrodelmismoexistenotrostresdirectoriosms:A,ByC.SidentrodeldirectorioAexisteelficheroF1,ynosencontramosenesedirectorio,A,larutaquedeber 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 sonsimilares en ficheros y directorios (propietario, grupo del fichero,tamao,permisos,fechayhorademodificacin).
Permisos
Unixnotienelistasdecontroldeacceso,nocrealistasdeusua
rios(CL)conlasoperacionesquepuederealizar,sinoquepermitetresoperacionesparacadaficheroydirectorio:
Leer(Read):Recuperarbytesdeunfichero. Escribir(Write):Modificarlo. Ejecutar(eXecute):Cargarsucontenidoenmemoriayeje
cutarlo, o cargar su intrprete en memoria y que loejecuteste.
Adems,Unixdiferenciatresrolesdeusuariosrespectoafiche
rosydirectorios: Propietario(Userowner). Miembrodelgrupodelfichero(Groupmembers). Todoslosdems(theOther).Paracadaficheroseguardaunaristrade9bitsquemuestralos
permisosquetiene;3paracadaunode losrolesydeesostres,unoparacadaunadelasoperaciones.
Montajes.
Permitenampliarnuestrorbolde ficheros,ypor tantoelES
PACIODENOMBRES (que es el conjuntodenombresquepodemosmanejarenelrbol).
Siagregamosunaunidaddediscoyaformateadaconsupropiorboldeficheros,tendremosqueunireserbolanuestrorbolgeneral.EnUnix,aesto(esdecir,montardispositivosparavisualizarlosennuestro propio rbol) se le llama MONTAJE. Con ello conseguimosampliar el espacio de nombres incluyendo la informacin de otrosdispositivos.
Cualquierdispositivoque tengacapacidaddealmacenamientotienequesermontado.
ImplantacindeSistemasOperativos
21
Sinolomontramostendramosquemanejareldispositivoconleer/escribir,trabajandoconlainformacinqueestalmacenadaencrudo(algoquehacenlosgestoresdedisco).LINUX,UNUNIXLIBREQUESLINUX?
Linuxbienpuedeserunkerneldeunsistemaoperativoounsistemaoperativocompletoqueutilizasupropiokernel.Sealoquesea,essoftwarelibreyutilizalalicenciaGPL.
SoftwareLibre.
El concepto de software libre fue creado por el movimiento
GNU (GNUsNotUnix)que fue fundadoporelhackerRichardStallman.Sumanifiestopuedeleerseenlasiguientedireccin.
http://www.gnu.org/gnu/manifesto.es.html
Esunamaneradeentenderelsoftware;silainformacintiene
queserlibreyelsoftwareesinformacin,entonceselsoftwaredebeserlibre.Paraello,elcdigofuentedebeserpblicoylibre,esdecirelcdigopodrser:
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 intrpretescomoGcc,Python,Java,etc.;otrasaplicacionescomoFirefox,Emule,Bittorrent,etc.
LicenciasGPL(GeneralPublicLicense).
Es una licencia propia deGNU cuyo objetivo fundamental es
protegeralpropiosoftwarelibre.ImplicaquesimodificascdigoGPLyloquieresdistribuir,debeshacerlotambinbajolicenciaGPL.
SoftwareLibreyGPL.AunquetodoelsoftwareGPLeslibre,notodoelsoftwarelibre
esGPL.Estoesporqueexistenmuchas licencias libres.Es laGNU,atravsdelaFSF(FreeSoftwareFundation),laquedecidesiunalicenciaeslibreono.Paraello,tendrquecumplirlascuatrolibertades.
Hay que tener en cuenta que estas libertades no dicen nadaacercade ladistribucin.Referidoaestoexistendiversaspropuestasmsymenosrobustas(MIT,BSD,Apache,etc.).
HISTORIADELINUX
En1980,laGNUyStallmancomienzanacrearunUnixcomple
tamente libre. En su versin, su kernel se denominaba HURD, ydesarrollaronparalungrannmerodeaplicaciones,comouneditordetextollamadoEmacs(EditorMACroS),gcc
En1990,LinusBenedictTorvalds(ingenierodesoftwarefinlands)empiezaamodificarMinix (unUnixde juguete)y locompilaenunIntel386.
En1991,LinusliberalaprimeraversindeLinuxconsistenteenunkernelqueharecibidoaportacionesdeotrosyqueestlicenciadoconGPL.LinusutilizaparaestaversinelcompiladoryotroselementosGNU.Naceunapolmicainterna:LinuxoGNU/Linux?
ActualmenteHURDestabandonado.Linuxeselsistemaoficialdelacomunidadlibre.LinuxyUnix.
LinuxderivadirectamentedelosancestrosdeUnix,enconcreto
deMinix.NoesPOSIX,aunque cumple suestndaren su totalidad.Porello,muchosnoleconsideranunUnixpuro,ototalmenteUnix.
AvanceyDesarrollo.
ElavancedeLinuxescomplejo.Noexisteunorganismocentra
lizador ni coordinador. El kernel est gestionado y se actualiza porTorvalds y suequipo.El restodeusuarios cogeelkernel y leaadeaplicacionesexternasasugusto,creandounadistribucin.
Unadistribucinestformadapor:
Kernel+Aplicaciones
dondeelkernelpuedeseroficialoestarmodificado.Cadadistribucinavanzade forma independienteypublicasuspropiasactualizacionesen sus propios servidores.Muchas distribuciones comparten aplicaciones. En las distribuciones no existe ningn elementoestandarizador,yportantopuedenexistircambiosdelibreras,entornos,plataformasloquehacequetodoestmuydesorganizado.
Detrsdelasdistribucionesexistendiferentestiposdecolectivos: Empresas:Ubuntu,Suse. Gobiernos:Max,GuadaLinex.
ImplantacindeSistemasOperativos
22
ComunidadesdeUsuarios:Gentoo,Debian.
ElnicodenominadorcomnatodoestoeslalicenciaGPL.Losrepositoriosoficialesdelkernelestnenkernel.org.Exis
tenmilesderepositoriosnooficialesyaquecadaunopuedehacerlasmodificaciones que quiera al kernel (por ejemplo Android). Inclusoaquellos que quieran incluir sus modificaciones en el kernel oficialpuedenenviarlasa la listadecorreooficial,donde loscommittersdecidirnsiincluirlasonoenelkerneloficial.
PREGUNTAS.
1. DescribebrevementelascaractersticasgeneralesdeUnixysumodelodeutilizacin.
2. Quineselusuariorootyqudiferenciasexistenentrelyelrestodeusuarios?
3. ExplicaelprocesodearranquedeUnix.4. Qufuncionestienelashell?5. Describe lascaractersticasgeneralesdel sistemade fiche
rosdeUnix.6. Quesunmontajeyquimplicarealizarlo?7. DescribeelmodelodepermisosdeUnix.8. Enumera cules son los metadatos estudiados que utiliza
Unix.9. Quesunficheroespecialodedispositivo?
23
TemaCinco
LinuxIAdministracinyUsoBsico
ARQUITECTURACARACTERSTICAS
Linuxesunsistemaoperativomultiprocesoymultiusuario.Entrelosusuariosdistinguearoot(raz)yatodoslosdems.Adems,estconformadoensutotalidadporficheros.
Ensuorganizacinsloexisteunrboldeficherosdeestructurahorizontal,dondeestosseagrupanendirectoriostemticos.EnLinux,dichosficherosnotienenextensin,perocadaunotieneunnombreyunaruta(bienseaabsolutaorelativa).Porltimo,todoslosficheros,y por tanto todo lo que forma Linux, tiene tres permisos: lectura,escriturayejecucin.
USODELSISTEMA
LinuxtieneciertasreminiscenciasdelsistemaUnix.Enl,cada
usuariomanejabaunaconsolasobre laquesevisualizabalashell,deformaque todos losusuarios seconectabanaun solo sistemaUnix,introduciendosuusuarioycontrasea.Hoyda,nuestraCPUesnuestropropioUnix,sobreelquepodemosarrancarmltiplesshells.SHELL
La shell esun recubrimientodel kerneldel sistema. Funciona
como una interfaz entre el usuario y el kernel; sin ella, el usuariotendraquemanipular las librerasdellamadasalsistema,por loquesuexistenciapermitequeelusuarioseabstraiga,permitiendoque lashellhagalasllamadasalsistemaporlalinterpretarnuestrasacciones.Ademsdeesto, laprincipal tareade lashellserproporcionarunentornodeusuario.
TiposdeShell.
Haymuchasshell: ShellBourne(sh).Es lashelloriginalanutilizadaensiste
mas UNIX y derivados. Es la shell bsica, un pequeoprogramaconpocascaractersticas.Aunquenoes lashell
estndar, todavaestpresenteen todos los sistemasLinuxqueseancompatiblesconlosprogramasUNIX.
CShell(csh).LasintaxisdeestashellessimilaralaqueutilizaellenguajedeprogramacinC.
KornShell(ksh).Esunsuperconjuntodesh,complicadaparaprincipiantes.
BourneAgainSHell(bash).EslashellestndardeGNU,intuitiva y flexible. En Linux es la shell estndar para casitodos losusuarios.Esunashconaadidosyconexiones,por loqueshsersiemprecompatibleconbash,peronosiempre losera la inversa.BashesunashellcompatibleconshqueincorporaherramientasdekshycshysigueelestndarPOSIX.
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 laordenintroducidautilizandolavariablePATH,ypuestoqueunashellesunarchivoejecutable(unprograma),lashellactualpodractivarla.Unavezintroducidoelcomando,lonormalserqueelpromptmuestrelaaparienciavinculadaadichashell.
ArranquedelaShell.
Cadavezqueunusuariovalidasuacceso,searrancaunashell
paral.Durante lasesinpodremosarrancarmsdeuna;siejecutobash,searrancarotrashell,quedandolaanteriorbloqueadahastaquelanuevanofinalicesufuncionamiento.
Alarrancar lashell, leesusparmetrosdeconfiguracindeunfichero llamado .bash_profile (tenen cuentaqueelprimerpuntoindicaqueelficheroestoculto)enmuchasdistribucionesy.bashrcenUbuntu.Existeunficherodeestetipoporusuario,dondeseguar
ImplantacindeSistemasOperativos
24
danlaspreferenciasdesussesiones.Sinosecrearaestefichero,alserbashunproceso,desapareceraalapagarelsistema.
Cuandovalidamoselnombredeusuarioylacontrasea,aparecenunaseriede lneasenpantalla.Estas lneasestnescritasporelkernelyporelproceso INIT,mostrandounanlisisdelarranque.Enlaslneasfinalesaparecertty1,quenosmuestraqueestamosenlaconsola nmero 1, siguiendo el esquema de funcionamiento de losaos70.UsodelaShell.
Unavezarrancada,elusuariolamanipularatravsdecomandos que sta entienda. Una vez validado el nombre de usuario, elsistemamostrarelPROMPT,loquesignificaquelashellestpreparada para recibir un comando. El prompt en Linux suele tener lasiguienteforma(terminaconelsmbolo$):
usuario@maquina:/ruta$ (alumno@mvirtual:~$)
LoscomandosseintroducenenLinuxsiguiendoelsiguientees
quema:~$ comando [-modificadores] [argumentos]
(conespaciosentrecomandos,modificadoresyargumentos)Ten en cuenta que puedes encadenar comandos, separando
cadaunodeellos(juntoconsusmodificadoresysusargumentos)conunpuntoycoma(;).
Cuandolehacemosllegaralashellelcarcterintro,consideraque laordenyahasidoemitida, interpretndolayejecutndolaymostrando el prompt de nuevo en pantalla una vez ha finalizado.Mientraslosprocesosarrancan,lashellquedarbloqueada.
Ejemplo.Cuandoescriboel comando date ypulso intro,asumeque laordenhasido introducidaporcompleto.Lashellhaceunallamadaalsistemaparaqueelkernelarranqueelproceso date, etc. En ese momento la shell crea un nuevoproceso.Mientrasseejecutadate,lashellquedarenestadobloqueado.Shellydateestnconectadosatravsdeunaestructuradesincronizacin;hastaquedatenopongabytesenelbufferque comparte con la shell, la shellno sedesbloquear.Unavezdesbloqueada,escribir losdatosenpantalla.El kernel retirar date de lamemoria y la shell volver amostrarelprompt.Para salirde la shell, habr queescribir el comando exit.
Tenen cuentaque laShelldistingueentremaysculas yminsculascuandoterefierasalosficheros,asqueprestaatencin.
ExpresionesRegulares.Ledanflexibilidadalainvocacindecomandos.Loscaracteres
comodines seutilizanparaque la shell los sustituyaporotraexpresin. De forma que si utilizamos el asterisco (*), la shell utilizarcualquiersecuenciadecaracteres,ysiponemoselsignodeinterrogacin(?),lostendrencuentadeformaindividual.
RedireccionesdeFlujo.
LosprogramasenLinuxtienentresflujosdedatos,queseiden
tificanconlosnmeros0,1y2: Entradaestndar (pordefectoel teclado), cuyo identifica
doresel0. Salidaestndar(pordefectoelmonitor),cuyoidentificador
esel1. Salida estndar de errores (por defecto elmonitor), cuyo
identificadoresel2.Cuando lashelllepidealkernelqueejecuteunproceso,infor
maralkernelyalprocesosobreel flujodedichoproceso(esdecir,sobresuentrada/salida).Pordefecto tomar losdatosdel tecladoymostrarlasalidaporpantalla,peropodrasertambinalgocomolaentradalacogesdeestatuberaylavuelcasenaquelfichero.Deestaformaredirigimoselflujodelosdatos.
Sinohay informacindeeseflujo,elprocesovolcar lain
formacin al monitor (salida estndar). Sin embargo,podemospedirquesaque losdatosnoporpantallasino,porejemplo,a /dev/null,o redirigirloaun fichero,almacenandoenllainformacinquedeotraformamostraraenpantalla.
Igualmente,lasalidaestndardeerrorserelmonitor. Laentradaestndaresel teclado,perosepuedecambiar,
porejemplo,lashellpodrapedirlequecuentecaracteres,peronodelteclado,sinodeunfichero.
Engenerallosprogramasycomandosnomuestrannadasitodo
vabien.Paramodificarlasentradasylassalidasdeloscomandoshabr
queescribir: >(paraqueredireccionelasalida). 2>(paraqueredireccionelasalidadeerror). &>(paraqueredireccioneambassalidas). >> (paraqueredireccione lasalida;sintruncar,esdecir,
loqueescribamosloaadirenunalneanuevaalarchivoqueyaestcreado.Estaopcinpermitetambin lanotacin2>>&>>).
ImplantacindeSistemasOperativos
25
Ejemplos.Siescribo:
~$ ls /bin > /tmp/salida.txt Lainformacindelosficherosquehaycontenidoseneldirectorio bin, se escribir en el fichero salida.txt situado en eldirectoriotmp(tododentrodeldirectoriohome).
~$ ls /bin > /tmp/salida.std 2> /tmp/salida.err Escribirelcontenidodebinensalida.std,ysidieraerror,dichomensajeseescribiraenelficherosalida.err.
~$ cat < archive > /tmp/archivo.copia envezdemostrarelcontenidodelarchivoenpantalla,lometerenelficheroarchivo.copia.
~$ sort < /tmp/nombres.txt Ordenalaslneasdelficheronombres.txt.Sortpuedeordenarvariosarchivosalavez.Porejemplo,siqueremosquelosarchivosnombres1ynombres2quedenordenadosyquedenasenunarchivonuevollamadonombres,escribimos:
~$ sort < nombres1 nombres2 > nombres
Tuberas.Conectanlaentradadeunprocesoconlasalidadeotro,consi
guiendo que se comuniquen datos entre s. Ambos procesos searrancanalavez,peromientrasnohayadatosenlatubera,ellectorsebloquea.Esdecir,elcomandoqueescribamosa laderechade latuberatomarcomoentradalasalidadelcomandodelaizquierda.
Ejemplo.Siescribo:
~$ cat /tmp/nombres.txt | sort De esta forma, hacemos que el contenido de nombres.txtaparezcaenpantalla,ycomo lohemosconectadoconunatubera a sort, har que el contenido aparezca ordenadoalfabticamenteporfilas.
~$ cat /tmp/nombres.txt | head Aqu loquenosmostrarsern lasprimerasdiez lneasdelarchivonombres.txtenpantalla.Sepuedenutilizarvarias tuberasen lamisma invocacinysepuedencombinarconredirecciones.
Tenencuentaquelastuberasestnlimitadasencapacidad,deformaqueunavezalcanzadoeselmiteharqueelprocesodesalidasebloquee.
VariablesdeEntorno.
Sonunconjuntodevaloresasociadosaunnombrequeafecta
almododefuncionarde losprocesosyde lashell.Dichosvaloressealmacenan dentro de bash y slo sern visibles en la shell que sedeclararon.Esdecir,siarrancounasegundashellnotendrlasvariablesquehayadeclaradoen lashellmadre,por loqueparaqueseanglobalestendremosqueutilizar:
/# export VARIABLE
yastodaslasshellhijastendrnincluidasdichasvariables.
Lasvariablesaportan informacina lashell.Dicha informacinno se perder al cerrar la shell porque se almacenan enun ficheroestticodedisco,ypodrafectaralosprogramasqueestemosejecutando.Lasvariablessonconsultadasporbashdurantesuejecucin,esdecir, si introduzco la variable colors=1, cuando bash consulta elespaciodevariablesyseencuentraconesto,harque losprocesosimprimanloscaracteresencolor.Porponerotroejemplo,sialarrancarFirefoxnecesitaguardarciertoarchivo temporal, lepreguntarabashsitieneunavariablequeindiquelarutadondepodraguardarlo.Hoy da casi todos los procesos guardan sus propios ficheros, peroantiguamente funcionabanenbasea lasvariablesquebashpudieracontener.
Comoseindicantes,hayunficheroquebashleeryejecutarantes de dar el primer prompt (.bashrc). En dicho fichero podrsmeter las variables de entorno, de forma que aunque las pierdascuando cierreselproceso, lasvolversa cargaral inicio,porello sedicequesondinmicas.
Lasvariablessedeclarandelasiguienteforma:
~$ VARIABLE=valor Donde VARIABLE puede tomar la forma que quieras, aunque
porconveniosueleirsiempreenmaysculas.Adems,bashessensiblealasmaysculasyminsculas.Elvaloresalfanumrico.
Loquedeclarescuandoescribesunavariablesequedadentrodebash.
Pararecuperarelvalordeunavariablepuedoescribirelnombrede la variableprecedidadel smbolo$.Porejemplo, sihago lassiguientesdeclaraciones:~$ VAR=F1 ~$ cat F1(serlomismoquesipongo:cat $VAR).
Ysipongo:
~$ VAR=ls ~$ $VAR(serlomismoqueejecutarls)
ImplantacindeSistemasOperativos
26
Enbashpuedesmeterloquequieras:rutas,comandos,etc.Ten
encuentaqueparamodificarcualquiervariabledeentornosiempretendremospermisosporquesernuestrashell.VariablePATH.
Esta variableesmuy importante. Enella se guardan las rutas
dondesepodrnencontrarlosficherosbinarios(ejecutables).Utilizarlanosevita tenerque escribir la rutaabsolutade cada comandoalinvocarlo.Lasrutasalmacenadasestnseparadaspor:
Pordefecto,PATHcontiene todas las rutasexistentespara losarchivosbinarios. SimodificoPATH y sobrescribo su valor, perderemos todas las rutas y ser incapaz de ubicar los programas queejecutemos,ypor tanto,nopodrejecutarlosamenosquenosencontremosensumismaruta.
Alejecutarunprograma,bashvaprobando lasdistintas rutascontenidasenPATHhastadarconlaubicacindelmismo.ParameternuevasrutasaPATH,sineliminarlasexistentes,habrqueescribir:
~$ PATH=$PATH:/nueva/ruta
Tenencuentaquealintroducirelsmbolo$antesdelavariable
estamosrecuperandosuvalor(talycomosedijomsarriba).ElordenenelqueintroduzcaslasvariablesaPATHserrespetadoporbash.Siporejemplopongo:
~$ PATH=.:$PATH
Harquesiemprequevayaaarrancarunprograma,bashbus
queprimeroeneldirectorioenelquemeencuentre.Hasde saberqueaunqueeliminemosel valorpordefectode
PATH,bashsiemprepodrejecutarloscomandosechoyexit,puessoncomandosinternos.
Algunasvariablesdeentornomsson:HOME,MAIL,PS1,HISTORY,CLASSPATH.
SISTEMADEFICHEROS
CARACTERSTICAS
ElsistemadeficherosesparecidoalUFS(UnixFileSystem),por
lo que slo existe un rbol y por tanto slo tiene una raz (/). Elsistemasiemprediferenciaentremaysculasyminsculasylosficherosno tienenextensin. Los ficheros y losdirectorios son lomismo(ambostienenlosmismosmetadatos).
Elsistemadeficherosestbasadoenelconceptodeinodo.
Inodo.Losinodoshacenreferenciaaunaestructuradedatos,unaes
pecie de ficha con diferentes campos (por ejemplo, el bloque decontrol,losmetadatosdelfichero).Elinodoalmacenalosmetadatosdecadaficheroexistiendouninodoporcadadirectorio.Guardanunalistacon la localizacinde losbloquesdediscodondeestguardadocada fichero. Estos bloques se gestionan en grupos, reduciendo lafragmentacindelosficheros.
A travsde la rutade los ficheros llegamosa sunombrequetendrasociadounnmerode inodo;dichonmeroestarrecogidoen la tabla de inodos. Esta tabla se carga durante el arranque. Latablasealmacenaenlaprimerapartedeldiscoysecargaenmemoria(pudiendocargarseporbloques).
Cadatablaemparejanombresynmerosde inodos.Porejemplo,sieneldirectorioraztuviramoslasiguientetabla(elinododelaraznohayquebuscarlo,estenlugarconocido):
Directorios inodo. 1.. 1bin 4dev 7
Enestatablalosdirectorios.y..apuntanalaraz,porlo
quecompartenelmismoinodo.Siquieroleer/bin/ls,voyarazy/binestenelinodo4.Voyalatabladeinodosyenelinodo4estn losmetadatosde/bin,dondepuedo leerqueseencuentraenelbloque144.Leodichobloqueytengootratabladedirectoriosde/bin.
Ficheros inodo/bin/nano 8/bin/ls 3
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 gestinde los inodos(losbloquestiendenaalmacenarsecercanosyengrupos).
ImplantacindeSistemasOperativos
27
Tiposdeficheros.ExistendiferentestiposdeficherosqueLinux identificaconun
carcter. Utilizaunparalosficherosregulares. Una d para los directorios (Linux los muestra de color
azul). Unabocparalosdispositivos. UnalparalosenlacesSIMBLICOSoblandos.Enellosel
contenidodelbloquedel ficheroenlacees la rutadel fichero enlazado, sera lo que son los accesos directos enWindows.Secreanconln s(desymbolic).Elficheroenlazadoguarda larutadeaccesodel ficheroalqueestenlazado,por loquesiborroeste fichero,elenlazadonovaldrparanada.
Lasintaxisserlasiguiente.Sitengounarchivo,porejemploNotas_Trim2012,yquieromostrarloconunaccesodirectoan012,escribo:
~$ ln s Notas_Trim2012 n012 Deestaforma,cuandohagaunls,meaparecer:
lrw-rw-r-- alumno alumno n012
UnparalosenlacesFSICOSoduros.Enlosenlacesfsicosunmismo inodoestreferenciadodesdedosficherosdiferentes.Losenlacesson laformadecrearaccesosaficherosendiferentes lugares.Para losenlacesFSICOS secreaunnombredeficherosqueapunteaun inodoyareferenciado.Porejemplo,silsapuntaalinodo5,ycreolistaquehacereferenciaaesemismo inodo,tendrunficherocondosnombres (enLinuxelnmerode ficherosquehayeselnmerodeinodosexistentes).Nosepuedencrearenlacesfsicosadirectorios.Los enlaces se crean con el comando ln (link). Porejemplo,sitengoelficheros/tmp/hola,yquieroenlazarloconunficheroqueannoexiste llamadoadios,paraqueadiosapuntealmismoinodoquehola,escribir:
~$ ln /tmp/hola /tmp/adios
Siejecutamosls inosdevolverelnmerode inodoquecorrespondeaesenombre.Ylosdosficherosaparecernconunfondoazul:432455 adios 432455 hola Siguiendoconelejemploanterior,siescribo:
~$ echo saludo > /tmp/hola
Volcarenelficheroholaelcontenidosaludo.Automticamente, al estar hola y adios enlazados, saludotambinestarenadios.Siahoraescribo:
~$ rm /tmp/hola
Eliminarhola,peronoese inodo,pueselsistemade ficherosno liberaun inodohastaqueno se haneliminadotodos losnombresquetienereferenciado.Para liberareseinodohabrqueescribirtambin:
~$ rm /tmp/adios
Paraverlosmetadatosdelficheroylosnombresqueapuntanacadainodoseutilizals l.
Montajes.
Es unmecanismo que asocia el fichero de dispositivo de una
unidaddealmacenamientoconundirectoriodelrbol.Permiteampliar el espacio de nombres, accediendo a ellos a travs de otrasunidades.Elmontajeesnecesarioparautilizarlasunidadesdemaneratransparente.
Para extraer fsicamente unaunidad se tieneque desmontar.Tanto elmontaje comoeldesmontaje eran tareas tradicionalmentede root. Dicho montaje se puede automatizar durante el arranqueutilizando/etc/fstab,aunquehoydalorealizanlosgestoresdeescritoriodemaneraautomtica.
Para realizarunmontaje se sueleacudiraldirectorio /devdondeseencuentran los ficherosdedispositivos,de formaqueparamontarunaunidaddecdromescribiremos:
~$ mount /dev/cdrom1 /mnt/cdrom
Siempre que hayamos creado antes el directorio cdrom enmnt.Paradesmontarlaunidadhabrqueescribir:
~$ umount /dev/cdrom1 /mnt/cdrom
Conloquelashellnosreponder:
umount: /mnt/cdrom: no montado Organizacin.
AunqueLinuxmantienesurbolorganizadoenzonas,soncon
veniosnooficiales,por loqueestaorganizacinpuede seralteradaporunadministrador.Muchasaplicacionespresuponenciertascosasdel sistema de ficheros, por ejemplo, que tiene una organizacinhorizontal, yaque cadaaplicacin coloca sus ficherosendirectorios
ImplantacindeSistemasOperativos
28
temticos,nocomoenWindows,queseinstalatodounprogramaenunsolodirectorio.
Losficherosseorganizanenlossiguientesdirectorios: /bin.Suele indicar lapresenciadebinarios (ejecutables),
compiladoso scripts (programashechosen lenguajes interpretados no se dice script de C porque estcompilado). En este directorio estn los ejecutables fundamentales: ls, tail,head
/usr/bin.Sesuelenmeter losejecutablessin losqueLinuxseguirafuncionando.
/usr.Suele indicar informacinpropiadeusuarios.Antesestabanlascuentasdeusuarios,peroalcrearse/home,sequedcomouncajndesastre.Noesfundamental.
/sbin.Suele indicarbinariosdestinadosalsuperusuariooroot.
/dev (device). Suele recoger los ficheros de losdispositivos,sontodonombresdeficherosquenoexisten.Esunaestructura en memoria, cuando apago, desaparece y secreaalarrancar.Elnombrede losdispositivosestvaco,ocupamuypocamemoria,sonconductoshacia losdispositivos. Cuando instalas un driver, ste crea un/dev/devicequeseescribirenelkernel,porloquesiempresecrearalarrancarlamquina.
/home.Indicadirectoriosdecuentasdeusuario.Noesoriginal,puestienemsdetresletras.
/var.Aquserecogelainformacinvariable,cualquiercosa que vaya a ser modificada frecuentemente. Porejemplo,si instalounabasededatos,sumotorestaren/bin, sus libreras en /lib y sus tablas en/var/tablas.Alserinformacinvariableeldirectorioestar cambiando constantemente, por lo que antes(cuandolavel
Top Related