Все о ядре ОС Linux
Он туда грузится, лишь по надобности в ресурсах устройства. Причем конкретный драйвер не постоянно может быть загружен память. Драйвер — это программный код, функция какого заключается в предоставлении возможности использовать определенную железку (видео-карточку, например). Однако, в отличии от других программ, ядро постоянно загружается первым и потом постоянно сидит в некоторой области памяти. Конечно, ведь ей за всеми необходимо следить. (Это описание больше подходит для монолитного ядра). Как ни замечательно, ядро – это всего лишь программа, написанная на том или некотором языке программирования людьми и потом скомпилированная в выполняемый файл. Среди кода ядра особо отделяют драйверы устройств. P.s: не забываем, все что не в оперативной памяти как бы почивает и не работает.
Монолитное ядро проще и быстрее трудится, т. к. в памяти находятся всегда почти весь код. Ядро, находясь в памяти, организует взаимодействие между иными частями кода операционной системы, которые представляются самостоятельными программами (см. пример выше про загрузку драйверов). Так экономится память, но в вред скорости. Микроядро меньше, сложнее, работает медлительнее, однако почему-то считается (или считалось) более авангардным из-за легкости «подключения» новых частей кода. Отделяют операционные системы на монолитном ядре и микроядре, а вдобавок некие промежуточные варианты.
Архитектура ядра Linux
На нынешний день Linux — монолитное ядро с поддержкой занимаемых модулей. То, что архитектура Linux не является микроядерной, потребовало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции comp.os.minix (англ.) в 1992 г. Ядро Linux удерживает многозадачность, виртуальную память, динамические библиотеки, зарезервированную загрузку, производительную систему управления памятью и почти многие сетевые протоколы. В отличие от обычных монолитных ядер, драйверы механизмов легко собираются в виде модулей и загружаются или разгружаются во время работы системы. Драйверы устройств и продолжения ядра обычно запускаются в 0-кольце защиты, с целым доступом к оборудованию.
В Unix были впервые выполнены так называемые многозадачность и многопоточность, виртуальная память и вероятно что-то еще. Unix имеет простое монолитное ядро, в ней практически все представляется в виде файлов. Unix круче Windows, впрочем бы потому, что ее ядро являлось первой практической осуществлением идей и открытий в области создания операционных систем. Отдельные умы вовремя спохватились и создали специальные стандарты, обеспечивающие сопоставимость систем (т.е. программа, написанная для одной Unix-подобной системы, обязана работать и в другой). Стандарты назвали POSIX. В 80-х годах в мощь ряда причин Unix-системы начали множится и модифицироваться. она написана на языке C и это делает ее переносимой с одной аппаратной перроны на другую.
Разработка модулей ядра ОС Linux
Пример, при работе с файлами программы могут не заботиться о типе безжалостного диска и файловой системе на нем. Системные вызовы заручат безопасность и стабильность системы. Так как ядро работает арбитром между ресурсами системы и программами, оно может получать решения о предоставлении доступа в соответствии с правами юзера и другими критериями. Ядро Linux предоставляет комплект интерфейсов, именуемых системными вызовами, которые дают обеспечение взаимодействие прикладных программ, работающих в пространстве юзера, и аппаратной части компьютера. POSIX, WinAPI – образцы таких API. Прикладные программы разрабатываются с применением программных интерфейсов прибавлений (Application Programming Interface, API). В этом случае нет нужды между в корре ляции между интерфейсами, какие используют приложения и интерфейсами, которые предоставляет ядро.
Сможет существовать один и тот же API для различных операционных систем, а осуществление его может отличаться. Например, операционные системы Linux и FreeBSD отвечают стандарту POSIX (Linux на 100% соответствует эталону POSIX 1003.1), и многие приложения, написанные для FreeBSD, смогут сравнительно легко быть перенесены в Linux и и наоборот. Этим объясняется схожесть наборов приложений для данных операционных систем. Частично интерфейс к системным функциям дает обеспечение библиотека C. Например, функция printf() формирует строчку в соответствии с заданным форматом и передает ее системному призыву write(), который отправляет ее на стандартное механизм вывода (чаще всего терминал).
Как собрать ядро Linux?
Первопричины для этого могут быть следующими: Иногда сможет потребоваться собрать своё собственное ядро Linux.
- вам необходимо чистое ядро, без дистрибутивных патчей;
- вы хотите отполосовать собственные патчи (коих очень много);
- вы желаете собрать ядро под свою конфигурацию железа, скинуть из него лишнее и/или заточить под определённые задачи;
- вы желаете включить в состав ядра эксперементальный драйвер или файловую систему, какой нет в «ванильном» ядре (например ZFS или Raiser 4);
В этой статье я опишу два примера сборки ядра в Debian-based дистрибутивах. В первоначальном примере я покажу как просто собрать чистое, что именуется «ванильное» ядро (такое, каким его выпускает Линус Торвальдс), а во другом — как применить собственные патчи и провести оптимизацию ядра. В производству ядра нет ничего сложного. Важно лишь соображать, для чего это делается, а также не трогать те параметры, какие вам непонятны.
Если же вам нужна самая свежая версия ядра, то её постоянно можно скачать с сайта kernel.org. Стоит приметить, что на сайте выкладываются как стабильные версии ядер так и версии нужные для тестирования и доработки(обычно в их названии есть держится аббревиатура «RC» — Release candidate). Я предлагаю осмотреть только два: системные репозитории, официальный сайт ядра. В первоначальную очередь мы должны получить исходный код, это можно делать разными способами и из разных источников. Такой подъезд предпочтительнее если вы не нуждаетесь в какой-то новой технологические процессы или возможности, которая поддерживается только более новоиспеченными ядрами. В репозиториях, скорее всего, будут версии ядра больше старые чем он официальном сайте, но в эти исходники должны быть интегрированы патчи и исправления от производителя вашего дистрибутива Linux.
Конфигурация и компиляция ядра Linux
В другом случае конфигурирование ещё не завершено. В таком случае soft будет просит сделать выбор вас, вы можете бросать значения по умолчанию просто нажимая клавишу Enter. Но ничто сложного в этом нет, и скомпилировать ядро Linux случается не сложнее, чем собрать (скомпилировать) любую другую програмку из исходников. Пересборка ядра Linux дело весьма интересное и почему-то часто отпугивает новичков. Пересборка ядра сможет понадобиться, когда вам требуются какие-нибудь функции, не аннексированные в текущее ядро, или же, наоборот, вы хотите что-то выключить. Если вы конфигурируете более новую версию ядра чем имеется в системе, то вполне вероятно что в ней появились параметры, каких нет в конфигурации нынешнего ядра.
Установка ядра Linux в систему
После окончания компиляции, в директории /usr/src должны появится два файла с продолжением «deb» они являются установочными пакетами нашего нового ядра и водворить их можно с помощью утилиты dpkg:
sudo dpkg -i linux-image-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb
Приветствую! Ядро установлено, теперь система будет загружаться с данным ядром по умолчанию, но если у вас возникнут проблемы с новоиспеченным ядром вы всегда можете загрузится со старым избрав его на экране загрузки — Grub.