Кіріспе

Компьютерлік аппараттық ресурстарды басқаратын бағдарламалық қамтамасыз ету. Операциялық жүйе (ОЖ) – компьютерлік аппараттық және бағдарламалық ресурстарды басқаратын, компьютерлік бағдарламаларға ортақ қызметтер ұсынатын жүйелік бағдарламалық қамтамасыз ету. Уақытты бөлісу операциялық жүйелері жүйені тиімді пайдалану үшін тапсырмаларды жоспарлайды және процессор уақытының, жаппай сақтау құрылғыларының, сыртқы құрылғылардың және басқа ресурстардың құнын бөлу үшін есептеу бағдарламалық жасақтамасын да қамтуы мүмкін. Кіріс-шығыс сияқты аппараттық функциялар мен жадты бөлу үшін операциялық жүйе бағдарламалар мен компьютерлік аппараттық жабдық арасында делдал рөлін атқарады, бірақ қолданба кодын әдетте аппараттық жабдық тікелей орындайды және жиі ОЖ функциясын шақырады немесе одан үзіліс алады. Операциялық жүйелер ұялы телефондар мен ойын консольдарынан бастап веб-серверлер мен суперкомпьютерлерге дейін компьютерлік құрылғыларды қамтитын көптеген құрылғыларда кездеседі. 2023 жылғы деректер бойынша жеке компьютерлер нарығында Microsoft Windows шамамен 68% үлеске ие. Apple Inc. компаниясының macOS екінші орында (20%), ал Linux түрлері, соның ішінде ChromeOS, үшінші орында (7%) тұр. Мобильді секторда (смартфондар мен планшеттерді қоса алғанда) 2023 жылға қарай Android үлесі 68,92%-ды құрайды, одан кейін Apple-дің iOS және iPadOS 30,42%, ал қалған операциялық жүйелер 0,66%-ды құрайды. Linux дистрибутивтері серверлер мен суперкомпьютерлерде басым. Көптеген қолданбалар үшін кіріктірілген және нақты уақыт жүйелері сияқты операциялық жүйелердің басқа да арнайы түрлері (арнайы мақсаттағы операциялық жүйелер) бар. Қауіпсіздікке бағытталған операциялық жүйелер де бар. Кейбір операциялық жүйелердің жүйелік талаптары төмен (мысалы, жеңіл Linux дистрибуциясы), ал басқаларының жоғары болуы мүмкін. Кейбір операциялық жүйелерді орнату қажет, ал кейбіреулері сатып алынған компьютерлермен алдын ала орнатылған (OEM орнату), ал басқалары тікелей тасымалдағыштан (мысалы, тірі CD) немесе флэш-жадтан (мысалы, USB флешкасы) жұмыс істей алады.

Бір тапсырмалы және көп тапсырмалы

Бір тапсырмалы жүйе бір уақытта тек бір бағдарламаны ғана іске қоса алады, ал көп тапсырмалы операциялық жүйе бірнеше бағдарламаның бір уақытта жұмыс істеуіне мүмкіндік береді. Бұл уақытты бөлісу арқылы іске асырылады, онда қолжетімді процессор уақыты бірнеше процеске бөлінеді. Операциялық жүйенің тапсырмаларды жоспарлау кіші жүйесі арқылы осы процестердің әрқайсысы уақыт тілімдері бойынша үзіліссіз қайтадан шақырылады. Көп тапсырмалылық алдын ала және өзара әрекеттесу типтерімен сипатталады. Алдын ала көп тапсырмалылықта операциялық жүйе процессор уақытын бөліп, әр бағдарламаға уақыт бөлігін береді. Unix сияқты операциялық жүйелер, мысалы Linux, сондай-ақ Unix емес жүйелер, мысалы AmigaOS, алдын ала көп тапсырмалылықты қолдайды. Өзара әрекеттесу көп тапсырмалылығы әрбір процестің басқа процестерге белгілі бір тәртіппен уақыт беруіне сену арқылы жүзеге асырылады. Microsoft Windows-тың 16 биттік нұсқалары өзара әрекеттесу көп тапсырмалылығын қолданды; Windows NT және Win9x-тың 32 биттік нұсқалары алдын ала көп тапсырмалылықты қолданды.

Бір және бірнеше пайдаланушы

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

Таратылған

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

Тіркелген

Кіріктірілген операциялық жүйелер кіріктірілген компьютерлік жүйелерде қолдану үшін жасалған. Олар аз дербестікпен, шағын машиналарда (мысалы, жеке цифрлық көмекшілерде - PDA) жұмыс істеуге арналған. Олар өте ықшам және жобалау бойынша өте тиімді, сондай-ақ шектеулі ресурстармен жұмыс істей алады. Windows CE және Minix 3 – кіріктірілген операциялық жүйелердің бірнеше мысалы.

Нақты уақыт

Нақты уақыт операциялық жүйесі – белгілі бір уақытқа дейін оқиғаларды немесе деректерді өңдеуге кепілдік беретін операциялық жүйе. Нақты уақыт операциялық жүйесі бір немесе көп тапсырмалы болуы мүмкін, бірақ көп тапсырмалы болған жағдайда, мінез-құлқының детерминистік болуын қамтамасыз ету үшін арнайы кестелеу алгоритмдерін пайдаланады. Мұндай оқиғаларға негізделген жүйелер тапсырмаларды олардың басымдығына немесе сыртқы оқиғаларға қарай ауыстырады, ал уақытты бөлісу операциялық жүйелері тапсырмаларды сағаттық үзілістер арқылы ауыстырады.

Кітапхана

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

Тарих

