posix системи. Файлова йерархия в POSIX системите

posix системи. Файлова йерархия в POSIX системите

POSIX и RTOS: опит за систематизиране

Сергей Золотарев, Николай Горбунов

Целта на тази статия е опит да се внесе малко яснота в историята на развитието на стандарта POSIX във връзка с операционните системи в реално време (RTOS).

Като въведение: защо да стандартизираме API?

Едно от най-важните свойства на стандарта POSIX е, че той дефинира "стандартизиран интерфейс за програмиране", към който разработчиците на сложни хардуерни и софтуерни системи трябва да се придържат. Създателите на тези системи са принудени да се изправят пред такива изисквания като кратко време за пускане на пазара (поради жестоката конкуренция), минимизиране на разходите и ускоряване на възвръщаемостта на инвестициите. В същото време лъвският дял от разходите, причинени от забавянето на процеса на разработка, се дължи на факта, че програмистите трябва да „преоткриват колелото“, отново и отново прилагайки функционалност, която отдавна е налична. Но това можеше да бъде избегнато чрез:

  • повторно използване на код от минали и паралелни проекти;
  • пренасяне на код от други операционни системи;
  • привличане на разработчици от други проекти (включително такива, използващи други операционни системи).

Всичко това е възможно благодарение на използването на ОС със стандартизиран API. Освен това, ако в първия случай е достатъчно организацията да има определен вътрешен стандарт (което е особено характерно за патентованите операционни системи), то вторите два случая просто изискват наличието на общопризнати стандарти - например POSIX.

По този начин, използвайки POSIX-съвместима операционна система като платформа за своите проекти, разработчикът получава възможността да прехвърли готовия код на ниво изходен текст както от своите минали или паралелни проекти, така и от проекти на трети страни. Това не само значително намалява времето за разработка на софтуера, но и подобрява неговото качество, тъй като тестваният код винаги съдържа по-малко грешки.

Кой кой е в разработката на POSIX

И ние ще започнем не със самия стандарт POSIX, а с рационализиране на ролята на организациите, участващи в работата по него.

Първият член е IEEE(Институт на инженерите по електротехника и електроника, Институт на инженери по електротехника и електроника), обществено сдружение с нестопанска цел на професионалисти. IEEE датира от 1884 г. (официално 1963 г.), има 380 000 индивидуални членове от 150 страни, публикува една трета от техническата литература за компютърни приложения, управление, електрически и информационни технологии и повече от 100 списания, популярни сред професионалистите; освен това асоциацията провежда над 300 големи конференции годишно. IEEE участва в разработването на над 900 съществуващи стандарта (www.ieee.ru/ieee.htm). Днес този институт се занимава с подготовка, координация, одобрение, публикуване на стандарти, но поради официалния си статут няма правомощия да приема документи като международни или национални стандарти. Следователно терминът „стандарт“ в разбирането на IEEE трябва да се разбира по-скоро като „спецификация“, която е в по-голяма степен съобразена със статута на документите, приети от асоциацията. В съответствие с IEEE участва в програмите на редица международни и регионални организации - IEC, ISO, ITU (Международен съюз по телекомуникации), ETSI (Европейски институт за телекомуникационни стандарти), CENELEC (Европейски комитет за електротехническа стандартизация) и в национални програми, например в програмата на такава организация като ANSI.

IEEE включва PASC (комитет за стандарти за преносими приложения), асоциационен комитет, който разработва семейството стандарти POSIX (www.pasc.org/). Преди това PASC беше известен като Техническия комитет по операционни системи.

Вторият участник в работата - ANSI(Американски национален институт по стандартизация, Американски национален институт по стандартизация) е частна организация с нестопанска цел, която администрира и координира дейностите по стандартизация в Съединените щати. В него работят само 75 души, но повече от 1000 компании, организации, държавни агенции и институции са членове на ANSI (www.ansi.org). ANSI представлява Съединените щати в двете големи международни организации за стандартизация, ISO и IEC.

Трети член - ISO(Международна организация по стандартизация, Международна организация по стандартизация). Създадена е през 1946 г. с решение на Комитета за координиране на стандартите и Общото събрание на ООН и официално започва работа на 23 февруари 1947 г. (www.iso.org). ISO е мрежа от национални институти по стандартизация на 146 страни (една държава, един член на ISO) с централен секретариат в Женева, Швейцария. Стандартите ISO се разработват в технически комитети, първият резултат от които е документът Draft International Standard (DIS), който след няколко одобрения се превръща в окончателен проект на международен стандарт (FDIS). След това въпросът за одобрението на този документ се поставя на гласуване; с положителен резултат се превръща в международен стандарт.

И накрая - IEC(Международна електротехническа комисия, Международна електротехническа комисия - IEC), основана през 1906 г. IEC изготвя и публикува международни стандарти за всички електрически, електронни и свързани технологии (www.iec.ch/). Към 1 ноември 2004 г. националните комитети на 64 държави бяха пълноправни членове на тази комисия. IEC публикува и препоръки, които се публикуват на английски и френски език и имат статут на международни стандарти. Въз основа на тях се разработват регионални и национални стандарти. За изготвяне на стандарти в различни областиДейностите на IEC се отговарят от технически комитети (TC), в които участват и националните комитети, заинтересовани от дейността на даден TC.

IEC е ключова организация в изготвянето на международни стандарти за информационни технологии. В тази област съществува съвместен технически комитет по информационни технологии - JTC 1, сформиран през 1987 г. в съответствие със споразумение между IEC и ISO. JTC1 има 17 подкомитета, които наблюдават всичко - от софтуер до езици за програмиране, компютърна графика и редактиране на изображения, хардуерни връзки и практики за сигурност.

Подготовката на нови IEC стандарти включва няколко етапа (предварителен, етап на предложение, подготвителен етап, етап на технически комитет, етап на запитване, етап на одобрение, етап на публикуване). Ако IEC документ е предназначен да стане само техническа спецификация, а не международен стандарт, преработена версия на документа се изпраща на Главен офисза публикуване. Четири месеца са предвидени за разработването на окончателния проект на международен стандарт (FDIS). Ако бъде одобрен от всички членове на техническия комитет, той се изпраща до централния офис за публикуване без етапа на одобрение на FDIS. След това FDIS стига до националните комитети, които трябва да го одобрят в рамките на два месеца. FDIS се счита за одобрен, ако повече от две трети от националните комитети са гласували за него и броят на отрицателните гласове не надвишава 25%. Ако документът не бъде одобрен, той се изпраща на техническите комитети и подкомитети за преглед. Стандартът трябва да бъде публикуван не по-късно от два месеца след одобрението на FDIS.

Няколко други организации участват в разработването и приемането на стандартите POSIX.

