# Օպերացիոն համակարգ

Ուբունտու, Լինուքս օպերացիոն համակարգ
**Օպերացիոն (գործավար) համակարգ** (**ՕՀ**)**,** ծրագրերի խումբ, որը կառավարում է համակարգչային սարքախմբի ռեսուրսները և ընդհանուր ծառայություններ է մատակարարում կիրառական ծրագրերին։ Համակարգչում ՕՀ-ը համակարգչային տեխնիկային ծրագրեր ապահովող ամենակարևոր մասն է։ Օգտվողը առանց ՕՀ-ի չի կարող օգտվել և ավելացնել ծրագրեր համակարգչում՝ բացառությամբ այն դեպքերի, երբ ծրագիրը ինքնաբեռնվող է։

Ժամանակաբաշխ (time-sharing) ՕՀ-երում պլանավորում են առաջադրանքները և դրանցից շատերը ներառում են պրոցեսի ժամանակի, զանգվածային պահեստավորման, տպագրության և այլ ռեսուրսների ծախսերի արդյունավետ բաշխման հաշվառումը։

Սարքավորումների այնպիսի գործողությունների համար, ինչպիսիք են ներածումը և արտածումը և հիշողության կազմակերպումը, ՕՀ-ը հանդես է գալիս որպես միջնորդ կիրառական ծրագրերի և համակարգչային ծրագրերի միջև, չնայած կիրառական ծածկագիրը սովորաբար ստեղծվում է հենց սարքավորումների միջոցով, բայց հաճախ ՕՀ-ի կարիքն ունի կամ կարող է ընդհատվել նրա կողմից։ ՕՀ-եր կարելի է գտնել գրեթե ցանկացած սարքավորման մեջ, որը համակարգիչ է պարունակում` բջջային հեռախոսներից և վիդեո խաղերի վահանակներից մինչև գերհամակարգիչներ և վեբսերվերներ։

ժամանակակից ՕՀ֊երի օրինակ են՝ Անդրոիդ և Լինուքս, որոնցից յուրաքանչյուրն իր արմատն ունի Յունիքսում կամ Microsoft Windows-ում։

Առաջատար օպերացիոն համակարգը Անդրոիդն է, որը կիրառվում է օգտագործողների ընդհանուր քանակի 42%֊ի կողմից։ Apple Inc.֊ի արտադրության macOS֊ը երկրորդ տեղում է (13.23%), իսկ Linux֊ի բոլոր տարբերակները միասին օգտագործում է միայն 1.57%֊ը։ Ինչ վերաբերում է հեռախոսային սարքերին՝ սմարթֆոններին և թաբլեթներին, Android-ը առաջատար է 87.5 տոկոսով և տարեկան 10.3 տոկոս աճով, երկրորդը Apple֊ի iOS֊ն է 12.1 տոկոս օգտագործելիությամբ և տարեկան 5.2 տոկոս նվազումով, մինչդեռ մյուս բոլոր ՕՀ֊ի օգտագործելիությունը 0.3 տոկոս է։ Linux-ը առավել տարածված է սերվերներում և գերհաշվարկային մեխանիզմներում։

## Տեսակները

### Միախնդիր և բազմախնդիր

Միախնդիր համակարգը միևնույն ժամանակում կարող է աշխատեցնել միայն մեկ ծրագիր, մինչդեռ բազմախնդիր օպերացիոն համակարգը թույլ է տալիս՝ մեկից ավելի ծրագրեր աշխատեն միաժամանակ։ Ավելի ճիշտ՝ տպավորություն է ստեղծվում, թե ծրագրերը աշխատում են միաժամանակ․ իրականում դրանք ակտիվ հերթի մեջ են գտնվում, ժամանակը բաշխվում է ծրագրերին և օգտագործողին թվում է, թե դրանք կատարվում են միաժամանակ։ Բազմախնդիր մեխանիզմը կարելի է բնորոշել կանխորոշվող և համագործակցային տեսակներով։ Կանխորոշվող բազմախնդրության ժամանակ ՕՀ֊ը վերցնում է CPU-ի ժամանակից և տրամադրում այդ հատվածը ծրագրերից յուրաքանչյուրին։ UNIX-ի նման ՕՀ֊ում, ինչպիսիք են Սոլարիսը, Լինուքսը, AmigaOS-ը, սատարում են կանխորոշվող բազմախնդրությանը։ Համագործակցային բազմախնդրության ժամանակ ծրագրերը իրենք են իրար ժամանակ տրամադրում ինչ֊որ որոշված ձևով։ Microsoft Windows֊ի 16-բիթանի տարբերակները օգտագործում էին համագործակցային բազմախնդրություն, մինչդեռ թե՛ Windows NT֊ի և թե՛ Win9x֊ի 36-բիթանի տարբերակները օգտագործում են կանխորոշվող բազմախնդրություն։

### Միօգտագործվող և Բազմաօգտագործվող

Բազմաօգտագործվող օպերացիոն համակարգը թույլ է տալիս մի քանի օգտվողների միաժամանակ մուտք գործել համակարգչային համակարգ։ Իրական տվյալները կառավարող համակարգը կարելի է դասակարգել որպես բազմաօգտագործվող համակարգեր, քանի որ նրանք հնարավոր են դարձնում մեկ հոգու մուտքը համակարգիչ ժամանակի բաժանման շնորհիվ։ Միօգտագործվող օպերացիոն համակարգը, հակառակ բազմաօգտագործվող օպերացիոն համակարգին, միաժամանակ կարող է օգտագործվել միայն մեկի կողմից։ Windows-ի օպերացիոն համակարգում բազմաթիվ հաշիվների առկայությունը այն չի դարձնում բազմաօգտագործվող համակարգ։ Ավելին, միայն ցանցային կայքավարն է իրական օգտագործողը։ Բայց UNIX-ի և դրա նման օպերացիոն համակարգերի համար հնարավոր է միանգամից երկու օգտագործողների միաժամանակյա մուտքը համակարգ, և ՕՀ-ի այս հնարավորությունը նրան դարձնում է բազմաօգտագործվող։

### Բաշխված

Բաշխված օպերացիոն համակարգը հնարավորություն ունի կառավարել մի խումբ անկախ համակարգիչներ և այնպես անել, որ այն մեկ համակարգիչ երևա։ Ցանցային համակարգիչների զարգացումը, որոնք կարող են միմյանց միացվել և հաղորդակցվել միմյանց հետ, հիմք դրեց բաշխված հաշվառմանը։ Բաշխված հաշվարկները կատարվում են ավելի, քան մեկ սարքավորման վրա։ Երբ խմբի համակարգիչները համագործակցված են աշխատում, նրանք ստեղծում են բաշխված համակարգ։

### Կաղապարային

Այս տիպի ՕՀ֊ում ստեղծվում է մեկ վիրտուալ մեքենայական նկար, որը պահպանվում է որպես գործիք աշխատող բազմաթիվ վիրտուալ մեքենաների համար։ Այս տեխնիկան օգտագործվում է ինչպես վիրտուալիզացիայում, այնպես էլ ամպային հաշվարկների կառավարման մեջ, և հատուկ է մեծ սերվերներին։

### Ներկառուցված

Այս օպերացիոն համակարգերը ստեղծվել են, որպեսզի օգտագործվեն ներկառուցված համակարգերում։ Այս ՕՀ֊ը ստեղծվել են, որպեսզի աշխատեն փոքր մեքենաների վրա, ինչպիսին PDA֊երն են, որոնք ունեն քիչ ինքնավարություն։ Դրանք ի վիճակի են աշխատելու միայն սահմանափակ քանակով ռեսուրսների հետ։ Windows CE֊ն և Minix 3֊ը ներկառուցված ՕՀ֊ի օրինակներ են։

### Իրականժամանակային

Իրականժամանակային ՕՀ֊ը համաժամանակյա գործողությունների մի համակարգ է, որի նպատակը իրական տվյալներով գործողությունների իրականացումն է։ Իրական տվյալները կառավարող օպերացիոն համակարգերը հաճախ օգտագործում են մասնագիտացված գրաֆիկական ալգորիթմներ, այնպես որ նրանք կարող են վարվեցողության դետերմինացված բնույթ ձեռք բերել։ Իրական ժամանակի ՕՀ-երի գլխավոր նպատակը նրանց արագ և կանխատեսելի արձագանքն է իրադարձություններին։ Նրանք ունեն իրադարձություններով պայմանավորված և ժամանակաբաշխ ծրագիր, և երբեմն երկուսն էլ միասին վերցված են։ Իրական տվյալները կառավարող օպերացիոն համակարգերը գործ ունեն այնպիսի առաջադրանքների հետ, որոնք հիմնված են ժամացույցի ընդհատումների վրա։

### Գրադարանային

Գրադարանային ՕՀ֊ը նրանք են, որոնցում ՕՀ֊ի մատակարարած ծառայությունները ստացվում են գրադարանների տեսքով։

## Պատմություն

Վաղ շրջանի համակարգիչները ձևավորված էին կատարելու մի քանի առանձին գործողություններ, ինչպես հաշվիչը։ Մինչև 1960 թվականը օպերացիոն համակարգերն իրենց ժամանակակից և ավելի բարդ տարբերակներով դեռևս գոյություն չունեին։ Օպերացիոն համակարգերի որոշ բնորոշ գծեր զարգացվել են 1950-ականներին, ինչպես օրինակ մոնիտորային ծրագրերը, որոնք կարող էին ինքնաբերաբար հաջորդականությամբ աշխատեցնել մի քանի կիրառական ծրագրեր՝ բարձրացնելով գործողության արագությունը։ Սարքավորմանը այնպիսի առանձնահատկություններ էին ավելացվում, որ հնարավոր էին դարձնում ընդհատումները և զուգահեռ գործողությունները։ Երբ Apple Inc., Atari, IBM և Amiga կազմակերպությունների անհատական համակարգիչները հայտնի դարձան 1980-ականներին, վաճառողները ավելացրին օպերացիոն համակարգի այնպիսի առանձնահատկություններ, որոնք նախապես օգտագործվել էին գերարագ համակարգիչների և մինի համակարգիչների վրա։ Հետագայում շատ առանձնահատկություններ զարգացվեցին, ինչպես օրինակ օգտագործողի գրաֆիկական ծրագրերի համակարգը անհատական համակարգչային օպերացիոն համակարգերի համար։

1950֊ականների սկզբներին համակարգիչը միաժամանակ միայն մեկ ծրագիր կարող էր աշխատեցնել։ Ամեն օգտագործող ուներ իր անհատական օգտագործման համակարգիչը սահմանափակ ժամանակում օգտագործելու հնարավորություն։ Ասում են, որ Ալան Թյուրինգը այս մեթոդի գիտակն էր, ինչը նա փորձարկել է Manchester Mark 1 մեքենայի վրա և նա արդեն հասնում էր օպերարացիոն համակարգերի պարզագույն գաղափարներին՝ շնորհիվ համընդհանուր Թյունրինգի մեքենայի աշխատանքի սկզբունքների։

Ավելի ուշ մեքենաները արտադրվում էին ծրագրերի գրադարանով, որոնք կցվում էին օգտագործողի ծրագրին և օգնում էին այնպիսի գործողություններ կատարելու համար, ինչպիսին ներմուծումն ու արտածումն են կամ մարդու կողմից կարդացվող սիմվոլային կոդը համակարգչային կոդի բերելը։ Սա ժամանակակից օպերացիոն համակարգերի ծնունդն էր։ Այնուամենայնիվ, մեքենանաները դեռևս միայն մեկ համաժամանակյա աշխատանք էին կարողանում կատարել։

Նոր բարելավում էր այն, որ Atlas Superviser-ը ներկայացվեց Մանչեսթրի Atlas-ի հետ 1962 թվականին, ինչը շատերի կողմից համարվում է առաջին ժամանակակից օպերացիոն համակարգը։ Բրինչ Հանսենը նկարագրել է այն որպես օպերացիոն համակարգերի պատմության մեջ ամենակարևոր բեկումնային քայլը։

### Հիմնական կառուցվածքային մասեր

Օպերացիոն համակարգը բաղկացած է բազմաթիվ մասերից։ Ամենակարևոր մասերից մեկը միջուկն է, որը կարգավորում է ցածր մակարդակի գործողությունները, որոնք սովորական օգտագործողը սովորաբար չի կարող տեսնել։ Այն կարգավորում է, թե ինչպես է հիշողությունը կարդացվում և գրվում, այն հաջորդականությունը, որով տեղի են ունենում գործողությունները, ինչպես է տեղեկատվությունը ստացվում և ուղարկվում այնպիսի սարքավորումների միջոցով, ինչպիսին մոնիտորն է, մկնիկը և ստեղնաշարը, և որոշում է, թե ինչպես մեկնաբանել ցանցերից ստացված տեղեկատվությունը։ Օգտագործողի ծրագրային համակարգը (ինտերֆեյս) մի բաղադրիչ է, որի միջոցով համակարգիչը անմիջական գործողության մեջ է օգտագործողի հետ, որը հնարավորություն է տալիս նրանց ղեկավարել և օգտագործել ծրագրերը։ Օգտագործողի ծրագրային համակարգը կարող է գրաֆիկական լինել՝ պատկերներով և սեղանադիրով (դեսքթոփ), կամ տեքստային՝ հրամանի տողով։ Կիրառական ծրագրային համակարգը ծառայություններ և ծածկագրեր է մատուցում, որոնք հնարավորություն են տալիս գործողությունները զարգացնողներին գրել հավաքովի ծածկագրերի վերաօգտագործումը։ Այն առանձնահատկությունները, որոնք օպերացիոն համակարգի բաղկացուցիչ մասն էին համարվում, տարբեր օպերացիոն համակարգերում այլ ձև էին սահմանվում։ Microsoft Windows-ը իր օգտագործողի ծրագրային համակարգը օպերացիոն համակարգի մասն է համարում, մինչդեռ LIinux-ի շատ տարբերակներ այդպես չեն։

### Միկրոհամակարգիչներ

Առաջին միկրոհամակարգիչները մշակող ՕՀ-երի հնարավորություն կամ կարիք չեն ունեցել։ ՕՀ-երը զարգացել և մշակվել են գլխաձևերի (mainframe) և մինիների համար, հաճախ բեռնվում էին ROM֊ից և հայտնի էին մոնիտոր անունով։ Առաջին նշանավոր սկավառակային ՕՀ֊ը CP/M-ն է, որը օգտագործվում էր շատ միկրոհամակարգիչների կողմից և որը շատ մոտ էր Microsoft-ի MS-DOS-ին․ վերջինս լայնորեն հայտնի դարձավ որպես IBM Personal Computer-ի համար աշխատող ՕՀ։ 1980֊ականներին Apple Computer Inc. (այժմ ՝ Apple Inc.) թողարկեց իր հայտնի Apple II միկրոհամակարգիչների ընտանիքը՝ ներկայացնելով Apple Mackintosh համակարգիչը Mac OS-ի վրա՝ նորարարական գրաֆիկակական օգտագործողի ներտարածքով (graphical user interface-GUI)։

## Օպերացիոն համակարգի տեսակներ

### Յունիքս և Յունիքսանման օպերացիոն համակարգեր

Յունիքսը նախապես գրվել է ասեմբլեր լեզվով։ Կեն Թոմսոնը, ելնելով MULTICS նախագծում իր փորձառությունից, գրեց B-ն, որը հիմնականում հիմնված էր BCPL-ի վրա։ B-ն փոխարինվեց C-ով, և Յունիքսը դարձավ փոխկապակցված օպերացիոն համակարգերի մի մեծ, համալիր ընտանիք։ Յունիքս ընտանիքը օպերացիոն համակարգերի զանազան խումբ է, որն ունի մի քանի ենթակարգեր՝ ներառյալ System V-ն, BSD-ն, և Լինուքսը։ «Յունիքս» անվանումը Open Group -ի ապրանքանշանն է, որը երաշխավորում է դրա օգտագործումը ցանկացած օպերացիոն համակարգի հետ, որոնք համապատասխանում են իրենց սահմանմանը։ Այս ընտանիքը հիմանկանում օգտագործվում է դիմելու համար օպերացիոն համակարգերի այն մեծ համակարգին, որը նմանվում է օրիգինալ Յունիքսին։

Յունիքս համակարգերն օգտագործվում են բազմաթիվ ճարտարապետական սարքավորումներում։ Դրանք օգտագործվում են աշխատանքային սերվերներում, ինչպես նաև գիտական և ինժեներական աշխատակայաններում։ Ազատ Յունիքսի տարբերակները, ինչպես Լինուքսը և BSD-ը, հայտնի են այս բնագավառներում։ Յունիքսի չորս օպերացիոն համակարգեր են վավերացվել Open Group-ի կողմից (HP's HP-UX և IBM's AIX)։ Երկուսն էլ օրիգինալ System V Յունիքսի ժառանգներն են և ձևավորված են աշխատելու միայն իրենց վաճառողների սարքավորումներում։ Ի հակադրություն դրան՝ Sun Microsystems's Solaris Operating System-ը կարող է աշխատել մի քանի սարքավորումներ վրա՝ ներառյալ x86 և Sparc սերվերները, և PC-ները։ Apple macOS-ը, որը փոխարինել է Apple-ի ավելի վաղ macOS-ին, խառնածին է՝ հիմնված BSD տարբերակի վրա, որն ստացվել էր NeXTSTEP-ից, Mach-ից, և FreeBSD-ից։ Յունիքսի փոխգործունակությունը հայտնաբերվեց, երբ ստեղծվեց POSIX ստանդարտը։ POSIX ստանդարտը կարող է օգտագործվել ցանկացած օպերացիոն համակարգում, չնայած այն ստեղծվել է Յունիքսի բազմաթիվ տարբերակների համար։

### BSD և նրա նախատեսակներ

World Wide Web֊ի համար առաջին սերվերը աշխատել է NeXTSTEP֊ի վրա՝ հիմված BS֊ի վրա։ Unix ընտանիքի ենթաընտանիք է Berkeley Software Distribution֊ը, որը ներառում է FreeBSD, NetBSD, և OpenBSD։ Այս օպերացիոն համակարգերը հիմնականում գտնվում են վեբսերվերներում, չնայած դրանք նաև կարող են անձնական համակարգիչների ՕՀ֊ի դեր կատարել։ Համացանցը իր գոյության համար մեծամասաբ պարտական է BSD֊ի գոյությանը, քանի որ համացանցին միանալու մի շարք հրամաններ՝ ինֆորմացիա ուղարկելու և ստանալու, մշակվում և իրագործվում են BSD-ում։

1974֊ին Կալիֆորնիայի Բերքելեյ համալսարանը տեղադրեց իր առաջին UNIX համակարգը։ Ժամանակի ընթացքում համալսարանում սովորող ուսանողները և անձնակազմը սկսեցին բարելավել այն՝ ավելացնելով նոր ծրագրեր, ինչպիսին տեքստային խմբագրիչներն են։ Երբ Բերքելին 1978֊ին ստացավ իր նոր VAX համակարգիչները, որոնց վրա տեղադրված էր UNIX, դպրոցի ավարտականները ավելի շատ փոփոխեցին այն, որպեսզի կարողանան ինչքան հնարավոր է շատ առավելություններ ստանալ։ ԱՄՆ պաշտպանության ստորաբաժանման Defense Advanced Research Projects Agency֊ն հետաքրքրություն ցուցաբերեց և որոշեց ֆինանսավորել ծրագիրը։ Շատ դպրոցներ, կազմակերպություններ և անգամ երկրի ղեկավարությունը ուշադրություն դարձրին և սկսեցին օգտագործել UNIX-ի՝ Բերքելեի տարբերակը AT&T֊ի պաշտոնական տարբերակի փոխարեն։

Սթիվ Ջոբսը 1985 թ․֊ին՝ Apple Inc. ընկերությունը լքելուց հետո, հիմնադրեց NeXT Inc.֊ը՝ մի կազմակերպությունը, որը նախագծում էր բարձրորակ համակարգիչներ, որոնք աշխատում էին BSD֊երի վրա և կոչվում էին NeXTSTEP. Այս համակարգիչներից մեկը օգտագործվել է Թիմ Բերներս֊Լիի կողմից որպես համաշխարհային սարդոստայն ստեղծող առաջին վեբսերվեր։

### macOS

macOS֊ը բաց միջուկով գրաֆիկական օպերացիոն համակարգերի շարք է, որը ստեղծվել, զարգացվել և շուկայում է հայտնվել Apple Inc.֊ի կողմից։ macOS ֊ը 1984֊ից Apple֊ի հիմնական օպերացիոն համակարգ համարվող դասական Mac OS֊ի փոխարինողն էր։ Հակառակ իր նախորդների՝ macOS֊ը UNIX օպերացիոն համակարգ է՝ կառուցված NeXT֊ում նախագծված տեխնոլոգիաների վրա 1980֊ականների երրորդ կեսին։ Այս օպերացիոն համակարգը առաջին անգամ թողարկվել է 1999 թվականին որպես Mac OS X Server 1.0, որին հաջորդում է 2001-ի ապրիլին թողարկված օգտագործողի տարբերակը՝ Mac OS X v10.0 "Cheetah"։ Դրանից հետո macOS֊ի 6 հզոր օգտագործողի և սերվերի թողարկներ են եղել, իսկ երկուսը միացել են OS X 10.7 "Lion"֊ի մեջ։

Նախքան macOS֊ին միանալը՝ սերվերային թողարկը՝ macOS Server֊ը, ճարտարապետորեն նույնական էր իր՝ աշխատասեղանի (desctop) գործընկերոջը և սովորաբար աշխատում էր Apple-ի Macintosh֊ի սերվերի վրա։ macOS Server֊ը ներառում էր խմբային աշխատանքի կազմակերպում և ադմինիստրացիոն ծրագրային գործիքներ, որ ցանցային գլխավոր ծառայություններին մատակարարում էին մուտքի պարզեցված թույլտվություն։ Mac OS X v10.7 Lion֊ի հետ Mac OS X ֊ի բոլոր սերվերային կողմերը հարմարեցվել են օգտագործողի տարբերակին և արտադրանքը վերաբրենդավորվել է որպես «OS X»։ Սերվերային գործիքները հիմա տրամադրվում են հավելվածի տեսքով։

### Լինուքս

Լինուքսի միջուկը ստեղծվել է 1991 թվականին Լինուս Թորվալդսի ծրագրով, երբ նա Ֆինլանդիայում համալսարանի ուսանող էր։ Նա տեղադրել էր իր նախագծի մասին տեղեկատվություն տեղեկատվական ոլորտի ուսանողների և ծրագրավորողների համար նախատեսված լրախմբում և ստացավ անհրաժեշտ աջակցությունն ու օգնությունը կամավորների կողմից, ովքեր հաջողեցին ամբողջական ու ֆունկցիոնալ միջուկ ստեղծելու գործում։

Լինուքսը UNIX-ի նման է, բայց նախագծվել է առանց Unix կոդի՝ հակառակ BSD-ի և նրա տարբերակների։ Իր բաց կառուցվածքի շնորհիվ Linux kernel ռեժիմը հասանելի էր ուսանողների և փոփոխությունների համար, ինչի արդյունքում այն հասավ համակարգչային մեքենաների վրա օգտագործվող լայն ցանց՝ սկսած գերհամակարգիչներից (Supercomputers) մինչև խելացույցներ (Smart-watch)։ Չնայած հաշվարկները ցույց են տալիս, Linux֊ի օգտագործելիությունը 1.82 տոկոս է աշխատասեղանային բոլոր անձնական համակարգիչների վրա, այն լայնորեն ընդունված է սերվերներում և ներկառուցված համակարգերում, ինչպիսին բջջային հեռախոսն է։ Լինուքսը դուրս մղեց Unix֊ին բազմաթիվ հարթակներում և օգտագործվում է շատ գերհամակարգիչներում, ներառյալ առաջին 385֊ը։ Linux֊ի միջուկն օգտագործվում է այնպիսի հայտնի կազմակերպություններում, ինչպիսիք են Red Hat֊ը, Debian֊ը, Ubuntu֊ն, Linux Mint֊ը, Google֊ի Android֊ը, Chrome OS֊ը և Chromium OS֊ը։

### Microsoft Windows

Microsoft Windows֊ը Մայքրոսոֆթի սեփական օպերացիոն համակարգերի ընտանիքն է, որը հիմնականում նպատակաուղղված է Intel֊ի ճարտարապետության վրա հիմնված համակարգիչների համար։ Հաշվարկված է, որ այն ունի 88.9 տոկոս բացարձակ օգտագործելիություն համացանցին միացած համակարգիչների հաշվարկով։ Վերջին տարբերակը Windows 10֊ն է։ 2011֊ին Windows 7֊ը փոխարինեց Windows XP֊ին որպես ամենաշատ օգտագործվող տարբերակ։ Microsoft Windows֊ի առաջին թողարկը 1985 թվականին էր։ 1995֊ին թողարկվեց Windows 95֊ը, որը որպես bootstrap օգտագործում էր միայն MS-DOS։

Windows֊ի սերվերային թողարկումները լայնորեն կիրառվում են։ Վերջին տարիներին Microsoft֊ը մեծացրել է ներդրումները, որպեսզի Windows֊ը օգտագործվի որպես սերվերային օպերացիոն համակարգ։ Այնուամենայնիվ, Windows֊ի օգտագործելիությունը սերվերների վրա այնքան էլ մեծ չէ, որքան անձնական համակարգիչները վրա, քանի որ այն մրցում է Linux ֊ի և BSD֊ի հետ սերվերային շուկայում։

ReactOS֊ը Windows֊ի այլընտրանքային օպերացիոն համակարգ է, որը զարգացվում է Windows֊ի սկզբունքներով՝ առանց օգտագործելու Microsoft֊ի որևէ կոդ։

### Այլ

Շատ օպերացիոն համակարգեր են եղել, որ ինչ֊որ ժամանակ կարևոր դեր են ունեցել, բայց հիմա կորցրել են իրենց դիրքերը, ինչպիսիք են AmigaOS֊ը, OS/2֊ը, դասական Mac OS֊ը, BeOS ֊ը, XTS-300 ֊ը, RISC OS ֊ը, MorphOS֊ը, Haiku֊ն, BareMetal֊ը and FreeMint֊ը։ Սրանցից որոշները դեռևս օգտագործվում են առավել փոքր շուկաներում և շարունակում են զարգացվել որպես փոքր հարթակներում օգտագործվող համայնքների ու հավելվածների համար օգտագործվող համակարգեր։ OpenVMS֊ն, որն առավել հայտնի է DEC անունով, դեռևս ակտիվ զարգացման փուլում է գտնվում Հյուլեթ Փաքարդի կողմից։ Սակայն այլ օպերացիոն համակարգեր օգտագործվում են միայն կրթական հաստատություններում օպերացիոն համակարգերի կրթությունն իրականացնելիս կամ հետազոտությունների համար։ Համակարգի տիպիկ օրինակ, որ իրականացնում է երկու դերերն էլ, MINIX֊ն է, մինչդեռ, օրինակ, Singularity ֊ն օգտագործվում է զուտ հետազոտական նպատակներով։

Այլ օպերացիոն համակարգեր ձախողել են շուկայում հայտնվելու գործում, բայց բոլորն էլ ինչ֊որ նորարարություն են բերել իրենց հետ, ինչը ազդեցություն է թողել հիմնական օպերացիոն համակարգերի վրա։

## Հիմնամասեր

Օպերացիոն համակարգի հիմնամասերը ստեղծվել են, որպեսզի համակարգչի տարբեր մասերը կարողանան աշխատեցնել միասին։ Օգտագործողի բոլոր ծրագրերը անցնում են օպերացիոն համակարգով, որպեսզի որոշվի, թե որ սարքի հետ է աշխատելու, լինի դա պարզագույն մկնիկ կամ ստեղաշար, թե ավելի բարդ համացանցային բաղադրիչ։

### Միջուկ

Խտածրագրերի (firmware) և սարքավարների օգնությամբ միջուկը ապահովում է համակարգչի սարքերի կառավարման հիմնական մակարդակը։ Այն հասցնում է հիշողության մուտքի թույլտվություն RAM֊ի ծրագրերի համար, այն որոշում է, թե որ ծրագիրը որ սարքին դիմելիություն ունենա, այն հաստատում կամ չեղարկում է CPU֊ի օպերացիոն վիճակները անընդմեջ օպտիմալ գործողությունների համար, և այն կազմակերպում է ինֆորմացիան երկարաժամկետ հիշողության համար այնպիսի սարքերի վրա, ինչպիսին սկավառակներն են, լարերը, կրիչները և այլն։

#### Ծրագրի իրականացում

Օպերացիոն համակարգը ապահովում է միջերես ծրագրային հավելվածների և համակարգչային սարքերի միջև այնպես, որ ծրագրային հավելվածը կարող է կապվել սարքի հետ՝ «հնազանդվելով» օպերացիոն համակարգի կողմից սահմանված կանոններին և պրոցեդուրաներին։

Օպերացիոն համակարգը նաև ծառայությունների շղթա է, որը հեշտացնում է ծրագրերի զարգացումը և իրականացումը։ Ծրագրի իրականացումը ներառում է օպերացիոն համակարգի կողմից պրոցեսի ստեղծում, որը նշանակում է ազատ հիշողության և այլ ռեսուրսների հատկացում, նախապատվություններ է սահմանում բազմախնդրային մեխանիզմներում գործող պրոցեսների համար, բեռնում է բինար կոդը հիշողության մեջ, և նախաձեռնում է այն ծրագրի իրականացումը, որը գործում է օգտագործողի և սարքերի հետ։

#### Ընդհատումներ

Ընդհատումները էական են օպերացիոն համակարգերի համար, քանի որ նրա համար ապահովում են արտաքին աշխարհի հետ շփվելու արդյունավետ ճանապարհ։ Սրան այլընտրանք կարող է լինել այն, որ օպերացիոն համակարգը ներածման տարբեր աղբյուրներ գտնի գործողություններ պահանջող իրադարձությունների համար։ Սա հանդիպում է առավել հին համակարգերում, որոնք շատ փոքր պահունակ (stack) ունեն ՝ 50 կամ 60 բայթանի, սակայն անսովոր է մեծ պահունակներ ունեցող ժամանակակից համակարգերում։ Ընդհատումների վրա հիմնված ծրագրավորումը անմիջականորեն սատարվում է ներկայիս շատ CPU֊երի կողմից։ Ընդհատումները ապահովում են համակարգչին տեղական գրանցման ինֆորմացիան ավտոմատ պահպանելու և համապատասխան իրադարձություններին համապատասխանող կոդերը աշխատեցնելու հարցում։ Անգամ ամենապարզ համակարգիչները սատարում են սարքային ընդհատումները և թույլ են տալիս ծրագրավորողին հստակեցնել կոդը, որը պետք է աշխատի համապատասխան իրադարձությունից հետո։ Երբ ընդհատումը ստացվում է, համակարգչի սարքախումբը (hardware) ավտոմատ կասեցնում է ծրագիրը, որը այդ պահին աշխատում է, պահում է դրա կարգավիճակը և աշխատեցնում է ընդհատման հետ կապված համակարգչային կոդը։ Սա նման է այն իրավիճակին, երբ գրքի մեջ էջանշան ես թողնում հեռախոսի զանգին պատասխանելու համար։ Ժամանակակից օպերացիոն համակարգերում ընդհատումները կարգավորվում են օպերացիոն համակարգի միջուկում։ Ընդհատումներ կարող են առաջանալ կա՛մ համակարգչի սարքախմբից, կա՛մ աշխատող ծրագրից։ Երբ որևէ սարք առաջացնում է ընդհատում, օպերացիոն համակարգի միջուկը որոշում է՝ ինչպես վարվել այդ իրավիճակում՝ հիմնականում աշխատեցնելով ինչ֊որ մշակված կոդ։ Աշխատեցվող կոդի քանակը կախված է ընդհատման նախապատվությունից։ Սարքային ընդհատումների մշակումը մի առաջադրանք է, որը սովորաբար փոխանցվում է սարքավար (device driver) կոչվող ծրագրախմբի, որը կարող է լինել օպերացիոն համակարգի միջուկի, մեկ այլ ծրագրի կամ էլ միաժամանակ երկուսի մաս։ Սարքավարները այնուհետև կարող են ինֆորմացիան փոխանցել աշխատող ծրագրին տարբեր միջոցներով։ Ծրագիրը կարող է նաև ընդհատում առաջացնել օպերացիոն համակարգի համար։ Եթե ծրագիրը ցանկանում է մուտք ունենալ օրինակ սարքախումբ, այն ընդհատում է օպերացիոն համակարգի միջուկը, ինչի հետևանքով ղեկավարությունը վերադարձվում է միջուկին։ Միջուկը այնուհետև մշակում է հարցումը։ Եթե ծրագիրը լրացուցիչ ռեսուրսներ է պահանջում, ինչպիսին հիշողությունն է, այն «ստիպում» է մշակմանը միջուկի ուշադրությունը հրավիրել։

#### Ռեժիմներ

Ժամանակակից միկրոպրոցեսորները (CPU or MPU) սատարում են գործողությունների մի շարք ռեժիմներ։ CPU֊երը առաջարկում են առնվազն երկու ռեժիմներ՝ օգտոգործողի ռեժիմ և վերահսկողի կամ միջուկի ռեժիմ։ Վերահսկողի ռեժիմում թույլատրվում է անսահմանափակ մուտքի հնարավորություն դեպի սարքի բոլոր ռեսուրսներ, այդ թվում՝ բոլոր MPU կառույցներ։ Օգտագործողի ռեժիմում սահմանափակում է դրվում կառույցների օգտագործման վրա և սովորաբար արգելվում է անմիջական մուտքը դեպի մեքենայի ռեսուրսներ։ CPU֊երը կարող են ունենալ օգտագործողի ռեժիմին համանման այլ ռեժիմներ ևս, ինչպիսին վիրտուալ ռեժիմն է։ Համակարգիչը միացնելիս համակարգը սկսում է աշխատանքը միջուկի ռեժիմում։ Հենց որ օպերացիոն համակարգի միջուկը բեռնվում է կամ սկսում է աշխատանքը, օգտագործողի և վերահսկողի ռեժիմների միջև սահմանները հաստատվում են։ Վերահսկողի ռեժիմը օգտագործվում է միջուկի կողմից ցածր մակարդակի առաջադրանքների համար, որոնք սարքախմբին անսահմանափակ քանակով դիմելու կարիք ունեն, ինչպիսին է հիշողությանը դիմելու ղեկավարումը։ Օգտագործողի ռեժիմը, հակառակ վերահսկողի ռեժիմի, օգտագործվում է գրեթե մնացած ամեն ինչի համար։ Հավելվածային ծրագրերը, ինչպիսիք են բառամշակող ծրագրերը, աշխատում են օգտագործողի ռեժիմում և կարող են դիմել մեքենայի ռեսուրսներին միայն ղեկավարությունը միջուկին հանձնելու պարագայում, գործընթաց, որը հանգեցնում է ռեժիմի փոփոխության։ Սովորաբար ղեկավարության հանձնումը միջուկին կատարվում է ծրագրային ընդհատման կառույց աշխատեցնելով, ինչպիսին Motorola 68000 TRAP կառույցն է։ Ծրագրային ընդհատումը առաջացնում է օգտագործողի ռեժիմից վերահսկողի ռեժիմ անցմանը, և սկսում է աշխատել կոդ, որը թույլ է տալիս միջուկին ղեկավարել։ Օգտագործողի ռեժիմում ծրագրերը սովորաբար միկրոպրոցեսորների սահմանափակ քանակով կառույցների դիմելու հնարավորություններ ունեն և հիմնականում չեն կարող աշխատեցնել հրամաններ, որոնք կարող են առաջացնել համակարգի գործունեության խախտումներ։ Վերահսկողի ռեժիմում կառույցների իրականացման հրամանները հիմնականում հանված են, ինչը թույլ է տալիս միջուկին մեքենայի բոլոր ռեսուրսներին անսահմանակփակ դիմելու հնարավորություն ունենալ։

«Օգտագործողի ռեսուրս» ասելով հիմնականում հասկանում ենք մեկ կամ մի քանի CPU ռեգիստրներ, որոնք պարունակում են ինֆորմացիա, որ աշխատող ծրագրին չի թույլատրվում փոխել։ Այս ռեսուրսները փոխելու փորձերը հիմնականում առաջացնում են ռեժիմի փոփոխություն, իսկ միջուկի ռեժիմում օպերացիոն համակարգը կարող է գործ ունենալ այնպիսի գործողությունների հետ, ինչպիսին է, օրինակ, ծրագրին «սպանելը»։

#### Հիշողության կազմակերպում

Մյուս գործողությունների հետ բազմածրագրավորվող օպերացիոն համակարգի միջուկը պատասխանատու է ամբողջ համակարգի համար օգտագործվող հիշողության կազմակերպման համար։ Սա ապահովում է, որ ծրագիրը մուտք չունենա այն հիշողության տիրույթ, որը արդեն օգտագործվում է այլ ծրագրի կողմից։ Յուրաքանչյուր ծրագիր պետք է ունենա հիշողության անկախ տիրույթ։ Հիշողության համագործակցային կազմակերպումը, որն օգտագործվում էր շատ հին օպերացիոն համակարգերում, կազմակերպում էր այնպես, որ ծրագրերը իրենց կամքով են օգտագործում միջուկի հիշողությունը և չէին կարող մեծացնել իրենց հատկացված հիշողության չափը։ Հիշողության կազմակերպման այս մեխանիզմը երբեք այլևս չի օգտագործվել, քանի որ ծրագրերը հաճախ պարունակում են սխալներ, որոնք կարող են պատճառ դառնալ, որ այն մեծացնի իրեն հատկացված հիշողության չափը։ Եթե ծրագիրը ձախողվում է, այն կարող է առաջացնել խնդիր, որ մեկ կամ մի քանի այլ ծրագրերի օգտագործած հիշողությունը վնասվի կամ վերագրվի։ Վնասակար ծրագրերն ու վիրուսները կարող են դիտավորյալ փոխել այլ ծրագրի հիշողությունը կամ էլ կարող են վնասել հենց օպերացիոն համակարգը։ Հիշողության կազմակերպման համագործակցային եղանակի դեպքում բավական է մեկ ծրագիր վատ աշխատի և համակարգը կվնասվի։ Հիշողության պահպանումը հնարավորություն է տալիս միջուկին սահմանափակել պրոցեսների՝ համակարգչի հիշողության դիմելըու հնարավորությունը։ Հիշողության պահպանման տարբեր մեթոդներ գոյություն ունեն՝ ներառյալ հիշողության սեգմենտացումը և էջային մեխանիզմը։ Բոլոր մեթոդները պահանջում են սարքախմբի որոշ մակարդակի աջակցություն (ինչպես 80286 MMU֊ն է), ինչը ոչ բոլոր համակարգիչներում կա։ Թե՛ սեգմենտացիայի, թե՛ էջային մեխանիզմի ժամանակ, պաշտպանված ռեժիմի հատուկ ռեգիստրներ հստակեցնում են CPU֊ի համար, թե աշխատող ծրագրին ինչ հիշողության հասցե պետք է տրամադրի։ Այլ հիշողության հասցեների դիմելու փորձերը առաջացնում են ընդհատում, որի հետևանքով CPU֊ն նորից մտնում է վերահսկողի ռեժիմ։ Այս երևույթը կոչվում է Seg-V, և քանի որ շատ դժվար է այս իրավիճակում որևէ իմաստալից արդյունք փոխանցել, միջուկը հիմնականում սպանում է սխալ ունեցող ծրագիրը և սխալի մասին ինֆորմացիա է հաղորդում։ Windows versions 3.1֊ը ուներ հիշողության պահպանման ինչ֊որ մակարդակ, բայց ծրագրերը կարող էին հեշտությամբ շրջանցել այն օգտագործելու կարիքը։

#### Վիրտուալ հիշողություն

Վիրտուալ հիշողության հասցեավորման օգտագործումը (ինչպիսին էջադրումն ու սեգմենտացիան են) նշանակում է, որ միջուկը կարող է ընտրել՝ որ ծրագիրը ինչ հիշողություն է օգտագործելու՝ թույլ տալով օպերացիոն համակարգին օգտագործել հիշողության նույն տիրույթները տարբեր առաջադրանքների համար։ Եթե ծրագիրը փորձում է դիմել հիշողության հասցեի,որը թեև իրեն է հատկացված եղել, բայց այդ պահին իր համար հասանելի տիրույթների ցանկում չէ, միջուկը կընդհատվի նույն ձևով, ինչ այն դեպքում, երբ ծրագիրը կարիք ուներ հատկացված հիշողությունը մեծացնելու։ UNIX օպերացիոն համակարգի տակ աշխատող ծրագրերում այս տիպի ընդհատումները ընդունվում են որպես էջի սխալ։ Երբ միջուկը հանդիպում է էջի սխալի, հիմնականում կարգավորում է այն ծրագրի վիրտուալ հիշողության ցանկը, որում առաջացել է սխալը՝ նրան տրամադրելով իր ցանկացած հիշողությանը դիմելու թույլտվություն։ Ժամանակակից օպերացիոն համակարգերում հիշողությունը, որին դիմում շատ քիչ է լինում, կարող է ժամանակավորապես պահվել սկավառակի վրա կամ այլ տեղ, որպեսզի այլ ծրագրերի համար հասանելի ազատ տիրույթներ առաջանան։ Սա կոչվում է փոխանակում (swapping)՝ որպես հիշողության տիրույթ, որ կարող է օգտագործվել տարբեր ծրագրերի կողմից։ Վիրտուալ հիշողությունը ծրագրավորողի կամ օգտագործողի համար տպավորություն է տեղծում, թե համակարգիչը շատ ավելի շատ RAM հիշողություն ունի, քան այն ունի իրականում։

#### Բազմախնդրություն

Բազմախնդրությունը այն դեպքն է, երբ մի քանի անկախ համակարգչային ծրագրեր նույն համակարգչի վրա աշխատում են՝ տպավորություն ստեղծելով, որ այն խնդիրները միաժամանակ է կատարում։ Քանի որ շատ համակարգիչներ միայն մեկ կամ երկու ծրագիր կարող են աշխատեցնել միաժամանակ, սա հիմնականում արվում է ժամանակաբաշխման միջոցով, ինչը նշանակում է, որ յուրաքանչյուր ծրագիր օգտագործում է ինչ֊որ ժամանակ ավարտին հասնելու համար։ Օպերացիոն համակարգի միջուկը ունի կազմակերպող ծրագիր, որը որոշում է, թե յուրաքանչյուր ծրագիր աշխատելիս ինչքան ժամանակ պետք է ծախսի, և ինչ հերթականությամբ են խնդիրները ղեկավարությունը փոխանցելու միմյանց։ Ղեկավարությունը հանձնվում է պրոցեսին միջուկի կողմից, ինչը հնարավորություն է տալիս ծրագրին CPU֊ի և հիշողության մուտքի հնարավորություն ունենալ։ Այնուհետև ղեկավարությունը ինչ֊որ մեխանիզմով նորից հանձնվում է միջուկին, որպեսզի հաջորդ ծրագիրը հնարավորություն ստանա CPU֊ն օգտագործելու։ Ղեկավարությունը փոխանցելու երևույթը կոչվում է համատեքստի փոխարինում (context switch)։

Բազմախնդրության վաղ մոդելը, որը ղեկավարում էր հիշողության բաշխումը, կոչվում էր համագործակցային բազմախնդրություն։ Այս դեպքում երբ միջուկը ղեկավարությունը հանձնում էր ծրագրին, այն կարող էր աշխատել այնքան, ինչքան ուզում էր, մինչև ղեկավարությունը կհանձներ միջուկին։ Սա նշանակում է, որ վնասակար և թերի ծրագրերը ոչ միայն կարող են խանգարել մյուս ծրագրերին օգտագործել CPU֊ն, այլև հնարավոր է, որ ամբողջ համակարգը կախվի, եթե ծրագրում անվերջ ցիկլ լինի։

Ներկայումս օգտագործվող նախապատվային բազմախնդրության գաղափարախոսությունն այն է, որ յուրաքանչյուր ծրագիր ունի CPU֊ի հետ աշխատելու՝ իրեն հատկացված հստակ ժամանակը։ Սա ապահովում է, որ բոլոր ծրագրերը CPU֊ն առանց ընդհատվելու օգտագործելու սահմանափակ ժամանակ ունենան։ Այս մեխանիզմը ապահովելու համար ժամանակակից օպերացիոն համակարգի միջուկը օգտագործում է ժամանակային ընդհատումները։ Պաշտպանված ռեժիմում միջուկում պահվում է ծրագրերի աշխատաժամանակը։ Երբ ժամանակն ավարտվում է, վերադարձ է տեղի ունենում դեպի վերահսկողի ռեժիմ։

Այն օպերացիոն համակարգերի համար, որոնք միայն մեկ օգտագործող ունեն, շատ հարմար է օգտագործել համագործակցային բազմախնդրություն։ AmigaOS֊ը բացառություն է, քանի որ իր առաջին իսկ տարբերակից սկսած օգտագործում է նախապատվային բազմախնդրություն։ Windows NT֊ն Microsoft Windows֊ի առաջին տարբերակն է, որը պարտադրում էր նախապատվային բազմախնդրություն, բայց այն նախատեսված էր մասնագիտական օգտագործման համար և չհասավ տնային օգտագործման համակարգիչների շուկա, մինչև չստեղծվեց Windows XP֊ն։

#### Սկավառակներին դիմելիությունը և ֆայլային համակարգեր

Սկավառակներում եղած ինֆորմացիային դիմելու կարողությունը բոլոր օպերացիոն համակարգերի կարևորագույն հատկանիշներից է։ Համակարգիչները սկավառակների վրա ինֆորմացիա են պահում ֆայլերի օգնությամբ, որոնք այնպես են կառուցված, որ արագ, հուսալի դիմելիություն և ազատ տիրույթների ճիշտ օգտագործելիություն ապահովեն։ Այն հատուկ մեխանիզմը, որով ֆայլերը պահվում են սկավառակների վրա, կոչվում է ֆայլային համակարգ։ Ֆայլերը ունեն անուն և ատրիբուտներ։ Վաղ շրջանի օպերացիոն համակարգերը հիմնականում օգտագործում էին մի տեսակի սկավառակ և միայն մեկ ֆայլային համակարգ։ Դրանք ունեին սահմանափակ կարողություններ և քիչ արագություն։ Այս սահմանափակումները թերություններ էին առաջացնում նաև օպերացիոն համակարգի համար։

Չնայած շատ օպերացիոն համակարգեր սատարում են հիշողության համակարգին դիմելու սահմանափակ քանակով ընտրանքներ, UNIX֊ը և Linux֊ը, օրինակ, սատարում են վիրտուալ ֆայլային համակարգ (VFS) կոչվող տեխնոլոգիան։ Օպերացիոն համակարգերը, ինչպիսին UNIX֊ն է, սատարում են պահոստավորման սարքերի լայն ընտրանի անկախ իրենց կառուցվածքից և ֆայլային համակարգերից։ Սա թույլ է տալիս,,որ ծրագրերը կարողանան դիմել սարքերին՝ առանց դրանց մասին տեղեկություն ունենալու։ VFS֊ն թույլ է տալիս օպերացիոն համակարգին, որ ծրագրերին անսահմանափակ քանակով սարքերի հետ միանալու թույլտվություն տա հատուկ սարքավարների և ֆայլային համակարգավարների միջոցով։

Միացված պահեստավորման սարքը, ինչպիսին կոշտ սկավառակն է, միացվում է սարքավարի միջոցով։ Սարքավարը հասկանում է սկավառակի հատուկ լեզուն և կարող է թարգմանել այդ լեզունստանդարտ լեզվի, որը օգտագործվում է օպերացիոն համակարգերի կողմից բոլոր կոշտ սկավառակներին միանալու համար։

Երբ միջուկը ունի համապատասխան սարքավար ճիշտ տեղում, այն կարող է հասանելիություն ունենալ կոշտ սկավառակին անգամ անավարտ ձևաչափով, որը կարող է ունենալ մեկ կամ մի քանի ֆայլային համակարգեր։ Ֆայլային համակարգավարը օգտագործվում է ֆայլային համակարգի հրամանները ստանդարտ լեզվի հրամանների թարգմանելու համար, որով օպերացիոն համակարգը կարող է «խոսել» բոլոր ֆայլային համակարգերի հետ։ Ծրագրերը այնուհետ կարող են գործ ունենալ համապատասխան ֆայլանուն ունեցող ֆայլային համակարգերի հետ և պանակների հետ, որոնք հիերարխիկ կառուցվածքում կան։ Նրանք կարող են ստեղծել, ջնջել, բացել կամ փակել ֆայլեր, ինչպես նաև հավաքել դրանց մասին զանազան տեղեկություններ, ներառյալ դիմելիության թույտվությունը, չափերը, ազատ տիրույթները և ստեղծման ու փոփոխությունների ամսաթվերը։

Ֆայլային համակարգերի միջև զանազան տարբերություններ կան, և դժվար է բոլորին միաժամանակ սատարելը։ Ֆայլանունների մեջ թույլատրվող սիմվոլները, մեծատառերի և փոքրատառերի տարբերությունները և տարբեր ֆայլային ատրիբուտների առկայությունը դժվար առաջադրանք է դարձնում բոլոր ֆայլային համակարգերի համար միակ միջերեսի իրականացումը։ Օպերացիոն համակարգերը առաջարկում են օգտագործել հատուկ իրենց համար նախատեսված ֆայլային համակարգեր, օրինակ՝ NTFS֊ը Windows֊ում և ext3 ֊ն ու ReiserFS֊ը Linux֊ում։

Ֆայլային համակարգերին սատարելը չափազանց տարբերվում է ժամանակակից օպերացիոն համակարգերում, չնայած կան մի քանի ընդհանուր ֆայլային համակարգեր, որ գրեթե բոլոր օպերացիոն համակարգերը ներառում են։ Օպերացիոն համակարգերը տարբերվում են ֆայլային համակարգերին սատարելով և այն սկավառակի ձևաչափերով, որի վրա տեղադրված են։ Windows֊ում յուրաքանչյուր ֆայլային համակարգ սովորաբար սահմանափակվում է, օրինակ՝ CD֊երը պետք է օգտագործեն ISO 9660 կամ UDF, իսկ ինչ վերաբերում է Windows Vista֊ին, NTFS֊ն միակ ֆայլային համակարգն է, որի վրա կարող է տեղադրվել օպերացիոն համակարգը։ Հնարավոր է տեղադրել Linux֊ը մի շարք ֆայլային համակարգերում։ Հակառակ այլ օպերացիոն համակարգերի՝ Linux֊ը և UNIX ֊ը թույլ են տալիս ցանկացած ֆայլային համակարգի օգտագործել անկախ այն բանից, թե ինչ մեդիայի վրա է պահված՝ կոշտ սկավառակի, սկավառակի (CD, DVD...), կրիչի, մինչև անգամ այլ ֆայլային համակարգում գտնվող ֆայլի։

#### Սարքավարներ

Սարքավարը համակարգչային հատուկ ծրագիր է, որը թույլ է տալիս կապվել սարքերի հետ։ Սովորաբար այն կազմված է միջերեսից, որը օգնում հաղորդակցվել սարքի հետ հատուկ համակարգչային կայանների կամ հաղորդակցման ենթահամակարգերի միջոցով, որոնց սարքախումբը միացված է` հրամաններ փոխանցելով և/ կամ ստանալով սարքի մասին տեղեկատվություն։ Այն սարքերից անկախ գործող համակարգչային հատուկ ծրագիր է։ Սարքավարների հիմնական կառուցվածքային յուրահատկությունը աբստրակցիան է։ Անգամ նույն դասի սարքերի մոդելները տարբեր են։ Նոր մոդելներ են թողարկվում, որոնք ապահովում են առավել վստահելի և լավ աշխատանք և այս նոր մոդելներն էլ հաճախ տարբեր կերպ են ղեկավարվում։ Սարքավարների հետագա գործառույթը օպերացիոն համակարգի ֆունկցիաների կանչերը սարքային հատուկ կանչերի թարգմանելն է։ Տեսականորեն նոր սարքը, որը ղեկավարվում է նոր կերպ, պետք է ճիշտ աշխատի, եթե հարմար ծրագրավարը հասանելի է։ նոր ծրագրավարը ապահովում է, որ սարքը աշխատի այնպես, ինչպես միշտ։

