Үй / Жаңалықтар / POSIX стандартының негізгі түсініктері мен идеялары. Posix-тегі POSIX пәрмен жолы интерфейсінің тосынсыйлары

POSIX стандартының негізгі түсініктері мен идеялары. Posix-тегі POSIX пәрмен жолы интерфейсінің тосынсыйлары

Тақырыбы: Операциялық жүйелер.
Сұрақ: № 8

—————————————————————

ОЖ жобалау принциптері:

1.) Модульдік принцип– жалпы жағдайда модуль деп қабылданған модульаралық интерфейстерге сәйкес жасалған жүйенің функционалды толық элементі түсініледі. Өзінің анықтамасы бойынша, модуль көрсетілген интерфейстер қол жетімді болса, оны басқасымен оңай ауыстыру мүмкіндігін болжайды. Көбінесе жүйені модульдерге бөлу қолданылатын ОЖ жобалау әдісімен анықталады (төменнен жоғарыға немесе керісінше).

Операциялық жүйені құру кезінде ерекше маңызға ие болып артықшылықты, ре-entrant және re-entrant модульдері (re-entrant – сөзбе-сөз қайта енгізу); арнайы терминбағдарламаның функционалдығын көрсету; үзілістен рекурсивті (қайтарылған) шақыру кезінде дұрыс орындалатын бағдарламаның қасиеті).

Бұл принципті пайдаланудың ең үлкен әсері, егер бұл принцип бір уақытта ОЖ-ға, қолданбалы бағдарламаларға және аппараттық құралдарға таратылса, қол жеткізуге болады.

2.) Функционалдық селективтілік принципі– ОЖ үнемі қатысуы қажет маңызды модульдердің белгілі бір бөлігін бөледі Жедел Жадтау Құрылғысыесептеу процесін тиімдірек ұйымдастыру үшін. ОЖ-ның бұл бөлігі жүйенің негізі болғандықтан ядро ​​деп аталады. Ядроның құрамын қалыптастыру кезінде қарама-қайшы екі талапты ескеру қажет. Бір жағынан, ядрода жиі қолданылатын жүйелік модульдер болуы керек, екінші жағынан, модульдер саны ядроның алатын жады көлемі тым көп болмайтындай болуы керек. Ядроның бөлігі болып табылатын және жедел жадта тұрақты орналасқан бағдарламалық модульдерден басқа, көптеген басқа да болуы мүмкін. жүйелік бағдарламалардеп аталатын модульдер транзит. Транзиттік бағдарлама модульдері тек қажет болғанда ғана жедел жадқа жүктеледі және бос орын болмаған жағдайда басқа транзиттік модульдермен ауыстырылуы мүмкін.

3.) ОЖ құру принципі:Принциптің мәні осы жүйенің бақылау бөлігін конфигурациялауға мүмкіндік берген ОЖ орталық жүйелік басқару бағдарламасының (ядро және жедел жадта тұрақты орналасқан негізгі компоненттер) бастапқы ұсыну әдісін ұйымдастыру (таңдау) болып табылады. белгілі бір есептеу кешенінің нақты конфигурациясына және шешілетін міндеттер ауқымына негізделген. Бұл процедура операциялық жүйені пайдаланудың жеткілікті ұзақ кезеңіне дейін сирек орындалады. Генерациялау процесі жүйенің бағдарламалық мүмкіндіктерін және машинаның конфигурациясын сипаттауға мүмкіндік беретін арнайы генераторлық бағдарлама және осы бағдарлама үшін сәйкес енгізу тілі арқылы жүзеге асырылады. Ұрпақ нәтижесі толық нұсқасыОЖ. Жасалған ОЖ нұсқасы модульдер мен деректердің жүйелік жиынтықтарының жиынтығы болып табылады.

4.) Функционалдық артықшылық принципі:Бұл принцип бір жұмысты әртүрлі әдістермен орындау мүмкіндігін ескереді. ОЖ мониторлардың бірнеше түрін (ресурстың сол немесе басқа түрін басқаратын супервайзерлік модульдер), есептеу процестері арасындағы байланысты ұйымдастырудың әртүрлі құралдарын қамтуы мүмкін. Мониторлардың бірнеше түрлерінің және бірнеше файлды басқару жүйелерінің болуы пайдаланушыларға ОЖ-ны белгілі бір компьютерлік жүйе конфигурациясына тез және барабар бейімдеуге, проблемалардың белгілі бір сыныбын шешу кезінде аппараттық құралдардың ең тиімді жүктелуін қамтамасыз етуге және шешу кезінде максималды өнімділікті алуға мүмкіндік береді. есептердің берілген класы.

5.) Виртуализация принципі:виртуалды ресурстарды құру, оларды тарату және пайдалану қазіргі уақытта кез келген ОЖ-де қолданылады. Бұл принцип жүйенің құрылымын процесті жоспарлаушылар мен ресурстарды бөлушілердің (мониторлардың) белгілі жиынтығы түрінде ұсынуға және ресурстарды бөлудің бірыңғай орталықтандырылған схемасын пайдалануға мүмкіндік береді.

Виртуалдылық ұғымының ең табиғи және толық көрінісі – концепция виртуалды машина . Пайдаланушыға берілген виртуалды машина нақты машинаның архитектурасын шығарады, бірақ бұл көріністегі архитектуралық элементтер жаңа немесе жақсартылған сипаттамалармен пайда болады, әдетте жүйемен жұмысты жеңілдетеді. Сипаттамалар ерікті болуы мүмкін, бірақ көбінесе пайдаланушылар келесілерден тұратын архитектуралық сипаттамалар бойынша өздерінің «идеалды» машинасына ие болғысы келеді:

— іс жүзінде шексіз сыйымдылықтағы виртуалды жады, операциялық логикасы біркелкі.

— параллель жұмыс істеуге және жұмыс кезінде өзара әрекеттесуге қабілетті виртуалды процессорлардың ерікті саны.

— осы құрылғылардың жұмысын бастайтын нақты виртуалды процессордың жұмысына қатысты виртуалды машинаның жадымен параллель немесе дәйекті, асинхронды немесе синхронды түрде жұмыс істеуге қабілетті сыртқы виртуалды құрылғылардың ерікті саны.

Виртуализация аспектілерінің бірі басқа ОЖ үшін әзірленген берілген ОЖ-де қолданбаларды іске қосу мүмкіндігін ұйымдастыру болып табылады. Басқаша айтқанда, біз бірнеше операциялық ортаны ұйымдастыру туралы айтып отырмыз.

6.) Бағдарламадан тәуелсіздік принципі сыртқы құрылғылар: Бұл принцип қазір жалпы операциялық жүйелердің басым көпшілігінде жүзеге асырылады. Бұл принцип алғаш рет UNIX ОЖ-де ең дәйекті түрде жүзеге асырылды. Ол сонымен қатар қазіргі заманғы ДК операциялық жүйелерінің көпшілігінде жүзеге асырылады. Бұл принцип бағдарламалардың байланысы болып табылады арнайы құрылғыларбағдарламаны тарату деңгейінде емес, оны орындаудың жоспарлы кезеңінде жүзеге асырылады. Нәтижесінде деректер орналасқан жаңа құрылғыда бағдарламаны іске қосу кезінде қайта құрастыру қажет емес.

7.) Үйлесімділік принципі:Үйлесімділіктің бір аспектісі операциялық жүйенің басқа операциялық жүйелер үшін немесе басқалар үшін жазылған бағдарламаларды іске қосу мүмкіндігі болып табылады бұрынғы нұсқаларосы ОЖ, сондай-ақ басқа аппараттық платформалар үшін. Сұрақтарды бөлу керек екілік үйлесімділікЖәне бастапқы деңгейдегі үйлесімділікқолданбалар.

Екілік үйлесімділік орындалатын бағдарламаны алып, оны басқа ОЖ-де іске қосқанда қол жеткізіледі. Бұл процессор нұсқаулығы деңгейінде үйлесімділікті және жүйелік шақыру деңгейінде, тіпті егер олар динамикалық байланысқан болса, кітапхана шақыру деңгейінде үйлесімділікті талап етеді.

Бастапқы мәтін деңгейіндегі үйлесімділік жүйенің бөлігі ретінде сәйкес аудармашының болуын талап етеді бағдарламалық қамтамасыз ету, сонымен қатар кітапхана және жүйелік қоңырау деңгейлеріндегі үйлесімділік. Бұл жағдайда бұрыннан бар бастапқы мәтіндерді жаңа орындалатын модульге қайта құрастыру қажет.

