Iso

63
Implantación de Sistemas Operativos Mario Donaire Mendoza 2011 – 2012

description

sistemas operativos

Transcript of Iso

  • 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