POSIX: Общ преглед
Портативният интерфейс на операционната система (POSIX) е IEEE стандарт, който помага за съвместимост и преносимост между операционните системи. Теоретично изходният код, съвместим с POSIX, трябва да бъде безпроблемно преносим. В реалния свят преходът на приложения често се сблъсква със специфични за системата проблеми. Но спазването на POSIX улеснява портирането на приложения, което може да доведе до икономия на време. Така че разработчиците трябва да се запознаят с основите на този широко използван стандарт.
История на POSIX
Ранните програмисти трябваше да пренаписват своите приложения от нулата за всеки нов модел компютър. Но IBM System / 360 промени това. През 1964 г. той представи операционната система OS / 360. IBM започна да използва същата хардуерна архитектура, за да позволи на новите модели да използват повторно същата операционна система. Наличието на обща операционна система на множество машини създава първия етап за преносимост на приложенията.
В края на 60-те години пристигането на UNIX разкри нови възможности. Bell Labs на AT&T беше отговорен за първоначалното развитие на тази нова операционна система. Може да работи на машини от множество доставчици. Но UNIX започна да се разпространява в различни вкусове. Освен системата AT&T System V, имаше Berkeley Software Distribution (BSD), Xenix и други. Не беше лесно да се пренесе през тези вкусове. Обещанието за преносимост на приложения удари пътя. През следващите десетилетия въвеждането на нови операционни системи само би направило по-сложно пренасянето на приложения през хардуер, операционни системи и доставчици.
Стандартът POSIX е разработен през 80-те години за разрешаване на проблема с преносимостта. Стандартът е дефиниран на базата на System V и BSD Unix. POSIX не дефинира операционната система, а само дефинира интерфейса между приложение и операционна система. Програмистите имат свободата да пишат своята операционна система и приложение, както и да искат, стига интерфейсът между двете да бъде спазен. Тъй като POSIX е независим от хардуера, операционната система или доставчика, е по-лесно да се постигне преносимост на приложенията.
Първият стандарт POSIX е издаден през 1988г. Формално се наричаше IEEE Standard 1003.1-1988 Портативен интерфейс на операционна система за компютърни среди ”. През 1990 г. беше пусната международна версия на същия стандарт с леки вариации като ISO / IEC 9945-1: 1990 Информационни технологии - Преносим интерфейс на операционна система (POSIX) - Част 1: Интерфейс на системната приложна програма (API).
Първоначално POSIX беше разделен на множество стандарти:
POSIX.1: Основни услуги
POSIX.1б: Удължения в реално време
POSIX.1в: Разширения на нишки
POSIX.2: Shell и помощни програми
След 1997 г. Austin Group събра всички стандарти под един чадър. Оттогава версиите POSIX.1-2001 (известен също като IEEE Std 1003.1-2001), POSIX.1-2004 (известен също като IEEE Std 1003.1-2004) и POSIX.1-2008 (известен също като IEEE Std 1003.1-2008) са освободени.
Примери за някои системи, съвместими с POSIX, са AIX, HP-UX, Solaris и MacOS (от 10.5 Леопард). От друга страна, Android, FreeBSD, Linux Distributions, OpenBSD, VMWare и др., спазват по-голямата част от стандарта POSIX, но те не са сертифицирани.
Основи на POSIX
POSIX.Стандартните сделки от 1-2008 г. са с четири основни области:
- Обем на основната дефиниция: Общи термини, понятия и интерфейси.
- Системни интерфейси Обем: Дефиниции на функциите и подпрограмите на системните услуги. Също така включва преносимост, обработка на грешки и възстановяване на грешки.
- Обем на черупката и помощните програми: Определяне на интерфейси на всяко приложение за командни черупки и общи полезни програми.
- Обосновка Обем: Съдържа информация и история за добавени или изхвърлени функции и мотиви на решенията.
Стандартът не обхваща графични интерфейси, интерфейси на база данни, преносимост на обект / двоичен код, системни конфигурации, съображения за I / O или наличност на ресурси.
Някои от водещите принципи зад дизайна на POSIX са:
- POSIX е създаден, за да улесни преносимостта на приложенията. Така че не е само за UNIX системи. Системите, които не са UNIX, също могат да бъдат съвместими с POSIX.
- Стандартът не диктува развитието на приложението или операционната система. То само определя договора между тях.
- Изходният код на приложението, съвместимо с POSIX, трябва да може да се изпълнява в много системи, тъй като стандартът е дефиниран на ниво изходен код. Стандартът обаче не гарантира преносимост на обект или двоичен код. Така че двоичният изпълним файл може да не работи дори на подобни машини с идентичен хардуер и операционни системи. В стандарта се разглежда само преносимостта на изходния код.
- POSIX е написан по отношение на стандарт C. Но разработчиците могат да го внедрят на всеки език, който им харесва.
- Стандартът се занимава само с аспекти на операционната система, която взаимодейства с приложения.
- Стандартът е лаконичен по отношение на дължината и широк по отношение на обхвата, за да обхване широк спектър от системи.
- POSIX е проектиран да опрости преносимостта. Така че ще спестите време и пари в дългосрочен план. Ако обаче вашите приложения не са съвместими с POSIX, в началото може да е необходимо значително инвестиране на време и ресурси.
Разработване на приложения POSIX
Целта на POSIX беше да подобри преносимостта. Когато изходният код следва стандарта, можете лесно да компилирате и стартирате кода на различна машина. Ако обаче POSIX се дефинира като общо изискване за приложение, това може да доведе до объркване. Пълният стандарт POSIX е над 4000 страници с повече от 1350 интерфейса. Няма смисъл да се прилага всичко. Така че всеки проект трябва да дефинира аспектите на POSIX, които ще отговарят на определени изисквания.
В общността за разработки има заблуди, че стандартът POSIX е стар и без значение. Не е вярно. POSIX е жив документ, който редовно се актуализира от Austin Group. Всеки може да се присъедини към групата и да участва в подобряване на стандарта. Стандартът се използва активно в днешните сървъри, работни станции, рутери, мобилни устройства, вградени системи и др. Използва се за машини UNIX и Linux.
Разработчиците обаче трябва да са наясно, че POSIX стандартът има проблеми. Можете да съобщите за всяка грешка, която откриете, на Austin Group и тя ще бъде разгледана за следващата ревизия.
Заключение
Отначало POSIX може да изглежда обезсърчително. И все пак разработчиците на приложения трябва да се запознаят с основите, тъй като те ще се появяват като изискване от време на време. Поради големия обхват на стандарта не е възможно да станете експерт по пълния документ. Разработчиците могат да се свържат с общностите на UNIX и Linux, за да научат повече. Общностите могат да отговорят на вашите въпроси и да ви дадат по-добра представа за това каква част от стандарта ще има отношение към вашия проект.
Допълнително проучване:
- Пълен документ на POSIX
- Често задавани въпроси за POSIX
- Групата за ревизия на общите стандарти на Остин
Препратки:
- Често задавани въпроси за POSIX, Austin Group
- Остин Груп
- Документ 7542098 /
- Концепции за системни услуги на POSIX и UNIX
- OpenGroup Doc 9699919799
- Какво е POSIX?, Университета в Индиана
- Стандарти Документи @ open-std.орг
- Бил Галмайстър, Ръководство за програмиране на Posix
- Ръководство за програмисти на POSIX, Доналд Люин
- StackOverflow Какво е Posix
- История на Uniux, darwinsys.com
- Austin Open Group, хартия Posix
- Уикипедия POSIX