POSIX (Portable Operating System Interface) คือชุดมาตรฐานสากลที่กำหนดขึ้นโดยสถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์ (IEEE) ร่วมกับ The Open Group เพื่อให้ระบบปฏิบัติการตระกูลต่าง ๆ สามารถทำงานร่วมกันได้ และทำให้นักพัฒนาสามารถเขียนซอฟต์แวร์ที่นำไปคอมไพล์หรือรันบนระบบปฏิบัติการที่แตกต่างกันได้โดยไม่ต้องเขียนโค้ดขึ้นมาใหม่ทั้งหมด
จุดกำเนิดของ POSIX
ในช่วงทศวรรษ 1970 ถึง 1980 ระบบปฏิบัติการ Unix ได้รับความนิยมสูงและถูกนำไปพัฒนาต่อยอดอย่างแพร่หลายจนแตกแขนงออกเป็นหลายเวอร์ชัน เช่น BSD, System V หรือเวอร์ชันเฉพาะของผู้ผลิตฮาร์ดแวร์อย่าง SunOS, HP-UX และ AIX
ความหลากหลายนี้นำมาซึ่งปัญหาใหญ่: ซอฟต์แวร์ที่เขียนขึ้นสำหรับ Unix ค่ายหนึ่ง ไม่สามารถนำไปรันบน Unix อีกค่ายหนึ่งได้ง่ายๆ นักพัฒนาต้องเสียเวลาปรับแก้ซอร์สโค้ดใหม่อยู่ตลอดเวลา
ด้วยเหตุนี้ IEEE จึงริเริ่มโครงการมาตรฐานขึ้นมารองรับ เพื่อกำหนด “อินเทอร์เฟซมาตรฐาน” ในการสื่อสารระหว่างโปรแกรมกับระบบปฏิบัติการ โดยชื่อ POSIX ได้รับการเสนอโดย Richard Stallman (ผู้ก่อตั้งโครงการ GNU) ซึ่งย่อมาจาก Portable Operating System Interface พร้อมเติมตัวอักษร X ต่อท้ายเพื่อสื่อถึงสายเลือดตระกูล Unix
สาระสำคัญของมาตรฐาน POSIX
POSIX ไม่ใช่ระบบปฏิบัติการ แต่เป็น ชุดข้อกำหนด (Specification) ที่ระบุว่าระบบปฏิบัติการต้องเตรียม API, ยูทิลิตี และพฤติกรรมการทำงานอะไรบ้างไว้รองรับโปรแกรม
- C Language API
กำหนดฟังก์ชันมาตรฐานระดับระบบ (System Calls / C Library) เช่น การจัดการไฟล์ (open,read,write), การจัดการโปรเซส (fork,exec), การสื่อสารระหว่างโปรเซส (IPC) รวมถึงมัลติเธรด (POSIX Threads หรือpthreads) - Shell & Command-line Utilities
กำหนดไวยากรณ์ของเชลล์มาตรฐาน (POSIX Shell) และพฤติกรรมของคำสั่งพื้นฐาน เช่นls,grep,awk,sed,chmod,tarให้ทำงานแบบเดียวกันทุกระบบ - File System Semantics
กำหนดโครงสร้างระบบไฟล์ สิทธิ์การเข้าถึง (Permissions: read, write, execute), เส้นทางไฟล์ (Pathnames เช่น/), และลักษณะของ symbolic link - Error Handling & Signals
มาตรฐานการส่งสัญญาณขัดจังหวะโปรเซส (เช่นSIGINT,SIGKILL,SIGTERM) และรหัสข้อผิดพลาดผ่านตัวแปรerrno
ระดับการรองรับมาตรฐาน: POSIX-Certified vs POSIX-Compliant
ระบบปฏิบัติการในปัจจุบันมีความสัมพันธ์กับ POSIX ในระดับที่แตกต่างกัน
| ระบบปฏิบัติการ | ระดับการรองรับ | รายละเอียด |
| macOS | Certified (ทางการ) | ได้รับการรับรองมาตรฐาน POSIX (UNIX 03) อย่างเป็นทางการจาก The Open Group |
| Linux (ส่วนใหญ่) | Compliant (ส่วนใหญ่) | ปฏิบัติตามมาตรฐาน POSIX เป็นส่วนใหญ่ (ผ่าน GNU C Library) แต่ส่วนใหญ่ไม่ได้ส่งไปสอบรับรองทางการเนื่องจากมีค่าใช้จ่ายสูง |
| FreeBSD / OpenBSD | Compliant (สูง) | ยึดตามมาตรฐาน POSIX อย่างเคร่งครัดในระดับระบบและเครื่องมือมาตรฐาน |
| Windows | Compatibility Subsystems | ปัจจุบันรองรับผ่าน WSL (Windows Subsystem for Linux) ซึ่งมอบสภาพแวดล้อม POSIX เต็มรูปแบบสำหรับนักพัฒนา |
ทำไม POSIX จึงยังสำคัญในปัจจุบัน?
- Portability (ความยืดหยุ่นในการย้ายระบบ)
นักพัฒนาสามารถเขียนโปรแกรมภาษา C/C++ หรือสคริปต์อัตโนมัติ (Shell Script) เพียงครั้งเดียว แล้วนำไปใช้งานได้ตั้งแต่คอมพิวเตอร์ตั้งโต๊ะ, เซิร์ฟเวอร์คลาวด์ ไปจนถึงบอร์ดสมองกลฝังตัว (IoT / Embedded Systems) - รากฐานของคอนเทนเนอร์และคลาวด์
ระบบนิเวศของ Cloud Computing, Docker, Kubernetes และ CI/CD ล้วนทำงานอยู่บนคำสั่งและพฤติกรรมมาตรฐานของ POSIX ทั้งสิ้น - ลดการผูกขาด (Vendor Lock-in)
องค์กรไม่จำเป็นต้องถูกผูกมัดกับผู้ให้บริการระบบปฏิบัติการเพียงรายเดียว เนื่องจากระบบที่รองรับมาตรฐาน POSIX สามารถสลับเปลี่ยนหรือโยกย้ายแอปพลิเคชันไปมาระหว่างแพลตฟอร์มได้สะดวก
มาตรฐาน POSIX จึงเป็นเสมือน “ภาษากลาง” ที่เชื่อมต่อระหว่างนักพัฒนาและสถาปัตยกรรมระบบปฏิบัติการ ทำให้โลกของซอฟต์แวร์สามารถเติบโตได้อย่างเป็นเอกภาพมาจนถึงทุกวันนี้