API сокетов в стиле BSD в пространстве ядра для сетей TCP/IP. Оригинальный ksocket для версии 2.6 был опубликован по адресу http://ksocket.sourceforge.net/. Этот репозиторий содержит изменения, делающие его совместимым с новыми версиями ядра. API ksocket был обновлен с учетом изменений, связанных с интерфейсом iov_iter, представленным в ядре версии 3.19+.
$ git clone https://github.com/hbagdi/ksocket.git
$ cd ksocket/src
$ make # make sure you have the kernel headers/tree installed
$ sudo insmod ksocket.ko
#now you can use the exported symbols from this kernel module
Посмотрите подкаталог sample
для образцов кода.
$ cd ksocket/sample/tcp/
$ make
# two kernel modules are ksocket_tcp_cli_demo.ko(TCP client) and ksocket_tcp_srv_demo.ko(TCP server)
$ sudo ksocket_tcp_srv_demo.ko
$ sudo ksocket_tcp_cli_demo.ko
$ dmesg
Первоначальная работа ksocket заключалась в поддержке Linux 2.6, однако была включена поддержка версии 5.4.0.
Поддержка v5.4.0 работает на Linux Ubuntu 5.4.0-66 x86-64, поэтому нет никакой гарантии, что она будет хорошо работать на версиях > 2.6 && < 5.3.x
Чтобы версия 2.6 оставалась стабильной, мы оставили без работы версию 5.4.0, вместо этого у нас теперь есть две ветки: v2.6 (master) и v5.4.0.
https://github.com/hbagdi/ksocket
https://github.com/hbagdi/ksocket/tree/linux-5.4.0
Для получения дополнительной помощи напишите по адресу [email protected].