Алғашқы компьютерлер калькулятор сияқты жеке-жеке тапсырмаларды орындау үшін құрастырылды. 1950 жылдары операциялық жүйенің негізгі мүмкіндіктері, мысалы, өңдеуді жылдамдату үшін әртүрлі бағдарламаларды автоматты түрде іске қосатын тұрақты монитор функциялары әзірленді. Операциялық жүйелер 1960 жылдардың басына дейін қазіргі және күрделі формаларында пайда болған жоқ. Орындалу кезінде кітапханаларды, үзілістерді және параллель өңдеуді пайдалануға мүмкіндік беретін аппараттық мүмкіндіктер қосылды. 1980 жылдары жеке компьютерлер танымал болғанда, олар үшін ірі компьютерлерде қолданылатын операциялық жүйелерге ұқсас концепция жасалды. 1940 жылдары ең алғашқы электрондық цифрлық жүйелерде операциялық жүйелер болған жоқ. Осы кездегі электрондық жүйелер механикалық қосқыштардың қатарымен немесе платадағы қосылыстар арқылы бағдарламаланды. Бұл арнайы мақсаттағы жүйелер, мысалы, әскерилер үшін баллистикалық кестелер жасады немесе перфокарталардағы деректерден жалақы тізімдерін басып шығаруды басқарды. Бағдарламаланатын көп мақсатты компьютерлер ойлап табылғаннан кейін, бағдарламалау процесін жеделдеткен машина тілдері (перфорацияланған қағаз таспасында 0 және 1 бинарлық цифрларының тізбектерінен тұратын) енгізілді (Stern, 1981). 1950 жылдардың басында компьютер бір уақытта тек бір бағдарламаны орындай алатын. Әр пайдаланушы компьютерді шектеулі уақыт ішінде ғана пайдаланатын және белгіленген уақытта перфокарталар немесе перфолентадағы бағдарламаларымен және деректерімен келетін. Бағдарлама машинаға жүктеліп, бағдарлама аяқталғанға дейін немесе қатеге ұшырағанға дейін жұмыс істеуге қойылады. Бағдарламаларды әдетте алдыңғы панель арқылы ауыстырмалы қосқыштар мен шамдарды пайдаланып түзетуге болады. Алан Тьюринг Манчестер Mark 1 машинасының алғашқы нұсқасында мұның шебері болды және ол операциялық жүйенің алғашқы тұжырымын әмбебап Тьюринг машинасының принциптерінен шығарып алған. Ертедегі жүйелер туралы талқылауларда жиі кездесетін танымал мысалдардың бірі – 1962 жылы Атлас машинасымен жұмыс істеген Атлас бақылаушысы. Ол туралы 1961 жылдың желтоқсанында жүйе туралы жазылған мақалада айтылған, бірақ «Операциялық жүйе» деген түсінік «жүйе осылай жұмыс істейді» дегенге жақын. Атлас тобы өзі «монитор» терминімен қатар кеңінен қолданылатын «бақылаушы» терминін де қолданды. Бринч Хансен оны «операциялық жүйелер тарихындағы ең маңызды табыс» деп сипаттады.

Микрокомпьютерлер

Алғашқы микрокомпьютерлерде мейнфреймдер мен миникомпьютерлер үшін жасалған күрделі операциялық жүйелерді қабылдауға қабілеті немесе қажеттілігі болмады; минималистік операциялық жүйелер жасалды, көбінесе ROM-нан жүктеліп, мониторлар деп аталды. Бірнеше ерте дискілік операциялық жүйелердің ішінде CP/M ерекше көзге түсті, ол көптеген алғашқы микрокомпьютерлерде қолданылды және Microsoft-тың MS DOS жүйесімен үлкен ұқсастықтарға ие болды, ол IBM PC үшін таңдалған операциялық жүйе ретінде кеңінен танымал болды (IBM-нің нұсқасы IBM DOS немесе PC DOS деп аталды). 1980 жылдары Apple Computer Inc. (қазіргі Apple Inc.) өзінің танымал Apple II сериялы микрокомпьютерлерімен қатар Apple Macintosh-ты ұсынды. Macintosh инновациялық графикалық пайдаланушы интерфейсіне (GUI) және тышқанға ие болды; ол кейіннен (классикалық) Mac OS деп аталған операциялық жүйені іске қосты. 1985 жылдың қазан айында Intel 80386 процессорлық чипінің енгізілуі, 32 биттік архитектурасымен және беттеу мүмкіндіктерімен жеке компьютерлерге бұрынғы суперминикомпьютерлер мен мейнфреймдердегідей көп тапсырмалы операциялық жүйелерді іске асыруға мүмкіндік берді. Microsoft Digital Equipment Corporation үшін VMS операциялық жүйесін жасаған Дэйв Катлерді жұмысқа алып, осы прогреске жауап берді. Ол Microsoft операциялық жүйелерінің негізі болып табылатын Windows NT операциялық жүйесін әзірлеуге жетекшілік етті. Apple Inc. компаниясының негізін қалаушы Стив Джобс NeXT Computer Inc. компаниясын құрды, ол NeXTSTEP операциялық жүйесін жасады. NeXTSTEP кейіннен Apple Inc. компаниясымен сатып алынды және Mac OS X (кейінгі атау өзгергеннен кейін macOS) ядросы ретінде FreeBSD-ден кодпен бірге пайдаланылды. GNU жобасын белсенді және бағдарламашы Ричард Столлман UNIX операциялық жүйесінің толықтай ақысыз бағдарламалық қамтамасыз етумен алмастыру мақсатымен бастады. Жоба UNIX-тің әртүрлі бөліктерінің функционалдығын көшіруде үлкен жетістікке жеткенімен, GNU Hurd ядросын әзірлеу тиімсіз болып шықты. 1991 жылы фин компьютерлік ғылым студенті Линус Торвальдс, Интернет арқылы ынтымақтастық жасайтын еріктілердің көмегімен Linux ядросының алғашқы нұсқасын жариялады. Ол жақын арада GNU пайдаланушы кеңістігі компоненттерімен және жүйелік бағдарламалық қамтамасыз етумен біріктіріліп, толыққанды операциялық жүйе құрылды. Содан бері екі негізгі компоненттің үйлесімі бағдарламалық өнеркәсіпте көбінесе жай ғана "Linux" деп аталады, бұл номенклатураға Столлман мен Free Software Foundation қарсы тұрады, GNU/Linux атауын ұсынады. Беркли бағдарламалық қамтамасыз ету таратуы, BSD деп белгілі, 1970 жылдардың басында Калифорния университетінің Беркли қаласындағы бөлімшесі тарапынан таратылған UNIX туындысы. Көптеген миникомпьютерлерге тегін таратылып, портталғаннан кейін, ол PC-де де қолданушылардың кең тобын тапты, негізінен FreeBSD, NetBSD және OpenBSD түрінде.

Unix және Unix-қа ұқсас операциялық жүйелер

