The OpenNET Project / Index page

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



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

Оглавление

Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust, opennews (ok), 16-Июн-21, (0) [смотреть все]

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


28. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +2 +/
Сообщение от Аноним (28), 16-Июн-21, 17:54 
Кто бы сомневался что всё равно без libc ничего не могут. Хипстеры такие хипстеры.
Ответить | Правка | Наверх | Cообщить модератору

30. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от n00by (ok), 16-Июн-21, 18:13 
Хотел было спросить, зачем там

pub unsafe extern "C" fn malloc(size: size_t) -> *mut c_void

но нашёл вот это:

pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t

https://docs.rs/libc/0.2.97/libc/fn.strlen.html

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

42. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от Аноним (-), 16-Июн-21, 21:22 
> но нашёл вот это:
> pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t
> https://docs.rs/libc/0.2.97/libc/fn.strlen.html

И чо? Тебя поразило в самое сердце, что для взаимодействия с внешними либами можно не переизобретать велосипед, а использовать решения для тех самых внешних либ? (для латентных ЖСкриптозников поясню - в Ржавчине char - это 4 байта, а String - отдельный тип в кодировке UTF-8, а не массив с костыл^W набором чаров)

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

65. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +1 +/
Сообщение от n00by (ok), 17-Июн-21, 06:52 
>> но нашёл вот это:
>> pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t
>> https://docs.rs/libc/0.2.97/libc/fn.strlen.html
> И чо? Тебя поразило в самое сердце, что для взаимодействия с внешними
> либами можно не переизобретать велосипед, а использовать решения для тех самых
> внешних либ?

Да, меня это поразило. Вы еще про Бойер-Мура напишите для строк в 2 гигабайта, что бы я спросил: а зачем?

> (для латентных ЖСкриптозников поясню - в Ржавчине char -
> это 4 байта, а String - отдельный тип в кодировке UTF-8,
> а не массив с костыл^W набором чаров)

Если убрать малознакомые мне слова и попытки манипулировать, то правильно ли я понимаю, что тут написано о невозможности обработать массив октетов средствами Раста? (но этого не может быть).

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

82. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +1 +/
Сообщение от Аноним. (?), 17-Июн-21, 13:32 
>>> без libc ничего не могут
>> Хотел было спросить, зачем там ... malloc ... strlen
> Если убрать малознакомые мне слова и попытки манипулировать,

Свое не пахнет?

> то правильно ли я понимаю, что тут написано о невозможности обработать массив октетов средствами Раста?
> (но этого не может быть).

Тут написано о том, что строки в расте "совсем другие".
А теперь глянь в реализацию strlen той же glibc
https://github.com/lattera/glibc/blob/master/sysdeps/x86_64/...
https://github.com/lattera/glibc/blob/master/sysdeps/arm/str...
- предлагаешь велосипедить достаточно быструю (то есть использующую SIMD, выравненное чтение и прочее) для _внешнего_ типа данных чисто из "любви к исскуству" (ну и чтобы комментаторы на опеннете могли всласть покомментировать по поводу NIH синдрома)?


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

87. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от n00by (ok), 17-Июн-21, 14:14 
>[оверквотинг удален]
>> то правильно ли я понимаю, что тут написано о невозможности обработать массив октетов средствами Раста?
>> (но этого не может быть).
> Тут написано о том, что строки в расте "совсем другие".
> А теперь глянь в реализацию strlen той же glibc
> https://github.com/lattera/glibc/blob/master/sysdeps/x86_64/...
> https://github.com/lattera/glibc/blob/master/sysdeps/arm/str...
>  - предлагаешь велосипедить достаточно быструю (то есть использующую SIMD, выравненное
> чтение и прочее) для _внешнего_ типа данных чисто из "любви к
> исскуству" (ну и чтобы комментаторы на опеннете могли всласть покомментировать по
> поводу NIH синдрома)?

Предлагаю перечитать сообщение, на которое Вы отвечали. Там был задан вопрос на эту тему. Если не понятно, что такое Бойер-Мур, поищите в сети. Если Вы не готовы дать ответ не мой вопрос, не тратьте время.

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

92. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (92), 17-Июн-21, 14:47 
>> но нашёл вот это:
>> pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t
>> что бы я спросил: а зачем?
> Предлагаю перечитать сообщение, на которое Вы отвечали. Там был задан вопрос на
> эту тему. Если не понятно, что такое Бойер-Мур, поищите в сети.
> Если Вы не готовы дать ответ не мой вопрос, не тратьте
> время.

Предлагаю перестать читать жопой и юлить и ответить наконец на вопрос: на*ера обязательно нужно велосипедить свою реализацию операции над _чужим_ типом данных? Что бы что?

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

125. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от n00by (ok), 18-Июн-21, 07:13 
То есть я сам должен ответить свой на вопрос, зачем Rust strlen()? Не проблема, напишу теперь уже без намёков: strlen() в Rust не нужна.

