rra*_*azd 73 windows-7 operating-systems ms-dos
我即将开始操作系统课程,作为 Apple 用户,我对 Windows 操作系统的底层细节不是很熟悉。我想知道,MS DOS 是否仍然与运行在顶部的 Windows 一起使用,还是现在只使用 Windows 作为操作系统?我有点困惑,因为我在某处读到 MS-DOS 用于启动,但 Windows 内置了所有其他操作系统功能,因此用于所有其他操作系统操作......
Jde*_*eBP 143
当涉及到 Microsoft Windows 时,有两种不同的谱系,当人们写关于一个谱系的东西而他们已经了解另一个谱系时,这无济于事。
当人们错误地谈论 Windows NT 中的“DOS 提示符”时,也无济于事,甚至在此处的答案中也发生了这种情况。除了提示的是命令解释器而不是操作系统这一事实之外,这将“DOS”与“文本用户界面”和“命令解释器”混为一谈,这两者实际上都不是 DOS 的同义词。DOS 是一系列操作系统:MS-DOS、PC-DOS、DR-DOS、FreeDOS、OpenDOS 等等。
如果在 Windows NT 上打开了一个命令提示符窗口,那么它几乎总是在运行CMD,这是 Microsoft 在框中提供的默认命令解释器,它是一个普通的文本用户界面 Win32 程序。没有“DOS”,也没有 NTVDM。只有一个 Win32 程序与其 Win32 控制台对象对话。而事实上对于很多可以在Windows NT上运行的TUI程序,包括微软各种资源工具包中的所有工具,图中的任何地方仍然没有DOS的味道,因为这些都是执行Win32控制台的普通Win32程序我/O,也是。
具有讽刺意味的是,鉴于 Windows NT 3.1 于 1993 年发布,Windows NT 谱系实际上是不基于 DOS 的 Windows-is-the-operating-system 系统,1990 年代中期的所有人都试图说服DOS+Windows 95 的世界。
并且,18 年后,我们仍然试图让一些人明白 Windows NT 不像 DOS 那样工作,而且从来没有。☺
Ran*_*son 21
不。 在那些带有“NT 内核”之前的所有 Windows 版本更像是 DOS 之上的 GUI。随着 Windows XP 的引入,NT 变得尤为普遍(Windows Vista 和 Windows 7 也都使用 NT 内核),因此不再需要使用 DOS 作为底层操作系统。
32位版本的Windows还有DOS提示符,command.com在运行对话框中输入即可运行,可以运行大部分老式DOS程序。所有版本的 Windows 都有一个命令提示符,可用于运行批处理文件和类似 DOS 的命令(通常是旨在与 DOS 风格的控制台交互的本地 Windows 应用程序)。64 位 Windows 无法运行 DOS 应用程序,因为它不支持 16 位进程。
您可能最好将命令提示符视为更像是可用于从命令行运行 DOS 程序和/或启动 Windows 程序的专用应用程序。
注意:在引入 NT 内核之前,术语“DOS 提示符”通常用于描述“命令提示符”。尽管今天许多人仍然使用术语“DOS 提示符”(因为他们使用它来运行许多相同的命令,这些命令最初称为“DOS 命令”,通常在 DOS 环境中可用),但术语“命令提示”在 Windows 的 NT 变体中在技术上是正确的。
更像是对 Randolf 的回答,但他不是唯一一个,反复混淆命令行界面和DOS。
请注意,许多 [DOS] 和 [MS-DOS]标签都存在同样的错误:MS-DOS 最初只有一个文本模式,一个command.com对我们许多人来说称为+ norton命令的命令行界面,以及一个带有框架的本地文本模式窗口,使用 ansi.sys 绘制,但不仅可以通过键盘控制,还可以通过鼠标控制,而且使用箭头键和热键也更容易控制。
然后 Windows 建立在 DOS(2.0、3.0、3.1、3.11)之上,其中 DOS-Box 的图标重新出现在 Windows 内部,作为 Windows 内部命令界面的名称。
但是在 Windows-NT 和 Windows-95 或 -98 MS-DOS 中被放弃了,但命令解释器cmd.exe(cmd32.exe)仍然存在,具有相同或几乎相同的语法和关键字。但这是一个在 Windows 中运行的程序,就像其他文本样式的命令解释器,如 BASIC、irb (Ruby)、scala-repl、psql (Postgresql)、sqlplus (oracle)、bc、R、rhino 等,等等,在多个平台上运行。
称这种 MS-DOS 风格是一种误导,因为 DOS 或 MS-DOS 而不是最初提出它的那些。它的年龄要大得多。
即使在 Windows 上,它也不限于运行 DOS 命令——批处理文件写入的常见做法是在启动 Windows 程序之前指定一些参数。例如,为 Java 程序设置 CLASSPATH、JAVA_HOME、java 参数(如 -Xmx 等)。
许多人认为命令行界面是旧时代的遗物——他们不知道通过几次按键处理数千个文件的能力。他们也不知道 wsh 和 monad。但是对于专业人士来说,Windows 上的命令解释器几乎和 Unix 或 Linux 上一样有用。它不是那么出名,但它对许多管理员来说是必不可少的。
甚至还有一个 gnu-toolchain 端口,带有 sh.exe 和 sed、awk、bc、tail、rev、cat 以及所有这些作为本机 win32 应用程序。
也许你可以在 cmd.exe 下运行旧的 DOS 程序,但是你不能在 DOS 模式下运行 Windows 程序,所以不要一直告诉人们,cmd.exe是DOS - 它不是。它不像DOS 那样。你的意思是,是一个interactive command-line program,一个command-line interface。
几乎总是误导性的术语。它可能适合业余爱好者,但如果你想让你的听众理解你在说什么,你应该问自己:它是否仅限于一个特殊的操作系统,仅限于 DOS?CLI 风格最好称为“DOS 风格”吗?这在历史上是正确的吗?您的听众是否完全了解 DOS?对理解有帮助吗?那些程序真的能在 DOS 上运行吗?
你需要正确的表达方式,像外科医生的刀一样锋利,来解释复杂的事情。错误的表达会在听众的大脑中引起错误的印象。马虎的表达比没有更糟糕。避开它们。使用CLIif命令行界面是长你输入。
纠正 SU、SE 和其他方面的误导性标签。