Әртүрлі архитектураға негізделген процессорлар арасында екілік үйлесімділікке қол жеткізу әлдеқайда қиын. Бір компьютер басқа компьютердің бағдарламаларын орындауы үшін (мысалы, IBM ДК сияқты компьютерге арналған бағдарлама Apple Macintosh сияқты компьютерде орындалғаны дұрыс), бұл компьютер бастапқыда түсініксіз машина нұсқауларымен жұмыс істеуі керек. оған. Бұл жағдайда 680x0 процессоры (немесе PowerPC) i80x86 процессорына арналған екілік кодты орындауы керек. 80x86 процессорының өзінің командалық дешифраторы, регистрлері және ішкі архитектурасы бар. 680x0 процессоры 80x86 екілік кодты түсінбейді, сондықтан ол әрбір нұсқауды алып, нені анықтау үшін оны декодтауы керек.

ол не істеуге арналған, содан кейін 680x0 үшін жазылған баламалы жұмыс тәртібін орындаңыз.

Бағдарламалық қамтамасыз ету мен арасындағы үйлесімділікті қамтамасыз ету құралдарының бірі пайдаланушы интерфейстері POSIX стандарттарына сәйкестік, оны пайдалану бір жүйеден екінші жүйеге оңай тасымалданатын UNIX стиліндегі бағдарламаларды жасауға мүмкіндік береді.

8.) Ашықтық және ауқымдылық принципі:Ашық операциялық жүйе пайдаланушылардың да, компьютерлік жүйеге қызмет көрсететін жүйелік мамандардың да талдауы үшін қол жетімді. Кеңейтілетін (өзгертілген, әзірленген) ОЖ тек генерациялау мүмкіндіктерін пайдалануға ғана емес, сонымен қатар оның құрамына жаңа модульдерді енгізуге, барларын жақсартуға және т.б. Басқаша айтқанда, жүйенің тұтастығына нұқсан келтірмей, қажет кезде оңай толықтырулар мен өзгертулер енгізу мүмкіндігі болуы керек. Кеңейтуге тамаша мүмкіндіктер микро ядро ​​технологиясын пайдалана отырып, ОЖ құрылымында клиент-сервер тәсілімен қамтамасыз етіледі. Осы тәсілге сәйкес ОЖ артықшылықты басқару бағдарламаларының және артықшылықсыз қызметтердің (серверлердің) жиынтығы ретінде құрастырылған. ОЖ-ның негізгі бөлігі өзгеріссіз қалады, ал жаңа серверлерді қосуға немесе ескілерін жақсартуға болады. Бұл принцип кейде былай түсіндіріледі жүйенің кеңеюі.

9.) Ұтқырлық принципі:операциялық жүйе портқа салыстырмалы түрде оңай болуы керек

бір типті процессордан екінші типті процессорға және процессор түрімен қатар барлық компьютерлік аппараттық құралдарды (компьютер жүйесінің архитектурасын) ұйымдастыру әдісін қамтитын бір типті аппараттық платформадан компьютердің аппараттық платформасына көшіру. басқа түрі. Назар аударыңыз, портативтілік принципі үйлесімділік принципіне өте жақын, бірақ олар бірдей емес. Портативті ОЖ жасау кез келген портативті кодты жазуға ұқсайды, бірақ кейбірін орындау керек ережелер:

— ОЖ-ның көп бөлігі болашақта көшірілуі жоспарланған барлық жүйелерде қолжетімді тілде орындалуы керек. Бұл, ең алдымен, ОЖ тілде жазылуы керек дегенді білдіреді жоғары деңгей, жақсырақ стандартталған, мысалы, Си тілінде ассемблер тілінде жазылған бағдарлама әдетте портативті емес.

- Аппараттық құралмен тікелей әрекеттесетін код бөліктерін азайту немесе мүмкін болса, жою маңызды. Аппараттық тәуелділік әртүрлі формада болуы мүмкін. Тәуелдiлiктiң кейбiр айқын формаларына регистрлер мен басқа аппараттық құралдарды тiкелей манипуляциялау жатады. Соңында, егер аппараттық құралға тәуелді кодты толығымен жою мүмкін болмаса, оны бірнеше жақсы локализацияланған модульдерде оқшаулау керек. Аппараттық құралға тәуелді код бүкіл жүйеге таралмауы керек. Мысалы, дерексіз түрдегі бағдарламамен анықталған деректерде құрылғыға тәуелді құрылымды жасыруға болады.

POSIX стандарттарын енгізу жасалып жатқан бағдарламалық жасақтаманың портативтілігін қамтамасыз етуге арналған.

10.) Есептеу қауіпсіздігі принципі:есептеулерді орындау кезінде қауіпсіздікті қамтамасыз ету кез келген көп пайдаланушылық жүйе үшін қажет қасиет. Қауіпсіздік ережелері бір пайдаланушының ресурстарын басқалардан қорғау және бір пайдаланушының жад сияқты барлық жүйе ресурстарын басып алуына жол бермеу үшін ресурс квотасын орнату сияқты сипаттарды анықтайды.

Ақпаратты рұқсатсыз кіруден қорғауды қамтамасыз ету желілік операциялық жүйелердің міндетті қызметі болып табылады.

—————————————————————

Не болдыPOSIX: компьютерлік орталарға арналған платформадан тәуелсіз жүйелік интерфейс POSIX (Компьютерлік орталарға арналған портативті операциялық жүйе интерфейсі) – қабықшаларды, утилиталарды және құралдар жинақтарын қоса алғанда, ашық операциялық жүйелерге арналған жүйелік интерфейстерді сипаттайтын IEEE (Электр және электроника инженерлері институты) стандарты. Сонымен қатар, POSIX сәйкес қауіпсіздік тапсырмалары, нақты уақыттағы тапсырмалар, әкімшілік процестер, желі функциялары және транзакцияларды өңдеу стандартталған. Стандарт UNIX жүйелеріне негізделген, бірақ басқа операциялық жүйелерде де жүзеге асырылуы мүмкін. POSIX абстрактілі, платформадан тәуелсіз стандартты әзірлеу арқылы әлемге әйгілі IEEE-нің UNIX орталарында қолданбалардың тасымалдануын ілгерілету әрекеті ретінде пайда болды. Мысалы, белгілі QNX нақты уақыттағы ОЖ осы стандарттың техникалық сипаттамаларына сәйкес келеді.

Бұл стандарт жүйені егжей-тегжейлі сипаттайды виртуалды жадОперациялық жүйелерді тасымалдауға арналған VMS (Виртуалды жад жүйесі), MPE (Multi-Process Executing) көп тапсырма және CTOS (Convergent Technology өндірілген операциялық жүйе...) технологиясы. Сонымен, POSIX шын мәнінде POSIX.I арқылы POSIX.12 деп аталатын стандарттар жиынтығы болып табылады. Сондай-ақ, POSIX.1 негізгі тіл ретінде Си тілін қабылдайтынын ерекше атап өткен жөн

жүйелік API функцияларын сипаттайтын тіл.

Осылайша, осы стандарттарға жазылған бағдарламалар барлық POSIX-үйлесімді жүйелерде бірдей жұмыс істейді. Дегенмен, кейбір жағдайларда стандарт тек кеңестік сипатта болады. Кейбір стандарттар өте қатаң сипатталған, ал басқалары негізгі талаптарды үстірт түрде ашады.

POSIX API деңгейінде енгізу операциялық жүйеәртүрлі. UNIX жүйелерінің басым көпшілігі бастапқыда IEEE Standard 1003.1-1990 техникалық сипаттамаларына сәйкес келсе, WinAPI POSIX-үйлесімді емес. Дегенмен, бұл стандартты қолдау үшін MS Windows NT операциялық жүйесі пайдаланушы процестерінің артықшылық деңгейінде жұмыс істейтін арнайы POSIX API қолдау модулін енгізді.

Бұл модуль Win API арқылы ядромен жұмыс істей отырып, пайдаланушы бағдарламасынан жүйелік ядроға және кері шақыруларды түрлендіруді және жіберуді қамтамасыз етеді. WinAPI көмегімен құрастырылған басқа қолданбалар ақпаратты стандартты енгізу/шығару ағыны механизмдері (stdin, stdout) арқылы POSIX қолданбаларына бере алады.

Ұқсас посттар жоқ...

POSIX (компьютерлік орталарға арналған портативті операциялық жүйе интерфейсі) – жүйе интерфейстерін сипаттайтын IEEE (Электр және электроника инженерлері институты) стандарты.

«Бұл тұрғыда жүйелік командаларды есептеу процестерін басқаруға мүмкіндік беретін белгілі бір бағдарламалар жиынтығы ретінде түсіну керек, мысалы, pstat, kill, dir және т.б.


POSIX интерфейсі________________________________________________________ 305

