Перейти к содержимому
Калькуляторы

Почему я презираю большинство FreeBSD-шников

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

 

Ээээ... А зачем пользовательские модули пихать в initrd, который предназначент только для обеспечения запуска ядра, поиска и монтирования / ? Может дело не в кривизне initrd, а в прямости софтины, которая из pre-alpha вылезти до сих пор не может?

 

Вот зачем модуль, обслуживающий расширения для ipt пихать в initrd я не представляю. Что мешает его подгружать в момент старта сетевой подсистемы?

 

Не, я видел извращенцев, которые всю систему заталкивали в initrd (софтсвитч от одной питерской конторы), но считать такую практику нормальной рука не поднимается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Ээээ... А зачем пользовательские модули пихать в initrd, который предназначент только для обеспечения запуска ядра, поиска и монтирования / ? Может дело не в кривизне initrd, а в прямости софтины, которая из pre-alpha вылезти до сих пор не может?

Софтина кривая/не нужна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Ээээ... А зачем пользовательские модули пихать в initrd, который предназначент только для обеспечения запуска ядра, поиска и монтирования / ? Может дело не в кривизне initrd, а в прямости софтины, которая из pre-alpha вылезти до сих пор не может?

Софтина кривая/не нужна?

не понял какая софтина кривая? Модуль ISG? не знаю насколько кривой, не пробовал, но точно нужный. Другой вопрос что я очень сомневаюсь что для него нужен инитрд. Сейчас нет сил попробовать, но думаю руки дойдут.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мде, нет ничего лучше, чем не очень точное объяснение.

 

Понимаете ли, когда у нас есть пакетный дистрибутив, нам проще собирать ядра с кучей модулей, не вкомпиливая всё подряд, чтобы ядра не утяжелять. И тут встаёт большая проблема, когда надо определить "устройства первой необходимости", так как дома у нас унылый быдло-контроллер SATA на материнке, а на работе Adaptec MNOGO-CIFEROK. А если включить все драйвера контроллеров в ядро (ведь для загрузки rootfs могут понадобиться и сеть, и ещё хер-знает-что), весь смыл модульности потеряется.

А тут собираем initrd с минимум необходимых модулей и вперёд.

 

ЗЫ: я работал с OpenBSD и Gentoo. Но бинарная философия мне ближе, в продакшне использую Debian.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman, я не гнушаюсь серверами на десктопном железе, НО НИКОГДА не использую встроенные сетевые и дисковые контроллеры.

Так что не показатель)

 

Да, если встроенное видео не имеет своей памяти, то ставлю из барахла что-нибудь, что не занимает pci-x *. Например S3 Trio.

Изменено пользователем Aliech

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мде, нет ничего лучше, чем не очень точное объяснение. Понимаете ли, когда у нас есть пакетный дистрибутив, нам проще собирать ядра с кучей модулей, не вкомпиливая всё подряд, чтобы ядра не утяжелять. И тут встаёт большая проблема, когда надо определить "устройства первой необходимости", так как дома у нас унылый быдло-контроллер SATA на материнке, а на работе Adaptec MNOGO-CIFEROK. А если включить все драйвера контроллеров в ядро (ведь для загрузки rootfs могут понадобиться и сеть, и ещё хер-знает-что), весь смыл модульности потеряется. А тут собираем initrd с минимум необходимых модулей и вперёд.

 

А почему просто не иметь конфиг файл в котором описано какие модули грузить перед загрузкой ядра?

 

 

 

Не, я видел извращенцев, которые всю систему заталкивали в initrd (софтсвитч от одной питерской конторы), но считать такую практику нормальной рука не поднимается.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мде, нет ничего лучше, чем не очень точное объяснение. Понимаете ли, когда у нас есть пакетный дистрибутив, нам проще собирать ядра с кучей модулей, не вкомпиливая всё подряд, чтобы ядра не утяжелять. И тут встаёт большая проблема, когда надо определить "устройства первой необходимости", так как дома у нас унылый быдло-контроллер SATA на материнке, а на работе Adaptec MNOGO-CIFEROK. А если включить все драйвера контроллеров в ядро (ведь для загрузки rootfs могут понадобиться и сеть, и ещё хер-знает-что), весь смыл модульности потеряется. А тут собираем initrd с минимум необходимых модулей и вперёд.

А почему просто не иметь конфиг файл в котором описано какие модули грузить перед загрузкой ядра?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman, initrd или в ядро. Если не монтировать корень, откуда вы их будете грузить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman, initrd или в ядро. Если не монтировать корень, откуда вы их будете грузить?

Фревый лоадер без проблем берет модули с того раздела, откуда загружен.

Ровно, как и gptzfsboot умеет брать модули с рутовой фс :)

 

http://slonik-v-domene.livejournal.com/112387.html?thread=2070787#t2070787

