Да ли је Линук ПОСИКС-компатибилан?

Is Linux Posix Compliant



Софтвер пишу бројни програмери са различитим искуством. Општи алгоритми су доступни под бесплатном лиценцом или су научно објављени, а такође могу бити бесплатни за потребе проучавања. Ово резултира различитим имплементацијама и верзијама софтвера које одговарају различитим потребама. Стандардизација интерфејса и формата података неопходна је како би ове различите имплементације биле заменљиве и модуларне.

Укратко, ПОСИКС [1] ради управо то за системе сличне УНИКС-у и УНИКС-у (погледајте чланак Зака ​​Х-а [4] за детаљнију историју о овој теми). Он дефинише интерфејсе за размену, механизме позивања и пренете податке за софтвер, али оставља унутрашњу имплементацију програмеру или одржаваоцу софтвера. Циљ је објединити све различите УНИКС виљушке и системе сличне УНИКС-у на такав начин да различите имплементације софтвера могу међусобно комуницирати. Главна предност ПОСИКС -а је што има обавезујућу документацију за ове компоненте - интерфејсе, механизме и податке - доступну у писаној форми.







Оперативни систем који у потпуности прати ПОСИКС стандард класификован је као ПОСИКС-компатибилан. У овом чланку објашњавамо шта означава ПОСИКС, утврђујемо да ли Линук припада овој категорији и наводим које компоненте Линука морају бити искључене из ове класификације.



Шта значи термин ПОСИКС?

ПОСИКС је скраћеница за преносиви интерфејс оперативног система. Као што је горе укратко објашњено, ПОСИКС је назив за скуп стандарда који су потребни за одржавање компатибилности између оперативних система. Као што је наведено у [1], [то] дефинише интерфејс апликативног програмирања (АПИ), заједно са љускама командне линије и услужним интерфејсима, за компатибилност софтвера са варијантама Уника и других оперативних система. Прва верзија ПОСИКС -а објављена је 1988. Од тада је ПОСИКС стално прошириван и ажуриран од стране Аустин Цоммон Цоммон Стандард Ревисион Гроуп (такође познате и као Тхе Аустин Гроуп) [7].



Од 2021. године стандард ПОСИКС садржи следеће делове:





  1. Основне услуге (Укључује стандардни АНСИ Ц) (ИЕЕЕ стд 1003.1-1988)-Креирање и управљање процесима, сигнали, операције датотека и директоријума, цевоводи, Ц библиотека, интерфејс и контрола улазно/излазних портова, окидачи процеса
  1. Ектенсионс (Симболичне везе)
  2. Проширења у реалном времену и У/И (ИЕЕЕ Стд 1003.1б-1993)-Приоритетно планирање, сигнали у реалном времену, сатови и тајмери, семафори, прослеђивање порука, дељена меморија, асинхрони и синхрони И/О, интерфејс за закључавање меморије
  3. Проширења нити (ИЕЕЕ Стд 1003.1ц-1995)-Креирање нити, контрола и чишћење, Заказивање нити, Синхронизација нити, Руковање сигналом
  4. Више проширења у реалном времену
  5. Сигурносни додаци (Спискови за контролу приступа)
  1. Схелл и комуналије (ИЕЕЕ Стд 1003.2-1992)-Командни тумач, помоћни програми

Стандард се редовно прегледава како би одражавао техничке промене и побољшања. Понекад може проћи неколико година пре него што се нова верзија објави и промене унесу. Ово може бити неповољно, али је разумљиво с обзиром на обим стандарда.

Последњих година додата су проширења за обраду у реалном времену. Тренутна верзија објављена је почетком 2018. [3]. Аутори СибилФС-а [5] су такође објавили многе напомене на стандард ПОСИКС ради утврђивања логике и интеракција вишег реда.



Шта значи бити у складу са ПОСИКС-ом?

Израз компатибилан са ПОСИКС-ом значи да оперативни систем испуњава све ПОСИКС критеријуме. Оперативни систем може изворно покретати УНИКС програме или се апликација може пренети из УНИКС система на други систем. Преношење апликације из УНИКС -а на циљни оперативни систем је једноставно, или барем лакше, него ако не подржава ПОСИКС. Да бисмо били сигурни, оперативни систем је требало успешно да постигне ПОСИКС сертификацију [2]. Овај корак се постиже (по цени) полагањем аутоматског сертификационог теста. Одговарајући пакет тестова може се пронаћи овде [11].

