浏览器里跑Windows XP?开发者硬核复现,免安装还能玩扫雷、纸牌接龙,网友直呼:爷青回!
off999 2025-09-19 00:42 1 浏览 0 评论
整理 | 苏宓
出品 | CSDN(ID:CSDNnews)
你还记得上一次用 Windows XP 是什么时候吗?
这个诞生于 2001 年的操作系统,曾因操作简单、性能提升、兼容性好,迅速成为一代人的“电脑启蒙”。虽然微软早在 2014 年就停止了支持,但对很多人来说,它依然是心中难以替代的经典。
那么,在浏览器里回味一下老系统 Windows XP 的魅力,是种怎样的体验?
说出来很多人可能有点不敢信:不需要虚拟机,也不用重装系统,只要打开一个网页,点一下,就能看到那个熟悉的蓝天白云绿草地桌面、任务栏、开始菜单,还能正常玩游戏......
这是 Reddit 用户、一位名为 ducbao414的开发者分享的一个最新成果:他做了个项目,可以直接在浏览器中模拟 Windows XP,无需安装、即开即用。
操作非常简单,只需要打开 https://win32.run/ 这个页面,按一下 Enter 键,就能立刻体验那段熟悉又复古的 XP 时光。
与此同时,他还将整个项目在 GitHub 上开源出来:
https://github.com/ducbao414/win32.run, 供其他人了解与学习。
打开浏览器,就能体验 Windows XP 了
要知道,在现代系统上重新安装 Windows XP 并非易事。
最大的问题是硬件兼容性:如今很多新主板、显卡甚至 SSD 都已不再支持 XP 系统,驱动缺失是常态;老旧的 XP 系统有时候也无法识别最新的 USB 键盘和鼠标;加之 XP 安装盘本身不支持 UEFI,分区格式不兼容。哪怕搞定这些,安全补丁也早停更了。对普通用户而言,“复刻一次 XP”早已成了高难度操作。
而 win32.run 解决了所有这些麻烦 —— 它通过网页,复刻了 Windows XP 的整个桌面环境,无论你是用 Windows、macOS 还是 Linux,都能一键访问、直接使用。
整个网页模拟界面也可谓相当用心,譬如,打开上述网址进入后,经典的加载界面声音随之响起,之后正式进行 Windows XP 系统。
随之蓝天绿地的 Bliss 桌面映入眼帘:
点击“我的电脑”,里面分区还分了熟悉的 C 盘和 D 盘:
在桌面右击,也会显示“刷新”、“新建文件夹”等经典选项,几乎和真实的 XP 别无二致。
这款 Windows XP 它不只是看起来像,还“能用得起来”。
首先,系统内置了不少经典小游戏,如扫雷 、 纸牌接龙、我的世界、太空战...比我们以前使用 Windows XP 所能体验到的游戏多得多。
而且这些全部可以正常游玩,话说又多了一个“上班摸鱼”的神器:
此外,系统内置的 Microsoft Word 还原了 Microsoft Word 98 的大部分功能,连 .docx 文档也支持打开和编辑;
当然,也可以创建文件,甚至把文件下载到自己的本地 电脑上 。
不仅如此,它还原了很多 XP 当年自带的内容,比自带的音乐演示文件是贝多芬第九交响曲和 Highway Blues ,打开就可以听。连这些“细节味儿”都给整上了。
更惊喜的是,据 ducbao414 自己 介绍, win32.run还内置了一系列“隐藏功能”, 比如:
- 支持安装一些第三方小软件;
-
可以把文件或文件夹拖进 win32.run 的“资源管理器”里;
-
放 .mp4 和同名 .srt 文件在同一个文件夹里就能播放带字幕的视频;
-
支持完整的 Windows XP 安装模拟;
-
可以压缩和解压 ZIP 文件;
-
运行 .swf 格式的 Flash 文件。
感觉很奇妙的是,你还可以在这个网页 Windows XP 系统下打开 IE 浏览器,查看最新的 HN 新闻,了解今天 OpenAI 发布 GPT-5 的最新动态:
也可以用 IE 浏览器,体验这个网页 Windows XP 项目:
“这是我穷到服务器都用不起的情怀项目”
ducbao414 提醒道, win32.run 完全是为了怀旧而做的。「我没有也无权对它进行商业化变现,但你在玩一些第三方游戏时,可能偶尔会看到广告。」
同时,他 说道:“ 我之前制作了这个浏览器中的 Windows XP 项目,作为重温童年怀旧的一种方式,也希望能为其他人带回来一些回忆。 ”
换句话,这个项目是纯粹出于情怀!
根据 ducbao414 在 GitHub 项目页面的介绍显示, WIN32.RUN 完全在用户浏览器端运行 ,所有文件都只在本地处理,没有文件上传、没有服务器参与。 ducbao414 直言道,“ 说白了就是,我穷,负担不起服务器的费用。”
每个用户都会拥有一个独立的“XP 会话”,就像以前用电脑那样。
在 win32.run 中,你创建的文件和文件夹都会保存在浏览器本地的 IndexedDB 中。应用程序(包括第三方小工具)通过 ducbao414 自制的“XP 风格”文件打开/保存对话框与这些文件进行交互。
在技术栈方面,整个项目是用 Svelte/SvelteKit 和 Tailwind CSS构建的,部署在一个每月只要 5 美元的 Vultr 云服务器上。没用什么特别硬件,也没啥特别依赖,除了要有 Node.js 和 NPM。
对此, ducbao414 表示,这个项目的开发和部署也完全公开,感兴趣的人可以 fork 源码自己动手。
首先,可以从 GitHub 上下载源码:
git clone https://github.com/ducbao414/win32.run.git
cd win32.run-main
然后安装依赖项
npm install
本地运行
npm run dev
开发服务器位于 http://localhost:3000
构建发布版本
npm run build
构建后的文件会输出到 win32.run-main/build
预览构建效果:
npm run preview
ducbao414 透露,部署过程也没有什么技巧,用的是 Ubuntu 系统 + NGINX 部署,完全按网上教程来。他选 Vultr,是因为比 DigitalOcean 便宜点($5 vs $6)。
最后,把打包好的 build 文件夹、package.json 和 package-lock.json。上传到服务器,进入项目目录后执行:
npm install
pm2 start build/index.js
这样就可以让 win32.run 跑在服务器的 localhost:3000 上了。
网友评论:这不是 XP,是“青春的味道”
这一波“回忆杀”引起无数网友的共鸣,不少人感叹道:
-
这在浏览器中的性能真是令人难以置信。
简直不敢相信,这不是一个真实的体验,启动速度太快了。
-
开机声音唤起了我许多过去的回忆
-
使用这个让我感觉很开心。在现代 Windows 上我没有这种感觉。
ducbao414 透露,这也不是硬件虚拟化,而是他几年前用 Web 技术在浏览器里做的一个 Windows XP 界面复刻。
有人建议可以再加一些新功能,只不过,些许遗憾的是,ducbao414 回应道:“我不再维护这个代码库,但源代码托管在 GitHub 上,有关代码库和集成的文档也在那里。你可以自由地查看它、在本地运行、修改或重新分发它。它使用的 RAM/CPU 非常少,我目前是在一个月 1 美元的 VPS 上运行它。”
至于其中具体原因,ducbao414 在将 GitHub 项目仓库存档时透露:
“尽管我并不喜欢 React 的语法和那套开发方法,但 Vercel 推出的 NextJS 在各方面都提供了比 SvelteKit 更好的开发体验:它在向后兼容性上做得更好,工具链更成熟,文档也更全面,稳定性高,功能无缝集成(基本上所有东西都能按预期运行),第三方库丰富,占用内存也更少。
虽然开发 win32.run 的过程本身还是挺有趣的,但 SvelteKit 出现的多次破坏性更新,已经让整个代码库变得其他开发者难以理解。要让它兼容新版 SvelteKit,基本得重构整个项目。我也不认为这个项目能在“帮助其他使用或学习 Svelte 的开发者”这件事上产生什么实际价值。”
最后,不管你是 XP 时代一路过来的老用户,还是想看看当年大家都在用啥操作系统,这个项目都值得你点进去玩一玩。它不会变成你的主力系统,但肯定能勾起一些记忆,或者带来一丝久违的轻松。 对于感兴趣的小伙伴,也可以直接打开链接体验一番: https://win32.run/
参考:
https://www.reddit.com/r/windows/comments/1lzbhpr/windows_xp_in_the_browser_with_a_file_system/
https://news.ycombinator.com/item?id=44824539
2025 全球产品经理大会
8月15–16日·北京威斯汀酒店
互联网大厂&AI创业公司产品人齐聚
12 大专题,趋势洞察 × 实战拆解
扫码领取大会 PPT,抢占 AI 产品新红利
相关推荐
- Linux 网络协议栈_linux网络协议栈
-
前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...
- 揭秘 BPF map 前生今世_bpfdm
-
1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...
- 教你简单 提取fmpeg 视频,音频,字幕 方法
-
ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...
- Linux内核原理到代码详解《内核视频教程》
-
Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...
- Linux C Socket UDP编程详解及实例分享
-
1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...
- libevent源码分析之bufferevent使用详解
-
libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...
- 一次解决Linux内核内存泄漏实战全过程
-
什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...
- 彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏
-
作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...
- linux网络编程常见API详解_linux网络编程视频教程
-
Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...
- Linux下C++访问web—使用libcurl库调用http接口发送解析json数据
-
一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...
- 平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道
-
在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...
- 谈谈分布式文件系统下的本地缓存_什么是分布式文件存储
-
在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...
- 进程间通信之信号量semaphore--linux内核剖析
-
什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...
- Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门
-
一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...
- 30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南
-
30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)