LINUX.ORG.RU
ФорумTalks

Модульное ядро в 2016 году

 


0

1

Пишу сейчас из полностью монолитного ядра без поддержки модулей

libkmod: kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory
Error: could not get list of modules: No such file or directory

Это вопрос к тем, кто использует самосборное ядро. Какой смысл собирать модульное ядро?
Понятно, что во всяких убунтах, где нужна поддержка всего-всего оборудования, если всё вкомпилировать в ядро, оно будет очень большое, и большая часть не будет использоваться совсем.
Но если всё равно конфигурируешь ядро для себя, под конкретную систему, зачем что-то собирать модулем? Какое-то оборудование, которое нужно не всегда? У меня только bluetooth-свисток, который лет 5 не использовался (только пару раз для проверки наушников). Но это пара лишних килобайт, на фоне общего объёма памяти просто смешно.

можешь пользоваться монолитным ядром, лично я тебя за это не осуждаю

Harald ★★★★★
()

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

r0ck3r ★★★★★
()

Это вопрос к тем, кто использует самосборное ядро. Какой смысл собирать модульное ядро?

У меня другой вопрос - какой смысл использовать самосборное ядро без поддержки модулей? Я еще понимаю самосборное ядро (новые версии, например), но статическое?

tailgunner ★★★★★
()

Но если всё равно конфигурируешь ядро для себя, под конкретную систему, зачем что-то собирать модулем?

Не все подсистемы ядра нужны всегда. К примеру модуль камеры нужен не всегда (параноики должны оценить).

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

А зачем собирать лишнее если есть постоянный конфиг?

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

К примеру модуль камеры нужен не всегда (параноики должны оценить).

Вот, если есть эксплоит, от имени рута его можно подгрузить (modprobe).
Короче, только чёрная изолента.

TheAnonymous ★★★★★
() автор топика

У меня система на внешнем диске стоит, оборудование может меняться. Правда, мне давно надоело ковыряться в настройках и сейчас у меня дебиан.

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

Не нужен initrd

Но ведь в любом дистре он всё равно есть. Усилия на выпиливание этой поддержки не окупятся (если ты не занимаешься производством специализированных машин, но вряд ли это твой случай).

а ещё безопасность

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

tailgunner ★★★★★
()

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

post-factum ★★★★★
()
Ответ на: комментарий от TheAnonymous

Не нужен initrd

Мне нужен в любом случае, например, по-видимому, без этого / нельзя через uuid задать.

sevenredlines
()

иногда железо виснет и выгрузка загрузка модуля решает этот вопрос

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

Но ведь в любом дистре он всё равно есть

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

Не припомню ядерных эксплойтов, которые зависели бы от наличия поддержки модулей

Если в ядре вообще нет поддержки модулей, нельзя будет собрать модуль, сделать modprobe и выполнить любой код в пространстве ядра

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

использую системный конфиг и отключаю то, что ТОЧНО не буду использовать

r0ck3r ★★★★★
()
Ответ на: комментарий от post-factum

стоковый + правки под свой патчсет

Стоковый это defconfig? У меня он ни на одной системе сразу не работал

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

Но ведь в любом дистре он всё равно есть

У меня вот нет

А... у тебя и дистр свой. Надеюсь, профит оправдывает затраты.

tailgunner ★★★★★
()

Ну хочется тебе — ну делай, кто ж запрещает. Мне вот лень, сижу на стоковом.

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

Нет, это дистрибутивный. Тупо беру из linux-headers (у меня Arch).

post-factum ★★★★★
()

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

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

это ж монолит - типа привет из 70х

Модульное ядро – подвид монолитного, то есть существенной разницы в архитектуре тут нет, как при сравнении с микроядрами.

Deleted
()

Плюсую.
Сам всё впиливаю.

paran0id ★★★★★
()

Oprofile например. Он мне нужен пару раз в году, зачем его вкомпиливать?

Stil ★★★★★
()

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

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

У меня другой вопрос - какой смысл использовать самосборное ядро без поддержки модулей?

1) чукчточку быстрее грузится;
2) чукчточку меньше кушает память;
3) «ничего лишнего» (самое главное);
4) прост))))

Lavos ★★★★★
()

Virtualbox хочет модуль, например. У самого монолит, поэтому юзаю QEMU.

