dos工具箱怎么用(在DoS下运行的软件介绍)

概要

有据可查的是,在其所有早期版本(至少95个)中,Windows的一大卖点是能够运行DOS应用程序,尤其是一次运行多个应用程序。我们中的大多数人都可能在某个时候做到了这一点,除非您还很年轻,以至于您使用的第一个Windows是64位,而他们删除了DOS功能。
dos工具箱怎么用(在DoS下运行的软件介绍)

尽管在无数有关Windows成功案例的评论中都提到了此功能,但是它的实际功能几乎完全没有在线记录。当我自己查看它时,我发现体验在早期Windows版本之间实际上发生了很大变化,在某些情况下以令人惊讶的方式发生了变化。

全面探索了从Windows 1到Windows 95的所有内容之后,我想记录一下我所学到的一切。如果您只是在1995年以后才经历过,那么其中的一些可能会让您感到惊讶。

我已经深入到了比我可能需要的更深入的细节,但是如果我不深入,那么这里根本没有太多要写的东西。这将是对五个版本Windows的特定功能的高度乏味的描述,并且是一个相当直观的版本,因此即使您以音频形式收听此屏幕,我也建议您遵循屏幕截图。

原则

值得讨论所有这些工作原理,以便您了解此处要克服的挑战。一次运行多个DOS程序的能力是一个非常巧妙的技巧,因为该软件预示着一个计算机时代的来临,而该时代几乎没有1978年Apple []所做的那样。如果要跳过此步骤,请继续 。

问题的根源是很早以前,即1981年,IBM PC的基本体系就已经确定了。在一个10兆字节的RAM可以算作一场演出的世界中,没有太多的“开销”空间。而且,除了在计算机世界的高端市场(大多数PC购买者相距甚远)之外,您要同时运行两个程序的想法通常是不现实的。您需要获得每一点点的内存,几年后当内存变得更便宜时,更改任何内容为时已晚。

在市场上上市仅两年后,MS-DOS便成为PC *的首选操作系统,并且开发了一个巨大的软件稳定版,其中的每一点对于某人某个地方都是必不可少的,并且不易替换。因此,这开始了技术历史上最长的尾巴之一,因为PC行业和微软开始扭曲自己,力图在不破坏与旧软件的兼容性的同时,继续推动高级功能的发展。

*(特别是,因为存在用于其他体系结构的MS-DOS和用于PC的其他OS)

因为DOS是在类似于70年代后期的限制条件下开发的,所以给我们带来了“小盒子”(C64,Apple [],ZX Spectrum等),因此它的构建并没有考虑到任何“监督”功能。换句话说,当前正在运行的程序之上没有抽象级别。DOS比我们现在所认为的操作系统更像是一套工具-具体来说,它没有“进程管理”。实际上,根本没有“过程”的概念。

当机器启动时,DOS的一部分被认为是“ OS”,即用于访问磁盘驱动器,将文本写入屏幕等的代码,被复制到内存中,然后将执行移交给命令解释器COMMAND。COM,它是一个与其他应用程序一样的应用程序,此时您可以开始输入使用计算机的命令。

此时,DOS不再以任何有意义的方式“运行”。该代码是“常驻的”,这意味着它存在于计算机内存中,但处理器未执行任何代码。相反,CPU忙于执行当前程序,如果您在命令提示符下,则PC正在执行的所有代码都是COMMAND.COM的一部分。当您启动另一个应用程序时,COMMAND.COM被腾空并由该另一个应用程序替换。

换句话说,在运行应用程序时,DOS几乎完全无法使用。执行返回到DOS本身的唯一时间是当应用程序从DOS请求“服务”时,例如访问磁盘驱动器,这时它将告诉CPU为此执行一个DOS存储的例程。完成后,控制权将返回给应用程序。通常,这意味着当前程序对PC执行及其内存具有绝对控制权。实际上,它可以选择覆盖DOS本身,从而将其从内存中清除掉,而DOS不能对此做任何该死的事情。

当前正在运行的应用还可以选择直接与硬件对话。DOS的全部目的是将类似的东西抽象化,因此程序不需要知道它们所运行的系统的详细信息,但是由于IBM PC在其早期版本中是极其一致的硬件,因此对于 开发人员可以利用它,并且经常有原因-也许是性能-绕过DOS并直接执行操作。

DOS提供了磁盘访问例程,但是如果需要,该应用程序可能会被它们立即吹灭并将命令直接发送到软盘驱动器。DOS提供了打印文本和清除屏幕的例程,但是该应用程序可以直接将其写入视频内存。我无法说出这种行为实际上有多普遍,但它确实并不罕见,它也带来了一个更大的问题-DOS应用程序只希望对系统进行完全控制。

如果您一次运行两个DOS应用程序,它们将相互on脚,因为每个人都认为它负责整个计算机。第一个将数据存储在与第二个相同的位置,第二个将存储程序代码,因此一个将覆盖另一个并使之崩溃。因此DOS是一个单任务操作系统-您可以一次运行一个程序,而要运行另一个程序,则必须退出,返回到命令提示符,然后启动另一个应用程序。

因此,如果您正在Microsoft Multiplan中工作,并且想在dBase中查找某些数据,则必须完全退出Multiplan,然后启动dBase,它将接管系统并完全覆盖以前的应用程序。要返回到原来的位置,您必须退出dBase,重新启动Multiplan,加载文档并再次找到您的位置-在此过程中,完全忘记了您最初要做的事情,因为这涉及很多步骤和 需要这么长时间。

从一开始,PC用户就希望能够查看一个程序,然后迅速切换到另一个程序。从表面上看,这似乎意味着“一次运行两个程序”,这是我们现在要做的,但这还不是全部。但是,让我们来谈谈当今的工作方式。

多处理

明确地说,您不能在计算机上“一次”运行两个程序。有些人会称其为语义,但这实际上是很重要的,特别是在谈论80年代的PC时。

通过让独立的程序在独立的内核上运行,现代多核CPU可以非常接近真正的并行处理,但是,当然没有人拥有如此大的CPU,以至于每个进程只有一个内核。即使这样做,程序仍然必须共享其他资源-系统总线,硬盘驱动器等。必须仔细管理对这些资源的访问,以便一次只能有一个应用程序可以使用它们,并且必须在每个应用程序使用另一个资源之前先清理每个应用程序。否则,一个程序可能会将硬件置于下一个程序发送的命令将其置于不可用状态的状态,并使计算机崩溃或损坏数据。

即使有了我们所有现代的流水线技巧,您仍然面临一个基本问题,即CPU和一台计算机总体上具有有限的物理硬件,并且无法将某些献给正在运行的每个程序。当运行的进程多于芯片时,剩下的唯一选择是通过分配每个进程使用硬件的时间来共享资源-这是计算中最古老的概念之一,可以追溯到 五十年代末。

该过程的基础很简单:在任何给定的时刻,一个程序几乎都可以控制整个系统,以执行其代码并使用所有资源,然后在执行了一段时间后进入暂停状态 然后将控制权移交给下一个程序,该程序将执行其工作,然后移交给下一个程序。这将以循环方式继续进行,以便每个程序在每秒的特定时间使用硬件。

现代的实现方式使该过程变得高效,所有复杂的技巧使该过程变得高效,但基本原理从未改变。这就是您的PC现在的运行方式。

实现这一目标要克服的一大障碍是程序不只是在真空中执行指令。在执行代码时,会有副作用。一些是CPU内部的值,例如CPU寄存器的状态和指令指针的当前位置。这称为“ CPU状态”,并且特定于每个正在运行的程序。从一个程序切换到另一个程序时,必须保存该信息(称为“上下文切换”),并在返回时将其还原。存储此信息会花费额外的时间和内存。

另一个障碍是其他硬件的状态。如果有两个程序正在与硬盘驱动器通信,则不能让它们在每次获得CPU控制时都盲目地发出命令。第一个进程可能会开始读取数据,第二个进程可能会因写入数据而中断,从而使硬盘驱动器控制器混乱。因此,从一个进程切换到另一个进程时,还必须保存其他硬件资源的状态-甚至可能要延迟切换任务,直到这些硬件请求完成。

如果您有足够的RAM来存储此状态,并且您的应用程序不需要每秒太多的周期即可显示响应,则可以执行所有这些操作,并且用户会觉得他们在“一次运行多个程序”。

现在,在业务应用程序中-最初几十年的计算驱动力-这种类型的实际“多处理”并不像简单的可用性那么重要-用户只是不想关闭一个程序来打开另一个程序, 就像他们在DOS期间所做的一样。最终,这就是目标:计算机运行速度是否完美,程序是否可以同时运行都无关紧要,用户不必为了查看另一个程序而不得不在一个程序中丢掉所有工作。

多任务

从计算开始,这种愿望当然是巨大的。谁想一次被困在一个程序中?因此,几乎从IBM PC的早期开始,就已经创建了用于使任务切换获得不同程度成功的软件。

