# Оперативен систем

Ubuntu
**Оперативниот систем** (кој обично се скратува како *OС* или *O/С*) е посредник од програми помеѓу хардверот и корисникот; ОС е одговорен за управувањето и координирањето на активностите и за делењето на ресурсите на компјутерот. Оперативниот систем работи како хост за апликациите за пресметки кои се извршуваат на машината. Како хост, една од целите на оперативниот систем е да ракува со деталите на операцијата на хардверот. Ова им олеснува на апликациските програми да не мораат да управуваат со овие детали и го прави полесно самото пишување на апликациите. Скоро сите уреди ( вклучувајќи ги и преносливите компјутери, desktop компјутерите, суперкомпјутерите, video game конзолите, таблетите, медија центар компјутерите и мобилните телефони) како и некои работи, домашните апарати (машините за перење, машините за миење на садови), па дури и портабилните медиа играчи користат оперативен систем од некој тип. Некои од старите модели може да користат вграден оперативен систем, кој може да биде содржан на компактниот диск или на друг уред за зачувување на податоци.

Оперативните системи нудат голем број на сервиси за апликациските програми и корисници. Апликациите им пристапуваат на овие сервиси преку апликацискиот програмски посредник (API) или преку системски повици. Со повикување на овие интерфејси, апликацијата може да побара сервис од оперативниот систем, да ги помине параметрите и да ги прими резултатите од операцијата. На личните сметачи секоја година најмногу се користат различни верзии на Microsoft Windows (Windows 95, Windows 98, Windows ME (Millennium), Windows NT (New Technology), Windows 2000, Windows XP (Experience), Windows Server 2003, Windows Vista и Windows 2008, Windows 7). Корисниците исто така можат да имаат интеракција со оперативниот систем преку некој вид на софтверски кориснички посредник (UI) како пишување на команди со користење на command line посредникот (CLI) или користење на графички кориснички посредник (GUI). На големите повеќе кориснички системи, како Unix и системите слични на Unix, корисничкиот посредник генерално е имплементиран како апликациска програма која се извршува надвор од оперативниот систем. *Macintosh* компјутерите користат различни верзии на Mac OS X.

Повеќето од современите фамилии на оперативни системи вклучуваат BSD, Darwin (Mac OS X), Linux, SunOS (Solaris/OpenSolaris), и Windows NT (XP/Vista/7). Додека опслужувачите генерално извршуваат Unix и Unix- like оперативен систем, пазарите на вградените системи се поделени помеѓу неколку оперативни системи.

## Историја

### На почетокот

Во раните 60-ти год. комерцијалните комјутерски трговци набавиле доволно пространи алатки за насочување на развојот, распоредување и за извршување на работи на пакетно ориентираните обработувачки системи. Примерите беа произведени од страна на UNIVAC од HKho и Control Data Corporation, меѓу друѓите.

Оперативните системи во почетокот се развивале на мејнфрејми (големи сметачи), а подоцна оригиналните оперативни системи за микрокомпјутерите, во исто време можеле да поддржат само една програма, барајќи само еден основен распоредувач. Секоја програма била под комплетна контрола на машината додека таа се извршувала.

Во 1969-70, UNIX прво се појавил на PDP-7, а подоцна на PDP-11. Наскоро тој станал способен да произведува делење на времето низ платформата со користење на preemptive multitasking, напредно управување на меморијата, заштита на меморијата, и хост од другите напредни одлики. UNIX наскоро добил популарност како оперативен систем за мејнфрејми и миникомпјутери.

MS-DOS обезбедуваат многу оперативни системи со одлики, како диск пристап. Меѓутоа, многу DOS програми го заобиколуваат целосно и директно се извршуваат на хардверот. IBM верзијата, PC DOS, се извршува на IBM микрокомпјутерите, вклучувајќи ги IBM PC и IBM PC XT и MS-DOS дошле во распространета употреба ма клонови на овие машини.

Компјутерите компатибилни со IBM PC исто така можат да го извршат Microsoft Xenix, оперативен систем сличен на UNIX од раните 1980-ти. Xenix бил тешко продаван од Microsoft како повеќекорисничка алтернатива во неговиот единствен кориснички MS-DOS оперативен систем. Обработувачите на овие лични сметачи не можат да ја олеснат заштитата на меморијата на јадрото или да овозможат дуален режим на операција, така што Xenix би се потпирал на кооперативна повеќезадачност и би немал заштитена меморија.

IBM PC AT заснован на 80286 беше првиот IBM компатибилен личен сметач способен да користи режим на дуална операција, произведувајќи заштита на меморијата. Меѓутоа, присвојувањето на овие одлики од страна на софтверските трговци задоцнило поради многубројните грешки во нивната имплементација на 286 и биле единствено широко прифатени со пуштањето во употреба на Intel 80386.

Класичниот Mac OS и Microsoft Windows 1.0-3.11 поддржувале само кооперативна повеќезадачност (Windows 95, 98, & ME поддржувале preemptive multitasking само кога се извршуваат 32-битни апликации, а наследените 16-битни апликации извршувајќи ги со употреба на кооперативен multitasking), и биле многу ограничени во нивните способности за да можат да земат предности во заштитената меморија. Апликациските програми кои се извршуваат на овие оперативни системи мора да го добијат обработувачккото време од страна распоредувачот, кога тие не го користеле, или под default, или преку повик на некоја функција.

Јадрото на основниот оперативен систем на Windows NT кое било дизајнирано од истиот тим како и VMS на Digital Equipment Corporation, UNIX-like оперативен систем кој произведува заштитен режим на работа за сите кориснички програми, заштита на меморијата на јадрото, поддршка на виртуелните податотечни системи, preemptive multitasking.

Класичниот AmigaOS и верзиите на Microsoft Windows од Windows 1.0 до Windows Me немале соодветна трага до ресурсите кои биле алоцирани од страна на процесите за време на извршувањето. Ако процесот морал да заврши, ресурсите може да не биле ослободени од новите програми сè додека машината не се рестартирала. Amiga OС имал preemptive multitasking.

### Мејнфрејми

Во текот на 60те, многу главни карактерисики во полето на оперативните системи беа претставени. Развојот на IBM System/360 продуцираше цела фамилија на мејнфрејми (mainframe) компјутери достапни во различни капацитети и различни цени, за кои потребен беше единствен оперативен систем ОС/360. Овој концепт на единствен оперативен систем разви цела производна лента, што беше клучно за успехот на System/360 и всушност денешните mainframe оперативни системи се далечни предци на овој оригинален систем; апликациите напишани за ОС/360 можат и денес да бидат извршувани на модерните машини.

 ОС/360 исто така претставија и голем број на концепти кои, во некои случаи, сѐ уште не се виден надвор од mainframe аrena. На пример, во OС/360, кога се стартува програма, оперативниот систем ги прати сите компјутерски ресурси кои се користат вклучувајќи ги и меморијата за зачувување податоци, дадотеки со податоци, клучеви итн. Кога процесот е прекинат од било која причина, сите овие ресурси се вратени назад од оперативниот систем. Алтернативен CP-67 систем започна нова линија на оперативни системи фокусирани на концептот на виртуелни машини.

