Hardcore linux for students
От Alexey Vissarionov (2:5020/545) к Alexandr Strelnikov
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
Доброго времени суток, Alexandr!
18 Mar 2023 08:50:26, ты -> Ivan Agarkov:
IA>> Легко. Собирать - это значит:
IA>> - Сделать FSH ( mkdir -p, да-да, с chown/chmod после )
IA>> - Положить ядро в /boot, initrd в /boot, накатить grub ручками, без
IA>> инсталлера - Положить либы в lib, бинари в bin, написать ld.so.conf -
IA>> Hаписать ручками fstab, crypttab, etc - Hаписать свой микро-init,
IA>> который замаунтит всё, настроит сеть и запустит баш. - ... - PROFIT
AS> А студентам это в будушем нужно будет? Как будто из начала 2000-х
AS> выплыл...
Вот прям из перечисленного? Скорее, появится (и пригодится) понимание, что:
0. initrd не нужен (исключение - сетевая загрузка)
1. Загрузчик должен быть в firmware компутера (EFI - на грани разумного)
2. Любые файлы должны появляться в системе только из пакетов
3. bash используют те, кто не знает про более удобные шеллы
А насчет микро-init... вот работоспособный пример:
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void)
{
enum {STDERR = 2};
static const char panicmsg[]=
"Unable to run neither startup script nor shell\n";
if(getpid() != 1)
return 1;
if(fork())
{
for(;;)
wait(NULL);
}
else
{
execve("/etc/rc", (char *[]){"rc", NULL}, (char *[]){NULL});
return write(STDERR, panicmsg, sizeof(panicmsg)-1);
}
}
Несмотря на его работоспособность, в нем есть три ошибки, которые могут проявляться непредсказуемым образом, а толковый студент должен уметь их обнаружить и исправить.
--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii
... Рекурсия (сущ.): см. "рекурсия"
--- /bin/vi
* Origin: ::1 (2:5020/545)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким