กลับไปหน้าบทความ

อ่าน 11 นาที

โพสิกซ์

อิน เท อ ร์ เฟ ซ ระบบปฏิบัติการแบบพกพา (POSIX; IPA: /ˈpɒz.ɪks/ [1]) เป็นตระกูลมาตรฐานที่กำหนดโดย IEEE Computer Society เพื่อรักษาความเข้ากันได้ระหว่างระบบปฏิบัติการ [1] เพื่อ...

โพสิกซ์

อินเทอร์เฟซระบบปฏิบัติการแบบพกพา (IEEE 1003)
คำย่อโพสิกซ์
สถานะที่ตีพิมพ์
ปีเริ่มต้น1988 ( 1988 )
เวอร์ชั่นล่าสุดมาตรฐาน IEEE 1003.1-2024 2024 ( 2024 )
องค์กรกลุ่มออสติน ( สมาคมคอมพิวเตอร์ IEEE , The Open Group , ISO/IEC JTC 1/SC 22 /WG 15)
มาตรฐานที่เกี่ยวข้องISO / IEC 9945
โดเมนอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน
เว็บไซต์posix.opengroup.org

อินเทร์เฟระบบปฏิบัติการแบบพกพา(POSIX; IPA: /ˈpɒz.ɪks/ [1]) เป็นตระกูลมาตรฐานที่กำหนดโดย IEEE Computer Society เพื่อรักษาความเข้ากันได้ระหว่างระบบปฏิบัติการ [1] เพื่อกำหนดระดับความเข้ากันได้POSIX กำหนดลักษณะการทำงานหลายด้านที่สามารถจำแนกได้เป็นอินเทอร์เฟซการเขียนโปรแกรม แอปพลิเคชัน (API) เชลล์บรรทัดคำสั่งและคำสั่งเชลล์เดิมทีได้มาจาก API เชลล์ และคำสั่ง Unix ที่พบได้ทั่วไป (ส่วนหนึ่งเป็นเพราะ Unix ถือว่าเป็นกลางต่อผู้ผลิต) ปัจจุบันระบบจำนวนมากเป็นไปตามมาตรฐานนี้ รวมถึงระบบUnix ที่มีตราสินค้า ระบบ ที่คล้าย Unixและระบบจำนวนมากที่ในอดีตไม่เกี่ยวข้องกับ Unix [ 1 ] [ 2 ]

บรรทัดคำสั่งผู้ใช้มาตรฐานและอินเทอร์เฟซการเขียนสคริปต์นั้นอิงตามเชลล์ BourneของUNIX System V [ 3 ]โปรแกรม บริการ และยูทิลิตี้ระดับผู้ใช้จำนวนมาก (รวมถึงawk , echo , ed ) ก็ได้รับการกำหนดมาตรฐานเช่นกัน โดยอิงตามเวอร์ชันของ UNIX System V พร้อมกับบริการระดับโปรแกรมที่จำเป็น (รวมถึง I/Oพื้นฐาน: ไฟล์เทอร์มินัลและเครือข่าย ) POSIX ยังกำหนด API ไลบรารีการทำงานแบบ มัลติเธรด มาตรฐาน ซึ่งได้รับการสนับสนุนโดยระบบปฏิบัติการสมัยใหม่ส่วนใหญ่

มาตรฐาน POSIX ได้รับการพัฒนาโดยAustin Group ( กลุ่มทำงาน ร่วมกัน ระหว่าง IEEE, The Open GroupและISO/IEC JTC 1/SC 22 /WG 15)

POSIX มีจุดประสงค์เพื่อให้นักพัฒนาแอปพลิเคชันและนักพัฒนาระบบใช้งานได้[ 4 ]

ชื่อ

มาตรฐานดังกล่าวเกิดขึ้นจากโครงการที่เริ่มต้นในปี 1984 โดยต่อยอดจากงานที่เกี่ยวข้องกับกิจกรรมในกลุ่ม/usr/ [ 5 ] Richard Stallmanเสนอชื่อPOSIXให้กับ IEEE [ 6 ] [ 7 ]แทนที่จะใช้ชื่อIEEE-IXเดิม[ 8 ]คณะกรรมการพบว่าชื่อนี้ออกเสียงและจดจำได้ง่ายกว่า จึงนำมาใช้

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