Теперь ты расскажи, зачем ты тут нарисовался?

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

57. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (57), 16-Июн-21, 22:09 
strlen действительно могли бы реализовать сами,  но может быть,  нужен и конкретно текущей libc. А без malloc нельзя было бы работать с теми кривыми сишными поделиями, которым подай аллоцированное, а освободят они сами естественно сишным free
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

67. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от n00by (ok), 17-Июн-21, 07:01 
> strlen действительно могли бы реализовать сами,  но может быть,  нужен
> и конкретно текущей libc.

Зачем? Вызов внешней функции существенно дороже, чем встроенный (inline) подсчёт.

> А без malloc нельзя было бы работать
> с теми кривыми сишными поделиями, которым подай аллоцированное, а освободят они
> сами естественно сишным free

Не согласен с формулировкой. Можно. Да, для этого придётся переписать malloc на Rust и следить за изменениями эталонной реализации. Либо перехватывать вызовы free(). Это решаемая задача, но в данном случае трудозатраты вряд ли оправданы, как в случае со strlen().

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

69. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +2 +/
Сообщение от боня (?), 17-Июн-21, 07:21 
как вариант это просто автогенерированный код
Ответить | Правка | Наверх | Cообщить модератору

70. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от n00by (ok), 17-Июн-21, 07:30 
> как вариант это просто автогенерированный код

Спасибо. Это разумный вариант.

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

120. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (120), 18-Июн-21, 01:42 
И очень сильно и сложно приседать, чтобы ничего не ломалось при LD_PRELOAD, скажем, jemalloc, по сути вызывая написанный на расте код через FFI.
И это уже в одном шаге от переписывания libc на раст. Что на самом деле идея красивая но неосуществимая, ведь glibc ужасает не только качеством но и объемом кода
Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

124. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от n00by (ok), 18-Июн-21, 07:10 
> И очень сильно и сложно приседать, чтобы ничего не ломалось при LD_PRELOAD,
> скажем, jemalloc, по сути вызывая написанный на расте код через FFI.

Это не эквивалентно "нельзя".

> И это уже в одном шаге от переписывания libc на раст. Что
> на самом деле идея красивая но неосуществимая, ведь glibc ужасает не
> только качеством но и объемом кода

Но Си ведь небезопасный язык. Значит libc небезопасна. Следовало переписать сначала её, а потом уже всё остальное.

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

31. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (-), 16-Июн-21, 18:34 
> Кто бы сомневался что всё равно без libc ничего не могут. Хипстеры такие хипстеры.

https://man7.org/linux/man-pages/man2/syscalls.2.html
>> System calls are generally not invoked directly, but rather via
>> wrapper functions in glibc (or perhaps some other library).

Кто бы сомневался, что жопоскриптозники в вопросе разбираются как козы в апельсинах?

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

32. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от n00by (ok), 16-Июн-21, 18:42 
Поскольку разбираетесь, подскажите, пожалуйста, вокруг какого syscall является обёрткой функция

pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t

https://docs.rs/libc/0.2.97/libc/fn.strlen.html

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

34. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (-), 16-Июн-21, 18:57 
> Поскольку разбираетесь, подскажите, пожалуйста, вокруг какого syscall является обёрткой функция
> pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t
> https://docs.rs/libc/0.2.97/libc/fn.strlen.html
> Raw FFI bindings to platforms’ system libraries

Не юродствуй.
С чего бы делать обертку неполной? Чтобы на опеннете могли поныть "Ха, хипстиры ниасилили даже обертку!1"?

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

39. Скрыто модератором  +1 +/
Сообщение от Прорыв_запарты_фелиал (ok), 16-Июн-21, 21:16 
Ответить | Правка | Наверх | Cообщить модератору

45. Скрыто модератором  +/
Сообщение от Аноним (-), 16-Июн-21, 21:34 
Ответить | Правка | Наверх | Cообщить модератору

49. Скрыто модератором  +/
Сообщение от Прорыв_запарты_фелиал (ok), 16-Июн-21, 21:41 
Ответить | Правка | Наверх | Cообщить модератору

52. Скрыто модератором  +/
Сообщение от Аноним (-), 16-Июн-21, 22:02 
Ответить | Правка | Наверх | Cообщить модератору

68. Скрыто модератором  +/
Сообщение от n00by (ok), 17-Июн-21, 07:07 
Ответить | Правка | К родителю #49 | Наверх | Cообщить модератору

107. Скрыто модератором  +/
Сообщение от Прорыв_запарты_фелиал (ok), 17-Июн-21, 20:34 
Ответить | Правка | Наверх | Cообщить модератору

127. Скрыто модератором  +/
Сообщение от n00by (ok), 18-Июн-21, 08:00 
Ответить | Правка | Наверх | Cообщить модератору