早期尝试

微软实际上发布了具有真正的多任务支持的DOS版本,但是通常需要专门为其编写软件。您可以在此处看到它-EDLIN正在运行,并且可以通过按Alt并从菜单中进行选择来切换到新的命令提示符,或者可以启动新任务。

这并没有解决核心问题-您想同时运行1983年老式的dBase II副本和Multiplan的旧副本。由于这些程序都不是针对此版本的DOS开发的,因此它们无法发挥作用。这就产生了一个鸡与蛋的问题,其中没有为多任务DOS写任何东西,因此没有人会购买多任务DOS,并且由于没有人拥有该DOS,因此不会为此写任何东西。

即使软件确实已针对新的操作系统进行了更新,但在任何人开始尝试解决此问题时,用户已经在他们购买的软件上花了很多钱,而且他们也不想重新购买该软件。用户需要的功能是在任何老式的两个应用程序之间共享计算机,而这两个应用程序都认为它们是计算机上唯一运行的程序。

IBM产品TopView是完全解决此问题的另一种早期尝试。它是一个文本模式程序,而不是图形程序,但它允许一次运行多个DOS应用程序,它们的文本输出被转移到共享“桌面”上的单独“窗口”中。在这里,您可以看到它同时运行fdisk和GWBASIC,并且一次执行-当我在fdisk中执行操作时,GWBASIC中的代码继续增加一个数字。因此,这是一种真正的多处理方式。

仅当应用程序“表现良好”时,TopView才起作用。这是您在该主题的所有文章中都会看到的一个术语,它的意思是该应用程序没有进行任何直接的硬件访问-它对所有内容都使用DOS“系统调用”,这为TopView提供了“拦截”的机会。这些呼叫,并出于自身目的将其重定向。

例如,当一个程序写到屏幕上的字符位置2,10时,TopView更改了坐标,因此它们进入了为该应用程序创建的“窗口”。这样做的好处是,您可以一次将处理器移交给每个应用程序,然后让它们做自己想做的事情,并且结果始终可以安全地返回到TopView的手中,在那里可以弄清楚它们在哪里 打算去。

最大的问题是,例如,当您的应用程序触摸直接视频内存时,许多应用程序就停止了这种操作,从而使它们与这种方法不兼容。另外,TopView也很烂。在撰写本文时,我用了大约20分钟,过程的每一步都令人不快。限于textmode并不能帮助解决问题。

任务切换器

有一类特殊的商业产品称为“任务切换器”,它允许您运行多个程序并使用alt tab之类的快捷方式在它们之间进行切换,实际上,您将看到,实际上,早期版本的Windows往往功能不多 比这个。这些程序无法同时运行-在任何给定时刻,一个程序都可以完全控制屏幕和所有硬件资源,然后当您切换任务时,该程序被完全挂起,而另一个程序接管了该程序。

我不知道这些程序的受欢迎程度,但是它们肯定有他们的支持者-因为它们没有试图“拦截”应用程序的输入/输出,而是让它们像完全由系统控制一样运行 ,我认为它们与行为不佳的应用程序更兼容。

但是,如果您愿意的话,当您要运行的程序表现得更差时会发生什么呢?由于这些切换器将需要“手动”保存所有硬件资源的状态,因此它们必须预测正在使用的硬件。如果程序做了切换器不准备做的任何事情,例如更改图形卡配置寄存器,则系统可能已进入无法使用的状态,甚至在任务切换发生时崩溃了。

而且,尽管许多DOS应用程序都足以吸引他们注意它们在内存中的位置,并且仅更改自己的数据,但没有任何阻止任何应用程序遍历系统内存和破坏其他程序的行为。

对于这些切换器的工作方式,我可能没有确切的答案,但可以证明的是布丁-虽然您可能可以告诉我1985年在Mac上安装的OS的名称,但是您绝对可以说出运行多个DOS的最流行方法 在1995年PC上运行程序时,几乎可以肯定地说,您不能立即使用DOS任务切换器或多任务环境。至少有六打,现在都不记得了,这告诉我们他们没有生意兴隆。

您实际上可以命名其中之一,尽管您可能不知道。对于Windows的第一个版本,Windows运行多个DOS应用程序的能力是“任务切换”和TopView方法的混合。兼容的应用程序可以在Windows中同时运行,而想要写入屏幕等的应用程序则在运行时放弃了对硬件的控制。大多数人从未见过或听过这些版本的Windows的事实也说明了这种方法对Microsoft的不利影响。

总而言之,我们在这里讨论的技巧很难实现。采取原本打算使用计算机全部资源运行的程序,然后试图使它们相互共享,这是非常困难的-直到出现专门为此启用的硬件更改为止。

硬件进步

最初的IBM PC CPU是Intel 8088,这是其或多或少的旗舰8086芯片的一种降低成本的形式,并且在整个80年代,它始终是该平台的压倒性定义。尽管它可能是1981年的高级处理器,但回想起来,它看起来就像是现在的快速计算器,没有很多面向目标的高级功能。尽管英特尔在整个80年代发布了几款速度更快,更先进的处理器,但大部分PC软件都针对8086/8088。较新的处理器具有向后兼容模式,允许它们以更快的速度运行8086软件,但是实际上只有少数程序针对这些较新的芯片。

286

80286是Intel对8086的消费者追随者,它引入了一种更为先进的操作模式,称为保护模式。其全部细节极其复杂,但是用最简单的术语来说,保护模式允许多个程序共享一台PC,而不会互相干扰。每个进程都被锁定在一个内存区域中,它可以在其中执行任何操作,但是尝试到达该区域之外会导致触发CPU级别的警报,这时操作系统-实际上具有更高的特权 CPU本身内部的最高级别-允许接管执行并决定如何执行。

此功能使您可以运行多个程序,而不必担心一个程序可能会覆盖另一个程序的内存或使整个系统崩溃。如果某个程序试图访问其不允许访问的内存,CPU将停止它,并且操作系统可以介入并做出判断调用-如果认为合理,则允许访问,将访问重定向到内存中的其他位置,或者 停止进程并终止它。

这是一种了不起的功能,在1982年发布时可能会在一夜之间彻底改变计算,只是到那时为止,已经有了一个庞大的DOS软件生态系统。保护模式完全改变了系统的工作方式,在这种状态下几乎没有DOS软件可以正确运行。因此,相反,这些芯片主要降级为在向后兼容模式(称为“实模式”)下运行,尽管它们可以在保护模式和实模式之间切换,但速度极慢且笨拙,因此对PC世界影响不大。

386

80386是英特尔x86处理器产品线的第三次重大飞跃,发布时很容易就完全错过了将改变IBM PC完全工作方式的功能。我想我实际上在杂志上找到了一些有关386的文章,它们确实做到了这一点-认为它是速度和指令集的简单提升,对平台的发展没有真正的影响。

但是,功能列表中包含一个称为Virtual 8086模式的功能,对于当今的DOS应用程序生态系统而言,此功能实际上是向前迈出的一大步。它修复了保护模式下的问题,从而使CPU可以通过(毫无疑问)在虚拟机中运行DOS应用程序来同时运行DOS应用程序和新的保护模式应用程序。

这非常类似于我们当今使用的虚拟机。每个DOS应用程序都被束缚到内存中的空间中,据它所知,它是计算机上唯一运行的程序。例如,当它尝试写入8088台机器存储视频的内存中的位置时,CPU会捕获这些写入尝试并向操作系统发出警报,操作系统可以将它们重定向到设备驱动程序或将它们放置在内存中的另一个完全不同的位置。因此它们只能在操作系统选择时显示。

实际上,主机的所有硬件都是仿真的-操作系统提供了“伪”图形卡,“伪”键盘,“伪”硬盘等,所有这些都翻译了1981年的钝性,简单化请求 时代的软件融入了现代的,具有社区意识的软件的礼貌,合作的讨论中。通过这种方式,多个并发的DOS应用程序可以在这些小小的围墙花园中运行,据他们所知,每个应用程序都有一台完整的PC,而实际上它们的输入和输出是完全模拟的-Truman Show用于老年软件。

这就是我们大多数人记得的Windows的工作方式。通过利用386的功能,Windows能够同时运行多个DOS应用程序。微软尝试在没有386功能的情况下实现这一目标,但是,正如您将看到的那样,它看起来并不漂亮-它脆弱,乏味且受限制,因此未能将Windows引入市场。奇怪的是,甚至没有在方程式中添加386即可解决此问题-在Windows获得任何尊重之前,它必须在整体用户体验上取得重大飞跃。

现在,让我们看看这是如何工作的。

Windows 1.0(1985年)

据我所知,Windows 1.0完全是个玩笑,这是一种象征性的努力,旨在履行Microsoft的承诺,仅此而已。是否曾打算在比公开技术演示更苛刻的任何情况下实际运行DOS应用程序值得怀疑。