отворена групае международна организация за стандартизация на софтуер, която обединява почти 200 производители и потребителски общности, работещи в областта на информационните технологии (www.opengroup.org/). Open Group е създадена през 1995 г. чрез сливането на два от своите предшественици: X/Open и Open Software Foundation (OSF). Open Group е специализирана в разработването на методологии за сертифициране на софтуер и тестване за съответствие със специфични изисквания. По-специално, Open Group се занимава със сертифициране за такива области като платформата COE, CORBA, LDAP, Linux Standard Base, Schools Interoperability Framework (SIF), S / MIME Gateway, Single UNIX Specification, Wireless Application Protocol Specifications (WAP) и, накрая, фамилията стандарти POSIX (www.opengroup.org/certification/).

Austin Common Standards Revision Group (CSRG)е съвместна техническа работна група, създадена през 2002 г. от ISO, IEC и Open Group за създаване и поддържане най-новите версии 1003.1 стандарт, който ще се базира на ISO/IEC 9945-1-1996, ISO/IEC 9945-2-1993, IEEE Std 1003.1-1996, IEEE Std 1003.2-1992 и единична UNIX спецификация (www.opengroup.org/press/ 14нов02.htm).

Национален институт за стандарти и технологии (NIST)е федерална агенция в Технологичната администрация на Министерството на търговията (www.nist.gov/public_affairs/general2.htm), основана в Съединените щати през 1901 г. Мисията на NIST е да разработва и популяризира стандарти и технологии за подобряване на качеството на продуктите. NIST включва Лаборатория за информационни технологии (ITL), един от резултатите на която са Федералните стандарти за обработка на информация (FIPS, www.opengroup.org/testing/fips/general_info.html). NIST/ITL предложи през 1991 г. първоначален набор от тестове за POSIX сертифициране съгласно FIPS PUB 151-1 1990.

Какво е POSIX?

Формално терминът POSIXпредложено от Ричард Столман като съкращение за П ortable О perating Ссистемен интерфейс за un IX(преносим интерфейс операционна системаза Unix). POSIX е разработен за UNIX-подобни операционни системи (първите им версии датират от началото на 70-те години на миналия век) с цел осигуряване на преносимост на приложението на ниво изходен код.

Първоначалното описание на интерфейса е публикувано през 1986 г., тогава се нарича IEEE-IX (IEEE "s версия на UNIX). Името обаче бързо се промени, превръщайки се в POSIX и вече в следващата публикация (през 1986 г.) това използвана е нова версия За известно време POSIX се разбира като препратка (или синоним) към група свързани документи IEEE 1003.1-1988 и части от ISO / IEC 9945, и като завършен и одобрен международен стандарт ISO / IEC 9945.1: 1990 POSIX беше приет през 1990 г. Спецификациите на POSIX определят стандартен механизъм за взаимодействие приложна програмаи OS и в момента включва повече от 30 стандарта под егидата на IEEE, ISO, IEC и ANSI.

През цялата си история POSIX измина дълъг път с многобройни промени в обозначенията на спецификациите, тяхното специфично съдържание, процедури и логистиката на тяхната проверка. Оттогава няколко издания на стандарта POSIX бяха издадени от различни международни организации.

История на стандарта POSIX

Първата версия на спецификацията IEEE Std 1003.1 е публикувана през 1988 г. Впоследствие множество издания на IEEE Std 1003.1 са приети като международни стандарти.

Важни етапи на POSIX:

1990 г

Изданието от 1988 г. е преработено и става основа за следващи издания и допълнения. Той е одобрен като международен стандарт ISO/IEC 9945-1:1990.

1993 г

Издадена е версия 1003.1b-1993.

1996 г

IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995 и 1003.1i-1995 са променени, но основната част на документа не е променена. През 1996 г. IEEE Std 1003.1 също беше одобрен като международен стандарт ISO/IEC 9945-1:1996.

1998 г

Появява се първият стандарт за "реално време" - IEEE Std 1003.13-1998. Това е разширение на стандарта POSIX за вградени приложения в реално време.

1999 г

Беше решено да се направят първите значителни промени в основния текст на стандарта през последните 10 години, включително сливане със стандарта 1003.2 (Shell и помощни програми), тъй като по това време това бяха отделни стандарти. PASC реши да финализира промените в основния текст след завършването на стандартите IEEE 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q и 1003.2b.

2004 г

Последната ревизия на стандарта 1003.1 до момента беше публикувана на 30 април и пусната под егидата на Austin Common Standards Revision Group. Той е изменен за изданието на стандарта от 2001 г. Официално изданието от 2004 г. е известно като IEEE Std 1003.1, 2004 Edition, The Open Group Technical Standard Base Specifications, издание 6 и включва IEEE Std 1003.1-2001, IEEE Std 1003.1-2001 /Cor 1-2002 и IEEE Std 1003.1-2001/Cor 2-2004.

Най-важните POSIX стандарти за RTOS

За операционните системи в реално време седем спецификации на стандарта са най-важни (1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21), но само три са получили широка поддръжка в търговски операционни системи:

  • 1003.1a (дефиниция на ОС)дефинира основните интерфейси на ОС, управление на работата, сигнали, функции файлова системаи работа с устройства, потребителски групи, конвейери, FIFO буфери;
  • 1003.1b (разширения в реално време)описва разширения в реално време като сигнали в реално време, приоритетно планиране, таймери, синхронни и асинхронен I/O, семафори, споделена памет, съобщения. Първоначално (до 1993 г.) този стандарт се нарича POSIX.4.
  • 1003.1c (Нишки)дефинира функции за поддръжка на нишка (нишка) - управление на нишка, атрибути на нишка, мютекси, планиране. Първоначално наричан POSIX.4a.

В допълнение към тези стандарти, следните стандарти са важни за OS RV, които бяха внедрени като част от работата по проекта Std 1003.1-2001:

  • IEEE 1003.1d-1999. Допълнителни разширенияреално време. Първоначално наричан POSIX.4b;
  • IEEE 1003.1j-2000.Подобрени (разширени) разширения в реално време;
  • IEEE 1003.1q-2000.проследяване.

Процедура за сертифициране

За да отговаря на стандарта POSIX, операционната система трябва да бъде сертифицирана спрямо резултатите от подходящ набор от тестове. След въвеждането на POSIX тестовият пакет претърпя формални и фактически промени.

През 1991 г. NIST разработи програмата за тестване на FIPS 151-1 POSIX (http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf). Тази опция за тестване се основава на IEEE 1003.3 „Стандарт за тестови методи за измерване на съответствие с POSIX“ проект 10, 3 май 1989 г. През 1993 г. NIST завърши програмата за тестване на POSIX за FIPS 151-1 и започна програмата за FIPS 151 -2 (www.itl.nist.gov/fipspubs/fip151-2.htm). FIPS 151-2 адаптира „Информационни технологии – Интерфейс на преносима операционна система (POSIX) – Част 1: Интерфейс на програмни приложения на системата (API)“, който е стандарт ISO/IEC 9945-1:1990. Тестовите комплекти за FIPS 151-2 са базирани на IEEE 2003.1-1992 „Стандарт за тестови методи за измерване на съответствие с POSIX“.

NIST прави разлика между две методологии за сертифициране: самосертифициране и сертифициране от IEEE акредитирани лаборатории за тестване на POSIX (APTL). В първия случай компанията провежда самостоятелно тестване, но по план, одобрен от NIST. Във втория случай тестването се извършва от независима лаборатория с помощта на автоматизирани тестови пакети. Общо две лаборатории APTL бяха акредитирани: Mindcraft (www.mindcraft.com) и Perennial (www.peren.com).

През 1997 г. NIST/ITL обяви намерението си да прекрати сертифицирането на FIPS 151-2 в края на текуща година(официално - 31 декември 1997 г.), в същото време Open Group обяви, че ще поеме от 1 октомври същата година услуга за сертифициране в съответствие с FIPS 151-2, базирана на програмата NIST / ITL . Същите функции бяха поети от Асоциацията за стандарти IEEE (IEEE-SA) на 1 януари 1998 г. и също въз основа на FIPS 151-2.

През 2003 г. IEEE-SA и Open Group обявиха нова съвместна програма за сертифициране на най-новите POSIX версии, започвайки с IEEE 1003.1™ 2001. Open Group сега има няколко тестови пакета, които покриват IEEE Std 1003.1-1996, IEEE Std 1003.2-1992, IEEE Std 1003.1-2003 и IEEE Std 1003.13-1998 (www.opengroup.org/testing/testsuites/posix.html). Един продукт се счита за POSIX-сертифициран, ако е преминал пълната процедура за сертифициране, отговаря на всички изисквания въз основа на резултатите от тестването и е вписан в официалния регистър на сертифицираните продукти.

Тестовите пакети включват:

  • VSX-PCTS1990 (www.opengroup.org/testing/testsuites/vsxpcts1990.htm) набор от тестове за съответствие за системни интерфейси IEEE Std 1003.1-1990;
  • VSPSE54 (www.opengroup.org/testing/testsuites/VSPSE54.htm) набор от тестове за съответствие за IEEE Std 1003.13-1998 Профил PSE54 (многофункционален в реално време);
  • VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) набор от тестове за съответствие за системни интерфейси IEEE Std 1003.1-2003 (само необходими части);
  • VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscpcts2003.htm) е набор от тестове за съответствие за IEEE Std 1003.1-2003 (черупката и помощните програми са само задължителни части).