Control Data Corporation го разви SCOPE оперативниот систем во 60те за пакетна обработка. Во соработка со Универзитетот од Минесота, KRONOS а подоцна и  NOS оперативните системи беа развиени во текот на 70те, кои поддржуваа симултано и сериска употреба и употреба на поделба на времето. Како многу комерцијални системи со поделба на времето, неговиот посредник беше продолжување на Dartmouth BASIC оперативниот систем, еден од предводниците во системите со поделба на времето и во програмските јазици. Во доцните 70ти, Control Data и Универзитетот од Илиноис го развија PLATO оперативниот систем, кој користеше екрани со плазма панелни плочи и мрежи за поделба на времето на поголеми растојанија. PLATO беше многу оригинален за неговото време, со разговори на реално време, и повеќе кориснички графички игри. Burrouhs Corporation го претстави B5000 во 1961 со MCP, (Master Control Program) оперативен систем. B5000 беше стек машина дизајнирана само за да ги поддржи високо развиените јазици без машина за јазици или асемблер, и навистина МCP беше првиот оперативен систем кој беше напишан исклучиво во високо развиен јазик ESPOL, дијалект на ALGOL. МCP исто така воведе многу други иновации, тој беше првиот оперативен систем кој ја имплементирасе виртуелната меморија. За време на развојот на AS400, IBM испрати понуда до Burroughs да го лиценсира МCP да извршува на АS400 хардвер. Оваа понуда беше одбиена од менаџментот на Burroughs со цел да се заштите сопственото производство на хардвер. MCP e сѐ уште во употреба денес во Unisys ClearPath/MCP компјутерите.

UNIVAC, првиот комерцијален производител на компјутери, произведе серија на ЕXEC оперативни системи. Како и сите примарни main-frame systems, и овој беше batch (пакетно-ориентиран) систем кој управуваше со магнетни резервоари, дискови, читачи на картици и печатачи. Во 70те, UNIVAC произведе Real-Time Basic (RTB) system за да подржи поделба на времето во поголем опсег, што исто така беше по пример на Dartmouth BASIC system

Digital Equipment Corporation разви многу оперативни системи за нивните различни компјутерски линии, вклучувајќи ги ТОPS-10 и TOPS-20 системите за поделба на времето за 36 битните PDP-10 системи. Пред раширувањето на UNIX, TOPS-10 беше многу

Во доцните 60ти па сè до доцните 70ти, неколку хардверски можности се развија што овозможи слични или повеќепренесувачки софтвери да се извршуваат на повеќе од еден систем. Првобитните системи го искористија микропрограмирањето за да имплементираат одлики во своите системи со цел да овозможат различни основни архитектури да изгледаат исто како другите во серијата. Всушност повеќето 360ки беа имплементирани со помош на микропрограмирање. Но подоцна други методи за постигнување на компатибилност на апликациите се покажаа како поефикасни.

Огромното инвестирање во софтверот на овие системи направено уште во 60те придонесе многу од производителите на компјутери да продолжат со развојот на компатибилни оперативни системи заедно со хардверот. Истакнатите оперативни системи кој поддржуваат mainframe вклучуваат:

Burroughs MCP – B5000, 1961 - Unisys Clearpath/MCP, денес.

IBM OS/360 – IBM System/360, 1966 - IBM z/OS, денес.

IBM CP-67 – IBM System/360, 1967 - IBM z/VM, денес.

UNIVAC EXEC 8 – UNIVAC 1108, 1964, - Unisys Clearpath IX, денес.

## Миникомпјутери

Првите микрокомпјутери го немаа капацитетот или потребата за детално разработените оперативни системи кои беа развиени за mainframes и minis; минималистични оперативни системи беа развиени, често вчитувани од  ROM, познати како монитори. Еден позначаен првобитен оперативен систем заснован на дискови беше CP/M, кој беше поддржуван од многу првобитни микрокомпјутери и беше добра копија на MS-DOS, кој подоцна стана многу популарен како оперативен систем избран од IBM PC, негови следбеници беа Microsoft. Во 80те  Аpple Computer Inc. ја напушти својата популарна Apple II серија на микрокомпјутери за да го претстави Apple Macintosh компјутерот со иновативен Graphical User Interface на Mac ОS.

Воведувањето на Intel 80386 CPU чипот со 32-битна архитектура и можности за страничење, обезбеди лични сметачи со можност за извршување повеќезадачност оперативни системи како тие од првобитните миникомпјутери и мејнфрејми. Microsoft одговори на овој напредок со вработувањето на Dave Cutler, кој го имаше развиено VMS оперативниот систем за Digital Equipment Corporation. Тој ќе го предводи развојот на Windows NT оперативниот систем, кој продолжува да служи како основа на оперативните системи на Microsoft. Steve Jobs, соосновач на Apple Inc., го основа NeXT Computer Inc., кој го разви Unix-like NEXTSTEP оперативниот систем. NEXTSTEP подоцна ќе биде побаран од Apple Inc. и користен, заедно со кодот од FreeBSD како јадро за Mac OS X.

Minix, академска алатка за подучување која може да биде извршувана на првобитните лични сметачи, ќе инспирира за уште една реимплементација на Unix, наречена Linux. Започнат од студентот Linus Torvalds во соработка со волонтери преку интернет, нов оперативен систем беше развиен со алатките од GNU проектот. The Berkeley Software Distribution, познат како BSD, e изведен од UNIX од страна на Универзитетот во Калифорнија, во 1970те. Слободно дистрибуиран и пренесен до многу миникомпјутери, на крајот доби и следбеници кои може да се употребат и кај личните сметачи, главно FreeBSD, NetBSD и OpenBSD.

**ОдликиИзвршување на програмата**

Оперативните системи работата како посредник помеѓу апликацијата и хардверот. Корисникот заемно дејствува со хардверот од “другата страна”. Оперативниот систем е комплет од услуги кои го упростуваат развојот на апликациите. Извршувањето на програма подразбира создавање на процес од страна на оперативниот систем. Јадрото создава процес со доделување на меморија и други ресурси, одредува приоритет во процесот (in multi-tasking systems), вчитува програмски код во меморијата и извршува програма. Програмата потоа заемно дејствува со корисникот и/или со другите уреди и ја исполнува планираната функција.

**Прекини**

Прекините се главни кај оперативните системи, бидејќи тие овозможуваат ефикасен начин за оперативниот систем заемно да дејствува и реагира со неговата околина. Aлтернативата – оперативниот систем да ги “гледа” различните извори на податоци за настани кои бараат акција – е едноставна употреба на CPU ресурсите. Програмирањето засновано на прекини е директно поддржано од најголемиот број на CPU. Прекините даваат компјутер со можност за автоматско извршување на специфични кодови како одговор на одредени настани. Дури и најобичните компјутери ги поддржуваат хардверските прекини, и му овозможуваат на програмерот да специфицира код кој може да биде извршен кога ќе се случи настанот.

Кога прекинот е примен, хардверот на компјутерот автоматски ја прекинува која и да е програма која во моментот се извршува, го зачувува нејзиниот статус, и го извршува кодот кој е поврзан со прекинот; ова е аналогно на превиткување на страницата на книгата која ја читаме за да се јавиме на телефон. Во модерните оперативни системи, прекините се управувани од јадрото на оперативниот систем. Прекините може да дојдат од страна на хардверот или од одредена програма која се извршува.

