SlideShare una empresa de Scribd logo
1 de 17
Programación de IA-32
   Modo Protegido

      Introducción


    Erwin Meza Vega
IA-32 Modo Protegido
   Permite tener acceso a todas las características
    del procesador
       Se introdujo en la arquitectura Intel en los
        procesadores 286 y se mejoró notablemente con el
        386
       En su aspecto básico, en los procesadores actuales
        funciona de la misma forma que en un 386
       A partir de este modo se puede pasar al modo
        extendido de 32 bits (para procesadores de 64 bits)
IA-32 Modo Protegido
   Características más importantes que se pueden
    usar en modo protegido:
       Protección (niveles de privilegios)
       Modo segmentado *
       Espacio de direcciones lineal de 32 bits (registros de
        propósito general)
       Multitarea
       Acceso a otros modos de operación (modo virtual 8086,
        modo extendido, modo real)
       Paginación de memoria
Paso de Modo Real a Modo
              Protegido
Para pasar de modo real a modo protegido se debe
  realizar por lo menos los siguientes pasos:
• Definir la organización de la memoria, por medio de
  la Tabla Global de Descriptores (GDT)
• Habilitar la línea de direcciones A20, para poder
  especificar direcciones de memoria de más de 20
  bits.
• Modificar el registro CR0 para habilitar el flag PE.
• Saltar a una instrucción que se encuentre dentro
  de un segmento de código válido.
Organización de la memoria
   La memoria se maneja en un esquema segmentado.
   Cada segmento puede tener cualquier un tamaño de: 1
    a 232 bytes
   La memoria se controla mediante descriptores de
    segmento, que se almacenan en una estructura de
    datos denominada GDT.
   Los registros de segmento se denominan “selectores” y
    funcionan de forma diferente al modo real.
   El valor almacenado en los registros de segmento se
    usa como subíndice en la GDT.
Organización de la memoria
 Dirección Lógica
                                  Dirección Lineal
Selector Offset
(16 bits) (32 bits)
                                                              Segmento



           Descriptor de Segmento
                                                     Offset
           Base
           Límite (tamaño)
           Nivel de privilegios



                                                                GDT
Tabla Global de Descriptores (GDT)
Tabla (arreglo) que contiene una serie de estructuras de
  datos llamadas Descriptores.
La GDT puede contener hasta 213 descriptores. Cada
  descriptor tiene un tamaño de 8 bytes (64 bits).
Entre los diferentes tipos de descriptores que se puede
  almacenar en la GDT se encuentran los Descriptores
  de Segmento. Estos almacenan la información de un
  segmento en la memoria:
• Dirección base
• Tamaño
• Privilegios
• Estado
Tabla Global de Descriptores (GDT)
                                       El GDT es una estructura de
                                       datos que se almacena en
                                       memoria. Debe estar alineada
                                       a un límite de 8 bytes.
                                       Su ubicación y tamaño se
                                       describen en el registro GDTR.




Tabla Global de
Descriptores      Descriptor

                  Descriptor
                                       Registro GDTR
                  Descriptor NULO
                                    Base      Límite
Descriptores de Segmento
Dentro de la GDT se almacenan (entre otros)
  descriptores de segmento. En modo protegido, se
  requiere que la GDT contenga al menos tres
  descriptores:
• El primer descriptor de la GDT siempre es nulo
• Un descriptor para el segmento de código
• Un descriptor para el segmento de datos
Por simplicidad, la mayoría de sistemas operativos
  configuran sólo estos tres segmentos.
Los segmentos de código y datos se configuran con
  base = 0 y con límite (tamaño) = 4 GB, lo que
  significa que se utiliza el modo Flat (plano).
Formato de un Descriptor de
        Segmento




            Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1
Registros de Segmento
             (Selectores)
En modo protegido el valor almacenado en un
 registro de segmento (selector) tiene el
 siguiente formato:




          Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1
Línea de Direcciones A20
              (A20 Gate)
• Por razones históricas, cuando el procesador se
  encuentra en modo real, su línea de direcciones
  20 (A20 Gate) se encuentra deshabilitada.
• Cualquier dirección de memoria mayor a 220
  (1MB), se “trunca” al limite de 1 MB.
• Anteriormente la línea A20 se podía habilitar
  mediante un pin en el teclado.
• En la actualidad este pin no existe, pero se
  puede programar el controlador 8042 (teclado)
  para habilitar la línea A20.
Línea de Direcciones A20
                  (A20 Gate)
Para habilitar la línea de direcciones A20 se debe realizar el siguiente
  proceso:
1. Leer el bit de estado del controlador 8042, disponible en el puerto de
    E/S 0x64.
2.   Si el controlador del teclado se encuentra listo, el segundo bit de su
     estado debe ser cero. En caso contrario, ir al paso 1.
3.   Escribir el valor 0xd1 en el puerto de E/S 0x64. El valor 0xd1 le
     indica al controlador que posteriormente se enviará otro byte que
     contiene la configuración a establecer.
4.   Repetir los pasos 1 y 2 para verificar que el controlador de teclado
     haya recibido el comando.
5.   Escribir el valor 0xdf en el puerto de E/S 0x60. Este valor habilita el
     bit A20 dentro del controlador del teclado.
6.   Repetir los pasos 1 y 2 para verificar que el controlador ha aceptado
     el comando.
Registro CR0
Este registro controla la ejecución del procesador.
 Su formato se muestra en la siguiente figura:



              Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1




El bit 0 de CR0 (Protection Enable) permite
  habilitar el modo protegido. No obstante antes
  de habilitar este bit se debe configurar la GDT y
  habilitar la línea de direcciones A20.
Secuencia para paso a modo
                protegido
1. Deshabilitar las interrupciones
  a.   Habilitar la línea de direcciones A20
2. Cargar el registro GDTR con la dirección base y el tamaño
   del GDT configurado con anterioridad.
3. Habilitar el bit 0 (PE) del registro CR0
4. Saltar mediante ljmp o lcall a una instrucción que se
   encuentre dentro de un segmento de código válido en modo
   protegido.
5. Si es necesario, cargar el registro LDTR con un LDT válido.
6. Si se pretende usar multi-tarea, cargar un registro de tareas
   válido en el registro TR.
7. Actualizar los registros de segmento DS, ES, FS, GS y SS
   para que contengan un selector válido.
Pasos adicionales
Al pasar a modo protegido, no se pueden usar los
  servicios de la BIOS.
Se debe configurar una estructura llamada IDT
  (Interrupt Descriptor Table), la cual define las
  rutinas de manejo de interrupción.
Sólo después de configurar una IDT válida se pueden
  habilitar las interrupciones. Si accidentalmente se
  habilitan, el procesador se reiniciará
  automáticamente en la próxima ejecución de reloj
  debido a que no se ha definido una rutina de
  manejo de interrupción.
Referencias

              Manuales de Intel
    http://www.intel.com/products/processor/manuals/
 Intel® 64 and IA-32 Architectures Software Developer's
ManualSystem Programming Guide, Part 1, Order Number
                        253668

Más contenido relacionado

La actualidad más candente

Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
sueich
 
MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUAL
andresinf
 
Multiprogramacion
MultiprogramacionMultiprogramacion
Multiprogramacion
IrisMTF16
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
Ricardo Quintero
 
Modos de direccionamiento.
Modos de direccionamiento.Modos de direccionamiento.
Modos de direccionamiento.
deaisai
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
Carlos Solano
 
Arquitectura de computadoras unidad 2 y 3
Arquitectura de computadoras unidad 2 y 3Arquitectura de computadoras unidad 2 y 3
Arquitectura de computadoras unidad 2 y 3
m220
 

La actualidad más candente (20)

Consideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMSConsideraciones para elegir un buen DBMS
Consideraciones para elegir un buen DBMS
 
Diagrama de transición de estados
Diagrama de transición de estadosDiagrama de transición de estados
Diagrama de transición de estados
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUAL
 
Funciones y Componente de un Sistema de Gestión de Base de Datos
Funciones y Componente de un Sistema de Gestión de Base de DatosFunciones y Componente de un Sistema de Gestión de Base de Datos
Funciones y Componente de un Sistema de Gestión de Base de Datos
 
Multiprogramacion
MultiprogramacionMultiprogramacion
Multiprogramacion
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Modos de direccionamiento.
Modos de direccionamiento.Modos de direccionamiento.
Modos de direccionamiento.
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Programmable peripheral interface 8255
Programmable peripheral interface 8255Programmable peripheral interface 8255
Programmable peripheral interface 8255
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Reglas de Codd
Reglas de CoddReglas de Codd
Reglas de Codd
 
Exposicion JSF
Exposicion JSFExposicion JSF
Exposicion JSF
 
Lecture 5 process concept
Lecture 5   process conceptLecture 5   process concept
Lecture 5 process concept
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Arquitectura de computadoras unidad 2 y 3
Arquitectura de computadoras unidad 2 y 3Arquitectura de computadoras unidad 2 y 3
Arquitectura de computadoras unidad 2 y 3
 

