Что такое ядро?


Марк пальчик сайт: практики развития личной силы марк пальчик topotzyv.ru.

Ядро (kernel) имеет много разных определений. Значительная их часть абсолютно сбивает с толку. Некоторые определения являются технически корректными, но непонятными для начинающих пользователей, тогда как другие совершенно неправильные. Следующее определение не претендует на полноту, но оно понятно и удовлетворяет нашим целям: ядро — это интерфейс между аппаратным и программным обеспечением.

Ядро позволяет записывать данные на дисковые накопители и работать в сети. Когда программе требуется память, ядро выполняет все необходимые действия, организуя доступ к микросхемам физической памяти и выделяя ресурсы, необходимые для выполнения задания. Оно преобразует MP3 в поток нулей и единиц, которые понимает звуковая карта. Когда программа требует выделить ей квант процессорного времени, ядро обслуживает этот запрос и выделяет время. Проще говоря, ядро предоставляет интерфейсы программам, которым необходим доступ к аппаратным средствам.

Описывать работу ядра легко (по крайней мере, в этой упрощенной манере), но ее трудно выполнять. При взаимодействии с аппаратными средствами различные программы опираются на различные интерфейсы ядра, а аппаратные средства предоставляют свои ресурсы разными способами. Ядро должно справляться со всем этим. Например, ядро поддерживает несколько десятков типов сетевых карт, причем карты каждого типа предъявляют свои требования, которые ядро должно удовлетворить. Если ядро окажется не в состоянии обслуживать сетевую карту, система не сможет подключиться к сети. Программы запрашивают память различными способами, и если программа запрашивает память способом, который не поддерживается ядром, возникает затруднение. При загрузке ядро получает сведения об аппаратных средствах, и их дальнейшая работа определяется полученными сведениями. Значит, этим процессом надо управлять. Некоторые устройства идентифицируют себя довольно дружественным, по отношению к ядру, способом, а другие накрепко блокируются при попытке узнать, что это за устройства и для чего они предназначены.

Фактически, ядро и его модули — это файлы в каталоге /boot/kernel. Файлы, находящиеся за пределами этого каталога, не являются частями ядра; эти файлы и программы называются пользовательским пространством (userland), то есть они предназначены для пользователей, даже если они во время работы обращаются к ядру.

Поскольку ядро — это всего лишь набор файлов, вы можете создавать свои, альтернативные ядра, предназначенные для особых случаев. В системе, где была выполнена сборка собственного ядра, можно обнаружить каталог /boot/kernel.old, где находится ядро, работавшее до того, как была выполнена установка текущего ядра. Я предпочитаю хранить ядро, установленное вместе с системой в каталоге /boot/kernel.install. Вы также можете создавать свои собственные ядра. Команда FreeBSD стремится к тому, чтобы сделать настройку и установку ядра как можно проще. Самый простой способ изменить ядро — это использовать интерфейс sysctl.

Комментарии запрещены.