Кога уред од хардверот ќе активира прекин, јадрото на оперативниот систем решава како ќе се справи со овој настан, генерално тоа е со извршување на некој обработувачки код. Колку кодот ќе се изврши зависи од приоритетот на прекинот (на пример: човек попрво ќе реагира на аларм за пожар од колку на телефонски повик). Обработката на хардверски прекини е задача која најчесто се предава на софтвер наречен device drivers (драјвери за уреди), кој може да биде дел од јадрото на оперативниот систем, дел од друга програма, или двете. Драјверите за уреди може да ја пренесат информацијата на програмата која се извршува на најразлични начини.

Програма исто така може да активира прекин кон оперативниот систем. Ако програмата посака да добие пристап до хардверот на пример, ќе го прекине јадрото на оперативниот систем, што предизвика контролата да биде вратена кон јадрото. Јадрото потоа ќе ја обработи поканата. Ако програмата посака додатни ресурси како меморија, ќе активира уште еднаш прекин за да го предизвика вниманието на јадрото.

### Заштитен режим и режим на надзорник

Модерните обработувачи поддржуваат нешто што се вика режим на дуална работа. Обработувачите со оваа способност користат два режими: заштитен режим (protected mode) и режим на надзорник (supervisor mode), кои дозволуваат одредени функции на обработувачот да бидат контролирани и врз кои единствено може само јадрото на оперативниот систем да делува. Тука, заштитниот режим не се однесува специфично само на 80286 (16-битниот Intel x86 микрообработувач) обработувачкката одлика, иако неговиот заштитен режим е многу сличен на ова. Обработувачите можат да имаат и други режими слични на заштитниот режим на 80286, како виртуелниот 8086 режим на 80386 (32-битен Intel x86 микрообработувач или i386).

Меѓутоа, терминот тука се користи погенерално во теоријата за оперативните системи за да се однесува на сите режими така што ги ограничува способностите на програмите кои се извршуваат во тој режим, произведувајќи работи како што се адресирање на виртуелната меморија и ограничување на пристапот до хардверот на начин определен од страна на програмата која се извршува во режимот на надзорник. Слични режими постоеле во суперкомпјутерите, микрокомпјутерите и мејнфрејмите како суштински во целосното поддржувње на повеќекорисничките оперативни системи слични на UNIX.

Кога компјутерот првпат е вклучен, тој автоматски се извршува во режим на надзорник. Првите неколку програми за да се извршат на компјутерот, се BIOS, вчитувачот за бутирање (bootloader) и оперативниот систем имаат неограничен пристап до хардверот – и ова е побарано бидејќи, по дефиниција, иницијализирањето на заштитена околина може да се направи само надвор од една. Меѓутоа, кога оперативниот систем ја поминува контролата до друга програма, тој може да го стави обработувачот во заштитен режим.

Во заштитниот режим, програмите може да имаат пристап до повеќе ограничено множество на обработувачкки инструкции. Корисничката програма може да го напушти заштитниот режим само преку тригерирање (активирање) на прекини, предизвикувајќи контрола на враќање назад кон јадрото. На овој начин оперативниот систем може да одржува ексклузивна контрола над работите како што се пристап до хардверот и меморијата.

Терминот "ресурс на заштитен режим" генерално се однесува на еден или повеќе регистри на обработувачот, кои содржат информации за кои програмата што се извршува нема дозвола да ги промени. Обидите да се променат овие ресурси генерално предизвикаат врска со режимот на надзорник, каде оперативниот систем може да се договара со нелегалната работа која програмата се обидува да ја изврши (како на пример, убивање на програмата).

### Управување со меморијата

Помеѓу другите работи, јадрото на мултипрограмираните оперативни системи мора да биде одговорно за управување со целата системска меморија која моемнтално се користи од страна на програмите. Ова осигурува дека програмата не се меша со меморијата која веќе се користи од друга програма. Сè додека програмите го делат времето, секоја програма мора да има независен пристап до меморијата.

Кооперативното управување со меморијата, кое се користело од многу рани оперативни системи претпоставува дека сите програми прават волонтарна употреба на управувачот со меморијата на јадрото и не ја надминуваат низната алоцирана меморија. Овој систем на управување со меморијата е скоро никогаш повторно виден, додека програмите често содржат грешки кои можат да предизвикаат програмите да ја надминат алоцирана меморија. Ако падне програмата, таа може да предизвика меморијата да се користи од страна на една или повеќе други програми, кои можат да делуваат на истата или да извршат нејзино презапишување. Малициозните програми или вурусите можат со цел да променат меморија на друга програма или можат да влијаат на работата на самиот оперативен систем. Со кооперативното управување со меморијата се зема само една програма со лошо однесување да го падне системот.

Заштитата на меморијата овозможува јадрото да го ограничи пристапот на процесот до меморијата на компјутерот. Постојат различни методи за заштита на меморијата, вклучувајќи ја сегментацијата на меморијата и страничењето. Сите методи бараат некое ниво на хардверска поддршка (како 80286 MMU) кое не постои во сите компјутери.

Во двете и во сегментацијата и во страничењето, одредени регистри од заштитниот режим му специфицираат на обработувачот која мемориска адреса треба тој и да дозволи на програмата за пристап. Обидите да се пристапи до други адреси ќе тригерира прекин кој ќе предизвика обработувачот повторно да влезе во режим на надзорник, обвинувајќи го за тоа јадрото. Ова се нарекува прекршок на сегментацијата која често е знак за програма со лошо однесување па јадрото ќе ја ресортира програмата, која често се користи, пред нејзиното завршување и ќе извести за грешката.

Windows 3.1-Me има некое ниво на заштита на меморијата, но програмите можат лесно да ја заобиколат неговата употреба. Под Windows 9x сите MS-DOS апликации се извршуваат во режим на надзорник, давајќи им скоро неограничена контрола над компјутерот. Дефектот од основната заштита ќе биде произведен укажувајќи дека се појавил прекршок од сегментацијата, меѓутоа како и да е системот ќе падне

Во повеќето Linux системи, дел од тврдиот диск е резервиран за виртуелната меморија кога Оперативниот систем се инсталирал на системот. Овој дел е познат како swap простор. Windows системите користат swap податотека наместо партиција.

#### Виртуелна меморија

Употребата на адресирањето на виртуелната меморија (како страничењето и сегментацијата) значи дека јадрото може да избере каква меморија секоја програма може да користи во било кој даден временски момент, дозволувајќи му на оперативниот систем да ги користи истите мемориски локации за многукратни задачи.

Ако програмата се обиде да пристапи до меморија која не е во нејзиниот моментален ранг на достапни мемории, но сепак е алоцирана за таа програма, јадрото ќе биде прекинато на истиот начин како што би било прекинато ако програмата ја надминеше алоцираната меморија. Во UNIX овој тип на прекин се нарекува page fault.

Кога јадрото ќе детектира page fault тоа ќе го прилагоди рангот на виртуелната меморија на програмата која го активирала тоа, одобрувајќи пристап до бараната меморија. Ова му дава на јадрото дискретизирана моќ над местото каде одредена меморија на некоја апликација е зачувана, или дури и ако уште не е алоцирана сè уште.

