# Аперацыйная сістэма

Графічны інтэрфейс карыстальніка на прыкладзе АС Ubuntu, дыстрыбутыва GNU/Linux.
**Аперацы́йная сістэ́ма(АС)** — комплекс камп’ютарных праграм, які кіруе апаратнымі і праграмнымі рэсурсамі камп’ютара. Галоўны складнік сістэмнага праграмнага забеспячэння. Выконвае найпрасцейшыя заданні, напрыклад, кіруе размеркаваннем памяці, выконвае праграмныя інструкцыі згодна з пэўнай сістэмай прыярытэтаў, кіруе прыладамі ўводу/вываду, забяспечвае праграмы карыстальніка магчымасцю выкарыстання сеткавых пратаколаў, дае прыкладным праграмам просты інтэрфейс работы з файламі і іншае.

Аперацыйная сістэма можа разглядацца як прамежкавы слой паміж апаратным забеспячэннем і прыкладнымі праграмамі. Асноўныя задачы аперацыйнай сістэмы ў тым, каб не дапусціць няправільнага выкарыстання прыкладнымі праграмамі апаратных кампанентаў, такіх як працэсар, памяць, прылады ўводу і вываду, а таксама стварыць аднастайны інтэрфейс узаемадзеяння з апаратным забеспячэннем для прыкладных праграм. Гэтыя мэты дасягаюцца з дапамогай абстракцый, такіх як працэсы, віртуальная памяць і файлы.

## Прыклады сучасных аперацыйных сістэм

### Microsoft Windows

Microsoft Windows — сямейства прыватнаўласнісцкіх аперацыйных сістэм. Гэта найбольш распаўсюджаная аперацыйная сістэма для персанальных камп’ютараў. Яна зарадзілася ў 1981 годзе ў якасці дапаўнення да аперацыйнай сістэмы MS-DOS для IBM-сумяшчальных персанальных камп’ютараў. Упершыню апублікавана ў 1985 годзе.

Пачынаючы з Windows 2000, усе сучасныя версіі зроблены на аснове ядра Windows NT.

Windows таксама выкарыстоўваецца на серверах, якія выкарыстоўваюцца ў якасці вэб-сервера або сервера баз даных.

### Unix і Unix-падобныя аперацыйныя сістэмы

Кен Томпсан напісаў мову праграмавання **B**, галоўным чынам, на аснове **BCPL**, якую ён выкарыстаў, каб напісаць Unix, на аснове яго досведу працы ў праекце MULTICS. Мова **B** была заменена на **C**, і з цягам часу Unix пераўтварылася ў вялікае, складанае сямейства ўзаемазвязаных аперацыйных сістэм, якое паўплывала на ўсе сучасныя АС.

Назва «UNIX» з’яўляецца гандлёвай маркай The Open Group. Для абазначэння доўгага шэрагу аперацыйных сістэм, якія падобныя на арыгінальны Unix, але не маюць ліцэнзіі The Open Group, ужываецца назва «Unix-падобныя».

Некаторыя варыянты Unix, такія як HP-UX ад Hewlett-Packard і AIX ад IBM, прызначаны для выкарыстання толькі на абсталяванні вытворцы. Іншыя, такія як Solaris ад Sun Microsystems, могуць працаваць на розных тыпах апаратных платформ, уключаючы x86 серверы і ПК. Сучасная АС Mac OS X ад Apple мае гібрыднае ядро на аснове варыянта BSD, атрыманае ад NeXTSTEP, Mach, і FreeBSD.

Сумяшчальнасць Unix дасягаецца шляхам падтрымкі стандартаў POSIX. Стандарты POSIX можна прымяняць да любой аперацыйнай сістэмы, хаця пачаткова яны былі створаны для розных варыянтаў Unix.

#### BSD і нашчадкі

Падгрупу сям’і Unix утварае сямейства Berkeley Software Distribution, якое ўключае FreeBSD, NetBSD і OpenBSD. Гэтыя аперацыйныя сістэмы найбольш часта сустракаюцца на вэб-серверах, хоць яны могуць таксама працаваць у якасці аперацыйнай сістэмы персанальнага камп’ютара.

