这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
naoh1000

想做个 Windows 上类似 Docker 的软件来安装国产软件

  •  2
     
  •   naoh1000 · Nov 11, 2020 via iPhone · 6614 views
    This topic created in 2029 days ago, the information mentioned may be changed or developed.
    Sandboxie 的文件权限管理是黑名单机制的,即你只能禁止运行在里面的软件读取某个文件夹。这不能很好地阻止国产软件扫描硬盘。我想做一个软件,在里面运行一个软件安装包会自动创建一个容器,容器内只能访问一些系统文件,用户可以把主机上的某个需要用到的目录挂载进容器,或者创建 volumes 来持久化数据,像 Docker 一样。最近注意到 Containerd 已经支持了 Windows 的进程隔离(非 Hyper-V )想问下 V 友这样做的可行性以及基于 Sandboxie 开发还是 Containerd 开发容易一些。
    22 replies    2020-11-27 01:49:58 +08:00
    mouyase
        1
    mouyase  
       Nov 11, 2020 via Android
    不懂但是支持
    zjlletian
        2
    zjlletian  
       Nov 11, 2020
    Containerd 是基于 linux 的,你想说的应该是 windows 下的云端软件,你搜一下云端软件就知道了,好几年前比较火,不过这玩意儿已经凉的差不多了。。
    naoh1000
        3
    naoh1000  
    OP
       Nov 11, 2020 via iPhone
    @zjlletian 不是云端软件,是运行在用户电脑上的。看 Containerd 的 Readme.md ,这项目是支持 Windows 的。
    Cooky
        4
    Cooky  
       Nov 11, 2020 via Android
    沙盘不用禁止读写,直接把目录设成空的就完了
    0TSH60F7J2rVkg8t
        5
    0TSH60F7J2rVkg8t  
       Nov 11, 2020 via iPhone
    我估计实现不了,因为国产软件在 Windows 下全都用了驱动,驱动在 ring0 层,docker 的模式应该隔离不了
    jinliming2
        6
    jinliming2  
       Nov 11, 2020 via iPhone
    我觉得比较靠谱的是参考 windows 10 自带的那个 Sandbox 。
    LuJason
        7
    LuJason  
       Nov 11, 2020
    @jinliming2 windows 10 自带的沙盒好像不能保存,关闭后就销毁了
    Osk
        8
    Osk  
       Nov 11, 2020 via Android
    Windows 自带的沙盘,也是 hyper-v 。。。
    codehz
        9
    codehz  
       Nov 11, 2020
    我也在研究这个,但是这玩意没有文档,然后我测试了一下 container.dll 里的 WcCreateDescriptionFromXml 函数,大致研究出了一部分选项(里面文本是乱编的,肯定不能正确创建,但是至少试探出了能过解析的选项列表)

    然而,一旦传递给 WcCreateContainer 函数,除了 job 命名空间能创建之外,其他的全部爆炸。。。我打算回归手动使用 bindfltapi.dll wcifsapi.dll iphlpapi.dll 去折腾...
    前两个大概是和文件系统重定向有关的,后者用 SetJobCompartmentId 来管理网络命名空间
    注册表看起来涉及 \Device\VRegDriver
    挂载点似乎就是直接和 \\.\MountPointManager 通讯
    命名管道也是 \\.\Pipe
    lxilu
        10
    lxilu  
       Nov 11, 2020 via iPhone
    用标准账户运行
    Yangz
        11
    Yangz  
       Nov 12, 2020 via Android
    @naoh1000 不,那个“云端软件”不是指云端技术,而是有一个软件平台名字就叫做“云端软件”
    zjlletian
        12
    zjlletian  
       Nov 12, 2020
    @naoh1000 只是名字叫云端软件,并不是现在的所谓的云的概念,你去了解一下就知道了
    tankb52
        13
    tankb52  
       Nov 12, 2020
    @naoh1000
    2012 年的 windows 端软件了。
    可以看下面的链接介绍。

    http://xbeta.info/yunduan.htm
    http://xiazai.zol.com.cn/detail/37/366961.shtml
    systemcall
        14
    systemcall  
       Nov 13, 2020 via Android
    Windows 下有不同级别的容器。Windows Sandbox,win32 转制的 UWP,Windows Defend 应用程序高级防护是不同的级别,微软自己的文档有
    我想到一个方法,就是用 Windows Sandbox 来弄一块与宿主隔离的环境,里面再跑自己的容器
    Windows Sandbox 自己有文件夹共享、启动脚本、GPU 虚拟化这类功能。不能存盘不见得是坏事,只要对应用程序来说是有存盘的功能的就可以了,自己的沙盒漏沙了都不要紧
    给 Windows Sandbox 里面加进去存档的目录,启动时运行自己的沙盒就行了。不过没有试过在那里面加载没有签名的驱动,不知道能不能跑起来
    systemcall
        15
    systemcall  
       Nov 13, 2020 via Android
    @ahhui 不知道能不能把那些驱动丢到一个 VM 里面跑。驱动和主程序之间好像走的是 RPC 吧,不清楚这方面的东西。
    国产软件为了兼容 XP 和没有装显卡驱动的电脑,就算没有 3D 加速一样的跑。感觉丢到虚拟机里面可能还要快一些,因为没有多少文件给他们扫
    0TSH60F7J2rVkg8t
        16
    0TSH60F7J2rVkg8t  
       Nov 13, 2020 via iPhone
    @systemcall 这个问题我回答不了,不是驱动专家。可能要请教相关专业人士。不过国产软件带驱动也能在虚拟机里跑,但你如果本来要做 docker 的结果搞成了 vmware 的话,那工程可就浩大了
    codehz
        17
    codehz  
       Nov 14, 2020 via Android
    @naoh1000 containerd 的方案没窗口,只能用 ui 自动化 api 操作(
    muzuiget
        18
    muzuiget  
       Nov 16, 2020
    Windows 版的 Docker 还是虚拟机的,不用 Docker 了,直接虚拟机就行。
    naoh1000
        19
    naoh1000  
    OP
       Nov 16, 2020
    @muzuiget Docker 的 Containerd 已经支持了 Windows 的进程隔离(限 Windows 2019 )
    Joker123456789
        20
    Joker123456789  
       Nov 19, 2020
    可以研究下 ios 的 app 管理机制。
    codehz
        21
    codehz  
       Nov 19, 2020
    @naoh1000 #19 测试了一下,基础机制都有,只限 windows server 的原因大概是许可证的问题(
    搜索关键字 windows serversilo
    qsnow6
        22
    qsnow6  
       Nov 27, 2020 via iPhone
    不行就来一个虚拟机专门跑国产软件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3213 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
    ♥ Do have faith in what you're doing.