POSIX

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

อินเทอร์เฟซระบบปฏิบัติการแบบพกพา (IEEE 1003)
ตัวย่อPOSIX
สถานะที่ตีพิมพ์
ปีที่เริ่มต้น2531 ; 33 ปีที่แล้ว ( 1988 )
รุ่นล่าสุดIEEE Std 1003.1-2017
2017 ; 4 ปีที่แล้ว ( 2017 )
องค์กรAustin Group ( IEEE Computer Society , The Open Group , ISO/IEC JTC 1 )
มาตรฐานที่เกี่ยวข้องISO / IEC 9945
โดเมนอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน
เว็บไซต์รับ.posixcertified .ieee .org

แบบพกพาระบบปฏิบัติการอินเตอร์เฟซ ( POSIX ) เป็นครอบครัวของมาตรฐานที่กำหนดโดยสมาคมคอมพิวเตอร์ IEEEสำหรับการรักษาร่วมกันระหว่างระบบปฏิบัติการ [1] POSIX กำหนดทั้งระบบและอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันระดับผู้ใช้ (API) พร้อมกับเชลล์บรรทัดคำสั่งและอินเทอร์เฟซยูทิลิตี้ สำหรับความเข้ากันได้ของซอฟต์แวร์ (การพกพา) กับรุ่นต่างๆ ของUnixและระบบปฏิบัติการอื่นๆ [2] [3] POSIX ยังเป็นเครื่องหมายการค้าของ IEEE [2]POSIX มีวัตถุประสงค์เพื่อใช้โดยทั้งนักพัฒนาแอปพลิเคชันและนักพัฒนาระบบ [4]

ชื่อ

ในขั้นต้น ชื่อ "POSIX" หมายถึง IEEE Std 1003.1-1988 ซึ่งเปิดตัวในปี 1988 ตระกูลมาตรฐาน POSIX ถูกกำหนดอย่างเป็นทางการเป็นIEEE 1003และหมายเลขมาตรฐาน ISO/IEC คือISO / IEC 9945

มาตรฐานดังกล่าวเกิดขึ้นจากโครงการที่เริ่มขึ้นเมื่อราวปี 1985 Richard Stallmanเสนอชื่อPOSIX (ออกเสียงว่าpahz-icksไม่ใช่poh-six ) ให้กับ IEEE แทนที่จะเป็นIEEE-IXเดิม คณะกรรมการพบว่าออกเสียงได้ง่ายขึ้นและน่าจดจำยิ่งขึ้น จึงนำมันมาใช้ [2] [5]

ภาพรวม

Unixได้รับเลือกให้เป็นพื้นฐานสำหรับอินเทอร์เฟซระบบมาตรฐานส่วนหนึ่งเนื่องจากเป็น "ผู้ผลิตที่เป็นกลาง" อย่างไรก็ตาม มี Unix เวอร์ชันหลักหลายเวอร์ชัน ดังนั้นจึงจำเป็นต้องพัฒนาระบบตัวส่วนร่วม ข้อกำหนด POSIX สำหรับระบบปฏิบัติการที่เหมือน Unixเดิมประกอบด้วยเอกสารเดียวสำหรับอินเทอร์เฟซการเขียนโปรแกรมหลักแต่ในที่สุดก็ขยายเป็น 19 เอกสารแยกกัน (POSIX.1, POSIX.2 เป็นต้น) [6]บรรทัดคำสั่ง ผู้ใช้ที่เป็นมาตรฐานและอินเทอร์เฟซการเขียนสคริปต์ใช้เชลล์UNIX System V [7]โปรแกรม บริการ และยูทิลิตี้ระดับผู้ใช้จำนวนมาก (รวมถึงawk , echo ,เอ็ด ) นอกจากนี้ยังได้มาตรฐานพร้อมกับการบริการระดับโปรแกรมที่จำเป็น (รวมถึงพื้นฐานของ I / O : ไฟล์ , สถานีและเครือข่าย ) POSIX ยังกำหนดAPI ไลบรารีเธรดมาตรฐานซึ่งได้รับการสนับสนุนโดยระบบปฏิบัติการที่ทันสมัยส่วนใหญ่ ในปี 2008 ส่วนประกอบส่วนใหญ่ของ POSIX ถูกรวมเป็นมาตรฐานเดียว(IEEE Std 1003.1-2008หรือที่เรียกว่าPOSIX.1-2008)