Unix бастапқыда ассемблер тілінде жазылған. Кен Томпсон B тілін жазды, ол негізінен BCPL-ге негізделген, және MULTICS жобасындағы тәжірибесімен қалыптасты. B тілі C тілімен алмастырылды, ал Unix C тілінде қайта жазылып, барлық заманауи операциялық жүйелерге әсер еткен, өзара байланысты операциялық жүйелердің үлкен және күрделі отбасына айналды (тарихқа қараңыз). Unix сияқты отбасы – System V, BSD және Linux сияқты бірнеше негізгі тармақтары бар операциялық жүйелердің әртүрлі тобы. "UNIX" атауы – The Open Group компаниясының сауда белгісі, және компания оны өзінің анықтамаларына сәйкес келетін кез келген операциялық жүйемен пайдалануға лицензия береді. "UNIX-ке ұқсас" термині бастапқы UNIX-ке ұқсас операциялық жүйелердің кең жиынтығын білдіру үшін қолданылады. Unix сияқты жүйелер әртүрлі компьютерлік архитектураларда жұмыс істейді. Олар бизнестегі серверлерде, сондай-ақ академиялық және инженерлік ортадағы жұмыс станцияларында кеңінен қолданылады. Linux және BSD сияқты тегін UNIX нұсқалары осы салаларда танымал. The Open Group (Unix сауда белгісінің иесі) бес операциялық жүйені Unix ретінде сертификаттаған. HP-ның HP-UX және IBM-ның AIX бастапқы System V Unix-тің ұрпақтары болып табылады және тек тиісті өндірушілердің аппараттық құралдарында жұмыс істеуге арналған. Керісінше, Sun Microsystems компаниясының Solaris x86 және SPARC серверлері мен дербес компьютерлер (PC) сияқты бірнеше аппараттық платформаларда жұмыс істей алады. Apple-дің macOS, Apple-дің бұрынғы (Unix емес) классикалық Mac OS-ін алмастырған, NeXTSTEP, Mach және FreeBSD-ден туындаған гибридтік ядролы BSD нұсқасы. IBM-ның z/OS UNIX System Services Mortice Kerns-тің InterOpen өнімдеріне негізделген қабықша және қосымша құралдарды қамтиды. Unix жүйелерінің өзара үйлесімділігін қамтамасыз ету үшін POSIX стандарты жасалды. POSIX стандарты кез келген операциялық жүйеге қолданылуы мүмкін, бірақ бастапқыда ол әртүрлі Unix нұсқалары үшін әзірленген.

BSD және оның ұрпақтары

Unix отбасының кіші тобы – Беркли бағдарламалық қамтамасы тарату отбасы, оған FreeBSD, NetBSD және OpenBSD кіреді. Бұл операциялық жүйелер көбінесе веб-серверлерде кездеседі, бірақ оларды жеке компьютерде де пайдалануға болады. Интернет өзінің пайда болуының үлкен бөлігін BSD-ге қарыз, себебі қазір компьютерлер желі арқылы деректерді қосу, жіберу және қабылдау үшін қолданатын көптеген протоколдар BSD-де кеңінен енгізіліп, жетілдірілді. World Wide Web сондай-ақ NeXTSTEP деп аталатын BSD негізіндегі операциялық жүйеде жұмыс істейтін бірнеше компьютерде алғаш рет көрсетілді. 1974 жылы Калифорния университетінің Беркли қаласындағы бөлімшесі алғашқы Unix жүйесін орнатты. Уақыт өте келе, компьютерлік ғылымдар факультетінің студенттері мен қызметкерлері мәтіндік редакторлар сияқты нәрселерді жеңілдету үшін жаңа бағдарламаларды қоса бастады. 1978 жылы Беркли Unix орнатылған жаңа VAX компьютерлерін алғанда, мектеп студенттері компьютердің аппараттық мүмкіндіктерін толық пайдалану үшін Unix-ті одан да көп өзгертті. АҚШ Қорғаныс министрлігінің Қорғаныс жобаларын зерттеу агенттігі қызығушылық танытып, жобаны қаржыландыруға шешім қабылдады. Көптеген мектептер, компаниялар және мемлекеттік ұйымдар бұл туралы хабардар болып, AT&T таратқан ресми нұсқасының орнына Берклидің Unix нұсқасын қолдана бастады. Стив Джобс 1985 жылы Apple Inc. компаниясынан кеткеннен кейін NeXT Inc. компаниясын құрды, ол NeXTSTEP деп аталатын BSD нұсқасында жұмыс істейтін жоғары сапалы компьютерлерді өндірді. Осы компьютерлердің бірін Тим Бернерс-Ли алғашқы веб-сервер ретінде пайдаланып, Дүниежүзілік Желіні (World Wide Web) құрды. Кит Бостик сияқты бағдарламашылар жобаны Bell Labs-тен шыққан барлық тегін емес кодты алмастыруға ынталандырды. Бірақ бұл орындалғаннан кейін AT&T сотқа шағымданып берді. Екі жылдық сот дауларынан кейін BSD жобасы NetBSD және FreeBSD (екеуі де 1993 жылы) және OpenBSD (1995 жылы NetBSD-ден) сияқты бірнеше тегін туындыларды жасады.

macOS

macOS (бұрынғы Mac OS X, кейін OS X) — Apple Inc. компаниясы әзірлеген, сатқан және таратқан ашық ядролық графикалық операциялық жүйелер желісі. Соңғы нұсқасы қазіргі уақытта шығарылып жатқан барлық Macintosh компьютерлерінде алдын ала орнатылған. macOS 1984 жылдан бері Apple компаниясының негізгі операциялық жүйесі болған Mac OS-тің жалғасы болып табылады. Алдыңғы нұсқасынан айырмашылығы, macOS – NeXT компаниясында 1980-жылдардың екінші жартысында және 1997 жылдың басында Apple компаниясы сатып алғанға дейін әзірленген технологияларға негізделген UNIX операциялық жүйесі. Операциялық жүйе алғаш рет 1999 жылы Mac OS X Server 1.0 ретінде, ал 2001 жылдың наурыз айында клиенттік нұсқасы (Mac OS X v10.0 "Cheetah") ретінде шығарылды. Одан бері macOS-тың тағы алты "клиенттік" және "серверлік" нұсқалары шығарылды, содан кейін екеуі OS X 10.7 "Lion" жүйесінде біріктірілді. macOS-пен бірігуге дейін серверлік нұсқасы macOS Server архитектуралық тұрғыдан десктоптық нұсқасына ұқсас болды және көбінесе Apple компаниясының Macintosh серверлік жабдықтарында жұмыс істеді. macOS Server жұмыс топтарын басқару және әкімшілік құралдарына ие болды, олар негізгі желілік қызметтерге, соның ішінде электрондық пошта жіберу агентіне, Samba серверіне, LDAP серверіне, домендік атаулар серверіне және басқаларына жеңіл қол жеткізуді қамтамасыз етті. Mac OS X v10.7 Lion нұсқасымен Mac OS X Server-дің барлық серверлік мүмкіндіктері клиенттік нұсқаға біріктірілді және өнім "OS X" деп қайта аталды (атаудан "Mac" алынып тасталды). Серверлік құралдар енді қосымша ретінде ұсынылады.

z/OS UNIX жүйелік қызметтері

