- Что такое ядро в Linux и как проверить его версию?
- Что такое ядро?
- Что такое ядро Linux?
- Для чего используется ядро Linux
- Как проверить версию ядра Linux
- Стоит ли обновлять ядро Linux?
- Что делает ядро Linux
- Что делает ядро Linux
- Аппаратный уровень
- Уровень драйверов
- Функциональный уровень
- Уровень взаимодействия
- Уровень виртуализации
- Прикладной уровень
- Что НЕ делает ядро Linux
- Выводы
- Ядро Linux
- Содержание
- История
- Хронология
- Версии
- Нумерация версий до 30 мая 2011
- Нумерация версий с 30 мая 2011
- Поддержка
Что такое ядро в Linux и как проверить его версию?
В дикой природе существует так много дистрибутивов Linux, но есть только одна вещь, которую они гарантированно имеют: ядро Linux. Тем не менее, хотя многие люди и говорят о ядре Linux, на самом деле, большинство не знают, что оно делает.
Давайте посмотрим на ядро Linux и зачем оно нужно, используя как можно меньше терминов.
Что такое ядро?
Каждая операционная система использует ядро. Без ядра у вас не может быть компьютера, который действительно работает. Вы можете видеть и взаимодействовать со многими различными программами, но основную работу выполняет ядро.
Ядро служит мостом между аппаратным и программным обеспечением вашего компьютера. Оно взаимодействует с оборудованием через драйверы, которые включены в само ядро или установлены позже в виде модуля ядра.
Таким образом, когда приложение хочет что-то сделать (например, изменить настройку громкости динамиков), оно может отправить этот запрос ядру, и ядро может использовать доступные драйверы динамиков для фактического изменения громкости.
Ядро также активно участвует в управлении ресурсами. Оно должно убедиться, что для запуска приложения достаточно памяти и поместить приложение в нужное место в памяти. Ядро пытается оптимизировать использование процессора, чтоб он мог выполнять задачи как можно быстрее.
Сбои могут привести к зависаниям, когда вся система останавливается, потому что одному приложению нужен ресурс, который использует другое.
Что такое ядро Linux?
Технически, неверно думать о Linux как о полноценной операционной системе. Linux, фактически, относится именно к ядру, названному в честь основателя Линуса Торвальдса. Все остальное, что вы видите на экране, исходит от других проектов и разработчиков.
Линус Торвальдс создал ядро Linux в 1991 году. Первоначально он назвал проект Freax (комбинация слов: «free», «freak» и «UNIX»). Коллега предпочитал название “Linux”, и это название прижилось. Торвальдс выпустил первую версию Linux в 1992 году под лицензией GNU copyleft, что стало большой частью успеха проекта.
Большая часть опыта использования рабочего стола Linux происходит от проекта GNU, более старого проекта, который создал практически полноценную настольную операционную систему. Все, что ему не хватало – это ядро, и Linux удовлетворяет эту потребность. Вот почему некоторые люди называют операционная система GNU/Linux, что есть верно.
Другие бесплатные рабочие столы с открытым исходным кодом, такие как FreeBSD, выглядят и работают как Linux, потому что на них работает большая часть того же программного обеспечения GNU.
Поскольку ядро Linux было доступно под лицензией GNU, было меньше интереса к продолжению разработки отдельного ядра в рамках проекта GNU. И вместо того, чтобы создавать другие конкурирующие ядра, такие как в Windows и macOS, многие компании решили использовать ядро Linux и внести свой вклад в него.
Ядро Linux выросло в огромный проект, содержащий миллионы строк кода. Тысячи людей и более тысячи компаний внесли свой вклад в развитие ядра. Это один из самых ярких примеров бесплатного и открытого программного обеспечения в мире.
Для чего используется ядро Linux
Хотя Linux остается относительно нишевой настольной операционной системой, ядро широко используется в других местах. Благодаря Android ядро Linux теперь работает на большинстве смартфонов мира, оно управляет почти всеми видами мобильных устройств, включая носимые, камеры и даже роутеры установленные у вас дома.
И хотя Linux начинался как хакерский проект, сейчас под его управлением работает 500 самых мощных суперкомпьютеров и большая часть нашей интернет-инфраструктуры.
Как проверить версию ядра Linux
Ядро находится в активной разработке, поэтому постоянно появляются новые версии Linux.
Самый простой способ узнать, какая версия находится на вашем компьютере и будет работать в любой версии Linux, – это использовать uname команду. Это инструмент командной строки, который предоставляет системную информацию. Вы можете найти используемую версию ядра Linux, открыв окно терминала и напечатав следующее:
В настоящее время я использую ядро Linux версии 4.15.0-29deepin-generic. Давайте разберемся, что это значит.
- 4 – версии ядра.
- 15 – текущий крупный пересмотр.
- 0 – текущие мелкие доработки.
- 29 – относится к устранение ошибок и исправлений, применяемых к этой версии.
Информация отображаемая после данных значений будет зависеть от дистрибутива который вы используете. В моём случае, это Deepin 15.9.3.
Стоит ли обновлять ядро Linux?
По большей части, ядро Linux работает в фоновом режиме. Ты не знаешь, что он там, и у тебя нет причин думать об этом. Лучший способ обновить версию ядра Linux – это обновить ее до последней версии предпочитаемой операционной системой которую ты используешь. Как вы могли видеть, с дистрибутивом Deepin 15.9.3, который использую я, поставляется довольно таки старое ядро 4.15, когда многие дистрибутивы уже перешли к доступному на данный момент Linux 5.0.
Хотя ядро в основном невидимо, есть несколько причин перейти на более новое ядро Linux. В отличие от Windows, драйверы оборудования для Linux поставляются в комплекте с ядром Linux. Поэтому, если у вас относительно новый ноутбук с динамиками, Wi-Fi или тачпадом, который ваша версия Linux еще не обнаруживает, вам, возможно, придется подождать более новую версию. Релизы также поставляются с улучшениями стабильности и скорости, поэтому ваш компьютер может работать более плавно в одной версии по сравнению с другой.
Источник
Что делает ядро Linux
Ядро Linux — это ключевой компонент любого дистрибутива. Оно создавалось Линусом Торвальдсом как средство для доступа к терминалу университетского компьютера, но сейчас на него возложено гораздо больше функций.
Мы затронем не только само ядро, но ещё и утилиты проекта GNU. Это поможет определить границы возможностей ядра, а также понять, почему ядро без них бесполезно.
Что делает ядро Linux
Ядро Linux монолитное. Это значит, что оно самодостаточное и выполняет все низкоуровневые задачи. Код ядра можно разбить на блоки. Часть кода отвечает за общение с аппаратной частью, другая — за виртуализацию и так далее. Чем выше уровень, тем больше системных вызовов доступно программам. Ядро работает со всеми компонентами компьютера: процессором, оперативной памятью, сетью, устройствами ввода/вывода. Ниже представлена карта ядра Linux.
Аппаратный уровень
На нём определяется интерфейс подключения и архитектура, чтобы была возможность перейти на следующий уровень. Например, у процессора считывается идентификатор, что позволяет задействовать все его возможности.
Уровень драйверов
Код драйверов занимает большую часть ядра. Это легко объяснить. Если остальной код ядра унифицирован, то драйверы у каждого устройства свои. Их настолько много, что некоторые вынесены в отдельные модули. Если собирать ядро только под определённое железо, то оно займёт совсем немного места.
Функциональный уровень
На этом уровне, с учётом двух предыдущих, определяются функциональные возможности компьютера. Настраивается планировщик процессора, определяются логические разделы диска и их файловая система.
Именно здесь задаются протоколы передачи данных TCP и UDP. Перезапуск или выключение ядра тоже можно отнести к функциональным возможностям.
Уровень взаимодействия
Этот уровень предназначен для того, чтобы устройства могли общаться между собой и дополнять друг друга. Например, на накопителе выделяется место под SWAP, что позволяет системе выгружать невостребованные данные из оперативной памяти.
Ещё один пример взаимодействия — это управление потоками. Без этого было бы невозможно использовать сотни потоков на процессоре с кратно меньшим количеством ядер. Если процесс ничем не занят, то его поток замораживается, высвобождая тем самым процессорное время для более важных задач.
Здесь же реализуется межпроцессное взаимодействие (IPC). С его помощью потоки одного процесса могут обмениваться данными.
Уровень виртуализации
Это один из самых важных уровней ядра. На нём потоки представляются программам как нечто абстрактное, как будто других программ не существует. Аналогичная ситуация с памятью, под определённую задачу выделяется только её часть, об остальной занятой памяти программа знать не должна.
На этом уровне создаются также виртуальные файловые системы. Это одна из ключевых задач ядра. Вместо того чтобы отображать пользователю файловую систему ext4 или любую другую, ядро приводит её к одному виду, который понятен не только программам, но и пользователю. Что интересно, файловой системой можно сделать даже оперативную память. Для этого на уровне взаимодействия создаётся RAM-диск. Во время загрузки операционной системы это решает вопрос доступа к загрузочным файлам до момента инициализации файловой системы накопителя.
Прикладной уровень
На прикладном уровне описана большая часть системных вызовов. Они нужны для того, чтобы программы могли общаться с ядром. Таким образом, можно запросить чтение или запись файла, создание нового потока и так далее. Иными словами, через вызовы происходит взаимодействие с ресурсами компьютера. Однако даже этого недостаточно для того, чтобы организовать полноценную работу операционной системы. На этом моменте мы плавно переходим к следующему пункту.
Что НЕ делает ядро Linux
Вы наверняка слышали о том, что операционные системы Linux называют GNU/Linux. Именно библиотеки и утилиты проекта GNU дополняют ядро, давая тем самым возможность более гибко и просто использовать его вызовы. Системных вызовов несколько сотен, но библиотека GNU C (glibc) значительно расширяет этот список всевозможными функциями. Аналогичную работу выполняет библиотека DRM (не относится к GNU), дающая доступ к ресурсам видеокарты. На примере ниже показана работа видеоигры.
Другие утилиты GNU не менее полезны. Например, командная оболочка Bash отвечает за выполнение консольных команд.
Исходя из вышесказанного, можно утверждать, что ядро Linux редко используется напрямую. Посредники в виде библиотек GNU предоставляют доступ к основным функциям ядра и расширяют их. Если сравнить операционную систему GNU/Linux с языком программирования, то ядро — это операторы, а GNU — набор стандартных функций.
Android тоже использует ядро Linux, но вместо библиотек GNU задействует собственные. Поэтому GNU/Linux и Android имеют несовместимые друг с другом программы.
Выводы
Теперь вы знаете что делает ядро Linux. Если кратко описать задачи ядра, то оно управляет ресурсами компьютера и предоставляет к ним доступ в виде абстракций вроде виртуальной памяти и потоков. Но не стоит переоценивать заслуги ядра, вместе с утилитами GNU вы получаете не просто планировщик потоков, а практически полноценную операционную систему.
Источник
Ядро 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 (англ.) ). Источник |
---|