ашық операциялық жүйелерге арналған беттер, соның ішінде қабықшалар, утилиталар және құралдар. Сонымен қатар, POSIX сәйкес қауіпсіздік тапсырмалары, нақты уақыттағы тапсырмалар, әкімшілік процестер, желі функциялары және транзакцияларды өңдеу стандартталған. Стандарт UNIX жүйелеріне негізделген, бірақ басқа операциялық жүйелерде де жүзеге асырылуы мүмкін.

POSIX интерфейсі абстрактілі, платформаға тәуелсіз стандартты әзірлеу арқылы IEEE-нің UNIX орталарында қолданбалардың тасымалдануын ынталандыру әрекеті ретінде басталды. Дегенмен, POSIX тек UNIX жүйелерімен шектелмейді; IEEE 1003.1-1990 (POSIX.1) стандартының талаптарына сәйкес келетін жүйелерде осы стандарттың әртүрлі енгізулері бар. Мысалы, белгілі QNX нақты уақыт режиміндегі ОЖ осы стандарттың спецификацияларына сәйкес келеді, бұл осы жүйеге қосымшаларды тасымалдауды жеңілдетеді, бірақ ол кез келген формадағы UNIX жүйесі емес, өйткені оның архитектурасы мүлдем басқа принциптерді пайдаланады.

Бұл стандарт виртуалды жад жүйесі (VMS), көп процесті орындау (MPE) және портативті операциялық жүйе (CTOS) технологиясын егжей-тегжейлі сипаттайды. Сонымен, POSIX шын мәнінде көптеген POSIX стандарттары болып табылады. 1-POSIX. 12. Кестеде. 9.1 осы стандарттарда сипатталған негізгі салалардың тізімі берілген. Сондай-ақ, POSIX-те ерекше атап өту керек. 1 Жүйенің API функцияларын сипаттайтын негізгі тіл C болып есептеледі.

9.1-кесте. POSIX стандарттар тобы

Стандартты ISO стандарты Қысқаша сипаттамасы

POSIX.0 Жоқ Ашық жүйелер стандартына кіріспе. Бұл құжат

таза түрінде стандарт емес, бірақ ұсыныстарды білдіреді және қысқаша шолутехнологиялар

POSIX.1 Иә Жүйе API (С тілі)

POSIX.2 Қабықтар мен утилиталар жоқ (IEEE мақұлданған)

POSIX.3 Тестілеу және тексеру жоқ

POSIX.4 Нақты уақыттағы тапсырмалар мен орындау ағындары жоқ

POSIX.5 Иә ADA тілін қолдану жарамды

POSIX стандартына. 1

POSIX.6 Жүйе қауіпсіздігі жоқ

POSIX.7 Жүйені басқару жоқ

POSIX.8 Желі жоқ, мөлдір файлға қолжетімділік, реферат

желілік интерфейстер, физикалық протоколдардан тәуелсіз, RPC шақырулары, протоколға тәуелді қолданбалармен жүйелік байланыс

POSIX.9 Иә Fortran тілін пайдалану, жарамды

POSIX стандартына. 1

POSIX. 10 Супер есептеуіш қолданбалы орта профилі жоқ (AEP)

POSIX. 11 AEP транзакциясын өңдеу жоқ

POSIX. 12 Графикалық пайдаланушы интерфейсі жоқ (GUI)


306____________________________ 9-тарау. Операциялық жүйелер архитектурасы

Осылайша, осы стандарттарға жазылған бағдарламалар барлық POSIX-үйлесімді жүйелерде бірдей жұмыс істейді. Дегенмен, стандарттар ішінара тек кеңестік сипатта болады. Кейбір стандарттар өте қатаң сипатталған, ал басқалары негізгі талаптарды үстірт түрде ашады. Көбінесе бағдарламалық жүйелер POSIX-үйлесімді деп жарияланады, бірақ оларды мұндай деп атауға болмайды. Себептер әртүрлі операциялық жүйелерде POSIX интерфейсін енгізудің ресми тәсілінде жатыр. Суретте. 9.1-суретте POSIX-сәйкес келетін қолданба үшін типтік іске асыру диаграммасы көрсетілген.

Күріш. 9.1. POSIX стандартына қатаң сәйкес келетін қолданбаны іске асыру диаграммасы

Суретте бағдарлама операциялық жүйемен әрекеттесу үшін тек POSIX кітапханаларын пайдаланатынын көрсетеді. 1 және тек 110 түрлі функцияларды пайдалануға болатын стандартты C RTL кітапханасы да POSIX стандартымен сипатталған. 1.

Өкінішке орай, белгілі бір ішкі жүйенің өнімділігін арттыру немесе сәйкес операциялық ортаға қосымшаны қолдану аясын шектейтін меншікті технологияларды енгізу үшін бағдарламалау кезінде POSIX стандартына сәйкес келмейтін басқа функциялар жиі пайдаланылады.

Операциялық жүйе деңгейінде POSIX стандартын енгізу әр түрлі болады. UNIX жүйелерінің басым көпшілігі бастапқыда IEEE Standard 1003.1-1990 техникалық сипаттамаларына сәйкес келсе, WinAPI POSIX-үйлесімді емес. Дегенмен, операциялық бөлмеде оны қолдау үшін Windows жүйесі NT пайдаланушы процестерінің артықшылық деңгейінде жұмыс істейтін POSIX стандартын қолдау үшін арнайы API модулін енгізді. Бұл модуль WinAPI арқылы ядромен жұмыс істей отырып, пайдаланушы бағдарламасынан жүйелік ядроға және кері шақыруларды түрлендіруді және жіберуді қамтамасыз етеді. WinAPI көмегімен жазылған басқа қолданбалар POSIX ақпаратын қолданбаларға стандартты stdin және stdout енгізу/шығару ағыны механизмдері арқылы бере алады.


Әртүрлі API үшін бағдарламалау мысалдары____________________ 307

Әртүрлі API үшін бағдарламалау мысалдары

Дербес компьютерлерге арналған ең танымал заманауи операциялық жүйелердің API интерфейстері арасындағы түбегейлі айырмашылықтарды нақты көрсету үшін қарастырайық. ең қарапайым мысал, онда бос орындар санын санау керек мәтіндік файлдар, олардың аттары пәрмен жолында көрсетілуі керек. Бағдарламаның екі нұсқасын қарастырайық: Windows үшін (WinAPI көмегімен) және Linux үшін (POSIX API).

Бізді параллель тапсырмалармен жұмыс істеу қызықтыратындықтан, бағдарлама орындалған кезде пәрмен жолында тізімделген файлдардың әрқайсысы үшін басқа процестермен параллельді өзінің жеке процесі немесе орындау ағыны (тапсырмасы) жасалады деп есептейік. (жіптер), «өз» файлындағы бос орындарды санау жұмысын орындайды. Бағдарламаның нәтижесі әрқайсысы үшін есептелген бос орындар саны бар файлдар тізімі болады.

Бұл мәселені шешуге арналған төменде келтірілген бағдарламаларды іске асыру жалғыз мүмкін емес екендігіне ерекше назар аудару керек. Қарастырылып отырған екі операциялық жүйенің де файлдық жүйемен жұмыс істеу және процестерді басқарудың әртүрлі әдістері бар. IN бұл жағдайдатек бір опция қарастырылады, бірақ ол сәйкес API интерфейсі үшін ең типтік болып табылады.

Осы (9.1-тізім) және келесі (9.2-тізім) бағдарламаларды салыстыруды ыңғайлы ету үшін, сонымен қатар тапсырма оны шешу үшін терезе интерфейсін қажет етпейтінін ескере отырып, тек интерфейске әсер етпейтін API шақырулары қажет. Мәтінде графикалық интерфейс қолданылады. Әрине, қазіргі уақытта қолданбаның GUI мүмкіндіктерін пайдаланбауы сирек кездеседі, бірақ біздің жағдайда іске қосылған есептеулердің параллель жұмысын ұйымдастырудағы айырмашылықты бірден көруге болады.

Алексей Федорчук
2005

POSIX отбасының операциялық жүйелерінің файлдық жүйесінің логикалық құрылымының ерекше белгілерінің бірі олардың иерархиялық немесе ағаш тәрізді ұйымдастырылуы болып табылады (бірақ, мен жоғарыда айтқанымдай, ағаш сәл оғаш көрінеді). Яғни, кез келген түрдегі DOS немесе Windows жүйесіндегідей жеке тасымалдаушылар мен олардың бөлімдері үшін белгілеулер (мысалы, алфавиттік немесе басқа) жоқ: олардың барлығы негізгі каталогтың ішкі каталогтары ретінде бір құрылымға кіреді. түбір деп аталады. Қосылу процесі файлдық жүйелертәуелсіз физикалық тасымалдағышта (және олардың бөлімдерінде) файл ағашының түбіріне орнату монтаж деп аталады, ал мазмұнын құрайтын ішкі каталогтар бекіту нүктелері деп аталады.