Во модерните оперативни системи, меморијата на апликациите до кои се пристапува со помала честота можат привремено да ја зачуваат на диск или на друг медиум за да го овозможат тоа место за употреба од други програми. Ова е наречено swapping, како област на меморија која може да се користи од многукратни програми.

### Повеќезадачност

Повеќезадачноста се однесува на извршувањето на повеќе независни компјутерски програми на ист компјутер, давајќи изглед дека задачите се извршуваат во исто време. Додека повеќето компјутери можат да извршуваат најмногу една до две работи во исто време, ова е направено преку поделбата на времето, кое значи дека една програма користи дел од времето на компјутерот за да се изврши.

Јадрото на оперативниот систем содржи дел од софтверот наречен распоредувач кој одлучува колку време секоја програма ќе користи за извршување и по кој редослед контролата на извршувањето би требало да биде предадена до програмите. Контролата е предадена до процесот преку јадрото, што и дозволува на програмата да пристапи до обработувачот и меморијата. Подоцна контролата е вратена на јадрото преку некој механизам така што и е дозволено на друга програма да го користи обработувачот. Ова предавање на контролата помеѓу јадрото и апликациите е таканаречено префрлање на контекст (context switch).

Раниот модел кој владеел со алокацијата на времето за програмите беше наречен кооперативна повеќезадачност. Во овој модел, кога контролата е предадена на програма од страна на јадрото, таа може да се изврши за колку сака време пред експлицитно да ја врати контролата на јадрото. Ова значи дека малициозна програма или програма со лошо однесување може не само да ги спречи било кои други програми даго користат обработувачот туку можат и да му се заканат на внатрешниот систем ако тој внесе бесконечна јамка.

Сите програми се ограничени колку време им е дозволено да поминат на обработувачот без да бидат прекинати. За да се постигне ова, јадрата на модерните оперативни системи прават употреба на временски прекин. Тајмерот на заштитниот режим е сетиран од страна на јадрото кое активира враќање во режим на надзорник откако специфицираното време ќе истече.

На многу опеаративни системи за еден корисник кооперативниот multitasking е совршено адекватен, како што се домашните компјутери кои генерално извршуваат мал број на добро тестирани програми. Windows NT беше првата верзија од Microsoft Windows кој принудува preemptive multitasking, но тој не го достигнал пазарот на домашните корисници пред Windows XP (додека Windows NT се активирал за професионалнци.)

#### Kernel Preemption

Неодамна интересите се појавиле поради скриеностите често поврзани со некои јадрени времиња на извршување, понекогаш од редот на 100ms или повеќе во системите со монолитни јадра. Овие скриености често предизвикаат забележителна забавеност во desktop системите, и може да го спречи оперативниот систем да изврши некои временски чувствителни операции како што се аудио запишување и некои комуникации.

Модерните оперативни системи ги прошируваат концептите на апликацискиот preemption до драјверите за уреди и кодот за јадрото, така што оперативниот систем има превентивна контрола над внатрешните времиња на извршување. Под Windows Vista, воведот на Windows Display Driver Model (WDDM) ова го завршува за display драјверите, и во Linux, моделот на preemptable јадрото воведено во верзијата 2.6 дозволува сите драјвери за уреди и некои други делови од кодот за јадрото да земе предност за preemptive multitasking-от.

### Пристап до диск и датотечни системи

Пристапот до податотеките зачувани на дискови е централна одлика на сите оперативни системи. Компјутерите ги зачувуваат податоците на дискови користејќи податотеки, кои се структурирани на специфични начини со цел да дозволат побрз пристап, повисока доверливост, и да ја направат подобра употребата надвор од расположливиот простор. Специфичниот начин на кој податотеките се зачувани на диск се нарекува датотечен систем и овозможува податотеките да имаат имиња и атрибути. Тоа исто така им дозволува да бидат зачувани во хиерархија од именици или папки уредени како дрво од именици.

Раните оперативни системи генерално поддржувале единствен тип на диск драјвер и само еден вид на датотечен систем. Раните датотечни системи биле ограничени во нивниот капацитет, брзина, и во водиовите за имиња на податотеките како и во структурите за именици кои можеле да ги користат. Овие ограничувања често рефлектираат ограничувања во оперативните системи за кои биле дизајнирани, правејќи го многу тешко поддржувањето на повеќе од еден датотечен систем за еден оперативен систем.

Додека многу едноставни оперативни системи поддржуваат ограничен ранг на опции за пристапување до системи за зачувување, оперативни системи како UNIX и Linux поддржуваат технологија позната како виртуелен податочен систем или VFS. Еден оперативен систем како UNIX поддржува широка низа на уреди за зачувување, безобрѕирност на нивниот дизајн или датотечни системи кои можат да бидат прстапни преку заеднички апликациски програмски посредник (API). Ова прави да не е потребно за програмите да имаат какво било познавање за уредот до кој пристапуваат. VFS му дозволува на оперативниот систем да снабди програми со пристап до неограничен број на уреди со бесконечна разновидност на датотечни системи инсталирани на нив преку употреба на специфични драјвери за уреди и драјвери за датотечни системи.

Поврзаниот уред за зачувување како што е тврдиот диск е пристапен преку драјверот за тој уред. Драјверот за уредот го разбира специфичниот јазик надиск драјвот и е способен да го преведе тој јазик во стандарден јазик кој го користи оперативниот систем за да пристапи до сите диск драјвови. Во UNIX ова е јазикот на блок драјверите.

Кога јадрото има соодветен драјвер за уред на место, тоа тогаш може да пристапи до содржините на диск драјвот во формат на редица, која може да содржи еден или повеќе датотечни системи. Драјверот за датотечниот систем се користи да ги преведе командите кои се користат за пристап до секој специфичен датотечен систем во стандардно множество на команди кои оперативниот систем може да ги користи да комуницира со сите датотечни системи. Програмите тогаш можат да се договорат со овие датотечни системи на основа на имињата на податотеките, и имениците/ папките, содржани во хиерархиската структура. Тие можат да создаваат, да бршат, да отвораат и затвораат податотеки.

Разновидните различности помеѓу датотечните системи прават проблем осносно потечкотија во поддршката на сите датотечни системи. Дозволените карактери во имињата на податотеките, кои се case sensitivitе, и постоењето на различни видови на датотечни атрибути ја прават имплементацијата на единствен посредник за секој датотечен систем застрашувачка задаача. Во практика, third party drives се обично достапни да дадат поддршка за најшироко употребуваните датотечни системи во најосновните оперативни системи (на пример, NTFS е расположлив во Linux преку NTFS-3g, а ext2/3 и ReiserFS се достапни во Windows преку FS-драјвер и rfstool).

### Драјвери за уреди

Драјвер за уред е е специфичен тип на компјутерски софтвер развиен да дозволи интеракција со хардверските уреди. Типично тој сочинува посредник за комуникација со уредот, преку специфичната магистрала на компјутерот или комуникацискиот подсистем за кој хардверот е поврзан, извршувајќи команди и/или примајќи податоци од уредот, и од друга страна, потребните посредници до оперативниот систем и софтверските апликации. Тоа е специјализирана хардверски зависна компјутерска програма, која исто така е специфична за оперативниот систем и овозможува друга програма, типично оперативен систем или апликациски софтверски пакет или компјутерска програма која се извршува под јадрото на оперативниот систем, да има транспарентна интеракција со хардверскиот уред и обично го обезбедува ракувањето со побараниот прекин неопходно за некои неопходни асинхрони временски зависни хардверски потреби.