POSIX เป็นเครื่องหมายการค้าของ IEEE [ 1 ]

เวอร์ชัน

เดิมที POSIX ประกอบด้วยเอกสารฉบับเดียวสำหรับบริการหลัก แต่เมื่อเวลาผ่านไป มีการเผยแพร่เอกสารเพิ่มเติมเพื่อขยายและแก้ไขข้อกำหนด ก่อนปี 1997 POSIX ประกอบด้วยเอกสารหลายฉบับที่เผยแพร่ในช่วงหลายปี หลังจากปี 1997 กลุ่ม Austinได้จัดทำข้อกำหนดที่เรียกว่าSingle UNIX Specification (SUS) เมื่อเวลาผ่านไป กลุ่มได้เผยแพร่ข้อกำหนดเวอร์ชันต่างๆ และต่อมา POSIX ก็ได้รับการแก้ไขตามเวอร์ชัน SUS บางส่วนหรือทั้งหมด เวอร์ชัน SUS ประกอบด้วยชุดของเล่ม – แต่ละเล่มสำหรับกลุ่มพฤติกรรมที่จำเป็น – บวกกับข้อมูลอื่นๆ (นอกเหนือจากเล่ม) [ 9 ]แต่ละเล่มจะได้รับหมายเลขฉบับซึ่งเหมือนกันสำหรับแต่ละเล่มของเวอร์ชัน แต่ไม่ใช่ค่าเดียวกับเวอร์ชัน ตัวอย่างเช่น SUS เวอร์ชัน 3 (SUSv3) ประกอบด้วยเล่มที่มีป้ายกำกับฉบับที่ 6

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

  • POSIX.1 ฉบับปี 2013: คำจำกัดความพื้นฐานของ POSIX, อินเทอร์เฟซระบบ, คำสั่งและยูทิลิตี้ (ซึ่งรวมถึง POSIX.1, ส่วนขยายสำหรับ POSIX.1, บริการแบบเรียลไทม์, อินเทอร์เฟซเธรด, ส่วนขยายแบบเรียลไทม์, อินเทอร์เฟซความปลอดภัย, การเข้าถึงไฟล์เครือข่ายและการสื่อสารระหว่างกระบวนการผ่านเครือข่าย, ส่วนขยายการพกพาของผู้ใช้, การแก้ไขและส่วนขยาย, ยูทิลิตี้การป้องกันและการควบคุม และยูทิลิตี้ระบบแบตช์ นี่คือ POSIX 1003.1-2008 พร้อมด้วยการแก้ไขทางเทคนิคฉบับที่ 1)
  • การทดสอบการปฏิบัติตามมาตรฐาน POSIX: ชุดทดสอบสำหรับ POSIX มาพร้อมกับมาตรฐาน: VSX-PCTSหรือVSX POSIX Conformance Test Suite [ 10 ]

ก่อนปี 1997

POSIX.1

บริการหลัก (IEEE Std 1003.1-1988) ประกอบด้วยมาตรฐานANSI Cและรวมถึง:

การสร้างและการควบคุมกระบวนการ
สัญญาณ
ข้อผิดพลาดจุดลอยตัว
การละเมิดการแบ่งส่วน/หน่วยความจำ
คำสั่งที่ผิดกฎหมาย
ข้อผิดพลาดของบัส
ตัวจับเวลา
การดำเนินการกับไฟล์และไดเร็กทอรี
ท่อ
ไลบรารี C (C มาตรฐาน)
อินเทอร์เฟซเทอร์มินัล POSIX

POSIX.1b

ส่วนขยายแบบเรียลไทม์ (IEEE Std 1003.1b-1993 ซึ่งต่อมาปรากฏในชื่อ librt—ไลบรารีส่วนขยายแบบเรียลไทม์) ประกอบด้วย: [ 11 ]

