POSIX คืออะไร แล้วมันดียังไง ทำไมต้องมีด้วยนะ

Ieee_blue

POSIX ย่อมาจาก Portable Operating System Interface หรือ POSIX นั้นคือ ข้อตกลงมาตรฐานที่ถูกระบุโดย IEEE Computer Society

ซึ่งมาตรฐานเหล่านั้นประกอบไปด้วย กลุ่มของ API (application programming interfaces) สำหรับ ระบบปฏิบัติการ Unix และ Unix-like ต่างๆ เช่น Solaris (Oracle), AIX (IBM), HP-UX (HP), OS X (Apple) และ Linux distros ต่างๆ (Linux distros ส่วนใหญ่ คลอบคลุมตาม POSIX เกือบทั้งหมด แต่ไม่ได้ มีการตรวจสอบอย่างเป็นทางการ เพราะต้องจ่ายเงินสำหรับการทดสอบนั้นเอง) ส่วน Windows เองนั้น ก็สามารถรองรับ POSIX ได้ผ่านทาง “Windows Subsystem for Linux” หรือ ใช้ Cygwin ซึ่งเป็น Third-party project นั้นเอง

แล้วทำไมต้องมี POSIX มีแล้วดียังไง?
การที่เราสร้างโปรแกรม แล้วเขียนโปรแกรมให้ใช้งาน API ที่กำหนดตาม POSIX มีข้อดีอย่างมาก เพราะจะทำให้โปรแกรมที่เราสร้างขึ้นมานั้นสามารถ port หรือ ย้ายไปใช้งานกับระบบปฏิบัติการอื่นๆที่รองรับ POSIX ได้ ทำให้เราไม่ต้องเขียนโปรแกรมขึ้นมาใหม่เพื่อรองรับ ระบบปฏิบัติการนั้นๆ ซึ่งแบบนี้เราจะเรียกโปรแกรมที่เขียนแบบนี้ว่า เป็นการเขียนแบบ cross-platform นั้นเอง

และนี้ก็เป็นการทำความรู้จักกับ POSIX หรือ Portable Operating System Interface ซึ่งเป็นมาตรฐาน API ที่ช่วยให้เราสามารถเขียนโปรแกรมให้ cross-platform ไปทำงานที่ระบบปฏิบัติการอื่นๆได้อย่างง่ายดายนั้นเอง

API คืออะไรกันนะ

8692704103_ae4cd86d81_b
API ย่อมาจาก application programming interfaces มีความหมายตรงตัวเลยนั้นก็คือ การเชื่อมต่อกันเพื่อแลกเปลี่ยนข้อมูล ระหว่าง โปรแกรม กับ โปรแกรมนั้นเอง

สำหรับใครที่มองไม่เห็นภาพ อาจจะลองเปรียบเทียบนึกถึงเวลา เราไปทานอาหารตามร้านอาหาร เปรียบเทียบว่าเราเป็นโปรแกรม และ พ่อครัว ร้านอาหารก็เป็นอีกโปรแกรมหนึ่ง ส่วนข้อมูลนั้นก็คือ อาหาร ที่เราต้องการจาก ร้านอาหาร
API ก็คือ เด็กเสริฟที่ทำหน้าที่ รับคำสั่งจากเรา ไปส่งให้ กับพ่อครัว แล้วพ่อครัวก็ส่งอาหารมาให้เราดังนั้นการที่จะสั่งหรือเรียก API ก็ต้องสั่งให้ถูกต้อง เพื่อที่จะได้รับข้อมูลที่เราต้องการได้อย่างถูกต้องนั้นเอง

Waiter_in_a_restaurant,_Paris_2011

จากการเปรียบเทียบว่า API นั้นก็คือ เด็กเสริฟ เราเห็นได้ว่าการที่มี API นั้น ทำให้คนอื่นๆนอกจากเราสามารถเข้าถึงอาหาร(ข้อมูล)ได้ง่ายขึ้นและเป็นมาตรฐานให้นักพัฒนาเข้าใจ

ทีนี้เราก็เข้าใจกับความหมายของ API ซึ่งทำให้การพัฒนาโปรแกรมระหว่างโปรแกรมนั้นเชื่อมต่อ พัฒนาได้ง่ายขึ้น สะดวกขึ้น นั้นเอง