Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Командалар

Тарихы

UNIX ОЖ-ның тарихы 1969 жылдары басталды. UNIX ОЖ-нің негізі Bell Telephone Laboratories (енді AT&T Bell Laboratories) компаниясында қаланды және Кен Томпсон, Деннис Ритчи, Брайан Керниган есімдерімен тығыз байланысты.

Атауын Брайан Керниган құрастырды. Ол ОЖ-ні «екі қолданушылық жүйе» UNICS (Uniplexed Information and Computing System) деп атауды ұсынды.

1971 жылы UNIX ОЖ-нің ең алғашқы құжаты пайда болды. Бірінші онжылдығында UNIX Bell Labs-ты дамыған. Сәйкес алғашқы нұсқалары "Version n" (Vn) деп аталатын және де DEC PDP-11 (16-биттік) және VAX (32-биттік) ЭЕМ-дерге арналған болытын. "Version n" нұсқалары Computer Research Group (CRG) тобымен Bell Labs-ты құрастырылатын. сонымен қатар Programmer's WorkBench (PWB) тобы құрастырумен айналысты. 1983 жылы осы топтар бір Unix System Development Lab тобына біріктірілген болатын.

UNIX ОЖ-ның негізгі оқиғалары

1971 V1. бірінші нұсқа UNIX Time-Sharing System ассемблерде PDP-11/20- ға арналған. Файлдық жүйесін, fork() жүйелік шақыруды процесстерді тұдыру үшін, cat, ed, roff утилиттері. Патенттерді дайындаған кезінде мәтіндерді дұрыстауға қолданды. Pipe()

жүйелік шақыру және бағдарламалық каналдарды сүйелмендеуі V2 пайда болды.

1973 V4. C тіліне аударылып жазылды, осы қасиеті UNIX-ты басқа платформаларға ыңғайлы орнатуға мүмкімдік береді. С тілі UNIX ОЖ-ын құрастыруға жасалынды. легко переносимой на другие платформы. Язык C создавался для разработки ОС.

1974 V5. Bell Labs – та бірінші нұсқалар пайда болды (PWB/UNIX, MERT).

1975 V6. UNIX бірінші нұсқасы, Bell Labs-тан кен таралған, көбінесе университеттерде в частности, в университетах. Калифорнияның университетінде 1.xBSD (PDP-11) пайда болды.

1978 2.xBSD (Berkeley Systems Development)нұсқасы PDP-11-ге арналған, Computer Systems Research Group (CSRG)тобымен Берклиде жасалынған. DARPA желінің қолдануы, TCP/IP стек протоколының жүзеге асырылуы. Командалық интерпретатор csh.

1979 V7. " Соңғы нақты UNIX ", C тілінің компиляторымен, командалық интерпретатор sh, uucp жүйесі, 32 – разрядтық VAX-қа көшірілген болатын. Ядроның өлшемі 40 Кбайт қа дейін!

1981 4.1BSD: тасырмаларды басқару, ядроның автоматтандырылған конфигурациясы. System III – бірінші клммерциялық UNIX AT&T-дан, атталған каналдарды жүзеге асырылуы (FIFO).

1982 жұмыс станциялардын құрастырушылары UNIX-ты қолданылады: SunOS 1.0 (4.1BSD базасында) Sun Microsystems-тан және HP-UX (System III базасында) Hewlett-Packard-тан.

1983 4.2BSD: TCP/IP толық сүйелмеуі, сокеттерді, Ethernet.

1984 SVR2: sh интерпреторда функцияларды қолдану, стандарттаудың бірінші әрекеттері. SCO XENIX – бірінші коммерциялық UNIX Intel-архитектурасында. Free Software Foundation (FSF) құрастырылуы және GNU проектінің басталуы-

1985 V8 (STREAMS модулдер). Mach микроядроның пайда болуы. SVR2: SCO XENIX SystemV/286, Interactive 386/ix стандарттардын жүзеге асырылуы. Minix ОЖ-ның пайда болуы.

1986 4.3BSD VAX - қа. SVR3: STREAMS модульдер V8-ден, TLI, V9. AIX (IBM) және A/UX (Apple) ОЖ пайда болуы.

1987 SVR3.2: SCO XENIX SV/386. IRIX (SVR3.0) ОЖ пайда болуы.

1988 4.3BSD Tahoe - 4.3BSD. NeXT және NeXTSTEP (4.3BSD + Mach 2.0) ОЖ пайда болуы.

1990 4.3BSD Reno: әр түрлі платформаларды қолдану, NFS, SLIP, Kerberos. SUN Solaris 1 (SunOS 4.1.4).

