לדלג לתוכן

משתמש:לימון לימון/ארגל חול

מתוך ויקיפדיה, האנציקלופדיה החופשית

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

הפורמט פותח על ידי מייקרוסופט והחליף את פורמט NE, ששימש את הגרסאות הקודמות של חלונות שפעלו במערך 16 ביט. חלקים גדולים ממנו לקוחים מפורמט COFF של יוניקס, ולכן הוא נקרא לעיתים PE/COFF. התמיכה ב-PE החלה עם גרסה 3.1 של חלונות NT וכל הגרסאות שיצאו מאז תמכו בו. על מנת לשמור על תמיכה לאחור במערכת ההפעלה DOS, כל קובץ בפורמט PE נפתח עם מבנה נתונים הזהה לזה של קבצי הרצה במערכת הפעלה זו. כיום, רוב קבצי ה-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.

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

[עריכת קוד מקור | עריכה]