[devel] пояснительная записка: etcnet, ifrename, udev и eth0

Denis Ovsienko =?iso-8859-1?q?pilot_=CE=C1_altlinux=2Eru?=
Ср Окт 31 00:30:57 MSK 2007


Приветствую всех.

В последнее время (то есть после установки дома Desktop 4) я стал чаще
читать рассылку devel@, а на sisyphus@ даже подписался. Должен
признаться, некоторые вещи, которые я читаю в рассылках, делают мои
глаза заметно крупнее обычного, поэтому я хотел бы дать несколько
уместных на мой взгляд пояснений.

0. Часто можно видеть письма "я решил проблему таким образом" или
"давайте всё сделаем вот так-то". Банально, но всё же. Уважаемые
подписчики, когда вы так пишете, сформулируйте пожалуйста решаемую
задачу, это заметно поможет всем.

1. Сервис ifrename и файл /etc/iftab. Замечательная вещь для
пользователей net-scripts. Если же вы счастливый обладатель пакета
etcnet, то единственно верным решением будет выполнить
# chkconfig --level 12345 ifrename off
В Desktop 4 этот сервис любезно включен, но нейтрализован
отсутствующим файлом /etc/sysconfig/ifrename. Я бы, например,
рекомендовал в скрипте init.d/ifrename принимать во внимание переменную
CONFMETHOD из /etc/sysconfig/network, но речь не о том.
Эти ньюансы не так важны, как то, что сейчас некоторые товарищи
ничтоже сумняшеся предлагают оторвать от /etc/net его основу --- iftab,
изготовить чучело iftab'а и поместить в /etc. Возможно, в каких-то
частных случаях это упростит порядок вещей, но какой ценой? Те, кто
замечал выражение "профиль конфигурации" и "мультихостовая
конфигурация" в документации, поймут, что /etc/iftab --- совсем не то
же самое, что и /etc/net/iftab. Свойство многих файлов внутри
каталога /etc/net --- аналог NTFS(?) streams, причём с автоматическим
выбором контекста. Чего ради обламывать лишний интеллект, который есть
не просит, кроме имитации бурной деятельности? Если есть реальная
проблема, давайте её обозначим и решим технично.

2. udev. Я слышал, эта штука нужна для заполнения /dev при старте
(вместо того, чтобы сделать это один раз, вот чудаки) и в некоторых
дистрибутивах даже отключается, например, у нас. Практическим
следствием отключения сервиса udev у меня стало игнорирование
USB-кардридера, так что, покосившись на лишний сервис, я всё-таки
включил udev назад. На работу моей домосетки эти эволюции влияния не
оказали (составить такую конфигурацию нетрудно). Также меня
заинтересовали предложения обучить udev искусственному интеллекту и
игре на балалайке (помнится, предыдущим исполнителем роли Шарикова был
hotplug). Я не знаю, кто решится тратить на это время, но я предвижу,
каким будет результат. Давайте проектировать дистрибутив так, чтобы
каждая компонента решала одну задачу, но хорошо. Например, загружала
модули в ядро и дёргала за хвост соседнюю, которая из имеющейся
заготовки выстрогает интерфейс.

3. И наконец, наш философский камень, чаша Грааля и мелафон в одном
лице. eth0. Скажите пожалуйста, имея в системе два интерфейса, зачем
называть один из их eth0? А второй зачем называть eth1? А потом штурмом
добиваться соответствия реального мира содержимому iftab? Я позволю
себе ответить на этот вопрос. В этом точно нет достаточно большого
смысла, и под вопросом, есть ли смысл маленький. Ещё раз попробую
сформулировать уже высказанное предложение. Оставьте ядру ядерное и
пусть оно нумерует свои свежесозданные интерфейсы eth0, eth1, eth2 ...
eth99. Пул в 100 интерфейсов устроит всех. Если мы будем брать из этого
пула по одному интерфейсу и называть их eth000, eth001, eth002 ...
eth099, то мир станет немного чище и проще. Пользователь будет видеть
привычное eth, а у ядра и конфигуратора будет место для маневров.

Спасибо за внимание и надеюсь видеть следующий maintenance
release более согласованным.

-- 
    DO4-UANIC



Подробная информация о списке рассылки Devel