Сеціва шмат у чым абавязана сваім існаваннем АС BSD, таму што многія з пратаколаў, якія ў цяперашні час шырока выкарыстоўваюцца для падключэння камп’ютараў, перадачы і атрымання інфармацыі па сетцы, былі ў значнай ступені распрацаваны і ўдасканалены менавіта ў BSD. World Wide Web быў упершыню прадэманстраваны на некалькіх камп’ютарах пад кіраваннем NextStep, АС на аснове BSD.

Карані сістэмы BSD ідуць у Unix. У 1974 годзе Каліфарнійскі ўніверсітэт у Берклі ўстанавіў свае першыя сістэмы Unix. З цягам часу, студэнты і выкладчыкі ўніверсітэта пачалі дадаваць новыя праграмы, такія як тэкставыя рэдактары, каб палегчыць сваю працу. Калі ўніверсітэт Берклі атрымаў новы камп’ютар VAX у 1978 годзе з устаноўленым Unix, студэнты змянілі Unix нават больш, для таго, каб выкарыстоўваць апаратныя магчымасці камп’ютара. Агенцтва перспектыўных абаронных даследаванняў (DARPA) Міністэрства абароны ЗША праявіла цікавасць, і прыняло рашэнне аб фінансаванні праекта. Многія школы, карпарацыі і ўрадавыя арганізацыі звярнулі ўвагу і сталі выкарыстоўваць версію Unix ад Берклі, замест той, якую афіцыйна распаўсюджвала AT&T. Стыў Джобс, пасля выхаду з карпарацыі Apple у 1985 годзе, заснаваў NeXT Inc, кампанію, якая вырабляла камп’ютары, якія працуюць на змененым BSD пад назвай NeXTSTEP. Адна з гэтых машын была выкарыстана Цімам Бернерс-Лі як першы вэб-сервер для стварэння World Wide Web.

#### Mac OS X

Mac OS X — гэта лінейка часткова прыватнаўласніцкіх графічных аперацыйных сістэм, якія распрацоўвае, прасоўвае і прадае карпарацыя Apple. Апошнюю версію гэтай АС устанаўліваюць на ўсе камп’ютары Macintosh. Mac OS X з’яўляецца пераемнікам арыгінальнай Mac OS, якая была асноўнай аперацыйнай сістэмай камп’ютараў Apple, пачынаючы з 1984 г. У адрозненне ад свайго папярэдніка, Mac OS X — гэта UNIX, пабудаваная па тэхналогіі, якая была распрацавана ў NeXT цягам другой паловы 1980-х гадоў і да пачатку 1997 года, калі кампанію набыла карпарацыя Apple.

Упершыню аперацыйная сістэма была выпушчана ў 1999 годзе як Mac OS X Server 1.0, затым з’явілася арыентаваная на персанальны камп’ютар версія (Mac OS X 10.0) у сакавіку 2001 года.

#### Plan 9

У свой час Кен Томпсан, Дэніс Рычы і Дуглас Макілрой у Bell Labs распрацавалі мову праграмавання C для стварэння аперацыйнай сістэмы Unix. Наступныя распрацоўкі праграмістаў Bell Labs уключаюць Plan 9 і Inferno, аперацыйныя сістэмы для сучасных размеркаваных вылічальных асяроддзяў. Plan 9 зараз выпушчана пад Lucent Public License. Inferno была прададзена Vita Nuova Holdings і выпушчана пад GPL і MIT ліцэнзіямі.

### Linux і GNU

Linux — агульная назва UNIX-падобных аперацыйных сістэм, якія можна выкарыстоўваць на самых разнастайных прыладах ад суперкамп’ютараў да наручных гадзіннікаў. Ядро Linux выпускаецца пад ліцэнзіяй GNU GPL, таму кожны можа чытаць і змяняць яго зыходны код.

Праект GNU — гэта масавае супрацоўніцтва праграмістаў, якія імкнуцца стварыць абсалютна свабодную і адкрытую аперацыйную сістэму, якая была б падобная на Unix, але мела цалкам незалежны ад Unix зыходны код. Праект быў распачаты у 1983 годзе Рычардам Столманам. У рамках гэтага праекта распрацоўваюцца значная частка складнікаў для большасці варыянтаў Linux. Па гэтай прычыне, Linux часта называюць GNU/Linux.

Тысячы праграм практычна для любой аперацыйнай сістэмы распаўсюджваюцца на ўмовах GNU General Public License — ліцэнзіі, створанай Рычардам Столманам для праекта GNU.