Освен това Open Group е разработила тестове за стандартите POSIX Realtime и профила на стандартите Embedded POSIX. Тестовият пакет POSIX Realtime (www.opengroup.org/testing/testsuites/realtime.html) включва следните тестове:

  • IEEE POSIX 1003.1b-1993/1003.1i-1995 Разширение в реално време и IEEE POSIX 1003.1, 2003 издание;
  • IEEE Std POSIX 1003.1c-1995 Нишки (pthreads) разширение и IEEE POSIX 1003.1, 2003 Edition;
  • IEEE POSIX 1003.1d-1999 Допълнително разширение в реално време и IEEE POSIX 1003.1, 2003 Edition;
  • IEEE POSIX 1003.1j-2000 Advanced Realtime Extension и IEEE POSIX 1003.1,2003 Edition;
  • IEEE POSIX 1003.1q-2000 Trace и IEEE POSIX 1003.1,2003 Edition и IEEE POSIX 1003.1,2003 Edition;

Пакетът за тестове за вграден профил на POSIX стандарти (www.opengroup.org/testing/testsuites/embedded.html) включва следните тестове:

  • IEEE POSIX 1003.1-1990 (5310 теста);
  • IEEE POSIX 1003.1b-1993/1003.1i-1995 Разширение в реално време (1430 теста);
  • IEEE Std POSIX 1003.1c-1995 Нишки (pthreads) разширение (1232 теста);
  • IEEE POSIX 1003.13-1998 Профил 52.

Малко за объркването в терминологията

Прилага се към групата стандарти POSIX в английски езикчесто се използва не един, а три термина. За съжаление те са сходни по значение и често се превеждат по един и същи начин, което внася известно объркване. Тези условия са:

  • съвместимост (буквално - "съвместимост");
  • compliance (буквално - "съответствие");
  • конформанс (буквално - "последователност").

Първият термин във връзка с POSIX не е официално дефиниран. Второто означава, че производителят на софтуерния продукт самостоятелно декларира, че този продукт (изцяло или частично) отговаря на изброените стандарти NIST-PCTS. Третият термин предполага това софтуере преминал установената система от тестове или с помощта на акредитирана лаборатория, или в рамките на Open Group и има документално доказателство за това (т.нар. Декларация за съответствие). По-нататък в текста на статията навсякъде ще бъдат дадени оригиналните условия, за да се елиминира неяснотата.

Сертифицирана RT OS

Ако се придържаме към строги правила, изискващи данните за сертифицирана RT OS да бъдат публикувани в официален регистър и тестването да се извършва на ниво съответствие, тогава в момента има само две сертифицирани RT OS (данните са дадени в хронологичен ред):

LynxOS v.3(продукт на Lynx Real-Time Systems, сега LynuxWorks, Inc., www.lynuxworks.com) е предназначен за разработване на софтуер за вградени системи в реално време от OEM и производители на телекомуникационно оборудване, по-специално производители на военни бордови системи. Разработката може да се извърши както на самата целева система (самостоятелно хоствана), така и на инструменталния компютър (хост), готовият софтуер е проектиран да работи на целевата система (целева). LynxOS v.3 е сертифицирана за съответствие с POSIX на платформи Intel и PowerPC. Информация за това може да бъде намерена на уебсайта на IEEE http://standards.ieee.org/regauth/posix/posix2.html. LynxOS е POSIX 1003.1-1996, сертифицирана от Mindcraft, IEEE POSIX акредитирана лаборатория за тестване на POSIX съгласно NIST FIPS 151-2 набор от тестове за съответствие. Номер на документа за сертифициране: Референтен файл: IP-2LYX002, Референтен файл: IP-2LYX001.

