Ядро. Что такое ядро ОС. Что такое ядро ос Типы ядер Ядро
Скачать 46.64 Kb.
|
Что такое ядро ОС? Типы ядер Ядро — это своего рода главная программа, являющаяся основной частью операционной системы. Оно выступает в роли посредника между устройствами компьютера (процессором, видеокартой, оперативной памятью и т.д.) и его программным обеспечением, абстрагируя от обычных программ и пользователей сложную, низкоуровневую работу с «железом» компьютера, предоставляя взамен простой, понятный и удобный в использовании интерфейс. Для этого в код ядра включены драйверы устройств, которые могут как загружаться в память вместе с ядром ОС, так и подключаться по мере возникновения потребности в ресурсах необходимого устройства. Как правило, большинство ядер ОС делятся на три типа: микроядра; монолитные; гибридные. Микроядро Микроядро — это ядро, состоящее из нескольких подгружаемых в память по мере надобности независимых модулей, выполняющихся в отдельных адресных пространствах. По сути, в таком варианте исполнения оно не сильно отличается от обычных прикладных программ. К достоинствам данного ядра можно отнести теоретически большую надежность в сравнении с другими архитектурами (в действительности же не всё так радужно и гладко) и его модульность (легкость в подключении дополнительных частей ядра). К минусам микроядерной архитектуры относится то, что ядро, построенное по такой схеме, получается очень медленным (ведь ему нужно постоянно переключаться между отдельными частями). Плюсы: переносимость; малый размер; небольшие требования к используемой памяти; безопасность. Минусы: аппаратное обеспечение сильнее абстрагировано от системы; аппаратное обеспечение может медленнее реагировать, поскольку драйверы находятся в пользовательском пространстве; Монолитное ядроМонолитное ядро — это полная противоположность микроядра, т.к. в памяти компьютера всегда находится весь (или почти весь) код ядра, вследствие чего скорость его работы выше в сравнении с микроядром. Монолитные ядра, как правило, лучше справляются с операциями доступа к оборудованию и многозадачностью, потому что, если программе нужно получить информацию из памяти или другого запущенного процесса, у нее есть прямая линия для доступа к ней, и программе не нужно ждать в очереди, чтобы сделать что-то. Однако такой подход может вызвать серьезные проблемы, потому что, чем больше процессов выполняется на уровне ядра, тем больше вероятность, что в случае непредвиденного поведения они создадут общий сбой вашей системы. Плюсы: практически прямой доступ программ к оборудованию; процессам проще взаимодействовать друг с другом; если ваше устройство поддерживается ядром, никаких дополнительных установок ПО не потребуется; процессы реагируют быстрее, потому что не требуется ожидания в очереди за процессорным временем. Минусы: большой размер ядра; больший размер занимаемой памяти; проблемы с безопасностью, т.к. все части работают в пространстве ядра. Гибридное ядроГибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур. У таких ядер есть возможность выбирать, какие части будут работать в пользовательском пространстве (например, драйверы устройств и система ввода-вывода файловой системы), а какие — в пространстве ядра (вызовы межпроцессного (IPC) и серверного взаимодействий). Но этот подход имеет и некоторые проблемы, унаследованные от микроядерной архитектуры (особенно, по части быстродействия). Плюсы: разработчик может выбрать, какие программы будут работать в пользовательском пространстве, а какие — в пространстве ядра; меньший размер в сравнении с монолитным ядром; гибче в отличие от других ядер. Минусы: может страдать от пониженной производительности (как и микроядро); работа драйверов устройств, как правило, сильнее зависит от производителей оборудования. Ядро Linux хоть и относится к монолитным ядрам, но оно также заимствует и некоторые идеи из микроядерной архитектуры, что означает, что вся операционная система работает в пространстве ядра, а драйверы устройств (в виде модулей) могут быть легко загружены (или выгружены) прямо во время работы операционной системы. Где находится ядро Linux?Каждый раз во время запуска (или перезапуска) системы первым компонентом, который загружается в память компьютера, является ядро Linux. В системах Debian/Ubuntu файлы присутствующих в системе ядер расположены в каталоге /boot и именуются в виде vmlinuz-[версия_ядра] (выполнив в терминале команду uname-r, мы получим информацию о текущей версии установленного ядра): В папке /boot вы также найдете и другие очень важные файлы: img-[версия_ядра] — используется в качестве RAM-диска, в который распаковывается и с которого загружается ядро; map-[версия_ядра] — используется для управления памятью до полной загрузки ядра; config-[версия_ядра] — сообщает ядру, какие параметры и модули следует загрузить в образ ядра при его компиляции. Когда Линус Торвальдс только начинал разрабатывать свое ядро, оно носило простое название — linux. С появлением технологии виртуальной памяти к ядру добавилась приставка vm (сокр. от «virtual memory»). Со временем ядро настолько разрослось, что к нему стали применять сжатие, об этом нам говорит буква z (от «zlib compression») в слове vmlinuz. Модули ядра LinuxЧто, если б в Windows уже содержались все доступные драйверы устройств, и вам просто нужно было задействовать некоторые из них? В этом, по сути, и заключен принцип загружаемых модулей ядра Linux (сокр. «LKM» от англ. «Loadable Kernel Module»). Они должны обеспечивать взаимодействие ядра со всем вашим оборудованием, и при этом не занимать всю доступную память. Модули обычно расширяют базовые возможности ядра, связанные с различной работой устройств, файловых систем и системных вызовов. Они, как правило, имеют расширение .ko и обычно хранятся в каталоге /lib/modules: Благодаря модульной структуре, вы можете легко настроить ядро под себя, установив необходимые модули с помощью menuconfig или отредактировав файл /boot/config, или вы можете загружать и выгружать модули «на лету» с помощью команды modprobe. Версии ядра дистрибутивов LinuxStableStable — это последняя доступная стабильная версия ядра Linux, предназначенная для широкого круга использования. По умолчанию, в большинстве дистрибутивов Linux применяется именно stable-версия ядра. Она регулярно обновляется, и к ней довольно часто выпускаются новые патчи. HardenedHardened — это усиленная различными обновлениями безопасности stable-версия ядра Linux. Она умеет блокировать потенциально опасные операции, обеспечивая тем самым эффективную защиту от эксплойтов, нацеленных на использование уязвимостей ядра. Данная версия ядра не так популярна, как другие, из-за того, что несколько медленнее их. Hardened-ядро убивает любой процесс, который покажется ему потенциально опасным. Кроме этого, он не отображает PID процессов, и, следовательно, вы не сможете напрямую обратиться к запущенному исполняемому файлу. Также некоторые программы и функции могут не работать с hardened-ядром. ZenZen — версия ядра Linux, ориентированная на повышение производительности и отзывчивости системы. Также говорят, что это лучшее ядро Linux для игр. Zen имеет низкую задержку и высокочастотный планировщик. Установка/Обновление ядра LinuxВ Linux есть исходное ядро, которое разработал Линус Торвальдс, а затем уже дополняли и дополняют другие разработчики и организации вместе с Линусом Торвальдсом. Расположено исходное ядро на сайте kernel.org. Все дистрибутивы Linux (Debian, Ubuntu, Manjaro, CentOS и др.), которые начали появляться после публикации исходного ядра, стали вносить свои изменения и дополнения, формируя, таким образом, свой вариант исходного ядра Linux. Все Linux-дистрибутивы имеют в своей основе исходное ядро из kernel.org, но уже с внесенными в него соответствующими правками. Обновление ядра Linux через менеджер пакетовОбычно, вместе с обновлением системы происходит и обновление ядра. Но если вы по каким-либо причинам хотите произвести установку/обновление непосредственно только ядра Linux, то ниже мы рассмотрим данный процесс для нескольких дистрибутивов Linux. Linux Mint (Debian/Ubuntu)Для начала сверим текущую установленную версию ядра: $ uname –r Далее выполним поиск доступных для установки ядер (сгенерированный список может быть очень длинным, поэтому, чтобы хоть как-то ограничить вывод и сделать его постраничным, применим фильтр | more): $ sudo apt-cache search linux-image | more Мой выбор пал на ядро linux-image-4.15.0-1004-oem. Чтобы его установить, нужно выполнить команду: $ sudo apt-get install linux-image-4.15.0-1004-oem Останется только перезагрузить систему и убедиться, что новое ядро успешно установилось: |