ณ ปี 2014 เอกสาร POSIX แบ่งออกเป็นสองส่วน:

  • POSIX.1, 2013 Edition: POSIX Base Definitions, System Interfaces, และ Commands and Utilities (ซึ่งรวมถึง POSIX.1, ส่วนขยายสำหรับ POSIX.1, Real-time Services, Threads Interface, Real-time Extensions, Security Interface, Network File Access และเครือข่ายการสื่อสารระหว่างกระบวนการถึงกระบวนการ ส่วนขยายการพกพาของผู้ใช้ การแก้ไขและส่วนขยาย ยูทิลิตี้การป้องกันและการควบคุม และยูทิลิตี้ระบบแบทช์ นี่คือ POSIX 1003.1-2008 พร้อมเอกสารทางเทคนิค 1)
  • POSIX สอดคล้องทดสอบ: ชุดทดสอบ POSIX มาพร้อมกับมาตรฐาน: VSX-PCTSหรือVSX POSIX สอดคล้อง Test Suite [8]

การพัฒนามาตรฐาน POSIX เกิดขึ้นในกลุ่มออสติน ( คณะทำงานร่วมระหว่าง IEEE, The Open GroupและISO/IEC JTC 1 )

รุ่น

ชิ้นส่วนก่อนปี 1997

ก่อนปี 1997 POSIX ประกอบด้วยมาตรฐานหลายประการ:

รุ่นหลังปี 1997

หลังจากปี 1997 Austin Group ได้พัฒนาการแก้ไข POSIX ข้อมูลจำเพาะเป็นที่รู้จักภายใต้ชื่อSingle UNIX Specificationก่อนที่จะกลายเป็นมาตรฐาน POSIX เมื่อได้รับการอนุมัติอย่างเป็นทางการจาก ISO

POSIX.1-2001 (พร้อม TC สองตัว)

POSIX.1-2001 (หรือ IEEE Std 1003.1-2001) เท่ากับSingle UNIX Specification เวอร์ชัน 3 [10]

มาตรฐานนี้ประกอบด้วย:

  • คำจำกัดความพื้นฐาน ฉบับที่ 6
  • ส่วนต่อประสานระบบและส่วนหัว ฉบับที่ 6
  • คำสั่งและยูทิลิตี้ ฉบับที่ 6

IEEE Std 1003.1-2004 เกี่ยวข้องกับการอัปเดตเล็กน้อยของ POSIX.1-2001 รวมการอัปเดตเล็กน้อยหรือerrata สองรายการที่เรียกว่าTechnical Corrigenda (TCs) [11] เนื้อหามีอยู่บนเว็บ (12)

POSIX.1-2008 (พร้อม TC สองตัว)

ข้อมูลจำเพาะพื้นฐาน ฉบับที่ 7 (หรือIEEE Std 1003.1-2008 , 2016 Edition) คล้ายกับเวอร์ชัน 2017 ปัจจุบัน (ณ วันที่ 22 กรกฎาคม 2018) [13] [14]

มาตรฐานนี้ประกอบด้วย:

  • คำจำกัดความพื้นฐาน ฉบับที่ 7
  • ส่วนต่อประสานระบบและส่วนหัว ฉบับที่ 7
  • คำสั่งและอรรถประโยชน์ ฉบับที่ 7
  • ปริมาณเหตุผล

POSIX.1-2017

IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) - IEEE Standard for Information Technology—Portable Operating System Interface (POSIX(R)) Base Specifications, Issue 7 สามารถใช้ได้จาก The Open Group หรือ IEEE และเป็น ณ วันที่ 22 กรกฎาคม 2561 มาตรฐานปัจจุบัน ในทางเทคนิคแล้วจะเหมือนกับ POSIX.1-2008 ที่ใช้เทคนิค Corrigenda 1 และ 2 สำเนาออนไลน์ฟรีอาจยังคงมีอยู่ [13]

