CtN'Rat>tINVtSlItACIflY|lFaK«!»HS«VANZAltSIELI.P.N.■IBL.IOTKOA^nENIEHIAELECTRICECENTRODEINVESTIGACIÓNYDEESTUDIOSAVANZADOSDELINSTITUTOPOLITÉCNICONACIONALDEPARTAMENTODEINGENIERÍAELÉCTRICASECCIÓNCOMPUTACIÓNEmulaciónPrototipodeSistemasDOS/8086«■TMp(HnsiHACIMYtiCSTUlIfSAVMZAieiDELI.P.N.Tesisquepresenta■•■L.lOTtOA'^ENIEAIAELECTRICENélidaAliciaCasasReyesfrlNjVESTAV^jlPNParaObtenerelGradode\ADQUISICIÓNrj£L1BR0S_MAESTRAENCIENCIASEnlaEspecialidaddeIngenieríaEléctricaconOpciónenComputaciónDirectordetesis:Dr.JorgeBuenabadChávezMéxico,DistritoFederalAbril,dosmiluno.xw\_..,,OJkj■.ia,£i__■_'„::AGRADECIMIENTOSAgradezco:AlCINVESTAV,porpermitirmeelusodesuinfraestructura.AlConsejoNacionaldeCienciayTecnología,porsuapoyoeconómico.AldoctorJorgeBuenabadChávez,porsuinvaluableapoyoytiempodedicadoaladirecciónyrevisióndeestatesis.AldoctorArturoDíazPérez,porsuapoyoytiempodedicadoalarevisióndeestedocumento.AldoctorJ.OsearOlmedoAguirre,poreltiempodedicadoalarevisióndeestedocumento.AlaseñoraSofíaRezaCruz,porsuapoyodurantemiestanciaenestecentroyenelprocesodetrámitesfinales.AHugoGarcíaMonroy,porlaaportacióndeideasparaeldesarrollodeestatesis.AAmilcarMenesesViveros,porsuapoyoylaaportacióndeideasparaeldesarrollodeestatesis.Ctftilttyf_HuSJU/tciMiYf|I.P.N.■•■LIOTtOA^ENIEA/AELECTAIC/Dedicoestatesis:Amispadres.tt*TMpfIITVfSTHACIMYf|"TUMIm*ZAMSMLI-P.N.■'■LIOTCOA'^FNIEPIAFLECTf?,c#ResumenEldiseñoydesarrollodeunnuevosistemadecómputocontemplaelofrecercompatibilidadconotrossistemasconelpropósitodeganaraceptacióngeneral.UnnuevosistemaAdebecomportarsecomo,oemulara,otrosistemaB;detalmaneraquelosprogramasdesarrolladosparaelsistemaBpuedancorrertambiénenelsistemaA.Enefecto,elsistemaAofreceunsistemaomáquinavirtualB.Eldiseñoydesarrollodeunamáquinavirtualnoestrivial.Esnecesariounconocimientoprofundodelhardwareydelsistemaoperativodelsistemaaemularydelsistemaqueofrecerálaemulación.Yhastadondesabemosnohayundocumentodisponiblequedescribaeldesarrollocompletodeunamáquinavirtual.Estatesispresentaeldiseñoydesarrollodeunamáquinavirtual,unemuladorprototipodelaplataformaconformadaporelsistemaoperativoDOSyelprocesador8086/88,corriendoenunambientemultitareadentrodelsistemaoperativoNeXTSTEPsobreelprocesador80486ycompatibles.Nuestroemuladorsoportaoperacionesdeentrada/salidasobrelaterminalyarchivosendisco.Yconalgunaslimitaciones,escapazdecorrerprogramasejecutablesdesarrolladosenDOSsinmodificarles.NuestroemuladorcompletarálaprácticadecursossobreSistemasOperativosyArquitecturadeComputadoras.Yconalgunasextensiones,permitiráalsistemaNeXTSTEPofrecercompatibilidadcompletaconelsistemaDOS.Además,losconceptosquepresentamossonútilesparaeldesarrollodeaplicacionessobresistemasheterogéneos,dondelacompatibilidadesfundamental.ContenidoResumeni1Introducción12MáquinasVirtuales32.1Introducción.....32.2Organización62.2.1AspectosdeDiseño62.2.2AspectosdeImplementación72.2.3Micronúcleos92.3Ejemplos102.3.1MáquinaVirtual/370...102.3.2EmulacióndeUNIXenChoras..122.3.3EmulacióndeUNIXenMach132.3.4EmulacióndeDOSenWindowsNT...152.3.5Java152.4Resumen.......163Mach173.1DesarrollodeMach...173.2ConceptosFundamentalesdeMach203.3TareaseHilos223.3.1LlamadosparaelManejodeTareaseHilos233.4ComunicaciónEntreProcesos(IPC).253.5MemoriaVirtual.........273.5.1AsignacióndeMemoria293.5.2ProteccionesdeMemoria..30iii3.5.3HerenciadeMemoriaentreTareasRelacionadas303.5.4MapeodeArchivos313.6ManejodeExcepciones313.6.1Filosofíaenelmanejodeexcepciones......313.6.2Pasosenelprocesamientodeexcepciones323.6.3Mensajesdeexcepción..343.7Resumen364Elprocesadori486394.1Organización394.2RegistrosdeControl404.3ManejodeMemoria424.3.1Segmentación444.3.2Paginación...464.4ExcepcioneseInterrupciones•494.4.1AtenciónaExcepcioneseInterrupciones504.5ControldeTareas504.5.1SegmentosdeEstadosdeTarea(TSS)524.6ModosdeOperación.524.6.1ModoVirtual-8086534.6.2PaginaciónparaTareasVirtuales8086......534.6.3ProteccióndentrodeunaTareaVirtual8086544.6.4EntrandoyDejandoelModoVirtual-8086......544.6.5ConfiguracióndelosVectoresdeInterrupción564.7Resumen....575EmulaciónPrototipodelSistemadeArchivosDOS595.1Introducción595.2EstructuradelSistemadeArchivosDOS605.2.1RegistrodeArranque.625.2.2TabladeAsignacióndeArchivos645.2.3Directorio645.3OrganizacióndelaEmulación675.4ServiciosBásicosdeManipulacióndeArchivos...695.4.1DefinicióndelaDTA715.4.2Creación715.4.3Apertura74iv5.4.4Lectura745.4.5Escritura......765.4.6Búsquedadelaprimeraocurrenciaeneldirectorio775.4.7Búsquedadelasiguienteocurrenciaeneldirectorio785.5ServiciosBásicosdeEntradaySalidaEstándar795.5.1Escribirunacadenaeneldispositivodesalidaestándar....795.5.2Entradadesdeeltecladoalamemoria795.6Resumen806MonitorDOS816.1Panoramageneral816.2Modovirtualdelprocesador..826.3Creacióndelhilovirtual846.4Deteccióndeexcepciones..856.5Resumen887Resultados897.1Compilacióndelemulador897.2CreacióndeaplicacionesDOS907.3Pruebas917.4Discusión..928Conclusiones95ACódigoFuente97BProgramasEjemplo129vListadeFiguras2.1Probandounnuevosistemaoperativosobreunamáquinavirtual...52.2MáquinasrealyvirtualenelSistemaVM370112.3EstructuradelaemulacióndeUNIXenChorus122.4LaemulaciónenMachusaelmecanismodetrampolín143.1SoportedeMachparasistemasoperativos,basesdedatosyotrossubsistemas......183.2ProcesoUNIXeHilosyTareasMach213.3TareasdeMachvistascomocontenedoresderecursos....233.4Problemasconelaccesoamemoria283.5Pasosenelprocesamientodeexcepciones...333.6Usodelpuertodeexcepción..........353.7Formatodelcódigoderespuestaaexcepciones.364.1BanderasdelSistemaÍ486.........404.2RegistrosdeDepuración....434.3RegistrosdeManejodeMemoria464.4Formatodeunadirecciónlineal.....474.5RegistroIDTRlocalizandoalaIDTenMemoria514.6Entrandoydejandoelmodovirtual-8086555.1OrganizacióndelSistemadeArchivosdeDOS....615.2EstructuradelBootDOS...625.3EntradasdelaFATparaunarchivode4bloques656.1EmulacióndeDOSsobreMach....83viiCapítulo1IntroducciónLaaceptacióngeneraldeunnuevosistemadecómputonosólodependedeltipoylacalidaddelosserviciosqueofreceparaeldesarrollodeaplicaciones.Muchasaplicacionesdesarrolladasensistemasyaestablecidospresentanunainversióncostosaquenoesfácildecambiaroactualizar.Lacompatibilidadconotrossistemasesunodelosaspectosmásimportantesconsideradoseneldiseñodelosnuevossistemasdecómputo.Microsoftsiemprehacuidadomuchoelofrecercompatibilidadconlasaplicacionesdesusversionesanteriores.AlgosimilarocurreenelcasodeInteleneldesarrollodesusprocesadores,dondecadaactualizaciónsoportaelconjuntodeinstruccionesdelasversionesprevias.Porsupartesoffice[SUN01]aúncuandonopuedecorrerprogramasDOS/Windows,permiteprocesararchivosdesarrolladosenéstossobreUNIX,ofreciendoasíunacompatibilidadrestringida.YSamba[REDHAT99]esunacoleccióndeprogramasquepermiteaclientesyservidoresLinuxyMicrosoftWindows(3.11,95,NT)intercambiararchivosyserviciosdeimpresión.ParaqueunsistemaAseacompatibleconotrosistemaB,AdebeemularelcomportamientodeB,ofreciendoaaplicacioneslosserviciosqueBofrece.Laemulacióndeunsistemapuededesarrollarseensoftware,enhardware,oambos,yesconocidacomomáquinavirtual.Laimplementacióndemáquinasvirtualesnoesunatareafácil.Serequiereunamplioconocimientodelhardwaresobreelcualseencuentraelsistemaoperativoquepermitirálaemulaciónydelsistemaoperativomismo,asícomodelsistemaaemular.Yaunqueexistebibliografíaconconceptosyalgunosaspectosdediseñoeimplementación,noesposibleimaginarsecomorealmentesecontruyenlasmáquinasvirtuales.Deahíqueelobjetivoprimordialdeestatesisseadecaráctereducativo,puespretendeejemplificartodoelprocesoseguidoparalograr12CAPÍTULO1.INTRODUCCIÓNlaconstruccióndeunamáquinavirtual.Estatesispresentaeldiseñoydesarrollodeunamáquinavirtual,unemuladorprototipodelaplataformaconformadaporelsistemaoperativoDOSyelprocesador8086/88,corriendoenunambientemultitareadentrodelsistemaoperativoNeXTSTEP[APPLE01]sobreelprocesador80486ycompatibles.Nuestroemuladorsoportaoperacionesdeentrada/salidasobrelaterminalyarchivosendisco.Yconalgunaslimitaciones,escapazdecorrerprogramasejecutablesdesarrolladosenDOSsinmodificarles.Debidoalacomplejidaddelossistemasoperativos,loscursosdeestetemasonengeneralteóricos,aúncuandoahorayasedisponedelcódigofuentedealgunosdeellos,cosaquenoeraasídesdequelosfuentesdeUNIXdejarondeestardisponiblesainstitucioneseducativas.Conestatesissepretendereforzarloscursosdesistemasoperativos,comoyasehahechoconsistemasoperativoscomoMINIXsobre8086[TANENBAUM94]yXINIX[BUENABAD89].EstatesispodríaaportarideasparalaconstruccióndeunamáquinavirtualquesoporteaMINIXsobreWINDOWS.Además,conciertoesfuerzosepodríalograrlacompatibilidadtotaldeDOSsobreelsistemaoperativoNeXTSTEP.Elrestodelatesisestáorganizadacomosigue.Elcapítulo2presentaunpanoramageneraldelconceptodemáquinasvirtuales,conlafinalidaddeubicarallectorenelcontextodeltrabajorealizado.Elcapítulo3describelascaracterísticasdelmicronúcleoMach,plataformasobrelacualfuncionaelsistemaoperativoNeXTSTEP,sobreelcualdesarrollamosnuestroemulador.Elcapítulo4describelaarquitecturadelprocesador80486deIntel,destacandosuoperaciónenelmodovirtual8086.Estaarquitecturaconstituyelaplataformadehardwaresobrelaqueserealizólaemulación.Elcapítulo5explicalosdetallesdediseñoeimplantacióndelasestructurasdelsistemadearchivosqueemulamosylaemulacióndelosserviciosbásicosparaelmanejodearchivosenDOS.Elcapítulo6presentaeldiseñoeimplantacióndelmonitorquelogralaejecucióndeaplicacionesDOSsobreelsistemaNeXTSTEP.Elcapítulo7presentalosresultadosobtenidosdenuestraemulaciónypruebasrealizadassobreelmismo.Finalmente,enelcapítulo8,presentamoslasconclusionesysugerimostrabajofuturo.Capítulo2MáquinasVirtualesUnamáquinavirtualesunmecanismodehardwareysoftwarequefuncionademaneraidénticaalhardwaredeunacomputadoraparticular.Unsistemadecómputopuedecorrerconcurrentementeunaomásmáquinasvirtuales,posiblementediferentes,yasíofrecercompatibilidadconotrossistemasounambienteparadesarrollarsoftwareparaotrossistemas,entreotrasventajas.Losconceptosyterminologíademáquinasvirtualespresentadosenestecapítulosonesencialesparaentenderlosconceptospresentadosenelrestodelatesis.2.1IntroducciónConceptualmente,unsistemadecómputoestáconstruidomediantecapas.Elhardwareeselnivelmásbajodetodosestossistemas.Elnúcleoejecutándoseenelsiguientenivel
Comentarios de: Tesis: Nélida Alicia Casas - Emulación prototipo de sistemas DOS/8086 (0)
No hay comentarios