适用于 MS-DOS 的 Bash?

适用于 MS-DOS 的 Bash?

这个问题来自询问 Ubuntu 网站


根据 GNU 指向 Bash 开发人员的链接:

Bash 是 GNU 操作系统的 shell,即命令语言解释器。该名称是谍影重重这是对当前 Unix shell 的直接祖先作者 Stephen Bourne 的双关语,它出现在第七版贝尔实验室研究版 Unix 中。... 虽然 GNU 操作系统提供了其他 shell,包括一个版本的韓軟體,Bash 是默认 shell。与其他 GNU 软件一样,Bash 非常易于移植。它目前几乎可以在所有版本的 Unix 和一些其他操作系统上运行 - 有独立支持的移植版本操作系统、OS/2 和 Windows 平台。

我知道 Windows 平台支持,目前是使用 WSL 实现的,WSL 代表 Windows Subsystem for Linux,它本质上是一个在 Windows 下运行 Linux 的虚拟机,具有完整的内核。然后通过 Windows Terminal 应用程序模拟终端。除非这里指的是字面上的 Windows 端口,这也是我希望看到的。OS/2 端口基本上是 Mac OS 和类似的,Apple 生产的系统基于 Unix,如 Linux,因此在这里包含 Bash 是有意义的。但什么是操作系统端口?我从来不知道有 MS-DOS 端口,但在网上找不到任何相关信息。

DOS shell 则完全不同,它是由 IBM 开发的,最初是为了证明概念,他们展示了个人计算机可以按照简单的命令轻松地处理数据。毫无疑问,它受到​​了比 DOS 更古老的 Unix shell 的启发。DOS 的第一个商业版本随后由 Microsoft 制作,标记为 MS-DOS,第一个版本甚至不支持文件夹结构,只支持文件。第一台兼容 MS-DOS 的计算机甚至没有硬盘驱动器,只有软盘驱动器。两个软盘驱动器,一个用于系统磁盘(MS-DOS),另一个用于数据磁盘。系统驱动器标记为“A”,数据驱动器标记为“B”。然后添加了硬盘,由于驱动器号“A”和“B”已分配给软盘,因此驱动器号“C”被选为永久系统存储磁盘,这就是历史,从历史上看,Windows 中的驱动器从“C”开始,除非它是软盘驱动器,这在今天仍然有效。

我无法想象 Bash 在 MS-DOS 上运行,说实话,我很想看看它的实际效果。我有一个 MS-DOS 虚拟机,所以你们能给我提供一些方法来下载 MS-DOS 版本的 Bash 吗,那么我就可以把它安装在我的 MS-DOS 虚拟机中并尝试一下吗?除非这指的是 MS-DOS 的实际命令提示符,它最初是从 Unix shell 中汲取灵感的,但在处理命令的方式和内部命令集合方面却有很大不同。

我也想尝试在 MS-DOS 上使用 Norton Commanded,但这不是这个相当有趣的问题的主题。


我在 Ask Ubuntu 上的原始问题中忘记提到了(由于与主题无关,该问题已关闭),我有 MS-DOS v6.22,对我来说这是最值得注意的版本。它不是最新版本,但它是 MS-DOS 的最新官方版本。更高版本包含在 Win32 环境中。

答案1

MKS 工具包是移植到 MS-DOS 的各种 Unix 工具的发行版,其中包括 Bash 和 Korn shell。

我知道 Windows 平台支持,目前是使用 WSL 实现的,WSL 代表 Windows Subsystem for Linux,它本质上是一个在 Windows 下运行 Linux 的虚拟机,具有完整的内核。然后通过 Windows Terminal 应用程序模拟终端。除非这里指的是字面上的 Windows 端口,这也是我希望看到的。

Windows 端口也不是指 WSL – 它是一个本机 Win32 .exe 应用程序;有几个,例如 Cygwin 附带的或 MSYS/MinGW 中的(与 Git 捆绑在一起的)。

你不需要类 Unix 内核来运行 Unix shell。与 DCL 不同,Unix 中的 shell 是一个非常普通的程序(与 Python REPL 等没有什么不同),而 Windows 具有以下功能足够相似来移植诸如管道之类的东西。

OS/2 端口基本上是 Mac OS 和类似的,Apple 生产的系统基于 Unix,如 Linux,因此在这里包含 Bash 是有意义的

不,IBM OS/2 实际上与 OS X 和经典 MacOS 都没有任何关系。(经典 MacOS 是不是基于 Unix;它是一个完全不同的野兽。)

相关内容