Алғаш рет MVS/ESA System Product Version 4 Release 3-тің OpenEdition жаңартуы ретінде 1993 жылдың ақпан айында POSIX және басқа стандарттарды қолдаумен жарияланды. z/OS UNIX System Services MVS қызметтеріне негізделген және дербес жұмыс істей алмайды. IBM бастапқыда FIPS талаптарын орындау үшін OpenEdition-ді ұсынғанмен, қазіргі кезде бірнеше z/OS компоненттері UNIX қызметтерін қажет етеді, мысалы, TCP/IP.

Linux жүйесі

Linux ядросы 1991 жылы Финляндияда университет студенті болған Линус Торвальдстың жобасы ретінде дүниеге келді. Ол жобасы туралы компьютер студенттері мен бағдарламашылар арналған жаңалықтар тобына хабарлама жариялады және толыққанды, жұмыс істейтін ядроны құруға сәттілікке жеткен еріктілерден қолдау мен көмек алды. Linux, Unix-ке ұқсас болғанымен, BSD және оның түйінділерінен айырмашылығы, ешқандай Unix коды қолданылмай жасалды. Ашық лицензиялық үлгісінің арқасында Linux ядросының коды зерттеу және өзгерту үшін қолжетімді, нәтижесінде ол суперкомпьютерлерден бастап смарт-сағаттарға дейінгі есептеу құралдарының кең ауқымында қолданылады. Бағалауларға сәйкес, Linux барлық "десктоптық" (немесе ноутбук) компьютерлердің шамамен 2,81%-ында және ұялы телефондар сияқты кіріктірілген жүйелерде қолданылады. Linux көптеген платформаларда Unix-ті басып озды және TOP500 тізіміндегі ең қуатты 500 суперкомпьютердің барлығын қоса алғанда, көптеген суперкомпьютерлерде қолданылады — 2017 жылға қарай барлық бәсекелестерін ығыстырды. Linux сондай-ақ смартфондар мен смарт-сағаттар сияқты басқа да кішкентай, энергияны үнемдейтін компьютерлерде де жиі қолданылады. Linux ядросы Red Hat, Debian, Ubuntu, Linux Mint және Google-дің Android, ChromeOS және ChromiumOS сияқты танымал дистрибутивтерде қолданылады.

Microsoft Windows-тың жүйелік жүйесі

Microsoft Windows – Microsoft корпорациясы жасаған және негізінен x86 архитектурасына негізделген компьютерлерге арналған меншік операциялық жүйелер тобы. Оның барлық платформалардағы әлемдік нарықтық үлесі шамамен 30% құрайды, ал үстел/ноутбук платформаларында оның нарықтық үлесі шамамен 75% құрайды. Соңғы нұсқасы Windows 11. Microsoft Windows 1985 жылы MS-DOS үстінде жұмыс істейтін операциялық орта ретінде шығарылды, ол кезде Intel архитектурасының көптеген жеке компьютерлеріне орнатылған стандартты операциялық жүйе болды. 1995 жылы Windows 95 шығарылды, ол MS-DOS-ты тек жүктеу үшін пайдаланды. Win9x MS-DOS-тың нақты режимінде және 16 биттік Windows 3.x драйверлерін қолдай алды. Windows ME 2000 жылы шығарылды және Win9x отбасының соңғы нұсқасы болды. Келесі нұсқалардың барлығы Windows NT ядросына негізделген. Windows-тың қазіргі клиенттік нұсқалары IA 32, x86 64 және Arm микропроцессорларында жұмыс істейді. Бұрын Windows NT басқа архитектураларды да қолдаған. Windows-тың серверлік нұсқалары кеңінен қолданылады, бірақ Windows-ты серверлерде пайдалану дербес компьютерлердегіден кем, себебі Windows серверлік нарықта Linux және BSD-мен бәсекелеседі. ReactOS – Microsoft кодын пайдаланбай, Windows принциптері бойынша жасалып жатқан Windows-қа баламалы операциялық жүйе.

Құралымдары

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

Жәндіктер

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

Бағдарламаны орындау

Операциялық жүйе қолданбалы бағдарлама мен компьютерлік аппараттық құралдар арасында интерфейс құрады, сондықтан қолданбалы бағдарлама аппараттық құралдармен тек операциялық жүйеге бағдарламаланған ережелер мен процедураларды сақтай отырып қана өзара әрекеттесе алады. Операциялық жүйе сонымен қатар қолданбалы бағдарламаларды жасау және іске асыруды жеңілдететін қызметтер жиынтығы болып табылады. Қолданбалы бағдарламаны іске қосу әдетте операциялық жүйе ядросының процесті құруын қамтиды, ол жад кеңістігін және басқа да ресурстарды бөліп береді, көп тапсырмалы жүйелерде процеске үлкендік дәрежесін қояды, бағдарламаның екілік кодын жадқа жүктейді және қолданбалы бағдарламаның орындалуын бастайды, ол содан кейін пайдаланушымен және аппараттық құрылғылармен өзара әрекеттеседі. Дегенмен, кейбір жүйелерде қолданба операциялық жүйеден басқа қолданбаны сол процесте, субпрограмма ретінде немесе жеке талдамда орындауды сұрай алады, мысалы, OS/360 және оның ізбасарларының LINK және ATTACH мүмкіндіктері.

Тоқтатулар

Тоқтату (сонымен қатар, үзілу, ерекше жағдай, қателік, сигнал немесе тұзақ деп те аталады) көптеген операциялық жүйелерге ортаға тиімді түрде ден қоюға мүмкіндік береді. Тоқтатулар орталық процессорды (CPU) қазіргі уақытта жұмыс істеп жатқан бағдарламадан басқа бағытқа өздерінен-өзді ауыстырады, бұл үзіліс қызметтік бағдарламасы (ISR) деп те аталады. Үзіліс қызметтік бағдарламасы орталық процессордың (CPU) контекстік ауысуын тудыруы мүмкін. Компьютердің үзілісті қалай өңдейтіні архитектураға қарай өзгереді, ал үзіліс қызметтік бағдарламаларының жұмысы операциялық жүйеге қарай әртүрлі болады. Дегенмен, бірнеше жалпы үзіліс функциялары бар. Бағдарламалық үзілістер аппараттық үзілістерге ұқсас – қазіргі процестен ауысу болады. Сол сияқты, аппараттық және бағдарламалық үзілістер үзіліс қызметтік бағдарламасын орындайды. Бағдарламалық үзілістер әдетте болатын оқиғалар болуы мүмкін. Уақыт тілімі пайда болады деп күтіледі, сондықтан ядро контекстік ауысуды орындауы керек. Компьютерлік бағдарлама, егер алгоритмге тым көп дерек көп уақыт алса, бірнеше секундтан кейін таймерді қоюы мүмкін. Бағдарламалық үзілістер қателік жағдайлары болуы мүмкін, мысалы, дұрыс емес машиналық нұсқау. Синтаксис – INT X, мұнда X – үзіліс векторлық кестесіндегі офсет нөмірі (он алтылық форматта).