1991 BSD Net2 (4.3BSD Lite. Появление ОС GNU HURD. Linux (Minix базасында) ОЖ пайда болуы.

1992 4.4BSD: Mach 2.5-те виртуалдық жад, USL UnixWare 1 – жүзеге асыру SVR4.2. SunOS 5 = Solaris 2 (SunOS 4 + SVR4).

1993 FreeBSD ОЖ -ның пайда болуы. Solaris 2.2. NeXTSTEP 3.2. IRIX 5.3, HP-UX 9.04, AIX 4.0, Linux 0.99, UnixWare 1.1.

1994 OSF 1.3: микроядро Mach 3, FreeBSD 2.0, SCO OpenDesktop 3.2.4. UnixWare 1.1.2. Linux 1.0.9. USL Novell компаниясымен сатып алынды.

1995 OpenBSD, NetBSD. Solaris 2.5 Digital UNIX (DEC OSF/1). SCO OpenServer 5.0. UnixWare 2.0: SVR4.2 MP от Novell.

1996 FreeBSD 2.1.6. OpenBSD 2.0. IRIX 6.3. Linux 2.0.21. OpenSTEP 4. SCO UnixWare 2.1. Микроядро Mach 4.

1997 FreeBSD 2.2.5, OpenBSD 2.2, NetBSD 1.3, Solaris 2.6 (под SPARC и Intel), SCO OpenServer 5.0.4. IRIX 6.4. GNU Hurd 0.2 (+ Mach 4). Linux 2.0.28.

1998 FreeBSD 3.0 (+4.4BSD), Solaris 7, DigitalUNIX 4, SCO: OpenServer 5.0.5, UnixWare 7 (SVR5). HP-UX 11.0. Linux 2.0.36. IBM: проект Monterey (AIX 4.3 + SVR5).

1999 FreeBSD 3.4. OpenBSD 2.6, NetBSD 1.4. Mac OS X және Darwin (Mach 4 + FreeBSD 3.1) проекті. Solaris 8 beta.

2000 FreeBSD 4.0-4.2. OpenBSD 2.8. NetBSD 1.5. Solaris 8. Apple: Mac OS X Server, Darwin 1.2.1. Tru64 Unix V.5.1. IRIX 6.5.10. SCO: OpenServer 5.0.6. SCO Компаниясы барлық ОЖ-сың Caldera компаниясына сатты (Caldera OpenLinux). Hurd A1, Linux 2.4.0, 2.2.18. HP-UX 11i. AIX 5L alpha (проект Monterey).

2001 FreeBSD 4.4. OpenBSD 3.0. NetBSD 1.5.2. Mac OS X 10.1.2. SUN: Solaris 8 10/01, Solaris 9 alpha (Intel-архитектурасына емес). Tru64 Unix V.5.1A, IRIX 6.5.13. SCO OpenServer 5.0.6a. Hurd H2. Caldera: OpenUNIX 8: UnixWare 7.1.1 + LKP=Linux 2.4.0. Linux 2.4.17, 2.0.39, 2.2.20. AIX 5L v.5.1.

2002 FreeBSD 4.7. OpenBSD 3.2. NetBSD 1.6. Mac OS X 10.2 (Jaguar). Darwin 6.2. SUN: Solaris 8 12/02, Solaris 9 OE. QNX 6.2. IRIX 6.5.18. Debian GNU/Hurd J2. SCO: UnixWare 7.1.3 (в продолжение OpenUNIX 8. Caldera снова стала SCO...). Linux (влияние IRIX и AIX, в частности, файловые системы): 2.5.2-2.5.52 - экспериментальное ядро. 2.4.20, 2.2.23. HP-UX 11i v1.6. AIX 5L v.5.2.

2003 FreeBSD 5.1, FreeBSD 4.9. OpenBSD 3.4. NetBSD 1.6.1. Mac OS X 10.3.2. Darwin 6.6-7.2. SUN: Solaris 9 OE 12/03, Solaris 9 x86 PE, Solaris 10 Preview. QNX 6.2.1. IRIX 6.5.22. Debian GNU/Hurd K5. Tru64 Unix V5.1B-1. SCO: UnixWare 7.1.3/OKP (OpenServer Kernel Personality), OpenServer 5.0.7. Linux: 2.6.0, 2.4.23, 2.2.25. HP-UX 11i v2 (в том числе, для Intel Itanium).

2004 FreeBSD 5.2. NetBSD 1.6.2. Solaris 10 Software Express 02/04. IRIX 6.5.23. Linux: 2.6.3, 2.4.25, 2.2.26, 2.0.40.

UNIX ОЖ басынан бастап интерактивті жүйе болып ойластырылды. Басқаша айтқанда терминалдық жұмысқа арналған. Жұмысты бастау үшін адам жүйеге кіру керек, ол үшін өзінің есептік атын (учетное имя) және паролін (password) енгізеді. Жүйенің есептік файлдарында тіркелген адам – жүйенің тіркелген қолданушысы деп аталады. Қолданушы өзінің есептік атын өзгерте алмайды, бірақ паролін өзгертуге мүмкіндігі бар. Парольдер жеке файлда кодталған түрде сақтаалды. Егер қолданушы паролін ұмытып қалса, оған администратордың өзі көмектесе алмайды, сондықтан парольды ұмытуға болмайды.

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

Бағдарламалар. UNIX ОЖ бір мезгілде әрі қолданбалы бағдарламаларды пайдалануға, әрі жаңа қосымшаларды құруға болатын орта болып табылады. Жаңа бағдарламалар түрлі тілдерде жазылуы (Фортран, Паскаль, Модула, Ада және т.б.). Бірақ UNIX ОЖ-гі стандартты тіл Си (С++) болып табылады. Себебі, біріншіден жүйенің өзі С тілінде жазылған, екіншіден, Си тілі ең сапалы стандартталған тілдердің бірі болып табылады.

Сондықтан Си тілінде жазылған бағдарламаларды басқа аппараттық платформаларға айналдыруға болады.UNIX ОЖ-нің негізгі функциялары мен компоненттері

UNIX ОЖ-нің бірнеше пайдалы функциялары бар:

Жүйенің негізгі мақсаты – түрлі тапсырмалар мен бағдарламалардың кең көлемін орындау интерактивтілік, ол сізге компьютермен тікелей байланысып, сіздің сұраныстарыңызға жылдам жауап қайтаруды қамтамасыз етеді.

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

UNIX жүйесінің 4 негізгі компоненті бар:

ядро -

бұл ОЖ-нің ядросын құрайтын бағдарлама, ол компьютердің ішкі функцияларын (мысалы, жүйелік ресурстарды орналастыру) басқарады.

shell -

бұл сізді ядромен байланыстыратын бағдарлама, ол сіздің командаларыңызды интерпретациялап, орындайды. Ол сіздің енгізгеніңізді оқып, сізге хабарлама жіберетіндіктен, интерактивті деп сипатталады.

commands -

бұл компьютердің орындауы қажет бағдарламалардың аттары. Бағдарламалар пакеті инструменталдық деп аталады.

file system -

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

Ядро

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

Жүйе ресурстарын басқару     Жадты файлдық жүйеге қызмет басқару     Компьютерге енуді бақылау    

 

Shell

shell – бұл сізге ОЖ-мен байланыстуға мүмкіндік беретін бағдарлама. shell сіз енгізген командаларды оқиды, оларды интерпретациялайды. Shell Сиға ұқсамайтын қуатты бағдарламалау тілі болып табылады.

Командалар

Бағдарлама - бұл компьютерге арналған нұсқаулардын жиынтығы. Алдын ала трансляциясыз орындалатын бағдарламалар жасалынған командалар немесе бағдарламалар деп аталады.

Командалар не істей алады?
UNIX жүйесінін сыртқы келбеті бағдарламаларды және жүйенін саймандық құралдарын тұрады. Олар функцияларға бөлінеді:

  1. Бағдарламалық байланыс – бағдарламалық тілдер және жүйенін интерфейсін қамтамасыз етеді.
  2. мәтінді өңдеу - жүйеде жолдық және экрандық редакторлар бар, сонда мәтінді өңдеуге, қателерді іздеуге болады
  3. Ақпаратты ұйымдастыру – көптеген бағдарламалар каталогтарды, папкаларды жасауға, жоюға мүмкіндік береді.
  4. Қызмет ететін бағдарламалар – графиканы және есептерді шешетін саймандар құрылғылары
  5. Электрондық байланыс – басқа жүйелерге ақпаратты жіберуге мүмкіндік береді

 

Командаларды қалай орындауға болады

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

Командалық жолдын синтаксисынын мысалы:

command option(s) argument(s) <CR>әр командалық жолына жоқ дегенде екі компоненті жазу керек:команданы және батырманы <RETURN>. Командалық жол кілттерді және аргументтерді пайдалана алады. Көрсетілген мысалда:

command – бұл орындалатын бағдарламанын
option – бағдарламаны қалай іске қосу үшін кілттер
argument – өңделетін мәліметтерді көрсетеді, бұл каталог немесе файл аты

Кейбір командалар бір командалық жазбада бірнеше аргументті қолдана алады.Мысалы:

ls -l -i file1 file2 file3 команда кілт аргумент

команда орындалу үшін экранда көмек көрсетіледі (мысалы # символы). Shell команданы тексереді, абғдарлама орындалу үшін каталогтарды іздейді,содан кейін сұранысты ядроға жібереді. Ядро нұсқаларды орындайды да сіз берген команданы орындады.

Бағдарламаны аяқтаған сон, shell келесі команданы орындауга дайындығын көмек жол мен көрсетеді.

Файлдық жүйе

Файлдық жүйе UNIX ОЖ-нін тасы болып табылады. Ол логикалық әдістін ұйымдастыруын, ақпараттын басқаруын қамтамасыз етеді. Файлдық жүйе иерархиялық құрылымнан тұрады.

UNIX ОЖ-нің негізгі элементі файл болып табылады. Фалдын түрлері:

1) Қарапайым

2) Анықтама

