Nakasusunod ba ang Linux POSIX?

Is Linux Posix Compliant



Ang software ay nakasulat ng maraming mga developer na may iba't ibang mga background. Ang mga pangkalahatang algorithm ay magagamit sa ilalim ng isang libreng lisensya o nai-publish na pang-agham, at maaari din itong magamit nang libre para sa mga hangarin sa pag-aaral. Nagreresulta ito sa iba't ibang mga pagpapatupad at bersyon ng software na umaangkop sa iba't ibang mga pangangailangan. Ang isang pamantayan ng mga interface at format ng data ay kinakailangan upang gawin ang iba't ibang mga pagpapatupad na kapwa mapagpalit at modular.

Sa madaling sabi, eksaktong ginagawa iyon ng POSIX para sa mga sistemang tulad ng UNIX at UNIX (tingnan ang artikulo ni Zak H [4] para sa isang mas detalyadong kasaysayan sa paksang ito). Tinutukoy nito ang mga interface ng palitan, mekanismo ng pagtawag, at paglilipat ng data para sa software ngunit iniiwan ang panloob na pagpapatupad sa developer o nagpapanatili ng software. Ang layunin ay upang pag-isahin ang lahat ng iba't ibang mga tinidor ng UNIX at mga sistemang tulad ng UNIX sa paraang magkakaiba ang pagpapatupad ng iba't ibang software. Ang pangunahing bentahe ng POSIX ay ang pagkakaroon ng isang nagbubuklod na dokumentasyon para sa mga sangkap na ito - mga interface, mekanismo, at data - magagamit sa nakasulat na form.







Ang isang operating system na sumusunod sa pamantayan ng POSIX sa kabuuan nito ay inuri bilang sumusunod sa POSIX. Sa artikulong ito, ipinapaliwanag namin kung ano ang ibig sabihin ng POSIX, matukoy kung kabilang ang Linux sa kategoryang ito, at ilista kung aling mga bahagi ng Linux ang dapat na maibukod mula sa pag-uuri na ito.



Ano ang Katawan ng POSIX?

Ang POSIX ay isang pagpapaikli para sa Portable Operating System Interface. Tulad ng maikling ipinaliwanag sa itaas, ang POSIX ay ang pangalan para sa isang koleksyon ng mga pamantayan na kinakailangan upang mapanatili ang pagiging tugma sa pagitan ng mga operating system. Tulad ng nakasaad sa [1], tinukoy nito [ang] interface ng aplikasyon ng aplikasyon (API), kasama ang mga shell ng command-line at interface ng utility, para sa pagiging tugma ng software sa mga variant ng Unix at iba pang mga operating system. Ang unang bersyon ng POSIX ay nai-publish noong 1988. Mula noon, ang POSIX ay patuloy na pinalawak at na-update ng Austin Common Standards Revision Group (kilala rin bilang The Austin Group) [7].



Bilang ng 2021, ang pamantayan ng POSIX ay naglalaman ng mga sumusunod na bahagi:





  1. Mga Pangunahing Serbisyo (Isinasama ang Karaniwang ANSI C) (IEEE std 1003.1-1988) - Paglikha ng Proseso at Pagkontrol, Mga Senyal, Pagpapatakbo ng File at Directory, Mga Pipe, C library, I / O Port Interface at Control, Mga Trigger ng Proseso
  1. Mga Extension (Mga Simbolo na Link)
  2. Mga extension ng real-time at I / O (IEEE Std 1003.1b-1993) - Pag-iiskedyul ng Priority, Real-Time Signals, Clocks at timer, Semaphores, Passing ng Mensahe, Ibinahaging Memory, Asynchronous at Synchronous I / O, Memory Locking Interface
  3. Mga extension ng thread (IEEE Std 1003.1c-1995) - Paglikha ng Thread, Pagkontrol, at Paglilinis, Pag-iskedyul ng Thread, Pag-synchronize ng Thread, Paghawak ng Signal
  4. Mas maraming mga real-time na extension
  5. Mga extension sa seguridad (Mga listahan ng kontrol sa pag-access)
  1. Shell at Mga Utility (IEEE Std 1003.2-1992) - Command Interpreter, Utility Programs

