Архитектура на windows: описание, типове, структура

Архитектурата на Windows NT, серията операционни системи, произвеждани и продавани от Microsoft, е многослойна и се състои от два основни компонента: потребителски режим и режим на ядрото.

архитектура на Windows 7

Това е операционна система с изпреварващо реентриране, предназначена за да работи с еднопроцесорни и симетрични многопроцесорни (SMP) компютри. Те използват пакетно прехвърляне за обработка на входни и изходни (I/O) заявки, при което се използват IRP пакети и асинхронни I/O. От Windows XP Microsoft започна да предлага 64-битови версии на операционната система, като преди това тези платформи съществуваха само в 32-битови версии.

Какви са нейните принципи?

Архитектурата на операционната система Windows прилага следните принципи. Програмите и подсистемите в потребителски режим са ограничени по отношение на системните ресурси, до които имат достъп, докато режимът на ядрото има неограничен достъп до системната памет и външните устройства.

Режимът на ядрото в Windows NT има пълен достъп до хардуера и системните ресурси на компютъра. Ядрото на тази обвивка е известно като хибридно. Архитектурата се състои от просто ядро, слой за хардуерна абстракция (HAL), драйвери и редица услуги (наричани общо Executive), които съществуват в един и същи режим.

Потребителският режим в архитектурата на Windows се състои от подсистеми, които могат да предават заявки за вход/изход към съответните драйвери в режим на ядрото, като използват съответния диспечер. Слой на потребителския режим на Windows се състои от "Подсистеми на средата", които изпълняват приложения, написани за различни операционни системи, и "Интегрална подсистема", която изпълнява системни функции от името на подсистемите на средата.

архитектура на Windows OS

Изпълнителните интерфейси в архитектурата на Windows с всички подсистеми в потребителски режим се занимават с I/O, управление на обекти, сигурност и управление на процеси. Ядрото се намира между слоя за хардуерна абстракция и изпълнителния слой, като осигурява многопроцесорна синхронизация, планиране и изпращане на нишки и прекъсвания, както и обработка на прекъсвания и изпращане на изключения. Ядрото отговаря и за инициализирането на драйверите на устройства при зареждане.

Движещите сили за този режим са на три нива:

  • по-високо;
  • междинни;
  • Нисък.

Моделът на драйверите на Windows (WDM) съществува на междинно ниво и е разработен главно за осигуряване на съвместимост на двоичния и изходния код между Windows 98 и 2000. Драйверите от най-ниско ниво са или наследени инсталатори на устройства на Windows NT, които управляват устройството директно, или могат да бъдат вариант на Play (PnP) - хардуерна шина.

Потребителски режим

Потребителският режим се състои от различни системни процеси и DLL.

Системна архитектура на Windows

Интерфейсът между приложенията и функциите на ядрото на операционната система се нарича "подсистема на средата". Архитектурата на Windows (7 и други от линията NT) може да има повече от една от тях, като всяка от тях реализира различен набор от API. Този механизъм е разработен, за да поддържа приложения, написани за много различни видове операционни системи. Нито една от подсистемите на средата няма пряк достъп до хардуер. Достъпът до хардуерните функции се осъществява чрез извикване на подпрограми в режим на ядрото.

Каква е ролята на подсистемите?

Съществуват четири основни подсистеми на средата: Win32, OS/2, Windows за Linux и POSIX.

Подсистемата на средата Win32 може да изпълнява 32-битови приложения на "Windows". Тя съдържа конзола, както и поддръжка на текстови прозорци, изключване и обработка на сериозни грешки за всички други подсистеми в средата. Той също така поддържа виртуални машини DOS (VDM), които позволяват на MS-DOS и 16-битови приложения Win16 да работят в Windows NT.

Съществува специален MS-DOS VDM, който работи в собствено адресно пространство и емулира Intel 80486 с MS-DOS 5.0. Програмите за Win16 обаче се изпълняват във VDM за Win16. По подразбиране всяка от тях се изпълнява в един и същи процес, като използва едно и също адресно пространство, а Win16 VDM предоставя на всяка програма собствена нишка за изпълнение. Системната архитектура на Windows NT обаче позволява на потребителите да го стартират в отделен прозорец, което позволява изпреварваща многозадачност, тъй като Windows ще изпревари целия процес на VDM, който съдържа само едно работещо приложение.