#### Google Chrome OS

Chrome OS — аперацыйная сістэма, створаная кампаніяй Google на аснове ядра Linux. Мэтавая аўдыторыя Chrome — камп’ютарныя карыстальнікі, якія трацяць большую частку свайго часу на сеціва. З тэхнічнага боку гэта адзіны вэб-браўзер, у якім выкарыстоўваюцца сеткавыя праграмы для выканання такіх задач, як апрацоўка тэкстаў і прагляд мультымедыя.

### Іншыя

Старыя аперацыйныя сістэмы, якія да гэтага часу займаюць пэўныя невялікія нішы рынку, ўключаюць OS/2 ад IBM і Microsoft; Mac OS, папярэднік сучаснай Mac OS X; BeOS; XTS-300. Некаторыя з іх, перш за ўсё RISC OS, MorphOS і AmigaOS 4 працягваюць развівацца як вузкія платформы для суполак энтузіястаў, або ў адмысловых мэтах. OpenVMS, першапачаткова ад DEC, да гэтага часу ў стадыі актыўнай распрацоўкі ў Hewlett-Packard.

Некаторая колькасць іншых аперацыйных сістэм выкарыстоўваюцца амаль выключна ў акадэмічным асяроддзі, пры выкладанні аперацыйных сістэм, і ў даследаваннях магчымасцяў развіцця аперацыйных сістэм. Тыповым прыкладам сістэмы, якая выконвае абедзьве ролі, з’яўляецца MINIX, у той час як, напрыклад, Singularity выкарыстоўваецца выключна для навуковых даследаванняў.

## Кампаненты

Усе кампаненты аперацыйнай сістэмы існуюць для таго, каб розныя часткі камп’ютара маглі працаваць разам. Усе праграмнае забеспячэнне, ад фінансавых баз даных да рэдактараў фільмаў, павінна звяртацца да аперацыйнай сістэмы для таго, каб выкарыстаць любыя апаратныя сродкі, ці то простыя, як мыш або клавіятура, ці складаныя, як падключэнне да Сеціва.

### Інтэрфейс карыстальніка

Кожны камп’ютар, які атрымлівае нейкія запыты ад чалавека, павінен мець інтэрфейс карыстальніка, які дазваляе чалавеку ўзаемадзейнічаць з камп’ютарам. У той час як прылады, падобныя да клавіятуры, мышы і сэнсарнага экрана, складаюць апаратную частку гэтай задачы, карыстальніцкі інтэрфейс складае праграмную яго частку.

Дзвюма самымі распаўсюджанымі формамі інтэрфейсу карыстальніка гістарычна з’яўляюцца інтэрфейс каманднага радка, дзе каманды камп’ютару трэба набіраць радок за радком, і графічны інтэрфейс карыстальніка, дзе прысутнічае візуальнае асяроддзе (часцей за ўсё з выглядзе вокнаў, кнопак і значкоў).

#### Графічны інтэрфейс карыстальніка

Большасць сучасных камп’ютарных сістэм падтрымлівае графічны інтэрфэйс карыстальніка (англ.: GUI, ад *Graphical User Interface*), і звычайна ўключае яго ў сябе. У некаторых аперацыйных сістэмах, такіх як Microsoft Windows і Mac OS, GUI убудаваны ў ядро. Іншыя аперацыйныя сістэмы маюць модульную канструкцыю, аддзяляючы графічную падсістэму ад ядра АС. GNU/Linux, BSD і Mac OS X пабудаваны менавіта такім чынам.

Многія аперацыйныя сістэмы дазваляюць карыстальніку ўсталёўваць або ствараць любы карыстальніцкі інтэрфейс у адпаведнасці з яго пажаданнямі. X Window System у спалучэнні з GNOME ці KDE звычайна сустракаюцца на большасці Unix і Unix-падобных (BSD, GNU/Linux, Solaris) сістэм. Шэраг замен абалонкі Windows, якія прапануюць альтэрнатывы ўбудаванай абалонцы, былі выпушчаны, але ўбудаваная абалонка не можа быць аддзелена ад Windows. Існуюць шматлікія варыянты графічнага інтэрфейсу для Unix і Unix-падобных АС, большасць іх — вытворныя ад X11 (X Window System).