151. Скрыто модератором  +/
Сообщение от Прорыв_запарты_фелиал (ok), 24-Июн-21, 22:45 
Ответить | Правка | Наверх | Cообщить модератору

152. Скрыто модератором  +/
Сообщение от n00by (ok), 25-Июн-21, 07:50 
Ответить | Правка | Наверх | Cообщить модератору

66. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от n00by (ok), 17-Июн-21, 07:00 
>> Поскольку разбираетесь, подскажите, пожалуйста, вокруг какого syscall является обёрткой функция
>> pub unsafe extern "C" fn strlen(cs: *const c_char) -> size_t
>> https://docs.rs/libc/0.2.97/libc/fn.strlen.html
>> Raw FFI bindings to platforms’ system libraries
> Не юродствуй.
> С чего бы делать обертку неполной?

Раз не подскажете номер вызова, значит strlen() не имеет отношения к обёртке, как и попытка передёрнуть -- смысла.

> Чтобы на опеннете могли поныть "Ха,
> хипстиры ниасилили даже обертку!1"?

Пока приходится ныть об уровне аргументации и качестве риторики.

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

83. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +1 +/
Сообщение от Аноним. (?), 17-Июн-21, 13:38 
> Раз не подскажете номер вызова, значит strlen() не имеет отношения к обёртке,
> как и попытка передёрнуть -- смысла.

Твоя попытка передерга - тоже. Ну или ты можешь показать, где в сабже используется strlen?

>> всё равно без libc ничего не могут. Хипстеры такие хипстеры.
> Пока приходится ныть об уровне аргументации и качестве риторики.

О да.


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

88. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –1 +/
Сообщение от n00by (ok), 17-Июн-21, 14:20 
>> Раз не подскажете номер вызова, значит strlen() не имеет отношения к обёртке,
>> как и попытка передёрнуть -- смысла.
> Твоя попытка передерга - тоже. Ну или ты можешь показать, где в
> сабже используется strlen?

Могу назвать вопрос унылой демагогией. Бремя доказательства, что strlen() является "System call ... wrapper function", лежит на заявителе.


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

90. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +1 +/
Сообщение от Аноним (-), 17-Июн-21, 14:26 
> Могу назвать вопрос унылой демагогией.

В смысле, вставить от балды не используемый сабжем "strlen" и требовать доказать что это "wrapper functions in glib" - демагогия? Согласен.

> Бремя доказательства, что strlen() является "System
> call ... wrapper function", лежит на заявителе.

Бремя доказательства "всё равно без libc ничего не могут"? Несомненно!

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

109. Скрыто модератором  –1 +/
Сообщение от Прорыв_запарты_фелиал (ok), 17-Июн-21, 20:44 
Ответить | Правка | Наверх | Cообщить модератору

75. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Урри (ok), 17-Июн-21, 11:20 
translate.google.com <- "generally"

Это в тему коз и апельсинов.

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

84. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним. (?), 17-Июн-21, 13:51 
> translate.google.com <- "generally"
> Это в тему коз и апельсинов.

Так ты коза, дергаящая в своих программах сисколы напрямую?
Или очередной опеннетный апельсин-теоретик, который любит поныть (в зависимости от темы) "Пачему оно тянет еще один жирный рантай, не используя системное!© Зачем переписали?" и "А-а-а! Используют системное! Не осилили свое! Фууу!"?

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

89. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  –2 +/
Сообщение от n00by (ok), 17-Июн-21, 14:24 
А что, из Rust нельзя дёрнуть сискол напрямую? Скажите, Вас кто-то нанял, что бы Вы сливали столь популярный и многообещающий язык, или оно само так получается?
Ответить | Правка | Наверх | Cообщить модератору

91. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +2 +/
Сообщение от Аноним (92), 17-Июн-21, 14:40 
> А что, из Rust нельзя дёрнуть сискол напрямую?

Логика уровня "А что, из С++ нельзя дернуть сискол напрямую или почему так никто не делает?!"


https://docs.rs/syscall/0.2.1/src/syscall/platform/linux-x86...
#[inline(always)]
pub unsafe fn syscall0(n: usize) -> usize {
    let ret : usize;
    asm!("syscall" : "={rax}"(ret)
                   : "{rax}"(n)
                   : "rcx", "r11", "memory"
                   : "volatile");
    ret
}

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

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


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

108. Скрыто модератором  +/
Сообщение от Прорыв_запарты_фелиал (ok), 17-Июн-21, 20:39 
Ответить | Правка | Наверх | Cообщить модератору

126. Скрыто модератором  –2 +/
Сообщение от n00by (ok), 18-Июн-21, 07:49 
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

128. Скрыто модератором  +/
Сообщение от Аноним (-), 18-Июн-21, 12:11 
Ответить | Правка | Наверх | Cообщить модератору

136. Скрыто модератором  +/
Сообщение от n00by (ok), 18-Июн-21, 16:28 
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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