3) Арнайы

4) Символдық каналдын байланысы

Қарапайым файл символдардын жиынтығы. әр түрлі ақпаратты сақтауға арналған. Мәтіндерден,бағдарламанын кодынан тұра алады.

Анықтамалар супер-файл болып табылады. Олар басқа файлдар немесе басқа анықтамалардын тұрады. Сіз жасаған анықтамалар, өзініздін анықтамасынызда сақталынады. Жүйеге кіргенде бұл анықтама сізге беріледі.

Арнайы файлдар физикалық құралдарға сәйкес келеді. Олар дискжетек,магниттік лента немесе байланыс каналы.

Символдық каналдын байланысы – бұл файл басқа файлдарды көрсетеді.

UNIX қабықшалары. UNIX утилиттары.

UNIX қабықшалары

Unix ОЖ-нің мүмкіндігі – бұл командалық жолы. Командалық жолы арқылы сіз көптеген операцияларды орындай аласыз.

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

find. -type f -print | sort | uniq

Осы жол үш әр түрлі утилиттерді қолданылады:

Groucho Groucho Chico Chico Groucho Harpo Zeppo Zeppo

 

uniq утилитасы қолданғаннан кейін:

Groucho Chico Groucho Harpo Zeppo

 

UNIX ОЖ-де еңгізу/шығару жүйелерімен жұмыс