Destacado

Presentacion beneficios cirena tv saber vivir
Presentacion beneficios cirena  tv saber vivirPresentacion beneficios cirena  tv saber vivir
Presentacion beneficios cirena tv saber vivir
perez-rull
 
689 371-respiracion bucal present
689 371-respiracion bucal present689 371-respiracion bucal present
689 371-respiracion bucal present
fonoemprof
 
Clase 6 respirador bucal
Clase 6 respirador bucalClase 6 respirador bucal
Clase 6 respirador bucal
Karel Bernt
 
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the CloudMMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
Xavier Amatriain
 

Destacado (18)

Presentacion beneficios cirena tv saber vivir
Presentacion beneficios cirena  tv saber vivirPresentacion beneficios cirena  tv saber vivir
Presentacion beneficios cirena tv saber vivir
 
"Nunca Comas Solo" por Keith Ferrazzi ( Resumen )
"Nunca Comas Solo" por Keith Ferrazzi  ( Resumen )"Nunca Comas Solo" por Keith Ferrazzi  ( Resumen )
"Nunca Comas Solo" por Keith Ferrazzi ( Resumen )
 
689 371-respiracion bucal present
689 371-respiracion bucal present689 371-respiracion bucal present
689 371-respiracion bucal present
 
Clase 6 respirador bucal
Clase 6 respirador bucalClase 6 respirador bucal
Clase 6 respirador bucal
 
Chela stress test
Chela stress testChela stress test
Chela stress test
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your Application
 
May: If I Were 22
May: If I Were 22May: If I Were 22
May: If I Were 22
 
Cwin16 - Paris - ux design
Cwin16 - Paris - ux designCwin16 - Paris - ux design
Cwin16 - Paris - ux design
 
Marc Stickdorn & Jakob Schneider – Mobile ethnography and ExperienceFellow, a...
Marc Stickdorn & Jakob Schneider – Mobile ethnography and ExperienceFellow, a...Marc Stickdorn & Jakob Schneider – Mobile ethnography and ExperienceFellow, a...
Marc Stickdorn & Jakob Schneider – Mobile ethnography and ExperienceFellow, a...
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
 
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the CloudMMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
MMDS 2014 Talk - Distributing ML Algorithms: from GPUs to the Cloud
 
Cwin16 tls-partner-hpe-digital economy & Hybrid IT
Cwin16 tls-partner-hpe-digital economy & Hybrid ITCwin16 tls-partner-hpe-digital economy & Hybrid IT
Cwin16 tls-partner-hpe-digital economy & Hybrid IT
 
Disciplined agile business analysis
Disciplined agile business analysisDisciplined agile business analysis
Disciplined agile business analysis
 
How Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer ExperienceHow Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer Experience
 
How to Start a Startup at NYU
How to Start a Startup at NYUHow to Start a Startup at NYU
How to Start a Startup at NYU
 
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
 
Introduction to the Innovation Corps (NSF I-Corps)
Introduction to the Innovation Corps (NSF I-Corps)Introduction to the Innovation Corps (NSF I-Corps)
Introduction to the Innovation Corps (NSF I-Corps)
 
April: My Best Mistake
April: My Best MistakeApril: My Best Mistake
April: My Best Mistake
 

Similar a Ia32 Modo Protegido

aspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensambladoraspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensamblador
Gloria Azúa
 
Cuáles son las mainboard y los procesadores más recientes en el mercado
Cuáles son las mainboard y los procesadores  más recientes en el mercadoCuáles son las mainboard y los procesadores  más recientes en el mercado
Cuáles son las mainboard y los procesadores más recientes en el mercado
Karina Coba
 
Microprocesadores ya
Microprocesadores yaMicroprocesadores ya
Microprocesadores ya
070810pipe
 
Microprocesadores ya
Microprocesadores yaMicroprocesadores ya
Microprocesadores ya
070810pipe
 
Gobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xmGobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xm
Biblioman Aquihayapuntes
 

Similar a Ia32 Modo Protegido (20)

Modo protegido
Modo protegidoModo protegido
Modo protegido
 
Guía de arquitectura de computadoras II
Guía de arquitectura de computadoras IIGuía de arquitectura de computadoras II
Guía de arquitectura de computadoras II
 
Guía de arquitectura de computadoras II-Preguntas y Respuestas
Guía de arquitectura de computadoras II-Preguntas y RespuestasGuía de arquitectura de computadoras II-Preguntas y Respuestas
Guía de arquitectura de computadoras II-Preguntas y Respuestas
 
aspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensambladoraspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensamblador
 
Los procesadores
Los procesadoresLos procesadores
Los procesadores
 
Los procesadores
Los procesadoresLos procesadores
Los procesadores
 
computadoras
computadoras computadoras
computadoras
 
informati
informatiinformati
informati
 
Cuáles son las mainboard y los procesadores más recientes en el mercado
Cuáles son las mainboard y los procesadores  más recientes en el mercadoCuáles son las mainboard y los procesadores  más recientes en el mercado
Cuáles son las mainboard y los procesadores más recientes en el mercado
 
Tfase1_103380_55
Tfase1_103380_55 Tfase1_103380_55
Tfase1_103380_55
 
Ensamble y Mantenimiento de Compitadoras-UNAD_Fase1-grupo 103380_64_Victor_Ar...
Ensamble y Mantenimiento de Compitadoras-UNAD_Fase1-grupo 103380_64_Victor_Ar...Ensamble y Mantenimiento de Compitadoras-UNAD_Fase1-grupo 103380_64_Victor_Ar...
Ensamble y Mantenimiento de Compitadoras-UNAD_Fase1-grupo 103380_64_Victor_Ar...
 
Fase1 grupo 103380_64_victor_ardila
Fase1 grupo 103380_64_victor_ardilaFase1 grupo 103380_64_victor_ardila
Fase1 grupo 103380_64_victor_ardila
 
Control hd conmicrocontrolador
Control hd conmicrocontroladorControl hd conmicrocontrolador
Control hd conmicrocontrolador
 
Trabajo 1
Trabajo 1Trabajo 1
Trabajo 1
 
Microprocesadores ya
Microprocesadores yaMicroprocesadores ya
Microprocesadores ya
 
Microprocesadores ya
Microprocesadores yaMicroprocesadores ya
Microprocesadores ya
 
Fase1-Ensamble y mantenimiento-UNAD
Fase1-Ensamble y mantenimiento-UNADFase1-Ensamble y mantenimiento-UNAD
Fase1-Ensamble y mantenimiento-UNAD
 
Manual c18
Manual c18Manual c18
Manual c18
 
Fase 1 - Ensamble y Mantenimiento
Fase 1 - Ensamble y MantenimientoFase 1 - Ensamble y Mantenimiento
Fase 1 - Ensamble y Mantenimiento
 
Gobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xmGobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xm
 

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 

Último (20)

Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Ia32 Modo Protegido

  • 1. Programación de IA-32 Modo Protegido Introducción Erwin Meza Vega
  • 2. IA-32 Modo Protegido  Permite tener acceso a todas las características del procesador  Se introdujo en la arquitectura Intel en los procesadores 286 y se mejoró notablemente con el 386  En su aspecto básico, en los procesadores actuales funciona de la misma forma que en un 386  A partir de este modo se puede pasar al modo extendido de 32 bits (para procesadores de 64 bits)
  • 3. IA-32 Modo Protegido  Características más importantes que se pueden usar en modo protegido:  Protección (niveles de privilegios)  Modo segmentado *  Espacio de direcciones lineal de 32 bits (registros de propósito general)  Multitarea  Acceso a otros modos de operación (modo virtual 8086, modo extendido, modo real)  Paginación de memoria
  • 4. Paso de Modo Real a Modo Protegido Para pasar de modo real a modo protegido se debe realizar por lo menos los siguientes pasos: • Definir la organización de la memoria, por medio de la Tabla Global de Descriptores (GDT) • Habilitar la línea de direcciones A20, para poder especificar direcciones de memoria de más de 20 bits. • Modificar el registro CR0 para habilitar el flag PE. • Saltar a una instrucción que se encuentre dentro de un segmento de código válido.
  • 5. Organización de la memoria  La memoria se maneja en un esquema segmentado.  Cada segmento puede tener cualquier un tamaño de: 1 a 232 bytes  La memoria se controla mediante descriptores de segmento, que se almacenan en una estructura de datos denominada GDT.  Los registros de segmento se denominan “selectores” y funcionan de forma diferente al modo real.  El valor almacenado en los registros de segmento se usa como subíndice en la GDT.
  • 6. Organización de la memoria Dirección Lógica Dirección Lineal Selector Offset (16 bits) (32 bits) Segmento Descriptor de Segmento Offset Base Límite (tamaño) Nivel de privilegios GDT
  • 7. Tabla Global de Descriptores (GDT) Tabla (arreglo) que contiene una serie de estructuras de datos llamadas Descriptores. La GDT puede contener hasta 213 descriptores. Cada descriptor tiene un tamaño de 8 bytes (64 bits). Entre los diferentes tipos de descriptores que se puede almacenar en la GDT se encuentran los Descriptores de Segmento. Estos almacenan la información de un segmento en la memoria: • Dirección base • Tamaño • Privilegios • Estado
  • 8. Tabla Global de Descriptores (GDT) El GDT es una estructura de datos que se almacena en memoria. Debe estar alineada a un límite de 8 bytes. Su ubicación y tamaño se describen en el registro GDTR. Tabla Global de Descriptores Descriptor Descriptor Registro GDTR Descriptor NULO Base Límite
  • 9. Descriptores de Segmento Dentro de la GDT se almacenan (entre otros) descriptores de segmento. En modo protegido, se requiere que la GDT contenga al menos tres descriptores: • El primer descriptor de la GDT siempre es nulo • Un descriptor para el segmento de código • Un descriptor para el segmento de datos Por simplicidad, la mayoría de sistemas operativos configuran sólo estos tres segmentos. Los segmentos de código y datos se configuran con base = 0 y con límite (tamaño) = 4 GB, lo que significa que se utiliza el modo Flat (plano).
  • 10. Formato de un Descriptor de Segmento Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1
  • 11. Registros de Segmento (Selectores) En modo protegido el valor almacenado en un registro de segmento (selector) tiene el siguiente formato: Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1
  • 12. Línea de Direcciones A20 (A20 Gate) • Por razones históricas, cuando el procesador se encuentra en modo real, su línea de direcciones 20 (A20 Gate) se encuentra deshabilitada. • Cualquier dirección de memoria mayor a 220 (1MB), se “trunca” al limite de 1 MB. • Anteriormente la línea A20 se podía habilitar mediante un pin en el teclado. • En la actualidad este pin no existe, pero se puede programar el controlador 8042 (teclado) para habilitar la línea A20.
  • 13. Línea de Direcciones A20 (A20 Gate) Para habilitar la línea de direcciones A20 se debe realizar el siguiente proceso: 1. Leer el bit de estado del controlador 8042, disponible en el puerto de E/S 0x64. 2. Si el controlador del teclado se encuentra listo, el segundo bit de su estado debe ser cero. En caso contrario, ir al paso 1. 3. Escribir el valor 0xd1 en el puerto de E/S 0x64. El valor 0xd1 le indica al controlador que posteriormente se enviará otro byte que contiene la configuración a establecer. 4. Repetir los pasos 1 y 2 para verificar que el controlador de teclado haya recibido el comando. 5. Escribir el valor 0xdf en el puerto de E/S 0x60. Este valor habilita el bit A20 dentro del controlador del teclado. 6. Repetir los pasos 1 y 2 para verificar que el controlador ha aceptado el comando.
  • 14. Registro CR0 Este registro controla la ejecución del procesador. Su formato se muestra en la siguiente figura: Imagen tomada de: Manual de Intel IA32-3a : Systems Programmer’s Guide Part 1 El bit 0 de CR0 (Protection Enable) permite habilitar el modo protegido. No obstante antes de habilitar este bit se debe configurar la GDT y habilitar la línea de direcciones A20.
  • 15. Secuencia para paso a modo protegido 1. Deshabilitar las interrupciones a. Habilitar la línea de direcciones A20 2. Cargar el registro GDTR con la dirección base y el tamaño del GDT configurado con anterioridad. 3. Habilitar el bit 0 (PE) del registro CR0 4. Saltar mediante ljmp o lcall a una instrucción que se encuentre dentro de un segmento de código válido en modo protegido. 5. Si es necesario, cargar el registro LDTR con un LDT válido. 6. Si se pretende usar multi-tarea, cargar un registro de tareas válido en el registro TR. 7. Actualizar los registros de segmento DS, ES, FS, GS y SS para que contengan un selector válido.
  • 16. Pasos adicionales Al pasar a modo protegido, no se pueden usar los servicios de la BIOS. Se debe configurar una estructura llamada IDT (Interrupt Descriptor Table), la cual define las rutinas de manejo de interrupción. Sólo después de configurar una IDT válida se pueden habilitar las interrupciones. Si accidentalmente se habilitan, el procesador se reiniciará automáticamente en la próxima ejecución de reloj debido a que no se ha definido una rutina de manejo de interrupción.
  • 17. Referencias Manuales de Intel http://www.intel.com/products/processor/manuals/ Intel® 64 and IA-32 Architectures Software Developer's ManualSystem Programming Guide, Part 1, Order Number 253668