ความขัดแย้ง

512- เทียบกับบล็อก 1024 ไบต์

POSIX กำหนดขนาดบล็อกเริ่มต้น 512 ไบต์สำหรับยูทิลิตี้dfและduซึ่งสะท้อนถึงขนาดทั่วไปของบล็อกบนดิสก์ เมื่อRichard StallmanและทีมGNUใช้ POSIX สำหรับระบบปฏิบัติการ GNUพวกเขาคัดค้านเรื่องนี้โดยที่คนส่วนใหญ่คิดในแง่ของบล็อก1024 ไบต์ (หรือ 1 KiB ) ตัวแปรสภาพแวดล้อมPOSIX_ME_HARDERถูกนำมาใช้เพื่อให้ผู้ใช้สามารถบังคับพฤติกรรมที่สอดคล้องกับมาตรฐานได้ [15]ชื่อตัวแปรที่ได้รับต่อมาเปลี่ยนPOSIXLY_CORRECT [16] ตัวแปรนี้ยังใช้สำหรับพฤติกรรมอื่นๆ อีกจำนวนหนึ่ง

ระบบปฏิบัติการที่เน้น POSIX

ขึ้นอยู่กับระดับของการปฏิบัติตามมาตรฐาน เราสามารถจำแนกระบบปฏิบัติการเป็น POSIX ที่เข้ากันได้ทั้งหมดหรือบางส่วน ผลิตภัณฑ์ที่ผ่านการรับรองมีอยู่ในเว็บไซต์ของ IEEE [17]

ได้รับการรับรอง POSIX

ระบบปฏิบัติการบางรุ่นต่อไปนี้ได้รับการรับรองเพื่อให้สอดคล้องกับมาตรฐาน POSIX ต่างๆ ตั้งแต่หนึ่งมาตรฐานขึ้นไป ซึ่งหมายความว่าผ่านการทดสอบความสอดคล้องอัตโนมัติ [18]

ส่วนใหญ่เป็นไปตาม POSIX

สิ่งต่อไปนี้แม้ว่าจะไม่ได้รับการรับรองอย่างเป็นทางการว่าเข้ากันได้กับ POSIX แต่ส่วนใหญ่ปฏิบัติตาม:

POSIX สำหรับ Microsoft Windows

  • Cygwinให้พัฒนาและเวลาทำงานสภาพแวดล้อมส่วนใหญ่ POSIX สอดคล้องสำหรับMicrosoft Windows
  • MinGWซึ่งเป็นส้อมของ Cygwin ให้สภาพแวดล้อมการพัฒนาที่สอดคล้องกับ POSIX น้อยกว่าและรองรับแอปพลิเคชันC- programmed ที่เข้ากันได้ผ่านMsvcrtซึ่งเป็นไลบรารีรันไทม์ Visual C รุ่นเก่าของ Microsoft
  • ระบบย่อย Microsoft POSIXซึ่งเป็นระบบย่อยของ Windows ที่เป็นตัวเลือกซึ่งรวมอยู่ในระบบปฏิบัติการที่ใช้ Windows NT จนถึง Windows 2000 POSIX-1 ที่มีการแก้ไขในปี 1990 โดยไม่มีเธรดหรือซ็อกเก็ต
  • Interixซึ่งเดิมคือ OpenNT โดย Softway Systems, Inc. เป็นการอัพเกรดและแทนที่สำหรับระบบย่อย Microsoft POSIXที่ซื้อโดยMicrosoftในปี 1999 มันถูกวางตลาดในขั้นต้นเป็นผลิตภัณฑ์เสริมแบบสแตนด์อโลนและต่อมารวมเป็นส่วนประกอบในWindows Services สำหรับ UNIX (SFU) และในที่สุดก็รวมเป็นส่วนประกอบในWindows Server 2003 R2และ Windows OS รุ่นใหม่กว่าภายใต้ชื่อ "Subsystem for UNIX-based Applications" (SUA); ภายหลังเลิกใช้ในปี 2555 (Windows 8) [34]และเลิกใช้ในปี 2556 (2012 R2, 8.1) ช่วยให้เป็นไปตามข้อกำหนด POSIX เต็มรูปแบบสำหรับผลิตภัณฑ์Microsoft Windowsบางตัว[ ต้องการการอ้างอิง ]
  • Windows Subsystem for Linuxหรือที่เรียกว่า WSL เป็นเลเยอร์ความเข้ากันได้สำหรับการเรียกใช้ไฟล์ปฏิบัติการไบนารีของ Linux บน Windows 10 โดยใช้อิมเมจ Linux เช่น Ubuntu, Debian หรือ OpenSUSE ซึ่งทำหน้าที่เป็นการอัปเกรดและแทนที่บริการ Windows สำหรับ UNIX เปิดตัวในรุ่นเบต้าในเดือนเมษายน 2559 การจำหน่ายครั้งแรกที่มีคืออูบุนตู
  • UWINจาก AT&T Research ใช้เลเยอร์ POSIX ที่ด้านบนของ Win32 API
  • MKS Toolkitซึ่งเดิมสร้างขึ้นสำหรับ MS-DOS เป็นชุดซอฟต์แวร์ที่ผลิตและดูแลโดยMKS Inc.ซึ่งให้สภาพแวดล้อมแบบ Unixสำหรับการเขียนสคริปต์ การเชื่อมต่อ และการย้ายซอฟต์แวร์UnixและLinuxไปยังระบบMicrosoft Windowsรุ่น32 และ 64 บิตส่วนย่อยของมันถูกรวมอยู่ในWindows Services สำหรับ UNIX (SFU) รุ่นแรกในปี 1998 [35]
  • Windows C Runtime LibraryและWindows Sockets APIใช้ฟังก์ชัน POSIX API ที่ใช้กันทั่วไปสำหรับไฟล์ เวลา สภาพแวดล้อม และการเข้าถึงซ็อกเก็ต[36]แม้ว่าการสนับสนุนจะยังคงไม่สมบูรณ์เป็นส่วนใหญ่ และไม่สามารถทำงานร่วมกันได้อย่างเต็มที่กับการใช้งานที่สอดคล้องกับ POSIX [37] [38] [ หารือ ]

POSIX สำหรับ OS/2

สภาพแวดล้อมที่สอดคล้องกับ POSIX ส่วนใหญ่สำหรับOS/2 :

  • emx+gcc – รองรับ POSIX เป็นส่วนใหญ่

POSIX สำหรับ DOS

สภาพแวดล้อมที่สอดคล้องกับ POSIX บางส่วนสำหรับDOSได้แก่:

  • emx+gcc – รองรับ POSIX เป็นส่วนใหญ่
  • DJGPP – รองรับ POSIX บางส่วน
  • คอร์มัลติทาสกิ้งDR-DOSผ่านEMM386 /MULTI – มีส่วนขยาย API ส่วนหน้าของเธรด POSIX พร้อมใช้งาน

สอดคล้องกับเลเยอร์ความเข้ากันได้

สิ่งต่อไปนี้ไม่ได้รับการรับรองอย่างเป็นทางการว่าเข้ากันได้กับ POSIX แต่เป็นไปตามมาตรฐานส่วนใหญ่โดยการใช้การสนับสนุน POSIX ผ่านคุณสมบัติความเข้ากันได้บางประเภท (โดยปกติคือไลบรารีการแปลหรือเลเยอร์บนเคอร์เนล) หากไม่มีคุณสมบัติเหล่านี้ มักจะไม่เป็นไปตามข้อกำหนด

ดูเพิ่มเติม