архитектура на Windows 10

Процес на подсистемата на средата Win32 (csrss.exe) включва и функция за управление на прозорци, понякога наричана "мениджър на прозорци". Той обработва събитията за въвеждане (например клавиатура и мишка) и след това предава съобщения на приложенията, които трябва да получат тези данни. Всяко приложение е отговорно за показването или актуализирането на собствените си прозорци и менюта в отговор на тези съобщения.

Подсистемата на средата на OS/2 поддържа 16-битови приложения със символи на OS/2 и емулира OS/2 1.x, но не и 32-битовите графични приложения или приложенията на OS 2, използвани в OS/2 2.x или по-нова версия само за компютри x86.

Изпълнение на графични програми за OS/2 1.x трябва да бъде инсталирана подсистемата за добавки на Windows NT за Presentation Manager. Последната версия на NT, която имаше подсистема OS/2, беше Windows 2000, след което тя беше премахната, като се започне с архитектурата на Windows XP.

Подсистемата на средата POSIX поддържа приложения, които са написани стриктно за POSIX.1, или за съответния Стандарти ISO/IEC. Той беше заменен от Interix, който е част от Windows Services for UNIX.

Подсистемата за сигурност обработва токени за сигурност, предоставя или отказва достъп до потребителски акаунти въз основа на разрешенията за ресурси, обработва заявки за влизане и инициира удостоверяване на влизането и определя кои системни ресурси трябва да бъдат проверени от Windows NT.

Архитектура на операционната система Windows

Режим на ядрото

Режимът на ядрото в архитектурата на Windows NT има пълен достъп до хардуерните и системните ресурси на компютъра и изпълнява код в защитена област от паметта. Тя контролира достъпа до планирането, приоритизирането на нишките, управлението на паметта и взаимодействието с хардуера. Режимът на ядрото не позволява на услугите и приложенията в потребителски режим да получат достъп до критични области на операционната система, до които не би трябвало да имат достъп, а процесите в него трябва да се обърнат към режима на ядрото, за да извършат такива операции от тяхно име.

Въпреки че архитектурата на Windows x86 поддържа четири различни нива на привилегии (от 0 до 3), се използват само двете крайни. Програмите в потребителски режим се изпълняват с CPL 3, а ядрото - с CPL 0. Тези две нива често се наричат съответно "пръстен 3" и "пръстен 0". Това проектно решение е взето, за да се осигури преносимост на кода към платформи RISC, които поддържат само две нива на привилегии, въпреки че нарушава съвместимостта с приложенията на OS/2, които съдържат сегменти с I/O привилегии, опитващи се да осъществяват пряк достъп до хардуера.

Режимът на ядрото се състои от услуги по време на изпълнение, които се състоят от много модули, изпълняващи специфични задачи: драйвери на ядрото, самото ядро и слоя за хардуерна абстракция (HAL).

Администрация

Изпълнителните услуги на Windows са частта от ниско ниво на режима на ядрото и се съдържат във файла NTOSKRNL.EXE. Това се отнася за I/O, управление на обекти, сигурност и управление на процеси. Те са разделени на няколко подсистеми, сред които особена роля играят мениджърът на кеша, мениджърът на конфигурацията, мениджърът на входно-изходните операции, мениджърът на локалното извикване на процедури (LPC), мениджърът на паметта, структурата на процесите и мониторът за сигурност (SRM). Компонентите, групирани заедно, могат да се наричат изпълними услуги (вътрешно наименование Ex). Системните услуги (вътрешно име на Nt), т.е. системните повиквания, също се реализират на това ниво, с изключение на много малко, които се обръщат директно към нивото на ядрото за подобряване на производителността.

Архитектура на ядрото на Windows

Терминът "услуга" в този контекст обикновено се отнася до извикваща се подпрограма или набор от извикващи се подпрограми. Това се различава от концепцията за "процес на услугата", който е компонент в потребителски режим, донякъде подобен на демонстрацията в операционните системи, подобни на Unix. Този архитектурна характеристика Ядрото на Windows 10 и всички предходни дистрибуции.

Мениджър на обекти