Regular na nasusuri ang pamantayan upang maipakita ang mga teknikal na pagbabago at pagpapabuti. Minsan ay maaaring tumagal ng ilang taon bago ma-publish ang isang bagong bersyon at isama ang mga pagbabago. Maaari itong maging hindi maganda, ngunit naiintindihan na ibinigay ang saklaw ng pamantayan.

Sa mga nagdaang taon, naidagdag ang mga extension sa pagproseso ng real-time. Ang kasalukuyang bersyon ay inilabas noong unang bahagi ng 2018 [3]. Ang mga may-akda ng SibylFS [5] ay naglathala din ng maraming mga anotasyon sa pamantayan ng POSIX upang matukoy ang mas mataas na pagkakasunud-sunod na lohika at mga pakikipag-ugnayan.



Ano ang Kahulugan ng pagiging POSIX-Compliant?

Ang term na sumusunod sa POSIX ay nangangahulugang natutugunan ng isang operating system ang lahat ng pamantayan ng POSIX. Ang isang operating system ay maaaring magpatakbo ng mga programa ng UNIX nang katutubong, o ang isang application ay maaaring mai-port mula sa UNIX system patungo sa isa pang system. Ang pagdadala ng isang application mula sa UNIX patungo sa target na operating system ay madali, o mas madali man lang, kaysa kung hindi nito sinusuportahan ang POSIX. Upang maging nasa ligtas na panig, ang isang operating system ay dapat na matagumpay na nakamit ang sertipikasyon ng POSIX [2]. Ang hakbang na ito ay nakakamit (sa isang gastos) sa pamamagitan ng pagpasa ng isang awtomatikong pagsubok sa sertipikasyon. Ang kaukulang pagsubok na suite ay matatagpuan dito [11].

Hanggang noong 2021, ang listahan ng mga operating system na sertipikado ng POSIX ay naglalaman ng AIX mula sa IBM, HP-UX mula sa HP, IRIX mula sa SGI, EulerOS [6] mula sa Huawei, Mac OS X mula sa Apple (mula 10.5 Leopard), Solaris at QNX Neutrino mula sa Oracle, K-UX [11] ni Inspur, at ang real-time na OS INTEGRITY mula sa Green Hills Software [15]. Kasalukuyang hindi malinaw kung ang mga mas bagong bersyon ng tatlong mga kahalili sa Solaris, OpenSolaris, Illumos, at OpenIndiana, ay inuri bilang ganap na sumusunod sa POSIX, pati na rin. Ang mga operating system na ito ay sumusunod sa POSIX hanggang sa POSIX 2001.

Ang iba pang mga operating system na nakikita bilang karamihan (ngunit hindi ganap) na sumusunod sa POSIX ay may kasamang Android, BeOS, FreeBSD, Haiku, Linux (tingnan sa ibaba), at VMWare ESXi. Para sa Microsoft Windows, nagbibigay ang Cygwin ng higit sa lahat na sumusunod sa POSIX na pag-unlad at kapaligiran sa run-time.

Nakasusunod ba ang Linux POSIX?

Ang term na Linux ay tumutukoy sa buong operating system ng Linux, hindi alintana ang lasa, tulad ng Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora, at CentOS, halimbawa. Upang maging tumpak, ang Linux ay pangalan lamang ng kernel na pangunahing sangkap ng libreng operating system na ito.

