Taeseunglee's Blog: Windows Subsystem for Linux(WSL) - 개요









Friday, June 16, 2017

Windows Subsystem for Linux(WSL) - 개요

Windows Subsystem for Linux(WSL) Overview

WSL에 대한 블로그 활동은 Microsoft Student Partner Evangelism 활동으로 하는 것임을 밝힙니다.

이 글을 읽으실 때, 영어 단어 빼면 조사만 남네~ 하실 수 있겠지만, 개념들을 억지로 번역하는 것이 오히려 더 이해하기 어렵다고 판단되어 필요한 영어 개념은 그대로 영어로 썼습니다. (ㅠㅠ)

Windows Subsystem for Linux(WSL)은 Microsoft사와 Canonical사가 합작(partnered together) 만든 것으로, Linux 프로그램을 실행시킬 수 있는 호환성 계층(Compatible Layer)입니다. 호환성 계층이란, host system의 것이 아닌 프로그램을 host system에서 실행할 수 있게 하는 것입니다. 예를 들면, Wine이라는 Compatible Layer는 Microsoft Windows 프로그램을 Unix 계열 시스템에서 실행할 수 있게 하는 것입니다.

WSL의 구조는 다음의 것들로 구성되어있습니다:
  1. User mode session manager - Linux instance의 Life cycle(Linux instance가 시작할 때부터 끝날때까지)를 관리함.
  2. Pico provider drivers (lxss.sys, lxcore.sys) - Linux system call들을 호스트인 Window에 맞게 번역(translate)함으로써 Linux kernel을 구동함(emulate).
  3. Pico processes - native unmodified Linux를 관리(host)함. (Windows kernel에서 Linux System call들을 바로 사용할 수 있게 한다.)

그림. WSL 구성 (출처: msdn blog)





















추가적으로, WSL에서 File system을 이용하여 Windows의 파일과 drive를 상호 운용성(interoperability)를 얻습니다. msdn blog 에 들어가면 WSL의 파일시스템에 관한 정보를 얻을 수 있습니다.


한편으로, WSL에서는 기본적으로 Bash shell을 지원해준다. 또한, WSL은 Virtual Machine을 따로 필요하지 않고, Windows 위에서 대부분의 리눅스 명령어를 지원해줍니다.
Windows 10 bash shell에서 htop 명령어를 입력한 화면.



WSL 기능

WSL은 다음과 같은 것을 가능하게 합니다:

  1. grep, sed, awk 등 command-line utilities들을 사용할 수 있다.
  2. 리눅스 호환 파일시스템(Linux-compatible filesystem)과 구조를 사용할 수 있다.
  3. 윈도우 저장소는 /mnt/... (예를 들어, c드라이브는 /mnt/c)에 마운트(mount)되어 있으며, 이를 접근할 수 있다.
  4. Bash shell 스크립트와 Linux command-line 프로그램을 실행할 수 있다. 
    1. 툴: vim, emacs, tmux
    2. 언어: Javascript/node.js, Ruby, Python, C/C++, C#, F#, Rust, Go 등
    3. 서비스: sshd, MySQL, Apache, lighttpd
  5. apt를 이용하여 리눅스 툴을 설치할 수 있다. (예를 들어, 깃을 설치하기 위해 sudo apt-get install git를 입력.)
  6. 윈도우 프로그램을 Bash shell에서 실행시킬 수 있다.
  7. 리눅스 프로그램을 윈도우에서 실행시킬 수 있다.
(https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/ 에서 추가된 기능들을 볼 수 있습니다.)


다음에는 Windows Subsystem for Linux 설치 방법에 대해 포스팅하도록 하겠습니다.

참고자료

No comments:

Post a Comment