V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
oaa
V2EX  ›  Linux

发现一篇有趣的文章 Afork()in the road ,讲的是 fork api 设计的缺点

  •  
  •   oaa ·
    woodgear · 2020-08-02 21:04:53 +08:00 · 1925 次点击
    这是一个创建于 1573 天前的主题,其中的信息可能已经有所发展或是发生改变。

    A fork()in the road

    我的一点想法是 这是路径依赖的又一实例,fork 本来确实就蛮奇怪的,竟然是微软的人来发文章讲这件事,而不是 unix 社区自己的人来提出,真的是有点打脸.

    什么叫大道至简,互相组合啊 --微软

    后面的几个解决方案中spawn(实际就是 CreateProcess)看起来还有点意思.其他的几个感觉是修修补补.

    不过我认为现在最大的问题在于进程这个概念是否要做出修正了.原本是自然而然的 process->thread 这条路 不过现在看起来要么显式的保留 proccess 这个概念,用协程走 golang 的路.要么是像 rust 走多线程事件驱动的路(这条路看来也只有 rust 能走 除非大家都上所有权这种能保证单一所有权的机制),不要用进程这种重的东西了,只保留区分不同程序这个语义就足够了.

    引申起来有一个值得深思的问题是

    如何保证向后兼容 或者讲如何最小化替换的成本和路径依赖

    剪断耦合所有人走 kvm 的路是我所唯一能想到的

    1 条回复    2020-08-02 21:46:13 +08:00
    vk42
        1
    vk42  
       2020-08-02 21:46:13 +08:00
    关于 POSIX 那一套接口的合理性和效率讨论已经好多年了,glibc 现在默认也早不用 fork()了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2727 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.