Мениджърът на обекти (вътрешно име Ob) е подсистемата за изпълнение, през която трябва да преминат всички други подобни подсистеми, особено системните повиквания, за да получат достъп до ресурсите на Windows NT, което по същество го превръща в инфраструктурна услуга за управление на ресурсите. Мениджърът на обекти се използва, за да се намали дублирането на функционалността за управление на ресурсите в други подсистеми за изпълнение, което може да доведе до грешки и да усложни разработването на Windows NT.

За този мениджър всеки ресурс е обект, независимо дали е физически (като файлова система или периферно устройство) или логически (като файл). Всеки обект има структура или тип, за който Ob трябва да знае.

Създаването на обект в архитектурата на фамилията Windows е двуетапен процес на създаване и вмъкване на. Създаването води до заделяне на празен обект и всички ресурси, изисквани от диспечера, като например (незадължителното) име в Пространство от имена. Ако това е успешно, подсистемата, отговорна за създаването, запълва празния обект. И накрая, ако подсистемата сметне инициализацията за успешна, тя инструктира мениджъра на обекти да вмъкне обект, като го направи достъпен чрез името му или чрез бисквитка, наречена дескриптор. От този момент нататък съществуването на обекта се обработва от мениджъра и подсистемата трябва да го поддържа, докато Ob не съобщи, че е бил изтрит.

Дескрипторите са идентификатори, които представляват препратка към ресурс на ядрото чрез непрозрачна стойност. По подобен начин отварянето на обект чрез неговото име подлежи на проверки за сигурност, но действието чрез съществуващ отворен дескриптор е ограничено само от нивото на достъп, поискано при отварянето или създаването на обекта.

архитектура на Windows 8 1

Типовете обекти определят процедурите и всички специфични за тях данни. По този начин Ob позволява на Windows NT да бъде обектно-ориентирана операционна система, тъй като типовете обекти могат да се разглеждат като като полиморфни класове, определящи обекти. Повечето подсистеми обаче, с изключение на мениджъра за вход/изход, разчитат на изпълнение по подразбиране за всички процедури.

Всяка инстанция на създаван обект съхранява името му, параметри, които се предават на функцията за създаване на обект, атрибути за сигурност и указател към неговия тип.

Контролер на кеша

Този елемент на Windows 7 и други версии на архитектурата се координира тясно с мениджъра на паметта, диспечера и драйверите за вход/изход, за да се осигури общ кеш за общите файлови вход/изходи. Мениджърът на кеша на Windows работи с файлови блокове (а не с блокове на устройствата), за да поддържа последователността на локалните и отдалечените файлове, и осигурява известна степен на последователност при съпоставянето на данните, заредени в паметта.

Мениджър I/O

Този градивен елемент на архитектурата на Windows 10 и по-ранните версии позволява на устройствата да комуникират с подсистеми в потребителски режим. Той преобразува командите за четене и запис в потребителски режим в IRP, които предава на драйверите на устройствата. Той приема заявки за вход/изход от файловата система и ги преобразува в специфични за устройството повиквания, като може да включва драйвери от ниско ниво, които директно манипулират хардуера за четене или вход/изход. Той включва и кеш мениджър за подобряване на производителността на диска чрез кеширане на заявките за четене и запис на диска във фонов режим.

Извикване на местна процедура (LPC)

Тази структурна част от архитектурата на Windows 10 (и всички по-ранни дистрибуции) осигурява портове за междупроцесна комуникация със семантика на връзките. Портовете LPC се използват от подсистемите в потребителски режим за комуникация с техните клиенти, от изпълнителните подсистеми за комуникация с подсистемите в потребителски режим и като основа за местен транспорт за Microsoft RPC.

Мениджър на паметта

Този елемент от архитектурата на Windows 8.1 и други версии управлява виртуалната памет, нейната защита и подмяната от физическа и към вторична памет. По този начин се реализира универсален разпределител на физическа памет. Той също така създава парсер на изпълним файл PE, който позволява изпълнимият файл да бъде визуализиран или не в една атомна стъпка.