Тарихи тұрғыдан Unix белгілі бір каталог құрылымын әзірледі, бұл отбасының әртүрлі мүшелері арасында жалпы мағынада өте ұқсас, бірақ егжей-тегжейлері бойынша сәл өзгеше. Атап айтқанда, BSD жүйелеріндегі файл иерархиясы дерлік бірдей, Linux жүйесінен ерекшеленеді. Ал соңғысында әртүрлі таралулар арасында елеулі айырмашылықтар табылады. Файл иерархиясының құрылымы таратуға тән ерекшеліктердің бірі болып табылатындығына дейін.

Бұл жағдай кросс-платформалық қосымшаларды жазуды қиындатады. Сондықтан файлдық иерархияны стандарттау жобасы бар және белсенді түрде дамып келеді - FHS (Filesystem Hierarchy Standard).

FHS жобасы бастапқыда көптеген Linux дистрибутивтерінің каталог құрылымын оңтайландыруға бағытталған. Кейінірек ол Unix тәрізді басқа жүйелерге (соның ішінде BSD кланына) бейімделді. Ал қазір тек атымен ғана емес, шын мәнінде оны POSIX жүйелері үшін стандартқа айналдыру үшін белсенді (бірақ өте сәтті емес) әрекеттер бар.

FHS стандарты екі іргелі қағидаға сүйенеді - бір жағынан ортақ және ортақ емес каталогтардың файлдық иерархиясының нақты бөлінуі және екінші жағынан өзгермейтін және өзгермейтін.

Ортақ және ортақ емес каталогтар арасындағы қарама-қайшылық Unix-тің желілік сипатына байланысты. Яғни, жергілікті құрылғыға қатысты деректер (мысалы, оның құрылғыларының конфигурация файлдары) жергілікті немесе ғаламдық желідегі басқа машиналардан мазмұны қолжетімді каталогтардан бөлек каталогтарда орналасуы керек (оның мысалы тек пайдаланушы ғана емес). деректер, сонымен қатар бағдарламалар).

Өзгермейтін және өзгермейтін каталогтар арасындағы қарама-қайшылықтың мәнін мысалмен оңай түсіндіруге болады. Осылайша, бірдей жалпы пайдаланушы бағдарламалары табиғаты бойынша өзгермейтін болуы керек (дәлірек айтсақ, өзгерту үшін тек жүйелік әкімші қол жетімді, бірақ оларды жұмысында пайдаланатын пайдаланушының өзі үшін емес). Сонымен қатар, бұл бағдарламалар өз жұмысы барысында деректер файлдарын, айталық, мәтіндерді немесе кескіндерді (олардың айнымалы табиғаты түсініктемесіз түсінікті) ғана емес, сонымен қатар журнал файлдары, уақытша файлдар және сияқты). Оларды іске қосу үшін қажетті бағдарламалардың, кітапханалардың, конфигурация файлдарының және т.б. нақты орындалатын файлдардан бөлек каталогтарға топтастыру керек.

Дегенмен, көптеген кең тараған Linux дистрибутивтерінде белсенді жылжытуға қарамастан, FHS шынайы стандарт мәртебесіне жете алмады. Оның кейбір ережелерін пайдаланбайтын көптеген Linux дистрибутивтері бар. Және ол BSD жүйелерінің дәстүрлі файлдық иерархиясымен ішінара ғана сәйкес келеді.

Оның себебі, FHS пайдаланушы үшін өте маңызды басқа контрастты елемейді: файлдық жүйенің оңай қалпына келтірілетін бөліктері мен қалпына келтіру қиын немесе мүлде қалпына келтірілмейтін құрамдас бөліктері арасындағы контраст.

Біріншісі, біртүрлі, базалық жүйенің өзін қамтиды: өлімге әкелетін апат болған жағдайда оны таратушы медиадан қайта орнату соншалықты қиын емес. Файлдық жүйенің қалпына келтіру қиын бөліктеріне пайдаланушы деректері кіретіні анық: олардың сақтық көшірмесі жүйелі түрде жасалса да (және қанша пайдаланушы соншалықты мұқият?), оларды мұрағаттан шығару көп уақытты алады (және сөзсіз дерлік талап етеді). кейбір шығындар).

Сонымен қатар, BSD жүйелерінде және Source Based Linux дистрибутивтерінде мен пакеттерді басқаруға қатысты барлық нәрсені қалпына келтіру қиын каталогтар ретінде жіктер едім - FreeBSD порттары ағашы немесе NetBSD жүйесіндегі pkgsrc (және оны алған жүйелер), олардың Linux дистрибутивтеріндегі аналогтары, тасымалданатын бағдарламалардың нақты көздері және жүйенің бастапқы кодтары да. Өйткені, мұның бәрі тарату жинағында болса да, бұл файлдық жүйе құрамдастарын, әдетте, жоба серверлерімен желі арқылы синхрондау арқылы пайдаланушы жаңартып отырады (әйтпесе оларды пайдалану мағынасыз). Және олардың жоғалуы уақытша (әсіресе модемдік қосылыммен) және қаржылық (аз ғана адамдар Интернетке тегін қол жеткізудің бақытты иелері) шығындарға әкеледі.

Ортақ және ортақ емес, өзгермейтін және өзгермейтін, қалпына келтірілетін және қалпына келтірілмейтін каталогтарды бір-бірінен бөлу тұжырымдамасын қатаң сақтау, бір ағаш тәрізді файл иерархиясы ішінде оның жеке тармақтарын физикалық - яғни пішінде оқшаулауға мүмкіндік береді. оқшауланған құрылғыларда орналасқан тәуелсіз файлдық жүйелердің (дискілер, диск бөлімдері, кесінділер, бөлімдер және т.б.). Мұның көптеген себептері бар - жылдамдықты арттыру, сенімділікті арттыру және жай ғана ыңғайлылық туралы ойлар - бірақ біз қазір олар туралы айтпаймыз. Өйткені ішінде қазірБіз үшін маңызды нәрсе - бұл файл ағашының тармақтары жалпы файлдық жүйеге қосылуы керек.

POSIX жүйелік каталогтарының типтік жинағы

Шындығында, жұмыс істеу үшін тек бір файлдық жүйе болуы керек - файл ағашының түбірлік каталогында орнатылған (Yggdrassil әлемдік ағашының аналогының бір түрі). Түбірлік каталог және оның маңызды тармақтары бір тасымалдағышта орналасқан бір файлдық жүйені - дискіде, диск бөлімінде, бағдарламалық немесе аппараттық RAID массивінде немесе LVM мағынасында логикалық көлемді құруы керек. Және ол жүйені іске қосу үшін қажетті барлық құрамдастарды қамтуы керек және, ең дұрысы, басқа ештеңе жоқ.

Түбірлік каталогтың құрамын пәрмен арқылы көруге болады

$ls -1/

ол кез келген POSIX жүйесінде белгілі бір минималды джентльмендік каталогтар жинағын көрсетеді:

Bin/ boot/ etc/ root/ sbin/

Олар онсыз жүйе өмір сүре алмайтын барлық файлдарды қамтиды. Басқа каталогтар келесідей:

Home/ mnt/ opt/ tmp/ usr/ var/

Олар а) талап етілмейді (кем дегенде теориялық - практикада оларсыз жасау қиын), б) олардың әрқайсысы барлық жүйелерде және дистрибуцияларда жоқ және в) олардың әрқайсысы болуы мүмкін (және жиі - егер сіз бәрін ақылмен жасайсыз) ) файл ағашының өз тармағының бекіту нүктесі.

Сонымен қатар, көп жағдайда POSIX-үйлесімді операциялық жүйелердің файлдық жүйесінің түбірінде тағы екі ішкі каталогтар бар:

Dev/proc/

