Какво е потребителски режим срещу режим на ядрото в Windows

Може да сте чували за приложения, работещи в режим „ядро“ или „потребител“. Всичко се свежда до това как работят операционните системи, когато вършат работата си. След като разберете това, е лесно да разберете разликата между потребителския режим и режима на ядрото.

Разбиране какво прави(Does) операционната система

Компютърът се състои от хардуер, електронни компоненти и софтуер, компютърният код, изпълняван от този хардуер. Но това, което може да е по-малко ясно, е как работят заедно.

Най-важният елемент на компютъра е битът или „двоична цифра. ” Всичко(” Everything) , което прави компютърът, се представя като единици и нули. Различните(Different) компютърни компоненти представляват битове по различни начини. В CPU микроскопичните транзистори представляват единици и нули, като са включени или изключени. Тези транзистори са подредени в логически структури, наречени логически порти.

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

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

И така, как да преминете от удобния за човека интерфейс на компютъра към необработените процеси на ниско ниво в самия компютър? Тук идва операционната система. Тя директно контролира хардуера на компютъра. 

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

Какво е ядрото?

Както подсказва името, ядрото е ядрото на операционната система. Ядрото е софтуер, който се намира в RAM и насочва всичко, което компютърът прави. Когато нещо е записано в паметта, ядрото е това, което насочва изпълнението.

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

Хардуерните драйвери влизат в игра тук. Драйверите казват на вашата операционна система как да работи с конкретни компоненти, поради което имате нужда от различни драйвери за Nvidia и AMD GPU(AMD GPUs) , например.

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

Ролята на интерфейсите за програмиране (Application Programming Interfaces)на(Role) приложения ( API(APIs) )

В дните на MS-DOS разработчиците на софтуер трябваше да напишат своя софтуер специално за хардуера на потребителя. Най-известният пример за това в системите MS-DOS са драйверите на звуковата карта.

Дадена видео игра трябва да поддържа най-популярните карти ( Sound Blaster , Ad-lib , Gravis Ultrasound и др.) и се надява, че повечето играчи са обхванати. Днес нещата работят много различно, благодарение на API(APIs) .

Microsoft DirectX е чудесен пример. Ако искате задълбочено обяснение, вижте Какво е DirectX и защо е важно? (What Is DirectX and Why Is It Important?)Въпреки това, най-важното нещо, което трябва да знаете, е, че API предлага стандартен начин за разработчиците на софтуер да искат хардуерни ресурси от компоненти като графичния процесор(GPU) . Освен това производителите на хардуер трябва само да гарантират, че техните продукти отговарят на DirectX , за да осигурят пълна съвместимост с всеки съвместим със същия софтуер.

Приложните програмни интерфейси (API)(APIs) предлагат слой за превод между софтуерни приложения и ядрото на ниско ниво с неговите хардуерни драйвери. Да, това идва с леко намаление на производителността. Все пак на съвременните компютри това е незначително и идва с различни предимства, което е мястото, където най-накрая стигаме до потребителския режим и режима на ядрото.

Потребителски режим срещу режим на ядрото

Съвременните операционни системи изпълняват стотици или хиляди „процеси“ едновременно, като им предоставят динамично процесорно(CPU) време според нуждите въз основа на техните приоритети и изисквания за изчислителна мощност.

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

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

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

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

Капани и изключения

Важно е да се разбере, че тези два режима се налагат на хардуерно ниво от самия процесор(CPU) . Ако приложение, работещо в потребителски режим, се опита да направи нещо, което изисква достъп в режим на ядрото, то генерира „капан“ или „изключение“. След това операционната система ще се справи с приложението, обикновено като го изключи и генерира регистрационен файл за сривове, така че разработчиците да могат да видят какво се е случило в паметта, когато нещата са тръгнали извън релси.

Опасностите(Dangers) от режима на ядрото :(Kernel Mode) Синият екран(Blue Screen) на смъртта(Death)

Ако някога сте изпитвали Син екран(Blue Screen) на смъртта(Death) (кой не е?), който е принудил компютъра ви да се изключи или рестартира, има голяма вероятност да е виновен процес в режим на ядрото.

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

Това е една област, в която API(APIs) играят съществена роля, тъй като API иска привилегии за режим на ядрото. Приложенията в потребителски режим по същество делегират заявки, които биха изисквали привилегии в режим на ядрото, към API .

Ето защо режимът на ядрото обикновено се предоставя само на системни процеси от ниско ниво, които трябва да имат директен достъп до хардуера на компютъра. Обикновено тази привилегия се разширява до процес, защото се нуждае от повече производителност, отколкото потребителският режим може да осигури. Някои CPU инструкции работят само в режим на ядрото, така че ако даден процес трябва да използва тези функции, той трябва да бъде повишен.

Ако имате проблеми със синия екран(Blue Screen) на смъртта(Death) , не забравяйте да прочетете нашето Ръководство за отстраняване на проблеми със синия екран на смъртта за Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

„Аз съм експерт по Windows и Office на свободна практика. Имам над 10 години опит в работата с тези инструменти и мога да ви помогна да извлечете максимума от тях. Моите умения включват: работа с Microsoft Word, Excel, PowerPoint и Outlook; създаване на уеб страници и приложения; и помагане на клиентите да постигнат своите бизнес цели."



Related posts