如何在 DOS 上同时运行多个联网应用程序?

如何在 DOS 上同时运行多个联网应用程序?

在科学方面,我正在开发适用于 DOS 的 Vagrant 盒。虚拟机需要支持远程命令执行服务,例如 sshd 或 telnetd,以便管理员可以自动运行 COMMAND.COM 脚本和单行命令。虚拟机还应运行 FTP 服务器,以便管理员可以将文件复制到主机或从主机复制文件。

这并不容易,但事实证明 FreeDOS 有一个复古程序员社区,他们好心地提供了一种 telnet 服务器 (rmenu) 以及一个 FTP 服务器 (来自 mTCP 的 FTPSRV)。其他常用工具(如 rsync、wget 和 curl)对 DOS 的支持程度各不相同。

rmenu 和 FTPSRV 似乎都可以工作,但前提是其中一个直接从主 COMMAND.COM 上下文运行。当 FTPSRV 或其他网络应用程序(如 wget)通过 rmenu 运行时,它们无法成功建立网络连接。这是 rmenu 的一个特殊限制,还是 DOS 很难同时将多个应用程序绑定到端口?

目前使用 FDNET 将客户机连接到 VirtualBox 网络,以防万一。

答案1

如何在 DOS 上同时运行多个联网应用程序?

你不能。
维基百科简单解释一下:

DOS 是一个单用户、单任务的操作系统,其基本内核功能是不可重入的:每次只有一个程序可以使用它们,并且 DOS 本身不具备允许同时执行多个程序的功能。

然而

DOS 不是多任务操作系统。但是,DOS 提供了终止并驻留 (TSR) 功能,允许程序驻留在内存中。

因此,如果“联网应用”被写为 TSR,那么您就可以实现一定程度的并发。

相关内容