LINUX.ORG.RU
ФорумTalks

Объясните про ядро

 , ,


0

1

Зачем в 99% дистрибутивах в ядре включены тонны различных драйверов? Почему нельзя включать только нужные для загрузки драйверы, а затем уже грузить нужные модули ядра? Зачем вообще до сих пор в ядро тащат тонны драйверов, а не выносят в отдельные модули ядра, чтобы загрузить по требованию? Это как-то влияет на производительность или потребление памяти?

Перемещено shell-script из general

Ответ на: комментарий от alex1101

Если серьёзно, я больше хотел узнать, в чём принципиальные препятствия.

Тебе уже ответили: Это дистрибутив массового использования.

kostik87 ★★★★★
()
Ответ на: комментарий от alex1101

Твой комментарий - это отговорка от признания того факта, что твоя тема фигня.

Пишу ещё раз, у себя делай как тебе хочется. В дистрибутивах общего применения будут модули и initramfs.

Если тебе так хочется - сделай свой пакет с ядром, в котором будут включены только нужные тебе драйверы монолитно в ядре, поддерживай его и обновляй.

И сможешь работать без Initramfs.

kostik87 ★★★★★
()
Ответ на: комментарий от alex1101

Ну вот мой десктоп. Или ты запрещаешь пользователям использовать на десктопе raid и lvm?

└─> df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                10M            0   10M            0% /dev
tmpfs                  7,8G         127M  7,7G            2% /dev/shm
tmpfs                  7,8G         1,4M  7,8G            1% /run
/dev/md1               3,9G         1,8G  1,9G           49% /
/dev/mapper/vg0-usr     30G          12G   17G           43% /usr
cgroup_root             10M            0   10M            0% /sys/fs/cgroup
/dev/md2               470M         156M  285M           36% /boot
/dev/mapper/vg0-var     15G          13G  1,8G           88% /var
/dev/mapper/vg0-tmp     15G          17M   14G            1% /tmp
/dev/mapper/vg0-opt     30G         3,0G   25G           11% /opt
/dev/mapper/vg0-home   815G         592G  183G           77% /home
tmpfs                  1,6G          12K  1,6G            1% /run/user/1000

shell-script ★★★★★
()
Ответ на: комментарий от alex1101

Экономить 10 милисекунд на скорости загрузки и 10 метров памяти чтобы что?

Количество модулей практически не влияет на обновление ядра и initramfs в бинарных дистрах. Обновление конфига grub'а больше времени занимает.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Что там у гентушников, крюксеров, лфсников и прочих любителей поиграть в конструктор - не имеет значения.

alex1101
()
Ответ на: комментарий от Original_1

Ты знаешь, что такое initramfs? Как загрузить систему на рейде и шифрованном lvm, не вкомпиливая модули в ядро, например, представляешь?

shell-script ★★★★★
()
Ответ на: комментарий от alex1101

Сейчас достал свой очень дохлый и очень старый ноут с nixos. Обновил ядро - меньше 10-ти секунд, если не считать скачивание. Чини манжару.

shell-script ★★★★★
()
Ответ на: комментарий от alex1101

На дебиане у меня такой же конфиг был, когда держал его на десктопе. Это поддерживаемая штатным инсталлером дебиана конфигурация.

shell-script ★★★★★
()
Ответ на: комментарий от alex1101

Ты ничего не понимаешь. Это Фирменный Стиль (C) TM: создать очередную тему наброс

hateWin ★☆
()
Ответ на: комментарий от Original_1

Окей, зачем в initramfs нужны лишние модули?

Intramfs не является обязательным. Можно и без него.

utanho ★★★★★
()
Ответ на: комментарий от shell-script

Это очень унылый тролль. Унылый потому, что из-за неграмотности даже не в состоянии создать зажигательную техническую тему. Один только унылый ликбез на базовые вещи.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Не всегда обращаю внимание, кому именно отвечаю. Так-то я его темы, когда вижу(включая эту) в толкс перекидываю.

shell-script ★★★★★
()
Ответ на: комментарий от kostik87

А потом гимор с переносом винды с интела на АМД (например), потому что на новой системе выбранные ранее драйвера диска не работают. Спасибо, не надо так делать. Линукс-подход тут реально меньше сношает голову и юзерам, и разработчикам.

yu-boot ★★★★★
()
Ответ на: комментарий от Polugnom

Это вообще не аргумент. Алан Тьюринг и Эрик Пол Олман оба гомосексуалисты, что не мешает им быть весьма компетентными IT-специалистами.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Я тоже всегда читал как полугном.

Ну да, все верно. Но товарищу же мерещится другое.

Polugnom ★★★★★
()
Ответ на: комментарий от Polugnom

Да нет, зачем, и так хорошо получилось. Очень кстати

vaddd ★☆
()

оно же логично, что по-дефолту ядро должно уметь все. Лет 10 назад в ядре при установки всегда чего-то не хватало – это было намного хуже, чем относительно небольшой инитрд в системе. После установки всегда можно поднастроить mkinitrd/mkinitcpio и жить счастливо.

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

