[기술요약6] wsl, wsl2 윈도우 서브시스템 리눅스 알아보기

윈도우즈 서브시스템 리눅스 wsl wsl2 설명

WSL


Windows Subsystem Linux

윈도우의 서브시스템 리눅스

윈도우 개발자를 위한 리눅스 WSL 1


개발 시장이 리눅스로 편중되어 있다 보니까 윈도우 OS만으로는 개발하기가 힘든 세상이 되었다. 마이크로소프트도 이에 대한 애로사항을 알고 윈도우의 하위 시스템, 말그대로 윈도우 안에서 돌아가는 리눅스를 출시했다. 그게 wsl 1이다.

윈도우 안에서 돌아간다는 의미는 완벽한 리눅스 OS가 아니고, 윈도우에 호환되도록 만들어진 리눅스라는 의미이다. 리눅스 커널의 명령어들을 윈도우 OS가 알아듣도록 번역하는 것이다. wsl 1은 부분적인 기능만 가능한 리눅스여서 자유롭게 사용할 수 없었다.

호환이 아닌 가상머신으로 재탄생한 WSL 2


wsl wsl2 기능 비교

wsl2는 완전한 기능을 하는 리눅스를 윈도우에서 제공하기 위해 나왔다. 완전한 기능을 하기 위해서는 호환되는 것이 아니라 독립적인 OS로 존재해야 한다. 그렇기에 VM 기반이며 Hyper-V를 사용했다. 이제 wsl2는 가상머신처럼 존재한다. 하지만 그러면 리눅스가 독립적이므로 윈도우와의 호환성이 없어지는 것 아닐까?

호환성과 독립성을 다 잡은 WSL 2의 구조


wsl wsl2 아키텍처 구조 도식

이는 위의 두번째 wsl2 그림처럼 리눅스와 윈도우 간의 소통을 구현함으로서 해결하였다. VM으로 OS를 구동하면 성능에 문제가 있지 않나? 이는 OS 내에서 VM을 통해 OS를 또 구동한 것이 아니라 하이퍼바이저를 사용하여 해결했다.

그리고 느끼기로는 wsl2는 일반 VM보다 가볍고 빠르다. 그럴 수 있는 이유는 Docker와 비슷하게 containerized 방식을 사용하는 게 아닐까 싶다. 실제로 Centos등의 이미지를 wsl2에서 구동할 때 Docker에서 그 이미지를 빼온다. (WSL과 함께 사용할 Linux 배포판 가져오기 | Microsoft Learn)

근데 이걸 누가써?


사실 그냥 리눅스 OS와 해당 개발환경에 익숙해 지는 것이 가장 편하다.
근데 나같은 윈도우즈 OS 골수 유저는 아무리 리눅스와 커널을 사용해도 익숙해지지가 않더라.

그런 사람들에게 wsl 2는 아주 좋은 선택지이다. 사실 최근 기술들은 거의 대부분이 리눅스에서 출시된다고 보면 될 정도로 리눅스의 지배력이 강한데 윈도우를 포기하기는 싫다면 지금 당장 윈도우즈에 wsl 2를 설치하자.

또는 이제 최신 IT 기술들을 배우려는 사람들에게도 추천한다. 그런 초심자는 리눅스에 익숙해지기 전에 나가떨어지기 십상인데, 윈도우 환경에서 리눅스를 다뤄볼 수 있으니 얼마나 편한가?

주의할 점


위에도 서술했지만 wsl1은 진짜 리눅스가 아니라 윈도우 커널에 맞게 리눅스 명령어를 번역해주는 개념이다.

따라서 native한 리눅스만큼 호환성이 좋지 못하다. 어떤 프로그램을 받아 구동했는데 사용자의 이유가 아닌 wsl 자체 문제로 오류가 발생할 수 있다는 것이다. 개발 도중 문제가 발생할 때, 이게 내 문제인지 wsl의 문제인지 식별하는 것 부터가 골치 아픈 작업이 되기도 한다.

왠만하면 wsl 2를 설치하자!
다만 wsl 2도 요구사항이 있으니 반드시 확인해볼 것!

wsl2 시스템 요구사항

마치며


같이보면 좋을 글

FAQ 정보 Linux용 Windows 하위 시스템 | Microsoft Learn

[WSL] 나의 OS 이야기 | 천년나무 블로그 (xeppetto.github.io)

이전글

다음글


Posted

in

,

by

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다