Сигнал

Unix-ке ұқсас операциялық жүйелерде бағдарламалық үзілістерді жасау үшін kill(pid, signum) жүйелік шақыру басқа процеске сигнал жібереді. pid – қабылдаушы процестің процесс идентификаторы. signum – жіберілетін сигнал нөмірі (мнемоникалық форматта). («kill» деген абразивті атау таңдалған себебі, алғашқы іске асырулар тек процесті тоқтатуға арналған еді.) Unix-ке ұқсас операциялық жүйелерде сигналдар процестерге асинхронды оқиғалардың орын алуы туралы хабарлайды. Процестің басқа процеске асинхронды түрде хабарласуының бір себебі – классикалық оқырман/жазу мәселесінің бір түрін шешу. Жазушы шолпаннан түтік алады, оның нәтижесі оқырманның кіріс ағынына жіберіледі. Командалық жол синтаксисі: alpha | bravo. alpha есептеуі дайын болған кезде түтікке жазады, содан кейін күту кезектерінде күтеді. «bravo» дайындық кезекке ауыстырылып, жақын арада кіріс ағынынан оқиды. Ядро құбырларды үйлестіру үшін бағдарламалық үзілістерді тудырады. Кейбір компьютерлер әр таңба немесе сөз үшін үзіліс талап етеді, бұл процессор уақытының көп бөлігін алады. Тікелей жадқа қол жеткізу (DMA) – құрылғыларға процессорды айналып өтіп, тікелей негізгі жадқа қол жеткізуге мүмкіндік беретін архитектуралық мүмкіндік. (Архитектурадан бөлек, құрылғы негізгі жадқа тікелей немесе шина арқылы тікелей жадқа қол жеткізуді орындай алады.)

Тоқтатумен басқарылатын I/O

Компьютер пайдаланушысы пернетақтаға перне басқанда, әдетте, әріп бірден экранда пайда болады. Сол сияқты, пайдаланушы тышқанды қозғалтқанда, курсор экранда бірден қозғалады. Әрбір перне басылуы мен тышқанның қозғалысы үзіліс арқылы басқарылатын I/O деп аталатын үзілісті тудырады. Үзіліс арқылы басқарылатын I/O, процесс әрбір жіберілген әріп үшін үзіліс тудырғанда пайда болады.

Көп тапсырмалылық

Көп тапсырмалы жұмыс – бір компьютерде бірнеше тәуелсіз компьютерлік бағдарламаларды бірдей орындалып жатқандай етіп көрсету. Көптеген компьютерлер бір уақытта бір немесе екі ғана нәрсені жасай алатындықтан, бұл әдетте уақыт бөлісу арқылы іске асырылады, яғни әр бағдарлама компьютер уақытының бір бөлігін орындау үшін пайдаланады. Операциялық жүйенің ядросы әрбір процестің орындалуына жұмсалатын уақытты және орындалуды басқаруды бағдарламаларға қандай ретпен беру керектігін анықтайтын жоспарлау бағдарламасын қамтиды. Басқару процеске ядро арқылы беріледі, ол бағдарламаға процессор мен жадқа қол жеткізуге мүмкіндік береді. Кейін басқару белгілі бір механизм арқылы ядроға қайтарылады, соның арқасында басқа бағдарламаға процессорды пайдалануға рұқсат беріледі. Ядро мен қолданбалар арасындағы басқаруды беру процесі контексттік ауыстыру деп аталады. Бағдарламаларға уақытты бөлуді реттеген алғашқы модель – кооперативтік көп тапсырмалылық деп аталды. Бұл модельде басқаруды ядро бағдарламаға берген кезде, ол басқаруды ядроға қайтарғанға дейін қалағанындай орындала береді. Бұл зиянды немесе қате жұмыс істейтін бағдарламаның басқа бағдарламалардың процессорды пайдалануына кедергі келтіріп қана қоймай, шексіз циклге түскен жағдайда бүкіл жүйені тоқтата алуы мүмкін дегенді білдіреді. Қазіргі операциялық жүйелер қолданбаларды алдын ала тоқтату тұжырымдамасын құрылғы драйверлері мен ядролық кодқа дейін кеңейтеді, сондықтан операциялық жүйе ішкі орындалу уақытын да алдын ала басқара алады. Алдын ала бірнеше тапсырманы орындау философиясы – барлық бағдарламаларға процессорда тұрақты уақыт беруді қамтамасыз ету. Бұл барлық бағдарламалар процессорда үзіліссіз жұмсай алатын уақыт мөлшерімен шектелуі керек дегенді білдіреді. Мұны іске асыру үшін қазіргі операциялық жүйе ядролары уақыттық үзілісті пайдаланады. Қорғалған режимдегі таймер ядромен белгіленеді, ол белгіленген уақыт өткеннен кейін қадағалау режиміне оралуды іске қосады. (Жоғарыдағы Үзілістер және Екі режимді жұмыс бөлімдерін қараңыз.) Көптеген бір пайдаланушылық операциялық жүйелерде кооперативтік көп тапсырмалылық жеткілікті, себебі үй компьютерлерінде әдетте жақсы тексерілген аз ғана бағдарламалар орындалады. AmigaOS – бұл ерекшелік, өйткені оның алғашқы нұсқасынан бастап-ақ алдын ала көп тапсырмалылық мүмкіндігі болды. Windows NT – Microsoft Windows-тың алдын ала көп тапсырмалылықты қолдаған алғашқы нұсқасы, бірақ ол Windows XP-ге дейін үй пайдаланушылар нарығына жетпеді (Windows NT кәсіби мамандарға бағытталғандықтан).

Дискіге қол жеткізу және файл жүйелері