Клучната цел за дизајнот на драјверите за уреди е абстракцијата. Секој модел на хардверот (дури и внатре во истата класа на уредот) е различен. Новите модели исто така се издадени од производителите кои обезбедуваат подоверливи или подобри перформанси и овие нови модели често се контролирани различно. Компјутерите и нивните оперативни системи не може да се очекува да знаат како да го контролираат секој уред, и сега и во иднина. За да се реи овој проблем, оперативните системи есенцијално диктираат како секој тип на уред би требало да се контролира. Функцијата на драјверот за уредот тогаш е да ги преведе овие повици на функции кои се под овластување на оперативниот систем во повици специфични за уредот. Во теоријата нов уред, кој е контролиран на нов начин, би требало да функционира исправно ако соодветниот драјвер е расположлив. Овој нов драјвер ќе осигура дека уредот се појавува да оперира како обично од гледна точка на оперативниот систем.

### Networking

Моментално повеќето оперативни системи поддржуваат разноврстност од мрежни протоколи, хардвер и апликации за нивно користење. Ова значи дека компјутерите се извршуваат различно од тоа како оперативните системи можат да учествуваат во заедничката мрежа за делење на ресурсите како што е пресметувањето (computing), податотеките, печатачите и скенерите кои се користат за жични или безжични врски. Мрежите можат есенцијално да му дозволата на оперативниот систем на компјутерот да пристапи до ресурсите на далечниот компјутер да ги подржи истите функции како што би можел кога тие ресурси би биле директно поврзани на локалниот компјутер. Ова вклучува се од едноставна комуникација до користење на мрежни датотечни ситеми или дури и делење на друга компјутерска графика или хардвер за звукот. Некои мрежни сервиси им дозволуваат на ресурсите на компјутерот да бидат транспарентно пристапни, како што е SSH кој дозволува мрежните корисници директно да пристапат до командниот посредник на компјутерот.

Клиент/ опслужувач networking вклучува програма некаде на компјутерот која се поврзува преку мрежа со друг компјутер, таканаречен опслужувач. опслужувачите, обично извршуваат UNIX или Linux, нудат различни сервиси до други мрежни компјутери или корисници. Овие сервиси обично се снабдени преку порти или преку многубројни точки на пристап преку мрежната адреса на опслужувачот. Секој број на портата обично е поврзан со максимумот на една програма која се извршува, која е одговорна за ракување со сите барања кои стигаат за таа порта. Демон, корисничка програма, може на враќањето да пристапи до локалните хардверски ресурси на тој компјутер преку предавање на барањата до јадрото на оперативниот систем.

Многу оперативни системи поддржуваат еден или повеќе протоколи специфични за трговецот или мрежно отворени, како на пример, SNA на IBM системи, DECnet на системи од Digital Equipment Corporation, и Microsoft специфични протоколи (SMB) на Windows. Специфичните протоколи за специфични задачи можат исто така што бидат поддржани како NFS за датотечен пристап. Протоколите како ESound, или esd можат лесно да се прошират преку мрежа да обезбедат звук од локалните апликации, на харведот за звук на далечинскиот систем.

**Безбедност на компјутерот**

Дали компјутерот е сигурен зависи од голем број на технологии кои треба да работат исправно. Модерните оперативни системи овозможуваат пристап до голем број на ресурси, кои се достапни за софтверот кој се извршува на системот, и за надворешните уреди како мрежи преку јадрото.

Оперативните системи мора да бидат способни за правење разлика помеѓу барање кои треба да се обработат, и други барања кои не треба да се обработат. И додека некои системи едноставно прават разлика помеѓу “привилегирани” и “непривилегирани”, системите најчесто имаат формулари со идентитетот на побарувачот, како што е името на корисникот. Да се создаде идентитет потребен е процес на проверка. Честопати името на корисникот треба да биде во наводници, и секое име на корисникот треба да има и лозинка. Други методи на проверка, како на пример магнетни карти или биометриски податоци исто така може да бидат користени. Во некои случаи, особено при поврзувањето од мрежа, до ресурсите може да се пристапи и без никаква проверка. Концептот на идентитет на побарувачот го покрива и поимот овластување; посебните услуги и ресурси достапни за побарувачот кој еднаш веќе е пријавен во системот се поврзани со профилот на корисникот или со група на повеќе корисници во која припаѓа и самиот побарувач.

Освен дозволува/не дозволува моделот, систем со висок степен на безбедност нуди и опции за ревизија. Овие опции ќе овозможат следење на сите барања за пристап до ресурсите (како на пример, кој го читал овој документ?). Внатрешната безбедност, или безбедност од веќе извршувана програма е единствено можна ако сите потенцијални штетни барања се однесат преку прекини до јадрото на оперативниот систем. Ако програмите можат директно да пристапат до хардверот и ресурсите, тие нема да бидат на сигурно.

Надворешната безбедност вклучува барање од надвор од компјутерот, како пријавување на поврзана конзола или на некој вид мрежно конектирање. Надворешните барања најчесто минуваат низ драјверите за уреди и стигнуваат до јадрото на оперативниот систем, од каде може да бидат пренесени на апликации, или да бидат директно изнесени. Безбедноста на оперативните системи долго време загрижуваше пред сè поради чувствителните податоци чувани во компјутерите, кои може да бидат и од комерцијална и од воена природа. Министертсвото за одбрана на САД го создаваше Trusted Computer System Evaluation Criteria (TCSEC) што претставува стандард кои поставува основни услови за проценување на делотворноста на безбедноста. Овој стандард стана од витална важност за производителите на оперативни системи, бидејќи TCSEC почна да се користи за да процени, класификува и одбере компјутерски системи кои ќе бидат земени предвид за обработка, чување и пребарување на чувствителни или доверливи информации.

Mрежните услуги вклучуваат понуди како споделување на документи, услуги при принтање, електронска пошта, мрежни места, и протоколи за пренос на податотеки (FTP), од кој најголемиот број може да имаат спогодбена сигурност. Во првите линии на безбедноста се наоѓаат хардверските уреди познати како firewalls или наметнати системи за детекција/превенција. На ниво на оперативен систем, има одреден број на достапни софтверски firewall, како и наметнати системи за детекција/превенција. Повеќето од модерните оперативни системи вклучуваат софтверски firewall, кој е зададен како одобрен. Софтверски firewall може да биде така конфигуриран да дозволи или да спречи мрежен сообраќај кон или од услуга или програма која се извршува на оперативниот систем. Затоа, може да се инсталира и да се извршува небезбедна услуга, како на примиер Telnet или FTP, и притоа системот да не биде загрозен бидејќи firewall ќе го одбие секој сообраќај кој ќе се обиде да се поврзе со услугата во таа порта.

Алтернативна стратегија, и единствена стратегија достапна кај системите кои не ги задоволуваат условите за виртуелизација на Popek и Goldberg, e оперативен систем кој не извршува кориснички програми како матичен код, туку наместо тоа или емулира обработувач или обезбедува домаќин за p-code заснован систем како на пример Java.