Бұл әдетте виртуалды файлдық жүйелердің қосылу нүктелері - құрылғылар мен процестер, сәйкесінше (бірақ құрылғының файлдық жүйесі пайдаланылмаса, /dev каталогы түбірлік файлдық жүйенің құрамдас бөлігі болуы керек. Ең соңында, Linux жүйелерінде, әдетте, , файл ағашының түбірінде негізгі жүйелік кітапханаларға арналған /lib каталогы бар және udev механизмін пайдаланған кезде, sysfs виртуалды файлдық жүйесі орнатылған /sys каталогы да сөзсіз.

Түбірлік файлдық жүйе

Түбірлік файлдық жүйе ортақ емес (яғни бөлісужелідегі әртүрлі машиналар) және өзгермейтін (яғни оған өзгертулерді тек жүйелік әкімші енгізе алады, бірақ пайдаланушы бағдарламалары және әсіресе пайдаланушылар емес). Сонымен қатар, онда стандартта қарастырылғаннан (және жоғарыда аталған) ішкі каталогтарды жасау ұсынылмайды.

Түбірлік файлдық жүйенің мазмұны барлық басқа файлдық жүйелер орнатылмаған (және, тиісінше, оның /usr немесе / var сияқты филиалдар қол жетімді болмауы мүмкін.

Осыған сәйкес машинаның іске қосылуы /boot және /etc каталог файлдарымен қамтамасыз етіледі. Біріншісі жүйелік ядроны – «арнайы мақсаттағы» орындалатын файлды және оны жүктеуге қажеттінің барлығын қамтиды: Linux жүйесінде, мысалы, бұл жүйелік карта (файл /etc/System.map), ал FreeBSD-де – жүктелетін ядро модульдері. Дегенмен, кейде ядро ​​файлдық жүйенің түбірінде тікелей орналасады, содан кейін /boot каталогы мүлдем болмауы мүмкін, ал /modules каталогы ядро ​​модульдері үшін бөлінуі мүмкін.

/etc каталогы жүктеу шарттарын анықтайтын жалпы жүйелік конфигурация файлдарына арналған. Оның мазмұны жүйеге (және Linux-та, сонымен қатар таратуға) байланысты, сондықтан мен оны бұл жерде қарастырмаймын - бұл тақырыпқа бірнеше рет оралуым керек.

Ең аз талап етілетін функционалдылық /bin және /sbin каталогтарының мазмұнымен қамтамасыз етіледі - оларда ең маңызды пайдаланушы және жүйелік бағдарламалардың орындалатын файлдары бар, олар жөндеу және құтқару шараларының кешенін орындауға мүмкіндік береді. ақаулықтан кейін құрылғыны адам пішініне қайтарыңыз.

Жүйелік және пайдаланушылық бағдарламаларды түбірдің ішкі каталогтарына бөлу өте ерікті. Бұл пәрмендердің ешқайсысы шынымен де пайдаланушы мәселелерін шешуге арналмаған. Бұл жай ғана /bin каталогында қарапайым пайдаланушы мезгіл-мезгіл қатынасатын (немесе қол жеткізе алатын) басқару пәрмендері бар және sbin каталогы пайдаланушы білмеуі керек командаларға арналған. Және бұл, көп жағдайда, ол әлі де тиісті рұқсаттардың болмауына байланысты пайдалана алмайды (мысалы, құрылғы файлдарына қажетті кіру құқықтары).

POSIX бағдарламаларын (соның ішінде /bin және sbin каталогтарында жинақталғандарды) іске қосу үшін, әдетте, жалпы жүйелік кітапханалардың (ең алдымен негізгі glibc кітапханасы) функцияларына қол жеткізу қажет. Сондықтан (дерлік) түбірлік каталогтың таптырмас құрамдас бөлігі олар жиналған /lib ішкі каталогы болып табылады.

Linux жүйесінде /lib каталогы тағы бір маңызды мақсатқа қызмет етеді – оның ішкі каталогында (/lib/modules) жүктелетін ядро ​​модульдері бар (FreeBSD-де олардың орны /boot/kernel каталогы).

FreeBSD-де /lib каталогы түбірлік файлдық жүйеде табылмайды - сәйкес компоненттер осында /usr/lib ішінде орналасқан (төменде қараңыз). Себебі, тарихи тұрғыдан FreeBSD маңызды жүйелік бағдарламаларды құрастырды, осылайша олар қажет кітапхана функциялары олардың орындалатын файлдарына (статикалық байланыстыру ретінде белгілі, 14-тарауда талқыланады). FreeBSD 5 тармағында /bin және /sbin каталогтарындағы бағдарламалар динамикалық түрде байланыстырылады, яғни /usr каталогы болмаған жағдайда (ал Free-де бұл әрқашан дерлік файлдық жүйенің жеке тармағы болып табылады), олар жұмыс істемейді. . Мұның орнын толтыру үшін стандартты емес /қалпына келтіру каталогы беріледі, оның құрамында бірдей бағдарламалар бар, бірақ статикалық байланысқан (каталогтың аты айтып тұрғандай, оның мазмұнының жалғыз мақсаты – авариялық-құтқару жұмыстары).

Соңында /root . Бұл аттас пайдаланушының әдеттегі үй каталогы, яғни жүйелік әкімші. Өйткені жоқ практикалық жұмысолай емес (немесе кем дегенде болмауы керек), оның мазмұны тек суперпайдаланушының жеке конфигурация файлдары (пайдаланушының пәрмен қабығы, таңдаулы редактор және т.б.).

Филиал /usr

Тарихи түрде, /usr каталогы пайдаланушы бағдарламалары мен деректеріне арналған. Бұл функциялар енді /usr/local және /home каталогтары арасында бөлінген (бірақ соңғысы әлі де FreeBSD-де әдепкі бойынша /usr/home сілтемесі болып табылады). /usr каталогы өзгермейді, бірақ ортақ болып табылады және қолданбалы бағдарламалардың негізгі бөлігі және оларға қатысты барлық нәрсе - бастапқы кодтар, конфигурация файлдары, ортақ кітапханалар, құжаттама және т.б. үшін репозиторий ретінде қызмет етеді.

/usr каталогының құрамы BSD жүйелері мен Linux арасында айтарлықтай ерекшеленеді. Біріншісінде, оған операциялық жүйенің ажырамас бөліктері ғана орналастырылған (FreeBSD-де нені Бөлу тұжырымдамасы біріктіреді). Порттардан немесе бумалардан орнатылған қолданбалар /usr/local ішкі каталогында тіркеледі, ол файл ағашының бөлек тармағын көрсете алады.

Linux жүйесінде /usr каталогы таратуға стандартты түрде енгізілген барлық бағдарламалар (және олардың құрамдастары) үшін репозиторий ретінде қызмет етеді. Ал /usr/local ішкі каталогы әдетте көздерден тәуелсіз құрастырылған бағдарламаларға арналған.

Қалай болғанда да, /usr каталогының әдеттегі құрамы келесідей (ls -1 пәрменінің шығысы ретінде):

X11R6/ bin/ etc/ include/ lib/ libexec/ local/ sbin/ share/ src/

Жоғарыда айтылғандай, /usr/local ішкі каталогы файл ағашының жеке тармағы болып табылады, сондықтан бөлек қарастырылады. Басқа каталогтардың мақсаты келесідей:

  • /usr/bin және /usr/sbin пайдаланушы және жүйелік бағдарламалардың орындалатын файлдарына арналған (мұнда олардың арасындағы шекара түбірлік каталог жағдайына қарағанда әлдеқайда еркін болады), оның мақсаты негізгі жұмыс істеуін қамтамасыз етумен шектелмейді. жүйе;
  • /usr/etc жеке қолданбалардың конфигурация файлдарына арналған;
  • /usr/include орындалатын файлдарды кітапхана құрамдастарымен байланыстыру үшін қажетті тақырып файлдарын қамтиды;
  • /usr/lib және /usr/libexec пайдаланушы қолданбалары тәуелді ортақ кітапханаларға арналған каталогтар;
  • /usr/share - кең ауқымды деп аталатын контейнер. архитектуралық тәуелсіз құрамдас бөліктер: мұнда әртүрлі форматтағы құжаттаманы, конфигурация файлдарының мысалдарын, консольді басқару бағдарламалары пайдаланатын деректерді (қаріптер, пернетақта орналасулары) және уақыт белдеулерінің сипаттамаларын көруге болады;
  • /usr/src – бастапқы кодтарға арналған каталог; Linux жүйесінде әдетте бұл жерде тек жүйе ядроларының бастапқы кодтары орналастырылады, ал BSD клондарында - FreeBSD-де Distributions деп аталатын кешеннің бастапқы кодтарының толық жиынтығы; Әдетте, мұнда өздігінен құрастырылған бағдарламалардың бастапқы кодтарын орналастыру ұсынылмайды;
  • /usr/X11R6 - X терезе жүйесінің құрамдастарына арналған каталог - орындалатын файлдар (/usr/X11R6/bin), кітапханалар (/usr/X11R6/lib), тақырыптар (/usr/X11R6/include), құжаттама (/usr/ X11R6/ адам); X қолданбасының файлдарын мұнда орналастыруға болмайды (терезе менеджерлерін қоспағанда) - олардың орны жүйеге байланысты /usr, /usr/local немесе /opt.

Сонымен қатар, /usr каталогында /usr/var және /usr/tmp ішкі каталогтары болуы мүмкін - әдетте түбірлік каталогтың сәйкес тармақтарына символдық сілтемелер. Ал кейбір Linux дистрибутивтерінде негізгі жүйелік құжаттама – адам беттері (/usr/man ішкі каталогында) тікелей /usr ішінде орналастырылған.

Соңында, BSD жүйелерінде және кейбір Source Based Linux дистрибутивтерінде (мысалы, Gentoo) /usr каталогында пакеттерді басқару жүйесінің ішкі каталогы бар - FreeBSD және OpenBSD порттары (/usr/ports), олардың басқа жүйелердегі аналогтары (/usr) /Gentoo-дағы портаж). FHS стандартының әрпі мен рухын сақтау тұрғысынан (оның өзі порттар және ұқсас жүйелер туралы бірде-бір сөз айтылмайды), оларды орналастырудың логикалық орны /var каталогы болады (төменде қараңыз) - және бұл дәл CRUX және Archlinux сияқты дистрибутивтерде орындалатын нәрсе.

Филиал /usr/local

Жоғарыда айтылғандай, Linux жүйесіндегі /usr/local тармағы бастапқы кодтан тәуелсіз құрастырылған бағдарламаларға арналған (бұл таратуға кірмейді). Және FreeBSD-де ол көптеген пайдаланушы қолданбалары үшін контейнер ретінде қызмет етеді - таратулардан тыс және пакеттерден немесе порттардан орнатылатын барлық дерлік. Тиісінше, каталог құрылымы тұтастай алғанда /usr тармағына сәйкес келеді (анық ерекшеліктерді қоспағанда):

Bin/ etc/ include/ lib/ man/ sbin/ share/

Ішкі каталогтардың мазмұны да ұқсас: орындалатын бағдарлама файлдары (/usr/local/bin және /usr/local/sbin), олардың конфигурациялары (/usr/local/etc), олар байланыстырылған кітапханалар және олардың тақырып файлдары (/usr/ local/lib және /usr/local/include, тиісінше), адам беттері (/usr/local/man) және архитектураға тәуелсіз барлық түрлері (/usr/local/share), соның ішінде басқа форматтардағы құжаттама .

Филиал/опт

/opt каталогы FHS стандартымен қамтамасыз етілген, бірақ іс жүзінде барлық Linux дистрибутивтерінде пайдаланылмайды және BSD жүйелерінде мүлдем жоқ. Дегенмен, әдепкі орнатуды ескере отырып, көбірек бағдарламалар жазылады.

Тарихи тұрғыдан алғанда, /opt каталогы Linux жүйесінде коммерциялық қолданбаларға және толығымен тегін емес сипаттағы бағдарламалардың барлық түрлеріне арналған. Қазіргі уақытта оның мақсаты Qt кітапханасы, оның барлық компоненттері мен қолданбалары бар KDE, OpenOffice.org және т.б. сияқты өзін-өзі қамтамасыз ететін үлкен бағдарламалық кешендерді орналастыру болып табылады. Каталог құрылымы келесідей болуы керек: /opt/pkg_name. Бұл менің жүйемдегідей көрінеді (Archlinux):

$ ls -1 /opt gnome/ kde/ OpenOffice.org1.1.2/ qt/

Ішкі каталогтардың әрқайсысының өзіндік ішкі құрылымы бар:

$ ls -1 /opt/* /opt/gnome: bin/ lib/ man/ share/ /opt/kde: bin/ etc/ include/ lib/ share/ /opt/OpenOffice.org1.1.2: анықтама/ ЛИЦЕНЗИЯ ЛИЦЕНЗИЯСЫ. html бағдарламасы/ README README.html setup@ share/ spadmin@ THIRDPARTYLICENSEREADME.html пайдаланушысы/ /opt/qt: bin/ doc/ include/ lib/ mkspecs/ Phrasebooks/ плагиндер/ шаблондар/ аудармалар/

/opt/pkg_name ішіндегі ішкі каталогтардың мақсатын /usr және /usr/local ұқсастықтары бойынша анықтау оңай. Мысалы, /opt/kde/bin KDE жүйесінің және оның қолданбаларының орындалатын файлдары үшін, /opt/kde/etc оның конфигурация файлдары үшін, /opt/kde/include тақырып файлдары үшін, /opt/kde/lib кітапханаларға және /opt/kde/share - ортақ файлдарға, соның ішінде құжаттамаға арналған. KDE-де man пішіміндегі құжаттама жоқ, бірақ ол бар болса, онда (Gnome жағдайындағыдай - мен оны орнатпадым, бұл Gimp және ұқсас Gtk қолданбалары тартып алған) /opt/pkg_name/ ішкі каталогын көре аласыз. адам.

Сіз /opt каталогының құрылымы тарихи (және ішкі негізделген POSIX дәстүрі бойынша ұқсас компоненттерді каталогтарға біріктіру - орындалатын файлдар, кітапханалар және т. : айнымалыны пәрмендерге жылдам қол жеткізуді қамтамасыз ететін $PATH мәндерімен шамадан тыс жүктеу керек (бұл 12-тарауда талқыланады) немесе арнайы /opt/bin каталогын жасап, оған орындалатын екілік файлдарға символдық сілтемелерді орналастыру керек , бірқатар Linux дистрибутивтерінде (мысалы, CRUX-та) опт-каталогы негізінен барлық BSD жүйелерінде пайдаланылмайды.

/var тармағы

Аты айтып тұрғандай, /var каталогы әртүрлі бағдарламалардың қалыпты жұмысы кезінде жасалған өзгермелі файлдарды - бағдарламалық қамтамасыз етудің (мысалы, шолғыш) кэштерін, журнал файлдарын, басып шығару спулингін және пошта жүйелерін сақтауға арналған. пошта жәшіктері, орындалатын процестердің сипаттамасы және т.б. Атап айтқанда, /var каталогында демптер деп аталатындар орналастырылған - оның себептерін анықтау үшін қалыптан тыс өшіру кезінде жасалған жедел жад күйінің суреті. Барлық осы құрамдастардың айрықша ерекшелігі жұмыс сеансы кезінде олардың өзгермелі сипаты және жүйе қайта жүктелген кезде де сақталуы керек.

/var ішкі құрылымы жүйеден жүйеге қатты өзгереді, сондықтан мен оның құрылымының егжей-тегжейіне тоқталмаймын. Бұл каталог портқа ұқсас пакеттерді басқару жүйелерінің барлық түрлерінің құрамдастарын орналастыруға арналған логикалық орын екенін ғана атап өткім келеді, мысалы, Archlinux дистрибутивінде /var/abs ішкі каталогы ол үшін сақталған (abs - Archlinux құрылыс жүйесі).

Каталог /mnt

/mnt каталогы, әдетте, алынбалы тасымалдағышта орналасқан уақытша пайдаланылған файлдық жүйелерді орнатуға арналған. Толық орнатылған жүйеде ол әдетте бос болады және оның құрылымы ешқандай жолмен реттелмейді. Пайдаланушы медианың жеке түрлері үшін онда ішкі каталогтарды жасай алады. Мысалы, менің жүйемде бұл /mnt/cd, /mnt/dvd, /mnt/usb және /mnt/hd – CD, DVD, флэш-дискілер және алынбалы қатты дискілер үшін.

FreeBSD-де ықшам дискілер мен иілгіш дискілерді орнатуға арналған әдепкі каталогтар тікелей түбірлік каталогта /cdrom және /floppy болып табылады. Бұл стандартқа толығымен сәйкес келмейді, бірақ өзінше логикалық - кез келген машинада бар (CD ROM сияқты) немесе соңғы уақытқа дейін (иілгіш диск) бар құрылғыларды орнату нүктелері түбірге орналастырылады.

Филиал /үй

/home каталогы пайдаланушының үй каталогтарын қамтуға арналған. Оның мазмұны ешқандай жолмен реттелмейді, бірақ әдетте ол /home/(username1,...,username#) сияқты көрінеді. Көптеген пайдаланушылары бар үлкен жүйелерде олардың үй каталогтары бірге топтастырылуы мүмкін.

/home каталогында тек нақты емес, сонымен қатар кейбір виртуалды пайдаланушылардың үй каталогтары болуы мүмкін. Сонымен, егер құрылғы веб немесе ftp сервері ретінде пайдаланылса, сәйкесінше /home/www немесе /home/ftp сияқты ішкі каталогтарды көре аласыз.

Филиал /tmp

Уақытша файлдарды сақтауға арналған каталог туралы айтатын жалғыз нәрсе - /tmp. /var құрамдастары сияқты олар жасалады әртүрлі бағдарламаларолардың қалыпты тіршілік әрекеті барысында. Бірақ, /var қарағанда, /tmp құрамдастары ағымдағы сеанстан тыс сақталады деп күтілмейді. Сонымен қатар, барлық нұсқаулықтар жүйелік басқаруБұл каталогты жүйелі түрде (мысалы, құрылғыны қайта іске қосқан кезде) немесе мерзімді түрде тазалау ұсынылады. Сондықтан, /tmp ретінде, файлдық жүйелерді жедел жадқа - tmpfs (Linux жүйесінде) немесе mfs (FreeBSD-де) орнатқан жөн. Бұл қайта жүктеу кезінде оның мазмұнын тазалауды қамтамасыз ететініне қоса, өнімділікті жақсартады, мысалы, уақытша өнімдері дискіге жазылмаған, бірақ /tmp/obj сияқты виртуалды каталогта орналастырылған бағдарламаларды құрастыру.

Көптеген жүйелерде /usr/tmp және /var/tmp сияқты каталогтарды көресіз. Бұл әдетте /tmp үшін символдық сілтемелер.

Файлдық жүйені бөлу стратегиясы

Файлдар иерархиясы туралы әңгімені қорытындылай келе, тармақта көрсетілген каталогтар ғана бір файлдық жүйеде (бейнелеп айтқанда, бір диск бөлімінде, бірақ бұл мүлдем дәл емес) орналасуына кепілдік берілетінін атап өткен жөн. Түбірлік файлдық жүйе. Барлық басқа каталогтар - /usr, /opt, /var, /tmp және, әрине, /home жеке физикалық медиадағы немесе олардың бөлімдеріндегі тәуелсіз файлдық жүйелер үшін орнату нүктелерін көрсете алады.

Оның үстіне, в жергілікті желіБұл каталогтар тіпті әртүрлі машиналарда орналасуы мүмкін. Сонымен, қолданбалы сервер ретінде әрекет ететін бір компьютерде желіде ортақ пайдаланылатын /usr және /opt каталогтары болуы мүмкін, екіншісі - файлдық серверде - барлық пайдаланушының үй каталогтары болуы мүмкін және т.б.

Жалпы файл ағашынан қандай файлдық жүйелерді оқшаулауға сәйкес келетінін және мұны не үшін жасау керектігін шешу ғана қалады. Бұл сұрақтардың жауабы қолданылатын ОЖ-ға, ал Linux жағдайында оның таралуына да байланысты. Дегенмен, файлдық жүйелерді бөлудің жалпы принциптерін сипаттауға болады. Осы себепті, бір жағынан, өзгермейтін және өзгермейтін каталогтар, екінші жағынан, оңай қалпына келтірілетін, қалпына келтіру қиын және іс жүзінде қалпына келтірілмейтін деректер арасындағы қарама-қайшылықты есте ұстаған жөн. Бұл әрекетті пайдаланушының жұмыс үстеліне қатысты жасайық - сервер жағдайында есептеулер айтарлықтай өзгеше болады.

Дистрибьютордан оңай қалпына келтіруге болатын және іс жүзінде өзгермейтін деректерді қамтитын /bin, /boot, /etc, /root, /sbin каталогтарынан тұратын түбірлік файлдық жүйе оқшауланған диск бөлімінде орналасуы керек екені анық. . Linux жүйесінде бұл /lib каталогын қамтуы керек. Екінші жағынан, GRUB-ты жүктеуші ретінде пайдаланған кезде (операциялық жүйеге қарамастан) /boot каталогын бөлек бөлімге орналастыру ұсынылады.

Linux туралы ескі дереккөздерде сіз /boot каталогы үшін бөлімді бөлудің тағы бір себебі туралы және дискінің ең басында оқи аласыз: Lilo бағдарламасы арқылы ядроны 1023-тен жоғары цилиндр нөмірінен жүктеу мүмкін еместігіне байланысты. Жүктеушілердің заманауи нұсқаларында мұндай шектеулер жоқ. Дегенмен, /boot бөлімі әлдеқашан жасалған болса, оны дискідегі бірінші етіп жасап, своп бөлімін тікелей оның артына қойған дұрыс: бұл ауыстыруды орындау кезінде бес цент өнімділікті қосады.

Тарих өрісінен тағы бір нәрсе: түбірлік және жүктеу бөлімдері бастапқы болуы керек деген талап та бұрыннан жойылған. Және бұл файлдық жүйелер кеңейтілген бөлімдегі логикалық бөлімдерге жақсы сәйкес келуі мүмкін.

Файлдық жүйенің өзгертілетін тармақтары - /var және /tmp каталогтары - түбірлік бөлімнен тыс жылжытылуы керек екені бірдей анық. Сонымен қатар, соңғысы, бұрын бірнеше рет айтылғандай, оны жедел жадтағы файлдық жүйеге (tmpfs немесе mfs) орналастыру ұсынылады. /var каталогында Archlinux жүйесінде /var/abs, /var/cache/pacman/src және /var/cache/pacman/pkg сияқты портқа ұқсас пакеттерді басқару жүйелеріне арналған ішкі каталогтар болса, олар да бөлек файлдық жүйелерді құруы керек.

Енді - негізгі жүйенің құрамдас бөліктерін (BSD-дегідей) немесе пайдаланушы қолданбаларының негізгі бөлігін (Linux дистрибутивтерінің көпшілігіндегі сияқты) қамтитын /usr каталогы. Ол оңай қалпына келтірілетін деректерді қамтиды және әділ болу үшін іс жүзінде өзгермейтін болуы керек, сондықтан, әрине, бөлек бөлімде бөлуге лайық. Сонымен қатар, оның құрамынан, бір жағынан, /usr/X11R6 және /usr/local ішкі каталогтарын, екінші жағынан - порт тәрізді пакеттерді басқару жүйелеріне арналған ішкі каталогтарды: /usr/ports, /usr/pkgsrc оқшауланған жөн. және BSD жүйелерінде /usr/pkg , Gentoo Linux жүйесінде /usr/portages және т.б. Сонымен қатар, соңғысы порттарды құру кезінде желіден жүктелген көздерді орналастыру үшін ішкі каталогтарға бөлінуі керек - /usr/ports/distfiles, /usr/pkgsrc/disfiles, /usr/portages/distfiles және т.б.

BSD жүйелерінде, сонымен қатар, /usr каталогынан негізгі құрамдастардың (соның ішінде ядроның) бастапқы кодын қамтитын /usr/src және /usr/obj ішкі каталогтарын және оларды құрастырудың аралық өнімдерін таңдаған дұрыс. make buildworld және make buildkernel процедураларының нәтижесі.

Соңында, өзгеретін және жиі қалпына келтірілмейтін деректерді қамтитын /home каталогы файл иерархиясының түбірінен жойылуы керек. Сонымен қатар, мен оны әрқашан бөлек бөлікке (BSD-де) немесе негізгі бөлімге (Linux-та) орналастыруға тырысамын.

Файлдық жүйелерді бөлудің ұсынылған схемасы қажетсіз күрделі болып көрінуі мүмкін. Дегенмен, ол оңай қалпына келтірілетін, қалпына келтіру қиын және қалпына келмейтін деректердің оқшаулануына кепілдік береді, бұл төтенше жағдайда жүйені қайта орнатуды, тіпті жүйеден жүйеге көшуді жеңілдетеді.

Оның қосымша артықшылығы - файл ағашының жеке тармақтары үшін, онда орналасқан деректердің сипатына байланысты, Linux-та физикалық оңтайлы файлдық жүйені таңдауға болады. Мысалы, /boot бөлімі үшін Ext2fs-тен басқа ештеңені пайдаланудың қажеті жоқ. Әдетте түбірлік бөлімді сенімді және ең үйлесімді Ext3fs форматында пішімдеу ұсынылады. Archlinux-та /var/abs, Gentoo-да /usr/portages сияқты үлкен саны бар шағын файлдары бар каталогтар үшін ReiserFS-ті қолданған жөн: оның профилі шағын файлдарды шебер өңдеу болып табылады. Үлкен мультимедиялық файлдар (және өзі әдетте өте үлкен) пайда болуы мүмкін /home каталогында XFS ыңғайлы болуы мүмкін (бірақ, өлшеулер көрсеткендей, ReiserFS мұнда өте лайықты көрінеді). Мұндай шаралар деректерді сақтаудың сенімділігін де, файл операцияларының жылдамдығын да жақсартуға көмектеседі.

BSD операциялық жүйелерінің пайдаланушылары FFS файлдық жүйелеріне баламасыз байланыстырылады. Дегенмен, олардың да маневр жасау мүмкіндігі бар. Біріншіден, дискідегі операцияларды орындауға немесе дискілік кеңістікті үнемдеуге ықпал ететін жеке файлдық жүйелердің блоктары мен фрагменттерінің өлшемдерін өзгерту арқылы. Екіншіден, файл ағашының кейбір тармақтары (мысалы, /tmp немесе /usr/obj, ұсыныстарға қайшы, өнімділікте бір-екі пайызды құра отырып, таза асинхронды режимде қауіпсіз орнатылуы мүмкін.

- (IPAEng|ˈpɒzɪks) немесе портативті операциялық жүйе интерфейсі сілтеме веб | тақырып = POSIX | url = http://standards.ieee.org/regauth/posix/ | жұмыс = Стандарттар | publisher = IEEE] — IEEE белгілеген сәйкес стандарттар тобының жиынтық атауы ... Wikipedia

POSIX- 1988 ж. Электротехника және электроника инженерлері институты және IEEE 1003 дизайны. Стандарттау үшін стандарттау жобасының API логикалық логикасы бойынша стандарттау жобасы 1988 ж. пар l.

Позикс- IEEE 1003 стандартына сәйкес стандарттардың анықтамасы 1988 ж. IEEE және дизайн дизайны. IEEE 1003 стандарттау жобасының стандарттау API логикалық логикалық мақсаттары және француздық жүйенің нұсқалары…

POSIX- es el acrónimo de Portable Operating System Interface; la X viene de UNIX интерфейсі API интерфейсін сәйкестендіреді. Ричард Сталлман IEEE сұранысына жауап берді, бұл жазбаны жазуға арналған. Una traducción … Español Wikipedia

POSIX- , 1986 IM Standard 1003.1 дер IEEE niedergelegte Spezifikation für Zugriffe auf Systemfunktionen unter Unix. Sowohl Unix Sy…Universal-Lexikon

POSIX- стандартты статустар T sritis informatic apibrėžtis Standardų Groupė, apibrėžianti Operacinės Systems Sąsajas tarp joje veikiančių bei tarnybų. Pirmuosius стандартты сукүре Электр және электронды электронды институттар (IEEE) Linux… … Enciklopedinis kompiuterijos žodynas

POSIX- Portable Operating System Interface интерфейсі, X интерфейсі UNIX интерфейсі (API үшін маңызды болып табылады). Estos son una familia de estándares de llamadas al systema… … Universal энциклопедиясы

POSIX- (uniX негізіндегі портативті операциялық жүйе интерфейсі) n. Unix (Компьютерлер) негізіндегі операциялық жүйелер үшін стандарттар жинағы ... Қазіргі заманғы ағылшын сөздігі

POSIX

Позикс- Portable Operating System Interface (POSIX [ˈpɒsɪks]) IEEE және Open Group үшін Unix стандартына сай қолданбалы бағдарламалау интерфейсі болып табылады, қолданбалы бағдарламалау интерфейсі, қолданбалы бағдарлама және қолданбалар… … Deutsch Wikipedia

Кітаптар

  • , Стивен А.Раго, У.Ричард Стивенс. "UNIX. Professional Programming" - бұл 20 жыл бойы кәсіби C бағдарламашыларына тек қана жазуға көмектесетін егжей-тегжейлі анықтамалық нұсқаулық.
  • UNIX. Стивенс В. Ричард, Раго Стивен А. Кәсіби бағдарламалау. Бұл кітап дүние жүзіндегі маңызды бағдарламашылар арасында танымал, өйткені онда UNIX және Linux ядроларын басқару туралы ең маңызды және практикалық ақпарат бар. Бұларсыз...

Курс мобильді операциялық жүйе интерфейсінің стандартын (POSIX), сондай-ақ көптеген мысалдармен түсіндірілетін осы стандартқа негізделген қолданбаларды бағдарламалау әдістері мен әдістерін қамтиды. Көппроцесстік жүйелерді бағдарламалау және таратылған конфигурациялар шеңберіндегі қолданбалардың өзара әрекеттесу мәселелері қарастырылады. Бағдарламалық қамтамасыз етудің ұтқырлығын (тасымалдаушылығын) қамтамасыз ету ерекше маңызды және күрделі міндет болып табылады; Біздің заманымызда бұл жағдайға кең негіздеме қажет емес, бағдарламалық жасақтаманың тасымалдануын арттырудың жалпы қабылданған әдістерінің бірі қолданбалы ортаны стандарттау болып табылады: қамтамасыз етілген бағдарламалық интерфейстер, утилиталар және т. Жүйелік қызметтер деңгейінде мұндай орта POSIX стандартымен сипатталады (Portable Operating System Interface – мобильді операциялық жүйе интерфейсі); Бұл атауды әйгілі маман, Free Software Foundation негізін қалаушы Ричард Сталлман ұсынған.

Курс 2003 жылы түзетілген оның ең заманауи нұсқасын қарастырады, оны «үштік стандарт» деп атауға болады, атап айтқанда: IEEE Std 1003.1 стандарты, Ашық топтың техникалық стандарты және біз үшін ең бастысы ISO/IEC 9945 халықаралық стандарты. . Негізгі тапсырма Бұл курс стандартталған утилиталар мен функцияларды пайдалану әдістері мен әдістерін түсінуге арналған. Мақсат ОЖ енгізудің барлық нәзіктіктерін, барлық ықтимал қате кодтарын және т.б. көрсете отырып, стандартты қайталамау болды. Ең бастысы, біздің ойымызша, стандарттың рухын сезіну және оған тән мүмкіндіктерді мобильді түрде пайдалануды үйрену. Оқырман C тілінде сөйлейді деп есептесек, біз оның синтаксисін де, оқулық кітапханасының функцияларын да қарастырмадық. Стандартты команда тілі мен оның интерпретаторына келетін болсақ, бұл тақырып біршама егжей-тегжейлі берілген, дегенмен көптеген тәжірибелі бағдарламашылар басқа интерпретаторларды пайдалануды қалайды. Көлемі жағынан да, рөлі жағынан да маңызды орын бағдарлама мысалдарына арналған. Стандарттың көптеген ережелері (айталық, қателік жағдайларды өңдеуге қатысты) негізгі мәтінде емес, сәйкес мысалдарда, мүмкіндігінше, бірнеше аппараттық және бағдарламалық платформаларда құрастырылған және орындалған. дәрежесі немесе басқасы, POSIX стандартына сәйкестігін талап етеді. Дегенмен, қателіктер, әрине, мүмкін. Біз жалпы курсқа және жеке бағдарлама мысалдарына қатысты барлық ескертулер мен ұсыныстар үшін ризамыз.

POSIX стандартының құрылу тарихы және қазіргі күйі.

Бағдарламалық қамтамасыз етудің ұтқырлығын (тасымалдаушылығын) қамтамасыз ету ерекше маңызды және күрделі міндет болып табылады; біздің заманымызда бұл жағдай кең негіздеуді қажет етпейді. Бағдарламалық жасақтаманың тасымалдануын арттырудың жалпы қабылданған тәсілдерінің бірі қолданбалы ортаны стандарттау болып табылады: қамтамасыз етілген бағдарламалық интерфейстер, утилиталар және т.б. Жүйелік қызметтер деңгейінде мұндай орта POSIX стандартымен сипатталады (Portable Operating System Interface – мобильді операциялық жүйе интерфейсі); Бұл атауды әйгілі маман, Free Software Foundation негізін қалаушы Ричард Сталлман ұсынған.

Титул беті.
Шығару деректері.
Дәріс 1. POSIX стандартының негізгі түсініктері мен идеялары.
Дәріс 2. Қабық тілі.
Дәріс 3. «Пайдаланушы» ұғымына қызмет ететін утилиталар мен функциялар.
Дәріс 4. Файлдық жүйені ұйымдастыру.
Дәріс 5. Файлды енгізу/шығару.
Дәріс 6. Құрылымдық мәліметтерді өңдеу құралдары.
Дәріс 7. Процестер.
Дәріс 8. Процессаралық байланыс құралдары.
Дәріс 9. Жалпы терминалдық интерфейс.
Дәріс 10. Хост сипаттамаларын түсіру және оларды қолданбалы салаларда қолдану.
Дәріс 11. Желілік құралдар.
Дәріс 12. Уақыт және онымен жұмыс.
Дәріс 13. Тілдік-мәдени орта.
Дәріс 14. Қорытынды.
Анықтамалар.


Тегін жүктеп алу электрондық кітапыңғайлы форматта қараңыз және оқыңыз:
POSIX стандартында бағдарламалау кітабын жүктеп алыңыз, 1 бөлім, Галатенко В.А., 2016 - fileskachat.com, жылдам және тегін жүктеп алыңыз.