它的问题之一是它没有重叠的窗口,而是使用了平铺窗口管理器。这看起来很令人不快,但考虑到所有事物,设计都令人惊讶。启动应用程序时,默认情况下通常会占据整个屏幕,其他应用程序最小化到任务栏中的图标-这是绿色区域,您可以在其中看到代表最小化MS-DOS Executive的软盘图标。但是,启动应用程序后,您可以将另一个图标拖到屏幕上以水平或垂直拆分视图,还可以调整这些拆分的大小以使其窗口适合其内容。然后,您可以按其标题栏拖动应用以重新排列并根据需要添加新的拆分。

在更高的分辨率下(虽然有可能,尽管很少见),这可能是一个可用的UI,但是我发现很难看待它,并且鉴于公众对Windows 1.0的反应,我想我并不孤单。当然,请注意,此操作系统有本机图形应用程序-实际上为Windows 1.0发布了一些程序,并且该API具有足够的稳定性,因此它们仍可以在很多以后的版本中运行。

至少可以说,我对这个版本的经验不了解。我花了几天时间设法使其完全正常运行,最终我发现您必须在DOS 3.3上运行它,否则它将以多种奇怪的方式破坏。我也在任何地方都找不到手册,因此我不得不部分根据非增强版Windows 2的文档(部分与之相似)来弄清楚它的工作原理。

DOS应用

因此,首先,我将尝试运行dBase II。这是1983年的一个非常古老但非常古老的PC应用程序,我想它在85年代仍会存在,尽管它在84年代被dBase III取代了。

这是您第一次将Windows用于其核心目的,因此,此过程对用户有何影响?好吧,这无疑是一条错误消息。您试图运行您多年来使用过的许多程序之一,并被告知Windows将运行,并且您收到一条错误消息,指出Windows无法找到文件,并且没有给出解释为什么这样做很重要。这是一个响亮的UX湿屁,没有骨头。

我找不到Windows 1手册,但是对于Windows 2,该手册部分是Windows用户指南中的163页,并且可以运行数十页,这是更容易理解的部分,因为该技术可以弄清楚如何运行 一个DOS程序在386之前的时代尚未自动出现。简而言之,用户将被带到旧课程学校并获得学位。

但是,如果我们刚刚打开,该应用程序将启动:

请注意,它以全屏模式运行-该应用程序占据了整个屏幕,就像它在DOS中正常运行一样,并且(我可以告诉)无法返回Windows或更改程序。

当您退出该应用程序时,它会一直停留在屏幕上,直到您按下一个键为止-这样,如果该程序在退出之前打印了某些内容,则可以在Windows再次接管屏幕之前先进行读取。您可以想象,如果某些应用程序没有这样做,它们将毫无用处。

以这种方式进行操作时,Windows只不过是目前这种类型的程序启动器,根本没有多任务处理。为了超越此范围,您需要一个程序信息文件-提到的丢失的“ PIF”。

程序信息文件

我上面向您显示的并不是Windows尽其所能。有更好的方法来运行DOS软件,但是它们需要用户方面的大量工作。

如果程序表现良好(叹气),则Windows可以以更现代的格式运行它们。以机智:

此处,dBase II在窗口中运行。它的更新速度比全屏运行时要慢,我猜这是因为Windows已经用自己的代码替换了BIOS例程来打印文本,该例程将每个DOS应用程序的文本输出存储在内存中的不同位置,并且它仅定期检查 用于更新和更新图形屏幕的内存。

在这种模式下,我还可以做其他事情,但我们很快会介绍这些内容。让我们首先看一下我是如何做到的。为了使该程序运行,我使用Pifedit.exe创建了一个PIF:

您可能知道PIF格式是继续用于Windows 95中DOS应用程序快捷方式的一种格式。这种格式起源于IBM TopView,从概念上讲从未改变过,只是在大多数情况下不需要Windows 95的用户干预。在这里,绝对是。

PIF主要告诉Windows应用程序的表现(叹气)。各种直接修改复选框会警告Windows有关应用程序某些部分的注意事项。这些选项中约有一半禁用窗口模式,并强制应用程序以全屏模式运行。大致执行以下设置:

首先,您必须提供可执行文件的名称,以便Windows知道何时使用此PIF-与Windows的更高版本不同,PIF不与磁盘上的特定文件绑定。如果您在计算机上的任何位置启动DBASE.EXE(或.COM),无论驱动器或文件夹如何,此PIF都会生效。

您还可以为应用程序指定一个“友好名称”,以便其显示的标题比文件名更好,并提供命令行参数和要运行的默认目录。

然后,我们可以选择告诉Windows该程序需要多少RAM,以及它需要多少RAM。这会影响Windows向程序报告的可用RAM数量,因此,如果将最小值设置为128k,将最小值设置为512k,而Windows发现有256k可用空间,它将向应用程序报告那么多。

现在我们有“修改”框:

屏幕复选框适用于直接写入视频内存的应用,并且仅强制采用全屏模式。

键盘适用于直接读取键盘并禁用所有任务切换快捷方式的应用程序-这意味着如果启用此功能,但应用程序不允许您退出,则您将永久停留在该应用程序中,直到重新启动。

内存用于两种情况:一种用于启动然后退出的应用程序(称为TSR),将其“驻留”在内存中,以便其他应用程序可以访问其代码,另一种是当您要运行占用大量资源的应用程序时 几乎所有系统内存,在这种情况下,Windows会将其自身交换到磁盘上,以为应用程序运行留出更多空间。

COM1和2很有趣;他们只是为该程序提供了对串行端口的独占访问权限,因此两个要使用同一端口的应用程序不能同时运行。令我惊讶的是,这还不适用于打印机,但我认为此时无论如何都应通过Windows后台打印程序处理打印。

接下来是程序切换选项。这触及了任务切换的机制。

为了使选项卡远离一个程序并进入另一个程序,Windows需要保存屏幕的副本,以便在调用该应用程序时可以将其还原。“文本”保留4KB,足以用于单个屏幕的文本。“图形/多文本”保留最多36KB的空间以保存位图屏幕。“预防”禁用切换,节省4KB。

屏幕交换应该是指打印屏幕的行为-但我无法在Windows 1中使用它。

在2.x中,这些设置允许您按Alt Printscreen来截图正在运行的DOS应用程序,这需要Windows保留一些内存来存储镜头。请注意,在文本模式下,屏幕截图将只是文本,您可以将其粘贴到例如 记事本,在图形模式下,它将是一个位图,您可以将其粘贴到例如 涂料。

我不确定为什么这行不通,也没有手册可供参考。

最后,您可以让该应用程序在退出时自动关闭-否则我们会得到一个“僵尸窗口”,稍后您将看到。

作为用户,您应该为要运行的每个程序手动创建这些PIF之一。Windows提供了一些小类:

这些当然是针对当时流行的第三方应用程序进行了优化,随着岁月的流逝,Microsoft会继续增加热情。此时,世界上有成千上万的DOS应用程序,因此,操作系统仅附带60个左右的DOS,用户几乎可以肯定需要经常创建自己的PIF。

全屏功能

如果使用PIF设置程序以使其在全屏模式下运行,则除了使用Alt Tab使其最小化之外,您没有太多便利。这是任务栏中的最小化dBase:

您可以启动dBase的多个副本并通过alt 跳出并在它们之间切换,然后单击所需的副本。这似乎是一个令人不快的过程-我似乎无法直接在程序之间进行alt tab转换;它只是突出显示该图标,然后我必须按Space键才能获得此菜单,然后选择“缩放”以重新打开该应用程序。一点都不顺利。

使用全屏应用程序似乎没有什么可以做的。在以后的版本中,这会变得更好一些,但是Windows主要是关于Windows的,因此这是大部分功能保留的地方。

窗口化能力

窗口模式赋予了许多新选项。在这里,我已经使用fdisk进行了测试,因为它是带有文本模式UI的非常干净的第一方Microsoft应用程序:

首先,如此处所示,我们可以在拆分窗口中与其他DOS应用程序或本机Windows图形应用程序一起运行。这非常局促,但是一对并排的窗口可能会有些有用。您可以继续启动进程,直到RAM用完为止-我在这里将其设置为3,但是对PIF进行一些调整后,我也许可以运行更多的进程。

应用执行完毕后,通常会像这样挂起;

奇怪的是,似乎并非所有程序都发生这种情况-有些程序(例如fdisk)会立即退出。我不确定这是否是因为他们正在向操作系统返回什么不同的退出代码或什么。这就是应该控制PIF中的“退出时关闭窗口”选项。

您可以最大化DOS窗口以填满整个屏幕,甚至覆盖任务栏,我相信您可以在该尺寸下获得80×25的完整显示。

通过在窗口中运行的应用程序,您现在可以使用鼠标以有限的方式与其进行交互。在这里,我已经从DOS窗口复制了一些文本并将其粘贴到Write中。

