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

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

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

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

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


Режимът на ядрото на Windows NT има пълен достъп до хардуера и системните ресурси на компютъра. Ядрото на тази обвивка е известно, че е хибридно. Архитектурата включва просто ядро, хардуерно ниво на абстракция (HAL), драйвери и услуги (наричани общо изпълнителни), които съществуват в същия режим. Потребителският режим в архитектурата на Windows се състои от подсистеми, които могат да прехвърлят I /O заявки към подходящите драйвери за режима на ядрото, използвайки подходящия контролер. Топката на потребителския режим "Вятър" се състои от "Подсистеми на околната среда", в които се изпълняваприложения, написани за различни операционни системи, и "Интегрална подсистема", която изпълнява системни функции от името на подсистемите на околната среда.


Изпълнителни интерфейси в архитектурата на Windows с всички подсистеми за потребителски режим се занимават с вход /изход, управление на обекти, сигурност и управление на процеси. Ядрото е разположено между нивото на хардуерната абстракция и изпълняващото устройство, осигуряващо многопроцесорна синхронизация, планиране и планиране на потоци и прекъсвания, както и обработка на прекъсвания и диспечерски изключения. Ядрото е отговорно и за инициализиране на драйвери на устройства по време на зареждане. Водачите на този режим съществуват на три нива:
  • по-високи;
  • междинно съединение;
  • ниско.
  • Моделът за драйвери на Windows (WDM) съществува на междинно ниво и е предназначен главно за осигуряване на съвместимост и изходен двоичен код между Windows 982000. Драйверите от по-ниско ниво са остарели инсталатори на Windows NT устройства, които контролират устройството директно или могат да бъдат сортове за възпроизвеждане (PnP) - хардуерната шина.

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

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

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

    Съществуват четири основни подсистеми на околната среда: Win32 OS /2 Windows, Linux и POSIX. Подсистемата на средата Win32 може да изпълнява 32-битови Windows програми. Той съдържа конзола, както и поддръжка на текстово поле, изключване и обработка на сериозни грешки за всички други подсистеми на околната среда. Той също така поддържа DOS виртуални машини (VDM), които позволяват на MS-DOS и Win16 16-битови приложения да работят под Windows NT. Има специален VDM MS-DOS, който работи в собственото си адресно пространство и емулира Intel 80486 под MS-DOS 5.0. Win16 програми обаче работят в Win16 VDM. Всеки от тях по подразбиране се изпълнява в същия процес, използвайки същото адресно пространство, а Win16 VDM предоставя на всяка програма със свой собствен поток, за да се изпълни. Въпреки това, архитектурата на Windows NT системата позволява на потребителите да я изпълняват в отделен прозорец, което позволява многозадачност да бъде превантивна, тъй като Windows ще превъзхожда целия VDM процес, който съдържа само едно работещо приложение.
    Процесът на подсистема среда на Win32 (csrss.exe включва и функции за управление на прозорци, понякога наричани "мениджър на прозорци". Той обработва входни събития (например от клавиатурата и мишката) и след това изпраща съобщения до приложения, които трябва да получат това Всяко приложение е отговорно за показване или актуализиране на собствените си прозорци и менюта в отговор на тези съобщения
    .OS /2 подсистемата поддържа 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 за UNIX. Подсистемата за защита изпълнява защитни маркери, предоставя или отказва достъп до потребителски акаунти въз основа на разрешения за ресурси, обработва заявки за влизане и започва проверки за проверка и определя кои системни ресурси трябва да бъдат проверени от Windows NT.

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

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

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

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

    Windows Executive Services е част от режима на ядрото на ниско ниво и се съдържа в файла NTOSKRNL.EXE. Това включва вход /изход, управление на обекти, сигурност и управление на процесите. Те са разделени на няколко подсистеми, сред които Cache Manager, Configuration Manager, I /O Manager, Local Call Call (LPC), Memory Manager, Process Structure и Security Monitor Monitor (SRM) играят специална роля. Компонентите, групирани заедно, могат да бъдат наречени изпълними услуги (вътрешно име Ex). Системни услуги (вътрешно име Nt), т.е. системни повиквания, също се изпълняват на това ниво, с изключение на много малко хора, които имат пряк достъп до нивото на ядрото за повишена производителност.
    Терминът "услуга" в този контекст обикновено се отнася до наричана подпрограма или набор от извикани подпрограми. Тя се различава от концепцията за "сервизен процес", който е компонент на интерфейсния режим, донякъде подобендемонстрации в Unix-подобни операционни системи. Това е характеристика на основната архитектура на Windows 10 и всички предишни дистрибуции.

    Object Manager

    Object Manager (вътрешно име Ob) е изпълнима подсистема, чрез която всички други подсистеми, особено системните повиквания, трябва да преминат през достъп до ресурсите на Windows NT, които са по същество , прави услуга за управление на инфраструктурни ресурси. Мениджърът на обекти се използва за намаляване на дублирането на възможностите за управление на ресурси в други изпълняващи подсистеми, което може да доведе до грешки и усложнява развитието на Windows NT. За този мениджър всеки ресурс е обект, независимо дали е физически (например файлова система или периферно устройство) или логически (например файл). Всеки обект има структура или тип, за които Ob би трябвало да знае. Създаването на обект в архитектурата на Windows OS е процес, който протича в два етапа - създаване и вмъкване. Създаването причинява разпределянето на празен обект и резервирането на всички ресурси, изисквани от мениджъра, като например (по избор) име в пространството от имена. Ако е било успешно, подсистемата, отговорна за създаването, запълва празния обект. И накрая, ако подсистемата смята, че инициализацията е успешна, тя дава на мениджъра на обекта инструкция за вмъкване на обекта, правейки го достъпен чрез неговото име или файл с бисквитка, наречен дръжка. От този момент нататък съществуването на обект се управлява от мениджъра и подсистемата трябва да го поддържа в работно състояние, докато Ob го докладвапремахване. Дескрипторите са идентификатори, които представляват препратка към ресурс на ядрото поради непрозрачна стойност. По същия начин, отварянето на обект чрез неговото име е обект на проверки за сигурност, но действието през съществуващ отворен дескриптор е ограничено само до нивото на достъп, поръчан, когато обектът е бил отворен или създаден.
    Видовете обекти дефинират процедури и всички специфични за него данни. По този начин Ob позволява на Windows NT да бъде обектно-ориентирана операционна система, тъй като обектите могат да се разглеждат като полиморфни класове, които дефинират обекти. Повечето подсистеми обаче, със забележимо изключение в I /O мениджъра, разчитат на изпълнението по подразбиране за всички процедури. Всяко копие на създавания обект съхранява своето име, параметри, които се предават на функцията за създаване на обект, атрибути на защитата и указател към неговия тип.

    Cache Controller

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

    I /O Manager

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

    Локална процедура за процедури (LPC)

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

    Памет мениджър

    Този елемент на Windows 8.1 и други версии контролира виртуалната памет, нейната защита и изпомпване от физически към вторичен. По този начин той прилага универсално разпределение на физическата памет. Той също така създава PE парсер, който позволява изпълним файл да се показва или да не се показва чрез атомна стъпка. Започвайки с Windows NT Server 4.0 Terminal Server Edition, мениджърът на паметта изпълнява така нареченото пространство за сесия, лента с памет на режима на ядрото, която има тенденция да превключва контекста точно като потребителската памет. Това позволява няколко копия на режима на ядрото на Win32 и драйверите на GDI да работят рамо до рамо,въпреки недостатъците в оригиналния си дизайн. Всяко пространство на сесията се споделя от няколко процеса, наричани общо "сесии". За да се осигури определена степен на изолация между сесиите, без да се въвежда нов тип обект, мониторът на връзката за защита обработва връзката между процесите и сесиите като атрибут на маркера за сигурност (token) и може да се променя само ако има специални привилегии. Относително простият и специален характер на сесиите се дължи на факта, че те не са били част от първоначалния проект и би трябвало да бъдат разработени с минимално нарушение на линията на трети страни (Citrix Systems) като предпоставка за техния терминален сървърен продукт за Windows NT, наречен WinFrame. Въпреки това, тъй като архитектурата на Windows Vista, сесиите най-накрая са станали подходящи за неговия аспект. Вече не е дизайнът на мениджъра на паметта, който преминава в потребителски режим индиректно чрез Win32, те бяха разширени до изчерпателна абстракция, засягаща повечето изпълнителни подсистеми. Всъщност редовната употреба на Windows Vista винаги води до мултисесийна среда.

    Структура на процеса

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

    PnP Manager

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

    Power Manager

    Работи със събития за захранване (Power Off, Standby, Sleep и др.) И съобщава за счупени драйвери, използващи IRP (Power IRP). Неговата роля е контролираща.

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

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

    GDI

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

    Ядрото

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

    Свързани публикации