Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Камтамасыздандыру.docx
Скачиваний:
43
Добавлен:
26.02.2016
Размер:
180.27 Кб
Скачать

Тақырып 2. Unix ож негізгі жүйелік шақыртулары

Мақсаты: UNIX ОЖ негізгі жүйелік шақыртуларын ұйымдастыру тәсілдерін қарастыру

Кілттік сөздер: файл, каталог, метадеректер, виртуалды файлдық жүйе, команда, шақырту, уақытты бөлу ядросы, ресурс, үрдіс, командалық интерпретатор, ядро, пароль, аутентификация, идентификация

Дәріс жоспары (1 сағат)

  1.  Файлдар, каталогтар, бағдарламалық каналдармен жұмысқа арналған жүйелік шақыртулар.

  2.  Файлдық жүйелердің әр түрлі типтерінде деректердің және метадеректердің сақталуын ұйымдастыру.

  3.  UNIX, Linux ОЖ файл типтері. Магниттік дискілерде томдарды ұйымдастыру. UNIX, MS DOS/Windows ОЖ файлдармен жұмысқа арналған жүйелік шақыртулар.

  4.  Файл метадеректерін өзгертуге арналған ОЖ жүйелік шақыртулары мен командалары. Linux және Solaris ОЖ виртуалды файлдық жүйелері(VFS).

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

UNIX АЖ-нің жұмысын көптеген өзара байланысты үрдістерді функциялау ретінде көрсетуге болады. Жүйені іске қосқан кезде алдымен shell (үрдіс 1) командалық интерпретаторын іске қосатын ядро (үрдіс 0) іске қосылады.

Қолданушының UNIX жүйесімен үйлесімділігі командалық тіл құралымен интерактивті режимде орындалады. Амалдық жүйенің қаптамасы - shell – енгізілетін командаларды интерпретациялайды, сәйкес бағдарламаларды (үрдістерді) іске қосады, жауапты хабарламаларды қалыптастырады және шығарады.  

UNIX-тің негізгі құрылымдық бөлімі болып файлдық жүйе табылады. Ол файлдар мен каталогтар ағашынан тұратын иерархиялық құрылымға ие. Түбірлі каталог "/" символымен ерекшеленеді, каталог ағашына жол "/" символымен ажыратылатын каталогтар аты бойынша беріледі, мысалы:  

/usr/include/sys

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

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

Файлға қатынау аты бойынша орындалады. Файлдың локальді аты 1-ден 14-ке дейінгі өлшемі бар System V нұсқасында таңбалар жиынынан тұрады. Таңбалар ретінде сандарды, латын алфавитінің әріптерін және ‘_’ таңбасын қолданған жөн. Файлдың локальді аты сәйкескаталогта сақталады. Түбірлі каталогтан файлға дейінгі жол файлдың толық аты деп аталады.  Егер файлға қатынау "/" таңбасынан басталса, онда толық ат көрсетілген деп есептеледі және оны іздеу түбірлі каталогтан басталады, ал басқа жағдайда файлды іздеу ағымдағы каталогтан басталады.

Кез келген файлда бір неше ат болуы мүмкін. Жалпы файл аты оған сілтеме болып табылады.

Жүйеде тіркелу

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

Одан кейін қолданушының /etc/passwd файлында сақталатын ақпаратпен аутентификациясы тексеріледі. Бұл файлда келесі жазбалар сақталады:

  1.  қолданушының тіркелген аты;

  2.  шифрленген пароль;

  3.  қолданушы идентификаторы;

  4.  топ идентификаторы;

  5.  парольдің минималды қолданылу мерзімі жөніндегі ақпарат;

  6.  қолданушы жөніндегі жалпы ақпарат

  7.  қолданушының бастапқы каталогы

  8.  қолданушының shell тіркелімі

Егер қолданушы жүйеде тіркелген болса және дұрыс пароль енгізсе, login /etc/passwd - қолданушының shell тіркелімінде көрсетілген бағдарламаны іске қосады.

Жүйе қолданушылары  және файл иелері

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

Жүйе қолданушыларды қолданушы идентификаторы (UID - User Identifier) бойынша идентификациялайды. Әрбір қолданушы ұқсас тапсырмалары бар қолданушылар тізімінің бір немесе бірнеше топтарының мүшесі болып табылады. Әрбір топтың өзінің ерекше топтық идентификаторы (GID - Group Identifier) бар. Топқа жату осы топ мүшелеріне тән ортақ құқықтарды анықтайды.

