【发布时间】:2016-06-30 08:36:06
【问题描述】:
我正在尝试在 RISC-V 上运行一些网络程序(如 nginx)。
我不知道 RISC-V 上可用的网络设备,我不想自己实现它,所以我正在寻找其他方式。
首先,我尝试运行将 HTTP 请求发送到给定地址的简单程序。它使用gethostbyname 解析IP 地址并发送HTTP 请求。
我在spike模拟器上成功运行了riscv-linux,编译并运行了程序。 gethostbyname返回Unknown server error,直接使用IP地址时connect返回Network is unreachable错误。
我发现前端服务器fesvr 可以处理从 RISC-V 处理器转发的系统调用,并认为它可能会处理与网络相关的系统调用。我还找到了fesvr-eth,并认为它可能与处理网络服务有关,但根据this link,它只是用于将PC上运行的fesvr通过以太网连接到开发板。此外,fesvr-eth 已从最新的 git repo 中删除。
所以现在我想看看 risc-v linux,看看它实际上是如何处理像 connect 这样的网络系统调用的。我在想,如果网络操作只在localhost 内部完成,它可以在没有网络设备的情况下正确处理。或者可以通过简单的方法扩展fesvr 来处理网络服务。
总结问题:
- 我错过了在 RISC-V 中运行网络应用程序的方法吗?
- 如果请求来自同一主机,即使没有网络设备,是否可以实际处理网络服务?
- 还有其他有用的 cmets 或参考资料吗?
【问题讨论】:
标签: linux sockets networking riscv