1. posix standartining asosiy tushunchalari

O‘ZBEKISTON RESPUBLIKASI
RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“OPERATSION TIZIMLAR”
fanidan
Mustaqil ish
Mavzu: POSIX standarti.
Bajardi:“Telekommunikatsiya texnologiyalari: teleradioeshittirish” ta’lim yo‘nalishi
050-20_guruh
Mustafoyev Sh.B
Toshkent 2023
POSIX Standardi. Ixtiyoriy loyiha
Reja:
1.POSIX standartining asosiy tushunchalari.
2.POSIX standartining asosiy g'oyalari.
3.Umumiy standartlar haqida.
4.POSIX standartining maqsadi va "super vazifasi".
5.Xulosa.
6.Adabiyotlar.
KIRISH
Quyidagilardan qaysi biri posix standarti bilan tavsiflanadi. POSIX standartining asosiy tushunchalari va g'oyalari Posix nomi "Portativ operatsion tizim interfeysi" dan olingan bo'lib, taxminan "portativ operatsion tizim interfeysi" degan ma'noni anglatadi. Bu bitta standart emas, balki elektr va elektronika muhandislari instituti (IEEE) tomonidan ishlab chiqilgan butun oila. Posix standartlari xalqaro ISO (Xalqaro standartlashtirish tashkiloti) va IEC (Xalqaro elektrotexnika komissiyasi) yoki ISO / IEC xalqaro standartlari sifatida ham qabul qilinganU C tili va Unix yadrosi o'rtasidagi interfeysni quyidagi yo'nalishlarda aniqladi: jarayonlarni amalga oshirish uchun primitivlar (vilkalar, exec chaqiriqlar, signallar va taymerlar), jarayon muhiti (foydalanuvchi identifikatorlari, jarayon guruhlari), fayllar va kataloglar (barchasi I / O funktsiyalar), terminal bilan ishlash, tizim ma'lumotlar bazalari (parol va guruh fayllari), tar va cpio arxiv formatlari. ESLATMA Birinchi Posix standarti IEEEIX deb nomlangan ishchi versiyada 1986 yilda chiqdi. Posix nomi Richard Stallman tomonidan kiritilgan. Keyin IEEE 1003.1-1990 standarti (356 bet) keldi. Shuningdek, u ISO / IEC 9945-1: 1990 xalqaro standarti edi. 1988 yilgi versiya bilan taqqoslaganda, 1990 yilgi versiyadagi o'zgarishlar juda kam edi. Sarlavhaga "1-qism: tizim dastur dasturining interfeysi (API)" qo'shildi, ya'ni standart C dasturlash interfeysini (API) ta'riflaganligini anglatadi ... IEEE 1003.2-1992 ikki jildda, jami 1300 sahifani tashkil etdi va uning sarlavhasida "2 qism: Shell va kommunal xizmatlar" (2 qism: "Tarjimon va kommunal xizmatlar") satri bor edi. Ushbu qismda tarjimon (Unix System V-dagi Bourne qobig'i asosida) va yuzga yaqin yordam dasturlari (odatda tarjimon tomonidan chaqiriladigan dasturlar - awk va basename-dan vi va yassgacha) aniqlangan. Ushbu kitob davomida biz ushbu standartni Posix deb ataymiz. 2018-04-02 121 2. IEEE 1003.1b-1993 (590 bet) dastlab IEEE P1003.4 nomi bilan tanilgan. Ushbu standart 1003.1-1990 standartiga qo'shimcha bo'lib, P1003.4 ishchi guruhi tomonidan ishlab chiqilgan real vaqtda kengaytmalarni o'z ichiga olgan: fayllarni sinxronizatsiya qilish, asenkron I / O, semaforlar, xotirani boshqarish, rejalashtirish, soatlar, taymerlar va xabarlar navbatlari. IEEE 1003.1, 1996 yildagi nashr (743 bet) 1003.1-1990 (asosiy API), 1003.1b-1993 (real vaqtda kengaytmalar), 1003.1-1995 (Pthreads - Posix dastur oqimlari) va 1003.1i-1995 (texnik o'zgartirishlar) 1003.1b). Ushbu standart, shuningdek, ISO / IEC 9945-1: 1996 deb nomlanadi. Iplar bo'yicha uchta bob va iplarni sinxronlashtirish bo'yicha qo'shimcha bo'limlar (o'zaro chiqarib tashlash va shartli o'zgaruvchilar), iplarni bajarishni rejalashtirish va sinxronlashtirishni rejalashtirish qo'shildi. Ushbu kitobda biz ushbu standartni Posix deb ataymizPOSIX standartining asosiy tushunchalari
POSIX standarti, amaliy operatsion tizimlarni bitta interfeys sifatida birlashtiradigan keng turdagi standartlar to'plamidir. Bu standartlar, amaliy operatsion tizimlarida ko'plab funktsiyalarni bajarish uchun ishlatiladigan interfeyslar va bir qator xususiyliklarni aniqlash uchun keng foydalaniladi.POSIX standarti, ko'plab operatsion tizimlarida moslashtirilgan. Ushbu standartlarni amaliyotga tatbiq qilish, ko'p xil tizimlar orasida ko'chirish va o'rnatishni yanada osonlashtiradi. POSIX standarti, ko'plab tizimlar orasida dastur va ko'chirishni osonlashtiradi, shuningdek, bir-biridan farqli tizimlar orasida barcha xizmatlar, protokollar va interfeyslar kabi ko'p foydali komponentlarni keng yaxlitlaydi.POSIX standarti, Unix-ning xususiyatlari asosida yaratilgan, shuningdek, Unix operatsion tizimining bir necha yo'nalishlarini o'z ichiga oladi. POSIX standarti, shu jumladan, fayl tizimining bajarilishini aniqlash, joylashtirish va qidiruvni osonlashtiradigan funktsiyalar kabi ko'plab ko'rsatmalar to'plamini o'z ichiga oladi.Umuman olganda, POSIX standarti, amaliy operatsion tizimlarda ishlatiladigan ko'p foydali xususiyatlar va interfeyslar to'plamidir. Bu standartni tushunish va uni amaliyotda qanday foydalanishni o'rganish, dasturchilik sohasida ko'plab imkoniyatlarni beradi. Ushbu turdagi standartga ehtiyoj 1980-yillarda, UNIX operatsion tizimlari keng tarqalganda tan olingan. Ma'lum bo'lishicha, ushbu tizim birlashtirilgan tizim sifatida o'ylab topilgan bo'lsa-da, uning aniq tatbiq etilishi o'rtasidagi farqlar bir tizim uchun yozilgan amaliy dasturlarning har doim boshqasida bajarilishi mumkin emasligiga olib keldi. POSIX-ning maqsadi dasturiy ta'minotni ko'chirish muammosi deb ataladigan ushbu muammo. Standartning birinchi nashri 1988 yilda chiqarilgan (tarjimasi bor, qarang), unda dasturni ko'chirishga oid barcha xil masalalar ikki qismga bo'lingan: (1) dastur dastur interfeysi, (2) buyruq tarjimoni va yordam dasturlari (foydalanuvchi interfeysi) ); ushbu qismlar mos ravishda POSIX.1 va POSIX.2 deb nomlanadi1.Ushbu maqolada biz faqat dastur dasturi interfeysi POSIX.1 standarti haqida gaplashamiz, uning ikkinchi (va hozirgi kungacha) nashri 1996 yil 12 iyulda tasdiqlangan.Standartning axborot qismida POSIX ba'zi bir "ideal" operatsion tizim interfeysining tavsifi emas, balki UNIX operatsion tizimlarini rivojlantirishda to'plangan tajribani umumlashtirish va tizimlashtirish natijasi ekanligi ta'kidlangan. Bundan tashqari, POSIX operatsion tizimlar uchun qo'llanma yoki o'quv qo'llanma bo'lib xizmat qila olmaydi, ammo ma'lumot beruvchi qismida dasturchilarning ko'rsatmalari va dastur qismlari mavjud.Standartda faqat unda tasvirlangan interfeys funktsiyalariga e'tibor qaratib, to'laqonli operatsion tizimni yaratish mumkin emasligi aniq aytilgan. (Xususan, POSIX.1-da tarmoq va unga bog'liq interfeys funktsiyalari yoki grafik interfeys kabi muammolar ko'rib chiqilmaydi.) Ammo dasturiy ta'minotning harakatsizligi uchun moliyaviy xarajatlar va natijada interfeysni birlashtirishga bo'lgan ehtiyoj shu qadar katta bo'ladiki, aksariyat sotuvchilar afzal ko'rmoqdalar hech bo'lmaganda hech bo'lmaganda standartga ega. Shu sababli, ko'plab dasturiy ta'minot ishlab chiqaruvchilari POSIX-ga e'tibor berishadi. Bu, agar dasturlarning harakatsizligini butunlay yo'q qilishga imkon bermasa, hech bo'lmaganda dasturning harakatsiz qismini sezilarli darajada kamaytirishga imkon beradi. Avvalo, esda tutish kerakki, POSIX standarti ingliz tilida yozilgan bo'lib, u o'z mohiyatiga ko'ra noaniqlikni keltirib chiqaradi (masalan, bir xil so'z ism, sifat va fe'l bo'lishi mumkin) va "semantik tuzoqlar" deyarli har bir sahifada kutib turishadi. Bunga yaxshi misol - fantastika misolidir. Ingliz tilining ushbu xususiyatidan ajoyib tarzda foydalangan Oskar Uayldning eng taniqli asarlaridan biri - Earnest bo'lishning ahamiyati rus tilida "Earnest bo'lishning ahamiyati" nomi bilan mashhur. Biroq, inglizcha ism ikkinchi ma'noga ega: Earnest (jiddiy) - bu personajlardan birining ismi va ism boshqacha tarjima qilinishi mumkin: "Ernst bo'lish qanchalik muhim". Ruscha Serebryany familiyasi mavjud va agar Serious familiyasi bo'lsa edi, tarjima ikkala ma'no ham berilib, to'liq aniq bo'lar edi.Vaziyat standartning o'zi bilan o'xshash: Portativ operatsion tizim interfeysi. Portativ (mobil) sifati ham operatsion tizimga, ham dasturga taalluqlidir, ammo uni rus tilida qisqacha ifodalash mumkin emas, uni "mobil operatsion tizim interfeysi" yoki "amaliy dasturlarning mobilligini ta'minlovchi operatsion tizim interfeysi" deb tarjima qilish mumkin. Ikkinchi variant standartni ishlab chiquvchilarning niyatlarini yaxshiroq aks ettiradi, ammo ayni paytda birinchi ma'no yo'qoladi (tarjima paytida tanish bo'lgan birinchi variant saqlanib qoldi). Standartning asosiy matni oldida IEEE Standartlari2 so'zlarining ma'nosini ochib beradigan preambula keltirilgan. Ushbu tushuntirishlardan kelib chiqadigan bo'lsak, GOST rus tilidagi atamasidan kamida uchta semantik farq mavjud:
(1) GOST qonunchilik kuchiga ega, uni buzganlik uchun javobgarlikka tortilgan deb intuitiv ravishda ko'rib chiqiladi; POSIX - bu talablar to'plami, unga rioya qilish butunlay ixtiyoriydir.
(2) GOST bekor qilinmaguncha amal qiladi (ko'pchilik, ehtimol "GOST bekor qilinmagan" iborasini eshitgan); POSIX-ning muqaddimasida aytilishicha, agar standart 5 yildan beri qayta ko'rib chiqilmagan bo'lsa, demak unda muhokama qilingan masalalar o'z ahamiyatini yo'qotgan bo'lishi mumkin va uni avtomatik ravishda bekor qilish mumkin;
(3) GOST noma'lum; POSIX-ning kirish qismida ushbu standartni ishlab chiqishda ishtirok etganlar ro'yxati keltirilgan, shuningdek, izohlash uchun so'rov yuborilishi mumkin bo'lgan manzil berilgan; shuningdek, har bir so'rovga javob tasdiqlash protsedurasiga bog'liqligini aytadi (boshqacha qilib aytganda, standart mualliflari javob berishdan oldin o'zaro kelishishadi).
Shunday qilib, hatto Standart kabi taniqli so'zni "standart" so'zi bilan tarjima qilish sharhlarni talab qiladi.
Standartning 2-bo'limi "Terminologiya va umumiy talablar" deb nomlangan. Unda nafaqat maxsus atamalarning ("jarayon" yoki "semafora" kabi) ta'riflari, balki o'zlari ravshan ko'rinadigan "kerak" yoki "may" kabi so'zlar ham mavjud. POSIX.1 interfeys standarti bo'lgani uchun uning talablari operatsion tizimga ham, dastur dasturiga ham tegishli. Aniq talab "kerak" so'zi bilan ifodalanadi, masalan: "Muvaffaqiyatli bo'lsa, link () funktsiyasi nolga qaytishi kerak." Ushbu misolda biz operatsion tizimga qo'yiladigan talab haqida gapiryapmiz: link () funktsiyasi shunday bajarilishi kerakki, u muvaffaqiyat nolini qaytaradi.
"Belirtilmemiş" va "belgilanmagan" atamalari standart tanlov erkinligini ta'minlaydigan bir xil fikrni ifodalaydi, ammo bu atamalarning ma'nosi boshqacha. "Belirtilmemiş" atamasi biz ba'zi to'g'ri (harakatlar, dastur tuzilmalari va boshqalar) haqida, "aniqlanmagan" atamasi - noto'g'ri (noto'g'ri) haqida gaplashayotganimizni anglatadi. Standartning axborot qismida quyidagi tushuntirish mavjud.
"Belirtilmemiş" atamasi turli xil variantlar (natijalar, funktsiya chaqiruvining natijalari va boshqalar) ma'lum deb taxmin qilinishini anglatadi va standart ularning har biriga imkon beradi; operatsion tizimning ma'lum bir amalga oshirilishida har qanday birini tanlash mumkin va bunday tizim standartga mos keladi. Amaliy dastur (qat'iyan standartga mos keladigan) har qanday variantda to'g'ri ishlaydigan tarzda yozilishi kerak; Shunday qilib, ushbu atama dastur uchun talabni bevosita ifoda etadi.bo'lmagan signal kelganda sigwait () qaytishi kerak. Bu qanday boshqaruv oqimida sodir bo'lishi standartda belgilanmagan. " Ushbu misolda ko'proq mumkin bo'lgan natijalar bo'lishi mumkin, ammo ularning barchasi ham ma'lum va dasturga qo'yiladigan talab shundan iboratki, u har qanday natija uchun to'g'ri ishlashi kerak.
"Belgilanmagan" atamasi shuni anglatadiki, hatto ko'plab natijalar ham ma'lum emas, har qanday natija mumkin, hatto halokatli (masalan, tizimning ishdan chiqishi, ma'lumotlarning yo'qolishi va boshqalar). Aslida, ushbu atama ilova uchun tegishli ma'lumotlar yoki tuzilmalardan foydalanmaslik talabini bevosita ifoda etadi. Masalan: "readdir () ning dirp argumenti hozirda ochilgan katalogga tegishli bo'lmasa, natija aniqlanmagan."Ushbu misol dasturdan readdir () funktsiya argumenti uchun faqat ochiq katalog ma'lumotnomasini almashtirishni talab qiladi; ushbu talabning buzilishi halokatli oqibatlarga olib kelishi mumkin va buning uchun javobgarlik dastur dasturchisiga tegishli.
Mana yana bir misol: «Muvaffaqiyatli bo'lganida () o'qilgan baytlar sonini ifodalovchi butun sonni qaytarish kerak. Aks holda, funktsiya xato kodini errno va -1 ga qaytarishi kerak, va buf tomonidan ko'rsatilgan buferning tarkibi aniqlanmagan. "
Standart o'qish () funktsiyasida xatolik yuz berganda, dastur dasturida buferdan ma'lumotlarni ishlatishni taqiqlaydi va ushbu talabni buzish oqibatlari dastur dasturchisiga yuklanadi.
"Amalga oshirilgan" atamasining ma'nosi intuitivdan farq qiladi. Ma'lumki, ma'lum bir operatsion tizimda "aniqlanmagan" yoki "aniqlanmagan" natija bo'lishi mumkin emas, ba'zi bir aniq natija bexosdan olinadi. "Amalga oshirilganligi" atamasi operatsion tizim hujjatlari uchun standart talabini ifodalaydi: natija nafaqat ko'rsatilishi kerak (operatsion tizim ishlab chiqaruvchisi buni baribir bajarishi kerak bo'ladi), shuningdek, tizim hujjatlarida aniq aks etishi kerak.
Umumiy standartlar haqida
Amaliy dasturchilar orasida dasturlashda standartlar umuman kerak emas degan fikr bor, chunki: (1) ular dastlab ma'nosiz, chunki ularning mualliflari kompyuter dasturlarini yozmaydilar; (2) ular dasturchilar tashabbusini kishanlaydilar; (3) dasturchilar har doim standartlarsiz rozi bo'lishadi. Ehtimol, ikki holatda bo'lmasa, bu fikrga e'tibor bermaslik kerak edi: (1) u amaliyotchilar tomonidan, ya'ni aniq "dasturiy ta'minotni chiqaradigan"lar tomonidan ifodalanadi; (2) Yuqoridagi fikrni ushbu maqola muallifi Internetdagi C dasturlash tili standartiga bag'ishlangan nashrlardan birida aniqlagan, shundan ma'lum bo'lishicha, bunday fikr "xalqaro miqyosda" keng tarqalgan va nafaqat mag'rur rus "super dasturchilar" orasida. "Standart" so'zi odatda biron bir moddiy narsa (standart o'lchamlar, standart elektr kuchlanish va boshqalar) bilan bog'liq, kompyuter dasturi esa nomoddiy ob'ektdir ("Yangi nomoddiy") va ehtimol nomoddiy sohadagi standartlar haqiqatan ham ma'nosizdir? Biroq, rad etuvchi misol bor. Rus tilining imlo qoidalari to'plami standartlashtirish organlari tomonidan tasdiqlanmagan bo'lsa-da, aslida standartdir. Bundan tashqari, imlo qoidalariga (yoki xohlasangiz, talablarga) qo'shimcha ravishda, sintaktik qoidalar va eng muhimi, semantika mavjud. Ikkinchisi "bolalarcha" savolni yaxshi ko'rsatib beradi: nega mushuk mushuk deb ataladi? Bu savolga aniq javob bor: chunki ota-bobolarimiz shunday rozi bo'lishgan; inglizlarning ajdodlari xuddi shu hayvon mushukini, nemislarning ajdodlarini - mushukcha va boshqalarni chaqirishga rozi bo'lishdi. Va umuman olganda, har qanday so'z yoki so'z birikmalarining ma'nosi yoki semantikasi yoki talqin qilish qoidalari kelishilgan masaladir. POSIX.1 standarti bir necha yuz (agar minglab bo'lmasa) talablarni o'z ichiga oladi; agar ulardan kamida bittasi bajarilmagan bo'lsa, tizim (yoki dastur dasturi) standartga javob bermasligi o'z-o'zidan ravshan deb hisoblanadi. Shu bilan birga, bugungi kungacha juda ko'p UNIX-sinf operatsion tizimlari va amaliy dasturlar yozilgan, shuning uchun ko'rsatilgan ma'noda to'liq muvofiqlikni talab qilish juda qiyin. Ushbu turdagi xalqaro standartni ishlab chiqishdagi qiyinchiliklarni turli xil milliy tillarning mavjudligi murakkablashtiradi. Matnlarni milliy tillarda qayta ishlashga mo'ljallangan dasturlarni unutib qo'ysak ham, deyarli har qanday amaliy dastur operator tomonidan kiritilgan diagnostik xabarlarni va / yoki matnlarni qabul qilishi kerak.
pOSIX.1 standartiga qat'iy rioya qilish;
pOSIX.1 xalqaro versiyasiga muvofiqligi;
pOSIX.1 ning milliy versiyasiga muvofiqligi;
pOSIX.1 kengaytmalarga muvofiqligi.
Ikkinchidan, ko'pgina interfeys imkoniyatlari ixtiyoriy; Standart, ixtiyoriy interfeys funktsiyalari yoki standart tomonidan belgilab qo'yilgan tartibda ishlashini yoki har doim maxsus xato kodini (ENOSYS) qaytarishini talab qiladi (bu funktsiya bajarilmaganligini anglatadi). Ixtiyoriy ob'ektlar bir nechta guruhlarga bo'linadi, ularning har biri bir nechta konfiguratsiya konstantasiga mos keladi, ular tegishli sarlavha faylida e'lon qilinadi (#define bayonoti bilan); bu funktsiya kompilyatsiya bosqichida amalga oshirilganligini aniqlashga imkon beradi.
Harakatlanishning ta'riflangan usuli POSIX mualliflari tomonidan ixtiro qilinmagan, ammo amalda uzoq vaqtdan beri qo'llanilgan; ko'plab operatsion tizimlarda tizimning o'zi yoki uning versiyasini aniqlash uchun konfiguratsiya doimiylari ishlatiladi. Va bu erda standart tubdan yangi narsalarni taklif qilmaydi, faqat mavjud amaliyotni tizimlashtiradi. Qisqacha aytganda, POSIX.1 standartlashtirish ob'ektlari nomlar va semantika. Aniqrog'i, biz quyidagilar haqida gaplashamiz.
Interfeys funktsiyalari nomlari. 357 funktsiya standartlashtirilgan bo'lib, 107 ta funktsiya standart C kutubxonalaridan olingan (matematik, satrlarni qayta ishlash, kirish / chiqish va hk); bu funktsiyalar POSIX.1 standartining bir qismi deb hisoblanadi, ammo ular C standartida to'liq tavsiflangan.
Tizim ma'lumotlari turi nomlari. Ushbu ismlarga _t qo'shimchasi qo'shilgan.
Sarlavha fayllarining nomlari, shuningdek ushbu fayllarning minimal tarkibi.
Tizim bo'yicha global o'zgaruvchilarning nomlari (masalan, errno).
Funktsiyani bajarish paytida o'rnatilishi mumkin bo'lgan xato kodlarining ramziy nomlari. Ushbu nomlar E harfi bilan boshlanadi (EPERM, ENOTEMPTY va boshqalar).Konfiguratsiya doimiylarining nomlari. Ushbu nomlar _POSIX_ bilan qo'shilgan.Signal raqamlarining ramziy nomlari; bu nomlar oldiga SIG bilan qo'shilgan. 20 ta "an'anaviy" signallardan tashqari (SIGABRT, SIGALRM va boshqalar), real vaqt signallari standartlashtirilgan bo'lib, ularning raqamlari kamida RTSIG_MAX raqamlarini o'z ichiga olgan SIGRTMIN dan SIGRTMAX gacha bo'lgan doimiy uzilish oralig'ini egallashi kerak.
Ba'zi funktsiyalarning individual argumentlari qiymatlariga mos keladigan ramziy nomlar (masalan, fcntl () funktsiyasining cmd argumenti F_DUPFD, F_GETFD, F_GETLK va boshqalarni qabul qilishi mumkin).Makroslarning nomlari, doimiylari, bit bayroqlari, muhit o'zgaruvchilari.Umuman olganda, standart taxminan bir xil hajmdagi ikkita katta qismdan iborat. Birinchi yarim - me'yoriy qism - standart talablari va tavsiyalarini o'z ichiga oladi (18 bo'lim), ikkinchisi - ma'lumot qismiga - normativ qismga havolalar, sharhlar va tushuntirishlar ro'yxati, sarlavha fayllari tarkibi, standartning profilining ("proektsiyasi") namunasi ( Daniya uchun), eng muhim funktsiyalarning bajarilishini o'lchash xususiyatlari va usullari, shuningdek real vaqtda fayllar bilan ishlash uchun qo'shimcha interfeys funktsiyalarining tavsifi; ushbu funktsiyalar kelajakda standartni qayta ko'rib chiqishda normativ qismga kiritilishi kutilmoqda.
"Standart qoidalarining qisqacha mazmuni" yon paneli operatsion tizim xizmatlarining qaysi turlari standart bilan qamrab olinishi haqida fikr beradi. POSIX ("posix" deb talaffuz qilinadi) - bu ko'chma operatsion tizimlar uchun interfeys. Ammo bu nimani anglatadi? Birinchidan, siz ushbu "taşınabilirlik" tushunchasi doirasini va "interfeys" tushunchasini belgilashingiz kerak. Buni bilish uchun ikkala tushunchaning ham bir-biri bilan chambarchas bog'liqligidan boshlash kerak.
"Taşınabilirlik", POSIX standarti nuqtai nazaridan, manba kodiga ishora qiladi (ushbu manbalardan tuzilgan ikkiliklarga emas). Endi "interfeys" nima ekanligini bilib olaylik. Dasturlashda "interfeys" bu sizning kodingiz kodingizning qolgan qismi bilan o'zaro ta'sir o'tkazishidir. Interfeys sizning kodingizdan ma'lum ma'lumotlarni taqdim etishini kutadi. Sizning kodingiz, o'z navbatida, interfeysdan ma'lum ma'lumotlarni olishni talab qiladi. C dagi fopen () funktsiyasi bunga yaxshi misoldir. U ma'lumotni ikki qismdan kutadi: faylga yo'l va u ochiladigan rejim. Ushbu ma'lumotlardan foydalangan holda operatsion tizim "fayllarni tavsiflovchi" deb nomlangan boshqa turdagi ma'lumotlarni qaytaradi. Fayllar tavsiflovchisi faylni o'qish yoki faylga yozish uchun ishlatilishi mumkin. Bu interfeys. Bularning barchasi shundan kelib chiqadiki, POSIX-mos keladigan kod har qanday POSIX-mos operatsion tizim uchun katta o'zgarishlarsiz tuzilishi mumkin, demak u ko'chma bo'ladi.
POSIX interfeyslari ro'yxati mavjud, ammo u juda katta bo'lsa ham, u to'liq bo'lmasligi mumkin. POSIX faqat tizim qo'ng'iroqlari bilan cheklanib qolmaydi, shuningdek, operatsion tizim chig'anoqlari (qobiqlar, aks holda buyruq satrining interfeyslari), "awk" yoki "echo" kabi tizim yordam dasturlari, tizim kutubxonalari va boshqa standartlarni belgilaydi.
POSIX standarti 1985 yilda Richard Stallman tomonidan qoralama sifatida paydo bo'ldi va keyinchalik IEEE Std 1003.-1998 sifatida rasmiylashtirildi. Nomidan ko'rinib turibdiki, 1998 yil rasmiy nashr qilingan yil edi. O'shandan beri POSIX-ga ko'p sonli qo'shimchalar va kengaytmalar chiqarildi, ular asta-sekin rasmiy ravishda IEEE 1003 deb nomlanuvchi, xalqaro deb tan olingan, SO / IEC 9945 belgisi bilan oddiygina POSIX oilaviy standarti deb nomlanadigan butun standartlar oilasiga aylanadi. Operatsion tizim POSIX-ga mos kelishi shart emas, hatto undan ham kamroq POSIX-ning sertifikati bo'lishi kerak, ammo bu dasturchilarga kodni qayta-qayta yozmasdan dasturlar, vositalar va platformalar yaratishga imkon beradi, faqat tayyor narsaga qo'shimcha qiladi va ulanadi. Shuningdek, POSIX-ga mos keladigan kodni yozish shart emas, ammo bu operatsion tizimlar o'rtasida loyihalarning ko'chirilishini sezilarli darajada yaxshilaydi. Bu shuni anglatadiki, POSIX-ga mos keladigan kodni yozish o'z-o'zidan qimmatlidir va sizning martaba uchun juda foydali. Gnome yoki KDE kabi yirik loyihalar POSIX standartiga amal qiladi, bu ularning turli xil operatsion tizimlarda ishlashini kafolatlaydi. POSIX quyi tizimi Windows-ning so'nggi versiyalarida ham amalga oshiriladi. Linux POSIX bilan bog'liq tizim qo'ng'iroqlarining aksariyatini qo'llab-quvvatlashi bilan bir qatorda uning asosiy kengaytmasi "Linux standart bazasi" deb nomlangan bo'lib, u Linux tarqatilishini manba va ikkilik qo'llab-quvvatlash nuqtai nazaridan birlashtirishga mo'ljallangan.
POSIX standartining maqsadi va "super vazifasi"
Nomidan ko'rinib turibdiki, POSIX (Portable Operating System Interface) operatsion tizim va amaliy dastur o'rtasidagi interfeys (interfeys) uchun standartdir. Dasturchilar "yalang'och" mashina uchun dasturlar yozgan kunlar o'tib ketdi (kirish / chiqish dasturlari, trigonometrik funktsiyalar va boshqalar paketlarini amalga oshiradi). POSIX matnida standart operatsion tizimni amalga oshirish tafsilotlariga hech qanday talablar qo'yilmasligini qayta-qayta ta'kidlaydi; uni amaliy dasturchilar va operatsion tizim ishlab chiquvchilari o'rtasidagi kelishuvlar to'plami sifatida ko'rish mumkin. Shunday qilib (yana keng tarqalgan fikrdan farqli o'laroq), POSIX nafaqat operatsion tizimlarni ishlab chiquvchilarni, balki birinchi navbatda dasturchilarning ancha katta toifasini - qo'llaniladigan dasturchilarni qiziqtiradi. Bunday standartga bo'lgan ehtiyoj 1980-yillarda, UNIX operatsion tizimlari keng tarqalgan paytda e'tirof etilgan. Ma'lum bo'lishicha, bu tizim yagona tizim sifatida yaratilgan bo'lsa-da, uning o'ziga xos amalga oshirishlari o'rtasidagi farqlar bir tizim uchun yozilgan amaliy dasturlar har doim ham boshqa tizimda bajarilmasligiga olib keldi. POSIX dasturiy ta'minotni ko'chirish muammosi deb nomlanuvchi ushbu muammoni hal qilishga qaratilgan. Standartning birinchi nashri 1988 yilda chiqarilgan (tarjimasi bor, qarang), unda dasturning ko'chishi bilan bog'liq barcha masalalar ikki qismga bo'lingan: (1) dastur interfeysi, (2) buyruq tarjimoni va yordamchi dasturlar. (foydalanuvchi interfeysi); bu qismlar mos ravishda POSIX.1 va POSIX.2 deb ataladi1. Aniqlik kiritamizki, ushbu maqolada biz faqat ikkinchi (va oxirgi) nashri 1996 yil 12 iyulda tasdiqlangan POSIX.1 amaliy dasturlar interfeysi standarti haqida gaplashamiz. Standartning informatsion qismida ham POSIX qandaydir “ideal” operatsion tizim interfeysining tavsifi emas, balki UNIX operatsion tizimlarini ishlab chiqishda olingan tajribani umumlashtirish va tizimlashtirish natijasi ekanligi ta’kidlanadi. Bundan tashqari, POSIX operatsion tizimlar bo'yicha qo'llanma yoki qo'llanma bo'lib xizmat qila olmaydi, garchi ma'lumot beruvchi qismda dasturchi maslahatlari va dastur bo'laklari mavjud. Standart to'g'ridan-to'g'ri to'liq operatsion tizimni yaratishning iloji yo'qligini, faqat unda tasvirlangan interfeys funktsiyalariga e'tibor qaratganligini ta'kidlaydi. (Xususan, POSIX.1 tarmoq va u bilan bog'liq interfeys funktsiyalari yoki grafik interfeys kabi muammolarni hal qilmaydi.) Biroq, dasturiy ta'minotning harakatsizligi va natijada interfeysni birlashtirishga bo'lgan ehtiyojning moliyaviy xarajatlari shunchalik kattaki, ko'pchilik sotuvchilar hech bo'lmaganda biroz bo'lishini afzal ko'radilar. yo'qligidan ko'ra standart. Shu sababli, ko'pgina dasturiy ta'minot ishlab chiqaruvchilari POSIXga e'tibor berishadi. Bu, agar dasturlarning harakatsizligini butunlay yo'q qilmasangiz, hech bo'lmaganda dasturning harakatsiz qismini sezilarli darajada kamaytirishga imkon beradi.
Xulosa
POSIX standartining asosiy mazmuni interfeys funksiyalarining semantikasidir. Semantikani standartlashtirish o'z-o'zidan oson ish emas (ikki kishi uchun ham kelishuvga erishish qanchalik qiyinligini hamma biladi) va hozirda ko'plab odamlar dasturlash bilan shug'ullanayotgani qiyinchiliklarni kuchaytiradi. Masalan, parallellik paradigmasi "jarayon", "vazifa" va "nazorat oqimi" kabi atamalar bilan ifodalanadi, ammo amaliy dasturlash nuqtai nazaridan IBM OS / 360 operatsion tizimidagi "vazifa" va real- vaqt operatsion tizimi VxWorks bir xil emas. va shuningdek. Yana bir misol - semaforlar. Semaforlar ikkilik, butun ("hisoblagich bilan") va o'zaro istisno (aytmoqchi, dasturchilar o'zaro tushunmovchiliklardan qochish uchun o'z-o'zidan "mutexlar" deb atashadi). Va butun sonli semaforlar, masalan, VxWorks operatsion tizimida, POSIX semaforlari bilan umuman bir xil emas. POSIX standarti mualliflari, odamlarni o'z odatlaridan voz kechish qanchalik qiyinligini (ular buni "o'rnatilgan amaliyot" deb atashadi) yaxshi tushunib, an'anaviy ravishda xizmatlarning aksariyat qismini qamrab oluvchi interfeys funktsiyalarining izchil va minimal tizimini tuzganliklarini e'lon qiladilar. operatsion tizim tomonidan taqdim etilgan ushbu funktsiyalarning aniq semantikasini batafsil tavsiflab beradi va barchani o'z ishlanmalarida foydalanishga taklif qiladi4. Standartni o'qiyotganda, ba'zida so'zlarning ba'zilari bitta maqsadga ega degan taassurot paydo bo'ladi: standartni qondirish toifasidan biron bir amaliy dastur yoki operatsion tizimni olib tashlamaslik. Bunday maqsad haqiqatan ham Kirishda qo'yilgan va aniq ifodalangan: standart imkon qadar keng tarqalgan amaliyotni hisobga olishi kerak. Biroq, asosiy maqsad hali ham amaliy dasturlarning harakatchanligini ta'minlashdir.
Asosiy adabiyotlar
1. Xalqaro standart ISO / IEC 9945-1 (ANSI / IEEE Std 1003.1) Ikkinchi nashr. 1996-07-12. Axborot texnologiyalari - Portativ operatsion tizim interfeysi (POSIX) - 1- qism: Tizim amaliy dasturlar interfeysi (API). 2. M.I.Belyakov, Yu.I.Rabover, A.L.Fridman. Mobil operatsion tizimi. Katalog. Moskva, "Radio va aloqa", 1991 yil.
Internet saytlar:
1. https://www.intuit.ru/studies/courses/493/349/info
2. https://www.kit-e.ru/articles/build_in_systems.php
3. https://en.wikibooks.org/wiki/Embedded_Systemz
http://fayllar.org.
|