UNIX қолданушысының құқығы – бұл ең алдымен файлдармен жұмыс істеу құқығы. Файлдардың екі иесі болады – қолданушы (user owner) және топ (group owner).

Сәйкесінше файлдарды қорғау атрибуттары файлдың қолданушы-иесінің (u), құқығын, топ-иесі (g) мүшесінің құқығын және басқаларының (o).құқықтарын анықтайды.

Ағындардың бағытталуы және бағдарламалық каналдар

UNIX АЖ-де үш стандартты ағындар бар: енгізу ағыны, шығару ағыны және стандартты протокол ағыны (қателер ағыны).

Ағындардың бағытталуы стандартты енгізу/шығаруды өзгертуге мүмкіндік береді: < - стандартты енгізу көздерінің өзгеруі; >, >> - стандартты шығару қабылдамасының өзгеруі.

Мысалдар:

cat > filename - cat бағдарлама шығарылуының  filename файлына бағытталуы (егер бұл файл бар болса, онда оның ішіндегілер жойылады);

cat >> filename - cat бағдарламасының шығарылу құрамын filename файлының құрамына қосу;

cat < filename - filename файлының құрамынан cat бағдарламасының стандартты енгізілуін қалыптастыру.

Стандартты ағындар – енгізу ағыны, шығару ағыны және қателер ағыны (протоколдар ағыны) нөмірленеді – 0, 1 және сәйкесінше 2.  Бұл нөмірлерді (ағындар дескрипторларының нөмірлері) анық түрде қолдануға болады. Мысалы:  

prog 1>file жазбасы

prog >file жазбасының эквиваленті

Ағын атын файл атынан ажырату үшін, ағын нөмірінің алдына ‘&’ таңбасы қойылады:

prog >file 2>&1

Бұл жерде шығу стандартты ағынының file (>file) файлына қайта бағытталуы орындалып жатыр. Сондай-ақ қате жөніндегі хабарлама да file файлына қайта бағытталатын болады: 2>&1 жазбасы қателер ағынының өз кезегінде файлға қайта бағытталған  шығу стандартты ағынына қайта бағытталуын білдіреді.

Ескерту: командалар анализі интерпретатормен оңнан солға қарай орындалады: алдымен ағындардың бірігуі (2>&1)  орындалады, содан кейін шығу стандартты ағыны (1)  file файлға қайта бағытталады.

Осыған байланыстыоған енгізілген барлық таңбаларды жоятын /dev/null құрылғыларын қолдануда өте пайдалы. Бұл шығу ағындарын толығымен өшірген кезде қолданылады.

Канал – бұл UNIX АЖ-нің үрдістерін енгізу/шығару буферімен байланыстыратын бағдарламалық құрал.  Үрдістің осы түрде іске қосылуы

$ үрдіс_1 | үрдіс_2 | ... | үрдіс_n

үрдіс_1-дің стандартты шығысы үрдіс_2 стандартты енгізуге жабық, үрдіс_2-нің стандартты шығысы үрдіс_3 стандартты енгізуге жабық және т.б. болатынын білдіреді.  Осыған байланысты бірінші канал, содан кейін бірмезетте барлық үрдістер іске қосылады және олардың орындалуының жалпы уақыты бәсең жүретін үрдіспен анықталады.

Мысал: ls | wc -l

Дәл осы амалды келесідей орындауға болады:

ls > buffer

wc -l < buffer

rm -f buffer

ls командасы экранға ағымдағы каталогтың файлдар тізімін (шығудың стандартты ағынын) шығарады, ал wc -l командасы кіріс ағынындағы жолдар санын есептейді (файлдағы, егер файл көрсетілмесе – стандартты кіріс ағынында). Осылайша, осы екі команданың бағдарламалық каналмен бірігуі ағымдағы каталогтың файлдар санын есептеуге мүмкіндік береді.

Қорытынды кесте:

> file

Шығару стандартты ағынының file файлына бағытталуы

>> file

file файлына шығару стандарты ағынынан деректер қосу

< file

file файлынан енгізу стандартты ағынын алу

p1 | p2