а на темы медленного обновления, скорее всего у тебя стоят dkms модули, которые пересобираются после каждого обновления ядра. Например виртуалбокс.

mrdeath ★★★★★
()

Почему нельзя включать только нужные для загрузки драйверы, а затем уже грузить нужные модули ядра?

Именно так и делают.

Meyer ★★★★★
()

знаете, особо нам конечно говорить не о чем, потому что все сказано уже тонны раз, но вот для таких как kostic и прочие которые кричат что все ОК и нет никаких проблем, хотелось бы сказать несколько слов... все что сейчас тут происходит похоже на то, как если бы житель москвы приехал в тайгу забытую богом деревеньку и начал бы им втирать на их сетование об тяжелой жизни, что все на так как им кажется, что они вобще не понимают о чем говорят, потому что у него все в жизни работает из коробки... чтобы всякие костики и всеволоды имели права затыкать рты тем кто создает такие темы об сложном житие на дистрибутивах с ядром линукс, надо жить на них, а НЕвключать ПК с федорой раз в год. жить под виндой, на ней работать, играть и обнаглеть до такой степени, чтобы если кто из тех, которые действительно постоянно не перепрыгивая с винды на линукс и с линукс на винду, пытаются виживать и знают все недостатки и тягости существования на этих дистрибутивах, и вот вы заходите и втриаете дичь о том что все эти костыли и нелогичности что есть в ядре и дистрибутивах на них, это на самом то деле необходимые вещи, а эти абрегены, что плотно юзать линукс, просто ничего в нем не понимают. вы смешные! смешные до слез!!! если абориген задается вопросом зачем в ядре понапихано столько всего, а ему начинают втирать про инитрафс, и про то что он не знает как все это работает, при том что сами они сами уже слабо себе представляют или непредставляют вобще как и что взаимедействует на самом деле, опираясь в своих обвинениях только на то что загуглили когда -то очень давно... ребята, если есть у вас(уних) всякие там инитырамы, то отделите уже мух от котлет! сейчас все в куче. Если выносите модуля , то выносите все, пусть ядро будет ядром, но для этого сначала надо четко определить что есть ядро. именно в ядре должна быть заключена логика управления системой, все остальное тогда должно быть выненесено. сейчас непонятно по каких признакам вы определяете, что должно быть в ядре, а что в инитрафс и в инитрд и прочей дичи. рандомно что ли? захотели запихали туда, а захотели-сюда, или запихали туда, куда запихалось? лишь бы работало что ли? не пользователи виноваты в том что нет четких разграничений и стройности системы, зачем оправдывать это тем что все должно работать у всех, поэтому навалили всего чего только можно все в одну кучу. да зачем валить все в одну кучу и после переть все то чем ты даже не будешь пользоваться? при чем тут рейды и лумы? что за нелепые оправдания неправильного похода в настройке и установки системы? надо на этапе установки рашать что же имеется на борту и что должно быть установлено, а не ставить все что есть. любая попытка избавиться и настроить систему под свои нужды сразу же засерается. попадались многие темы новичков, которые хотели разобраться в настройках ядра, чтобы настроить все под себя, разгребсти ту кучу, что навалена при установке, и почему-то такие темы, мягко сказать, не пользовались популярностью у местных гуру двойственного пользования винды и чего там еще, они такие темы пытались закрыть сразу. и получалось что и сразу настроить при установке под себя нельзя и после тоже сделать это крайне сложно. через небольшой промежуток времени когда все окончательно станет свалкой вы поймете, что ваш подход был крайне неверный ,ну конечно же вы после как всегда переобуетесь находу, вы в этом деле мастера, чего только стоият темы где вы засерали мониторы 4к, а после же когда прошло время и вы смогли их себе позволить, то стали уже восхвалять мониторы с этим разрешением, поэтому не удивлюсь, если скоро всех вас смогу наблюдать в других темах, где вы будете уже остаивать совсем противоположенную точку не своего мнения, а мнения большенства, таких же не имеющих своего. больше тут говорить нечего.

Assembler
()
Последнее исправление: Assembler (всего исправлений: 1)
Ответ на: комментарий от yu-boot

Десяточка нормально переживает такой перенос. Обновляй методичку

cobold ★★★★★
()
Ответ на: комментарий от alex1101

Так это ж удобно. Подписал один раз на этапе создания пакета ядра и грузишься на всем спектре поддерживаемого железа. При установке ядра можно конечно делать локальный initramfs включающий нужные драйверы, но возникает как минимум пара вопросов:

  1. подпись этого initramfs для работы secure boot. Нужно заморочить пользователя установкой локального сертификата в uefi, что нетривиально для многих пользователей
  2. неизвестно какие планы у пользователя планы на эту систему. Может он хочет перенести ssd с системой в другой пк с другим железом или после перезагрузки у него сгорит сетевая карточка а грузится он по сети.

У майков первой проблемы нет, т.к. они сделали себе бэкдор в uefi в виде вшитого сертификата, а все разработчики драйверов для их системы обязаны отправлять бинарники драйверов в редмонд для их подписи прежде чем пользователь сможет их загрузить в ядро

