POSIX

Portable Operating System Interface (POSIX), בעברית ממשק מערכת הפעלה נייד, הוא אוסף תקנים של IEEE, המיועדים לשמירה על תאימות בין מערכות הפעלה ובמיוחד מערכות דמויות יוניקס.

POSIX מגדיר ממשק תכנות יישומים (API) עבור מערכות ההפעלה ועבור יישומים, וכן סביבת עבודה שבה ניתן לכתוב פקודות מוגדרות ואת תוכנות השרות שמבצעות את הפקודות. POSIX מאפשר להעביר תוכנה, ללא שינויים, בין מערכות הפעלה שונות וסביבות עבודה שונות שתומכות בתקן. POSIX מיועדת הן למפתחי יישומים והן למפתחי מערכת.  POSIX הוא גם סימן מיסחרי של IEEE. 

החל מגרסת POSIX 2024, הַתֶּקֶן מתואם עם C17 - הַתֶּקֶן הפתוח לשפת C.

 היסטוריה 
בראשית שנות ה־80 של המאה ה־20 יוצרו הרבה מערכות ממשפחת יוניקס. היה ביניהן שוני בפרטים קטנים ויצרני המערכות לא נטו לשתף פעולה. לכן התאמה של תוכניות לעבודה על כמה מערכות יוניקס שונות דרשה הרבה עבודה מיותרת.

תקן ה-POSIX  נוצר מפרויקט שנוצר באמצע שנות ה־80 ונועד לאחד נגזרות שונות של מערכת ההפעלה יוניקס לתקן אחיד. הצורך בקביעת תקן מסוים נבע מכך שחברות שהשתמשו במחשבים רצו להיות מסוגלות לפתח תוכנות שאפשר להשתמש בהן במערכות מחשב של יצרנים אחרים מבלי לכתוב אותן מחדש. אחד השיקולים בבחירת מערכת ההפעלה יוניקס כבסיס לממשק המערכת הסטנדרטי היה שהיא הייתה נייטרלית מבחינת יצרנים. סטנדרטים אלו הפכו בשנת 1988 ל־"IEEE 1003" (הרשום גם כ־"ISO/IEC 9945"), או "POSIX", שפירושה "Portable Operating System Interface". שם זה ניתן על ידי ריצ׳רד סטולמן בעקבות בקשה לשם קל לשינון עבור הסטנדרטים.

תקן ה-POSIX מפותח ומתוחזק על ידי קבוצת עבודה משותפת המורכבת מהקבוצות Austin Group, Open Group ותת הוועדה "ISO/IEC JTC 1/SC 22/WG 15" של ארגון התקינה הבין-לאומי.

 מפרט 
ממשקי המשתמש והתוכנה למערכת ההפעלה מצוינים בארבעה חלקים עיקריים:
 הגדרות בסיס – רשימה של הגדרות ומוסכמות שבהן יש שימוש במפרטים, ורשימה של קובצי כותר בשפת התכנות C אשר חייבים להיות מסופקים על ידי מערכות תואמות.
 מעטפת ותוכניות שירות – רשימה של תוכניות שירות ותיאור המעטפת (Shell, Bourne Shell) אשר נדרשות כדי לאפשר לתסריטים לפעול באותה הדרך על כל הפלטפורמות.
 ממשקי מערכת – רשימה של קריאות מערכת בשפת התכנות C שחובה על המערכת לספק.
 רציונל – ההסבר מאחורי הסטנדרט.

ממשק הפקודה והסקריפטינג הסטנדרטי הוא ה־Korn Shell. תוכנות משתמש אחרות, שירותים ותוכניות שירות, כוללות את AWK, Echo, Ed ועוד מספר (מאות) אחרות. שירותי תוכנה נדרשים כוללים שירותי I/O בסיסיים (קובץ, מסוף מחשב ורשת).

ישנה חבילת בדיקה שמלווה את הסטנדרט בשם "PCTS", קיצור של"Posix Certification Test Suite".

יש לשים לב שההגדרה של מערכת יוניקס בהתייחס לתקן היא "מערכת שעומדת בדרישות תקן POSIX" ולא "מערכת שמקורה מהיוניקס של AT&T". לדוגמה, ה־OS/390 של IBM, כיום Z/OS, נחשבת ל-"יוניקס", אף על פי שאין בין שתי המערכות שום קוד מקור משותף. כמו כן, התקן לא מנסה להבטיח "תאימות בינארית" אלא "תאימות ברמת קוד מקור": Write once, compile anywhere, ובעברית: "כתוב פעם אחת, הַדֵּר בכל מקום" (למעט עבור סקריפטים).

 לינוקס ו־POSIX 

שמאל|ממוזער|250px|השוואה של POSIX API ל־API של ליבת לינוקס
מערכות גנו/לינוקס מבוססות על ליבת לינוקס וכלי גנו. שני המיזמים הללו מקפידים כמעט תמיד על תאימות לסטנדרטים של POSIX. לכן באופן כללי מערכת לינוקס קרובה למדי לתאימות ל־POSIX.

רוב מפיצי לינוקס אינם מעוניינים בעלויות הנדרשות כדי לקבל הסמכה שגרסה מסוימת של הפצה תואמת את ה־SUS. יתרה מזאת, התוכן של הפצת לינוקס טיפוסית משתנה כל כך מהר, כך שהצהרה מחודשת תידרש באופן כה תכוף, שלא תהיה אפשרית מבחינה פיננסית.

במערכות לינוקס, מספר תוספות משותפות וסטנדרטים דה־פקטו מסופקים על ידי בסיס הסטנדרט של לינוקס.

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


 גרסה מספר 3 של ה־Single UNIX Specification
 ועדת הסטנדרטים של יישומים ניידים
 מלחמות היוניקס  (Living Internet)
 סטנדרטים של יוניקס (אריק ס. ריימונד, האומנות שבתכנות יוניקס)

הערות שוליים

קטגוריה:יוניקס
קטגוריה:תקני IEEE