find утилитасы жұмыстын нәтижесін стандартты шығару құрылғысына (stdout) шығарады.

Ал sort и uniq утилеттері stdout-қа нәтижесін шығарады.

Мысалы (% символлы – бұл қабықшаға еңгізуге шақыруы) % sort mustache horn hat Control-D

Sort утилитасы stdin-нан үш жолды оқиды, сұрыптайды және нәтижене шығарады.


Кейбір утилиттер мәліметтерді жүелік ресурстардан алады және stdout- қа нәтижесін шығарады.

UNIX командалары қателерді арнайы шығару жүйесіне шығарылады (standard error)

 

Z shell қабықшасы

UNIX ОЖ-нын қазіргі қабықшалары бағыттардын түрлерін қолданылады. UNIX-та пернетақта мәліметтерді еңгізу үшін қолданылады. zsh - қабықшасы Z бірнеше еңгізілетін және шығарылатын бағыттарды бір командалық жолда көрсетеді.

 

1-деңгей тапсырмалары:

Тапсырмалар:

  zsh% bash < tellme > log | mail -s "Who you are" 'whoami' bash: line 4: systemname: command not found zsh% <log Your current login, working directory, and system are... strike /home/strike

'whoami' команданы жібереді және өз орынына нәтижелерді шығарады

Бақылау сұрақтары:

1) UNIX ОЖ қашан және қайда пайда болды?

2) UNIX ОЖ-нің қандай артықшылықтары бар?

3) UNIX ОЖ-де қандай бағдарламалармен жұмыс істеуге болады?

4) UNIX ОЖ-нің негізгі компоненттерін атаңыздар

5) UNIX ОЖ-нің негізні компоненттеріне сипаттама беріңіздер

6) UNIX ОЖ-ның негізгі оқиғалары

7) UNIX ОЖ –нің басты артықшылықтары қандай?

8) UNIX ОЖ қандай

9) үлкен бөліктерге бөлінеді?

 

2-деңгей тапсырмалары:

 

Тапсырмалар:

1. pwd командасы (print working directory — ағымдағы каталогты басып шығару) ағымдағы каталогтың атын білуге арналған команда. Төменде көрсетілген комаданы теріңізде, ағымдағы каталогтын атын атаңыз.

[user@localhost ~]$ pwd

/home/user

2.cd командасын ағымдағы каталогты ауыстыру үшін қолданылады.

Мысалы: cd /etc —/etc, каталогына ауыстыру және ағымдағы каталог болу керек.

 

[user@localhost usr]$ pwd

/usr

[user@localhost usr]$ cd local

[user@localhost local]$ pwd

/usr/local

Осы әркеттерді орындап ағымдағы каталогтың атын табыңыз

 

3. Каталог құру үшін mkdir командасын қолданып, жазылу түрі: mkdir [-p] каталог аты командасын орындап мысалда келтірілген, жаңадан құрылған каталогты табыңыз және өзіңіздің группаңыздың каталогын құрыңыз.

 

[user@localhost /]$ cd

[user@localhost ~]$ mkdir test

[user@localhost ~]$ ls

Documents test tmp

 

4.rmdir. командасының көмегімен керекті және құрған каталогты жоюға арналған.

[user@localhost ~]$ mkdir -p test/xxx/yyy/zzz

[user@localhost ~]$ ls -R test

test:

xxx

test/xxx:

yyy

test/xxx/yyy:

zzz

test/xxx/yyy/zzz:

 

3-деңгей тапсырмалары:

Өздік жұмыс:

  1. Каталотарға және файлдарға қолданылатын қандай командаларды білесіз?
2. pwd командасының қызметі - ағымдағы директорияның атын алу3. cd командасының қызметі - ағымдағы директорияны өзгерту4. ls командасының қызметі - файлдар мен директориялар жөніндегі ақпараттарды баспаға шығару5. cat командасының қызметі - файл-аргументтерді стандартты шығаруға жинақтау немесе шығару6. cp командасының қызметі - файлдардың көшірмесін жасау7. mv командасының қызметі - файлдардың орнын ауыстыру (атын өзгерту) 8. ln командасының қызметі - файлға сілтеме құру9. rm командасының қызметі - файлды жою

man командасының қызметі - команданың қолданылғаны және кілттері бойынша анықтаманы шығару

Тәжірибелік жұмыс № 4,5,6

Курс тақырыбы: 1.1. Linux/UNIX ОЖ құрылымы және жалпы сипаттамасы

Сабақ тақырыбы: № 4 Ядро құрылымы Үрдістерді басқару. Енгізу-шығаруды басқару.

Ядро

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


Операциялық ортасы ретінде UNIX құрылымы

 

Құрастырушылар ядроны жинаған кезінде оған көптеген драйверлерді қосыда. Осы ядро базалық деп аталады.