cobold ★★★★★
()

Вынул хдд втавил в другой ПК с другим железом, всё что могёт работает из коробки, плохо? Если тебе надо ты можешь и ядро и initramfs на диету посадить.

Зачем

Что-бы не задавали полностью противоположный вопрос. И вообще не везде и не всегда ядро пухлое как колобок. Да и куча модулей загружаются, а не встроены.

LINUX-ORG-RU ★★★★★
()

Зачем в 99% дистрибутивах в ядре включены тонны различных драйверов?

Ты врешь. Тонны различных драйверов в ядро не включены. Сделай в своей убунточке rm -f /lib/modules/`uname -r` увидишь результат.

Почему нельзя включать только нужные для загрузки драйверы, а затем уже грузить нужные модули ядра?

Почему ты думаешь что сейчас оно происходит по-другому ?

Зачем вообще до сих пор в ядро тащат тонны драйверов, а не выносят в отдельные модули ядра, чтобы загрузить по требованию?

make localmodconfig vs make localyesconfig

Это как-то влияет на производительность или потребление памяти?

Влияет. Чем меньше идет обращений к ФС\файловым дескрипторам\файлам - тем быстрее. Иными словами, 1 файл на 1 Мб прочитается быстрее чем 1024 файла по 1 Кб. Если ты соберешь ядро с вкомпиливанием в него всех необходимых твоей системе драйверов - грузиться твоя система будет на порядок быстре, иногда даже в два или в три раза, особенно если выберешь LZ4-формат сжатия ведра. Есть один нюанс: грузиться будет только твоя система, а при установке этого ядра вне данной конфигурации есть неиллюзорный шанс получить кирпич, чаще всего с сообщением типа unable to mount rootfs или чото около того.

Отвечая на вопрос упорышей «что дадут эти -5 сек к загрузке ?»

1. Упорыши чаще всего задают этот вопрос, даже не осознавая что подобный вопрос задают другие упорыши, но уже в соседних темах про другие вещи. В итоге получается, что здесь минус 5 секунд погоды не делают, там лишние пару сот мегабайт ОЗУ простительно, далее кому-то пофигу что используется 40% ЦПУ, все равно у нас 8 ядер. Результатом является на ровном месте неоптимизированный распухший софт, концептуально аналогичный с софтом 20 летней давности, когда наша ОС делает все то же самое что и условная 98-я винда: отображает панель задач, часики, раскладку, микшер, меню, окошки, запускает программы, но требует для этого конфиг в 10 раз жирнее чем 98-я винда;

2. Где-то скорость загрузки весьма актуальна, например в кофеварках с линуксом (гг), или в automotive. Из-за неумения линукса\андроида грузиться быстро и нежелания после поворота ключа ждать 10-20 сек - производителям приходится внедрять костыли навроде дополнительного MCU реализующего не менее костыльный «ждущий режим», и медленно но уверенно садящего аккумулятор.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)
Ответ на: комментарий от windows10

Чем меньше идет обращений к ФС\файловым дескрипторам\файлам - тем быстрее. Иными словами, 1 файл на 1 Мб прочитается быстрее чем 1024 файла по 1 Кб

Интересно а можно как-нибудь собрать свою установленную систему в один большой бинарник?

alex1101
()
Ответ на: комментарий от alex1101

В ядре есть определённое место в коде, в котором вызывается /sbin/init и прочие PID 1. Ты можешь подменить это место на свой код, который обращается к функциям ядра, в которых реализуешь всё, что сейчас умеет дистрибутив linux. Таким образом сможешь использовать только бинарник ядра.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от alex1101

Интересно а можно как-нибудь собрать свою установленную систему в один большой бинарник?

Можно наверное, только особого смысла в этом нет, из-за специфики процесса загрузки\работы.

Если по-простому, то многие подпрограммы, «необходимые для работы», вполне могут быть запускаемые после запуска основной системы. Например индикатор раскладки или микшер, могут запуститься через пару секунд после готовности рабочего стола к работе, и по юзабилити это не сильно ударит. Но в случае одного большого бинарника, придется ждать пока весь этот мусор загрузится в память, и визуально готовность к работе займет больше времени.

windows10 ★★★★★
()
Ответ на: комментарий от alex1101

Но тогда всё будет в пространстве ядра работать, нет?

Нет, он имеет в виду вместо условного exec('/sbin/init'); дописать непосредственный код этого самого /sbin/init

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Ну, это понятно, я и не говорю что все установленные программы туда засунуть) Скажем, бинарник ядра + бинарник базовой системы с десктопом.

alex1101
()
Ответ на: комментарий от alex1101

На самом деле, ЕМНИП, как-то средствами сборки ядра можно initrd встраивать прямо в итоговый бинарник. Таким образом получать один файл ядра с initrd. Но я это видел мельком, давно и в контексте встраиваемых систем (не помню, что за ядро было). Так что это не точно.

apt_install_lrzsz ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.