В компютърните науки, Ядрото е компютърна програма, която е ядро или сърце на операционна система. Преди да обсъдим подробно ядрото, нека първо разберем неговата основа, т.е. операционната система в компютъра.
Операционна система
Операционна система или ОС е системен софтуер, който работи като интерфейс между хардуерните компоненти и крайния потребител. Позволява стартирането на други програми. Всяка компютърна система, независимо дали е настолен компютър, лаптоп, таблет или смартфон, всички трябва да имат операционна система, за да предоставят основни функции за устройството. Някои широко използвани операционни системи са Windows , Linux , MacOS, Android , iOS и др.
Какво е ядрото в операционната система?
- Както беше обсъдено по-горе, ядрото е основната част на OS (операционна система); следователно има пълен контрол върху всичко в системата. Всяка операция на хардуер и софтуер се управлява и администрира от ядрото.
- Той действа като мост между приложенията и обработката на данни, извършвана на хардуерно ниво. Това е централният компонент на ОС.
- Това е частта от операционната система, която винаги се намира в паметта на компютъра и позволява комуникацията между софтуерните и хардуерните компоненти.
- Това е компютърната програма, която първа се зарежда при стартиране на системата (след буутлоудъра). След като се зареди, той управлява останалите стартирания. Той също така управлява памет, периферни устройства и I/O заявки от софтуера. Освен това, той превежда всички I/O заявки в инструкции за обработка на данни за процесора. Управлява и други задачи като управление на паметта, управление на задачи и управление на дискове .
- Ядрото се съхранява и обикновено се зарежда в отделно пространство на паметта, известно като защитено пространство на ядрото. Той е защитен от достъп от приложни програми или по-малко важни части на операционната система.
- Други приложни програми като браузър, текстообработваща програма, аудио и видео плейър използват отделно пространство в паметта, известно като потребителско пространство.
- Благодарение на тези две отделни пространства потребителските данни и данните на ядрото не си пречат и не причиняват нестабилност и забавяне.
Функции на ядрото
Ядрото на операционната система е отговорно за изпълнението на различни функции и има контрол над системата. Някои основни отговорности на Kernel са дадени по-долу:
За да извършват различни действия, процесите изискват достъп до периферни устройства като мишка, клавиатура и др., които са свързани към компютъра. Ядрото е отговорно за контролирането на тези устройства с помощта на драйвери на устройства. Тук, а драйвер на устройство е компютърна програма, която помага или позволява на операционната система да комуникира с всяко хардуерно устройство.
Ядрото поддържа списък на всички налични устройства и този списък може да е вече известен, конфигуриран от потребителя или открит от операционната система по време на изпълнение.
Ядрото има пълен контрол за достъп до паметта на компютъра. Всеки процес изисква малко памет, за да работи, а ядрото позволява на процесите безопасен достъп до паметта. За да разпределите паметта, първата стъпка е известна като виртуално адресиране, което се извършва чрез страниране или сегментиране. Виртуално адресиране е процес на предоставяне на виртуални адресни пространства на процесите. Това предотвратява срива на приложението едно в друго.
Една от важните функции на Kernel е споделянето на ресурсите между различни процеси. Той трябва да споделя ресурсите по начин, по който всеки процес да има еднакъв достъп до ресурса.
Ядрото също така предоставя начин за синхронизация и междупроцесна комуникация (IPC). Той отговаря за превключването на контекста между процесите.
Ядрото е отговорно за достъпа до компютърни ресурси като RAM и I/O устройства. RAM или памет с произволен достъп се използва, за да съдържа както данни, така и инструкции. Всяка програма има нужда от достъп до паметта, за да се изпълни и най-вече иска повече памет от наличната. В такъв случай ядрото играе своята роля и решава коя памет ще използва всеки процес и какво да прави, ако необходимата памет не е налична.
Ядрото също разпределя заявката от приложенията за използване на I/O устройства като клавиатури, микрофони, принтери и др.
Видове ядро
Има основно пет типа ядро, които са дадени по-долу:
1. Монолитни ядра
В монолитно ядро, същото пространство в паметта се използва за реализиране на потребителски услуги и услуги на ядрото.
Това означава, че в този тип ядро няма различна памет, използвана за потребителски услуги и услуги на ядрото.
Тъй като използва същото пространство в паметта, размерът на ядрото се увеличава, увеличавайки общия размер на операционната система.
Изпълнението на процесите също е по-бързо от другите типове ядро, тъй като не използва отделно потребителско и ядрово пространство.
Примери на монолитни ядра са Unix, Linux, Open VMS, XTS-400 и др.
четене на csv файл в java
Предимства:
- Изпълнението на процесите също е по-бързо, тъй като няма отделно потребителско пространство и пространство на ядрото и по-малко включен софтуер.
- Следователно, тъй като това е единична част от софтуера, както източниците, така и компилираните формуляри са по-малки.
Недостатъци:
- Ако някоя услуга генерира някаква грешка, тя може да срине цялата система.
- Тези ядра не са преносими, което означава, че за всяка нова архитектура те трябва да бъдат пренаписани.
- Големи по размер и следователно стават трудни за управление.
- За да добавите нова услуга, трябва да се модифицира цялата операционна система.
2. Микроядро
Микроядрото също се нарича МК и е различно от традиционното ядро или монолитното ядро. В това, потребителските услуги и услугите на ядрото са внедрени в две различни адресни пространства: потребителско пространство и пространство на ядрото . Тъй като използва различни пространства за двете услуги, размерът на микроядрото е намален, което също намалява размера на операционната система.
Микроядрата са по-лесни за управление и поддръжка в сравнение с монолитните ядра. И все пак, ако ще има по-голям брой системни повиквания и превключване на контекст, това може да намали производителността на системата, като я направи бавна.
Тези ядра използват система за предаване на съобщения за обработка на заявката от един сървър към друг сървър.
Само някои основни услуги се предоставят от микроядрата, като дефиниране на адресни пространства на паметта, IPC (междупроцесна комуникация) и управление на процеси. Други услуги, като работа в мрежа, не се предоставят от ядрото и се обработват от програма за потребителско пространство, известна като сървъри .
Един от основните недостатъци на монолитните ядра, че грешка в ядрото може да срине цялата система, може да бъде отстранен в микроядрото. Както при микроядрото, ако процес на ядрото се срине, сривът на цялата система все още може да бъде предотвратен чрез рестартиране на услугите, причинени от грешка.
Примери на Microkernel са L4, AmigaOS, Minix, K42 и т.н.
Предимства
име на продукти за грим
- Микроядрата могат да се управляват лесно.
- Нова услуга може лесно да се добави, без да се променя цялата операционна система.
- В микроядрото, ако процес на ядрото се срине, все още е възможно да се предотврати срив на цялата система.
Недостатъци
- Има повече изисквания за софтуер за интерфейс, което намалява производителността на системата.
- Управлението на процеса е много сложно.
- Грешките в съобщенията са трудни за коригиране.
3. Хибридно ядро
Хибридните ядра са известни още като модулни ядра , и това е комбинация от монолитни и микроядра. Той се възползва от скоростта на монолитните ядра и модулността на микроядрата.
Хибридно ядро може да се разбира като разширена версия на микроядро с допълнителни свойства на монолитно ядро. Тези ядра се използват широко в търговски ОС, като различни версии на MS Windows.
Той е много подобен на микроядрото, но включва и допълнителен код в пространството на ядрото за подобряване на производителността на системата.
Хибридните ядра позволяват стартирането на някои услуги като мрежов стек в пространството на ядрото за намаляване на производителността в сравнение с традиционно микроядро, но все пак позволява да се изпълнява код на ядрото (като драйвери на устройства) като сървъри в потребителско пространство.
Примери за хибридно ядро са Windows NT, Netware, BeOS и др.
Предимства:
- Няма изискване за рестартиране за тестване.
- Технологията на трети страни може да бъде интегрирана бързо.
Недостатъци:
Java кодиране if else оператор
- Има възможност за повече грешки с повече интерфейси за преминаване.
- Може да се окаже объркваща задача да поддържате модулите за някои администратори, особено когато се занимавате с проблеми като разлики в символите.
4. Наноядро
Както подсказва името, в Nanokernel пълният код на ядрото е много малък, което означава, че кодът, изпълняван в привилегирован режим на хардуера, е много малък . Тук терминът нано дефинира ядро, което поддържа наносекундна тактова резолюция.
Примери за наноядро са EROS и т.н.
Предимства
- Той осигурява хардуерни абстракции дори при много малък размер.
Недостатъци
бурак озцивит
- Nanokernel няма системни услуги.
5. Екзоядро
Exokernel все още се развива и е експерименталният подход за проектиране на ОС.
Този тип ядро е различно от другите ядра, като това; защитата на ресурсите е отделена от управлението, което ни позволява да извършваме специфични за приложението персонализации.
Предимства:
- Базираната на екзоядро система може да включва множество библиотечни операционни системи. Всяка библиотека експортира различен API, като единият може да се използва за разработка на потребителски интерфейс на високо ниво, а другият може да се използва за контрол в реално време .
Недостатъци:
- Дизайнът на екзоядрото е много сложен.
Какво е Kernel Panics?
Както вече обсъдихме, това ядро контролира цялата компютърна система; следователно, ако се срине, може да свали цялата система. В MacOS и Linux такова нежелано събитие е известно като ' Паника в ядрото. За да се възстановим от паниката на ядрото, трябва да рестартираме системата.
Обикновено тези паники на ядрото са причинени от проблеми с хардуерната комуникация. Следователно, ако възникнат повтарящи се паники на ядрото, опитайте да изключите по-малко необходимите или ненужни устройства и проверете дали проблемът е разрешен или не.