如何在没有任何操作系统虚拟化的情况下在Windows平台上运行Linux应用程序。 假设我们在Windows机器上安装了一个linux软件,可以通过下面提到的方法在Windows上成功运行:
通过在任何操作系统上创建虚拟地址空间,可在Windows上运行普通的Windows应用程序。程序加载器将应用程序所需的库从物理驱动器加载到虚拟内存地址空间。当需要使用文件系统API时,所有与应用程序相关的库都会被加载。
现在让我们以不同的方式,而不是在本地系统上创建虚拟地址空间,我们可以在不同的机器上创建一个能够运行应用程序的进程地址空间。在我们的例子中,为远程linux机器而不是本地windows机器上的linux应用程序创建地址空间。所有文件系统访问都可以在远程计算机上获取并传输到本地Windows计算机。这样linux应用程序就位于本地windows上 机器,在远程linux机器上创建进程地址空间,在本地windows机器上访问文件系统。所有与文件系统相关的apis都可以远程连接并路由到本地计算机。 Linux应用程序UI可以在linux机器上捕获并发送到本地Windows机器上显示。
通过这种方式,不同的平台应用程序也可以在其他平台上运行,而无需操作系统虚拟化。您对此方法有何看法以及可行程度如何?这种方法是否存在任何大错,使得这种方法不可行。
答案 0 :(得分:0)
您在那里使用的那个小词 - API
意味着将操作系统的整个系统调用集转换为另一个。调用创建套接字连接或文件锁定等目录,一切都改变了。你已经在这里讨论了内存,GUI有自己的调用,驱动程序和网络也是如此。
到6年结束时,为了实现所有这些,在打包和捆绑时,你会编写的那百万行代码将被调用;惊讶,惊讶 - 一个管理程序。