Все о ядре ОС Linux
Что такое ядро ОС 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.
Источник
Ядро Linux
Эта статья о ядре для операционных систем. О группе операционных систем, которые используют это ядро, называемых «Linux», см. в статье Linux
Тип | Линус Торвальдс, многочисленные разработчики по всему миру 3.7.1 (17 декабря 2012) В основном код написан на Си с некоторыми расширениями gcc и на ассемблере (с использованием AT&T-синтаксиса GNU Assembler). Распространяется как свободное программное обеспечение на условиях GNU General Public License, кроме несвободных элементов, особенно драйверов, которые используют прошивки, распространяемые под различными лицензиями [2] . Торговая марка Linux зарегистрирована на Линуса Торвальдса. Операционные системы на базе Linux являются лидерами на рынках суперкомпьютеров, серверов и мобильных операционных систем [3] . СодержаниеИсторияНачало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet comp.os.minix следующего содержания [4] : Привет всем, кто использует миникс — Я делаю (свободную) операционную систему (всего лишь хобби, она не будет большой и профессиональной, как gnu) для клонов 386 (486) AT… Hello everybody out there using minix — I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. К тому времени GNU уже создал множество составляющих для свободной операционной системы, но её ядро GNU Hurd ещё не было готово. Поэтому пустующее место ядра для свободной ОС занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей. «Linux», разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, и те из них, которые используют системные библиотеки (например, GNU C Library) и другие программы Проекта GNU, называют также «GNU/Linux». [5] О различных комбинациях свободных компонентов в операционных системах см. Операционные системы на основе свободного ПО. Сейчас в апреле 2011 семейство операционных систем на базе ядра Linux — третье по популярности в мире на рынке настольных компьютеров — 5,1 % [6] . На рынке веб-серверов доля Linux порядка 32 %, остальное — Unix-системы (FreeBSD и др.) [7] . По данным Top500, Linux используется в качестве операционной системы на 91 % самых мощных суперкомпьютеров планеты [8] . Большинство мобильных устройств, таких как смартфоны и планшетные компьютеры на базе ОС Android и MeeGo, а также телевизоры, и многие служебные устройства, такие как внешние сетевые жесткие диски, маршрутизаторы и модемы, также используют операционные системы на базе ядра Linux. Хронология
От: torvalds@klaava.Helsinki.Fi (Линус Бенедикт Торвальдс) Привет всем тем, кто использует миникс — Я делаю (свободную) операционную систему (это только хобби, не столь большое и профессиональное, как GNU) для 386(486)AT клонов. Эта система пишется с апреля и скоро будет готова. Я хочу получить любой отзыв, касающийся вещей, которые нравятся/не нравятся людям в миникс, так как моя ОС похожа на неё (такое же устройство файловой системы (по практическим соображениям), среди прочего). В настоящее время я портировал bash (1.08) и gcc (1.40), и, похоже, эти программы работают. Это значит, что я получу что-то практичное в ближайшие несколько месяцев, и я хочу узнать, какие возможности хочет большинство людей. Любые предложения принимаются, но я не обещаю, что я осуществлю их:-) PS. Да — в ней нет кода миникс, и будет мультипотоковая ФС. Система НЕПЕРЕНОСИМА (использует команды Intel 386 и т. д.) и, вероятно, будет поддерживать только жесткие диски AT, так как это всё, что у меня есть 🙁 Hello everybody out there using minix — I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them 🙂 PS. Yes — it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(.
ВерсииТорвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов Linux поддерживают свои собственные версии ядра, например, включая в них драйверы устройств, которые ещё не включены в официальную версию. С 30 мая 2011 изменена политика нумерации версий ядра [2] Нумерация версий до 30 мая 2011Номер версии ядра Linux до 30 мая 2011 содержал четыре числа, согласно недавнему изменению в политике именования версий, схема которой долгое время была основана на трёх числах. Для иллюстрации допустим, что номер версии составлен таким образом: A.B.C[.D] (например 2.2.1, 2.4.13 или 2.6.12.3).
Нумерация версий с 30 мая 201130 мая 2011 Линус Торвальдс выпустил ядро версии 3.0-rc1. Вместе с ним изменена политика нумерации версий ядра. Отменено использование чётных/нечётных номеров для обозначения стабильности ядра, а третье число означает стабилизацию ядра. Версия 3.0 практически не несет никаких изменений, кроме изменения политики нумерации ядра. Таким образом, стабильные версии ядра 3.0 будут именоваться 3.0.X, а следующий после этого релиз будет иметь номер 3.1. ПоддержкаВ то время как Торвальдс продолжает выпускать новые экспериментальные версии, руководство «старыми» стабильными версиями передаётся другим лицам:
Другими программистами ядра Linux являются Роберт Лав и Инго Молнар. (См. Список сопроводителей Linux (англ.) ). Источник |
---|