Մինչև Windows Vista֊ի և Linux 2.6֊ի բոլոր տարբերակներում ծրագրավարների իրականացումը համատեղ էր, այսինքն՝ եթե ծրագրավարը անվերջ ցիկլ էր ընկնում, համակարգը կախվում էր։ Այս օպերացիոն համակարգերի առավել վերջերս թողարկված տարբերակներում միջուկը կանգնեցնում է ծրագրավարին, որ խնդիրները տա, ապա առանձնանում է պրոցեսից, միչև սարքավարից համապատասխան արձագանք ստանա, կամ էլ նոր առաջադրանքներ է տալիս։

### Ցանց

Ներկայումս օպերացիոն համակարգերի մեծ մասը սատարում են շատ տարբեր ցանցային համաձայնությունների, սարքավորումների և դրանց օգտագործման համար նախատեսված հավելվածներին։ Սա նշանակում է, որ տարբեր օպերացիոն համակարգերով աշխատող համակարգիչները կարող են միացած լինել ընդհանուր ցանցին այնպիսի ռեսուրսներ կիսելու համար, ինչպիսին են հաշվառումը, ֆայլերը, տպիչները և սկաներները` օգտագործելով լարով կամ անլար կապ։ Ցանցերը հեշտությամբ համակարգչի օպերացիոն համակարգին թույլատրում են դիմել հեռավոր համակարգչի ռեսուրսներին՝ կատարելով նույն գործողությունները, որոնք կարող էր կատարել, եթե այդ ռեսուրսները անմիջական կապված լինեին տեղային համակարգչին։ Սա ներառում է ամեն ինչ՝ սկսած հասարակ կապից մինչև ֆայլերի ցանցային համակարգի օգտագործումը և նույնիսկ այլ համակարգչի գրաֆիկական և ձայնային սարքերը։ Որոշ ցանցային ծառայություններ թույլ են տալիս համակարգչի ռեսուրսների հասանելիությունը, ինչպես SSH-ը, որը ցանցային օգտագործողներին թույլատրում է ուղղակի մուտք ունենալ համակարգչի հրամայական տողի ծրագրային համակարգ։

Կլիենտ/սերվեր ցանցային մեխանիզմը թույլ է տալիս համակարգչում ունենալ կլիենտ կոչվող ծրագիր, որը ցանցի միջոցով կմիանա մեկ այլ համակարգչի՝ սերվերին։ Սերվերները ծառայություններ են առաջարկում այլ ցանցային համակարգիչներին և օգտագործողներին։ Այս ծառայությունները սովորաբար մատուցվում են պորտերի միջոցով։ Յուրաքանչյուր պորտի համարը սովորաբար կապվում է ամենաշատը մեկ գործող ծրագրի հետ, որը պատասխանատու է այդ պորտին պահանջներ ներկայացնելու համար։ Դաեմոնը, լինելով օգտագարծողների համար նախատեսված ծրագիր, կարող է իր հերթին մուտք գործել այդ համակարգչի տեղային սարքավորման ռեսուրսներ։

Բազմաթիվ օպերացիոն համակարգեր սատարում են վաճառողին հատուկ կամ բաց ցանցային համաձայնություններ, օրինակ՝ IBM համակարգի SNA-ն, Digital Equipment Corporation-ի կողմից թողարկվող համակարգերի DECnet-ը, Microsoft-ին հատուկ Windows-ի վերաբերյալ համաձայնությունները։ Որոշակի առաջադրանքներին հատուկ ֆայլերի հասանելիության որոշակի համաձայնութուններ կարող են ապահովվել NFS–ի միջոցով։ ESound կամ esd համաձայնությունները հեշտությամբ կարող են ընդլայնվել ամբողջ ցանցում, որպեսզի տեղային ծրագրերից ձայն ապահովի։

### Անվտանգություն

Համակարգչի անվտանգությունը կախված է մի շարք տեխնոլոգիաների ճիշտ աշխատելուց։ Ժամանակակից օպերացիոն համակարգը մի շարք ռեսուրսների դիմելիություն է թույլ տալիս, որոնք հասանելի են համակարգում աշխատող ծրագրին, և ցանցերի նման արտաքին սարքերին միջուկի միջոցով։

Օպերացիոն համակարգը պետք է կարողանա այն հարցումները, որոնք պետք է անցնեն, և նրանք, որոնք թույլտվություն չունեն։ Չնայած որոշ համակարգեր կարող են պարզապես տարբերել նախապատվային և ոչ նախապատվային հարցումները, համակարգերի հիմնական մասը ունեն հարցում անողի վերաբերյալ այնպիսի ինֆորմացիա, ինչպիսին օգտագործողի անունն է։ Որպեսզի հարցումը հաստատվի, պետք է վավերացման փուլ անցնի։ Հաճախ օգտագործողի անունն է պետք նշել, և յուրաքանչյուր անուն ունի իր գաղտնաբառը։ Վավերացման այլ մեթոդ կարող են լինել մագնիսական քարտերը կամ կենսաբանական ինֆորմացիան։ Որոշ դեպքերում, հատկապես ցանցերի հետ կապի հաստատման ժամանակ, ռեսուրսները կարող են հասանելի դառնալ առանց որևէ վավերացման։

Ներքին պաշտպանությունը կամ արդեն աշխատողի ծրագրից պաշտպանությունը հնարավոր է միայն այն դեպքում, երբ հնարավոր վնասակար հարցումները ընդհատումով ընկնեն օպերացիոն համակարգի միջուկ։ Եթե ծրագրերը անմիջականորեն կարող են սարքախմբին և ռեսուրսներին դիմել, ապա չեն կարող պաշտպանվել։

Արտաքին պաշտպանությունը ներառում է համակարգչից դուրս հարցումներ, ինչպիսիք կցված կոնսոլում մուտքանուն գրելն է կամ ինչ֊որ տիպի ցանցային կապերը։ Արտաքին հարցումները հաճախ անցկացվում են սարքավարներից դեպի օպերացիոն համակարգի միջուկ, որտեղ կարող են փոխանցվել հավելվածների կամ էլ անմիջապես դուրս բերվեն։

Օպերացիոն համակարգի պաշտպանությունը երկար ժամանակ անհանգստության պատճառ է եղել համակարգիչներում պահվող շատ զգայուն ինֆորմացիայի պատճառով թե՛ վաճառքային, թե՛ ռազմական առումով։ ԱՄՆ֊ի Պաշտպանության ղեկավարման հանձնաժողովը (DoD) ստեղծեց *Trusted Computer System Evaluation Criteria* (TCSEC)֊ն,որը արդյունավետ պաշտպանության գնահատման տարրական պահանջներ էր առաջադրում։ Օպերացիոն համակարգեր ստեղծողների համար սա հսկայական կարևորություն ուներ, որովհետև TCSEC֊ը օգտագործվում էր գնահատելու, դասակարգելու վստահելի օպերացիոն համակարգերը՝ հաշվի առնելով գործունեությունը, պարունակությունը և զգայուն կամ դասակարգված ինֆորմացիա որոնելը։

Ցանցային ծառայությունները ներառում են առաջարկներ, ինչպիսիք են ֆայլերի ընդհանուր օգտագործումը, տպագրական ծառայությունները, փոստային հաղորդագրությունները, վեբ կայքերը և ֆայլերի տեղափոխման համաձայնությունները։ Անվտանգության ապահովման առաջին գծում են սարքախմբերը։ Օպերացիոն համակարգի մակարդակով կան նաև ծրագրային պաշտպանության համակարգեր։

Ներքին անվտանգությունը հատկապես կարևոր է բազմաօգտագործման համակարգերի համար, քանի որ թույլ է տալիս համակարգի յուրաքանչյուր օգտագործողի ունենալ սեփական ֆայլերը, որ մյուսները չեն կարող վերցնել կամ կարդալ։

### Օգտագործողի միջերես

Ցանկացած համակարգիչ, որ պետք է ունենա անձնական օգտագործող, պահանջվում է, որ ունենա օգտագործողի միջերես։ Օգտագործողի միջերեսը սովորաբար համարվում է վահանակ և շատ կարևոր է, եթե մարդու ազդեցությունը սատարվում է։ Օգտագործողի միջերեսը նայում է ճանապարհի կառուցվածքին և ծառայությունների հարցում է ուղարկում օպերացիոն համակարգին, որոնք ձեռք կբերեն ինֆորմացիա ներածման սարքերից, ինչպիսին մկնիկը կամ ստեղնաշարն է, և հայցում է օպերացիոն համակարգից ծառայություններ, որպեսզի աշխատեցներ հուշումներ, կարգավիճակային հաղորդագրություններ։ Նույնը արտածական սարքերի համար, ինչպիսիք տեսամոնիտորը կամ տպիչն է։ Օգտագործողի միջերեսի երկու ամենահայտնի ձևերն են հրամանագծի միջերեսը, որտեղ համակարգչային հրամանները տպվում են տող առ տող, և օգտագործողի գրաֆիկական միջերեսը (GUI), որտեղ կա տեսողական միջավայր (առավել հաճախ՝ WIMP)։

Ժամանակակից համակարգերից շատերը սատարում են օգտագործողի գրաֆիկական միջերես, և շատ հաճախ այն ներառված է համակարգերում։ Որոշ համակարգերում, ինչպիսին classic Mac OS֊ի օրիգինալ իրականացումն է, GUI-ն միացված է միջուկին։

Չնայած տեխնիկապես օգտագործողի գրաֆիկական միջերեսը օպերացիոն համակարգի ծառայություն չէ, եթե օպերացիոն համակարգի միջուկը կարող է թույլ տալ GUI֊ին ավելի ուշադիր լինել՝ նրա արտածման ֆունկցիաների համատեքստի փոփոխությունների քանակը նվազեցնելով։ Մյուս օպերացիոն համակարգերը մոդուլային են, այսինքն՝ գրաֆիկական ենթահամակարգը օպերացիոն համակարից և միջուկից առանձին է։1980-ականներին UNIX֊ը, VMS֊ը և շատ այլ համակարգեր ունեին այս ձևով կառուցված օպերացիոն համակարգեր։ Linux֊ը and macOS֊ը ևս այսպես են կառուցված։ Microsoft Windows֊ի նոր թողարկումներից Windows Vista֊ի գրաֆիկական ենթահամակարգը հիմնականում օգտագործողի տարածքում է։ Windows 9x֊ը շատ քիչ տարբերություն ուներ միջերեսի և միջուկի միջև։

#### Օգտագործողի գրաֆիկական միջերես

Ժամանակակից օպերացիոն համակարգերից շատերը սատարում են օգտագործողի գրաֆիկական միջերես (GUI) և շատ հաճախ ներառում են այն։ Որոշ օպերացիոն համակարգերում GUI֊ն ներառված է միջուկում։

Շատ համակարգչային օպերացիոն համակարգեր թույլ են տալիս օգտագործողին տեղադրել կամ ստեղծել օգտագործողի ցանկացած միջերես։

X Window System֊ը GNOME֊ի կամ KDE Plasma 5֊ի հետ հաճախ տեղադրվող ծրագրերից է Unix֊ի կամ նրա նման համակարգերում։

Unix֊ի վրա հիմնված մի շարք GUI֊եր են ստեղծվել ժամանակի ընթացքում, որոնցից շատերը ծագում էին X11֊ից։

Օգտագործողի գրաֆիկական միջերեսը զարգացել է ժամանակի ընթացքում։ Օրինակ՝ Windows֊ը փոխում է իր՝ օգտագործողի միջեչեսը ամեն նոր տարբերակ թողարկելիս, իսկ Mac OS֊ի GUI֊ն կատարելապես փոխվեց 1999 թվականին՝ Mac OS X֊ը ներկայացնելուց հետո։

## Իրականժամանակային օպերացիոն համակարգեր

Իրականժամանակային օպերացիոն համակարգը հստակ վերջնաժամկետ ունեցող հավելվածների համար նախատեսված օպերացիոն համակարգն է։ Այսպիսի հավելվածները ներառում են որոշ փոքր ներկառուցված համակարգեր, մեքենայի շարժիչավարներ, արտադրկան ռոբոտներ, մեծամասշտաբ հաշվառական համակարգեր։

Մեծամասշտաբ իրականժամանակային օպերացիոն համակարգի վառ օրինակ է Transaction Processing Facility֊ն, որը ստեղծվել American Airlines֊ի և IBM֊ի կողմից Sabre Airline Reservations System֊ի համար։

Ներկառուցված համակարգերը, որոնք հստակ վերջնաժամկետներ ունեն, օգտագործում են իրականժամանակային օպերացիոն համակարգեր, ինչպիսին են VxWorks֊ը, PikeOS֊ը, eCos֊ը, QNX֊ը, MontaVista Linux֊ը և RTLinux֊ը։ Windows CE֊ն իրականժամանակային օպերացիոն համակարգ է։

Որոշ ներկառուցված համակարգեր օգտագործում են Palm OS, BSD, և Linux, չնայած նման օպերացիոն համակարգերը իրականժամանակային հաշվարկներ չեն սատարում։

## Զբաղմունքային օպերացիոն համակարգեր

Օպերացիոն համակարգերի զարգացումը ամենաբարդ զբաղմունքներից է, որ համակարգչով զբաղվող ցանկացած մարդ կարող է հանդիպել։ Զբաղմունքային օպերացիոն համակարգ կարող է համարվել այն, որի կոդը անմիջապես գոյություն ունեցող օպերացիոն համակարգից չի վերցված, ունի քիչ օգտագործողներ և ակտիվ զարգացնողները։

Ստեղծված զբաղմունքային օպերացիոն համակարգերը կարող են ամբողջությամբ նորը լինել կամ էլ եղած մոդելների հիման վրա։ Ստեղծողը կարող է միայնակ անել իր գործը, կարող է և փոքր խմբերի և մարդկանց հետ համագործակցել, ովքեր կիսում են նույն հետաքրքրությունները։

Զբաղմունքային օպերացիոն համակարգի օրինակ է Syllable֊ը։

## Օպերացիոն համակարգերի զանազանությունը և տեղափոխելիությունը

Հավելվածների ծրագրախումբը հիմնականում գրվում է իր համար նախատեսված օպերացիոն համակարգի կամ երբեմն հատուկ սարքախմբի վրա աշխատելու համար։ Երբ հավելվածը տեղափոխում ես այլ ՕՀ֊ի վրա աշխատեցնելու համար, հավելվածի պահանջած գործառույթները կարող են այլ կերպ իրականացվել․ կարող են փոխվել ֆունկցիաների անունները, արգումենտների իմաստները և այլն։ Նոր ՕՀ֊ը կարող է պահանջել, որ հավելվածը հարմարեցվի, փոփոխվի կամ էլ լրիվ հակառակը՝ պահպանվի։

Unix֊ը առաջին հավելվածն էր, որ ասեմբլեր լեզվով չէր գրված, և դա նրան դարձնում էլ տեղափոխելի։

## Բաշխումը շուկայում

2017 թվականի հոկտեմբերի հաշվարկով համաշխարհային տվյալները| Տեղ | Սմարթֆոնների Համակարգը | Համակարգիչների համակարգը |
| --- | --- | --- |
| 1 | Android (73%) | Windows (83%) |
| 2 | iOS (20%) | Mac OS (13%) |
| 3 | Nokia (1%) | Linux (2%) |
| 4 | Windows (1%) | Chrome OS (1%) |
| 5 | Այլ (5%) | Այլ (1%) |

2014-ին Android֊ը դարձավ առաջին օպերացիոն համակարգը, որը ուներ մեկ միլիարդ սարքերի վրա օգտագործելիություն։

## Պատկերասրահ

* ChromeOS
* Անդրոիդ
* Լինուքսի Հմայիլը

## Ծանոթագրություններ

## Արտաքին հղումներ

* Operating Systems հոդվածը Curlie-ում (ըստ DMOZ-ի)
* Multics History and the history of operating systems
* How Stuff Works - Operating Systems
* Help finding your Operating System type and version

|  |  |
| --- | --- |
|  | Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Օպերացիոն համակարգ» հոդվածին։ |