ИНТЕГРИТЕТ v.5(продукт на Green Hills Software, www.ghs.com) съответствие, сертифицирано за POSIX 1003.1-2003 от System Interfaces за PowerPC архитектурата през юли 2004 г. (http://get.posixcertified.ieee.org/select_product.tpl). VSX-PCTS 2003 тестов пакет.

POSIX и операционната система QNX

QNX v.4.20 (разработен от QNX Software Systems, www.qnx.com) е сертифициран за съвместимост с POSIX 1003.1-1988 за платформата от Intel DataFocus Incorporated. Тестван на 13 септември 1993 г., документ, издаден на 1 ноември 1993 г. Тестов пакет NIST PCTS 151-1, версия 1.1.

QNX Neutrino (версия 6.3) отговаря на следните стандарти от семейство POSIX (www.qnx.com/download/download/8660/portability.pdf):

  • POSIX.1 (IEEE 1003.1);
  • POSIX.1a (IEEE 1003.1a);
  • POSIX.2 (IEEE 1003.2);
  • POSIX.4 (IEEE 1003.1b);
  • POSIX.4a (IEEE 1003.1c);
  • POSIX.1b (IEEE 1003.1d), IEEE 1003.1j;
  • POSIX.12 (IEEE 1003.1g).

QNX Software Systems, създателят на QNX Neutrino, също планира да сертифицира (съответствие) QNX Neutrino с някои от тези стандарти; работата е планирана за 2005 г. (www.qnx.com/news/pr_959_1.html).

Литература

  1. Ръководство за работа на IEEE Standards Association. IEEE, октомври 2004 г.
  2. Кевин М. Обеланд. POSIX в реално време, програмиране на вградени системи, 2001 г.
  3. Стандарт IEEE/ANSI 1003.1: Информационни технологии - (POSIX) - Част 1: Системно приложение: Програмен интерфейс (API).
  4. Gallmeister, B.O. Програмиране за реалния свят, POSIX.4Севастопол, Калифорния: O'Reilly & Associates, 1995 г.
  5. Национален институт по стандарти и технологии, PCTS:151-2, POSIX Test Suite.
  6. POSIX: Сертифициран от IEEE и The Open Group.Сертифицирана политика. The Open Group, 21 октомври 2003 г., Ревизия 1.1.

Курсът разглежда стандарта за интерфейс на мобилната операционна система (POSIX), както и техниките и методите за програмиране на приложения, базирани на този стандарт, илюстрирани с множество примери. Засягат се въпросите на програмирането на многопроцесорни системи, взаимодействието на приложенията в рамките на разпределени конфигурации. Осигуряването на мобилност (преносимост, преносимост) на софтуера (SW) е задача от изключителна важност и сложност; в наши дни това обстоятелство едва ли се нуждае от обширно обосноваване. На ниво системни услуги такава среда е описана от стандарта POSIX (Portable Operating System Interface); името е предложено от известен специалист, основателят на Фондацията за свободен софтуер Ричард Столман.

Курсът разглежда най-модерната му версия в изданието от 2003 г., която може да се нарече "троен стандарт", а именно: стандартът IEEE Std 1003.1, технически стандарт Open Group и, най-важното, международния стандарт ISO / IEC 9945. Основната цел на този курс е да се разберат техниките и методите за използване на стандартизирани помощни програми и функции. Целта не беше да се преразказва стандарта, като се подчертават всички тънкости на внедряването на ОС, всички възможни кодове за грешки и т.н. Основното, според нас, е да усетите духа на стандарта, да се научите как да използвате възможностите, присъщи на него по мобилен начин. Ако приемем, че читателят знае езика C, ние не сме взели предвид нито неговия синтаксис, нито функциите на библиотеката на учебника. Що се отнася до стандартния команден език и неговия интерпретатор, тази тема е разгледана доста подробно, въпреки че много практикуващи програмисти предпочитат да използват други интерпретатори. Значително място – и като обем, и като роля – е отделено на примерните програми. Много от разпоредбите на стандарта (свързани, да речем, с обработката на ситуации на грешка) не са посочени в основния текст, а в съответните примери.Последните, ако е възможно, са компилирани и изпълнени на няколко хардуерни и софтуерни платформи, до известна степен твърдят, че отговарят на стандарта POSIX. Въпреки това пропуски, разбира се, са възможни. Ще сме благодарни за всички коментари и предложения, свързани както с курса като цяло, така и с отделни примерни програми.

История на създаване и текущо състояние на стандарта POSIX.

Осигуряването на мобилност (преносимост, преносимост) на софтуера (SW) е задача от изключителна важност и сложност; в наше време това обстоятелство едва ли се нуждае от обширни обосновки. Един от общоприетите начини за увеличаване на преносимостта на софтуера е стандартизирането на средата на приложението: предоставени програмни интерфейси, помощни програми и т.н. На ниво системни услуги такава среда е описана от стандарта POSIX (Portable Operating System Interface); името е предложено от известния специалист, основател на Фондацията за свободен софтуер Ричард Столман.

Първа страница.
Изход.
Лекция 1. Основни концепции и идеи на стандарта POSIX.
Лекция 2. Shell език.
Лекция 3. Помощни програми и функции, обслужващи понятието "потребител".
Лекция 4. Организация на файловата система.
Лекция 5. Файлов вход/изход.
Лекция 6. Инструменти за обработка на структурирани данни.
Лекция 7. Процеси.
Лекция 8. Средства за междупроцесна комуникация.
Лекция 9. Общ терминален интерфейс.
Лекция 10. Изследване на характеристики на хостове и използването им в приложения.
Лекция 11. Мрежови съоръжения.
Лекция 12. Времето и работата с него.
Лекция 13. Езикова и културна среда.
Лекция 14. Заключение.
Библиография.


Безплатно сваляне електронна книгав удобен формат, гледайте и четете:
Изтеглете книгата Програмиране в стандарта POSIX, част 1, Галатенко V.A., 2016 - fileskachat.com, бързо и безплатно изтегляне.

СТАНДАРТИ

Сергей Золотарев,

Целта на тази статия е опит да се внесе малко яснота в историята на развитието на стандарта POSIX във връзка с операционните системи в реално време (RTOS).

Като въведение: защо да стандартизираме API?

Едно от най-важните свойства на стандарта POSIX е, че той дефинира "стандартизиран интерфейс за програмиране", към който разработчиците на сложни хардуерни и софтуерни системи трябва да се придържат. Създателите на тези системи са принудени да се изправят пред такива изисквания като кратко време за пускане на пазара (поради жестоката конкуренция), минимизиране на разходите и ускоряване на възвръщаемостта на инвестициите. В същото време лъвският дял от разходите, причинени от забавянето на процеса на разработка, се дължи на факта, че програмистите трябва да „преоткриват колелото“, отново и отново прилагайки функционалност, която отдавна е налична. Но това можеше да бъде избегнато чрез:

Повторно използване на код от минали и паралелни проекти;

Пренасяне на код от други операционни системи;

Привличане на разработчици от други проекти (включително използващи други операционни системи).

Всичко това е възможно благодарение на използването на ОС със стандартизиран API. Освен това, ако в първия случай е достатъчно организацията да има определен вътрешен стандарт (което е особено характерно за патентованите операционни системи), то вторите два случая просто изискват наличието на общопризнати стандарти - например POSIX.

По този начин, използвайки POSIX-съвместима операционна система като платформа за своите проекти, разработчикът получава възможността да прехвърли готовия код на ниво изходен текст както от своите минали или паралелни проекти, така и от проекти на трети страни. Това не само значително намалява времето за разработка на софтуера, но и подобрява неговото качество, тъй като тестваният код винаги съдържа по-малко грешки.

Кой кой е в разработката на POSIX

И ние ще започнем не със самия стандарт POSIX, а с рационализиране на ролята на организациите, участващи в работата по него.

Първият член е IEEE(Институт на инженерите по електротехника и електроника, Институт на инженери по електротехника и електроника), обществено сдружение с нестопанска цел на професионалисти. IEEE датира от 1884 г. (официално от 1963 г.), има 380 000 индивидуални членове от 150 страни, публикува трети том на техническа литература за компютърни приложения, управление, електрически и информационни технологии и повече от 100 списания, популярни сред професионалистите; освен това асоциацията провежда над 300 големи конференции годишно. IEEE участва в разработването на над 900 съществуващи стандарта (www.ieee.ru/ieee.htm). Днес този институт се занимава с подготовка, координация, одобрение, публикуване на стандарти, но поради официалния си статут няма правомощия да приема документи като международни или национални стандарти. Следователно терминът „стандарт“ в разбирането на IEEE означава по-скоро „спецификация“, което е в по-голяма степен съобразено със статута на документите, приети от асоциацията. В съответствие с IEEE участва в програмите на редица международни и регионални организации - IEC, ISO, ITU (Международен съюз по телекомуникации), ETSI (Европейски институт за телекомуникационни стандарти), CENELEC (Европейски комитет за електротехническа стандартизация) и в национални програми , например, в програмата на такава организация като ANSI.

IEEE включва PASC (Комитет за стандарти за преносими приложения; www.pasc.org/), асоциационен комитет, който разработва семейството стандарти POSIX. Преди това PASC беше известен като Техническия комитет по операционни системи.

Вторият участник в работата е ANSI (Американски национален институт по стандартизация, www.ansi.org) – частна организация с нестопанска цел, която администрира и координира дейностите по стандартизация в САЩ. В него работят само 75 души, но членове на ANSI са повече от 1000 компании, организации, държавни агенции и институции. ANSI представлява Съединените щати в двете големи международни организации за стандартизация, ISO и IEC.

Трети член - ISO(Международна организация по стандартизация, Международна организация по стандартизация; www.iso.org). Създадена е през 1946 г. с решение на Комитета за координиране на стандартите и Общото събрание на ООН и официално започва работа на 23 февруари 1947 г. ISO е мрежа от национални институти по стандартизация от 146 страни (една държава е един член на ISO) с централен секретариат в Женева (Швейцария). Стандартите ISO се разработват в технически комитети, първият резултат от които е документът Draft International Standard (DIS), който след няколко одобрения се превръща в окончателен проект на международен стандарт (FDIS). След това въпросът за одобрението на този документ се поставя на гласуване; с положителен резултат се превръща в международен стандарт.

И накрая - IEC(Международна електротехническа комисия, Международна електротехническа комисия - IEC; www.iec.ch/), основана през 1906 г. IEC подготвя и публикува международни стандарти за всички електрически, електронни и свързани технологии. Към 1 ноември 2004 г. националните комитети на 64 държави бяха пълноправни членове на тази комисия. IEC публикува и препоръки, които се публикуват на английски и френски език и имат статут на международни стандарти. Въз основа на тях се разработват регионални и национални стандарти. За изготвянето на стандарти в различни области на дейност на IEC отговарят техническите комитети (TC), в които участват и националните комитети, заинтересовани от дейността на даден TC.

IEC- ключова организация в изготвянето на международни стандарти за информационни технологии. В тази област съществува съвместен технически комитет по информационни технологии - JTC 1, сформиран през 1987 г. в съответствие със споразумение между IEC и ISO. JTC1 има 17 подкомитета, които наблюдават всичко - от софтуер до езици за програмиране, компютърна графика и редактиране на изображения, хардуерни връзки и практики за сигурност.

Подготовката на нови IEC стандарти включва няколко етапа (предварителен, етап на предложение, подготвителен етап, етап на технически комитет, етап на запитване, етап на одобрение, етап на публикуване). Ако IEC документ е предназначен да стане само техническа спецификация, а не международен стандарт, преработена версия на документа се изпраща до централния офис за публикуване. Четири месеца са предвидени за разработването на окончателния проект на международен стандарт (FDIS). Ако бъде одобрен от всички членове на техническия комитет, той се изпраща до централния офис за публикуване без етапа на одобрение на FDIS. След това FDIS стига до националните комитети, които трябва да го одобрят в рамките на два месеца. FDIS се счита за одобрен, ако повече от две трети от националните комитети са гласували за него и броят на отрицателните гласове не надвишава 25%. Ако документът не бъде одобрен, той се изпраща на техническите комитети и подкомитети за преглед. Стандартът трябва да бъде публикуван не по-късно от два месеца след одобрението на FDIS.

Няколко други организации участват в разработването и приемането на стандартите POSIX.

отворена група- международна организация за стандартизация на софтуера, която обединява почти 200 производители и потребителски общности, работещи в областта на информационните технологии (www.opengroup.org/).OpenGroup е създадена през 1995 г. чрез сливането на два от своите предшественици: X / Open и Open Software Foundation (OSF). Open Group е специализирана в разработването на методологии за сертифициране на софтуер и тестване за съответствие със специфични изисквания. По-специално, Open Group се занимава със сертифициране за такива области като платформата COE, CORBA, LDAP, Linux Standard Base, Schools Interoperability Framework (SIF), S / MIME Gateway, Single UNIX Specification, Wireless Application Protocol Specifications (WAP) и, накрая, фамилията стандарти POSIX (www.opengroup.org/certification/).

Austin Common Standards Revision Group (CSRG)- съвместна техническа работна група, създадена през 2002 г. от ISO, IEC и Open Group за създаване и поддържане на най-новите версии на стандарта 1003.1, който ще бъде сформиран на базата на ISO / IEC 9945-1-1996, ISO / IEC 9945 -2-1993, IEEE Std 1003.1-1996, IEEE Std 1003.2-1992 и единична UNIX спецификация (www.opengroup.org/press/14nov02.htm).

Национален институт за стандарти и технологии (NIST)- федерална агенция в рамките на Технологичната администрация на Министерството на търговията (www.nist.gov/public_affairs/general2.htm), основана в САЩ през 1901 г. Задачата на NIST е да разработва и популяризира стандарти и технологии с цел подобряване на качеството на продуктите. NIST разполага с лаборатория за информационни технологии (Лаборатория по информационни технологии - ITL), един от резултатите от които са Федералните стандарти за обработка на информация (FIPS, www.opengroup.org/testing/fips/general_info.html) NIST / ITL предложи през 1991 г. първоначалния набор от тестове за POSIX сертифициране съгласно FIPS PUB 151- 1 1990 г.

Какво е POSIX?

Формално терминът POSIX предложено от Ричард Столман като съкращение за П ortable О perating Ссистемен интерфейс за un IX(интерфейс на преносима операционна система за Unix). POSIX е разработен за UNIX-подобни операционни системи (първите им версии датират от началото на 70-те години на миналия век) с цел осигуряване на преносимост на приложението на ниво изходен код.

Оригиналното описание на интерфейса е публикувано през 1986 г., когато се нарича IEEE-IX (IEEE версия на UNIX). Името обаче бързо се промени на POSIX и следващата публикация (през 1986 г.) използва този нов вариант. За известно време POSIX се разбираше като препратка (или синоним) към група от свързани документи IEEE 1003.1-1988 и части от ISO / IEC 9945, а като пълен и одобрен международен стандарт ISO / IEC 9945.1: 1990 POSIX беше приет през 1990. Спецификациите на POSIX определят стандарт за механизма на взаимодействие между приложната програма и операционната система и в момента включват повече от 30 стандарта под егидата на IEEE, ISO, IEC и ANSI.

През цялата си история POSIX измина дълъг път с многобройни промени в обозначенията на спецификациите, тяхното специфично съдържание, процедури и логистиката на тяхната проверка. Оттогава няколко издания на стандарта POSIX бяха издадени от различни международни организации.

История на стандарта POSIX

Първата версия на спецификацията IEEE Std 1003.1 е публикувана през 1988 г. Впоследствие множество издания на IEEE Std 1003.1 са приети като международни стандарти. Важни етапи на POSIX:

- 1990 гИзданието от 1988 г. е преработено и става основа за следващи издания и допълнения. Той е одобрен като международен стандарт ISO/IEC 9945-1:1990.

- 1993 гИздадена е версия 1003.1b-1993.

- 1996 г IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995 и 1003.1i-1995 са променени, но основната част на документа не е променена. През 1996 г. IEEE Std 1003.1 също беше одобрен като международен стандарт ISO/IEC 9945-1:1996.

- 1998 гПоявява се първият стандарт за "реално време" - IEEE Std 1003.13-1998. Това е разширение на стандарта POSIX за вградени приложения в реално време.

- 1999 гБеше решено да се направят първите значителни промени през последните 10 години в основния текст на стандарта, включително сливане със стандарта 1003.2 (Shell и помощни програми), тъй като по това време това бяха отделни стандарти. PASC реши да финализира промените в основния текст след завършването на стандартите IEEE 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q и 1003.2b.

- 2004 гПоследната ревизия на стандарта 1003.1 до момента беше публикувана на 30 април и пусната под егидата на Austin Common Standards Revision Group. Той е изменен за изданието на стандарта от 2001 г. Официално изданието от 2004 г. е известно като IEEE Std 1003.1, 2004 Edition, The Open Group Technical Standard Base Specifications, издание 6 и включва IEEE Std 1003.1-2001, IEEE Std 1003.1-2001 /Cor 1-2002 и IEEE Std 1003.1-2001/Cor 2-2004.

Най-важните POSIX стандарти за RTOS

За операционните системи в реално време седемте спецификации на стандарта са най-важни, но само три са получили широка поддръжка в търговски операционни системи:

1003.1a (Определение на ОС) дефинира основните интерфейси на ОС, управление на задания, сигнали, файлова система и функции на устройството, потребителски групи, конвейери, FIFO буфери;

1003.1b (Разширения в реално време) описва разширения в реално време като сигнали в реално време, планиране на приоритети, таймери, синхронен и асинхронен I/O, семафори, споделена памет, съобщения. Първоначално (преди 1993 г.) този стандарт се наричаше POSIX.4;

1003.1c (Нишки) дефинира функции за поддръжка на нишки - управление на нишки, атрибути на нишки, мутекси, планиране. Първоначално наричан POSIX.4a.

В допълнение към тези стандарти, следните стандарти са важни за OS RV, които бяха внедрени като част от работата по проекта Std 1003.1-2001:

IEEE 1003.1d-1999. Допълнителни разширения в реално време. Първоначално наричан POSIX.4b;

IEEE 1003.1j-2000. Подобрени (разширени) разширения в реално време;

IEEE 1003.1q-2000. проследяване.

Процедура за сертифициране

За да отговаря на стандарта POSIX, операционната система трябва да бъде сертифицирана спрямо резултатите от подходящ набор от тестове. След въвеждането на POSIX тестовият пакет претърпя формални и фактически промени.

През 1991 г. NIST разработи програмата за тестване на FIPS 151-1 POSIX (http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf). Тази опция за тестване се основава на IEEE 1003.3 „Стандарт за тестови методи за измерване на съответствие с POSIX“ проект 10, 3 май 1989 г. През 1993 г. NIST завърши програмата за тестване на POSIX за FIPS 151-1 и започна програмата за FIPS 151 -2 (www.itl.nist.gov/fipspubs/fip151-2.htm) FIPS 151-2 адаптира „Информационни технологии – Интерфейс на преносима операционна система (POSIX) – Част 1: Интерфейс на програмни приложения на системата (API)“, който е ISO/IEC 9945-1:1990. Тестовите комплекти за FIPS 151-2 са базирани на IEEE 2003.1-1992 „Стандарт за тестови методи за измерване на съответствие с POSIX“.

NIST прави разлика между две методологии за сертифициране: самосертифициране и сертифициране от акредитирани от IEEE тестови лаборатории (Accredited POSIX Testing Laboratories - APTL). В първия случай компанията провежда самостоятелно тестване, но по план, одобрен от NIST. Във втория случай тестването се извършва от независима лаборатория с помощта на автоматизирани тестови пакети. Общо две лаборатории APTL бяха акредитирани: Mindcraft (www.mindcraft.com) и Perennial (www.peren.com).

През 1997 г. NIST/ITL обяви намерението си да прекрати сертифицирането на FIPS 151-2 в края на текущата година (официално 31 декември 1997 г.), докато Open Group обяви, че ще поеме от 1 октомври същата година година, услуга за сертифициране на FIPS 151-2, базирана на програмата NIST/ITL. Същите функции бяха поети от Асоциацията за стандарти IEEE (IEEE-SA) на 1 януари 1998 г. и също въз основа на FIPS 151-2.

През 2003 г. IEEE-SA и Open Group обявиха нова съвместна програма за сертифициране на най-новите POSIX версии, започвайки с IEEE 1003.1(tm) 2001. Open Group сега има няколко тестови пакета, които покриват IEEE Std 1003.1-1996, IEEE Std 1003.

2-1992, IEEE Std 1003.1-2003 и IEEE Std 1003.13-1998 (www.opengroup.org/testing/testsuites/posix.html). Един продукт се счита за POSIX-сертифициран, ако е преминал пълната процедура за сертифициране, отговаря на всички изисквания въз основа на резултатите от тестването и е вписан в официалния регистър на сертифицираните продукти.

Тестовите пакети включват:

VSX-PCTS1990 (www.opengroup.org/testing/testsuites/vsxpcts1990.htm) - набор от тестове за съответствие за системни интерфейси IEEE Std 1003.1-1990;

VSPSE54 (www.opengroup.org/testing/testsuites/VSPSE54.htm) набор от тестове за съответствие за IEEE Std 1003.13-1998 Профил PSE54 (многофункционален в реално време);

VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) - набор от тестове за съответствие за системни интерфейси IEEE Std 1003.1-2003 (само необходими части);

VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscpcts2003.htm) е набор от тестове за съответствие за IEEE Std 1003.1-2003 (обвивка и помощни програми - само задължителни части).

Освен това Open Group е разработила тестове за стандартите POSIX Realtime и профила на стандартите Embedded POSIX. Тестовият пакет POSIX Realtime (www.opengroup.org/testing/testsuites/realtime.html) включва следните тестове:

IEEE POSIX 1003.1b-1993/1003.1i-1995 Разширение в реално време и IEEE POSIX 1003.1, 2003 издание;

IEEE Std POSIX 1003.1c-1995 Нишки (pthreads) разширение и IEEE POSIX 1003.1, 2003 Edition;

IEEE POSIX 1003.1d-1999 Допълнително разширение в реално време и IEEE POSIX 1003.1, 2003 Edition;

IEEE POSIX 1003.1j-2000 Advanced Realtime Extension и IEEE POSIX 1003.1,2003 Edition;

IEEE POSIX 1003.1q-2000 Trace и IEEE POSIX 1003.1,2003 Edition и IEEE POSIX 1003.1,2003 Edition;

Пакетът за тестове за вграден профил на POSIX стандарти (www.opengroup.org/testing/testsuites/embedded.html) включва следните тестове:

IEEE POSIX 1003.1-1990 (5310 теста);

