Т.е. сетевые интерфейсы можно обзывать не-ascii символами? И какой [censored] это придумал? Блин, шо винда, шо *никсы - локализуют то, что не надо, что надо - не локализуют.
> А вот почему ядро принимает в качестве имени почти любые байты Я именно об этом. КМК для имен устройств и прочих псевдофайлов должно быть ограничение, ибо ваистену. Еще б я с удовольствием дал бы в глаз тому, кто придумал VFS сделать неюникодной (т.е. шоб ТОЛЬКО юникодные символы и никаких "байтов") и выставил ограничение в 255 _байт_ на длину имени файла, и тем, кто после 1991 года (как минимум) придумывал ФС, позволяющие неюникодные кодировки (или, как минимум, ФС без информации о кодировке в заголовке ФС). Еще хочется от души харкнуть в разработчиков регистро-зависимых ФС, но это всё ж меньшее зло, по сравнению с вышеперечисленным.
Не трогай вопрос "юникодных символов". Там бездна. Например, "и" и "и + ◌̆"
Вот, смотри: й и ̆
Это одна буква или разные? Unicode - бездна, со своими правилами нормализации и т.д. Единственный, кто его осилил по-настоящему - это Rust. И это ТОЛСТЫЙ бинарь. Только ради unicode.
... меня сейчас больше бесит лимит на 15 символов для имени интерфейса.
Если ты делаешь unicode неполным, это хуже, чем если ты его вообще не делаешь, а используешь просто как байтстрим.
Объясняю, почему 15 символов жопа. Виртуальных интерфейсов может быть много.
Вот, например, у меня интерфейс mock_bgp_as_65535_outside (пара с veth в mock_bgp_as_65535_inside). Но нет, на самом деле оно называется bgp_ma65535i, потому что 15. Понятнее, да?
Тогда уже назревает вопрос, а не нужны ли тут деревья вместо просто длинных имён, и какого вообще фига сетевые интерфейсы не видны в /dev, как прочие устройства. Было б /dev/ethernet/mock/... или как-то так... А, ну есть /sys/class/net/..., но один фиг настраиваемость "дерева" в случае статыщ интерфейсов не помешала бы.
/sys/class/net всего лишь переменные ядра, а не сами объекты. Теоретически, иметь сетевые интерфейсы в форме /sys/class/net было было бы круто. Я, кстати, никогда не понимал, почему сетевые интерфейсы такие специальные устройства, которым не полагается major для файла. Модем - устройство, а сетевой интерфейс на базе модема - нет. Странно.
Хе. https://www.opennet.ru/opennews/art.shtml?num=52496 "В systemd-udevd и другие компоненты systemd добавлена поддержка механизма назначения альтернативных имён сетевым интерфейсам, позволяющего одновременно применять для одного интерфейса сразу несколько имён. Размер имени может достигать 128 символов"
Ээээ... это как?! В настройках systemd-udevd можно задать имя, которое ведро не поймёт?! Или там какое-то подобие ситуации с симлинками на /dev/sdX в виде /dev/disk/by-xxx/yyy? Если последний случай - то и ладно бы, вполне себе вариант...
PS. (Не)кстати о дисках: на говнохабре тут некто на интересные грабли с именованием устройств и разделов NVME наступил: https://habr.com/ru/post/491454/ Если это не отдельный взбрык на отдельной машине - то это как-то того-с.
Чушь пишут. Да, у nvme первое устройство - символьное. Как и у многих аппаратных рейдов. Люди, перед тем, как что-то с рейдом делать, обычно смотрят на /proc/mdstat, хотя бы. А человек напечатал фигню и потом рассказывает, что он напечатал фигню.
ЗЫ С переименованием сетевых интерфейсов эпично, потому у меня есть usb-wifi-сетевуха, которую если воткнуть в док-станцию Thunderbolt, по new name convention получает имя, которое слишком длинное.
А лимит 15 символов есть. Я не смотрел, можно ли его поменять.
Блин, шо винда, шо *никсы - локализуют то, что не надо, что надо - не локализуют.
Reply
Reply
Я именно об этом. КМК для имен устройств и прочих псевдофайлов должно быть ограничение, ибо ваистену.
Еще б я с удовольствием дал бы в глаз тому, кто придумал VFS сделать неюникодной (т.е. шоб ТОЛЬКО юникодные символы и никаких "байтов") и выставил ограничение в 255 _байт_ на длину имени файла, и тем, кто после 1991 года (как минимум) придумывал ФС, позволяющие неюникодные кодировки (или, как минимум, ФС без информации о кодировке в заголовке ФС).
Еще хочется от души харкнуть в разработчиков регистро-зависимых ФС, но это всё ж меньшее зло, по сравнению с вышеперечисленным.
Reply
Вот, смотри:
й
и ̆
Это одна буква или разные? Unicode - бездна, со своими правилами нормализации и т.д. Единственный, кто его осилил по-настоящему - это Rust. И это ТОЛСТЫЙ бинарь. Только ради unicode.
... меня сейчас больше бесит лимит на 15 символов для имени интерфейса.
Reply
Reply
Объясняю, почему 15 символов жопа. Виртуальных интерфейсов может быть много.
Вот, например, у меня интерфейс mock_bgp_as_65535_outside (пара с veth в mock_bgp_as_65535_inside). Но нет, на самом деле оно называется bgp_ma65535i, потому что 15. Понятнее, да?
Reply
А, ну есть /sys/class/net/..., но один фиг настраиваемость "дерева" в случае статыщ интерфейсов не помешала бы.
Reply
Reply
Reply
А вот там, эcкейпят, кстати.
lrwxrwxrwx 1 root root 0 Mar 5 17:20 ''$'\033''[2J' -> '../../devices/pci0000:00/0000:00:1c.4/0000:3a:00.0/net/'$'\033''[2J'
Reply
Reply
"В systemd-udevd и другие компоненты systemd добавлена поддержка механизма назначения альтернативных имён сетевым интерфейсам, позволяющего одновременно применять для одного интерфейса сразу несколько имён. Размер имени может достигать 128 символов"
Reply
Reply
Или там какое-то подобие ситуации с симлинками на /dev/sdX в виде /dev/disk/by-xxx/yyy?
Если последний случай - то и ладно бы, вполне себе вариант...
PS. (Не)кстати о дисках: на говнохабре тут некто на интересные грабли с именованием устройств и разделов NVME наступил: https://habr.com/ru/post/491454/
Если это не отдельный взбрык на отдельной машине - то это как-то того-с.
Reply
ЗЫ С переименованием сетевых интерфейсов эпично, потому у меня есть usb-wifi-сетевуха, которую если воткнуть в док-станцию Thunderbolt, по new name convention получает имя, которое слишком длинное.
А лимит 15 символов есть. Я не смотрел, можно ли его поменять.
Reply
Так блин в чём и дело-то. В массиве одно устройство, шмарт опрашивает другое. И где смотреть, какое к кому относится?
Reply
Leave a comment