p1 бағдарламасының шығу стандартты ағынының p2 бағдарламасының енгізу ағынына берілуі

n > file

Шығу ағынының n дескрипторы бар файлдан file файлына қосылуы

n >> file

Шығу ағынының n дескрипторы бар файлдан file файлына жазбалар қосу

n > &m

Ағындардың n және &m дескрипторларының бірігуі

UNIX жүйесінің командалық тілі

Команданы пернетақтадан енгізу промптың (шақыру), әдетте, - $ пайда болуынан кейін орындалады.

UNIX жүйесімен жұмыс жасауды жеңілдету үшін файлдар атының шаблондарын (немесе метасимволдарды) қолдануға болады.  

? – бір кез келген символ;

* - кез-келген символдардың еркін түрдегі сандары

Мысалы:

*.c - "c" кеңейтіліміндегі барлық файлдарды береді;

pr???.* - аты "pr"-ден басталатын файлдарды береді, бес таңбадан тұрады және кез келген кеңейтілімде болады.

Анықтамалық командалар

date – күн мен уақыт тізімін алу.

who – осы сәтте жүйеде жұмыс істеп отырған қолданушылар тізімін алу.

Мысал:

$ who

petr tty4i Mar 11 18:46

ann tty12 Mar 11 16:29

Қолданушы аты, терминал нөмірі, қолданушының жұмыс істеу күні мен уақыты шығарылады. Who am iқолданушының өзі туралы ақпарат шығарады.  

man – анықтамалық ақпаратты алу:

$ man [команда аты]

man командасының баламасы ретінде UNIX кейбір түрлерінде use командасы қолданылады:

use [команда аты]

 Каталогпен жұмыс істеу командалары

pwd – ағымдағы каталог атын  шығару. Мысалы:

$ pwd

/usr/work/petr

ls – каталог ішіндегісін экранға шығару:

$ ls [-кілттер] [каталог аты]

Егер каталог аты көрсетілмесе ағымдағы каталогтын ішкі құрамы көрсетіледі. Кілттер шығару форматын анықтайды, мысалы:

-l - әрбір файл жөніндегі толық ақпаратты шығару;

-a - "." и ".." қоса алғанда, барлық файлдар тізімін шығару;

-t – тізімнің құрылу уақыты бойынша сұрыпталуы;

-C – тізімді алфавит бойынша бір неше колонкада шығару.

Мысал:

$ ls –l

total 5

drwxrwxrwx 6 petr user1  496  Mar 10 12:01 tmp

-rw-rw-r-- 1 petr user1  156  Mar 12 15:26 file.c

-rwxrwx--x 2 root root  4003  Apr 01 11:44 pe.out

рұқсат  сілтеме қолд.  қолд.  файл  соңғы             файлдың

алу құқығы         саны аты группа  өлщемі,  модифика локальді

 аты  байт  ция уақыты аты

cd – директория ауысуы (каталогтың):

$ cd [каталогтың толық аты]

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

mkdir – жаңа каталог құру:

mkdir [-кілттер] жаңа каталог аты

Жаңа каталог құру үшін қолданушы ағымдағы каталогтың аталық каталогына жазу құқығына ие болу керек.

rmdir – директорияны өшіру:

$ rmdir каталогтар тізімі

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

 Файлмен жұмыс істеу командалары

rm - файлдарды (файлға сілтемені) өшіру:

$ rm [-кілттер] файлдар тізімі

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

Кілттер:

-i – әрбір  өшірілетін файл үшін келісу қажеттілігін енгізеді ;

-f – кез келген өшірілетін файл үшін келісу қажеттілігін кейінге қалдырады;

-r – барлық файлдың және берілген каталогтың ішкі каталогтарының, кейіннен сол каталогтың өзінің рекурсивті өшіру режимін береді.

chmod – файлды қорғау атрибутының өзгеруі:

$ chmod файлдар тізімінің атрибуты

Файл атрибуттары әр түрлі жолмен берілуі мүмкін:

1) әріптік кодировкамен. Қорғау атрибуттары келесідей белгіленеді:

r – оқылуы бойынша рұқсат;

w – жазылуы бойынша рұқсат;

x – орындалуы бойынша рұқсат.

Қолданушылар категориясы келесідей беріледі:

u – фай иесіне арналған атрибуттар;