您也可以直接粘贴到DOS框中,您的文本将作为虚拟按键输入。这种互操作性是证明Windows存在的一个重要要点-例如,我可以复制在dBase会话中所做的复杂命令,并将它们保存在文本文件中以便经常重复使用,这可能是由称为“ TSRs”,但充其量是乏味的。

您会注意到有关该窗口菜单的某些信息-“关闭”选项显示为灰色。您会惊讶于得知在此版本的Windows中,如果没有DOS程序的配合就无法退出DOS程序?没有技巧,没有解决方法-无法完成。一旦启动了DOS程序,它就必须退出自己的自由意志,或者只是停留在运行状态。

另外,虽然我们可以一次打开一个程序的多个副本…

…一次只实际执行一次。当我从第一个单击到第二个时,它冻结,第二个开始运行。Windows仅将处理器时间用于一项DOS任务,这可能是因为不断卸载和重新加载多个应用程序的硬件上下文的复杂性太高而无法有效且可靠地执行。

到目前为止,我运行的应用程序与屏幕的交互方式非常简单-它们所做的只是打印文本。如果我们尝试运行更复杂的工具,则Windows会出现问题。这是Multiplan 4:

这会以全屏模式启动,但是如果我关闭了PIF中的“直接修改:屏幕”标志,则会得到一个空白的空白窗口,没有任何文本。我尝试运行其他任何尝试具有“文本模式GUI”样式的界面(例如DOS Edit或QBasic)的结果也相同。奇怪的是,当我按任意键时它也会崩溃-即使我全屏运行它,也会发生这种情况。只要有一个PIF,只要执行任何操作,它就会崩溃-如果删除PIF,它可以正常运行,但是在全屏模式下并且没有任务切换。

我应该指出的另一件事是,根本不支持彩色文本-这是fdisk在全屏模式下运行,而不是在窗口模式下运行。请注意,全屏文本为亮白色和灰色,但在窗口中,所有文本均呈现为黑白色。我不确定这是为什么-Windows支持颜色,并且此信息肯定存储在内存中,所以我不知道为什么他们不使用它。

易用性

如前所述,Windows 1并不是所有报告都不错,我会说不是。

话虽如此,它确实在一定程度上做了承诺。一旦创建了PIF,DOS应用程序只要足够基础就可以运行,并且在程序之间复制文本非常有用。但是,我扔给它的许多应用程序都不会在窗口中运行,而一个根本不会运行。

此版本不会将Windows放在地图上。暂时不会发生这种情况,但是让我们看看微软下一步将如何发展。

Windows 2.x / 286(1987-89)

注意:此操作系统有多个版本,包括2.03、2.1和2.11。

该操作系统的命名约定令人困惑。有几种版本,有些以“ Windows 2.0”出售,有些以“ Windows / 286”出售,有些以“ Windows / 386”出售。所有这些都是Windows 2.x的版本。

Windows / 286的名称并不表示此版本的操作系统需要286,它将在具有几乎全部功能的8088上运行,只是区别在于它不是386增强版本,但它确实支持扩展 内存,这是在286上推出的。

我将把Windows / 286和Windows / 386当作是不同的操作系统,但是它们是同时发布的,可以准确地说这两个都是在两种不同模式下运行的Windows 2。

2.x延续了Windows在市场上失败的趋势,但这并不是说它没有改善DOS应用程序的功能。实际上,整个过程都有很大的改进。

新的窗口管理器(具有重叠的窗口!)比以前的版本使用起来更加令人愉悦。我在杂志上发现了实际消费者正在使用的Windows 2的参考资料,我无法在Windows 1上说出来,因此让我们考虑一下这很可能是第一个有人打扰的Windows。

基本的“运行应用程序”过程没有任何改善:

全屏功能

没有PIF的应用会全屏启动,并接管整个计算机。这是Windows在“任务切换器”模式下运行的方式,与Windows 1.0一样,大多数情况下-它对程序的了解不足,无法尝试将其放入窗口中,因此将整个系统转让给它。与以前的版本相比,即使在这里也有新功能。

如果您习惯于Windows 95,则可以尝试在此时按Alt Enter,但是该键组合不会执行任何操作。如果您在Windows上使用DOS有很多经验,则可以尝试的下一个方法是Alt Spacebar,它可以执行以下操作:

当您按下该组合键时,Windows现在将注入此textmode菜单。您会注意到“恢复”选项不起作用-换句话说,您无法将此应用程序更改为窗口(Alt Enter在以后的版本中会执行此操作。)只有使用 PIF设置;您无法即时切换模式。

您还可以使用Alt Tab循环浏览正在运行的应用程序,并使用菜单栏向您显示要切换到的应用程序的预览:

请注意,标题显示为MS-DOS Executive-如果我放开Alt将会切换到的应用程序名称。选择此选项可以退出Windows,但是与Windows 1.0一样,如果不使用退出选项,仍然无法退出DOS程序-即使回到Windows之后,在DOS程序运行时也无法退出它 。

不再有“任务栏”区域,最小化的图标仅位于“桌面”的底部。通过最小化DOS程序,您可以像以前一样看到它。菜单允许您返回到应用程序,仅此而已。

现在,您可以从应用程序内使用菜单复制和粘贴文本,这是对只能在全屏文本模式下运行的应用程序的一项改进。为此,请按Alt 空格键,选择“标记”选项,然后使用箭头键导航光标并移动以选择文本。

在上面的图片中,我标记了我先前输入的命令。然后,我可以返回菜单,选择“复制”,然后再返回并选择“粘贴”,这会将文本重新输入为虚拟按键。如果输入了复杂的命令,则可以将其存储在剪贴板中,因此不必多次键入。这使用Windows全局剪贴板,因此我仍然可以使用它与Windows应用程序(例如记事本)交换文本。

可能最奇怪的是,当您通过选择应用程序自己的退出选项以正确的方式退出DOS应用程序时会发生什么。该应用程序结束并变成僵尸,如下所示:

您可能还记得,“非活动”一词保留了很长时间。当您在Windows 95或更高版本中退出DOS应用程序时,该窗口通常会切换到此“非活动”标题并保持不变,直到您将其关闭。这是有道理的,并且在Windows 1.0中,最好将Windows挂在这里,但是因为它没有将程序转换为窗口的能力-后来的版本可能会-这个死掉的应用陷入全屏状态 。按Enter不会像Windows 1.0中那样将其关闭。

此时,为了返回Windows,您需要按Alt 空格键或向下箭头键以调用窗口菜单并导航至“关闭”。如果您因逃避反射而打了Escape键,您可能只会停留在这里,看着黑屏上闪烁的光标,不确定发生了什么。这不是灾难性的,但是,这不是一个奇妙的用户体验。

窗口化能力

窗口模式没有直接改善,只是它受益于新的重叠窗口管理器。您可以在Windows 1.0中执行的所有操作都可以在Windows 1.0中进行。

应用程序结束时,窗口也会获得“非活动”横幅,就像在文本模式下一样,该横幅比括号更清晰。

易用性

如果为使用的每个应用程序创建PIF,并且这些应用程序在行为上相当合理,则Windows / 286将使您可以并排运行它们。

使用新的窗口管理器,绝对可以带来更愉快的体验。但是,实际上,我仍然无法使大多数应用程序以窗口模式运行。例如,Lotus 1-2-3和Multiplan可以在全屏模式下工作,但是我找不到让它们在窗口中运行的配置-不管我做什么,他们只是说没有足够的内存。

也许是因为我不完全了解这个时代的内存模型-在95天之内,我从未能够理解EMS和XMS,虽然您可以说这种有限的观点使我没有资格撰写本文,但我 应该澄清一下,我拥有整个互联网,而1985年的某个人没有。如果我现在不明白这件事,那么33年前是什么样的?

另外,我认为非文本模式应用程序根本不能在窗口模式下运行。在任何情况下,执行此操作的内存要求都很高,以至于我无法弄清并非仅仅引发内存错误并拒绝运行的咒语。

话虽如此,在窗口中运行应用程序并不是最重要的。但是,如果您问我,那真是太可惜了。在同一屏幕上运行多个应用程序多年来一直是IBM PC的白鲸,如果此版本的Windows能完全实现这一目标将是非常了不起的。

与Windows 1一样,应用程序不会同时执行。无论执行哪个应用程序,其他应用程序都将被暂停。

这并不是Windows的初衷,主要是因为硬件还没有它需要的东西。看起来好像是一个非常可靠的任务切换器,但是让任务运行起来的欲望是如此强烈,以至于我想很多人甚至都没有尝试过。

Windows 2.x / 386(1987-89)

Windows / 386完全是另一种野兽。

鉴于80386处理器的虚拟8086模式(V-8086)提供了具有纪念意义的新功能,运行DOS应用程序的体验会完全改变,从而变得更好。

