有个梨UGlee
2019-12-09 02:07:37 发布
在ls | grep运行在abc上的情况,实现上需要:
1 ABC上都有相同的沙箱,例如node。
2 C可以创建C和A,A和B,B和C的通讯连接。
3 C可以把程序注入到A和B上运行,可以使用创建的通讯和AB上的本地资源。
就像一个copy命令,扔给A的是readable,扔给B的是writable,两者pipe,把A上的一个资源复制到B去了。
在shell里运行这个命令也是spawn的,前面说的只是spawn到不同设备上去了。kernel提供的pipe,现在变成了在一组设备间自由建立连接。
unix pipe本来是blocking的,编程上说是构成了coroutine,π calculus里构成同步通讯。分布到不同设备上的话,就变成了异步的和buffered。
牛逼!!!!!