作者简介:张银奎,《软件调试》和《格蠹汇编》作者,爱写书与代码,以调试各类软件和分享调试技术为乐(微博@格友-张银奎)。
本文为CSDN首发原创文章,未经允许不得转载
Windows 10是微软第三代NT团队的力挽狂澜之作,大刀阔斧地改造革新,目标是重塑Windows(Reinvent Windows)!在众多新特征中,Linux环境子系统(WSL)无疑是最具开创性和最拉风的一个。
启用WSL
在2016年3月30日开幕的Build大会上,微软向广大开发者宣布Windows 10将支持Linux应用。在2016年4月7号推送的 Windows 10 build 14328 fast ring中首次包含了WSL。在Windows 10的周年更新(Anniversary Update)中包含了相对完整的Beta版本。
值得说明的是,不是所有的Windows 10系统都能运行WSL,要满足两个基本要求:64位和Build号不低于14393.0(笔者使用的两个版本分别是14393.1198和14393.479)。
在满足上述条件的Windows 10中,WSL也不是默认安装的,而是需要通过以下两个步骤来启用。
第一步是通过Settings -> Update and Security -> For developers打开开发者模式(参见图1)。
第二步是通过“Turn Windows features on or off”打开WSL功能(图2)。
点击图2所示的确定按钮后,Windows 10会安装WSL的组件,需要一点时间。安装完成后,要重启系统。重启后,在开始菜单区输入bash,如果看到图3所示的菜单项就代表WSL启用成功了。Bash是GNU旗下的命令处理器和外壳(shell)程序,包括Ubuntu在内的很多Linux发行版本和苹果macOS都使用它作为默认的控制台外壳和命令处理器。Windows 10中使用的就是Ubuntu版本的Bash。因此,WSL有时也被称为Bash on Ubuntu on Windows。
启用WSL成功代表着在Windows系统中搭建好了运行Linux应用的基本环境,这个环境就是所谓的Windows Subsystem for Linux(WSL)。环境子系统是NT内核固有的机制,目的是可以在一个NT内核运行不同类型的应用程序。在支持WSL之前,有三种子系统:Windows子系统、OS/2子系统和POSIX子系统。
每个子系统通常都有一个子系统服务进程和一个内核态驱动,对于Windows子系统,分别是著名的CSRSS.exe和Win32K.sys。对于WSL,它的组成主要有以下几个部分:
以系统服务形式运行的子系统服务进程LxssManager