如您所见,此版本与以前的未增强版本之间没有明显的区别,但是让我们启动一个DOS应用程序:

看起来并没有什么不同,但是在这里,您可以按Alt Enter:

Windows / 386现在可以在VM中运行它们,从而为DOS应用程序增加了相当多的新功能。

程序不会在启动时给出关于缺少PIF的错误,它们会立即启动并进入全屏模式。此时,您现在可以按Alt Enter切换到窗口模式,该模式可以正常工作-无需PIF。您可以创建PIF(稍后将看到),但是它们仅在Windows无法弄清应用程序所需的内容时才提供帮助。

我不确定V-8086在这里做了多少繁重的工作。看来,我们不再需要为程序分配内存,例如-我可以启动无法在Windows / 286中使用默认值(或完全没有默认值)运行的应用程序,它们可以立即运行。动态切换到窗口模式需要大量RAM,因为Windows必须存储其整个屏幕内容以及其自己的屏幕内容(如您所见,以彩色显示),而Windows却毫不费力地进行管理。

我的猜测是,Windows / 386可以通过将VM和保存的屏幕内容放置在Windows / 286几乎无法使用的较高RAM区域中,从而在没有用户干预的情况下利用扩展的内存来使这一切正常工作。另外,由于当应用程序尝试到达其分配的内存之外时,V-8086会将控制权移交给Windows,因此只要访问合法,Windows可能会即时分配更多资源,从而无需指定应用程序需要多少RAM 提前时间。

与以前的操作系统相比,一个很好的改进是,当您退出全屏应用程序时,它会自动切换到窗口模式,而不是变为非活动状态并保持全屏状态,这使前进的方式更加清晰。

颜色

您会注意到,文本模式DOS窗口的配色方案现在是黑色的,而不是相反的。这不是一个任意更改,但是实际上是因为VM窗口现在支持颜色:

QBasic甚至在以前的版本中都不会在窗口中运行,但是现在可以与全彩色一起很好地运行。

这些不是QBasic的确切预期颜色-第三张图片是全屏运行时的屏幕快照,以演示其外观。一切都变亮了,并在窗口模式下被冲洗掉了。这很奇怪,因为Windows在此处以VGA运行。即使在16色模式下,它也应该能够选择合理的调色板以匹配textmode颜色。我不确定这到底是怎么回事,但我认为是这样的:

Windows 2.x表面上支持VGA图形,但是是在那些卡仍然很少且价格昂贵的时候制造的,因此它确实是为EGA设计的。

VGA驱动程序唯一要做的就是将屏幕分辨率提高到640×480,在这种分辨率下,它只有16种颜色。可以从整个256色VGA色域中选择该16色调色板,但是Windows使用默认的EGA调色板以与大多数Windows应用程序兼容,而大多数Windows应用程序本应可以在EGA卡上运行。

现在,EGA在其色域中也具有完全饱和的颜色,但在默认调色板中却没有,该默认调色板又基于16色CGA调色板。CGA的调色板有八种颜色,以及深色和深色两种,其浅色令人不愉快地降低了饱和度。例如,“明亮的蓝色”是您在上面看到的令人不满意的阴影(道奇蓝色)。我一直讨厌CGA的颜色,但这就是IBM在1981年选择的颜色,这就是它的颜色,这就是为什么这里的明亮蓝色看起来像这样而不是很好的完全饱和的蓝色-因为Windows使用的是最兼容的颜色 调色板可能。

但这并不能解释全部。为什么背景颜色完全是明亮的蓝色,而不是预期的深色?CGA调色板确实包含深蓝色,那么为什么不使用它呢?好吧,由于某种原因,DOS窗口中的所有背景色都被强制设置为“高强度”变体。灰色变成白色,深蓝色变成道奇蓝色,依此类推。这就是为什么每个菜单选项中的白色字符均不可见的原因-它们应该位于本应显示为灰色的背景上,但是该灰色已变为白色。

微软为什么要这样做?我还没有足够的向导来探究硬件寄存器并找出实际使用的调色板,但是即使以EGA模式运行,Windows也应该具有更好的颜色。他们实际上没有使用原始CGA调色板的深色吗?他们为什么不这样做呢?这是一个很奇怪的问题,更奇怪的是,它保留在多个后续的Windows版本中,但是随着Windows默认调色板的更改,该更改也为每个版本引入了新的问题。

但是,这是一个小问题,因为能够以某种正确的颜色(而不是Windows / 286的黑白)运行应用程序仍然值得。

图形

现在,除了颜色之外,DOS应用程序现在甚至可以在窗口中显示图形。该应用程序Xanaro Agility使用中分辨率CGA图形,并且可以在窗口中完美运行:

我相信以前无法做到这一点的原因是,DOS下的图形模式从未使用系统调用来绘制任何东西-程序总是将其图形直接写入视频内存,而没有V-8086 VM,将无法拦截这些调用,并且 重定向他们。Windows / 386完全有能力做到这一点,并且做到了这一点。

现在可以使用图形了,标记功能现在允许您从窗口中复制图形并将其粘贴到其他应用程序中,如您在此处看到的。由于内存限制,此时的Paint只能使用一位黑白图像,因此复制彩色CGA应用程序将需要第三方应用程序。

您现在甚至可以在窗口中运行某些游戏,例如此处的李小龙(尽管运行太快而无法玩):

所有这些“都行得通”-我不必进行任何PIF或更改任何设置-尽管Windows为dBase提供了一个,但如果我删除它,它仍然可以工作。

让我们再聊一会儿游戏。

游戏类

窗口游戏不起作用,也永远不会起作用,但是它们可以告诉我们Windows DOS仿真的局限性在哪里,因为高分辨率DOS图形也与生产力软件有关。当然,游戏可以将图形发挥到极致-李小龙如上所示运行,但这是CGA时代非常古老的游戏。使用EGA / VGA的较新游戏无法正常运行:

在这里,我尝试运行Apogee的Crystal Caves。它能够到达标题屏幕(尽管您会再次注意到,颜色已被强制进入高强度调色板中-与第三幅图像中的全屏版本相比),但是当它试图加载时 在菜单上,Windows会识别它已提交的某种伪指令,并给出您在第四张图像中看到的错误。

Commander Keen在启动时立即失败,并显示相同的消息。请注意,这些游戏确实以全屏模式运行,并且可以按Alt Tab键退出,只是拒绝运行窗口式游戏。

尽管Windows在这个时代从未打算运行游戏,但是肯定会有一些业务应用程序会遇到这些同样的问题。例如,用于查看从BBS下载的文件的高分辨率GIF查看器可能存在这种问题。

这使我想知道问题到底是什么。我不确定启动时Crystal Caves处于哪种图形模式,但是我猜想它是320x200x4 EGA,与游戏本身运行的模式相同。在DOSbox中执行它,我看不到任何看起来像模式更改的东西 从标题屏幕切换到菜单时。我唯一能想到的是,这是在DOS应用程序对视频内存进行写操作时发生的,该写操作不在Windows期望的参数范围内。

我假设窗口图形本质上是通过仿真图形卡来工作的。由于PC上的视频是通过读取一系列内存位置并根据一堆图形卡配置寄存器的状态来解释它们而生成的,因此Windows必须通过软件解释这些寄存器的写操作,以便知道如何呈现所写内容。到视频存储器。

据推测,微软编写的代码说明了某些商务软件特有的特定视频模式和设置,但还没有准备好使用图形卡完成的所有工作。如果发现任何无法理解的内容,它会惊慌并使程序进入独占全屏模式,从而可以在不干扰操作系统其余部分的情况下直接对图形卡进行编程。

全屏模式

在全屏模式下运行的应用实际上发生了有趣的功能丧失:Alt 空格键不再召唤文本模式菜单栏。而是直接打入窗口模式,然后用户可以使用“标记”,“复制”和“粘贴”选项。这意味着textmode菜单栏仅存在于Windows的单个版本中,考虑到它的巧妙程度,这很有趣。

因此,当您使用Alt Tab键时,没有看到要在当前程序顶部切换到应用程序名称的菜单栏,而是整个屏幕空白,而看到的是:

有趣的是,他们决定放弃在应用程序本身之上分层切换器界面的方法。也许他们发现后者在视觉上令人困惑,或者有关V-8086架构的某种阻止。

多处理

在以前的版本中,我可以运行多个DOS应用程序,但一次只能执行一个。在Windows / 386下,我可以同时运行多个应用程序,两者同时执行:

您无法在这张静止的图片中看到它,但是尽管它仍然是一项巨大的技术进步,但是它在视觉上也不是那么令人印象深刻-此处的dBase II的两个副本都运行一个无限循环,该循环递增一个数字,并且两个都在更新 同时。就像我们今天拥有的一样,这是适当的多处理。但是,要使其正常工作,需要用户的一些干预-默认情况下,只有当前选择的应用程序会执行,而所有其他应用程序都将暂停,用户必须更改某些设置才能进行更改。