การจัดตารางเวลาลำดับความสำคัญ
สัญญาณแบบเรียลไทม์
นาฬิกาและเครื่องจับเวลา
สัญญาณไฟ
การส่งข้อความ
หน่วยความจำที่ใช้ร่วมกัน
อินพุต/เอาต์พุตแบบอะซิงโครนัส และซิงโครนัส
อินเทอร์เฟซล็อคหน่วยความจำ

POSIX.1c

ส่วนขยายของเธรด (IEEE Std 1003.1c-1995) ประกอบด้วย:

การสร้าง การควบคุม และการล้างเธรด
การจัดกำหนดการเธรด
การซิงโครไนซ์เธรด
การจัดการสัญญาณ

POSIX.2

ส่วนประกอบพื้นฐานและยูทิลิตี้ (IEEE Std 1003.2-1992) ประกอบด้วย:

ตัวแปลคำสั่ง
โปรแกรมสาธารณูปโภค

POSIX.1-2001

POSIX.1-2001 (IEEE Std 1003.1-2001) ประกอบด้วย SUSv3 ส่วนใหญ่ ซึ่งประกอบด้วยเล่ม (ฉบับที่ 6): คำจำกัดความพื้นฐานอินเทอร์เฟซระบบและส่วนหัวและคำสั่งและยูทิลิตี้ข้อกำหนด POSIX ยกเว้นข้อกำหนด SUSv3 สำหรับ API curses โดยเฉพาะ (มักเรียกว่าX/Open Cursesแม้ว่าจะไม่มีการจัดกลุ่มที่แตกต่างกันใน SUSv3 ก็ตาม) [ 12 ]

IEEE Std 1003.1-2004 แก้ไข POSIX.1-2001 ผ่านการอัปเดตย่อยสองรายการหรือข้อผิดพลาดที่เรียกว่าเอกสารแก้ไขทางเทคนิค[ 13 ] [ 14 ]

POSIX.1-2008

เช่นเดียวกับรุ่นก่อนหน้า POSIX.1-2008 ( IEEE Std 1003.1-2008ฉบับปี 2016) ประกอบด้วยเนื้อหามาตรฐานส่วนใหญ่ของ SUSv4 (ฉบับที่ 7 ของเล่มคำจำกัดความพื้นฐานอินเทอร์เฟซระบบและส่วนหัวคำ สั่ง และยูทิลิตี้ ) [ 15 ] SUSv4 ยังรวมถึงข้อมูลเหตุผลซึ่งส่วนใหญ่ใช้กับ POSIX แม้ว่าจะไม่ได้รวมอยู่โดยตรงก็ตาม

POSIX.1-2017

POSIX.1-2017 ( IEEE Std 1003.1-2017 ) ปรับปรุงเวอร์ชันก่อนหน้า (POSIX.1-2008) ผ่านการแก้ไขทางเทคนิคสองรายการ[ 16 ]

POSIX.1-2024

POSIX.1-2024 ( IEEE Std 1003.1-2024 ) ได้รับการเผยแพร่เมื่อวันที่ 14 มิถุนายน 2024 [ 15 ] [ 17 ]

นับตั้งแต่มาตรฐาน POSIX 2024 เป็นต้นมา มาตรฐานดังกล่าวได้สอดคล้องกับมาตรฐานภาษา C17 แล้ว

ประเด็นถกเถียง

บล็อกขนาด 512 ไบต์ เทียบกับ บล็อกขนาด 1024 ไบต์

