The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard, opennews (??), 11-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


4. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  –3 +/
Сообщение от Аноним (4), 11-Апр-23, 11:05 
> почти завершена реализации поддержки механизма vDSO

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

Ответить | Правка | Наверх | Cообщить модератору

143. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (65), 12-Апр-23, 05:59 
Сдирание фич из линукса занятие не такеое уж простое. Там это уже лет так ..цать. Если кто хотел увидеть как именно "too little and too late" выглядит - добро пожаловать!
Ответить | Правка | Наверх | Cообщить модератору

236. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (236), 12-Апр-23, 23:00 
> Сдирание фич из линукса занятие не такеое уж простое. Там это уже лет так ..цать.

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


/usr/src/lib/libc/include/libc_private.h:int        __sys_clock_gettime(__clockid_t, struct timespec *ts);
/usr/src/lib/libc/sys/Symbol.map:    __sys_clock_gettime;
/usr/src/lib/libc/sys/clock_gettime.c:        error = __sys_clock_gettime(clock_id, ts);

> Если кто хотел увидеть как именно "too little and too late" выглядит - добро пожаловать!

Если кто хотел увидеть как именно "задерем же гордо гузочку, потому что ... ой" - добро пожаловать!


Ответить | Правка | Наверх | Cообщить модератору

245. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (-), 13-Апр-23, 09:41 
> ... особенно когда ядро и либц развиваются одной коммандой (что позволяет
> просто и без лишней бюрократии реализовать vDSO-фичи)

В случае линуха vDSO это виртуальный DSO который вообще ядро подпихивает процессу и ему пофиг на то какой там libc. Что как-то лучше с точки зрения универсальности этого, потому что libc разные бывают и все такое. Ядро при этом может нехило срезать угол в обход стандартных механизмов и это декоррелировано от остальных изменений, чего в вашем примере кажется не получается.

И кстати там сейчас не только вон та 1 несчастная функция обычно.

> Если кто хотел увидеть как именно "задерем же гордо гузочку, потому что
> ... ой" - добро пожаловать!

Люблю technical excellence, что поделать. И перфоманс системы одна из важных метрик.

Ответить | Правка | Наверх | Cообщить модератору

282. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (236), 13-Апр-23, 22:38 
>> ... особенно когда ядро и либц развиваются одной коммандой (что позволяет
>> просто и без лишней бюрократии реализовать vDSO-фичи)
> В случае линуха vDSO это виртуальный DSO который вообще ядро подпихивает процессу
> и ему пофиг на то какой там libc.

Какие буквы в  'если оно не называется "vDSO", значит этого нет' вам не понятны?

> Что как-то лучше с точки зрения универсальности этого, потому что libc разные бывают и все такое.

"Как-то лучше" - неплохой эвфемизм для "по другому никак, потому что libc у нас от ядра отдельно".

> И кстати там сейчас не только вон та 1 несчастная функция обычно.

Их там целая куча была (и есть). Обычно это стнадратный "пример" для нужности DSO, типа gettimeofday. Теперь - добавили обертку "__vdso_clock_gettime".
https://www.freebsd.org/status/report-2021-10-2021-12/vdso/
> For instance, a syscall-less wall clock was implemented long ago, by the kernel providing a time hands blob in the shared page, and the C library knowing about its location and the supported algorithms. There is no need for a VDSO that interposes some libc symbols or provides services that are named by known symbols to userland.
> From all the years of experience with this pseudo-VDSO approach, the only feature that was impossible to implement without providing real VDSO support was the signal trampoline DWARF annotations, for the benefit of stack unwinders.

...

Ответить | Правка | Наверх | Cообщить модератору

301. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  –1 +/
Сообщение от Аноним (301), 14-Апр-23, 12:29 
> Какие буквы в  'если оно не называется "vDSO", значит этого нет'
> вам не понятны?

vDSO это вполне конкретная технология, "виртуальный DSO". И что значит этого нет? В случае vDSO пойнт в том что кернел некоторые услуги вывешивает софту напрямую, в обход libc вообще, чеорез те интерфейсы которые сочтет нужными.

> "Как-то лучше" - неплохой эвфемизм для "по другому никак, потому что libc
> у нас от ядра отдельно".