Од 2021. године листа оперативних система са сертификатом ПОСИКС садржи АИКС из ИБМ-а, ХП-УКС из ХП-а, ИРИКС из СГИ-а, ЕулерОС [6] из Хуавеи-а, Мац ОС Кс из Аппле-а (од 10.5 Леопард), Соларис и КНКС Неутрино из Орацле, Инспур-ов К-УКС [11] и ОС ИНТЕГРИТЕТ ОС у реалном времену из Греен Хиллс Софтваре-а [15]. Тренутно није јасно да ли су новије верзије три наследника Солариса, ОпенСоларис, Иллумос и ОпенИндиана, такође класификоване као потпуно усклађене са ПОСИКС-ом. Ови оперативни системи су били усклађени са ПОСИКС-ом до ПОСИКС-а 2001.

Други оперативни системи који се сматрају углавном (али не у потпуности) компатибилним са ПОСИКС-ом укључују Андроид, БеОС, ФрееБСД, Хаику, Линук (види доле) и ВМВаре ЕСКСи. За Мицрософт Виндовс, Цигвин пружа развојно окружење у великој мери усклађено са ПОСИКС-ом.

Да ли је Линук ПОСИКС-компатибилан?

Израз Линук односи се на читав Линук оперативни систем, без обзира на укус, као што су Дебиан ГНУ/Линук, РедХат Линук, Линук Минт, Убунту Линук, Федора и ЦентОС, на пример. Да будемо прецизни, Линук је само име језгра које је језгра овог бесплатног оперативног система.

Као што је Линус Торвалдс описао у књизи Јуст Фор Фун [8], за развој Линук кернела, затражио је копију ПОСИКС стандарда. То му је помогло да примени исте механизме који се користе у комерцијалним УНИКС системима. Штавише, то му је омогућило да повеже Линук језгро са ГНУ алатима који су углавном следили исти приступ. Да будемо искрени, софтвер на Линук систему долази из различитих извора који поштују ПОСИКС стандард, али који понекад имплементирају и сопствене концепте. У исто време, међутим, ово такође показује разноликост која чини Линук као оперативни систем.

Један пример за то је начин на који се пишу аргументи командне линије. Аргументи са две цртице (нпр. –Хелп) су ГНУ конвенције, док ПОСИКС команде никада не користе аргументе са две цртице, већ само једну (нпр. -Хелп). Од самог почетка, Линук је дизајниран имајући на уму ГНУ, и зато команде садрже ГНУ стил

аргументи. Да би се постигла усклађеност са ПОСИКС-ом, аргументи у стилу ПОСИКС-а додани су корак по корак. Ипак, коначну одлуку доноси програмер. Од данас, већина наредби прихвата и кратке и дуге аргументе, па чак и аргументе без цртица, попут команде финд, на пример. Да будемо искрени, не постоји доследност између команди на једном систему, а то може представљати проблем када намеравате да користите исту команду на другом систему заснованом на УНИКС-у, посебно при пребацивању између Линука, ОС Кс и Солариса.

За сада, Линук нема ПОСИКС сертификат због високих трошкова, осим две комерцијалне дистрибуције Линука Инспур К-УКС [12] и Хуавеи ЕулерОС [6]. Уместо тога, сматра се да је Линук углавном усклађен са ПОСИКС-ом.

Ова процјена је посљедица чињенице да велике дистрибуције Линука слиједе Линук Стандард Басе (ЛСБ) умјесто ПОСИКС [9]. ЛСБ има за циљ да смањи разлике између појединачних дистрибуција Линука [14]. Ово се односи на структуру софтверског система, укључујући стандард за хијерархију система датотека (ФХС) који се користи у језгру Линука. ЛСБ је заснован на ПОСИКС спецификацији, Јединственој УНИКС спецификацији (СУС) [10] и неколико других отворених стандарда, али их такође проширује у одређеним областима.

Линук дистрибуције засноване на ЛСБ-у укључују РедХат Линук, Дебиан ГНУ/Линук (2002-2015) и Убунту (до 2015), да набројимо само неке.

Развој са ПОСИКС -ом на уму

Да бисте боље разумели ПОСИКС, препоручујемо да набавите копију стандарда ПОСИКС и прочитате је у целости. Књигу можете набавити са веб странице Отворене групе. Ово захтева накнаду за регистрацију, али вам даје потпуни приступ овом вредном ресурсу. Стандарди помажу јер вам омогућавају да развијете софтвер на такав начин да се понаша на исти начин на свим УНИКС платформама.

Линкови и референце

Хвала вам

Аутор се захваљује Акел Бецкерт -у и Веит Сцхиеле -у на помоћи и саветима током припреме овог чланка.