Дискіде сақталған деректерге қол жеткізу барлық операциялық жүйелердің маңызды мүмкіндігі болып табылады. Компьютерлер деректерді дискілерде файлдар түрінде сақтайды, олар жылдам қол жеткізу, жоғары сенімділік және дискідегі бос орынды тиімді пайдалану үшін белгілі бір ретпен құрылған. Файлдардың дискіде сақталу әдісі файлдық жүйе деп аталады, ол файлдарға атау мен қасиеттер беруге мүмкіндік береді. Сондай-ақ, оларды каталогтар немесе папкалардың иерархиялық құрылымында, каталог ағашы түрінде сақтауға мүмкіндік береді. Ескі операциялық жүйелер көбінесе бір типті дискіні және бір ғана файлдық жүйені қолдаған. Алғашқы файлдық жүйелер сыйымдылығы, жылдамдығы және қолдана алатын файл атаулары мен каталог құрылымдары бойынша шектеулі болды. Бұл шектеулер көбінесе оларға арналған операциялық жүйелердегі шектеулерді көрсететін, сондықтан операциялық жүйеге бірнеше файлдық жүйені қолдау көрсету қиынға соқты. Көптеген қарапайым операциялық жүйелер сақтау жүйелеріне қол жеткізу үшін шектеулі опцияларды қолдайды, ал UNIX және Linux сияқты операциялық жүйелер виртуалды файлдық жүйе (VFS) деп аталатын технологияны қолдайды. UNIX сияқты операциялық жүйе олардың дизайнына немесе файлдық жүйесіне қарамастан, кең ауқымды сақтау құрылғыларын қолдайды, оларға ортақ қолданбалы бағдарламалау интерфейсі (API) арқылы қол жеткізуге мүмкіндік береді. Бұл бағдарламаларға қол жетімді құрылғы туралы білу қажеттігін жояды. VFS операциялық жүйеге арнайы құрылғы драйверлері мен файлдық жүйе драйверлерін пайдалану арқылы бағдарламаларға шексіз көп құрылғыларға қол жеткізуді қамтамасыз етуге мүмкіндік береді. Қатты дискі сияқты қосылған сақтау құрылғысына құрылғы драйвері арқылы қол жеткізіледі. Құрылғы драйвері дискінің ерекше тілін түсінеді және оны операциялық жүйенің барлық дискілерге қол жеткізу үшін қолданатын стандартты тілге аударады. UNIX-та бұл блок құрылғыларының тілі. Егер ядрода тиісті құрылғы драйвері болса, ол дискінің мазмұнына шикі форматта қол жеткізе алады, онда бір немесе бірнеше файлдық жүйелер болуы мүмкін. Файлдық жүйе драйвері әрбір файлдық жүйеге қол жеткізу үшін қолданылатын командаларды операциялық жүйенің барлық файлдық жүйелермен байланысу үшін пайдалана алатын стандартты командалар жиынтығына аудару үшін қолданылады. Бағдарламалар осы файлдық жүйелермен файл атаулары мен иерархиялық құрылымда орналасқан каталогтар/папкалар негізінде жұмыс істей алады. Олар файлдарды құруға, жоюға, ашуға және жабуға, сондай-ақ олар туралы әртүрлі ақпаратты жинауға мүмкіндік алады, оның ішінде кіруге рұқсаттар, көлем, бос орын және құрылған және өзгертілген күндер. Файлдық жүйелер арасындағы айырмашылықтар барлық файлдық жүйелерді қолдауды қиындатады. Файл атауларындағы рұқсат етілген таңбалар, әріптердің регистріне сезімталдық және әртүрлі файл атрибуттарының болуы әрбір файлдық жүйе үшін біртұтас интерфейсті жасауды қиын міндет етеді. Операциялық жүйелер олар үшін арнайы жасалған файлдық жүйелерді пайдалануды ұсынады (және оларды қолдайды), мысалы, Windows-та NTFS, ал Linux-та ReiserFS, Reiser4, ext3, ext4 және Btrfs. Алайда, практикада, үшінші тарап драйверлері әдетте жалпы мақсаттағы операциялық жүйелерде ең көп қолданылатын файлдық жүйелерді қолдау үшін қол жетімді (мысалы, Linux-та NTFS 3g арқылы NTFS, ал Windows-та ext2/3 және ReiserFS үшінші тарап бағдарламалық жасақтамасы арқылы қол жетімді). Файлдық жүйелерді қолдау қазіргі операциялық жүйелерде әртүрлі, бірақ барлық операциялық жүйелерде қолдау мен драйверлерді қамтитын бірнеше жалпы файлдық жүйелер бар. Операциялық жүйелер файлдық жүйелерді қолдау және олардың орнатылуы мүмкін дискілік форматтар бойынша әр түрлі болады. Windows-та әрбір файлдық жүйе белгілі бір медиаға қолданумен шектеледі, мысалы, CD-лер ISO 9660 немесе UDF қолдануы керек, ал Windows Vista-дан бастап NTFS операциялық жүйені орнатуға болатын жалғыз файлдық жүйе болып табылады. Linux-ты көптеген файлдық жүйелерге орнатуға болады. Басқа операциялық жүйелерден айырмашылығы, Linux және UNIX кез келген файлдық жүйені, ол сақталған ортаға қарамастан қолдануға мүмкіндік береді, ол қатты дискіде, дискіде (CD, DVD), USB флеш-дискіде немесе тіпті басқа файлдық жүйеде орналасқан файлда болуы мүмкін.

Құрылғы драйверлері

Құрылғы драйвері – аппараттық құрылғылармен өзара әрекеттесуге мүмкіндік беретін компьютерлік бағдарламалық жасақтаманың белгілі бір түрі. Әдетте, бұл құрылғымен байланыс үшін интерфейс болып табылады, аппараттық жабдық қосылған нақты компьютерлік шина немесе байланыс подсистемасы арқылы, құрылғыға командалар беру немесе одан деректер қабылдау, ал екінші жағынан, операциялық жүйе мен бағдарламалық қосымшаларға қажетті интерфейстерді қамтамасыз етеді. Бұл – арнайы аппараттық құралға тәуелді, сонымен қатар операциялық жүйеге тән компьютерлік бағдарлама, ол басқа бағдарламаға, әдетте операциялық жүйеге немесе бағдарламалық пакетке немесе операциялық жүйе ядросы астында жұмыс істейтін компьютерлік бағдарламаға аппараттық құрылғымен ашық түрде өзара әрекеттесуге мүмкіндік береді және әдетте кез келген қажетті асинхронды, уақытқа тәуелді аппараттық интерфейс қажеттіліктері үшін қажетті үзіліс өңдеуді қамтамасыз етеді. Құрылғы драйверлерінің негізгі жобалау мақсаты – абстракция. Әрбір аппараттық модель (бір кластағы құрылғылардың ішінде де) әр түрлі болады. Жаңа модельдерді өндірушілер сенімдірек немесе жақсы өнімділікпен қамтамасыз ету үшін шығарады, және бұл жаңа модельдер көбінесе басқаша басқарылады. Компьютерлер мен олардың операциялық жүйелері әрбір құрылғыны қалай басқаруды білуі керек деп күтуге болмайды, соның ішінде қазіргі және болашақтағы құрылғыларды. Бұл мәселені шешу үшін операциялық жүйелер құрылғылардың әр түрін қалай басқару керектігін анықтайды. Құрылғы драйверінің функциясы – осы операциялық жүйе талап еткен функциялық шақыруларды құрылғыға арналған шақыруларға аудару болып табылады. Теориялық тұрғыдан алғанда, жаңа тәсілмен басқарылатын жаңа құрылғы, егер оған сәйкес драйвер болса, дұрыс жұмыс істеуі керек. Бұл жаңа драйвер құрылғы операциялық жүйенің көзқарасынан әдеттегідей жұмыс істейтінін қамтамасыз етеді. Windows-тың Vista нұсқасынан бұрынғы және Linux-тың 2.6 нұсқасынан бұрынғы нұсқаларында барлық драйверлердің орындалуы кооперативті болды, яғни драйвер шексіз циклге кірсе, жүйе тоңу қаупі бар еді. Бұл операциялық жүйелердің жаңа нұсқаларында ядролық алдын алу қарастырылған, онда ядро драйверге тапсырмалар беру үшін оны үзеді, содан кейін құрылғы драйверінен жауап алғанға дейін немесе оған қосымша тапсырмалар бергенге дейін процесспен байланысын үзеді.

