Bash on Ubuntu on Windows Taiwan Evolutionary Intelligence Laboratory Lin, Yuen-Jen
Outline Background Architecture Technical details Demo
Background Threatened in developer market by Linux and Mac OS X Cooperate with Canonical From project Astoria (abandoned), which originated to run Android apps on Windows 10
Background Bash on Ubuntu on Windows: Service that users can use Linux on Windows Windows Subsystem for Linux (WSL): the function build in Windows that Bash on Ubuntu on Windows relies on.
Architecture
Architecture User mode session manager Pico sessions Pico drivers
Architecture Linux Application Windows Application Pico Driver NT kernel
Technical details Pico process Pico Drivers File systems
Pico process Decouple OS dependencies from the underlying host OS Run in the “library OS” Separate the host OS from trying to manage the user- mode address space inside it. When Windows kernel detect system calls from a pico process, it passes to pico provider to handle.
Pico Process
Pico drivers Difference between Linux and Windows: System calls, Application Binary Interface (ABI) What Pico drivers have to do: Transfer Linux system calls to Windows system calls Pass the parameters using the registers defined by the Linux ABI
Pico drivers
File Systems Linux uses the Virtual File System (VFS) VolFs: the file system designed to emulate VFS in WSL. DrvFs: designed to facilitate interoperability with Windows. Windows drives, such as C: and D:, are mounted under /mnt.
File Systems
Demo
Demo
Demo
Demo
Demo
Demo
What is different from containers Translation between different syscall systems Different level of separation
Conclusion New way for using Linux on Windows machine Looks powerful but limits exist
Reference WSL blog, https://blogs.msdn.microsoft.com/wsl/ Image source: WSL blog http://en.community.dell.com/techcenter/os- applications/w/wiki/6950.lxc-containers-in-ubuntu- server-14-04-lts