POSIX กำหนดขนาด บล็อกเริ่มต้น 512 ไบต์สำหรับ ยูทิลิตี้ dfและduซึ่งสะท้อนถึงขนาดบล็อกทั่วไปบนดิสก์ เมื่อRichard Stallmanและ ทีม GNUกำลังใช้งาน POSIX สำหรับระบบปฏิบัติการ GNUพวกเขาคัดค้านเรื่องนี้โดยให้เหตุผลว่าคนส่วนใหญ่คิดในแง่ของบล็อกขนาด 1024 ไบต์ (หรือ 1 KiB ) ตัวแปรสภาพแวดล้อมPOSIX_ME_HARDERถูกนำมาใช้เพื่อให้ผู้ใช้สามารถบังคับให้เป็นไปตามมาตรฐาน[ 18 ]ต่อมาชื่อตัวแปรถูกเปลี่ยนเป็นPOSIXLY_CORRECT [ 19 ] ปี 2025 ตัวแปรนี้ยังถูกใช้สำหรับพฤติกรรมแปลกๆ อื่นๆ อีกหลายอย่าง[ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ]

ความสอดคล้อง

ระบบปฏิบัติการสามารถจำแนกได้ตามระดับการปฏิบัติตามมาตรฐาน POSIX

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

ระบบปฏิบัติการเวอร์ชันปัจจุบันต่อไปนี้ได้รับการรับรองว่าสอดคล้องกับมาตรฐาน POSIX ต่างๆ อย่างน้อยหนึ่งมาตรฐาน ซึ่งหมายความว่าระบบปฏิบัติการเหล่านี้ผ่านการทดสอบความสอดคล้องโดยอัตโนมัติ[ 29 ]และการรับรองยังไม่หมดอายุ และระบบปฏิบัติการยังไม่ถูกยกเลิก[ 30 ] [ 31 ]

เคยได้รับการรับรองมาก่อน

ระบบปฏิบัติการบางเวอร์ชันต่อไปนี้ได้รับการรับรองว่าสอดคล้องกับมาตรฐาน POSIX อย่างน้อยหนึ่งมาตรฐาน ซึ่งหมายความว่าระบบปฏิบัติการเหล่านี้ผ่านการทดสอบความสอดคล้องโดยอัตโนมัติ การรับรองดังกล่าวหมดอายุแล้ว และระบบปฏิบัติการบางระบบก็ถูกยกเลิก[ 30 ]

สอดคล้องบางส่วน

รายการต่อไปนี้ไม่ได้รับการรับรองว่าเป็นไปตามมาตรฐาน POSIX แต่ถือว่าสอดคล้องบางส่วน ซึ่งบางครั้งเรียกว่าเป็นไปตามข้อกำหนด :

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

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

การปฏิบัติตามข้อกำหนดผ่านระบบย่อย

เทคโนโลยีบางอย่างช่วยให้ระบบปฏิบัติการสามารถปฏิบัติตามมาตรฐาน POSIX ได้ในระดับหนึ่ง แม้ว่าตัวระบบปฏิบัติการเองจะปฏิบัติตามมาตรฐานดังกล่าวเพียงเล็กน้อยหรือไม่เลยก็ตาม

สำหรับ Windows

แม้ว่าWindowsจะไม่เป็นไปตามมาตรฐาน POSIX แต่เทคโนโลยีต่อไปนี้ก็ช่วยให้สามารถปฏิบัติตามมาตรฐานได้ในระดับหนึ่ง

