# WSL Overview WSL is comprised of a set of executables, API's and protocols. This page offers an overview of the different components, and how they're connected. Click on any component to get more details. ```mermaid %%{ init: { 'flowchart': { 'curve': 'stepBefore' }, 'theme': 'neutral' } }%% graph subgraph Windows["
Windows
"] C:\Windows\System32\wsl.exe["C:\Windows\System32\wsl.exe"]---|"CreateProcess()"|wsl.exe; wsl.exe[wsl.exe]---|COM|wslservice.exe; wslg.exe[wslg.exe]---|COM|wslservice.exe; wslconfig.exe[wslconfig.exe]---|COM|wslservice.exe; wslapi.dll[wslapi.dll]---|COM|wslservice.exe; id[debian.exe, ubuntu.exe, ]---|"LoadLibrary()"|wslapi.dll; wslservice.exe[wslservice.exe]---|"CreateProcessAsUser()"|wslrelay.exe[wslrelay.exe]; wslservice.exe---|"CreateProcessAsUser()"|wslhost.exe[wslhost.exe]; fs["Windows filesystem (//wsl.localhost)"] end wslservice.exe -----|hvsocket| mini_init wslservice.exe -----|hvsocket| gns fs---|hvsocket|plan9 wsl.exe---|hvsocket|relay subgraph Linux["Linux
"] mini_init[mini_init]---|"exec()"|gns[gns] mini_init---|"exec()"|init[init]; mini_init---|"exec()"|localhost[localhost]; subgraph "Linux Distribution"["Linux Distribution
"] init[init]---|"exec()"|plan9[plan9]; init---|"exec()"|sid[session leader]; sid[session leader]---|"exec()"|relay relay[relay]---|"exec()"|cid["User command (bash, curl)"] end end ```