edición general
Sir_Viente

Sir_Viente

En menéame desde enero de 2017

6,10 Karma
21K Ranking
0 Enviadas
0 Publicadas
13 Comentarios
0 Notas
  1. Muy chulo. WSL9x no convierte Linux en un driver; lo que hace es usar un VxD como loader y runtime para ejecutar un kernel Linux directamente en ring 0 dentro de Windows 9x.

    El flujo real es bastante claro mirando el código:

    El VxD implementa un loader ELF mínimo (loader.c + elf.h) que abre vmlinux.elf vía interrupciones DOS, parsea las secciones y las mapea en memoria en una dirección fija (0xd0000000).
    La memoria se reserva con APIs internas del VMM (PageReserve, PageCommit), o sea, Linux vive en memoria del sistema, no como proceso ni como módulo “formal”.
    Luego el driver crea un hilo en la System VM, le asigna una pila (16 KiB) y hace un salto directo al entrypoint del kernel (_start).

    A partir de ahí no hay virtualización: ambos kernels comparten ring 0. El VxD mantiene un bucle de control (ver entry.c) que se encarga de:

    entrar/salir de Linux
    despachar IRQs (hay una máscara de pendientes tipo pending_irqs)
    idle/scheduling cooperativo

    El handling de syscalls es especialmente…   » ver todo el comentario
  2. #16 satispayer
  3. Muchos clics para tan pocos meneos. :-D

menéame