Ядро модульдері

Егер базалық ядро жеткіліксіз болса онда драйверлерді динамикалық түрінде қосуға болады. Ондай модульдерді арнай файлдардан қосуға болады және де ядроның көлемі кішірейеді. Ядро модульдері ядро режимінде жұмыс істейді, сондықтан олармен жұмыс істеген кезінде сақ болу керек. Модульдердін функциялары ядроның функцияларымен бірдей болады.

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

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

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

Бірақ ядорның салыстырмалы үлкен емес бөлігі машинаға тәуелсіз болып табылады және Си мен Ассемблер тілдерінің көмегімен жазылған. Жүйені жаңа поатформаға тасыған кезде ядорның бұл бөлігін көшіру қажет етіледі. Ядроның машинаға тәуелді бөліктері машинадан тәуелсіз бөлігінен жақсы бөлінген және әр машинаға тәуелді компоненттердің тапсырмасын дұрыс түсінген кезде машина – тәуелд бөлікті көшіру техникалық тапсырма болып табылады. UNIXОЖ ядросының машинаға тәуелді бөлігі мынадай компоненттерден тұрады:

1. Төмен деңгейде жүйені үйлесімділеу;

2. Ішкі және сыртқы үзілістердің бірінші өңделуі;

3. Жадымен басқару;

4. Қолданушы және ядро режимдері арасында процесстер контекстерінің қайта қосылуы;

5. Бүтін платформаның ерекшеліктерімен байланысты құрылғылар драйверлерінің бөліктері.

UNIX ОЖ – сінің негізгі функцияларына мыналарды жатқызамыз:

1. Жүйе үйлесімділігі – орау және жіберу функциясы. Жүйе ядросы ядроның компьютер жадына толық жүгіну мен ядроның қосылуын қамтамасыз ететін оралу (bootstrap) құралын қамтамасыз етеді.

2. Жіптер және процестермен басқару - бар процестер мен жіптерді жасау, бітіру және қадағалау функциялары. UNIXОЖ мультипроцессорлы операциялық жүйе болғандықтан процестер қатарласа орындалып жатқанын көрсету үшін ядро процессордың қосылған уақыт процестері мен компьютердің басқа ресурстары арасында бөлінуді реттейді.

3. Жадымен басқару - процестердің шектелмеген виртуалды жадының шектелмеген размерлі компьютердің физикалық оперативті жадына көшіру функциясы. Ядроның сәйкес компоненті бір оперативті жады облысының сыртқы жадыны қолданумен бірнеше процестермен бөліп қолдануды қамтамасыз етеді.

4. Файлдармен басқару - файлды жүйе абстракциясын жасайтын функция, каталогтар мен файлдар иеархиясы. UNIXОЖ файлды жүйелерді файлдардың бірнеше типтерін ұстанады. Кейбір файлдар деректерді ASCII форматында ұстай алады, басқалары сыртқы құрылғыларға сәйкес келеді. Файлдық жүйеде объектілі файлда, орындалатын, т.б. сақталады. Файлдар әдетте жадының сыртқы құрылғыларында сақталады; оларға ену ядро көмегімен жасалады. UNIX әлемінде файлдық жүйелерді құрудың бірнеше типі бар. UNIX ОЖ қазіргі нұсқалары бір мезгілде көптеген файлдық типтерді ұстанады.

5. Қатынастық құралдар – бір компьютер ішінде орындалатын (IPC - Inter – Process Communications) процестер арасында, деректерді жіберудің ғаламды немесе жергілікті желілердің әр түрлі тораптары арасында, сонымен қатар процестер мен сыртқы құрылғылар драйверлері арасында деректермен ауысуды қамтамасыз ететін функция.

6. Бағдарламалық интерфейс - функция кітапханасы түрінде жасалынған жүйелі шақыру механизмі негізінде жасалынған қолданбалы процестер жағынан мүмкіндіктерге енуді қамтамасыз ететін функция.

 

Ядромен арақатынас принциптері.

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

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

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

Файлдық жүйе

Файлдық жүйе UNIX ОЖ-нін тасы болып табылады. Ол логикалық әдістін ұйымдастыруын, ақпараттын басқаруын қамтамасыз етеді. Файлдық жүйе иерархиялық құрылымнан тұрады.

UNIX ОЖ-нің негізгі элементі файл болып табылады. Фалдын түрлері:

1) Қарапайым

2) Анықтама

3) Арнайы

4) Символдық каналдын байланысы

Қарапайым файл символдардын жиынтығы. әр түрлі ақпаратты сақтауға арналған. Мәтіндерден,бағдарламанын кодынан тұра алады.

Анықтамалар супер-файл болып табылады. Олар басқа файлдар немесе басқа анықтамалардын тұрады. Сіз жасаған анықтамалар, өзініздін анықтамасынызда сақталынады. Жүйеге кіргенде бұл анықтама сізге беріледі.

Арнайы файлдар физикалық құралдарға сәйкес келеді. Олар дискжетек,магниттік лента немесе байланыс каналы.

Символдық каналдын байланысы – бұл файл басқа файлдарды көрсетеді.