Графічныя інтэрфейсы карыстальніка змяняюцца з цягам часу. Напрыклад, Windows змяняла свой карыстальніцкі інтэрфейс амаль кожны раз, калі выходзіла новая версія АС, а графічны інтэрфейс Mac OS рэзка змяніўся са з’яўленнем Mac OS X у 1999 годзе.

### Ядро

Ядро злучае прыкладное праграмнае забеспячэнне і абсталяванне камп’ютара.

З дапамогай мікрапраграм у пастаяннай памяці прыстасаванняў (англ.: firmware) і драйвераў прылад (англ.: device drivers), аперацыйная сістэма забяспечвае базавы ўзровень кантролю над апаратнай часткай камп’ютара. Функцыі аперацыйнай сістэмы звычайна ўключаюць: выдзяленне памяці для праграм, кіраванне доступам праграм да апаратных рэсурсаў, упарадкаванне даных (сродкамі файлавай сістэмы) для іх доўгатэрміновага захоўвання, і да т.п.

#### Выкананне праграмы

Аперацыйная сістэма забяспечвае набор паслуг, якія спрашчаюць распрацоўку праграм. Выкананне праграмы прадугледжвае стварэнне аперацыйнай сістэмай працэсу. Ядро стварае працэс, выдзяляе яму памяць і іншыя рэсурсы, задае прыярытэт (у шматзадачных сістэмах), загружае праграмны код у памяць, і запускае выкананне праграмы.

#### Перарыванні

Перарыванні маюць для аперацыйнай сістэмы вырашальнае значэнне, бо яны дазваляюць аперацыйнай сістэме дзейсна адказваць на падзеі ў асяроддзі і ўзаемадзейнічаць з ім. Альтэрнатыўны падыход, калі АС сочыць за рознымі крыніцамі, якія патрабуюць рэакцыі (апытанне), сустракаецца ў сістэмах з вельмі малым стэкам.

Большасць сучасных працэсараў прадастаўляе сродкі падтрымкі праграмавання з выкарыстаннем перарыванняў. Па ўзнікненні перарывання апаратная частка камп’ютара аўтаматычна прыпыняе ўсе праграмы, якія ў гэты момант працуюць, захоўвае свой статус, і запускае код, раней звязаны з перарываннем. У сучасных аперацыйных сістэмах перарыванні апрацоўвае ядро аперацыйнай сістэмы. Перарыванні могуць паступаць як ад апаратнай часткі камп’ютара, так і ад запушчаных праграм.

Калі камп’ютарная прылада выклікае перарыванне, ядро аперацыйнай сістэмы вырашае, што рабіць з гэтай падзеяй, як правіла, выконваючы нейкі код апрацоўкі перарывання. Аб’ём кода, які будзе выканан, залежыць ад прыярытэту перарывання. Задачу апрацоўкі апаратнага перарывання звычайна накіроўваюць праграме пад назвай «драйвер прылады», які можа быць часткай ядра аперацыйнай сістэмы, часткай іншай праграмы, ці абодвух. Драйверы прылад могуць потым перадаць інфармацыю запушчаным праграмам.

Праграма таксама можа стаць прычынай перарывання. Калі праграма хоча атрымаць, напрыклад, доступ да абсталявання, яна можа выклікаць перарыванне, што прывядзе да перадачы кіравання назад у ядро. Далей ядро будзе апрацоўваць запыт. Калі праграме патрэбны дадатковыя рэсурсы (ці трэба вызваліць рэсурсы), напрыклад памяць, яна выкліча перарыванне, каб прыцягнуць увагу ядра.

#### Рэжымы

Сучасныя працэсары падтрымліваюць некалькі рэжымаў працы. Працэсар у такім выпадку рэалізуе як мінімум два рэжымы: абаронены рэжым і прывілеяваны рэжым. Прывілеяваны рэжым выкарыстоўвае ядро аперацыйнай сістэмы для задач з нізкім узроўнем, для якіх неабходны неабмежаваны доступ да абсталявання, такіх як кантроль над запісам і сціраннем памяці, і зносіны з прыладамі, такімі як відэакарткі. Абаронены рэжым, наадварот, ужываецца амаль для ўсіх астатніх задач. Праграмы працуюць у абароненым рэжыме, і могуць выкарыстоўваць апаратныя сродкі толькі праз узаемадзеянне з ядром, якое кантралюе ўсё ў прывілеяваным рэжыме.

