scratch operating mikeos from linux assembly process operating-system x86

linux - operating - Gestión de tareas en x86



mikeos (1)

Editado para agregar tu respuesta real :

Arquitectura de software en modo protegido
Tom Shanley
Addison-Wesley Professional (16 de marzo de 1996)
ISBN-10: 020155447X
ISBN-13: 978-0201554472
googlebook , amazon

Mi respuesta

¿Has visto "Entender el Kernel de Linux", 3ra Edición? Está disponible a través de Safari, y es probablemente un buen lugar para comenzar por el lado OS de las cosas. No creo que te dé detalles minuciosos, pero es una guía excelente que probablemente pondría la fuente y arquitectura del kernel de Linux. cosas específicas en contexto. Los siguientes capítulos le dan la narración que está solicitando desde el lado del kernel ("relación entre el hardware y el sistema operativo cuando se produce una interrupción o un cambio de contexto"):

  • Capítulo 3: Procesos
  • Capítulo 4: interrupciones y excepciones
  • Capítulo 7: Programación de procesos


Comprender el Kernel de Linux, 3ª edición .
Daniel P. Bovet; Marco Cesati
Editorial: O''Reilly Media, Inc.
Pub. Fecha: 17 de noviembre de 2005
Imprimir ISBN-13: 978-0-596-00565-8
Imprimir ISBN-10: 0-596-00565-2
Safari , Amazon

Mi recomendación es un libro como este, con el código fuente de Linux y los manuales de Intel y una nevera llena de cerveza, y estarás listo para funcionar.

Un breve fragmento del Capítulo 3: Procesos, para despertar su apetito:

3.3.2. Segmento de estado de la tarea
La arquitectura 80 × 86 incluye un tipo de segmento específico denominado Segmento de estado de tareas (TSS) para almacenar contextos de hardware. Aunque Linux no utiliza conmutadores de contexto de hardware, no obstante se ve obligado a configurar un TSS para cada CPU distinta en el sistema. Esto se hace por dos razones principales:
  • Cuando una CPU de 80 × 86 cambia del modo de usuario al modo kernel, recupera la dirección de la pila del modo kernel del TSS (consulte las secciones "Manejo de hardware de interrupciones y excepciones" en el Capítulo 4 y "Emisión de una llamada al sistema mediante sysenter Instrucción "en el Capítulo 10).
  • Cuando un proceso de Modo de usuario intenta acceder a un puerto de E / S por medio de una instrucción de entrada o salida, la CPU puede necesitar acceder a un Mapa de bits de permisos de E / S almacenado en el TSS para verificar si el proceso permite abordar el puerto.
Más precisamente, cuando un proceso ejecuta una instrucción de entrada / salida de E / S en el modo de usuario, la unidad de control realiza las siguientes operaciones:
  1. Comprueba el campo IOPL de 2 bits en el registro eflags. Si está configurado a 3, la unidad de control ejecuta las instrucciones de E / S. De lo contrario, realiza la siguiente verificación.
  2. Accede al registro tr para determinar el TSS actual y, por lo tanto, el mapa de bits de permiso de E / S adecuado.
  3. Comprueba el bit del mapa de bits de permiso de E / S correspondiente al puerto de E / S especificado en la instrucción de E / S. Si se borra, la instrucción se ejecuta; de lo contrario, la unidad de control genera una excepción de "Protección general".
La estructura tss_struct describe el formato del TSS. Como ya se mencionó en el Capítulo 2, la matriz init_tss almacena un TSS para cada CPU en el sistema. En cada cambio de proceso, el kernel actualiza algunos campos del TSS para que la unidad de control de la CPU correspondiente pueda recuperar de manera segura la información que necesita. Por lo tanto, el TSS refleja el privilegio del proceso actual en la CPU, pero no es necesario mantener los TSS para los procesos cuando no están en ejecución.

Otra referencia potencial en el mismo sentido es esta, que tiene mucho más cosas específicas de x86, y es posible que se beneficie un poco del contraste con PowerPC. Linux® Kernel Primer, The: Un enfoque descendente para las arquitecturas x86 y PowerPC
Claudia Salzberg Rodriguez; Gordon Fischer; Steven Smolski
Editorial: Prentice Hall
Pub. Fecha: 19 de septiembre de 2005
Imprimir ISBN-10: 0-13-118163-7
Imprimir ISBN-13: 978-0-13-118163-2
Safari , Amazon

Finalmente, Linux Kernel Development de Robert Love , 3ra Edición , tiene una descripción bastante detallada de la conmutación de contexto, aunque puede ser redundante con lo anterior. Es un recurso bastante fantástico.

¿Puede alguien señalar algunos libros o recursos en línea que explican en detalle y en un nivel avanzado las características de administración de tareas de x86? Estoy especialmente interesado en comprender la relación entre el hardware x86 y el sistema operativo (estilo POSIX) cuando ocurre una interrupción o cambio de contexto. Los manuales de Intel son muy confusos y parece que no puedo obtener mucho de ellos.

Gracias, -Dhruv