UNIX файлдық жүйесінің мінездемелері: * иерархиялық құрылым * мәліметтер массивтерің өндеуі * файлды құру және жою әрекеті * файлдардың динамикалық * файлдарда ақпаратты қорғауы * қосымша құрылғылардың атауы Файлдық жүйе ағаш түрінде берілген. Ең жоғарғы шыңы - түбір деп аталады (жазылу форматы: "/");. Әр түбір шыңы, жапырақтардан басқалары файлдын каталогы болып табылады. Ал туынды шыңдардын файлдары каталог немесе жай файл немесе құрылғы файлдары болып табылады. +-------------+------------+---------+---------+---------+ | | | | | | fsl bin etc usr unix dev +-+-+ +---+---+ | +-+-+ +-+-+ | | | | | | | | | | mjb maury sh date who passwd src bin tty00 tty01 | | cmd +---+---+ | | date.c who.c Файлдық жүйенің мысалы Жолдын аты компоненттерден тұрады, орталары бөлу сызық арқылы ашылады. әр компонента символдардын жиынтығы болып табылады. Ол каталогқа уникалды болады. Мысалы, "/etc/passwd", "/bin/who" және "/usr/src/cmd/who.c" ағаштын шыңындағы файлдарға жолды көрсетеді, ал "/bin/passwd" и "/usr/ src/date.c" жолдары дұрыс көрсетпейді, өткені ондай спрап желісі жоқ.

Үрдістерді басқару. Енгізу-шығаруды басқару.

 

Енгізу-шығаруды басқару

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

Түрлері:

  1. Блоктық енгізу – шығару
  2. Символдық енгізу – шығару
  3. Потоктық енгізу - шығару

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

Символдық енгізу – шығару қолданушының адрестік ортасында және керекті құрылғалардын ортасында тікелей ауысуды орындау үшін қызмет етеді. Барлық символдық драйверлердің жалпысы: қолданушылық және ядерлық адрестік орталарында мәліметтермен алмасуын қамтамасыз ету функциясы.

Потокотық енгізу – шығару символдық енгізу - шығаруға ұқсас, бірақ потокқа аралық өңдеу модульдері қосылады.

Жүйелік буферизацияның енгізу – шығару принциптері

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

Енгізу – шығаруды басқаруға арналға жүйелік шақырулар

Әртүрлі файлға ену үшін қолданушылық процеесс алдын ала open, creat, dup немесе pipe жүйелік шақырумен файлға қосылу керек.

open (pathname, mode) жүйелік шақырудын тізбек әрекеттері:

open және creat жүйелік шақырулар ұқсас болады. Әр файлды creat жүйелік шақыру арқылы ашуға болады, ал жаңа файлды құру үшін open жүйелік шақыруды қолданылады.

dup жүйелік шақыру(duplicate – көшіру) ашлған файлдын жаңа декрипторын құруға арналған. Бұл жүйелік шақыру енгізу – шығаруды бағыттау үшін қолданылады.

Басқа жүйелік шақыруларға read және write жүйелік шақырулар жатады. read жүйелік шақыруы келесідей орындалады:

close жүйелік шақыруы драйверлердін қолданушылық процесстермен байланысын ажыратады.

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

Драйверлердін Интерфейстік жалпы сызбасы

Блоктық драйверлер

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

Символдық драйверлер

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

Ағындық драйверлер

Ағындардын (streams) негізгі механизмі модульдік деңгейін арттыру және күрделі ішкі қисынды драйверлердін иілгіштігі.

1-деңгей тапсырмалары:

Тапсырмалар:

1. uname -a командасының көменімен UNIX операциялық жүйесінің ағымдағы атын анықтағыз.

user@desktop ~ $ uname -a

Linux thinkpad 2.6.13-gentoo-r4 #1 Mon Oct 17 12:09:36 MSD 2005 i686 Intel(R)...

Ескерту: Ядроның комптляция уақыты және процессордың типі, жүйенің толық версиясы шығады.

  1. Вывести содержимое каталога с помощью команды ls /proc: командасының көмегімен proc каталогының мазмұнын (құрамын) көрсетіңіз.

user@desktop ~ $ ls /proc

1/ 7/ 8113/ 8209/ 9073/ dri/ modules

103/ 7060/ 8124/ 8211/ 9324/ driver/ mounts@

106/ 7128/ 8125/ 8213/ 9325/ execdomains mtrr

185/ 7693/ 8131/ 8215/ 937/ fb net/

186/ 7770/ 8135/ 8319/ 9376/ fb1/ partitions

...

  1. who командасының көменігмен ағымдағы пользовательдерді шығару жолдарын көрсетіңіз.

user@desktop ~ $ who

user tty1 2005-10-24 13:17

user pts/0 2005-10-24 13:19

user pts/2 2005-10-24 23:59

 

  1. mount командасының көмегімен барлық жөнделген(примонтированных) құрылғылардың тізімін шығару.

user@desktop ~ $ mount

/dev/hda6 on / type reiserfs (rw,noatime)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw)

/dev/hda1 on /mnt/win type ntfs (ro,uid=1000,gid=100,nls=utf8)

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

  1. Жүйенің ағымдағы уақытымен түпкі каталогтың құрылған уақытын салыстырыңыз.
  2. Жүйенің барлық файлдық типтерін, осы уақыттағы жөнделген (примонтированных), түпкі каталогтың файлдық жүйесі қай типке екенін анықтау жолдарын көрсетіңіз.
  3. /proc каталогының қай файлда жүйелік жады туралы ақпарат сақталған.
  4. Төменде көрсетілген комананың нәтижесін түсіндіріңіз. (cat /etc/passwd | cut -f7 -d: | uniq: қайталатын командалық жолды жою)

user@desktop test $ cat /etc/passwd | cut -f7 -d: | uniq

/bin/bash

/bin/false

/bin/sync

/sbin/shutdown

/sbin/halt

/bin/false

...

2-деңгей тапсырмалары:

Тапсырмалар:

1. /etc каталогындағы бір күн бұрын өзгертілген файлдарды шығару жолдарын көрсетіңіз.

[user@localhost test]$ find /etc -mtime -1

/etc

/etc/issue

/etc/issue.net

/etc/mtab

2. Вывод всех файлов в каталоге, не принадлежащих пользователю user пользователіне қатысты емес барлық /tmp каталогының файлдарын шығарыңыз?

[user@localhost test]$ find /tmp \! -user user

/tmp

/tmp/.private

/tmp/.font-unix

/tmp/.X11-unix

 

3. Ағымдағы барлық «~» аяқталатын каталогтарды жою әрекетін орындаңыз

[user@localhost test]$ find -name "*~" –delete

 

  1. Ағымдағы каталогтың барлық тестік файлдарын шығарыңыз.

 

[user@localhost test]$ find ~ -name "*.txt" -exec echo {} \;

/home/user/a.txt

/home/user/unix_commands.txt

  1. Барлық тестік файлдарды дискіге (флешкага) көшіру жолын көрсетіңіз.

[user@localhost test]$ find ~ -name "*.txt" -exec cp {} /mnt/floppy/ \;

3- деңгей тапсырмалары:

Тапсырмалар: Командаларды енгізу-шығаруды басқару.

  1. Ағымдағы каталог және ағымдағы ішкі каталогтардың барлық файлдарды шығару әрекетін орындаңыз.

[user@localhost ~]$ find

.

./xxx

./xxx/yyy

./xxx/yyy/zzz

./file.test

  1. Экранға «Hello, world»: хабарламасын шығару жолдары шығарыңыз.

[user@localhost ~]$ echo "Hello, world."

Hello, world.

[user@localhost ~]$

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

[user@localhost ~]$ cat -b file1

1 Number 1

2 Number 2

3 Number 3

4 Number 4

 

 

5 Number 5

  1. Барлық жолдарды нөмерлеу.

[user@localhost ~]$ cat -n file1

1 Number 1

2 Number 2

3 Number 3

4 Number 4

7 Number 5

Тәжірибелік жұмыс № 7,8,9

Курс тақырыбы: 1.1. Linux/UNIX ОЖ құрылымы және жалпы сипаттамасы

Сабақ тақырыбы: Каталогтар және файлдармен жұмыс атқаруға арналған командалар

 

1. Unix жүйесі бас және кіші әріптерді бөлек қарастырады.

2. Егер қандай да бір файлды жоятын болсақ, оны қайтадан қалпына келтіруге болмайды. Unix-те unerase командасы жоқ. Unix-те вирустар мен антивирустар жоқ.

3. Файл атындағы директорийлер келесі бөлігінен «/» символымен бөлінеді. Егер аты слэштан басталса, яғни бұл толық маршруттық аты деген сөз. Файлдың қарапайым атауы кез келген символдан тұруы мүмкін. Жай атаудың ұзындығы 256 символдан аспауы керек. Толық маршруттық файл атауы 32000 символдан аспауы керек.

4. Атаулардың шаблондарын юеру үшін «*» символы (символдардың кез келген символы) және «?» (бір кез келген символ) қолданылады. Бір нүктеден «.» тұратын атау ағымдағы директорияны білдіреді, ал екі нүктеден тұрса, «..» - жоғарғы каталогты білдіреді.

5. Бағдарламаны жүктеу үшін оның атын теру жеткілікті. Бағдарламаның аты – бағдарлама орналасқан файлдың маршруттық аты. Аргументтер бір немесе бірнеше бос орынмен және табуляторлармен бөлінеді. Команданың кілттері әдетте (бірақ ылғи емес) «-» таңбасымен ерекшеленеді.

команда –кілттер –кілттер... басқа да аргументтер

6. Егер командалық жол & таңбасымен аяқталатын болса, онда команда параллель (фон ретінде) жүктеледі. Терминалда жүктелген процесс алатын нөмір басылады. Бұдан соң фондық тапсырманың аяқталмауын күтпей-ақ, жұмысты жалғастыруға болады.

команда –басқа да аргументтер... &

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