Желі құру

Қазіргі уақытта көптеген операциялық жүйелер түрлі желілік протоколдарды, аппараттық құралдарды және оларды пайдалануға арналған бағдарламаларды қолдайды. Бұл, әртүрлі операциялық жүйелерде жұмыс істейтін компьютерлер сымды немесе сымсыз қосылымдар арқылы есептеу, файлдар, принтерлер және сканерлер сияқты ресурстарды бөлісу үшін бір ортақ желіге қосыла алады дегенді білдіреді. Желілер компьютердің операциялық жүйесіне қашықтағы компьютердің ресурстарын пайдалануға мүмкіндік береді, бұл ресурстар тікелей жергілікті компьютерге қосылғанда қолдауға болатын функциялармен бірдей болады. Бұл қарапайым байланыстан бастап, желілік файлдық жүйелерді пайдалануға дейін, тіпті басқа компьютердің графикалық немесе дыбыс жабдықтарын бөлісуге дейін қамтиды. Кейбір желілік қызметтер компьютердің ресурстарын ашық түрде пайдалануға мүмкіндік береді, мысалы, SSH, ол желілік пайдаланушыларға компьютердің командалық қатар интерфейсіне тікелей қол жеткізуге мүмкіндік береді. Клиент/сервер желісі компьютердегі бағдарламаға (клиент деп аталады) желі арқылы басқа компьютерге (сервер деп аталады) қосылуға мүмкіндік береді. Серверлер басқа желілік компьютерлер мен пайдаланушыларға түрлі қызметтерді ұсынады (немесе хостинг жасайды). Бұл қызметтер әдетте сервердің IP-мекенжайынан тыс порттар немесе нөмірленген кіру нүктелері арқылы ұсынылады. Әрбір порт нөмірі әдетте осы портқа келетін сұрауларды өңдеуге жауапты бір ғана жұмыс істеп тұрған бағдарламамен байланыстырылады. Демон, пайдаланушы бағдарламасы болғандықтан, операциялық жүйе ядросына сұраулар жіберіп, сол компьютердің жергілікті аппараттық ресурстарын пайдалана алады. Көптеген операциялық жүйелер бір немесе бірнеше өндірушіге тән немесе ашық желілік протоколдарды қолдайды, мысалы, IBM жүйелеріндегі SNA, Digital Equipment Corporation жүйелеріндегі DECnet және Windows жүйелеріндегі Microsoft-тың арнайы протоколдары (SMB). Файлдарға қол жеткізу үшін NFS сияқты нақты тапсырмаларға арналған арнайы протоколдар да қолдау таба алады. ESound немесе esd сияқты протоколдарды желі арқылы оңай кеңейтіп, жергілікті бағдарламалардан дыбысты қашықтағы жүйенің дыбыс жабдықтарында беруге болады.

Қауіпсіздік

Қауіпсіздік – пайдаланушыларды сол компьютердің басқа пайдаланушыларынан, сондай-ақ желі арқылы қашықтан қол жеткізуге тырысатындардан қорғауды білдіреді. Операциялық жүйелердің қауіпсіздігі ЦРУ үштігін (құпиялылық – уәкілетсіз пайдаланушылар деректерге қол жеткізе алмайды, тұтастығы – уәкілетсіз пайдаланушылар деректерді өзгерте алмайды және қолжетімділігі – жүйенің сервистен бас тарту шабуылдары кезінде де уәкілетті пайдаланушыларға қолжетімді болуын қамтамасыз ету) қамтамасыз етуге негізделген. Басқа компьютерлік жүйелер сияқты, қауіпсіздік салаларын оқшаулау – операциялық жүйелерде ядро, процестер және виртуалды машиналар – қауіпсіздікті қамтамасыз етудің кілті болып табылады. Қауіпсіздікті арттырудың басқа да жолдары: шабуыл бетін азайту үшін қарапайымдылықты ұстану, ресурстарға кіруді әдепкі бойынша шектеу, барлық рұқсат сұрауларын тексеру, ең аз құқықтар принципін (міндетті орындау үшін қажетті ең төменгі құқықтарды беру), құқықтарды бөлу және ортақ деректерді азайту. Кейбір операциялық жүйелер басқаларына қарағанда қауіпсіз. Ядро мен қолданбалар арасында оқшаулау жоқ жүйелер ең қауіпсізсіз, ал көптеген жалпы мақсаттағы операциялық жүйелер сияқты монолитті ядросы бар жүйелер, ядроның кез келген бөлігі бұзылса, осал болып қалады. Көбірек қауіпсіздік қамтамасыз ететін дизайн микроядроларды пайдаланады, олар ядроның құқықтарын көптеген жеке қауіпсіздік салаларына бөледі және бір ядроның бұзылуының салдарын азайтады. Юникернельдер – ядроны азайту және басқа операциялық жүйелердің функционалдығын қолданбалар бойынша бөлу арқылы қауіпсіздікті жақсартатын тағы бір тәсіл. Көптеген операциялық жүйелер C немесе C++ тілдерінде жазылған, бұл осалдықтарға себеп болуы мүмкін. Олардан қорғануға жасалған әрекеттерге қарамастан, көптеген осалдықтар шекараны тексерудің болмауынан туындайтын буфер асығу шабуылдарынан туындайды. Аппараттық осалдықтар, олардың кейбіреулері процессордың оңтайландыруынан туындайды, операциялық жүйені бұзу үшін де пайдаланылуы мүмкін. Операциялық жүйені кодтаған бағдарламашылар қасақана осалдықтарды, мысалы, артқы есіктерді енгізуі мүмкін. Операциялық жүйелердің қауіпсіздігі олардың күрделенуімен және осыған байланысты қателердің болуымен шектеледі. Операциялық жүйелерді формалды түрде тексеру мүмкін болмағандықтан, әзірлеушілер қауіпсіздікті арттыру үшін қатайту шараларын қолданады, мысалы, адрестік кеңістіктің кездейсоқтығы, басқару ағынының тұтастығы, қол жеткізуді шектеу және басқа да техникалар. Ашық кодты операциялық жүйелерге кез келген адам код қоса алады, олардың код тарихы ашық және таратылған басқару құрылымдары бар. Олардың әзірлеушілері зиянды кодты болдырмау үшін кодты қарау және типтік тексеру сияқты әдістерді қолдана отырып, қауіпсіздік осалдықтарын табу және жою үшін бірлесіп жұмыс істейді. Эндрю С. Таненбаум барлық операциялық жүйелердің бастапқы кодын жариялауға кеңес береді, бұл әзірлеушінің оны құпия деп ойлауына және құпиялылық арқылы қауіпсіздікке сүйенуіне жол бермейді деп санайды.