程序设定

通过从正在运行的应用程序的窗口菜单中拉起“设置”,您可以看到DOS VM的即时配置。显示选项显然只是从窗口切换到全屏,而其他选项则做有趣的事情。显然,没有针对Windows / 386的特定手册,因此我必须推断其中一些内容:

执行使您可以简单地暂停程序。我认为这样做是为了让您可以暂停一个消耗大量CPU时间并完全挂起机器其余部分的应用程序,在另一个应用程序中短暂执行一些操作,然后返回并恢复CPU消耗应用程序。

通过“任务选项”,您可以指定应用程序应仅在前台运行时执行,还是在后台运行时继续执行,或进行独占控制。后者会强制程序在全屏模式下运行,并且我相信即使选中了其他应用程序,即使设置为在后台运行,它也会暂停其他所有应用程序。

值得注意的是,设置为全屏模式但启用了“背景”的程序实际上会继续执行,即使当时没有聚焦,即使此时输出完全不可见。

终止是一个新颖的功能。就像我说的那样,在Windows的早期版本中,如果不使用退出选项就无法停止程序。在Windows / 386中,大概是由于V-8086提供的进程隔离,您可以执行此操作-但它首先给您带来了一条恐吓消息:

在NT接管产品线之前,在所有Windows版本中,强制终止进程仍然是一个粗略的选择。在Windows ME之前,ctrl alt del有时是在紧急情况下重新获得对系统的控制的一种方法,但它经常失败,即使成功,它也会破坏系统状态。

这比必须按下“重置”按钮要好,但要省得多,所以我假设在这里也是如此-这将使您恢复到一定程度,但是精明的用户会注意此警告并尽快重新启动 保存他们的工作后。

程序信息文件

PIF保留在Windows / 386中,但是发生了一些更改。

这里的变化是巨大的。PIF不再是启动应用程序的必要组成部分,而只是一种调整应用程序的方式-为它提供更多的初始存储空间,因此,例如,它用完的可能性较小,或者提供更好的标题,或者使其在退出时关闭。这些很方便,但不是必需的。使用默认设置,应用程序通常可以正常运行。

PIF将一直保留在Windows的整个历史中,但是随着Windows能够更好地自行解决问题,PIF将变得越来越少。

易用性

不用说,此版本的Windows是一个巨大的飞跃。我抓住了四个程序,然后毫不费力地运行了它们-其中一些根本无法在以前的OS上运行。

简单地说,尽管以后的版本将进行重大改进,但就商业软件而言,Windows / 386中的DOS VM的功能几乎可以解决。.例如,我不是 期望图形化应用程序完全可以在一个窗口中运行-我以为Windows 95中已经提供了功能,尽管那时将进行增强,但是此版本中的所有功能似乎都运行良好。386的新功能似乎已经将这个问题彻底解决了。

Windows 3.0(1990年)

Windows 3.0被宣告为Microsoft在1983年承诺的操作系统,直到1990年才交付。它的改进太多了,无法列出,但我们将重点介绍DOS应用程序的增强。

首先,尽管Windows 2.x表面上支持VGA分辨率,但我想我不得不说它没有很好地利用它。我不确定为什么要立即使用,但是以几乎相同的分辨率*运行的Windows 3.0似乎有更多的“喘息空间”。

* Windows / 286的运行分辨率与此处的Windows 3.0完全相同-640×480。Windows / 386在640×450上运行,出于某些奥秘的兼容性目的,但两者都同样局促。

在这里,让我们启动fdisk:

尽管屏幕上没有更多的像素,但是感觉在使用时我可以更轻松地呼吸。上面的第二张图片证明了文本大小是完全相同的,并且窗口的边框似乎在两侧仅大了两个像素。也许足以带来改变,或者只是微妙的心理视觉效果,但使用3.0肯定感觉更轻松,这可能是其成功的重要原因。

您可能会注意到的另一件事是颜色更好。Windows 2中的FDISK全部为亮白色文本,而在3.0以下的版本中则为白色和灰色。让我们看看QBasic:

它仍然不是应该的位置。菜单现在应该是灰色的,因此现在显示白色字母,但是文本区域和底部状态栏应该是暗色,而应该是暗色。实际上,除了明亮的白色(始终显示为灰色,而深灰色的显示为黑色)以外,所有背景颜色仍然被强制设置为高强度。

其中一些是由前面提到的调色板问题解释的,但是Windows调色板中显然提供了例如白色的颜色,并且它是前景文本的一种选择,只是不是背景颜色,因此我不明白这一点。

另外,请注意,明亮的蓝色现在已完全饱和,而不是可怕的旧CGA道奇蓝色。

程序设定

通常,正在运行的应用程序看起来是相同的:

但是发生了一些有趣的变化。让我们再次看一下程序设置:

请注意,现在有了优先级“权重”,可以使您在CPU调度层次结构中为程序指定一个非常特定的位置-这意味着设计预期可以运行许多并发应用程序,直到需要三位数的精度为止 指定应该给它们处理器时间的顺序。这表明微软有很大的野心,这可能被证明是有效的。

任务选项已从单选按钮更改为复选框,这掩盖了功能上非常有趣的改进。您曾经必须选择前景,背景或排他,但是现在您可以选择一种组合,因为Microsoft添加了一些新颖的新选项。

首先,互斥不再使应用全屏显示。相反,它只是在集中精力时暂停所有其他DOS VM(换句话说,“排他性”现在仅适用于在DOS应用程序之间安排处理器时间的方式),它不需要接管整个系统并暂停所有Windows应用程序。

但是,此外,您现在可以同时选择“独占”和“背景”。乍一看这是矛盾的,但请记住,目前我们正在谈论非常精确的调整功能。如果选择“独占”,则意味着该应用程序在聚焦时将始终暂停所有其他应用程序,即使启用了“背景”的应用程序也是如此。但是,如果选择了“独占”和“背景”,则该应用将在没有焦点的情况下继续运行,而不会独占处理器。

现在,正如我之前说过的那样,PIF并没有走到哪里,还有很多值得探索的地方。

程序信息文件

此版本的Windows不再带有包含某些应用程序预设的PIF文件夹。但是,它确实在SETUP.INF中有一小部分已知程序,我相信操作系统内置的搜索功能会使用它,该功能会扫描硬盘驱动器中的EXE,然后将它们添加到程序管理器中。如果这些EXE中的任何一个与SETUP.INF中的程序匹配,则会自动创建一个PIF,以根据Microsoft的测试为它提供默认设置。这将在95年大大扩展,我将在此进行更详细的描述。

我们有了新的优先级设置,还有更多用于分配XMS和EMS内存的选项,可以根据特殊需要的应用程序调整键盘快捷键,然后提供了很多我无法理解的奇怪的东西,例如“模拟文本模式” 和“锁定应用程序内存”。

还有一个选项可让应用程序在活动状态下关闭,这意味着您不必进入“设置”菜单并单击“终止”。如果尝试将其关闭,仍会收到警告,但这仍然更方便,并且它表明,Microsoft方面更有信心可以强制退出DOS任务而不会破坏系统。

Windows 3.0手册是一本重要的书,它详细介绍了所有这些设置,但是我发现最有趣的实际上是您没有立即看到的内容。

注意模式菜单吗?选择该选项将为我们提供两个选项,即386增强版和标准版。如果选择后者,则会得到以下信息:

突然,我们又回到了旧的废话,例如直接修改。是什么赋予了?

尽管80386提供了明显的改进,并且该芯片已经使用了5年,甚至已经被80486取代,但Windows 3.0仍支持在8088和286机器以及RAM极少(更少的机器)上运行。超过兆字节!)对于这些系统,您需要在简化的操作模式下运行Windows。

存在实模式的另一个原因是为了与不能在386增强模式下运行的本机Windows 1.x / 2.x应用程序兼容-根据手册,Windows 3.0将检测到这种情况,并告诉您需要使用WIN重新启动 / R运行它们。

易用性

尽管Windows 3.0中有更多的调优选项,但根据我的有限测试,似乎Windows / 386在很大程度上解决了能够在Windows上运行DOS应用程序并使其能够正常运行的问题,因此尽管 此操作系统版本是Microsoft在GUI世界中的第一个伟大胜利,似乎DOS元素已被充分解决,因此从现在开始必须对其进行调整。

Windows 3.1(1992年)

我不确定为什么当人们命名这个时代的Windows操作系统时Windows 3.1才是首选。它在3.0推出两年后问世,似乎并没有包含我所能看到的功能上的巨大飞跃,但即使与3.0相比,它在天文学上也一定取得了成功。“ Windows三点一”一词似乎刚刚落空,当提到该系列时,“ Windows三点”感觉有些不完整。

Windows 3.1中对DOS性能的更改似乎并不大。DOS VM的调色板问题再次更改为新的:

