От системна гледна точка архитектурата на операционната система осигурява разпределение на ресурсите, управлява споделени устройства, мрежи и процесори, като осигурява общи услуги, изисквани от много различни програми за поддръжка на файлове, управление на процеси, достъп до принтери и защита от вируси за отделни приложения.
Принцип на работа на системата
Типове
OS архитектурен дизайн
Модерни монолитни конструкции
CP /M и DOS са прости примери за монолитни операционни системи. Това са системи, които споделят приложения с едно адресно пространство. В CP /M 16-битовото адресно пространство започва със системни променливи и областта на приложение и завършва на три части:
Многослойни системи
Многостепенното проектиране на архитектурата на операционната система се опитва да постигне надеждност чрез структуриране на архитектурата на слоеве с различни привилегии. Най-привилегированото ниво ще включва кода, свързан с обработката на прекъсвания и превключването на контекста, горните нива, които ще следват драйверите на устройствата, управлението на паметта, файловите системи, потребителския интерфейс и, накрая, най-ниското привилегировано ниво съдържат приложенията. MULTICS е ярък пример за многостепенна система, разработена с 8 слоя, образувани в защитни пръстени, чиито граници могат да бъдат пресичани само чрез специализирани инструкции. Въпреки това, съвременните системи не използват слоеста конструкция, защотосчита се за ограничено и изисква специална хардуерна поддръжка.
Микроядрената конструкция на архитектурата на системата осигурява надеждност. Привилегиите, предоставени на отделни части, са ограничени във възможно най-голяма степен и връзката между тях зависи от специализираните механизми, които при необходимост гарантират спазването на привилегиите. Общите разходи за комуникация в системата с микрочипа могат да бъдат по-високи от общите разходи за комуникация в другия софтуер. Проучванията показват, че тези разходи са управляеми. Опитът за развитие на микроядрото предполага, че само няколко отделни части на системата трябва да имат повече привилегии, отколкото обикновените приложения. Така дизайнът на микроядрото води до малко ядро на системата, придружено от приложения, които осигуряват повечето функции на системата. MACH е ярък пример за микрокод, който се използва в съвременните системи, включително системите NextStep и OpenStep, и по-специално OS X. Повечето изследователски системи също се квалифицират като операционни системи с микросхеми.
Микроядрен дизайн
Виртуални хипервайзори
Опитите за опростяване на поддръжката и подобряване на използването на системи с няколко независими приложения доведоха до идеята да се стартират няколко машини, работещи на един компютър. Точно както ядрото осигурява изолирана среда за всяко хоствано приложение, виртуализираните системи създават хипервизор, който осигурява изолирана среда за всяка хоствана система. Хипервизорите могат да бъдатв архитектурата на системата по различни начини.
Местният хипервизор работи на гола жлеза, с поставени системи, които са по-високи в структурата на системата. Това ви позволява да внедрите ефективна хардуерна схема, като заплатите цена за поддържане на конкретна хардуерна реализация. Приемането на хипервизора частично заобикаля необходимостта от специфична хардуерна реализация, изпълнявана върху друга система. Структурата на системата започва от дъното на хоста, включва хипервизор, а след това гост OS, поставени над хипервайзора. Възможна е и комбинация от местни и съобразени подходи. Хипервизорът може да изпълнява някои от функциите си на гладък хардуер и да се прилага за хоствани системи за изпълнение на други функции. Често срещан пример за този подход е въвеждането на поддръжка за виртуализация на процесори на голия хардуер и използването на специална ОС за достъп до устройства, които хипервизорът виртуализира за други хоствани системи.
Повечето операционни системи днес не се придържат стриктно към една и съща архитектура, а са хибриди на няколко. Архитектурата на Max OSX разчита на микрочипа на Mach за основни услуги за управление на системата и BSD ядрото за допълнителни услуги. Други функционалности на ОС се осигуряват от приложни услуги и динамично зареждащи се модули (разширения на ядрото):Операционната система IOS е разработена от Apple за iPhone и IPADS. Той работи с по-малко памет и изчислителна мощност от Max OS X, и поддържа интерфейс на екрана и графики за малки екрани. Android OS бешеразработен за Android-смартфони и таблети Open Handset Alliance, преди всичко Google. Android е операционна система с отворен код, за разлика от iOS, която е довела до нейната популярност. Android има Linux структура и Java виртуална машина, оптимизирана за малки платформи. Приложенията за Android са разработени с помощта на персонализирана среда за разработка на Java за Android.
Местният хипервизор работи на гола жлеза, с поставени системи, които са по-високи в структурата на системата. Това ви позволява да внедрите ефективна хардуерна схема, като заплатите цена за поддържане на конкретна хардуерна реализация. Приемането на хипервизора частично заобикаля необходимостта от специфична хардуерна реализация, изпълнявана върху друга система. Структурата на системата започва от дъното на хоста, включва хипервизор, а след това гост OS, поставени над хипервайзора. Възможна е и комбинация от местни и съобразени подходи. Хипервизорът може да изпълнява някои от функциите си на гладък хардуер и да се прилага за хоствани системи за изпълнение на други функции. Често срещан пример за този подход е въвеждането на поддръжка за виртуализация на процесори на голия хардуер и използването на специална ОС за достъп до устройства, които хипервизорът виртуализира за други хоствани системи.
Хибридни операционни системи
Микросхеми и модули
Основната идея е микроядрото да премахне всички несъществени услуги от ядрото и вместо това да ги приложи като системни програми, като по този начин ядрото стане възможно най-малко и ефективно. Мах беше първата и най-известната микросхема, а сега тя е основният компонент на Mac OSX. Windows NT първоначално беше микрочип, но страдаше от проблем с производителността (в сравнение с Windows 95). Подобрената производителност NT 4.0 чрез преместване на повече услуги в ядрото превърна XP в по-монолитна. Друг пример за микроядрото е QNX, операционната система в реално време за вградени системи. Развитието на текущата ОС е обектно-ориентирано, с относително малко ядро и набор от модули, които могат да бъдат динамично свързани (например структурата на Solaris). Модулите са подобни на слоевете, тъй като всяка подсистема има добре дефинирани задачи и интерфейси, но всеки модул може да се свърже с всеки друг модул, като елиминира проблема с преминаването през няколко междинни слоя. Ядрото е сравнително малко в тази архитектура, подобно на микросхемите, от които не е необходимо да изпълнява предаването на съобщения, тъй като модулите могат директно да комуникират с един отедин по един.
Файлът е сбор от свързана информация. Компютрите могат да съхраняват файлове на диск (вторично съхранение) за дългосрочно съхранение. Примери за носители на информация включват магнитна лента, магнитни дискове и оптични дискови устройства, като CD, DVD. Всеки един от тези носители има свои собствени свойства, като скоростта, капацитета, скоростта на данните и методите за достъп до данни. Файловата система обикновено е организирана в директории за лесна навигация и използване. Тези директории могат да съдържат файлове и други директории. Основните дейности на операционната система за управление на файлове:Чете или записва файл. Даване на разрешение на програма за работа с файл, който зависи от четенето, писането, отказа. Предоставя потребителски интерфейс за създаване /изтриване на файлове. Осигурява интерфейс за архивиране на файлова система. В случай на разпределени системи, които представляват набор от процесори и не използват памет, периферни устройства или часовник, операционната система управлява връзката между всички процеси. Няколко процеси взаимодействат помежду си чрез комуникационни линии в структурата на мрежовата операционна система, управляват стратегии за маршрутизиране и свързване, както и проблеми на конкуренцията и сигурността. Основни комуникационни дейности на операционната система:Два процеса често изискват пренос на данни между тях. И двата процеса могат да бъдат на един компютър или на различни компютри, но са свързани чрез компютърна мрежа. Комуникацияможе да се реализира по два начина: или чрез споделена памет, или чрез изпращане на съобщения.
Това е най-известната и най-използвана система с отворен код. Много програмисти използват термина Linux, за да обозначат ядрото на Linux, както и набор от програми, инструменти и услуги, които обикновено се доставят с ядрото на Linux. Някои потребители се позовават на тази GNU колекция, защото много инструменти включват GNU компоненти. Въпреки че не всички Linux инсталации използват GNU компоненти като част от системата. Например, Android използва структурата на ядрото на Linux и много малко разчита на GNU инструменти. Linux е различен от другите системи:Отворен код. Операционната система е безплатна и достъпна за публично гледане, като редактира потребителите с подходящи умения. Има много дистрибуции на Linux, които включват различни софтуерни опции. Unix и Linux са до голяма степен сходни и всъщност Linux първоначално е бил създаден по същия начин като Unix. И двете имат подобни инструменти за взаимодействие със системи, инструменти за програмиране, оформление на файлове и други ключови компоненти. Въпреки това Unix не е свободен. В продължение на много години са създадени няколко различни системи, които се опитват да бъдат Unix-подобни или UNIX-съвместими, но Linux е най-успешният, далеч надхвърлящ своите предшественици по популярност. По-голямата част от ядрото на Linux е написана на езика за програмиране C с малък брой колекции от други езици. Всяка дистрибуциясъдържа стотици или хиляди програми, които могат да се разпространяват с него и за всяка от тези програми.
Линукс дистрибуцията осигурява избор на дисково пространство с файлова структура на операционната система, всяка от които има специално значение. Усъвършенстваната версия на Extended Filesystem (ext), разработена за MINIX. Втората удължена версия (Ext2) е подобрена версия. Ext3 добави подобрена производителност, Ext4 осигури още по-разширени функции. Журнализираната файлова система (JFS) е разработена от IBM за UNIX AIX. JFS е алтернатива на Ext4 и се използва там, където се изисква стабилна работа, когато се използват много малко ресурси. JFS е подходящ за случаи, когато мощността на процесора е ограничена. ReiserFS беше представен като алтернатива на Ext3 с подобрена производителност и разширени функции. Имаше време, когато SuSE Linux файлът беше по подразбиране ReiserFS, но по-късно Reiser напусна бизнеса и SuSe нямаше друга възможност освен да се върне към Ext3. ReiserFS динамично поддържа файлови разширения, което е относително разширена функция, на системата липсва определена област на изпълнение. XFS е високоскоростна JFS, която е предназначена за паралелна I /O обработка. НАСА преди това е използвала тази структура на файловата система на своите 300 терабайтни сървъри за съхранение. Файловата система B-Tree (Btrfs) се фокусира върху отказоустойчивостта, управлението на развлеченията, ремонта на системата, голямата конфигурация за съхранение и е все още в процес на разработка. Btrfs не се препоръчва за производство. В Linux има много файлови формати, но с тях се използватработа с други операционни системи: VIS, NTFS от Microsoft, HFS от Apple. Работата с файловата структура на операционната система обаче може да се извърши в Linux с помощта на определени инструменти, като ntfs-3g, за монтиране на NTFS файлови системи, които не са привилегировани от Linux.
Процесът на споделяне на процесор, когато две или повече програми са едновременно в паметта, се нарича мултипрограмиране. Тя включва използването на един общ процесор и увеличава изтеглянията чрез организиране на задачи. Присвояване на операционна система, структура на операционната система, свързана с мултипрограмирането:Системата съхранява едновременно няколко задачи в паметта. Този набор е подмножество от задачи, съхранявани в пул. Системата избира и започва да изпълнява една от задачите в паметта. Многопрограмните операционни системи следят състоянието на всички активни програми и ресурси, използвайки софтуер за управление на паметта, за да гарантират, че процесорът никога няма да работи без работни процеси за обработка. Тази схема на работа помага за ефективното използване на процесора.