Пайдаланушы интерфейсі

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

Графикалық пайдаланушы интерфейстері

Қазіргі заманғы компьютерлік жүйелердің көпшілігі графикалық пайдаланушы интерфейстерін (GUI) қолдайды және көбінесе оларды қамтиды. Кейбір компьютерлік жүйелерде, мысалы, классикалық Mac OS-тің бастапқы нұсқасында, GUI ядроға біріктірілген. Техникалық тұрғыдан алғанда графикалық пайдаланушы интерфейсі операциялық жүйе қызметі болмаса да, оны операциялық жүйе ядросына енгізу GUI-дің шығыс функцияларын орындау үшін қажетті контексттік ауысулар санын азайту арқылы оның жауап беру жылдамдығын арттыруға мүмкіндік береді. Басқа операциялық жүйелер модульдік болып келеді, графикалық кіші жүйені ядродан және операциялық жүйеден бөліп тұрады. 1980-ші жылдары UNIX, VMS және тағы да көптеген жүйелер осылай құрылған. Linux және macOS та осылай құрылған. Microsoft Windows-тың Windows Vista сияқты жаңа нұсқалары графикалық кіші жүйені негізінен пайдаланушы кеңістігінде іске асырады; алайда Windows NT 4.0 мен Windows Server 2003 арасындағы нұсқалардың графикалық сызу процедуралары негізінен ядро кеңістігінде орналасқан. Windows 9x интерфейсі мен ядро арасында айырмашылық өте аз болды. Көптеген компьютерлік операциялық жүйелер пайдаланушыға қалауынша кез келген пайдаланушы интерфейсін орнатуға немесе жасауға мүмкіндік береді. X Window System, GNOME немесе KDE Plasma 5 жүйелерімен бірге Unix және Unix-қа ұқсас (BSD, Linux, Solaris) жүйелерде кеңінен қолданылады. Microsoft Windows үшін Windows қабығын алмастыратын бірнеше бағдарламалар шығарылды, олар кіріктірілген Windows қабығына балама ұсынады, бірақ қабықтың өзі Windows-тан бөліне алмайды. Уақыт өте келе көптеген Unix-негізгі GUI пайда болды, олардың көпшілігі X11-ден туындаған. Unix-тің әртүрлі өндірушілері арасындағы бәсекелестік (HP, IBM, Sun) көптеген фрагментацияға әкелді, бірақ 1990-шы жылдары COSE және CDE стандартына көшу әрекеті түрлі себептермен сәтсіз аяқталды және ақырында GNOME және K Desktop Environment-тің кеңінен таралуымен ығысып кетті. Тегін бағдарламалық құралдарға негізделген құралдар жиынтығы мен жұмыс үстелі орталары пайда болғанға дейін Motif ең көп таралған құралдар жиынтығы/жұмыс үстелі комбинациясы болды (және CDE-нің негізі болды). Графикалық пайдаланушы интерфейстері уақыт өте келе өзгеріп отырады. Мысалы, Windows жаңа негізгі нұсқасы шыққан сайын пайдаланушы интерфейсін өзгертеді, ал Mac OS GUI 1999 жылы Mac OS X енгізілгеннен кейін күрт өзгерді.

Нақты уақыт операциялық жүйелері

Нақты уақыт операциялық жүйесі (RTOS) – белгілі мерзімдері бар (нақты уақыт есептеу) қолданбаларға арналған операциялық жүйе. Мұндай қолданбаларға кейбір кішігірім кіріктірілген жүйелер, автомобильдердің қозғалтқыштарын басқару контроллері, өнеркәсіптік роботтар, ғарыш кемелері, өнеркәсіптік бақылау және кейбір кең көлемді есептеу жүйелері жатады. Ірі масштабты нақты уақыт операциялық жүйесінің ерте мысалы – American Airlines және IBM компанияларының Sabre әуе билеттерін брондау жүйесі үшін жасаған «Транзакцияларды өңдеу құралы» болды. Белгілі мерзімдері бар кіріктірілген жүйелер VxWorks, PikeOS, eCos, QNX, MontaVista Linux және RTLinux сияқты нақты уақыт операциялық жүйелерін пайдаланады. Windows CE – десктоптық Windows-қа ұқсас API-лерді бөлісетін, бірақ десктоптық Windows-тың код базасымен ешқандай ортақ нәрсесі жоқ нақты уақыт операциялық жүйесі. Symbian OS 8.0b нұсқасынан бастап RTOS ядросын (EKA2) қамтиды. Кейбір кіріктірілген жүйелер Palm OS, BSD және Linux сияқты операциялық жүйелерді қолданады, бірақ мұндай операциялық жүйелер нақты уақыт есептеуді қолдамайды.

Операциялық жүйелерді хобби ретінде әзірлеу

Әуесқойлық операциялық жүйе – бұл кодтары тікелей қолданыстағы операциялық жүйеден туындамаған, пайдаланушылары мен белсенді дамытушылары аз жүйелер деп қарастырылады. Кейде әуесқойлық даму "өздігінен жасалған" есептеу құрылғысын қолдау мақсатында болады, мысалы, 6502 микропроцессорымен жұмыс істейтін қарапайым бір тақталы компьютер. Немесе, даму кеңінен қолданылатын архитектура үшін жүргізілуі мүмкін. Операциялық жүйе дамыту жаңа идеялар негізінде басталуы немесе қолданыстағы операциялық жүйенің үлгісін алу арқылы жүзеге асырылуы мүмкін. Екі жағдайда да, әуесқой өзі дамытушы болып табылады немесе осындай қызығушылықтары бар шағын, кейде ұйымдаспаған топпен бірлесе жұмыс істей алады. Syllable және TempleOS – әуесқойлық операциялық жүйелердің мысалдары.

Операциялық жүйелердің әртүрлілігі және тасымалдануы

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