Falcon-peregrinus ★★★★★
()
Ответ на: комментарий от TheAnonymous

Если в ядре вообще нет поддержки модулей, нельзя будет собрать модуль, сделать modprobe и выполнить любой код в пространстве ядра

лучше с девушкой познакомься.

crypt ★★★★★
()

А какой смысл отключать модульность? Маме назло уши отморозить? Какие недостатки есть от наличия поддержки модулей?

Да и всякие блободрайвера гвоздями к ядру не прибьешь - только в виде модулей.

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

infine
()

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

Безмодульное ядро имеет смысл только в системах реального времени. Потому что время ответа от диска нельзя просчитать. Ну может быть еще в телефонах, где аппаратура заранее известна. Для домашних и рабочих станций вещь сомнительная.

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

это ж монолит - типа привет из 70х

Здравствуй, Linux.

лучше все равно пока ничего нет.

Ну, L4 подаёт определённые надежды.

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

Безмодульное ядро имеет смысл только в системах реального времени. Потому что время ответа от диска нельзя просчитать.

facepalm.jpg

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

Не нужен initrd

Попробуй без него загрузиться с LVM. Ну, или не пиши о вещах, в которых не разбираешься.

Black_Shadow ★★★★★
()

Собираю себе ядро сам, в модули выношу те драйвера, которые могут сбоить (из-за программных недоработок, либо сбойного железа и его прошивок) - сеть, звук, bbswitch (его интерфейс в /proc перестаёт работать через несколько засыпаний, а выгрузка/загрузка модуля помогает).

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

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

TheAnonymous ★★★★★
() автор топика

А потом купил ты новый девайс и полдня пытаешься вспомнить, какой драйвер ему нужен. А потом еще два часа пересобираешь ведро.

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

Модульное ядро – подвид монолитного, то есть существенной разницы в архитектуре тут нет, как при сравнении с микроядрами.

обо что и разговор.

alwayslate ★★
()

зачем что-то собирать модулем?

— Скинь фоточки с фотика
— Подожди, сейчас перекомпилирую ядро

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

1) чукчточку быстрее грузится;

Замерял? Если да, то опиши методику.

2) чукчточку меньше кушает память;

Килобайт? Два? Сколько это от объёма памяти, одна миллионная (в случае недобука)?

3) «ничего лишнего» (самое главное);

Что это значит и зачем это надо?

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

Замерял? Если да, то опиши методику.

Прост угадал. Решил что один файл считать в память всяко быстрее, чем пицот файлов.

Килобайт? Два? Сколько это от объёма памяти, одна миллионная (в случае недобука)?

Примерно 2кб на модуль.

Что это значит и зачем это надо?

Домохозяйкам и хомячкам не надо. Остальные сами знают зачем.

Lavos ★★★★★
()

Какой смысл собирать монолитное ядро?

Весит больше, загружается дольше.

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

Решил что один файл считать в память всяко быстрее, чем пицот файлов

Не знаю, как там в случае UEFI, но в случае груба ядро грузится грубом, а вот большинство модулей — ядром, которое об оборудовании знает намного больше. Я без тестов не стал бы заявлять, кто быстрее.

Примерно 2кб на модуль

lsmod | wc -l
68


Итого 136кб. Это примерно 0.03% от памяти, занятой лисой. Или 0.0003% от общего объёма памяти.

Домохозяйкам и хомячкам не надо. Остальные сами знают зачем

Ты не умеешь в русский язык? Я не спрашивал, кому это надо или кто это знает. Я спрашивал «зачем?».

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

Ты понимаешь, что L4 ≠ L⁴Linux?

да, а ты понимаешь что микроядро != монолитное ядро, что к нему еще надо 33 сервиса, 33 системных либы и еще POSIX совместимость ? ну и где тут L4 ? ping pong demo - грошь цена этим пингпонгам, люди пописывают бамажки про L4 и все, нет там никаких надежд и не будет. Проще переписывать работающее, типа systemd и прочие поделки клепать направо и налево.

alwayslate ★★
()

Пишу сейчас из полностью монолитного ядра

Круто. Только сегодня на слаке перешел с huge на generic ядро. Разницы на глаз не увидел даже на Atom-е. Моё имхо, возня с ядрами нужна в каких-то сугубо специфических случаях, которых у меня никогда не возникало.

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