导读 | 上月,微软正式宣布 Bash on Ubuntu on Windows 功能已经可通过 Windows Subsystem for Linux (WSL) 原生支持 Linux ELF64 二进制文件在 Windows 10 中执行。WSL 是由微软 Windows Kernel 团队开发的,自上月宣布并在 Windows Insider Build 版本中提供试用以来,很多用户都开始关注并有兴趣知道 Windows Kernel Team 是如何建立该子系统的。 |
为回应用户关注,微软在 对 Windows Subsystem for Linux 进行了概述、回答了 WSL 的常见问题并披露了相关实现细节。虽然我们前文对 Ubuntu on Windows 10 的工作方式也进行过简要解析,还是一起在看看微软的官方回应。
WSL 是支持原生 Linux ELF64 二进制文件在 Windows 上运行的组件集合,它包含用户模式和内核模式组件:
- 用户模式会话管理器服务处理 Linux 实例的生命周期
- Pico 提供者驱动程序(lxss.sys, lxcore.sys)模拟 Linux kernel 翻译 Linux 系统调用
- Pico 进程托管未修改的用户模式 Linux(例如 /bin/bash)
奇迹就发生在用户模式 Linux 二进制文件和 Windows Kernel 之间,通过 Pico 进程中的 Linux 二进制文件可以将 Linux 系统调用导向到 Windows kernel,而 lxss.sys 和 lxcore.sys 驱动则负载将 Linux 系统调用翻译成 NT API 和模拟 Linux Kernel。
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/210164.html