IEEE POSIX 1003.1b-1993/1003.1i-1995 Разширение в реално време (1430 теста);

IEEE Std POSIX 1003.1c-1995 Нишки (pthreads) разширение (1232 теста);

IEEE POSIX 1003.13-1998 Профил 52.

Малко за объркването в терминологията

Във връзка с POSIX групата стандарти на английски често се използват не един, а три термина. За съжаление те са сходни по значение и често се превеждат по един и същи начин, което внася известно объркване. Тези условия са:

Съвместимост (буквално - "съвместимост");

Compliance (буквално - "съответствие");

Сonformance (буквално - "последователност").

Първият термин във връзка с POSIX не е официално дефиниран. Второто означава, че организацията - производител на софтуерния продукт самостоятелно декларира, че този продукт (изцяло или частично) отговаря на изброените стандарти NIST-PCTS. Третият термин предполага, че софтуерният продукт е преминал установената система от тестове или с помощта на акредитирана лаборатория, или в рамките на Open Group, и има документирани доказателства за това (т.нар. Декларация за съответствие). По-нататък в текста на статията навсякъде ще бъдат дадени оригиналните условия, за да се елиминира неяснотата.

Сертифицирана RT OS

Ако някой се придържа към стриктни правила, които изискват данните за сертифицирана RT OS да бъдат публикувани в официален регистър и тестването да се извършва според нивото съответствие, тогава в момента има само две сертифицирани OS RT (данните са дадени в хронологичен ред):