但是,如果检查这些选项,则会发现深红色和棕色都呈现出奇怪的栗色-浅褐色。这再次是Windows选择的默认调色板的问题-如果在颜色控制面板中四处乱逛,我会发现这种栗色的颜色是棕色区域中为数不多的纯色之一。但是为什么不抖动这些颜色呢?可以用这种方式完成可接受的棕色和红色。我真的不明白。

还有一种令人愉悦的新的不饱和绿色,我无法开始解释。我认为我的视神经还不确定该怎么做,但是某些醒目的图标必须使用它才能证明将其添加到VGA调色板中是合理的。综上所述,现在可以使用亮白色,因此在这一点上可以说唯一有问题的颜色是红色和棕色,因为它们都显示为完全相同的颜色。

现在可以更改DOS VM的字体:

最后,终止DOS应用程序时收到的消息会有一个有趣的变化:

这个新消息实际上并没有说明如果您这样做,系统将会变得不稳定,它只是说这不是一个好主意,应该将其作为最后的手段。这表明微软对V-8086变得更加大胆,并且更加坚定地信任它。

除此之外,它与Windows 3.0大致相同。

程序信息文件

我之所以在其中包括3.1的部分原因是因为此版本中对Windows处理DOS应用程序的方式进行了重大扩展。C:\ Windows \ System \ Apps.inf包含大量程序,这些程序经过Microsoft内部测试并找到了不错的默认设置。这个概念在3.0中已经出现,但尚未扩展为自动系统,而3.1的方法将在95中进一步扩展,因此我在此进行了详细记录。

Windows 95(1995)

Windows 95当然是微软的Great Shift,它是对宇宙的巨大改变,但是它对主要使用DOS软件的人有什么影响?此时,大多数计算机所有者每天使用的是Windows 3.x应用程序还是DOS应用程序?我不知道,但是DOS当然仍然是微软计划的重要组成部分。

程序设定

启动DOS应用程序的过程与Windows 3.x根本不同。您只需单击它。下面是fdisk和Ability进行比较:

几件事发生了变化。Windows现在有一个工具栏,您可以在其中即时选择其他字体大小,我对此非常感激。您可以通过按钮访问“标记”,“复制”和“粘贴”选项,而不是一次又一次地跳到程序菜单,这也是一种改进。

此外,尽管仍然可以通过新的“属性”按钮访问许多程序设置,但它们还提供了一个用于直接访问以切换“后台执行”选项的按钮-从Windows版本开始,默认情况下该选项最终处于启用状态。第一次。Windows 95对其DOS多任务处理能力有足够的信心,可以使所有启动的应用程序同时执行,并且大概仅在程序行为异常时才提供禁用后台执行的选项。

我们稍后将在PIF部分中探讨实际的程序设置。它们基本上与我们在此处看到的PIF设置相同,尽管奇怪的是,其中有些在这里没有意义-例如,您无法调整工作目录,因为该目录仅在程序首次启动时适用,因此进行了更改 到那个领域无处可去。

视频

让我们再次看一下QBasic:

自3.1以来,颜色既没有变差,也没有变好,并且不会-这些是Windows在VGA 16色模式下用于DOS VM的最佳颜色。

我要在这里发表的评论是,如果我在4bpp以上(16种颜色)的色深中运行,上述问题可能会消失,但是我故意不这样做,因为我认为分辨率和色深都不高 微软目标平台的一部分,我也不一定认为很多用户拥有这些东西。

我对这个时代的图形卡状态不太了解。坦率地说,几年前,我惊讶地发现Windows 3可以在640×480以上的分辨率下运行。我从来没有想过要很辛苦,但是当我这样做的时候,我发现我似乎从未见过以更高的分辨率运行Windows 3的计算机,并且由于3的版本太旧了,所以看起来很自然 不会做得更好。

实际上,图形卡已经问世多年,甚至可以在Windows 1上以更高的分辨率和色彩深度运行。我无法提供具体的日期和型号,但是我可以说在1991年,您当然可以购买1024×768显示器和一块卡来驱动更高的色彩深度。

我不能说有多少人以更高的分辨率和色彩深度运行Windows 3甚至Windows 2,而且我还怀疑,即使到95年问世,微软也没有假设任何人能比这更好。Windows 95将不再像以前的版本一样在EGA卡上运行,但是它非常适合在VGA上使用-这是系统要求中列出的内容,所有屏幕指标都非常适合该分辨率,并且所有图标都旨在 16种颜色看起来很棒。

在硬件允许的情况下,Windows XP还需要6年才能开始要求更高的分辨率或颜色深度,所以我很自在地说这就是Windows 95的使用方式,因此我没有安装SVGA或VESA驱动程序 这些截图中的任何一个。我什至可以在Windows 3中做到这一点,并且出于同样的原因也没有做到这一点-我认为我们在这些图片中看到的是大多数企业用户体验Windows的可能性,因此这是历史准确性的关键 。

指标

Windows 95再次感觉到它在屏幕上有更多的喘息空间,就像Microsoft以某种方式从640×480中挤出了更多像素一样-但这一次,实际上是因为DOS VM窗口的默认字体已更改。

在Windows 3和更低版本中,默认字体为8×12,但在95下,默认字体为6×8,因此尺寸和纵横比均已更改。上图显示了较旧字体下方的较新字体,说明了该字体节省了多少空间。

奇怪的是,我不记得这是我使用过的任何Windows版本的默认设置,但是我已经在98和ME上进行了测试,并且它们都默认使用此字体,因此我的记忆似乎是假的。我认为这是因为我在Windows 95和98上使用DOS主要是为了游戏,我通常在全屏模式下运行。到我花大量时间在Windows而不是真正的DOS模式下在命令提示符下运行时,我正在运行NT-并且我发现,即使在第一个发行版中,NT的等效NTVDM在默认情况下也以8×12运行。认为我的回忆在一起模糊。

有时,这些新字体大小会产生奇怪的效果。例如,对于某些应用程序,Windows会出于未知原因而选择极小的,几乎无法读取的4×6字体。

程序信息文件

在保留PIF的同时,95会尽一切可能将用户与他们隔离。

自动PIF

您会注意到,QBasic在这里并不是简单地显示为“ QBASIC”,而是具有一个图标和全名-程序员所说的“友好名称”。

这是微软漫长而富有传奇色彩的向后兼容性斗争的一部分。作为Windows 95发行版的一部分,Microsoft测试了数量不多的程序-基本上是他们可以尝试的所有内容-并详细分析了它们的工作方式。某些分析导致Windows操作方式的硬编码更改,以使特定程序运行,但是许多应用程序仅需要调整其内存设置和类似的东西。

Microsoft可以通过为他们测试的每个程序创建PIF来实现此目的,而这正是他们使用Windows / 386所做的,但是从3.1开始,他们决定采用一种更抽象的方法。文件C:\ Windows \ Inf \ Apps.inf包含它们测试的所有程序的预设,图标分配和名称。

当启动此文件中列出的应用程序时,这些设置将被压缩并编译为PIF文件。如果程序是在软盘上,则PIF转到C:\ Windows \ Pif,与在Windows早期版本中使用的完全相同。否则,它将进入程序目录。该文件中有460个条目。

我猜他们之所以不像在2.x中那样将预制的PIF运送到C:\ Windows \ PIF是因为每个PIF都会占用一定的最小磁盘空间,而460个PIF会占用 一次至少要消耗一半兆字节,这是一种宝贵的资源。

PIF设置

实际上,这里的设置数量有所减少-Windows 3.1拥有大量似乎已消失的神秘选项。例如,优先级设置消失了,所有极为神秘的东西如“锁定应用程序内存”。据推测,Windows在流程管理方面已经变得更加出色,以至于不再需要这些东西。

一个特别有趣的更改是将“激活时关闭”更改为“如果激活则警告”。换句话说,Windows现在认为使用窗口“关闭”按钮退出正在运行的DOS应用程序是普遍可接受的,而不必深入研究设置并单击“终止”。现在这只是正常的事情。默认情况下仍然有警告:

但是警告已经变得比3.1更加柔和。现在它只是说您将丢失数据,并带有黄色警告而不是红色的“ STOP!”。图标。

PIF创作

现在,当您对程序设置进行任何更改时,Windows会在同一目录中自动创建或更新以可执行文件命名的PIF。这具有许多含义。

此新行为是对以前版本的改进,以前的版本中PIF没有固定的存储位置。我不确定它是如何工作的,但是当您在以前的版本中运行任何可执行文件时,Windows似乎扫描了程序目录C:\ Windows \ PIF,并且谁知道在哪里寻找匹配的PIF。即使PIF仅位于Windows目录本身或驱动器的根目录下,我也可以使用,无论我启动的EXE在哪里。

