El formato ejecutable portable del (el PE) es un formato de archivo para el código de objeto de Executables, y DLLs usado en versiones de 32 bits y 64-bit de los sistemas operativos de Windows el " del término; portable" refiere a la flexibilidad del formato en ambientes numerosos de la arquitectura de los programas del sistema operativo. El formato del PE es básicamente una estructura de datos que encapsula la información necesaria para que el cargador del OS de Windows maneje el código ejecutable envuelto. Esto incluye las referencias dinámicas de la biblioteca para ligar, las tablas de la exportación y de la importación del API, los datos de gerencia de recurso y los datos Roscar-locales del almacenaje (TLS). En sistemas operativos del NT, el formato del PE se utiliza para el EXE, DLL, OBJ, sistema (driver de dispositivo), y otros tipos de archivo. El que los soportes lógico inalterable extensibles interconectan la especificación de indica que el PE es el formato ejecutable estándar en ambientes de EFI.

El PE es una versión modificada del formato de archivo COFF de Unix. PE/COFF es un término alternativo en el desarrollo de Windows.

En sistemas operativos de Windows NT, el PE apoya actual las arquitecturas de sistema de instrucción IA-32, IA-64, y X86-64 (AMD64/Intel64) . Antes del Windows 2000, Windows NT (y así el PE) apoyaron las MIPS, la alfa de la DEC, y arquitecturas de sistema de instrucción de PowerPC . Porque el PE se utiliza en el Windows CE, continúa apoyando varias variantes de la arquitectura de las MIPS, y también apoya el BRAZO (pulgar incluyendo) y arquitecturas de sistema de instrucción de SuperH .

Breve historia

¡ Microsoft emigró al formato del PE con la introducción del sistema operativo de Windows NT 3. Todas las versiones posteriores de Windows, incluyendo Windows 95 /98/ME, apoyan la estructura de archivo. El formato ha conservado la ayuda limitada de la herencia para llenar el vacío entre los sistemas DOS-basado y del NT. Por ejemplo, los jefes de PE/COFF todavía incluyen un programa ejecutable del MS-DOS, que es por abandono un trozo que exhibe el " simple del mensaje; Este programa no se puede funcionar con en mode" del DOS; (o similar). El PE también continúa sirviendo la plataforma cambiante de Windows. Algunas extensiones incluyen el formato del PE de .NET (véase abajo), una versión 64-bit llamada PE32+ (a veces PE+), y una especificación para Windows CE.

Detalles técnicos

Un archivo del PE consiste en un número de jefes y de secciones que digan a la máquina para hacer chorizos dinámica cómo trazar el archivo en memoria. Una imagen ejecutable consiste en varias diversas regiones, que requieren diversa protección de memoria; el comienzo de cada sección se debe alinear tan con un límite de la página. Por ejemplo, se traza la sección de .text (que lleva a cabo código del programa) se traza típicamente como ejecuta/inalterable, y la sección de .data (variables globales de la tenencia) como ninguno-ejecuta/de lectura/grabación. Sin embargo, evitar perder el espacio, las diversas secciones no son página alineada en disco. La parte del trabajo de la máquina para hacer chorizos dinámica es trazar cada sección individualmente y asignar los permisos correctos a las regiones resultantes, según las instrucciones encontradas en los jefes.

Una sección de nota es la tabla de dirección de la importación del (IAT), que se utiliza como tabla de operaciones de búsqueda cuando el uso está llamando una función de Windows API. Porque un programa compilado no puede conocer la posición de memoria de las bibliotecas que depende sobre, se requiere un salto indirecto siempre que se haga una llamada del API. Como los módulos cargables dinámicos de la máquina para hacer chorizos y los ensambla juntos, él escribe instrucciones de salto en las ranuras de IAT, de modo que señalen a las posiciones de memoria de las funciones de biblioteca correspondientes. Aunque esto agrega un salto adicional sobre el coste de una llamada del intra-módulo, el golpe del funcionamiento es sobre todo insignificante y fácilmente digno de la flexibilidad de bibliotecas dinámicas. Si el recopilador sabe delante de tiempo que una llamada estará entre módulos (vía una cualidad del dllimport) él puede producir un código optimizado ese da lugar simplemente a un opcode indirecto de la llamada.