Внатрешната сигурност се однесува особено на повеќекорисничките системи; таа овозможува секој корисник на системот да има приватни податоци кои другите корисници нема да може да ги читаат. Внатрешната сигурност е исто така витална ако верифицирањето е од каква било корист, од тогаш програмата може потенцијално да го заобиколи оперативниот систем, вклучувајќи заобиколна верификација.

#### Пример: Microsoft Windows

Иако Windows 9x сериите ја понудија опцијата за профили на повеќе корисници, тие немаа концепт на привилегии за пристап, и не дозволуваа конкурентен пристап; и поради тоа не беа вистински мултикориснички оперативни системи. Освен тоа, тие имплементираа само парцијална мемориска заштита. Поради тоа тие беа многу критикувани поради нискиот степен на безбедност.

Windows NT сериите на оперативни системи беа вистински мултикориснички оперативни системи и имплементираа апсолутна мемориска заштита. Меѓутоа, многу предности на мултикорисничките системи беа поништени со фактот дека, пред Windows Vista, првиот кориснички профил создаден за време на процесот на воспоставување беше администраторскиот профил, кој беше задаван и за нови профили. Иако Windows XP имаше можност за неограничени профили, најголемиор број на корисници не го менуваше профилот во профил со помалку права – поради големиот број на програми кои непотребно ги побаруваа администраторските права. Затоа најголемиот број на корисници се пријавуваа како администратори постојано.

Windows Vista го промени ова со воведување на привилегиран возвишен системи наречен User Account Control. При пристапување како стандарден корисник, пристапна сесија се создава и се доделува симбол кои ги содржи најосновните услуги. На овој начин, новото пристапување не е способно да направи промени кои би влијаеле на целиот систем. При пристапување како корисник во групата на администратори, два одделни симболи се доделуваат. Првиот симбол ги содржи привилегиите кои најчесто се доделуваат на администратор, а вториот симбол е ограничен на оние привилегии кои би ги добил стандардниот корисник. Корисничките апликации, вклучувајќи го и Windows Shell, се стартуваат со ограничениот симбол, што резултира со намалени привилегии иако се пристапува од администраторски профил. Кога апликацијата ќе побара поголеми привилегии или кога “Run as administrator” копчето е притиснато, UAC ќе предизвика потврда, и ако се даде одобрение, процесот ќе стартува користејќи го неограничениот симбол.

#### Пример: Linux/Unix

И Linux и UNIX имаат дворедна безбедност, што ограничува какви било промени кај основниот корисник, и кај профил на посебен корисник кај сите системи слични на UNIX. Додека основниот корисник има неограничена дозвола да влијае врз промените во системот, програмите кои ги извршува обичен корисник се ограничени во тоа каде може да ги зачуваат документите, кој хардвер може да го користат итн. Во многу системи, искористената меморија на корисникот, неговиот избор на програми, искористеноста на нивните дискови и други функции може да бидат заклучени. Ова му овозможува на корисникот огромна слобода да го прави она што треба да биде направено, и притоа да не биде во можност да стави одреден дел од системот во опасност или да направи чистење и поголеми промени кои ќе влијаат на целиот систем. Опциите на корисникот се чуваат во простор од компјутерскиот систем наречен основен кориснички директориум, кој исто така може да послужи како локација каде корисникот може да ја зачува завршените работи, концепт кој подоцна ќе биде применет од Windows како папката “My Documents”. Доколку корисникот треба да инсталира софтвер надвор од основниот директориум или да направи промени кои ќе влијаат на целиот систем, тогаш корисникот мора да стане основен корисник привремено, најчесто со помош на “su” или “sudo” командата, на која ќе се одговори откако основната лозинка на компјутерот ќе биде внесена. Ова дејство најчесто се сретнува како “go root” или “drop to root” кога се сака да се добие пристап до основниот корисник.

### Поддршка на датотечни системи во модерните оперативни системи

Поддршката за датотечен систем е различна кај модерните оперативни системи иако има неколку датотечни системи за кои скоро сите оперативни системи имаа поддршка и драјвери.

#### Solaris

Solaris Operatins System користи UFS како примарен датотечен систем. Пред 1998 Solaris UFS немаше способност за пристапување и за journaling, но со време оперативниот систем ја доби оваа и други способности за управување со податоци.

Додатните особини ги вклучуваат Veritas VxFS, QFS од Sun Мicrosystems, подобрувања на UFS вклучувајќи и мултитерабајт поддршка и UFS управување со содржините, сите овие се вклучени во оперативниот систем.

Проширувања на јадрото беа додадени од Solaris со цел да се дозволи boot-абилни Veritas VxFS операции. Пристапување или journaling беше додадено на UFS во Solaris 7. Изданија на Solaris 10, Solaris Express, Open Solaris, и други отворени варијанти на Solaris подоцна гЌЌЌgement дозволува протегање на датотечниот систем низ многукратни уреди со цел додавање на излишност и/или капацитет. Solaris вклучува Solaris Volume Manager. Solaris е еден од многуте оперативни системи поддржани од Veritas Volume Manager. Модерните оперативни системи засновани на Solaris ја затемнуваат потребата за управување со содржината преку влијателни виртуелни складишта во ZFS.

#### Linux

Многу Linux распределби поддржуваат некои или сите од ext2, ext3, ext4, ReiserFS, Reiser4, JFS, XFS, GFS, GFS2, OCFS, OCFS2 и NILFS. Ext-датотечните системи, особено ext2,ext3,ext4 се засновани на оригиналниот дадотечен систем на Linux. Други дадотечни системи беа развиени од компании за да ги задоволат нивните посебни потреби, или беа адаптирани од UNIX, Microsoft Windows, и други оперативни системи. Linux има целосна поддршка за XFS и JFS, заедно со FAT, и HFS кој е основниот дадотечен систем за Macintosh.

Во последните години поддршка за NTFS дадотечните системи на Microsoft Windows NT се појави во Linux, и сега е споредлива со други поддршки за други UNIX дадотечни системи. ISO9660 и Universal Disk Format (UDF) ги поддржуваат стандардните дадотечни системи користени кај CD, DVD и BlueRay дисковите. Возможно е да се инсталира Linux поголемиот дел од овие датотечни системи. За разлика од други оперативни системи, Linux и UNIX дозволуваат било кој датотечен системи да биде искористен без разлика на содржината која се наоѓа во нив, било да се работи за тврди дискови, обичен диск (CD, DVD), или USB.

**Microsoft Windows**

Microsoft Windows моментално ги поддржува NTFS и FAT датотечните системи, заедно со мрежните датотечни системи поделени со други компјутери, и ISO 9660 и UDF датотечните системи користени кај CD, DVD, и други оптички дискови како Blu-ray. Кај Windows секој датотечен систем е најчесто ограничен во апликациите со одредени медии, на пример CD-ата мора да користат ISO 9660 или UDF, а NTFS е единствениот датотечен систем на кој може да биде инсталиран Windows Vista оперативниот систем. Windows Embedded CE 6.0, Windows Vista Service Pack 1, и Windows ServйєёЁђЕаer 2008 го поддржуваат ExFAT, датотечен систем посоодветен за флеш драјвови.

**Mac OS X**