Это делает систему модульной и гибкой. Разным окружениям могут разные либцы хотеться. Скажем, recovery в initrd важнее мизерный размер. Там могут klibc какой-нибудь взять. Или openwrt тоже с его 8 мегов флеша на все, поэтому там uclibc или musl. А ядро vDSO может раздать всем, с бонусом к перфомансу.

Это еще и обеспечивает прозрачный, декорелированый апгрейд системы. Если новое ядро в vDSO умеет больше старого, окей, программы совершенно прозрачно получат ускорение с минимумом поводов для развала чего либо. Либсу и ее мнение при этом спрашивать вообще не требуется.

> Их там целая куча была (и есть).

Наверное именно поэтому кто-то вроде как пытается vDSO реализовать? Логика.

Ответить | Правка | Наверх | Cообщить модератору

333. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (236), 14-Апр-23, 21:40 
> vDSO это вполне конкретная технология, "виртуальный DSO". И что значит этого нет?
> В случае vDSO пойнт в том что кернел некоторые услуги вывешивает софту напрямую, в обход libc

Угу-угу. В обход сисколов в первую очередь. И vDSO - это еще и интерфейс.
> Applications usually do not need to concern themselves with these details as the vDSO is most
> commonly called by the C library.  This way you can code in the
> normal way using standard functions and the C library will take
> care of using any functionality that is available via the vDSO.

а так все верно, ага.

>> Их там целая куча была (и есть).
> Наверное именно поэтому кто-то вроде как пытается vDSO реализовать? Логика.

Для "технологистов" еще раз - вывешивание инфы в "обход" сисколов - сто лет есть. Ускоренее при апгрейде системы бонусом для программ без всяких хаков (т.е. просто использующих libc) - тоже самое. Т.е. "pseudo-vDSO". Логика-логика.
> Люблю technical excellence, что поделать

Ну мы видели недавно "technical excellence" на примере utmp, как там было: "Linux defines the utmpx structure to be the same as the utmp structure" - и ... "ой!"


Ответить | Правка | Наверх | Cообщить модератору

349. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от Аноним (-), 15-Апр-23, 11:46 
> Угу-угу. В обход сисколов в первую очередь. И vDSO - это еще и интерфейс.

Это оверрайд функций DSO ядром. Которое может подпихнуть свои более производительные реализации, в конкретике вот именно этой инкарнации ядра, о чем никто кроме ядра не узнает. Прелесть в том что конкретика полностью декорелирована. Внешний интерфейс - вон та функция. А ядро может ее как ему там удобнее делать, с сисколами, без сисколов или в крапинку. Это его внутреннее дело как было эффективнее в конкретно этом вот случае. В этом пойнт технологии. И можно добавлять и иные функции - совершенно прозрачно, без рекомпила программ. И новое ядро прекрасно встроится в существующую систему без рекомпила чего либо вообще. В том числе и немаленькой основной либсы.

> а так все верно, ага.

vDSO может перекрыть собой libc если захочет, как я понимаю. А то что в эту игру могут играть двое - да, могут. Что в этом такого?

> Для "технологистов" еще раз - вывешивание инфы в "обход" сисколов - сто лет есть.

Прекрасно но vDSO это довольно таки generic механизм позволяющий прозрачные апгрейды и расширения, без каких либо факапов обратной совместимости и интрузива. Чем собственно и интересен как технология.

> Ускоренее при апгрейде системы бонусом для программ без всяких
> хаков (т.е. просто использующих libc) - тоже самое. Т.е. "pseudo-vDSO". Логика-логика.

vDSO так то нехилый системный хак, по определению :). Кернель по сути может оверрайдить некоторые функции libc или иных либ если захочет. И технически это именно хакинг программ. Но он с благой целью ускорения их работы. Это и другие делают, какая-нибудь нвидия вообще шейдеры популярным играм заменяет на свои, оптимизированые.

> Ну мы видели недавно "technical excellence" на примере utmp, как там было:
> "Linux defines the utmpx structure to be the same as the
> utmp structure" - и ... "ой!"

Прикопаться можно ко всему, но если вы копипастите фичи из линуха - тут двух мнений быть не может. Были бы у вас интерфейсы лучше - пингвин бы их скопипастил, пожалуй. А чего стесняться то. Но у вас их нет, вас "и так все устраивает", зачем что-то менять.

Ответить | Правка | Наверх | Cообщить модератору

413. "Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard"  +/
Сообщение от John (??), 25-Июл-23, 22:09 
Так то Костя указал зачем оно нужно, noexecstack & cfi
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру