背景
我正在寻找编写非 IP 网络协议和相关网络设备驱动程序(非以太网硬件)的内核空间实现。我找到了一些有关开发协议和驱动程序的资源,尽管我很难理解如何将使用我的协议的套接字与我的驱动程序关联起来。
目的是让它工作,以便用户空间中的程序只需要调用bind(socket(AF_TERRIBLE_IDEA, ...), ...);
即可运行。
目的是更熟悉同时进行内核空间的开发,因此迁移到用户空间并不理想。
问题
当一个绑定进行调用后,内核如何知道将套接字关联到哪个设备(以及设备驱动程序)?