Los archivos del PE no contienen el código de la Posición-independiente. En lugar se compilan a una dirección baja del preferred, y todas las direcciones emitidas por el recopilador/la máquina para hacer chorizos son fijas delante de tiempo. Si un archivo del PE no se puede cargar en su dirección preferred (porque es tomado ya por el algo más), el sistema operativo rebase él. Esto implica el recalcular de cada dirección absoluta y el modificar del código para utilizar los nuevos valores. El cargador hace esto comparando las direcciones preferred y reales de la carga, y calculando un valor del delta . Esto entonces se agrega a la dirección preferred para subir con la nueva dirección de la posición de memoria. Las relocalizaciones bajas se almacenan en una lista y se agregan, según lo necesitado, a una posición de memoria existente. El código resultante es privado ahora al proceso y no más compartible, así que muchas de las ventajas del ahorro de la memoria de DLLs se pierden en este panorama. También retrasa el cargamento del módulo perceptiblemente. Por esta razón el rebasing debe ser evitado donde sea posible, y el DLLs enviado por Microsoft tiene direcciones bajas pre-computadas para no traslaparse. En no rebase el PE del caso por lo tanto tiene la ventaja del código muy eficiente, pero en presencia de rebasing el golpe del uso de la memoria puede ser costoso. Poner en contraste esto con el DUENDE que utiliza completamente código independiente de la posición y una tabla global de la compensación, que negocia de tiempo de ejecución contra uso de la memoria a favor de estes 3ultimo.NET, meta datos, y el formato del PE El marco .NET de Microsoft ha ampliado el formato del PE con las características que apoyan el tiempo de pasada (una puesta en práctica del lenguaje común de la máquina virtual de . Entre las adiciones están un jefe de CLR y sección de los datos de CLR. Sobre la carga de un binario, la ejecución de las producciones del cargador del OS al CLR vía una referencia en la tabla de la IMPORTACIÓN de PE/COFF. El CLR VM entonces carga las secciones del jefe y de los datos de CLR.

La sección de los datos de CLR contiene dos segmentos importantes: Código de los meta datos y de lengua (IL) intermedia:
Los meta datos contienen la información relevante a la asamblea, incluyendo la asamblea manifesta. Un manifesto describe a asamblea detalladamente incluyendo la identificación única (vía un picadillo, un número de versión, un etc.), datos sobre componentes exportados, tipo extenso información (apoyada por el tipo común sistema (CTS)), referencias externas, y una lista de archivos dentro de la asamblea. El ambiente de CLR hace el uso extenso de meta datos.
Se abstrae el código (IL) de lengua intermedia, el código independiente del lenguaje que satisface el requisito común de la lengua intermedia (CIL) de . El " del término; Intermediate" refiere a la naturaleza del código de IL que es en las diferentes lenguas y a la cruz-plataforma compatible. Esta lengua intermedia, similar al Bytecode en el Java, permite que las plataformas y las idiomas apoyen el . IL apoya la programación orientada al objeto (polimorfismo, herencia, tipos abstractos, etc.), excepciones, acontecimientos, y varias estructuras de datos. IL cifra está montado en un PE de .NET para la ejecución por el CLR.

Utilizar en otros sistemas operativos

El formato del PE también es utilizado por el ReactOS, pues ReactOS se piensa para ser binario-compatible con Windows. También ha sido utilizado históricamente por un número de otros sistemas operativos, incluyendo el SkyOS y el BeOS R3. Sin embargo, SkyOS y BeOS se movieron eventual al DUENDE .

Mientras que la mono plataforma del desarrollo se prepone ser compatible binario con el Microsoft .NET, utiliza el mismo formato del PE que la puesta en práctica de Microsoft.

En el X86, Unix-como sistemas operativos de puede ejecutar los binarios de Windows (en formato del PE) con el vino .

el OS X del mac 10.5 tiene la capacidad de cargar y de analizar archivos del PE, pero no es compatible binario con Windows.

Ver también

A.out
Formato ejecutable y enlazable
Compresión ejecutable

Herramientas relacionadas

Herramienta en Internet libre para demostrar la información de ficheros ejecutables portables
PEBrowse una utilidad ejecutable portable del espectador/de la disección del archivo (Win32)
Redactor del PE del explorador del alc con el apoyo total para PE32/64. Utilidades, rebuilder, redactor hex, serpiente de la importación, espectador del recurso. Primer redactor del PE con la ayuda para .
El explorador del PE (Shareware) un espectador/un redactor del archivo del PE, también proporciona operaciones de búsqueda del sintaxis de la función del API, el espectador de la dependencia, el redactor de la sección, y un desensamblador para generar descargas anotadas del código.
PEDUMP ConsoleApp + código fuente (C++), realmente agradable comparar dos PE-Archivos vía una escritura. Volver a dirigir la salida de la consola a un txt-archivo y compararla con, e., Examdiff
GNU Binutils con --target=i386-pe, --target=mips-pe etc.
Dondequiera el espectador del PE es una herramienta libre para explorar los archivos del PE (jefes, tabla de la exportación, tabla de la importación, recursos). Es un uso de Java puro.
El PE leyó el PE (e.dll) y demuestra secciones, importa, exporta, Freeware del etc.
SK PEInfo para el espectador del PE de Windows CE para Windows CE. Estructuras del procesador ARM/MIPS/SH3 para la PC Handheld de la PC 2000/Pocket. Secciones de las demostraciones, importación, exportación, etc. con construido en espectador del recurso. Puede también extraer recursos de los módulos de la ROM.
módulo de gran alcance pefile del pitón para analizar los archivos del PE (e. Escrito completamente en pitón.
la línea de comando de LGPL'd del anal_pe basó la herramienta para hacer salir jefes del PE como texto. Funcionamientos en linux y Windows.
  • Zenithic
  • Rastorguyev Island
    Random links:Lulav | Lente intraocular | Ümlaut | Cerero de Helen | La vuelta de los héroes del cóndor

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">