compaqwin7系统 ()


导读:复古计算(Retrocomputing)它是一个文化话题,复古计算社区是一个相当多样化的国际社区,容纳了许多不同文化背景的爱好者。从目前计算机硬件的性能来看,现代计算机硬件的性能不仅可以模拟大多数古董计算机,而且已经远远超越。有这样一个复古计算爱好者,伟(wu)大(liao)的尝试:让 35 年前的 Windows 1.0 重生 Windows 1.0 可以编写程序吗? Windows 10 上运行。它还能运行吗?让我们来看看这篇文章!

35 年前,在 Windows 编程的体验是什么?

有这样一个人,为了找出答案,决定亲自尝试。

纽约开发商 Michael Casadevail 就是这样的人,他一路冒险,追溯到 Microsoft 发布第一个基础 GUI 的操作系统 Windows 1.0 当他构建虚拟系统时,他可以在虚拟系统中安装它 1985 年原软件开发工具包,然后研究了一个简单的Hello World”程序附带的传奇示例代码。

Casadevall 那个迷人的实验让我们一瞥 Windows 最初的起源不仅显示了这一点 35 多年来,事情发生了多大的变化,也显示了保留了多少东西。

Casadevall 那个迷人的实验让我们一瞥 Windows 最初的起源,不仅显示了这 35 多年来,事情发生了多大的变化,也显示了保留了多少东西。

当然,追溯这个过程也很有趣。

历史重演

Casadevall 使用的是 Oracle 的 X86 虚拟化工具: Oracle VM VirtualBox ,他先加载了虚拟机 IBM 的 PC DOS 3.而非微软 MS DOS 3.3。他在 Soylent News 一篇文章指出:我这样做的原因是,当时 DOS 不是独立产品,相反,Microsoft 将授权 DOS OEM 原设备制造商需要适应开发套件(Original Equipment Manufacturer,OEM)创建自己的 DOS,如 Compaq DOS 3.3。”

显然,为了这个实验,Casadevall 它带来了大量的技术专业知识。”

显然,为了这个实验,Casadevall 它带来了大量的技术专业知识。他将自己描述为自己的推特个人资料 “复古计算爱好者” 和 狂热的信息安全黑客。

“我个人对复古计算很感兴趣,这已经不是什么秘密了, ” Casadevall 我还记录了个人电脑的历史和演变史,他在网站上写道。” 在后来的一段视频中,他说 “90 年龄的孩子。一年圣诞节,他惊讶地发现自己还有一个操作 Windows 3.1 的 Packard Bell 计算机。

但是为了制作这段视频,Casadevall 回到过去……

这个项目给 Casadevall 带来了一些挑战。

Casadevall 写道:“Windows 1.0 早在鼠标作为计算机硬件的标准部件出现之前。” 事实上,很早,Casadevall 发现自己无法模拟串行或总线鼠标。他想出了一个解决方案来驱动鼠标 Windows 2.0 复制安装软盘 Windows 1.0 在软盘上安装鼠标作为设置屏幕的选项。

Casadevall 在 Soylent News 上面写着:第二个选项,我直到做完视频才知道是用的。 PS/2 版本的 Windows 1.0。就像那个时代 DOS 一样,Windows 也授权原设备制造商,原设备制造商可根据自己的硬件进行调整。” 这是一个被遗忘的时代,它是如此原始,以至于 Windows 还是要通过键入 win 命令从 DOS 启动命令。Casadevall 写道:有传言说,Windows 将被移植到 XENIX 上运行,XENIX 是 Microsoft 基于 UNIX 操作系统。”

当然,至少有一些更简单的方法可以做到这一点。你可以使用 PCjs.org 该网站,基于浏览器的模拟器,已经提供了鼠标支持。

他称 Windows 1.0 本质上是 DOS 但是,通过深奥的魔力,它可以协同多任务处理。这完全是通过软件技能完成的……”

DISK 2 有什么?

分区并安装磁盘 DOS 和 Windows 1.0 之后是时候设置开发环境了。Casadevall 写道:不幸的是,网上关于如何做这件事的文件很少。” 但幸运的是,OS/2 博物馆扫描了一些原始的参考文件夹,当我仔细检查磁盘时,我发现了一个安装批处理文件,它的名字合适,被称为 install.bat ,并提醒用户必须至少有 512K 的内存。此外,还需要配置为驱动器的软盘驱动器 A,以及图形监视器(单色或颜色均可)。