g – файл иелерінің топтарына арналған атрибуттар;

o – өзге де қолданушыларға арналған атрибуттар;

a – қолданушылардың барлық категорияларына арналған атрибуттар.

Орындалатын операция келесідей таңбалармен кодталады:

= - берілген қолданушылар категориясы үшін барлық атрибуттар мағынасын орнату;

+ - берілген қолданушылар категориясына атрибут қосу;

- - берілген қолданушылар категориясынан атрибут алып тастау.

Мысал. mar атауы бар қолданушыға және топ-қолданушыға файлдан ооқуға және жазуға рұқсат беру:

$ chmod ug+rw mar.*

2) сегіздік сан ретінде.  Қорғау атрибуттарының сандық мағынасы үшөлшемді сегіздік санмен кодталады. Мысалы:

Таңбалық көрініс  rwx r-x r--

Екілік көрініс  111 101 100

сегіздік көрініс 7 5 4

Мысал. Қолданушы мен топ-қолданушылар үшін оқужәне жазу атрибуттарын және басқа қолданушылар үшін тек оқу атрибуттарын орнату:

$ chmod 0664 gb??.doc

cat – шығу стандартты құрылғысына файлдардың шығарылуы және қосылуы:

$ cat [-кілттер] [кіріс_файл1[кіріс_файл2...]]

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

Мысалдар:

1) $ cat > file1

-  file1 файлында пернетақтадан терген мәтін жазылады.

Егер осыған дейін file1 файлы құрылмаған болса, ол құрылады; егер құрылған болса, оның бастапқы мәліметтері өшіріледі.  Мәтінді енгізу Ctrl+D пернелер комбинациясын басқан кезде аяқталады.  

2) $ cat file1 > file2

- file1 файлындағы мәліметтер file2 файлына көшіріледі. Бұл кезде file1 өзгеріссіз қалады.

3) $ cat file1 file2 > result

- file2 файлындағы мәліметтер file1-ге қосылады және result файлына көшіріледі.

4) $ cat file1 >> file2

- file1 файлының мәліметтері file2 файлының соңына қосылады.

cp – файлды көшіру:

$ cp кір_файл_1 [кір_файл_2 [...кір_файл_n]] шығ_файл

Бұл команда екі режимде қолданылады:

1. егер шығыс файл қарапайым файл болса, онда кіріс файл тек біре ғана болады; оның ішіндегісі шығыс файлына көшіріледі.  Егер шығыс файлы құрылған болса, онда оның бастапқы мәліметтері өшіріледі, ал қорғау атрибуттары қалады; егер шығыс файлы құрылмаған болса, онда ол құрылып, кіріс файлының атрибуттарына ие болады.  

2. егер шығыс файлы каталог болса, онда оған барлық көрсетілгенкіріс файлдары көшіріледі, бірақ каталог міндетті түрде алдын ала құрылған болуы керек.  

Мысал. Ағымдағы каталогтан өз көрсетілген аттарымен екі файлды көшіру:

$ cp f1.txt f2.txt ../usr/petr

$ ls ../usr/petr

f1.txt

f2.txt

mv – файлдар сілтемесі:

$ mv кір_файл_1 [кір_файл_2 [...кір_файл_n]] шығ_файл

Сілтеме командасының көшіру командасынан айырмашылығы кіріс файлының команда орындалғаннан кейін жойылады.

Мысал. Көрсетілген каталогтан "c" кеңейтілімі бар файлды ағымдағы каталогқа көшіру:

$ mv petr/*.c

ln – файлға жаңа сілтемелер жасау:

$ ln вх_файл_1 [вх_файл_2 [...вх_файл_n]] вых_файл

Бұл команда екі режимде қолданылады:

1. егер шығыс файл қарапайым файл болса, онда кіріс файлы біреу ғана болады; бұл жағдайда оған шығ_файл деген атпен сілтеме жасалады және оған кір_файл_1 деген атпен, сондай-ақ шығ_фаайл атымен қатынауға болады.  Файлға сілтемелер саны жазбада 1-ге көбейіп отырады.

2. Егер шығыс файл каталог болса, онда атаулары бар  барлық кіріс файлдары және оларға сілтемелерде элементтер құрылады.

Мысал:

$ ls

file1

$ ln file1 file2

$ ls

file1

file2