10上wsl位置迁移_前有WSL,现在又有DSL

一位来自墨尔本的开发者 Charlie Somerville 创建了一个 DOS Subsystem for Linux(DSL)。这是一个 DOS 用户迄今为止从未拥有过的工具,类似于 Windows 10 用户通过 Windows Subsystem for Linux(WSL)所享受的集成 Linux 环境。

Somerville 称,他是受到了微软 WSL 的启发,写 DSL 纯粹是为了好玩。一开始,他只是想看看能不能让 Linux 从 DOS 命令行启动。成功之后,他就想更进一步的看看 Linux 运行后能否继续执行 DOS。让他没想到的是,整件事情进展得出乎意料的顺利。

对于喜欢在 MS-DOS 环境下工作的用户来说,DSL 就像一个 WSL 的替代品。DSL 将真实的 Linux 环境集成到 MS-DOS 系统中,使得用户可以在 DOS 命令提示符下运行 DOS 和 Linux 应用程序。

1edb1d41ef7381d68704628b602515d2.png

Somerville 在 Hacker News 的一个帖子中进一步揭示了 DSL 的工作原理。他指出,当 DSL 第一次在命令行被调用时,它将启动 Linux 内核,从 DOS 中接管计算机的控制权。

诀窍在于:DSL 使用了一种名为 VM8086 的处理器功能,它允许 32 位操作系统大部分原生运行传统的 16 位代码。这种在 VM8086 下运行 DOS 的方法其实就是早期 Windows、DOS 扩展器等的工作方式。此外,Linux 内核也支持 VM86,只不过并没有广泛使用。Somerville 认为,dosemu 是 Linux 上 VM86 的唯一主要用户。

然后,DSL 返回到 DOS,此时的 DOS 已经在 VM8086 任务中运行。值得庆幸的是,Linux 并没有出现抢占 DOS 内存的现象。Somerville 称,Linux 似乎在其自身的引导过程中保留了第一兆字节的内存(DOS 所在的地方),因此,只需跳回到正确的位置以继续执行 DOS 即可。

DSL 勉强能模拟键盘等硬件来实现工作,从而让 DOS 原始硬件能够访问其他所有内容 。值得注意的是,在同一硬件上同时运行两个操作系统,其实是非常不安全的一种行为。但尽管如此,Somerville 称,“它似乎工作得异常好。”

要运行 DSL,你必须:

  • 在 PATH 上有一个针对 i386-linux-musl 的交叉工具链。

  • 通过运行 J=xxx script/build-prereq 来构建依赖环境(Linux 和 Busybox),将 xxx 替换为所需的 build parallelism。

  • 获取硬盘镜像 hdd.base.img,并在第一个分区上安装 MS-DOS 的副本。

  • 运行 make(这将创建一个新的硬盘镜像 hdd.img,并安装 DOS Subsystem for Linux)

  • 调用 C:\doslinux\dsl 来运行 Linux 命令(也可以将 C:\doslinux 放在你的 DOS PATH上,这样会更方便)

目前,DSL 已经在 MS-DOS 6.22 和 FreeDOS 中进行了尝试。

推荐阅读

PostgreSQL 13发布

Flutter开始支持Windows

Windows XP源码泄露

Swift开始支持Windows

开源先驱ESR:微软将放弃Windows内核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值