Вот вам, кстати, очередное забавное чтиво от анально огороженного линукс-фаната ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как груб умеет грузить ядро с не под монтированного корня?)

 

(и модули вроде тоже)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем GRUB монтировать корень?

 

Нет, не так. Зачем GRUB'у грузить не свои модули? Свои модули он загрузит откуда угодно.

 

ЗЫ: я тут GRUB в coreboot зашивал. Оттуда вы тоже хотели бы модули ядра ОС грузить? Ога-ога)

Изменено пользователем Aliech

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мде, нет ничего лучше, чем не очень точное объяснение. Понимаете ли, когда у нас есть пакетный дистрибутив, нам проще собирать ядра с кучей модулей, не вкомпиливая всё подряд, чтобы ядра не утяжелять. И тут встаёт большая проблема, когда надо определить "устройства первой необходимости", так как дома у нас унылый быдло-контроллер SATA на материнке, а на работе Adaptec MNOGO-CIFEROK. А если включить все драйвера контроллеров в ядро (ведь для загрузки rootfs могут понадобиться и сеть, и ещё хер-знает-что), весь смыл модульности потеряется. А тут собираем initrd с минимум необходимых модулей и вперёд.

А почему просто не иметь конфиг файл в котором описано какие модули грузить перед загрузкой ядра?

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

Я действительно не представляю как загрузить модуль ядра с устройства для работы с которым нужен этот самый модуль.

Возможно что-то упустил. Поясните?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я действительно не представляю как загрузить модуль ядра с устройства для работы с которым нужен этот самый модуль.

Возможно что-то упустил. Поясните?

Нет, всё нормально. Косяк не у Вас)

 

Да, lagman, определитесь уже, умеет ли САМО грузить СВОИ модули ядро FreeBSD с ещё не подмонтированной ФС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я действительно не представляю как загрузить модуль ядра с устройства для работы с которым нужен этот самый модуль.

Возможно что-то упустил. Поясните?

Нет, всё нормально. Косяк не у Вас)

 

Да, lagman, определитесь уже, умеет ли САМО грузить СВОИ модули ядро FreeBSD с ещё не подмонтированной ФС?

Модули грузит не ядро, модули грузит лоадер, который умеет по минимуму работать с фс. Problems, officer?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman - initrd содержит модули, та же херня получается, initrd грузится лоадером.

Problems?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman - initrd содержит модули, та же херня получается, initrd грузится лоадером.

Problems?

Лишний костыль в виде initrd?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lagman - конечный эффект одинаковый, на вкус и цвет... мне лично нравится больше initrd.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Модули грузит не ядро, модули грузит лоадер, который умеет по минимуму работать с фс. Problems, officer?

Ну а чего, простите, вы хотите? Тот же костыль. Вопрос лишь в предпочтениях. Мне больше нравиться, когда мухи и котлеты отдельно лежат. Это особенно полезно, когда загрузчик один, а осей много.

 

Так что оба решения одинаково унылы. С другой стороны, времена огромных ядер, собранных "совсем-что-было", давным-давно миновали)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Фревый лоадер без проблем берет модули с того раздела, откуда загружен.

Ровно, как и gptzfsboot умеет брать модули с рутовой фс :)

 

а покажите мне загрузку фри не с primary-раздела.

 

Лишний костыль в виде initrd?

 

покажите мне загрузку фри с iscsi ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Фревый лоадер без проблем берет модули с того раздела, откуда загружен.

Ровно, как и gptzfsboot умеет брать модули с рутовой фс :)

а покажите мне загрузку фри не с primary-раздела.

А зачем?

 

Лишний костыль в виде initrd?

покажите мне загрузку фри с iscsi ;)

Снова кластер под столом у директора? Ну-ну ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему просто не иметь конфиг файл в котором описано какие модули грузить перед загрузкой ядра?

 

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

 

 

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

 

А нафига мне держать в ядре драйвера 100500 сетевух/контролеров, когда я данной конкретной системе у меня всего 1 контроллер и 2-3 сетевых одного-двух типов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А нафига мне держать в ядре драйвера 100500 сетевух/контролеров, когда я данной конкретной системе у меня всего 1 контроллер и 2-3 сетевых одного-двух типов?

 

Дык не держите, кто вам мешает? Ядро модульно, ненужные файлы можете выкинуть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как на фри бсд можно решить задачу эмулятора сетевых проблем ?

То есть сбриджевать пару интерфейсов и крутить задержки, джиттер, потери.

С примерами команд, если можно. На линуксе очень просто. Собственно про бридж наверное не стоит, а дальше:

tc qdisc add dev eth3 root netem delay 272ms 30ms loss 0.5%

tc qdisc add dev eth2 root netem delay 272ms 30ms loss 0.5%

при изменениях add поменять на change.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.