- LynxOS v.3(продукт на Lynx Real-Time Systems, сега LynuxWorks, Inc., www.lynuxworks.com) е предназначен за разработване на софтуер за вградени системи в реално време от OEM и производители на телекомуникационно оборудване, по-специално производители на военни бордови системи. Разработката може да се извърши както на самата целева система (самостоятелно хоствана), така и на инструменталния компютър (хост), готовият софтуер е проектиран да работи на целевата система (целева). LynxOS v.3 сертифициран за последователност (съответствие) POSIX стандарт на Intel и PowerPC платформи. Информация за това може да бъде намерена на уебсайта на IEEE http://standards.ieee.org/regauth/posix/posix2.html.LynxOS е сертифицирана за POSIX 1003.1-1996 от Mindcraft, IEEE POSIX акредитирана лаборатория за тестване на POSIX под NIST FIPS 151- пакет от тестове.2 Комплект от тестове за съответствие. Номер на документа за сертифициране: Референтен файл: IP-2LYX002, Референтен файл: IP-2LYX001.

- ИНТЕГРИТЕТ v.5(продукт на Green Hills Software, www.ghs.com), сертифициран за последователност (съответствие)според POSIX 1003.1-2003, системни интерфейси за PowerPC архитектура през юли 2004 г. (http://get.posixcertified.ieee.org/select_product.tpl). VSX-PCTS 2003 тестов пакет.

POSIX и операционната система QNX

QNX v.4.20(разработчик - QNX Software Systems, www.qnx.com), сертифициран за съответствие (съответствие)съгласно POSIX 1003.1-1988 за Intel платформиот DataFocus Incorporated. Тестван на 13 септември 1993 г., документ, издаден на 1 ноември 1993 г. Тестов пакет NIST PCTS 151-1, версия 1.1.

QNX Neutrino (версия 6.3) отговаря на следните стандарти от семейство POSIX (www.qnx.com/download/download/8660/portability.pdf):

POSIX.1 (IEEE 1003.1);

POSIX.1a (IEEE 1003.1a);

POSIX.2 (IEEE 1003.2);

POSIX.4 (IEEE 1003.1b);

POSIX.4a (IEEE 1003.1c);

POSIX.1b (IEEE 1003.1d), IEEE 1003.1j;

POSIX.12 (IEEE 1003.1g).

QNX Software Systems, създателят на QNX Neutrino, също планира да сертифицира (съответствие) QNX Neutrino с някои от тези стандарти; работата е планирана за 2005 г. (www.qnx.com/news/pr_959_1.html).

Литература

1. Оперативно ръководство на Асоциацията по стандартизация на IEEE. IEEE, октомври 2004 г.

2. Кевин М. Обеланд. POSIX в реално време, програмиране на вградени системи, 2001 г.

3. Стандарт IEEE/ANSI 1003.1: Информационни технологии - (POSIX) - Част 1: Системно приложение: Програмен интерфейс (API).

4. Gallmeister B.O.Програмиране за реалния свят, POSIX.4 Севастопол, Калифорния: O'Reilly & Associates, 1995 г.

5. Национален институт по стандарти и технологии, PCTS:151-2, POSIX Test Suite.

6. POSIX: Сертифициран от IEEE и The Open Group. Сертифицирана политика. The Open Group, 21 октомври 2003 г., Ревизия 1.1.

Името Posix произлиза от „интерфейс на преносима операционна система“, което означава грубо „интерфейс на преносима операционна система“. Това не е един стандарт, а цяло семейство, разработено от Института за инженери по електротехника и електроника (IEEE). Стандартите Posix също са приети като международни стандарти от ISO (Международна организация по стандартизация, Международна организация по стандартизация) и IEC (Международна електротехническа комисия, Международна електротехническа комисия) или ISO/IEC. Стандартите Posix са преминали през няколко етапа на развитие.

IEEE 1003.1-1988 (317 страници) е първият Posix стандарт. Той дефинира интерфейса между езика C и ядрото от тип Unix в следните области: примитиви за изпълнение на процеси (fork, exec повиквания, сигнали и таймери), среда на процеси (потребителски идентификатори, групи процеси), файлове и директории (всички I/ O функции), терминална работа, системни бази данни (пароли и групови файлове), tar и cpio архивни формати.

ЗАБЕЛЕЖКА

Първият Posix стандарт излезе в работеща версия, наречена IEEEIX през 1986 г. Името Posix е предложено от Ричард Столман.

След това дойде стандартът IEEE 1003.1-1990 (356 страници). Това беше и международен стандарт ISO/IEC 9945-1:1990. В сравнение с версията от 1988 г., промените във версията от 1990 г. бяха минимални. Добавено към заглавието: „Част 1: Системен програмен интерфейс (API)“ („Част 1: Системен програмен интерфейс (API) [C език])“, което означава, че стандартът описва интерфейса за програмиране на C (API) .

IEEE 1003.2-1992 беше публикуван в два тома с общо около 1300 страници и заглавието му съдържаше реда "Част 2: Обвивка и помощни програми" (Част 2: "Интерпретатор и помощни програми"). Тази част дефинира интерпретатора (базиран на Bourne shell в Unix System V) и около сто помощни програми (програми, обикновено извиквани от интерпретатора, от awk и basename до vi и wac). В тази книга ще наричаме този стандарт Posix. 2.

IEEE 1003.1b-1993 (590 страници) първоначално е известен като IEEE P1003.4. Този стандарт беше допълнение към стандарта 1003.1-1990 и включваше разширения в реално време, разработени от работна група P1003.4: синхронизиране на файлове, асинхронен I/O, семафори, управление на паметта, планиране, часовници, таймери и опашки за съобщения.

IEEE 1003.1, издание от 1996 г. (743 страници), включва 1003.1-1990 (основен API), 1003.1b-1993 (разширения в реално време), 1003.1-1995 (Pthreads) и 1003.1i-1995 (технически поправки към 1003.1b). Този стандарт се нарича още ISO/IEC 9945-1: 1996. Той добавя три глави за нишките и допълнителни раздели за синхронизиране на нишки (взаимно изключване и променливи на условие), планиране на изпълнение на нишки, планиране на синхронизиране. В тази книга ние наричаме този стандарт Posix.1.

ЗАБЕЛЕЖКА

Повече от една четвърт от 743-те страници на стандарта представляват приложение, озаглавено „Обосновка и бележки“ („Обосновка и бележки“). Тази обосновка съдържа историческа информация и обяснение на причините, поради които определени характеристики са били или не са били включени в стандарта. Често обосновката е също толкова полезна, колкото и самият стандарт.

За съжаление стандартите IEEE не са свободно достъпни в интернет. Информация за това къде можете да поръчате книгата е дадена в библиографията под линка. Обърнете внимание, че семафорите са дефинирани в стандарта за разширения в реално време, отделно от мютексите и променливите на условията (които са дефинирани в стандарта Pthreads), което обяснява някои от разликите в API на тези инструменти.

И накрая, имайте предвид, че блокировките за четене/запис не са част от стандартите Posix. Това е разгледано по-подробно в глава 8.

Планирано пускане в бъдеще нова версия IEEE 1003.1, който включва стандарта P1003.1g, мрежови интерфейси (сокети и XTI), които са описани в първия том на тази книга.

Предговорът към стандарта Posix.1 от 1996 г. гласи, че стандартът ISO/IEC 9945 се състои от следните части:

1. Системен програмен интерфейс (API) (език C).

2. Преводач и помощни програми.

3. Системна администрация (в процес на разработка).

Части 1 и 2 са това, което наричаме Posix.1 и Posix.2.

Работата по стандартите Posix непрекъснато продължава и авторите на книги, свързани с тях, трябва да се справят със стрелба по движеща се цел. Текущото състояние на стандартите може да бъде намерено на http://www.pasc.org/standing/sd11.html.

- (IPAEng|ˈpɒzɪks) или интерфейс на преносима операционна система цитирайте уеб | заглавие = POSIX | url = http://standards.ieee.org/regauth/posix/ | работа = Стандарти | издател = IEEE] е сборното име на група свързани стандарти, определени от IEEE … Wikipedia

POSIX- est le nom d une famille de standards définie depuis 1988 par l Institute of Electrical and Electronics Engineers et formellement désignée IEEE 1003. Ces standards ont émergé d un projet de standardization des API des logiciels destinés à… … Wikipédia en Français

Позикс- est le nom d une famille de standards définie depuis 1988 par 1 IEEE и форма, проектирана IEEE 1003.

POSIX- es el acronimo de Portable Operating System Interface; la X viene de UNIX como seña de identidad de la API. El termino fue sugerido por Richard Stallman en respuesta a la requesta de la IEEE, que buscaba un nombre fácil de recordar. Una traducción Wikipedia Español

POSIX- , 1986 в стандарта 1003.1 на IEEE niedergelegte Спецификация за Zugriffe auf Systemfunktionen под Unix. Sowohl Unix Sy … Универсален лексикон

POSIX- standartai statusas T sritis informatika apibrėžtis Standartų grupė, apibrėžianti operacinės sistemos sąsajas tarp joje veikiančių programų bei tarnybų. Основен стандартен стандарт за електронни и електронни инжинирингови институти (IEEE) Linux… … Enciklopedinis kompiuterijos žodynas

POSIX- es el acrónimo de Portable Operating System Interface, viniendo la X de UNIX con el significado de la herencia de la API (Se traduciría como Sistema Operativo Portable basado en UNIX). Estos son una familia de estándares de llamadas al sistema… … Enciclopedia Universal

POSIX- (Интерфейс на преносима операционна система, базиран на uniX) n. колекция от стандарти за операционни системи, които са базирани на Unix (компютри) ... Съвременен английски речник

POSIX

Позикс- Интерфейсът на преносимата операционна система (POSIX [ˈpɒsɪks]) е част от IEEE и Open Group за стандартизиран интерфейс за приложно програмиране на Unix, който е съвместим с Schnittstelle и дем… … Deutsch Wikipedia

Книги

  • , Стивън А. Раго, У. Ричард Стивънс. Най-подробен е "UNIX. Професионално програмиране". справочно ръководство, който в продължение на 20 години помага на професионални C програмисти да пишат изключително ...
  • UNIX. Професионално програмиране, Стивънс У. Ричард, Раго Стивън А. Тази книга е заслужено популярна сред сериозните програмисти по целия свят, защото съдържа най-важната и практична информация за управлението на ядрата на UNIX и Linux. Без тези...