此外,尽管Windows早期版本中的PIF可以指定一个“初始目录”,该初始目录可以告诉该程序的任何已启动副本在何处查找其数据文件,但它们并未指向特定程序。也就是说,Windows 3.1下的Dbase.exe的PIF会应用于系统上或可移动媒体上任何位置,名称为Dbase.exe的任何程序,因此,如果它在C驱动器上指定了初始目录,则为 从软盘启动的应用程序将在该文件夹中启动-一种不灵活的方法。

这种新的直接链接将PIF从抽象的,操作系统级的“设置”转变为特定于EXE文件的某种东西,这一点通常由程序附带提供。PIF与创建程序时位于同一文件夹中,并且此时出售的DOS软件在放置在已安装目录中的安装介质上包括PIF。

如果愿意的话,“隐式创建PIF”可以使用户摆脱许多烦人的额外步骤,而且还开始了Windows中“副作用”日益增长的时代-操作系统根据无害的用户输入以特定信息静默创建文件 烘焙到它们中,但并不能很清楚地做到这一点,这会在过程中造成潜在的混乱,以及潜在的新兼容性问题。

兼容性

Windows 95闻名于世,它在幕后努力使应用程序运行,远远超过了以前的版本,尽管这通常是有好处的,但作为用户,您实际上并不知道在任何给定的时刻在做什么以“帮助”您 。

例如,在测试Xanaro Ability时,我完全是无意中创建了一个PIF-我更改了属性中的一些无害设置,然后又将其重新设置,但无论如何都创建了PIF。之后,即使我单击EXE文件本身,每次尝试启动该应用程序时,该应用程序都会崩溃-因为如果PIF与EXE位于同一文件夹中,则即使您未单击该PIF也会使用该应用程序 在上面。

删除PIF会使程序再次运行,但是我最终发现,通过将PIF中的启动模式更改为Windowed而不是Fullscreen也可以解决该问题-但是当我这样做时它仍然以全屏方式启动,因此我必须先Alt Enter 实际开窗。我不知道为什么会这样,而且我确定这不是新用户可能遇到的最奇怪的事情。

dBase II在以前的每个版本中都运行良好,最终在95中破获。该应用程序可以正常启动,但是一旦您尝试打开数据库,它就会报告“ FCB不可用”,这是一个严重错误。

据说有解决这个问题的方法,但是我找不到解决的办法-dBase只是拒绝使用我可以找到的任何设置运行,而这些建议(如果有人可以使用的话)在1995年将很难找到。实际的DOS修复了它。

dBase II是1983年推出的,因此到现在为止,它可能不在Microsoft的目标软件人群中,但是事实是,它可以在Windows 2.0和3.1中工作,但至少在没有神秘争论的情况下不再可用。我怀疑这是因为微软此时已经在基础DOS中构建了新功能,以使大多数应用程序都能更好地工作,并且没有像这样的极端老软件进行测试,因此认为这是非常合理的。“只要获得一个新版本,该程序已有12年的历史了。”

图形与游戏

对图形DOS应用程序的支持增加了一点。

这是Crystal Caves的菜单,Windows 3根本拒绝运行它。在Windows 95下,尽管它以大约3 FPS的速度运行,但在此阶段仍可以正常工作。作为一个脚注,我记得在DOS VM中运行(在Windows的更高版本中)复杂得多的游戏,它们也运行良好,但运行速度约为3 FPS。这可能是因为Windows在完全GUI模式下进行了太多操作,以至于浪费时间将视频内存的当前状态每秒复制到屏幕上的次数超过了几次。

但是,如果我尝试进入游戏,则会变成乱码:

重申一下,我不知道这是怎么回事。Windows 3在标题后面打孔,而Windows 95则将其扩展到菜单,但是当实际游戏开始时,它无法渲染图形。因此,它进一步发展,但仍然失败了,我不确定为什么。

同样,所有这些都应该是相同的视频模式,即EGA 320x200x4bpp,因此对于我不了解的视频配置,必须有一些细微的细节。EGA视频是非常基本且线性的,但是Windows似乎将其解释为好像我不了解的一种时髦的隔行视频模式。

因此,明显改善了95 DOS VM的图形支持,但不足以支持游戏。这项改进可能使生产力应用程序变得可用,这些应用程序使用高分辨率图形模式,但没有深入了解这些游戏所依赖的功能。

现在,在Windows 3中,当您尝试对以Windows无法处理的模式运行的图形应用程序进行窗口化时,应该将其挂起,然后在窗口中显示该应用程序的快照。我从来没有能够使它正常工作-它只是因为没有足够的RAM而引发错误。但是,在我们进一步讨论之前,请考虑一下-这将如何工作?如果Windows无法处理在窗口中运行的应用程序,为什么在挂起时能够处理该应用程序?

Windows 95对这个问题的回答是……不可能。它尝试,但失败。如果我启动Commander Keen(Windows 3拒绝完全运行),则会得到以下信息:

即使在标题屏幕上,它也完全无法显示Keen。Windows 3拒绝尝试运行此程序是正确的。Windows 95尝试但失败。感觉好像倒退了一步,特别是因为我知道有些游戏确实导致Windows 95在窗口中无法显示视频模式时引发错误,尽管我目前找不到。

作为注脚,此处的红色已完全饱和。如果我对该游戏进行全屏显示,则该红色将变为旧CGA调色板所特有的不饱和红色。这是有道理的,因为95调色板需要完全饱和的红色,绿色,黄色和蓝色才能创建Windows徽标-因此默认调色板现在已与传统EGA / CGA颜色完全分离。

易用性

我可以在这里浏览数十种应用程序,并测试哪些功能有效,哪些无效,但是我的目的是坚持使用一些程序,并观察它们在版本之间的表现。我也没有深入研究它们是否始终如一地工作,在操作过程中不会崩溃等,因为那是一个庞大的项目-实际上,这里的目标更多是为了解决最初的用户体验。如果程序可以运行,但是在运行过程中崩溃了,我认为这对用户是否喜欢Windows 95的影响不会比无法运行的影响大。

我可能不愿意花太多时间亲自评论Windows 95下DOS用户体验的改进,因为我从小就对它感兴趣。与以前的版本相比,我自然会感到宾至如归,但是我认为仍然可以找到一些客观事实。

尽管添加任务栏对整个Windows的体验都有影响,但我认为它对运行DOS应用程序进行了重大改进。

DOS程序占用很大的屏幕空间。在640×480的分辨率下,即使使用较小的字体,也很难在屏幕上容纳多个程序。在Windows 3下,很容易忘记实际运行的内容-您可以使用alt tab键,但是这需要大量的击键才能“实验性地”找出您忘记了运行的内容。您也可以从3.1开始使用“任务切换器”对话框,但是同样,您必须停止正在做的事情,按下组合键,然后浏览列表。

95任务栏显示了运行情况,包括您或Windows选择的图标。在上面运行的混乱程序中,您可以立即知道正在运行的程序,然后跳转到任何程序-Ability以图形方式运行,因此确实需要将其最大化以发挥作用,因此,如果将其拉起,则所有其他窗口都会 隐藏在它的后面,但是您可以通过单击其任务栏按钮立即检索它。只有在切换到另一个窗口时将每个窗口最小化时,Windows 3才能提供此功能。

同样,这对本机GUI应用程序也很有帮助,但是我认为这将在快速切换看上去相同的程序之间产生巨大的差异。

总体而言,在Windows 95上使用DOS应用程序是最好的。在此之后,直到NT完全重新推出DOS模拟器NTVDM为止,我认为Microsoft不会在DOS“仿真”方面取得任何重大进步,这是我可能会在另一篇文章中讨论的完全独立的主题。

尽管我规定我必须在基本的VGA模式下进行所有这些测试,但事实是,到1995年,您可以以较低的价格购买更好的图形卡,即使他们仍然是DOS应用程序的重度用户,认真的用户还是很可能最终会这样做。。有了更高的分辨率和色彩深度,您可以使程序以更大的字体,准确的颜色和充足的“喘息空间”运行,在这一点上,我认为我们可以放心地说,除了罕见的高分辨率, 彩色应用程序,Windows上的DOS已解决。

结论

我无法确定我是否认为微软采取了出乎意料的大或少的步骤来使其具有“完整”的DOS功能。某些功能比我想像的要早得多-并且我认为某些功能从未起作用是很奇怪的,例如256色VGA模式。

随着Windows成为功能更强大的游戏平台,Microsoft逐渐难以获得视频游戏的支持,但从未将DOS仿真提高到几乎可以在窗口中玩任何东西的地步。实际上,我似乎记得NT有时会做得更好。您可能认为他们可以将其管理在9倍以下,并且他们认为它值得,但是也许这比我想象的要难得多。

我对这一切在技术水平上的工作方式没有深入的了解-我的目标是记录用户体验和明显的功能,尤其是因为很少在线了解早期Windows版本的细节。我希望您喜欢它,也许还学到了一些有趣的东西。

发表评论

登录后才能评论