Mac OS X го поддржува HFS+ со journaling како примарен датотечен систем. Тој е изведен од Hierarchical File System (HFS) од првотбитниот Mac OS. Mac OS X има особености да чита и пишува FAT, NTFS, UDF, и други датотечни системи, но не може да биде инсталиран на нив. Поради наследството од UNIX, Mac OS X денес ги поддржува дататочните системи поддржани од UNIX VFS. Неодамна Apple Inc. започна да работи на портирање на датотечните системи ZFS на Sun Microsystem кон Mac OS X, воведна поддршка е веќе достапна во Mac OS X 10.5

**Датотечни системи за специјална намена**

FAT датотечните системи често се наоѓаат кај флопи дискови, флеш мемориски картици, дигитални камери, и многу други преносливи уреди поради нивната релативна едноставност. Перформансите на FAT слабо се споредуваат со најголемиот број други датотечни системи бидејќи користи премногу проста структура на податоците, прави датотечни операции со трошење на време, и има мал простор на дискот во ситуации кога многу помали податотеки се активни. ISO 9660 и Universal Disk Format се два чести формати кои се користат кај компакт дисковите и DVD-та. Mount Rainier е понова наставка на UDF поддржана од Linux 2.6 серијата и Windows Vista која го олеснува презапишувањето на DVD-a на истиот начин како тоа што се правеше со флопи дисковите.

**Датотечни системи со Journaling**

Датотечните системи може да обезбедат journaling, што обезбедува безбедно оздравување при крах на системот. Датотечен систем со journaling двапати пишува одредени информации: прво во дневник, што е log на операциите на датотечниот систем. Journaling се управува со драјверот на датотечниот систем, и ги прати сите операции кои се одвиваат и прават промени на содржината на дискот. При крах, системот може да се опорави во постојана состојба преку повторно пуштање на порции од дневникот. Mногу UNIX датотечни системи обезбедуваат јоurnaling вклучително и ReiserFS, ЈFS, и Ext3.

Спротивно, не-дневничките датотечни системи типично треба да бидат испитани во нивната севкупност преку услуга како “fsck” или “chkdsk” за да се одредат некои непостојаности после лошо исклучување. Меко дополнување е алтернатива за journaling која ги избегнува изишните записи преку внимателно подредување на дополнителните операции. Log структурираните датотечни ситеми и ZFS исто така се разликува од традиционалните дневнички датотечни системи во тоа што тие ги избегнуваат непостојаностите преку постојано запишување на нови копии на податоците, избегнувајќи дополнување во место.

### Графички кориснички посредници

Повеќето од модернхите компјутерски ситеми поддржуваат графички кориснички посредници (GUI), и често ги вклучуваат нив. Во некои компјутерски системи, како што се оригиналните имплементации на Microsoft Windows и Mac OS, GUI- то е интегрирано во јадрото.

Додека технички графичкиот кориснички посредник не е сервис на оперативниот систем, While technically a graphical user interface is not an operating system service, здружената поддршка за еден во јадрото на оперативниот систем може да му дозволи на GUI- то да биде поспремен преку редуцирање на бројот на context switches побарани за GUI-то да ги изврши неговите излезни функции. Други оперативни системи се modular, одвојувајќи го графичкиот подсистем од јадрото и оперативниот систем. Во 1980-те UNIX, VMS и многу други имале оперативни системи кои биле изградени на овој начин. Linux и Mac OS X се на истиот начин изградени. Модерните кои ги пуштил Microsoft Windows како што се Windows Vista имплементирале графички подсистем кој намногу е во корисничкиот дел, меѓутоа верзиите помеѓу графичките рутини за цртање на Windows NT 4.0 и Windows Server 2003 најмногу постојат во јадрениот дел. Windows 9x немал голема јасност помеѓу посредникот и јадрото.

Многу оперативни системи му дозволуваат на корисникот да инсталира или да создава каков било кориснички посредник закој имаат желба. X Window System во спој со GNOME или KDE е најчесто најден setup на повеќето Unix и Unix-like (BSD, Linux, Minix) системи. Голем број од Windows shell замените биле пуштени за Microsoft Windows, кој нуди алтернативи за вклучениот Windows shell, но shell-от сам по себе не може да биде одвоен од Windows.

Многубројни Unix-засновани GUI постоеле со тек на време, добиени од X11. Натпреварот помеѓу различните трговци на Unix (HP, IBM, Sun) води голема фрагментација, иако напорот да се стандардизира во 1990-те во COSE и CDE паднал поради различни причини, евентуално поради замрачувањето кое го донело широкото усвојување на GNOME и KDE. Пред да се отворат изворно-заснованите комплети со алатки (toolkits) и desktop околини, Motif беше надмоќна toolkit/desktop комбинација .

Графичкиот кориснички посредник се развивал со тек на време. На пример, Windows го модифицирал неговиот кориснички посредник скоро секогаш кога некоја основна верзија на Windows е пуштена, но Mac OS GUI се проманил драматично со воведувањето на Mac OS X во1999.

## Примери на оперативни системи

### Microsoft Windows

Microsoft Windows е фамилија на сопствени оперативни системи која започнува како додаток на постариот MS-DOS оперативен систем за IBM PC. Модерните верзии се засновани на поновото Windows NT јадро кое оригинално било планирано за OС/2. Windows се извршува на x86, x86-64 и на Itanium обработувачи. Пораните верзии исто така се извршувале и на DEC Alpha, MIPS, Fairchild (подоцна Intergraph) Clipper и PowerPC архитектури ( некоја работа била направена за да го приклучи тоа на SPARC архитектура).

Од јуни 2008, Microsoft Windows држи голема количина од worldwide desktop пазарната поделба. Windows исто така се користи на опслужувачи, поддржувајќи апликации како што се web опслужувачи и опслужувачи за бази на податоци. Неодамна, потроши значаен marketing и пари за истражување и развој за да демонстрира дека Windows е способен да изврши каква било апликација за некое претпријатие, што резултирало во постојани записи за цената и перформансите и добро прифаќање во пазарот на претпријатијата.

Најшироко употребуваната верзија од фамилијата на Microsoft Windows е Windows XP, пуштена во употреба на 25 октомври 2001.

Во ноември 2006, после повеќе од пет години од развојот, Microsoft го пуштил Windows Vista, главната нова верзија на оперативен систем од фамилијата на Microsoft Windows која содржи голем број на нови одлики и промени во архитектурата. Првак меќу овие е новиот кориснички посредник и визуелен стил наречен Windows Aero, голем број на нови безбедносни одлики како што се User Account Control, и неколку нови multimedia апликации како Windows DVD Maker. опслужувач варијантата заснована на истото јадро, Windows Server 2008, е пуштена во почетокот на 2008.

Windows 7 моментално е во развој; се очекува да се пушти некаде околу јануари 2010.

**Unix и Unix-like оперативни системи**

Ken Thompson напишал B, главно засновано на BCPL, кој тој го користел за да пишува Unix, заснован на неговото искуство во MULTICS проектот. B беше заменето со C, и Unix се разви во голема, комплексна фамилија на внатрешно поврзани оперативни системи кои биле влијателни во секој модерен оперативен систем. Фамилијата на оперативните системи слични на Unix е поразлична група на оперативни систем, со неколку основни поткатегории вклучувајќи ги System V, BSD, и Linux. Името "UNIX" е заштитен знак на The Open Group која има лиценца за него за употреба со било кој оперативен систем кој бил покажан дека може да се прилагоди на нивните дефиниции. "Unix-like" најчесто се користи да укаже на големо множество на оперативни сиситеми кои наликуваат на оригиналниот Unix.

Unix-like системите се извршуваат на голема разновидност на архитектури на машините. Тие потешко се користат за опслужувачи ви бизнисот, како и како работни станици во академски и инженерски околини. Unix варијантите кои се софтверски слободни, како што се GNU, Linux и BSD, се популарни во овие области.

Некои Unix варијанти како HP-UX на HP и AIX на IBM се дизајнирани за да се извршуваат само на тој хардвер на трговецот. Другите, како Solaris, може да се извршат на повеќе типови на хардвер, вклучувајќи ги и x86 опслужувачите и PC-ата. Mac OS X на Apple, заснован на хибридно јадро BSD различно добиен од NeXTSTEP, Mach, и FreeBSD, го заменил постариот оперативен систем на Apple- Mac OS (не-Unix).

Внатрешната корисност на Unix беше побарана од основањето на POSIX стандардот. POSIX стандардот може да биде применет на секој оперативен систем, иако тој оригинално бил направен за многу Unix варијанти.

**Mac OS X**

Mac OS X е гарфички оперативен систем развиен и продаден од страна на Apple Inc. Mac OS X е втор најшироко употребуван оперативен систем во светот, после Windows. Mac OS X е наследник на оригиналниот Mac OS, кој бил примарен оперативен систем на Apple од 1984. Поинаку од неговиот претходник, Mac OS X е UNIX оперативен систем изграден на технологијата која била развиена на NeXT во текот на втората половина на 1980-тите сè додека Apple не ја купил компанијата вопочетокот на 1997.

Оперативниот систем беше прво пуштен во 1999 како Mac OS X Server 1.0, со desktop-ориентирана верзија (Mac OS X v10.0) во март 2001. Од тогаш, уште пет различни "end-user" и "server" едиции од Mac OS X се пуштиле, наодамншена е Mac OS X v10.5, која беше направена октомври 2007. Пуштањата на Mac OS X се наречени после “големите мачки”; Mac OS X v10.5 често се нарекува од страна на Apple и корисниците, "Leopard".

опслужувач едицијата, Mac OS X Server, е идентична по архитектурата со нејзината desktop копија но често се извршува на Macintosh опслужувачки хардвер. Mac OS X Server вклучува раководство со работна група и алатки за апликациски софтвер кои снабдуваат поедноставен пристап до клучните мрежни сервиси, вклучувајќи го и агентот пренос на mail, Samba опслужувачот, LDAP опслужувач, domain name опслужувач и други.

**Plan 9**

Ken Thompson, Dennis Ritchie и Douglas McIlroy на Bell Labs го дизајнирале и го развиле C програмскиот јазик за да се изгради оперативниот систем Unix. Прграмерите на Bell Labs преминале на развој на Plan 9 и Inferno, кои биле направени за модерни дистрибурани околини. Plan 9 од почетокот бил дизајниран да биде мрежен оперативен систем и имал вградена графика, различно од Unix, кој ги додал овие одлики во дизајнот нешто подоцна. Plan 9 е веќе популарен како што се оперативните системи изведени од Unix, но има широка заедница на развивачи. Тој моментало е пуштен под Lucent Public License. Inferno беше продаден на Vita Nuova Holdings Архивирано на 9 август 2012 г. и беше пуштен под лиценца на GPL/MIT.

**Оперативни системи во реално време**

Оперативен систем во реално време (RTOS1) е оперативен систем кој поддржува multitasking планиран за апликации со фиксни рокови ( пресметување во реално време). Таквите апликации вклучуваат некои мали вградени системи, контролери за автомобили, индустриски роботи, индустриска контрола и некои системи со голем опсег на пресметување.

Ран пример за оперативен систем во реално време со голем опсег на пресметување беше Transaction Processing Facility развиен од American Airlines и IBM за Sabre Airline Reservations System.

**Вградени системи**

Вградените системи користат разновидност на посветени оперативни системи. Во некои случаи, софтверот на оперативниот систем е директно поврзан со за апликацијата за да произведе монолитна програма со специјална цел. Во наједноставните вградени ситеми, нема разлика помеѓу оперативниот систем и апликацијата.

Врадените системи кои имаат фиксни рокови користат оперативни системи во реално време како што се VxWorks, eCos, QNX, MontaVista Linux и RTLinux.

Некои вградени системи користат оперативни системи како што се Symbian OS, Palm OS, Windows CE, BSD и Linux, иако таквите оперативни системи не поддржуваат пресметување во реално време.

**Хоби развој**

Развојот на оперативниот систем како хоби има голем сличен на култ следбеник. Како такви, оперативни системи, како што е Linux, имаат издадено оперативни системи како проекти од хоби. Дизајнот и имплементацијата на оперативниот систем бараат вештина и одлучност, а терминот може да покрие било што од обичен "Здраво Свете" boot вчитувач па до јадро со целосни одлики. Еден класичен пример на ова е Minix Оперативниот систем-ОС кој е дизајниран од страна на A.S. Tanenbaum како алатка за учење, но бил потешко употребуван од хоби пред Linux да ја затемни неговата полуларност.

**Друго**

Пострите оперативни системи кои сѐ уште се користат на niche пазарите вклучуваат OS/2 од IBM и Microsoft; Mac OS, не-Unix претходникот на Mac OS X на Apple; BeOS; XTS-300. Некои, најмногу AmigaOS 4 и RISC OS, продолжуваат да бидат развивани како платформи на малцинство за приврзаните заедници и специјалните апликации. OpenVMS порано од DEC, е сѐ уште под активен развој на Hewlett-Packard. Постоеле голем број на оперативни системи за 8 битни компјутери- DOS (Disk Operating System) на Apple 3.2 & 3.3 за Apple II, ProDOS, UCSD, CP/M – расположливи за разлиќни 8 и 16 битни околини.

Истражувањето и развојот на нови оперативни системи продолжува. GNU Hurd е дизајниран за да биде обратно компатибилен со Unix, но со подобрена функционалност и микројадрена архитектура. Сингуларноста е проект на Microsoft Research да развие оперативен систем со подобра мемориска заштита заснована на моделот управуван од .Net. Развојот на системите го следи истиот модел кој се користел од друг развој на софтвер, кој вклучува одржувачи, дрва за контрола на верзијата и други спецификации.

**Разновидност на оперативните системи и портабилност( преносливост)**

Софтверот генерално се пишува за даден оперативен систем ( дури и за специфичен хардвер). На друг ОС, множеството на функционалности побарани од тој софтвер може да се имплементираат поинаку ( имињата на функциите, списокот на аргументи и слично), барајќи апликацијата да биде повеќе или помалку адаптирана на тој нов ОС. Денес поголемиот дел од софверот се пишува за различни софтверски платформи како Java или Qt кои се напишани на самиот оперативен систем и други системски библиотеки.

Со цел да се ограничат разликите во термините на однесувањето и API, апликацијата може да направи употреба на делови од софтверската апстракција на оперативниот систем, обично наречено ниво на апстракција на ОС (слично, хардверско ниво на апстракција исто така може да се употреби).

Како пример, POSIX Threads API ( кој е дел од POSIX стандардите) произведува основни механизми за апликации за манипулација со нитки.