LINUX.ORG.RU

Во FreeBSD реализована поддержка протокола Netlink

 ,


0

2

1 октября 2022 года Александр Черников отправил в FreeBSD патч, реализовывающий поддержку протокола Netlink.

Netlink — это протокол связи, который в настоящее время используется в ядре Linux для изменения, чтения и подписки практически на все сетевые состояния. Интерфейсы, адреса, маршруты, брандмауэр, виртуальные сети и т.д. управляются через netlink. Это асинхронный протокол на основе TLV, обеспечивающий связь one-to-one и one-to-many.

На текущий момент реализация ограничивается семейством операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре и позволяет управлять сетевыми интерфейсами, IP-адресами, маршрутизацией и объектами nexthop, хранящими данные о состоянии передаваемого пакета.

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

Большинство моделей данных Netlink прекрасно соответствуют концепциям FreeBSD. Неизмененный двоичный файл ip корректно работает с интерфейсами, адресами и маршрутами.

Для компиляции и работы с FreeBSD netlink некоторым программным обеспечением, таким как net/bird, требуются модификации только для заголовка.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)
Ответ на: комментарий от Clockwork

Да и вообще, как тебе живётся с отсутствием супервайзинга?

У daemon есть ключики:


     -r      Supervise and restart the program after a one-second delay if it
             has been terminated.

     -R restart_delay_seconds
             Supervise and restart the program after the specified delay if it
             has been terminated.

Если нужно что-либо еще помимо просто перезапуска - в портах есть sysutils/py-supervisor или sysutils/immortal.

iron ★★★★★
()

Дожили: FreeBSD заимствует сетевые технологии из Линукса. А как же их лозунг «The Power To Serve»?

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

Да и вообще, как тебе живётся с отсутствием супервайзинга?

На десктопе он не нужен. На сервере давно везде k8s и тоже не нужен. Т.е. systemd это странное решение для странных людей, пытающихся делать сложные вещи негодными инструментами.

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

FreeBSD заимствует сетевые технологии из Линукса.

Главное, чтоб графические не стала заимствовать. Тогда у мира еще останутся хоть какие-то шансы на мир…

BydymTydym
()
Ответ на: комментарий от ex-kiev

Вроде bsd-style в слаке она раньше была, ну никак не sysv это…

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

Главное, чтоб графические не стала заимствовать.

Куда они денутся. Nvidia, например, дропнет поддержку иксов или будет медленно исправлять баги и придётся переползать на вялый.

ox55ff ★★★★★
()

Ну не знаю. Обычно подобный улучшайзинг до добра не доводит.

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

подарил корпорациям патч

Истинно свободный софт всё равно победит. А GPL это как раз лучший механизм для контроля корпорацими сообщества.

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

Да не, терпимо. Но, какого, простите, хрена они расслабляются?

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

Эээ, а откуда взялись линуксизмы в launchd? Этож Макось.

Ну так Максось, в отличие от Линукса - это Unix.

повторяю вопрос - ты идиот?

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

Ага, я тут при чём?

Ну кто-то же должен за это ответить :D
Да, похоже переработал вчера, под конец уже мозг с пробуксовкой шевелился.

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

Не говорите за всех.

Не говорите мне за кого мне говорить.

Все с rc хорошо и абсолютно UNIX-way.

UNIX-way - это зло, но в rc ничего юниксвейного нет, это россыпь скриптов делающих всё подряд. Ничего хорошего там нет. Параллельности нет, супервайзинга нет, консистентности нет, зависимости и те через жопу сделаны - сторонней утилитой, не говорю даже о том что постоянно возникают нерешаемые проблемы с кольцевыми зависимостями; скрипты для нового сервиса вместо одной строчки состоят из страницы бойлерплейта, и понять как его конфигурировать без чтения скрипта нельзя. foo_flags там или foo_args? Есть ли аргументы по умолчанию? Добавляют к нм _flags/_args или переписывают? Включен ли в них стандартный конфиг? Или путь к конфигу вообще отдельной переменной? Можно ли указать юера под которым запускать сервис? Логин класс, лимиты? В итоге там встречается вот такой трындец:

case "${minetest_args}" in
*--config\ *)
    echo "Warning \$minetest_args includes --config option." \
         "Please use \$minetest_conffile instead."
    ;;
*)
    minetest_args="--config ${minetest_config} ${minetest_args}"
    ;;
esac

Кошмарное наследние прошлого века которое должно быть закопано.

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

Кошмарное наследние прошлого века которое должно быть закопано.

Если кто-то не осилил UNIX shell, я думаю, стоит этого самого закопать.

UNIX way - единственный правильный way. Мнение виндузятников, перешедших на GNU/Linux, не интересует. Вы уже и так вместе с Поттерингом изуродовали изначально очень неплохую UNIX-систему, чтобы она была похожа на вашу винду, что приходится выбирать между FreeBSD (если повезет с железом) и Slackware.

GFORGX ★★★
()
Последнее исправление: GFORGX (всего исправлений: 2)
Ответ на: комментарий от GFORGX

Если кто-то не осилил UNIX shell, я думаю, стоит этого самого закопать.

По-детски категорично. Осилить шелл может и ребёнок, только вот далеко не все из него вырастают. А в реальном мире шелл - это лютый антипаттерн, потому что есть специализированные инструменты с гораздо более лаконичным синтаксисом конфигурации, не позволяющим ни выстрелить себе в ногу пропустив какую-нибудь | или забыв set -o pipefail, ни нагородить вонючую гору скриптов в которой не разобраться. Поэтому ансибл, а ни в коем случае не шелл. Поэтому системы сборки, а ни в коем случае не шелл (autocrap или самописные майкфайлы). Поэтому юниты, а ни в коем случае не шелл. Во-вторых, даже в качестве general purpose скриптового языка шелл неудобен, небезопасен и медленен.

Вы уже и так вместе с Поттерингом изуродовали изначально очень неплохую UNIX-систему, чтобы она была похожа на вашу винду, что приходится выбирать между FreeBSD (если повезет с железом) и Slackware.

Не надо оскорблять FreeBSD сравнением с этой поделкой. FreeBSD это таки современная система, а не недоделка с официальным курсом оставаться недоделкой. Ну и сразу облегчу тебе выбор - на ней и оставайся, а FreeBSD будет современной системой, с вейландом, пульсой, растом в ядре, drm из линукса, и, надеюсь когда-нибудь, полноценной системой инициализации.

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