如果您没有上述设备或软件,请放弃这批处理文件。 文件警告说:建议使用鼠标,但不必要。”

在 Soylent News 他在帖子中提到了一个更详细的界面,这可能是因为大多数用户想要安装自己 Windows,而不是预装……”

但这是对那个世界的一瞥,没有网页分享相关信息。请参考软件开发工具包中文件的完整列表 Disk 2 的 FILELIST.TXT 文件。

因为可能只有在那里 1985 年才有意义的原因,脚本和 README 所有自述文件都放在里面 Disk 2 上,而不是放 Disk 1。”

事实上,SDK 分布在 7 在软盘上,其中 4 安装过程中需要插入张软盘。当然,所有这些插入行为都被称为install.bat 文件触发。

有第五个软盘 Windows 内核调试版,其余两个磁盘有示例编程代码,包括 Hello World 示例。

用户还需要执行更多的安装。“与后来的 SDK 不同版本的程序员有责任提供编译器……” 他在帖子中指出。安装屏幕提示支持三个选项:

Microsoft C compiler, version 4.0Microsoft Pascal compiler, version 3.3 or laterMicrosoft Macro assembler, version 4.0

Casadevall 写道,“非官方的(以及非经正式的),Borland C 有些版本也可以使用,虽然没有测试,但似乎没有人在新闻组上做任何记录,除了一些注释。更有趣的是,上述所有工具都是针对的 DOS 编译器,对 Windows 没有具体的支持。更有趣的是,上述所有工具都是针对的 DOS 编译器,对 Windows 没有具体的支持。

Casadevall 视频中指出,要找到 Microsoft C 4.0 但是,他需要再读一遍用户手册,才能知道正确的安装方法。由于硬盘在 1985 年还不常见,所以 Microsoft 通过软盘支持编译器的运行。这些关键文件需要编辑硬盘安装:CONFIG.SYS 和 AUTOEXEC.BAT,并手动复制所有必要的库和可执行文件。

编写代码还涉及到处理近指针(功能和给定段中的普通指针) C 同一指针和远指针(8086) 使用这些指针的特殊操作码)。

回调函数总是必须声明的 FAR,因为 Windows 在从任务管理器中跳转到应用程序代码时,需要加载正确的段。”

此外,Windows 1 清理堆栈的方法也有一些奇怪

Casadevall 指出,16 位 Windows 应用程序 当时共享地址空间普遍存在 Windows 未使用的内存不会立即回收。即使应用程序终止后,其某些部分仍将保留在内存中。

尽管如此,经过多次软驱交换软盘和一些故障排除,Casadevall 用文本编辑器快速编写 Hello World 程序(用 C 然后用语言编写) Microsoft 的 C 编译语言编译器。显然,它创造了一个 .exe 文件版本,只需输入文件名称 “hello” 无需后缀名即可执行。该程序将立即打印 NCommander 测试信息。

“来自 DOS 的问候。”

向下兼容性如何?

Casadevall 为了尝试另一个实验: Windows 1.0 编写的 “Hello World” 现代系统还能运行程序吗?

一些研究表明,通过运行 NT 虚拟 DOS 模型(即 NT virtual DOS mode ,NTVDM)与 Windows 的子系统(Windows on Windows,称为 “Wow),旧版本可以实现 DOS 和 16 位 Windows 程序兼容性。Casadevall 指出即使在今天,NTVDM 仍然是 Windows 10 但他指出,Windows 10 转向 64 完全放弃了传统的位置 16 位置支持,不包括 NTVDM。

但 Microsoft 仍然提供了 32 位版本的 Windows 还包括10 NTVDM。Casadevall 获得现在的 Windows 10 1909 将其安装在虚拟机中,然后试图操作它 Windows 1 编写的 “Hello World” 应用程序。双击他写道 hello.exe 时,会提示 Windows 需要下载和安装 NTVDM,这一步让人看到了希望。在第二次尝试中,我可以确认这是可能的!”

“长达 35 年度向下兼容性!”

译注

:有关 Windows 10 的 NTVDM 和 16 请参考位置应用程序的支持 Microsoft 的官方文档说明: NTVDM and 16-bit app support 。

参考阅读:https://sourl.cn/Lp7QPP