socketpair被ruststd在子进程创建时使用,NovaShell和DragonReach都需要使用,可见实现socketpair是当务之急
目前DragonOS只有tcp(Stream)、udp(Dgram)和raw(Raw)三种类型的socket实现,而Seqpacket类似于Stream和Dgram的结合体,不确定能否使用现成的实现,或许可以使用raw来实现
socketpair被ruststd在子进程创建时使用,NovaShell和DragonReach都需要使用,可见实现socketpair是当务之急
目前DragonOS只有tcp(Stream)、udp(Dgram)和raw(Raw)三种类型的socket实现,而Seqpacket类似于Stream和Dgram的结合体,不确定能否使用现成的实现,或许可以使用raw来实现
貌似 个人资料 - Jomocool - DragonOS开源社区 正在做socketpair的调用,但是我不清楚他做到什么程度。
在linux内核中是使用面向消息的套接字(Seqpacket)实现的,但是他主要就是用来进行进程间通信的,就目前来说,如果说急的话,我觉得简要实现(实现类似pipe的功能)就可以支持NovaShell和DragonReach的使用,但是不确定之后的使用场景会不会出现问题。
就是说可以用pipe2临时顶替一下对吧?
对的,之前drstd还是DragonReach来着,貌似 @GnoCiYeH 就是这么干的。
不是哦,当时是改的条件编译 ,直接绕开socketpair那条路哈哈哈。
不行,因为对socketpair的读写实质上还是对socket的读写,pipe和它都不是一个文件系统。我的意思是在内核以相同的思路简要实现。
确实,ruststd里对这俩的处理方法也不同