LINUX.ORG.RU

Вопрос о Linux Kernel и все что с ним связано

 , ,


1

3

Добрый день! Нужна помощь новичку в некоторых вопросах...

Какие компоненты(файлы, библиотеки, каталоги) нужны для запуска ядра и командной строки bash? (Интересует запуск ядра на минимуме)


Какие компоненты(файлы, библиотеки, каталоги) нужны для запуска ядра и командной строки bash? (Интересует запуск ядра на минимуме)

никакие. Я не шучу. Но обычно его загрузчиком загружают, и им же «запускают». Затем запущенное ядро монтирует что-то в rootfs, ну и запускает /sbin/init. Всё.

Это в классическом Linux, в сортах новомодного дерьма типа systemd я не разбирался ещё.

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

не разбирался

новомодного дерьма

Что, простите?

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

никакие. Я не шучу. Но обычно его загрузчиком загружают, и им же «запускают».

В ядре давно выпилили возможность загружаться без загрузчика, поэтому что-то его со стороны всё-таки грузить должно обязательно.

post-factum ★★★★★
()

если собран статично - то ничего
если динамика, то надо еще libc и readline и прочее для bash, зависимости в readme
в настройках сборки укажи место libc, обычно это /lib/
там должна быть libc.blablabla и ld-linux.so.2, для bash так же нужна libreadline и еще пару либ, которые надо кинуть в LD_PRELOAD_PATH, то есть /lib, /usr/lib или /usr/local/lib
А bash кидай или в /bin или в корень, при запуске ядра укажи init=<путь до bash>
Libc лучше выбрать musl, uClibc или dietlibc, так как GNU libc слишком долго собираться будет и довольна тяжелая по размеру

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

initrd - уже не минимум, можно смело выкидывать

Harald ★★★★★
()

нет ну это уж совсем уныло

переименовывайте штоле этот сайт в shkolota.uju.ru

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

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

да? В любом случае, я не понимаю, как можно _загрузить_ ядро _из_ bash'а. В лучшем случае ПЕРЕзагрузить.

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

cat /proc/cmdline

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

YAR ★★★★★
()

Есть утилита ldd, она говорит какие либы нужны той или иной софтине.

А по остальному - смотри описание создания chroot-окружения вручную. Собственно, к тому понадобятся дополнительные файлы девайсов в /dev и загрузчик.

slamd64 ★★★★★
()

И таки да - если надо «по минимуму», то бери Слакварь, пересобирай ядро, убивай ей udev и прочие свистелки. Избавишься от кучи геморроя с udev на минимальной системе, заодно уменьшишь размер итогового образа.

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