最近在看 vmware 、hyper-v 、wsl2 、docker 、sandboxie 、windows sandbox 等虚拟化相关的帖子。 然后听坛友讨论说 sandboxie 并不能防一些流氓软件读取,而且有穿透的危险。 而且我多少有些强迫症,总感觉安装太多软件 c 盘就不干净了(哈哈哈)
根据 win11 for Android 和 docker ,忽然想,有没有一种虚拟化方案,当安装一个软件时,实际上是安装在了一个极轻量的虚拟机中,打开关闭软件和正常没区别,每个软件环境独立,卸载软件不会有任何系统残留。
安全级别就像创建一个虚拟机然后在虚拟机内安装软件一样,区别就是操作软件像沙盒一样,虚拟机的启动关闭桌面什么的对用户无感知。打开的软件界面也和本机一样,就像 win for android 。
解决的痛点就是:
母系统绝对干净,删一个 app 就彻底消灭一个 app 。解救强迫症。
app 可以多开
虚拟机沙盒化,相对更安全
app 能更好的备份和移植,因为本身就一个虚拟文件。
因为底层是虚拟机,也许可以支持更多系统平台 app
不知道我表达明白没有。。。
我感觉目前应该是没有这样的东西。。毕竟 hyper 不像 docker 那么轻量,一个软件一个虚拟环境,也挺费资源的。
1
ltkun 2023-04-26 03:03:27 +08:00 via Android
snap
|
2
serafin 2023-04-26 03:32:26 +08:00
先不考虑性能问题,在 hyper-v 里建 N 个虚拟机,每台虚拟机只安装一个软件。但是你需要在各个虚拟机之间共享文件。如果不共享也要互传文件。这样也就没有更安全多少。
|
3
em70 2023-04-26 04:28:05 +08:00 1
自己写个脚本,传入安装包地址,自动复制一个虚拟机来,自动启动,自动把安装包拷贝进去,然后创建一个快捷方式启动这个虚拟机
|
4
xarthur 2023-04-26 04:43:44 +08:00
这个还用不上虚拟机,sandbox 就行,现在主流的系统应该都提供 sandbox 的机制。虚拟机的话太慢了,用户体验会很差。
|
5
Aloento 2023-04-26 04:58:20 +08:00 1
Xbox: 我懂我懂
|
6
ladypxy 2023-04-26 05:10:24 +08:00 via iPhone
thinapp ,这都多少年的技术了……
|
8
dingwen07 2023-04-26 06:56:44 +08:00 via Android
|
9
Chad0000 2023-04-26 07:05:52 +08:00 via iPhone
感觉这个会是一个趋势,尤其是 webassembly 如果完全成熟,加上 UI 集成,那么桌面软件就可以有自己的类 docker 环境。不受限于系统和运行时和 UI 。
|
10
kokutou 2023-04-26 07:41:55 +08:00 via Android
sandbox 嘛。。。
VMware 的 thinapp 微软的有个啥技术名字忘记了 还有以前的技术 云端软件 这个是不是暴露年龄了。。。 |
11
czwstc 2023-04-26 07:59:13 +08:00 via iPhone
你可以打开 windows 的内核隔离功能:
内存完整性是 Windows 的一项功能,可确保安全地设计和信任在 Windows 内核中运行的代码。 它使用硬件虚拟化和 Hyper-v 来防止 Windows 内核模式进程注入和执行恶意代码或未经验证的代码。 在 Windows 上运行的代码的完整性由内存完整性进行验证,从而使 Windows 能够抵抗恶意软件的攻击。 内存完整性是一种强大的安全边界,有助于阻止许多类型的恶意软件在 Windows 10 和 Windows Server 2016 环境中运行。 |
12
cxh116 2023-04-26 08:18:18 +08:00 via Android
虚拟机也有逃逸问题,没有绝对的安全。
|
13
springwood 2023-04-26 08:29:18 +08:00 via iPhone
@Chad0000 然后每个 app 都好几百 MB 嘛
|
14
cat9life 2023-04-26 08:41:14 +08:00
以前微软有个 app-v
|
15
ho121 2023-04-26 08:43:46 +08:00 via Android
Linux 下的 Flatpak
|
16
wy315700 2023-04-26 08:46:41 +08:00
这不就是 iOS 做的事情吗。。
|
17
nothingistrue 2023-04-26 10:29:05 +08:00
软件是运行在操作系统上的,你要的这种技术首先是要操作系统支持。目前就有这种方式,IOS 、Linux Docker 、Xbox 。只是这些都不具备通用性,IOS 仅使用苹果生态,Linux Docker 就算在 Linux 领域也不适合全部程序,Xbox 就更特例了。
通用性的尝试也有,Windows UWP ,死了。这引申出来了另一方面的要求,应用开放商的支持。你再好的技术,应用开发商不支持,都是白搭。 |
19
lower 2023-04-26 10:34:15 +08:00
当年桌面软件这种虚拟化、绿化的技术方案和产品很多的,不过大多数有版权问题,很难解决;
再后面桌面软件不火了,web 或者命令行这类的,就是容器化的天下了…… |
20
Rache1 2023-04-26 10:46:43 +08:00
装在虚拟机,然后用 Remote App ?
😆 不过实际用起来,还是有些别扭 i 。 kimmknight/remoteapptool: Create and manage RemoteApps hosted on Windows 7, 8, 10, XP and Server. Generate RDP and MSI files for clients. https://github.com/kimmknight/remoteapptool |
21
yidinghe 2023-04-26 10:51:01 +08:00 via Android
你可以用虚拟机装个 tiny10/tiny11 ,它们占用内存较小。
|
23
cheng6563 2023-04-26 11:27:35 +08:00
VMWare 有个 Unity 视图
|
25
Chad0000 2023-04-26 11:57:26 +08:00
@springwood
如果是基于 Docker 就会是这种情况。所以我才说可能需要基于 WebAssebmly 哈。当然现在 HTML 或浏览器已经是一种事实基准了。 |
26
documentzhangx66 2023-04-26 12:40:01 +08:00
你需要的不是虚拟化,而是容器沙箱。
容器性能比虚拟化强得多,加上你要的沙箱功能,完美了。 |
27
dangyuluo 2023-04-26 13:08:09 +08:00
Multipass 然后 alias?
|
28
verrickt 2023-04-26 13:12:21 +08:00 via Android
uwp
|
29
VYSE 2023-04-26 14:03:36 +08:00
浏览器 HTML , 小程序,乃至 Android 任何 APP 都是部分虚拟化的并满足你最后的痛点
|
31
yrj OP @documentzhangx66 对对对,我就是这个意思
|
33
hyperbin 2023-04-27 08:25:44 +08:00 via Android
其实 Windows 有自己的类似 Docker 的容器技术
|
35
hyperbin 2023-04-28 12:15:23 +08:00 via Android
|