Працэсар можа таксама рэалізоўваць іншыя, падобныя на абаронены, рэжымы, напрыклад, віртуальны рэжым, каб эмуляваць стары тып працэсара, напрыклад, 16-разрадны працэсар у 32-разрадным, ці 32-бітны працэсар у 64-бітным.

Пры пачатковым запуску камп’ютара ён аўтаматычна працуе ў прывілеяваным рэжыме. Першыя некалькі праграм, неабходныя для працы камп’ютара — BIOS, загрузчык і аперацыйная сістэма — маюць неабмежаваны доступ да абсталявання, і гэта натуральна, бо ініцыялізацыя абароненага асяроддзя можа быць зроблена толькі па-за яго межамі.

У абароненым рэжыме, праграмы могуць мець доступ да абмежаванага набору інструкцый працэсара. Карыстальніцкая праграма можа выйсці з абароненага рэжыму толькі выклікам перарывання, у выніку чаго кіраванне будзе перададзена ядру. Такім чынам аперацыйная сістэма захоўвае поўны кантроль над такімі рэчамі, як доступ да памяці і абсталявання.

#### Кіраванне памяццю

Сярод іншага, ядро шматзадачнай і шматкарыстальніцкай аперацыйнай сістэмы павінна несці адказнасць за кіраванне ўсёй сістэмнай памяццю, якую выкарыстоўваюць бягучыя праграмы. Гэта гарантуе, што праграма не ўмешваецца ў памяць, якую ўжо выкарыстоўвае другая праграма.

Кааператыўная мадэль кіравання памяццю, якую можна было сустрэць у многіх ранніх аперацыйных сістэмах, мяркуе, што ўсе праграмы добраахвотна выкарыстоўваюць сістэмны размеркавальнік памяці, і не перавышаюць выдзелены ім абсяг памяці. Гэту сістэму кіравання памяццю сёння амаль немагчыма сустрэць. У рэальнасці праграмы часта ўтрымліваюць памылкі, якія могуць прывесці да перавышэння выдзеленай памяці. Калі праграма «робіць памылку», гэта можа прывесці да таго, што будзе закранута або перапісана памяць іншых праграм. Шкоднасныя праграмы, ці вірусы, могуць мэтанакіравана змяняць памяць другіх праграм, ці могуць паўплываць на працу самой аперацыйнай сістэмы. Пры кааператыўным кіраванні памяццю дастаткова толькі адной няспраўнай праграмы, каб парушыць працу ўсёй сістэмы.

Абарона памяці дазваляе ядру абмежаваць доступ працэсаў к памяці камп’ютара. Існуюць розныя метады абароны памяці, у тым ліку сегментацыя памяці і падзел на старонкі. Усе метады патрабуюць пэўнага ўзроўню апаратнай падтрымкі (напрыклад, 80286 MMU), які забяспечваюць не ўсе камп’ютары.

І пры сегментацыі, і пры падзеле на старонкі, пэўныя рэгістры абароненага рэжыму паказваюць працэсару, які адрас памяці ён можа дазволіць бягучай праграме для доступу. Спробы атрымаць доступ па іншых адрасах выклічуць перарыванне, якое прымусіць працэсар перайсці ў прывілеяваны рэжым і перадаць кіраванне ядру. Такі выпадак называюць парушэннем сегментацыі, і, паколькі з аднаго боку цяжка прызначыць асенсаваны вынік для такой аперацыі, а з другога такія дзеянні звычайна з’яўляюцца прыкметай памылкі ў праграме, ядро тыпова прымае рашэнне завершыць праграму, і паведаміць пра памылку.

#### Віртуальная памяць

Многія аперацыйныя сістэмы могуць «падмануць» праграмы, выкарыстоўваючы памяць на жорсткім дыску і аператыўную памяць быццам адзін непарыўны кавалак памяці, які называюць віртуальнай памяццю. Выкарыстанне віртуальнай адрасацыі памяці (такой як *старонкавая* або *сегментная*) азначае, што ядро можа вырашаць, якую памяць кожная праграма можа выкарыстоўваць у любы момант часу, і дазваляе аперацыйнай сістэме выкарыстоўваць адзін участак памяці для некалькіх задач.