ไซก์วิน
จัดเตรียมสภาพแวดล้อมการพัฒนาและการทำงานที่สอดคล้องกับมาตรฐาน POSIX เป็นส่วนใหญ่สำหรับMicrosoft Windows
มินจีดับบลิว
เป็นโปรแกรมที่แตกแขนงมาจาก Cygwin โดยมีสภาพแวดล้อมการพัฒนาที่ไม่เป็นไปตามมาตรฐาน POSIX มากนัก และรองรับ แอปพลิเคชันที่เขียนด้วยภาษา Cผ่านทางMsvcrt ซึ่ง เป็นไลบรารีรันไทม์ Visual C รุ่นเก่าของ Microsoft
libunistd
ไลบรารีการพัฒนาที่สอดคล้องกับ POSIX เป็นส่วนใหญ่ ซึ่งสร้างขึ้นเพื่อสร้าง ซอร์สโค้ด C/ C++ที่ใช้ Linux ของ CinePaintตามที่อยู่ในMicrosoft Visual Studioการใช้งานที่มีน้ำหนักเบาซึ่งมีไฟล์ส่วนหัวที่เข้ากันได้กับ POSIX ที่แมป API ของ POSIX เพื่อเรียกใช้ API ของ Windows ที่เทียบเท่ากัน[ 61 ]
ระบบย่อย POSIX ของ Microsoft
ระบบย่อยเสริมของ Windows ที่รวมอยู่ในระบบปฏิบัติการ Windows NT จนถึง Windows 2000 รองรับมาตรฐาน POSIX.1 ตามเวอร์ชันปี 1990 โดยไม่มีฟังก์ชันเธรดหรือซ็อกเก็
อินเตอร์ริกซ์
OpenNT ซึ่งเดิมทีพัฒนาโดย Softway Systems, Inc. เป็นการอัปเกรดและทดแทนระบบย่อย POSIX ของ Microsoft ซึ่ง Microsoftซื้อมาในปี 1999 ในตอนแรกวางจำหน่ายเป็นผลิตภัณฑ์เสริมแบบสแตนด์อะโลน จากนั้นจึงรวมเป็นส่วนประกอบในWindows Services for UNIX (SFU) และในที่สุดก็รวมเป็นส่วนประกอบในWindows Server 2003 R2และระบบปฏิบัติการ Windows รุ่นต่อมาภายใต้ชื่อ "Subsystem for UNIX-based Applications" (SUA) ซึ่งต่อมาถูกยกเลิกในปี 2012 (Windows 8) [ 62 ] และถูกยกเลิกในปี 2013 (2012 R2, 8.1) ระบบนี้ช่วยให้ ผลิตภัณฑ์Microsoft Windowsบางผลิตภัณฑ์สามารถปฏิบัติตามมาตรฐาน POSIX ได้อย่างสมบูรณ์
ระบบย่อยของ Windows สำหรับ Linux (WSL)
เป็นเลเยอร์ความเข้ากันได้สำหรับการเรียกใช้ไฟล์ปฏิบัติการไบนารีของ Linux บน Windows 10 และ 11 โดยตรง โดยใช้ภาพ Linux เช่น Ubuntu, Debian หรือ OpenSUSE เป็นต้น ซึ่งทำหน้าที่เป็นส่วนเสริมและทดแทน Windows Services for UNIX มีการเปิดตัวเวอร์ชันเบต้าในเดือนเมษายน 2016 โดยระบบปฏิบัติการแรกที่ใช้งานได้คือ Ubuntu
ยูวิน
AT&T Research ได้นำเลเยอร์ POSIX มาใช้งานบนพื้นฐานของ Win32 API
ชุดเครื่องมือ MKS
เดิมทีสร้างขึ้นสำหรับ MS-DOS เป็นแพ็กเกจซอฟต์แวร์ที่ผลิตและดูแลโดยMKS Inc.ซึ่งจัดเตรียม สภาพแวดล้อม แบบ Unixสำหรับการเขียนสคริปต์ การเชื่อมต่อ และการพอร์ต ซอฟต์แวร์ UnixและLinux ไปยังระบบ Microsoft Windowsทั้งแบบ 32 บิตและ 64 บิต ชุดย่อยของมันถูกรวมอยู่ใน Windows Services for UNIX (SFU) เวอร์ชันแรก ในปี 1998 [ 63 ] [ 64 ]
ไลบรารีรันไทม์ Windows CและAPI ซ็อกเก็ต Windows
ใช้งานฟังก์ชัน API ของ POSIX ที่ใช้กันทั่วไปสำหรับการเข้าถึงไฟล์ เวลา สภาพแวดล้อม และซ็อกเก็ต[ 65 ]แม้ว่าการสนับสนุนจะยังไม่สมบูรณ์และไม่สามารถทำงานร่วมกันได้อย่างเต็มที่กับการใช้งานที่สอดคล้องกับ POSIX [ 66 ] [ 67 ]

สำหรับ OS/2

สภาพแวดล้อม POSIX สำหรับOS/2 :

emx+gcc
ส่วนใหญ่เป็นไปตามมาตรฐาน POSIX

