Portable Executable

PE (קיצור של Portable Executable) הוא כינוי לפורמט קבצים שפותח על ידי חברת מיקרוסופט עבור קובצי הרצה, קובצי אובייקטים וספריות קישור-דינמי (DLL). הפורמט נועד לשמש את כל הגרסאות של מערכת ההפעלה חלונות התומכות במערך 32 ביט (ומאוחר יותר 64 ביט), ומכאן שמו.

היסטוריה 
הפורמט פותח על ידי מיקרוסופט והחליף את פורמט NE, ששימש את הגרסאות הקודמות של חלונות שפעלו במערך 16 ביט. חלקים גדולים ממנו לקוחים מפורמט COFF של יוניקס, ולכן הוא נקרא לעיתים PE/COFF. התמיכה ב-PE החלה עם גרסה 3.1 של חלונות NT וכל הגרסאות שיצאו מאז תמכו בו. על מנת לשמור על תמיכה לאחור במערכת ההפעלה DOS, כל קובץ בפורמט PE נפתח עם מבנה נתונים הזהה לזה של קובצי הרצה במערכת הפעלה זו (קובצי MZ). כיום, רוב קובצי ה-DLL וקובצי ההרצה המיועדים לחלונות כתובים בפורמט זה. מאז פיתוחו פורסמו מספר פורמטים שמרחיבים אותו, בהם פורמט PE32+, .NET PE הפועל בסביבת 64 ביט ומפרט מיוחד לחלונות CE.

פרטים טכניים 
פורמט PE מורכב ממספר מבני נתונים שמופיעים אחד אחרי השני בתוך הקובץ. רוב המבנים האלו מוגדרים בקובץ winnt.h. מבנה הנתונים הראשון נקרא DOS header, וכאמור לעיל הוא זהה לפורמט ששימש את מערכת ההפעלה DOS עבור קובצי הרצה. בדרך כלל המבנה מכיל תוכנית קטנה שמדפיסה שורה המודיעה למשתמש שהתוכנה מיועדת למערכת ההפעלה חלונות, ויוצאת.

לאחר מכן מופיעים שני מבנים נוספים, File header ו-Optional header, שמכילים מידע עבור מערכת ההפעלה, כמו סוג המעבד וגרסת מערכת ההפעלה שעליהם התוכנה מיועדת לרוץ, מספר המחלקות בקובץ, הכתובת שממנה מתחילה ריצת התוכנה ותכונות שונות של הקובץ. שאר הקובץ בנוי ממחלקות שונות, בהן מחלקת הקוד שבה נמצא קוד ההרצה של התוכנה, מחלקת הנתונים שבה נמצאים המשתנים בהם התוכנה משתמשת, מחלקת המשאבים שבה מוגדרים תפריטים, תיבות דו-שיח, סמני עכבר וכולי, מחלקת ייבוא ומחלקת ייצוא שמהוות רשימה של פונקציות ומשתנים שהתוכנה אמורה לייבא מקובצי PE אחרים או לייצא אליהם.

שימושים במערכות הפעלה אחרות 
הפורמט משמש גם את מערכת ההפעלה ReactOS, שתוכננה לתמוך בכל פורמט הנתמך על ידי חלונות. בנוסף, מספר מערכות הפעלה, בהן SkyOS ו-BeOS R3, השתמשו בעבר בפורמט PE, אך הן עברו בסופו של דבר לפורמט ELF המשמש כיום את רוב מערכות ההפעלה המבוססות על יוניקס. סביבת הפיתוח מונו מיועדת להיות מתואמת עם Micorosoft .NET, ולכן היא משתמשת בהרחבה שנוצרה לפורמט PE עבור סביבת NET..

ראו גם 
 קובץ הרצה
 חלונות
 Executable and Linkable Format

קישורים חיצוניים 

 מפרט טכני המתאר את מבנה הפורמט
 כתבה על PE מאת מאט פייטרק: חלק 1 חלק 2
 חבילה הכוללת מסמך עם הסבר מפורט על מבנה הפורמט וקטעי קוד לניתוח קבצים בפורמט PE

פורמטי קבצים