>> Имевший отношение к Berkeley но не к Berkeley Software Distribution?
>> От оно че, Михалыч!
> Вас, если что, матёрый в т.ч. бздишник ткнул носом в Ваше непонимание. Придумав и оспорив по ходу чуть ли не 2/3 "ткнутого"? Это да, это он может.
Да и ловили этого "матерого знатока" уже не раз на откровенном пи*деже или как минимум, игнорировании "неудобных" фактов и фактиков.
> И то, что продолжаете упорствовать -- характеризует Вас и только Вас.
> Одумайтесь.
То, что Вы не разобравшись влезли в обсуждение, да еще и бросаетесь обвинениями - характеризует Вас точно так же.
А ведь достаточно не верить форумным знатокам "на слово" и почитать самому:
https://lwn.net/Articles/740157/
> A thorough introduction to eBPF
> The original Berkeley Packet Filter (BPF) [PDF] was designed
Это одновременно и ссылка. Пройдя по ней и открыв PDF, любой желающий и умеющий cможет прочесть:
> December 19, 1992
> Lawrence Berkeley Laboratory
> The BSD Packet Filter:
> This paper describes the BSD Packet Filter, BPF, a new kernel architecture for packet capture.
------------
На этом можно бы и закончить, но так и быть, только сегодня, немного бонусного материала:
Внимательный читатель, не обделенный толикой любознательности, может так же найти упомянутые API прямиком в "не имеющей отношения"
https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=9&n=1
> bpf_tap(struct ifnet *ifp, u_char *pkt, u_int *pktlen);
а заглянув в код, обнаружить реализацию представленной в этом любопытном документе BPF-машины
> The BPF Pseudo-Machine
> Table 1: BPF Instruction Set
/usr/src/sys/net/bpf.h
* @(#)bpf.h 8.1 (Berkeley) 6/10/93
* @(#)bpf.h 1.34 (LBL) 6/16/96/* ld/ldx fields */
#define BPF_SIZE(code) ((code) & 0x18)
#define BPF_W 0x00
#define BPF_H 0x08
#define BPF_B 0x10
/* 0x18 reserved; used by BSD/OS */
#define BPF_MODE(code) ((code) & 0xe0)
#define BPF_IMM 0x00
#define BPF_ABS 0x20
#define BPF_IND 0x40
#define BPF_MEM 0x60
#define BPF_LEN 0x80
#define BPF_MSH 0xa0
/* 0xc0 reserved; used by BSD/OS */
/* 0xe0 reserved; used by BSD/OS */
/* alu/jmp fields */
#define BPF_OP(code) ((code) & 0xf0)
#define BPF_ADD 0x00
#define BPF_SUB 0x10
#define BPF_MUL 0x20
#define BPF_DIV 0x30
#define BPF_OR 0x40
#define BPF_AND 0x50
#define BPF_LSH 0x60
#define BPF_RSH 0x70
#define BPF_NEG 0x80
#define BPF_MOD 0x90
#define BPF_XOR 0xa0
Любой внимательный читатель (даже с пингвинчиком на маечке), не сможет не заметить "некоторое сходство" с появившимся на два десятка лет позднее:
https://github.com/torvalds/linux/blob/master/include/uapi/l...
/* ld/ldx fields */
#define BPF_SIZE(code) ((code) & 0x18)
#define BPF_W 0x00 /* 32-bit */
#define BPF_H 0x08 /* 16-bit */
#define BPF_B 0x10 /* 8-bit */
/* eBPF BPF_DW 0x18 64-bit */
#define BPF_MODE(code) ((code) & 0xe0)
#define BPF_IMM 0x00
#define BPF_ABS 0x20
#define BPF_IND 0x40
#define BPF_MEM 0x60
#define BPF_LEN 0x80
#define BPF_MSH 0xa0/* alu/jmp fields */
#define BPF_OP(code) ((code) & 0xf0)
#define BPF_ADD 0x00
#define BPF_SUB 0x10
#define BPF_MUL 0x20
#define BPF_DIV 0x30
#define BPF_OR 0x40
#define BPF_AND 0x50
#define BPF_LSH 0x60
#define BPF_RSH 0x70
#define BPF_NEG 0x80
#define BPF_MOD 0x90
#define BPF_XOR 0xa0
Удивительнейшие совпадения самих опкодов, как и наименования, порядка определения, форматирования и даже комментариев с "неимевшей отношения".
Но раз, цуко, местный "гуру" говорит что это совпадение и на самом деле оно "не похоже", то наверняка так и есть - чего только, лять, не бывает!