У сучасных аперацыйных сістэмах, участак памяці, доступ к якому адбываецца радзей, можа быць часова запісан на цвёрды дыск ці іншы носьбіт, каб зрабіць гэту прастору даступнай для выкарыстання ў іншых праграмах. Гэта дзеянне называюць *падменай* (англ.: swapping), таму што пры выкарыстанні нейкай вобласці памяці некалькімі праграмамі, змест гэтай вобласці можна замяніць ці вернуць па патрабаванні.

#### Шматзадачнасць

Шматзадачнасць азначае выкананне некалькіх незалежных камп’ютарных праграм на адным камп’ютары, ствараючы ўражанне, што камп’ютар выконвае задачы адначасова. Большасць камп’ютараў можа рабіць не больш за адну ці дзве рэчы ў дадзены момант часу, таму шматзадачнасць звычайна дасягаюць з дапамогай падзелу часу, гэта азначае, што кожная праграма выкарыстоўвае частку часу камп’ютара для выканання.

Ядро аперацыйнай сістэмы змяшчае частку праграмнага коду, так званы *планіроўшчык* (англ.: scheduler), які вызначае, колькі часу кожная праграма будзе займаць рэсурсы, і ў якім парадку кіраванне будзе перададзена праграмам. Ядро перадае кіраванне працэсу, яно ж дазваляе праграме доступ да працэсара і памяці. Потым кіраванне вяртаецца ядру праз нейкі механізм, каб яно магло перадаць кіраванне наступнай праграме. Гэты пераход кантролю паміж ядром і праграмамі называюць *пераключэннем кантэксту*.

Ранняя мадэль рэгулявання выдзялення часу для праграм — так званая кааператыўная шматзадачнасць. У гэтай мадэлі, калі ядро перадае кіраванне праграме, яна можа выконвацца столькі часу, колькі пажадае, пакуль яўна не верне кіраванне ядру. Гэта азначае, што шкоднасная праграмы або няспраўнасць можа не толькі забараніць іншым праграмам выкарыстанне працэсара, але і павесіць усю сістэму, калі ўвойдзе ў бясконцы цыкл.

Філасофія *выцясняльнай шматзадачнасці* заснавана на вылучэнні пэўнага адрэзка часу на цэнтральным працэсары для ўсіх праграм. Гэта азначае, што ўсе праграмы павінны быць абмежаваныя ў тым, колькі часу яны могуць займаць працэсар да таго, як адбудзецца перарыванне. Каб дасягнуць гэтага, ядры сучасных аперацыйных сістэм выкарыстоўваюць прымеркаваныя перарыванні. Ядро ўстанаўлівае таймер абароненага рэжыму, які выклікае вяртанне ў прывілеяваны рэжым па заканчэнні вызначанага прамежку часу.

Сучасныя аперацыйныя сістэмы пашыраюць задумку выцясняльнай шматзадачнасці на драйверы прылад і код ядра, такім чынам аперацыйная сістэма мае папераджальны кантроль таксама і над унутраным кодам.

#### Доступ да дыска і файлавая сістэма

Доступ к даным, якія захоўваюцца на дысках, з’яўляецца цэнтральным элементам усіх аперацыйных сістэм. Камп’ютары захоўваюць даныя на дысках з выкарыстаннем файлаў, якія маюць спецыфічную структуру ў мэтах забеспячэння хуткага доступу, павышэння надзейнасці, а таксама эфектыўнага выкарыстання даступнай дыскавай прасторы. Файлавая сістэма — гэта спецыфічны спосаб захоўвання файлаў на дыску, яна дазваляе задаваць для файлаў назвы і атрыбуты (напр., правы доступу, памер, даты стварэння і змянення, і г.д.). Яна таксама дазваляе захоўваць файлы ў іерархіі каталогаў (папак).

#### Драйверы прылад

Драйвер прылады (англ.: device driver) — спецыфічны тып камп’ютарнага праграмнага забеспячэння, распрацаваны для ўзаемадзеяння з прыладамі. Як правіла, ўяўляе сабой інтэрфейс для сувязі з прыладай, праз канкрэтныя шыны камп’ютара ці падсістэмы сувязі з апаратнай часткай даючы каманды прыладзе, а на другім канцы прадастаўляючы неабходныя інтэрфейсы для аперацыйнай сістэмы і прыкладанняў. Гэта спецыялізаваны праграмны код, які залежыць ад абсталявання, а таксама спецыфічны для аперацыйнай сістэмы, дазваляе іншай праграме, звычайна аперацыйнай сістэме альбо пакету прыкладнога праграмнага забеспячэння, празрыста ўзаемадзейнічаць з прыладай, і як правіла, прадстаўляе неабходную апрацоўку перарыванняў.

### Сетка

У цяперашні час большасць аперацыйных сістэм падтрымлівае шэраг сеткавых пратаколаў, апаратных сродкаў і прыкладаняў для іх выкарыстання. Гэта азначае, што камп’ютары пад кіраваннем разнастайных аперацыйных сістэм могуць далучацца да агульнай сеткі для сумеснага выкарыстання вылічальных рэсурсаў, файлаў, прынтараў і сканераў з выкарыстаннем праваднога альбо бесправаднога злучэння. Істотна тое, што сетка дазваляе аперацыйнай сістэме камп’ютара мець доступ к рэсурсам на іншым камп’ютары, даючы тыя ж магчымасці, якія можна атрымаць пры падключэнні гэтых рэсурсаў непасрэдна к лакальнаму камп’ютару. Сюды ўваходзяць усе неабходныя функцыі: ад простых зносін да выкарыстання сеткавых файлавых сістэм ці нават графікі ці гукавога абсталявання іншага камп’ютара.

## Аперацыйныя сістэмы рэальнага часу

АС рэальнага часу (англ.: RTOS) — гэта шматзадачная аперацыйная сістэма, прызначаная для прыкладанняў з вызначаным тэрмінам (вылічэнняў у рэжыме рэальнага часу). Такія прыкладанні ўключаюць невялікія ўбудаваныя сістэмы, кантролеры аўтамабільных рухавікоў, прамысловых робатаў, касмічных караблёў, прамысловага кантролю і шэрагу буйнамаштабных вылічальных сістэм. Адным з першых прыкладаў маштабных АС рэальнага часу была сістэма апрацоўкі транзакцый, распрацаваная American Airlines і IBM для сістэмы браніравання авіякампаніі Sabre.

Убудаваныя сістэмы, якія маюць вызначаныя тэрміны, выкарыстоўваюць АС рэальнага часу, такія як VxWorks, PikeOS, eCos, QNX, Linux MontaVista і RTLinux.

## Аматарскія распрацоўкі

Стварэнне ўласнай аперацыйнай сістэмы — адно з самых тэхнічна складаных хобі тых, хто захапляецца камп’ютарамі.

Пад аматарскай аперацыйнай сістэмай звычайна разумеюць сістэму, якая была напісана з нуля (не грунтуецца на іншай сістэме), і мае мала распрацоўшчыкаў, якія працуюць у свой вольны час. Прыклады аматарскіх аперацыйных сістэм уключаюць Syllable і ReactOS.

## Разнастайнасць аперацыйных сістэм і пераноснасць

Прыкладное праграмнае забеспячэнне, як правіла, пішуць для выкарыстання на пэўнай аперацыйнай сістэме, а часам нават для пэўнага абсталявання. Пры пераносе праграмы на іншую аперацыйную сістэму, функцыі, неабходныя гэтай праграме, можна рэалізаваць у гэтай АС іначай (імёны функцый, значэнні аргументаў і г.д.), і гэта патрабуе прыстасоўваць, змяняць ці іншым чынам падтрымліваць праграму. Гэтых выдаткаў па падтрымцы разнастайнасці аперацыйных сістэм можна пазбегнуць, калі замест гэтага пісаць прыкладанні пад праграмную платформу, такую як Java або Qt, ці для вэб-аглядальнікаў. Пры гэтым асноўны цяжар па прыстасаванні да пэўнай аперацыйнай сістэмы і сістэмных бібліятэк пераносіцца на адпаведныя ўзроўні абагульнення. Іншы падыход заключаецца ў тым, каб пастаўшчыкам аперацыйных сістэм прыняць стандарты. Напрыклад, POSIX і ўзроўні абстракцыі АС (англ.: OS abstraction layers) забяспечваюць абагульненні, якія памяншаюць выдаткі на перанос.

## Гл. таксама

* Загрузка аперацыйнай сістэмы

## Крыніцы

## Літаратура

* *Randal E. Bryant, David R. O'Hallaron.* Computer Systems: A Programmer's Perspective. — 3rd ed. — 2016. — ISBN 978-1-292-10176-7.