อ้างอิง

  1. ^ "คำถามที่พบบ่อย POSIX.1" . กลุ่มเปิด. 5 ตุลาคม 2554.
  2. ^ "POSIX 1003.1 คำถามที่พบบ่อยเวอร์ชัน 1.12" 2 กุมภาพันธ์ 2549 . สืบค้นเมื่อ16 กรกฎาคม 2549 .
  3. ^ "P1003.1 - Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 8" . IEEE สมาคมมาตรฐาน
  4. ^ "แนะนำตัว" . ผับ. opengroup.org สืบค้นเมื่อ22 กรกฎาคม 2021 .
  5. ^ "ที่มาของชื่อ POSIX" . 2554 . สืบค้นเมื่อ28 กันยายน 2556 .
  6. ^ สถานะ PASC (รวมถึง POSIX) (รายงาน) สมาคมคอมพิวเตอร์ IEEE 4 ธันวาคม 2546 . สืบค้นเมื่อ1 มีนาคม 2558 .
  7. ^ "Shell Command Language - The Open Group Base Specifications Issue 7, 2013 Edition" . สืบค้นเมื่อ28 เมษายน 2020 .
  8. ^ "POSIX" . กลุ่มเปิด.
  9. ^ "librt(3LIB)" . docs.oracle.comครับ หน้าคน ส่วนที่ 3: อินเทอร์เฟซและส่วนหัวของไลบรารี ออราเคิล คอร์ปอเรชั่น. 4 สิงหาคม 1998 . สืบค้นเมื่อ18 กุมภาพันธ์ 2559 . librt, libposix4- POSIX.1b ไลบรารีส่วนขยายเรียลไทม์ [...] librt เป็นชื่อที่ต้องการสำหรับไลบรารีนี้ ชื่อ libposix4 ถูกรักษาไว้สำหรับความเข้ากันได้แบบย้อนหลัง และควรหลีกเลี่ยง ฟังก์ชันในไลบรารีนี้มีอินเทอร์เฟซส่วนใหญ่ที่ระบุโดย POSIX.1b Realtime Extension
  10. ^ "The Open Group ประกาศเสร็จสิ้นการแก้ไขร่วมกับ POSIX และ Single UNIX Specification" (ข่าวประชาสัมพันธ์) กลุ่มเปิด. 30 มกราคม 2545 . สืบค้นเมื่อ26 กรกฎาคม 2552 .
  11. ^ "IEEE Std 1003.1" (2004 ฉบับ) ยูนิกซ์. org สืบค้นเมื่อ26 กรกฎาคม 2552 .
  12. ^ "IEEE Std 1003.1" (2004 ฉบับ) กลุ่มเปิด. อ้างอิงวารสารต้องการ|journal=( ความช่วยเหลือ ).
  13. ^ a b "Base Specifications, Issue 7, 2016 Edition" . กลุ่มเปิด. สืบค้นเมื่อ18 ธันวาคม 2557 .
  14. ^ "ออสตินมาตรฐานทั่วไป Revision กลุ่ม บริษัท" กลุ่มเปิด. สืบค้นเมื่อ1 มีนาคม 2559 .
  15. ^ สตอลแมน, ริชาร์ด (28 สิงหาคม 1991) "ประชาธิปไตยมีชัยในดิสก์ยูนิต" . กลุ่มข่าวgnu.announce Usenet: [email protected] – ผ่าน Google Groups 
  16. ^ "GNU มาตรฐานการเข้ารหัส" จีเอ็นยู
  17. ^ "ใบรับรอง POSIX" . อีอีอี
  18. ^ "POSIX Certified by IEEE and The Open Group - Program Guide" .
  19. ^ "ไอบีเอ็ม" . กลุ่มเปิด. สืบค้นเมื่อ26 มกราคม 2014 .
  20. ^ a b "ฮิวเลตต์-แพคการ์ด" . กลุ่มเปิด. สืบค้นเมื่อ26 มกราคม 2014 .
  21. ^ "Silicon Graphics, Inc" . กลุ่มเปิด. สืบค้นเมื่อ26 มกราคม 2014 .
  22. ^ "บริษัท หัวเว่ย เทคโนโลยี จำกัด" . กลุ่มเปิด. สืบค้นเมื่อ26 พฤษภาคม 2560 .
  23. ^ "The Open Brand - Register of Certified Products" . สมัครสมาชิกเปิดตราผลิตภัณฑ์ กลุ่มเปิด. สืบค้นเมื่อ20 พฤษภาคม 2558 .
  24. ^ "แอปเปิล อิงค์" . สมัครสมาชิกเปิดตราผลิตภัณฑ์ กลุ่มเปิด. สืบค้นเมื่อ20 พฤษภาคม 2558 .
  25. ^ "ออราเคิล คอร์ปอเรชั่น" . กลุ่มเปิด. สืบค้นเมื่อ26 มกราคม 2014 .
  26. ^ "UnixWare ® 7.1.3 และใหม่กว่า" . กลุ่มเปิด. 16 พฤษภาคม 2546.
  27. ^ "รับรอง QNX บรรลุใหม่ POSIX" คิวเอ็นเอ็กซ์ 8 เมษายน 2551 . สืบค้นเมื่อ16 มกราคม 2559 .
  28. ^ "บริษัท อินสเปอร์ จำกัด" . กลุ่มเปิด. สืบค้นเมื่อ26 พฤษภาคม 2560 .
  29. ^ "ทะเบียนรับรอง POSIX" . get.posixcertified.ieee.org . สืบค้นเมื่อ9 มีนาคม 2018 .
  30. ^ Schweikhardt, Jens "ยูทิลิตี้ POSIX" . ฟรีบีเอสดี
  31. ^ มาร์ค Halper (7 พฤศจิกายน 1994) “ยอดขาย HP 3000 จับตลาดอย่างเซอร์ไพรส์” . โลกคอมพิวเตอร์ . ฉบับที่ 28 หมายเลข 4. IDG เอ็นเตอร์ไพรส์
  32. ^ Solter, นิโคลั .; เจลิเน็ค, เจอร์รี่; คนขุดแร่, เดวิด (21 มีนาคม 2554). OpenSolaris พระคัมภีร์ จอห์น ไวลีย์ แอนด์ ซันส์. ISBN 9781118080313.
  33. ^ "OpenVOS POSIX.1: คู่มือการปฏิบัติตามข้อกำหนด" . เทคโนโลยีสถานะ ดึงมา26 เดือนพฤศจิกายน 2021
  34. ^ คุณลักษณะถูกลบหรือเลิกใช้แล้วใน Windows Server 2012
  35. ^ บริการ Windows NT สำหรับ UNIX Add-On Packสำหรับ NT 4; ดูข่าวประชาสัมพันธ์ในเดือนพฤศจิกายน '98สำหรับชุดเครื่องมือ MKS 6.1 ที่เก็บไว้ที่อื่นด้วย
  36. ^ "ไลบรารีของ MSDN: ฟังก์ชั่นเลิก CRT" ไมโครซอฟต์. สืบค้นเมื่อ8 ตุลาคม 2558 .
  37. ^ "ไลบรารีของ MSDN: การประยุกต์ใช้ Porting ซ็อกเก็ตที่จะ Winsock" ไมโครซอฟต์. สืบค้นเมื่อ8 ตุลาคม 2558 .
  38. ^ "Winsock Programmer ของ FAQ บทความ: BSD Sockets เข้ากันได้" วอร์เรน ยัง. 31 สิงหาคม 2558 . สืบค้นเมื่อ8 ตุลาคม 2558 .
  39. ^ "Programming IBM วอสำหรับฉัน" (PDF) ไอบีเอ็ม .คอม ไอบีเอ็ม. 2013 . ดึงมา25 เดือนพฤศจิกายน 2021
  40. ^ "APE - มาตรฐาน ANSI / POSIX สิ่งแวดล้อม" แผน 9 . เบลล์แล็บ
  41. ^ "ความเข้ากันได้ของ POSIX" . MS Windows NT Workstation Resource Kit . ไมโครซอฟต์.

ลิงค์ภายนอก