Tulad ng inilarawan ni Linus Torvalds sa librong Just For Fun [8], upang paunlarin ang kernel ng Linux, humiling siya ng isang kopya ng pamantayan ng POSIX. Nakatulong ito sa kanya upang maipatupad ang parehong mga mekanismo na ginagamit sa mga komersyal na UNIX system. Bukod dito, pinayagan siyang maiugnay ang kernel ng Linux sa mga tool ng GNU na pangunahing sinusunod ang parehong diskarte. Upang maging patas, ang software sa isang sistema ng Linux ay naiambag mula sa iba't ibang mga mapagkukunan na gumagalang sa pamantayan ng POSIX, ngunit kung minsan ay nagpapatupad din ng kanilang sariling mga konsepto. Gayunpaman, sa parehong oras, ipinapakita rin nito ang pagkakaiba-iba na bumubuo sa Linux bilang isang operating system.

Ang isang halimbawa nito ay ang paraan kung saan nakasulat ang mga argumento sa linya ng utos. Ang mga pangangatwirang may dalawang gitling (hal., –Help) ay mga kombensyon ng GNU, samantalang ang mga utos ng POSIX ay hindi kailanman gumagamit ng dalawang-dash na mga argumento ngunit sa halip ay isang solong (hal., -Help). Mula pa lamang sa pagsisimula, ang Linux ay dinisenyo na nasa isip ang GNU, at iyon ang dahilan kung bakit naglalaman ang mga utos ng istilong GNU

mga pagtatalo. Upang makamit ang pagsunod sa POSIX, ang mga argumentong estilo ng POSIX ay naidagdag nang sunud-sunod. Gayunpaman, ang pangwakas na desisyon ay ginawa ng developer. Tulad ng ngayon, ang karamihan sa mga utos ay tumatanggap ng parehong maikli at mahabang argumento, o kahit na mga argumento nang walang anumang mga gitling, tulad ng find command, halimbawa. Upang maging patas, walang pagkakapare-pareho sa pagitan ng mga utos sa isang system, at ito ay maaaring maging isang problema kapag balak mong gamitin ang parehong utos sa ibang sistema na nakabatay sa UNIX, lalo na kapag lumilipat sa pagitan ng Linux, OS X, at Solaris.

Sa ngayon, ang Linux ay hindi sertipikado ng POSIX dahil sa mataas na gastos, maliban sa dalawang pamamahagi ng komersyal na Linux na Inspur K-UX [12] at Huawei EulerOS [6]. Sa halip, ang Linux ay nakikita bilang karamihan na sumusunod sa POSIX.

Ang pagtatasa na ito ay dahil sa ang katunayan na ang mga pangunahing pamamahagi ng Linux ay sumusunod sa Linux Standard Base (LSB) sa halip na POSIX [9]. Nilalayon ng LSB na i-minimize ang mga pagkakaiba sa pagitan ng mga indibidwal na pamamahagi ng Linux [14]. Ito ay tumutukoy sa istraktura ng sistema ng software, kasama ang Filesystem Hierarchy Standard (FHS) na ginamit sa kernel ng Linux. Ang LSB ay batay sa pagtutukoy ng POSIX, ang solong pagtutukoy ng UNIX (SUS) [10], at maraming iba pang bukas na pamantayan, ngunit pinalawak din ang mga ito sa ilang mga lugar.

Kasama sa mga pamamahagi ng Linux na nakabase sa LSB ang RedHat Linux, Debian GNU / Linux (2002-2015), at Ubuntu (hanggang 2015), upang pangalanan ang ilan.

Pagbubuo ng nasa isip na POSIX

Upang maunawaan ang POSIX nang mas detalyado, inirerekumenda namin ang pagkuha ng isang kopya ng pamantayan ng POSIX at basahin ito nang buo. Maaari mong makuha ang libro mula sa website ng Open Group. Nangangailangan ito ng bayad sa pagpaparehistro ngunit nagbibigay sa iyo ng buong pag-access sa mahalagang mapagkukunang ito. Tumutulong ang mga pamantayan dahil pinapayagan ka nilang bumuo ng software sa paraang kumikilos ito sa parehong paraan sa lahat ng mga UNIX platform.

Mga Link at Sanggunian

Salamat

Nais ng may-akda na pasalamatan sina Axel Beckert at Veit Schiele para sa kanilang tulong at payo habang inihahanda ang artikulong ito.