Започване с Windows NT Server 4.0, издание на терминалния сървър, мениджърът на паметта реализира т.нар. пространство на сесиите - обхват на паметта в режим на ядрото, който подлежи на превключване на контекста по същия начин, както паметта в потребителски режим. Това позволява на множество версии на подсистемата в режим на ядрото Win32 и на драйверите GDI да работят една до друга, въпреки недостатъците в първоначалния им дизайн. Всяко пространство за сесия се споделя от няколко процеса, които заедно се наричат "сесия".

За да се осигури известна степен на изолация между сесиите, без да се въвежда нов тип обект, мониторът на референциите за сигурност третира връзката между процесите и сесиите като атрибут на субекта на сигурността (токен) и може да се променя само със специални привилегии.

Сравнително простият и ad hoc характер на сесиите се дължи на факта, че те не бяха част от първоначалния проект и трябваше да бъдат разработени с минимално прекъсване на основната линия от трета страна (Citrix Systems) като предпоставка за техния продукт за терминални сървъри за Windows NT, наречен WinFrame.

Въпреки това, започвайки с архитектурата на Windows Vista, сесиите най-накрая се превърнаха в същински аспект от нея. Те вече не са конструкция на мениджър на паметта, която преминава в потребителски режим непряко чрез Win32, а са разширени до цялостна абстракция, която засяга повечето подсистеми на времето за изпълнение. Всъщност редовното използване на Windows Vista винаги води до среда с няколко сесии.

Рамка на процеса

Този елемент от архитектурата на операционната система Windows 7 (и други варианти) контролира създаването и прекратяването на процеси и нишки и реализира концепцията за задача - група процеси, които могат да бъдат прекратени като цяло или да бъдат поставени под общи ограничения (например общ максимум заделена памет или процесорно време). Обектите за задачи бяха въведени в Windows 2000.

Мениджър на PnP

Управлява и поддържа откриването и инсталирането на устройства по време на зареждане. Той отговаря и за спирането и стартирането на устройства при поискване - това може да се случи, когато в шина (като USB или IEEE 1394 FireWire) се появи ново устройство и трябва да се зареди драйвер, който да го поддържа. Основната му част всъщност е реализирана в потребителски режим, в услугата Plug and Play, която изпълнява често сложните задачи по инсталиране на подходящи драйвери, уведомяване на службите и приложенията за нови устройства и показване на графичния потребителски интерфейс.

Управление на захранването

Обработва събития, свързани с електрозахранването (изключване на захранването, режим на готовност, хибернация и др.), и уведомява засегнатите потребители. д.) и уведомява засегнатите драйвери със специален IRP (Power IRP). Ролята му е да контролира.

Монитор за контрол на сигурността (SRM)

Основен орган за прилагане на сигурността на интегрираната подсистема за сигурност. Определя дали даден обект или ресурс може да бъде достъпен с помощта на списъци за контрол на достъпа (ACL), които сами по себе си се състоят от записи за контрол на достъпа (ACE). ACE съдържат идентификатор за сигурност (SID) и списък с операциите, които ACE предоставят на избраната група - потребителски акаунт, група или сесия за вход - разрешение (разрешаване, отказване или проверка) за този ресурс.

GDI

Интерфейсът на графичното устройство отговаря за задачи като чертане на линии и криви, изобразяване на шрифтове и работа с палитри. Издания от серията Windows NT 3.x Компонентът GDI беше поставен в подсистемата клиент/сървър в потребителски режим, но беше преместен в режим на ядрото в Операционна система Windows NT 4.0 за подобряване на графичната производителност.

Ядро

Ядрото в архитектурата на Windows се намира между HAL и изпълнителния модул и осигурява многопроцесорна синхронизация, планиране и изпращане на нишки и прекъсвания, както и обработка на прекъсвания и изпращане на изключения. Той отговаря и за инициализирането на драйверите на устройства при зареждане, което са необходими за стартира операционна система. Това означава, че ядрото изпълнява почти всички задачи на традиционното микроядро. Стриктното разграничение между изпълнителен компонент и ядро е най-видимият остатък от първоначалния дизайн на микроядрото, а в историческата документация на проекта компонентът на ядрото постоянно се нарича "микроядро".

Ядрото често взаимодейства с мениджъра на процеса. Нивото на абстракция е такова, че никога не се отнася до мениджъра на процеса, а само обратното (освен в няколко нетипични случая, които никога не достигат до функционална зависимост).

Статии по темата