команда > файла _аты(стандартты енгізу үшін), команда < файл_аты(стандартты шығару үшін), команда 2> файл_аты(стандартты хатама – жүйелік диагностика үшін),Мысал: файлға ағымдағы директорияның мазмұнын жазу ls > infdir Егер шығару файл үшін тағайындалса, онда команда орындалмастан бұрын сәйкес атпен бос файл құрылады. Егер файл бұған дейін құрылған болса, оның іші тазартылады да, оған ақпарат жазылады. Егер ақпаратты құрылған файлдың соңына жаз керек болса, келесі құрылымды пайдалануға болады: команда >> файл аты команда 2>> файл атыUnix жүйесінің қолданушылары топтарға біріктіріледі, әр топтың файлға ену құқықтары әр түрлі болады. Бағдарламалар айнымалылардың мәндерін анықтауы мүмкін. TERM=vt220HOME=/home/moshkowPATH=:/bin/:dss/rk:/home/moshkow/bin Бір команданың шығуын екінші команданың енуіне бағыттауға болады. Бұл үшін «|» - конвейер қолданылады. Мысал: /tmp каталогындағы барлық «text» деген символдардан басталатын файлдардың өлшемдерінің және жолдарының қосындысын шығару cat /tmp/text* | wc -c # cat командасы /tmp/text* түріндегі барлық файлдарды жинақтайды. # wc -c -l енгізілетін ағымдағы барлық символдардың санын және жолдар санын санайды.

2. Кейбір жиі қолданылатын командалар:

pwd - ағымдағы директорияның атын алуcd ағымдағы директорияны өзгертуls - файлдар мен директориялар жөніндегі ақпараттарды баспаға шығаруcat - файл-аргументтерді стандартты шығаруға жинақтау немесе шығаруcp - файлдардың көшірмесін жасауmv - файлдардың орнын ауыстыру (атын өзгерту) ln - файлға сілтеме құруrm - файлды жоюrmdir – директрияны жоюmkdir – директорияны құруecho - командалық жолдың аргументерін стандартты шығаруға шығаруps - орындалатын процесстердің нөмірлері мен ақпараттарын шығаруkill - орындалып жатқан процессті оның «нөмірі» бойынша «өлтіру» man - команданың қолданылғаны және кілттері бойынша анықтаманы шығару

pwd ағымдағы директорияның атын алу

Pwd

cd ағымдағы директорияны өзгерту

cd [ директория] cd /usr/spool/lp/adm cd..

ls Каталогты басып шығару

Команда форматы: ls [кілттер] [атаулар]атаулар – файлдар мен директорийлер аты, директорийлер үшін оған енетін файлдардың тізімі баспаға шығарылады, файлдар үшін оның аты мен қосымша ақпарат шығарылады. Файлдардың аттары алфавит бойынша сұрыпталады. Ls аргументсіз болса, онда ағымдағы директорияның мазұнын шығарады. ls -al - толық форматта шығару: күні иесі модификация уақыты линктер топ файл аты (аттар) өлшемі-rwxr-xr-x 1 semey sys 17 Oct 18 16:13../jeandrwxr-xr-x 1 semey sys 12 Oct 18 16:11../jelly-rwxr-xr-x 1 semey sys 0 Oct 13 14:14../j.bu.txt^^ ^ ^|| | | +----- «басқалардың» файлға қатысты құқықтары || +-------- бір топтағылардың файлға қатысты құқықтары |+----------- файл «иесінің» құқықтары+------------ "-" – файл деген сөз, "d" - директория Құқықтар: r – файлды тек оқуға болады, w – файлға жазуға болады, x - файл орындалатын болып табылады, - - файлға енуге құқық жоқ. -a – барлық файлдарды шығару (аттары нүктеден басталса да); -x – 4 колонкаға шығару; -t – фал аттары алфавит бойынша емес, соңғы өзгеріс енгізілгн уақыты бойынша сұрыпталады -R – барлы ішкі каталогтардан рекурсивті өту ls -CF - каталогтың атын бірнеше бағандарда атау (оглавление каталога в несколько столбиков) ls -al - толық форматта атау беру

cat файл-аргументтерді стандартты шығаруға жинақтау немесе шығару

Команда форматы: cat файл1 [файл2... ]Cat аталғандардың мазмұнын стандардтты шығаруға жібереді. мысал: cat файлфайлдың мазмұнын шығарады cat файл1 файл2 > файл3бастапқы екі файлды қосып, нәтижесін үшінші файлға орнатады. файла1 мазмұнын файлу2-нің ішіне қосу үшін келесі команданы орындау керек: cat файл1 >> файл2

more, pg Файлды жол бойынша көру.

more file_name... pg file_name... less file_name...осы барлық командалар файлды экран бойынша көруге мүмкіндік береді. q - көруді аяқтауПРОБЕЛ – келесі бетті көрсетуENTER - бір жолға жылжыту b - алдыңғы бетті көрсету/ - іздеуh - Help – барлық мүмкін командалардың тізімін

cp Файлдарды көшіру

Команда форматы: cp файл1 файл2 cp файл1 [файл2...] каталогБұл команда файл1,..., ФАЙЛ-ға көшірмесін жасайды. Егер ФАЙЛ – директория болса, онда файл1 және басқалар өөз аттарымен көшіріледі. Егер ФАЙЛ әлі құрылмаған болса, ол құрылады, бұғанға дейін бар болса, оның мазмұны жоғалады.

mv Файлдардың орнын (атын) өзгерту


Дата добавления: 2015-07-19; просмотров: 942 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Adding a Notch to the City Skyline| Rm Файлды немесе директорияны жою.

mybiblioteka.su - 2015-2024 год. (0.089 сек.)