Windows10(14316) Linux子系统分析
0.背景 在build 2016大会上,微软宣布windows10 中将原生支持bash,并且号称在windows中加入了一个Linux子系统(Windows Subsystem for Linux),而不是一个虚拟机。而后在发布的win10 14316(x64)更新上就开启了bash功能,但32位版本没有bash。 笔者随即下载了14316想体验一下windows上执行bash命令,并且想了解这个Linux子系统机制的实现。 一.介绍 首先打开system32\bash.exe后,随便输入一个ls命令,通过procmon发现有进程访问了C:\Users\xxxxx\AppData\Local\lxss\rootfs\bin\ls文件。 随即发现了linux根目录挂载在C:\Users\xxxxx\AppData\Local\lxss\rootfs,可以看到目录结构和ubuntu基本一致。 反过来看到访问ls这个elf文件的进程比较奇怪,procmon无法显示进程名字,而且挂上调试器还会发现这个进程对象内不仅没有名字,也没有section,peb等信息。 二. Pico Process 这种没有名字的进程称为pico process,也就是ELF的宿主进程。关于picoprocess介绍: http://research.microsoft.com/en-us/projects