สำหรับ DOS

สภาพแวดล้อม POSIX สำหรับDOSประกอบด้วย:

emx+gcc
ส่วนใหญ่เป็นไปตามมาตรฐาน POSIX
ดีเจจีพีพี
เป็นไปตามมาตรฐาน POSIX บางส่วน
ดีอาร์-ดีโอเอส
แกนหลักการทำงานแบบมัลติทาสก์ผ่านEMM386 /MULTI – ส่วนขยาย API ส่วนหน้าสำหรับเธรด POSIX พร้อมใช้งานแล้ว

ดูเพิ่มเติม

  • ไลบรารี C POSIX  – ไลบรารีมาตรฐานภาษา C สำหรับระบบ POSIX โดยเฉพาะ
  • มาตรฐานส่วนติดต่อผู้ใช้ ของ IBM Common User Access  –
  • Interix  – ระบบย่อย Unix สำหรับระบบปฏิบัติการ Windows NT
  • รายการคำสั่ง POSIX
  • สัญญาณ POSIX  – รูปแบบหนึ่งของการสื่อสารระหว่างกระบวนการในระบบคอมพิวเตอร์
  • เธรด POSIX  – รูปแบบการประมวลผลที่ช่วยให้สามารถประมวลผลแบบขนานได้
  • ชุดอักขระแบบพกพา – ชุดอักขระที่ควรได้รับการสนับสนุนในภาษาท้องถิ่นใดๆ ที่เป็นไปตามมาตรฐาน POSIX
  • ระบบปฏิบัติการแบบเรียลไทม์  – ระบบปฏิบัติการคอมพิวเตอร์สำหรับแอปพลิเคชันที่มีข้อจำกัดด้านเวลาที่สำคัญ
  • ข้อกำหนด UNIX เดียว  – มาตรฐานสำหรับระบบปฏิบัติการที่ใช้เครื่องหมายการค้า UNIX
  • โครงการ TRON  – ระบบปฏิบัติการแบบเรียลไทม์
  • "มาตรฐานพื้นฐานของ The Open Group ฉบับที่ 8 ปี 2024 IEEE Std 1003.1™-2024" The Open Group/IEEE
  • "หน้าหลักการรับรอง POSIX" The Open Group/IEEE
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=POSIX&oldid=1355881216 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โพสิกซ์

อิน เท อ ร์ เฟ ซ ระบบปฏิบัติการแบบพกพา (POSIX; IPA: /ˈpɒz.ɪks/ [1]) เป็นตระกูลมาตรฐานที่กำหนดโดย IEEE Computer Society เพื่อรักษาความเข้ากันได้ระหว่างระบบปฏิบัติการ [1] เพื่อ...

ชื่อ

มาตรฐานดังกล่าวเกิดขึ้นจากโครงการที่เริ่มต้นในปี 1984 โดยต่อยอดจากงานที่เกี่ยวข้องกับกิจกรรมในกลุ่ม /usr/ [ 5 ] Richard Stallman เสนอชื่อ POSIX ให้กับ IEEE [ 6 ] [ 7 ] แทนที่จะใช้ชื่อ IEEE-IX เดิม [ 8 ] คณะกรรมการพบว่าชื่อนี้ออกเสียงและจดจำได้ง่ายกว่า...

เวอร์ชัน

เดิมที POSIX ประกอบด้วยเอกสารฉบับเดียวสำหรับบริการหลัก แต่เมื่อเวลาผ่านไป มีการเผยแพร่เอกสารเพิ่มเติมเพื่อขยายและแก้ไขข้อกำหนด ก่อนปี 1997 POSIX ประกอบด้วยเอกสารหลายฉบับที่เผยแพร่ในช่วงหลายปี หลังจากปี 1997 กลุ่ม Austin ได้จัดทำข้อกำหนดที่เรียกว่า Single UNIX...

ก่อนปี 1997

บริการหลัก (IEEE Std 1003.1-1988) ประกอบด้วยมาตรฐาน ANSI C และรวมถึง: