首先请允许我说我没有开发OSX驱动程序的经验,也没有开发Windows驱动程序的经验。所以,关于司机如何运作,我有很多不明白的事情;我相信在我的问题中这一点很明显。
我有一个调制解调器,可以使用AT命令打开和关闭TCP / UDP套接字。我想创建一种实现网络驱动程序的程序(内核扩展?驱动程序?),将网络接口调用转换为AT命令串行消息。
这是它的基本要点。我本质上是在询问是否有人可以指出我正确的方向/给我一个高级别的概述,他们将如何处理它以及Apple指导的重点。
与大多数网络堆栈一样,XNU网络堆栈期望网络设备直接发送和接收IP数据包。它不能与内部处理网络堆栈(如TCP或UDP)的网络设备一起使用 - 无法实现使用此设备的网络驱动程序。
你可能有更多的运气将这个设备暴露为SOCKS proxy。您需要编写一个用户空间守护程序,该守护程序侦听localhost(在计算机上)上的TCP端口,并将流量中继到串行设备;完成后,您可以将计算机设置为在网络控制面板中将该设备用作SOCKS代理。
(顺便说一句:实现此类接口的大多数设备对打开的套接字数量的限制非常低 - 通常少于10.它们不太可能处理桌面操作系统生成的网络负载。)