Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de 32 bits en 64 bits
COMO WINDOWS 64BITS EJECUTA APLICACIONES
DE 32BITS
Como se puede ver, el emulador WOW64 debe realizar el cambio de direccin del
sistema de ficheros para garantizar que el cdigo de 32 y 64 bits siga separado.
Pero mantener archivos del DLL separados es solamente el principio. El
emulador WOW64 realiza el cambio de direccin del sistema de ficheros para
varios componentes clave del sistema operativo de Windows.
Otro lugar en Windows en donde se utiliza el cambio de direccin del sistema de
aplicaciones
32 bits estn instaladas en una carpeta nombrada Crogram Files (x86). S
in embargo, la carpeta de archivos de programa puede no estar siempre en el
que llama
funciones para obtener el nombre real de esta car eta en el PC en cues in. En
as versiones de 32 bits de Windows, la funcin SHGetSpecialFolder() se utiliza par
determinar el nombre y la localizacin de la carpeta de archivos de programa. Per
o en la versin de un S.O. x64, la funcin mira si la aplicacin funciona
a 32 bits
a 64 y realiza el cambio de direccin de la carpeta apuntando a la adecuada. L
a instalacin de una aplicacin no es la nica vez que se hace referencia a la c
arpeta de archivos de programa; puede tambin ser referenciada en el tiempo
de ejecucin. Aunque hay varias maneras que una aplicacin pueda determinar el no
mbre y la localizacin de la carpeta de archivos de programa, el empleo de las vari
ables de entorno es lo ms utiliza
o. En una versin de 32 bits de Windows,
la variable de entorno %ProgramFiles% contiene la trayectoria a la carpeta de
archivos de programa. En una versin x64 de Windows, es
variable de entorno tambin se utiliza, pero trabaja de una forma diferen
te. La regla ms importante de la plataforma x64 es que no puedes mezclar
de ninguna manera cdigo de 64 y 32 bits. Las variables de entorno se llaman
a menudo dentro de ficheros de comandos por lotes (.CMD o .BAT) o por scripts. Sie
do ste el caso, ejecutar scripts puede ser un poco peligroso en un entorno de 6
4 bits. Debe Windows tratar el script como cdigo de 32 bits o como de 64? La r
espuesta afecta no slo al contenido de las variables de entorno, sino tambin que
los programas que llame el propio script. Por ejemplo, un script de 64 bi
no puede lanzar un proceso de 32 bits (por lo menos no de la manera normal
). Windows consigue solucionar estos problemas ofreciendo dos intrpretes de co
mandos: uno de 64 bits y otro de 32. Las var
les de entorno se establecen de acuerdo al intrprete de com
andos u ilizado
Por ejemplo, si se abre una ventana de comandos lanzando
el comando CMD.EXE en la ventana Inicio/Ejecutar (Run), Windows abrir
rogram
Files. Si se lanza un sc
t, ste podr ejecutar aplicacion s y comandos de 64 bits, p
ts.
ro no de 32 bi
aplicacin o fichero de comandos que cumpla las normas COM. COM permite que
alguien con habilidades de programacin mnimas pueda escribir una aplicacin o
un script que interacte con Windows. La persona que escribe la aplicacin o el
script puede hacerlo sin tener que aprender un lenguaje de programacin tal como
C++, y sin tener que aprender todos los interfaces de programacin
de Windows (APIs).
Windows se dise de manera que todos los objetos COM disponibles estuvieran
dentro del registro. Para garantizar que el cdigo de 32 bits est aislado
totalmente del cdigo de 64 bits, los objetos COM de 32 y 64bits se almacenan en
dos partes distintas del registro.
En lenguaje de Microsoft un servidor COM es un objeto que hace disponible su
funcionalidad a travs de COM. Las aplicaciones y scripts que hacen uso de esa
funcionalidad se llaman clientes COM.
Cuando se habla de un servidor COM in-process se refiere generalmente a las
bibliotecas (archivos .DLL), porque stas se ejecutan como parte del mismo
proceso que las aplicaciones y scripts que los llamaron. Un servidor COM out-ofprocess es un objeto COM (generalmente un fichero ejecutable) que se ejecuta en
un proceso distinto que la aplicacin o script que lo llam.
Cuando una aplicacin intenta registrar un objeto COM, el
emulador WOW64 pondr las entradas correspondientes en la seccin apropiada
del registro, dependiendo de si el objeto COM es un objeto de 64 o de 32 bits.
Cuando una aplicacin o un script que se supone que son de 32 bits intentan
cargar un objeto COM en el proceso, el emulador WOW64 redirecciona el registro
para estar seguro que la aplicacin o script lee la porcin del registro que refiere a
objetos COM de 32 bits. Si el registro no contiene una referencia a una versin de
32 bits del objeto COM solicitado, WOW64 dir a la aplicacin que no existe el
objeto, aunque exista una versin 64 bits disponible. La misma cosa sucede si una
aplicacin de 64 bits solicita un objeto COM. Windows comprobar la parte del
registro correspondiente a 64 bits para saber si hay una referencia al objeto y no
har caso de cualquier objeto COM de 32 bits.