본문 바로가기
개발/환경설정

WSL에 대해 알아보도록 하자

 

안녕하십니까. 야생에서 온 하프 입니다 😊

 

다양한 환경들을 접하다 보면 볼 수 있는 WSL에 대해서 알아보도록 합시다!

 

📝 목차

 

 


WSL

1. WSL이 뭔데?

WSL은 Linux용 Windows 하위 시스템이라고 하며 별도의 가상 머신 또는 이중 부팅 없이 Windows 컴퓨터에서 Linux 환경을 실행할 수 있는 WIndows 기능입니다.

Windows와 Linux를 동시에 사용하려는 개발자들에게 원활하고 생산적인 환경을 제공할 수 있도록 설계되었다고 합니다!

즉, 윈도우에서 리눅스 시스템을 동작할 수 있도록 하겠다 입니다.

 

2. WSL의 아키텍처 & 등장배경

만약 나 자신이 윈도우 서버의 시스템 관리자라고 생각을 해보자!

DB설치나 배포관련 가이드를 보게 되었을 때 리눅스로 되어 있는것이 대부분일 것 입니다.

 

그럴때마다 "아니 이거 뭐야?! 본적도 없는 이상한거잖아", "하려면 가상머신을 설치하고.. 리눅스를 설치해야 한다고?"

"아~~~~나, 설치 하고 또 뭘 설정하라고?", "귀찮아 버려" 이렇게 될 수 있습니다.

 

 

그래서 생겨난것이 WSL의 등장 배경입니다.

이러한 하위 시스템이 있다면 간단한 작업을 하려고 가상머신을 다운 받고, 운영체제를 설치해야 하는 번거로움을 줄일 수 있습니다!

 

이거시 채신기술?

 

3. WSL의 장점

 

1. 리소스 소비 최소화

가상머신의 경우 메모리, CPU와 함께 제공되는 스토리지 측면에서 오버헤드가 작지 않다.

반면 WSL에서는 호스트 운영체제에 주는 리소스 부담을 매우 최소화 할 수 있는 장점이 있다.

 

2. 리눅스 도구에 대한 접근

윈도우 운영체제에서 리눅스 바이너리를 실행하면 강력한 리눅스 애플리케이션과 도구를 사용할 수 있게 만들어준다.

따라서 윈도우 사용자가 리눅스 기능을 활동할 수 있는 완전히 새로운 기회를 얻게 된다.

 

3. 크로스 플랫폼 개발

개발자와 시스템 관리자는 모두 WSL을 활용하여 닷넷 코어 같은 크로스 플랫봄 개발 도구를 활용할 수 있다.

즉, 리눅스 가상머신을 실행하지 않고도 윈도우와 WSL에서 프로젝트를 쉽게 테스트 할 수 있다.

필자 또한, 사내의 솔루션을 테스트하기 위해 WSL을 사용하여 직접 실행하여 구동또한 시켜보았다.

 

4. 올바른 작업에 적합한 도구 사용

기본 플랫폼에 관계없이 가장 좋은 도구를 사용할 수 있다.

리눅스에 Nginx 웹 서버를 배포하는 것이 편하다면, 윈도우 운영체제 안의 리눅스 하위 시스템에서 Nginx를 실행할 수 있다.

이 내용 또한 3번의 내용과 유사하다고 볼 수 있다.

이런식으로 말이다!

Nginx 뿐만 아니라 리눅스와 거의 동일하며 각종 서버들을 열 수 있으니 매우 자유롭다고 할 수 있다.

 

5. 안전한 격리

WSL은 하위 시스템이므로 WSl에서 실행되는 애플리케이션은 실제로 호스트 운영체제의 다른 애플리케이션을 손상시킬 수 없도록 안전하게 격리된 컨테이너에서 실행된다.

이러한 점에 있어서 Docker와 유사하다고 볼 수 있다.

 


WSL vs WSL2

1. 무엇이 다른가?

WSL1은 Linux의 시스템 콜을 Windows NT 시스템 콜로 번역해주는 계층을 제공함으로써 이를 가능케 했고

WSL2의 경우는 Hyper-V기술을 이용해 실제 Linux 커널을 제공함으로써 이를 가능케 했습니다.

그래서 버전에 따른 제공 기능들은 다음과 같습니다

 

대부분의 경우! WSL2를 사용하는것이 WSL1을 사용하는것보다 유리합니다.

어? 그러면 WSL1을 사용하는 경우가 유리한 상황도 있다는것인가..?

 

WSL2에서는 운영체제간 파일 시스템을 넘나드는 조작이 느리다는 단점이 있고

파일 조작이 많을 경우는 윈도우는 윈도우에서 리눅스는 리눅스에서 하는것이 좋을 것 입니다!

즉, 운영체제간의 조작이 많을 경우는 WSL1을 사용하는 것이 좋다고 볼 수 있겠죠!

 

또한 WSL2는 가상화 기술(Hyper-V)을 이용해 구동되기 때문에, WSL2를 사용할 땐 Vmware, VirtualBox와 같은 가상화 프로그램을 사용할 수 없습니다.. 🤔

 

2. Hyper-V 가 뭔데!?

아니?! Hyper-V가 뭐길래 이랬다 저랬다 하는것일까?

간단하게 살펴보자면, Microsft Windows Server 2008부터 제공되는 가상화 솔루션입니다.

가상화된 컴퓨팅환경을 만들고 관리할 수 있는 인프라를 제공하며, 다수의 서버역할을 하는 가상머신을 사용할 수 있습니다.

 

제공가능한 기능으로는 다중 운영 체제 지원, 실시간 마이그레이션, 스냅샷, 네트워크 가상화, 원격 FX를 제공합니다

자세한 정보는 여기서 확인을 바랍니다!

 

3. WSL2의 아키텍처

위에서 설명 했던데로, 윈도우와 리눅스가 별도로 운영되어 실행이 되는 구조로 볼 수 있다.

즉, Hyper-V를 사용해, 서로 다른 운영체제를 실행한다고 볼 수 있는것이다!

 

 


 

참고문헌

1. https://www.digihunch.com/2020/06/wsl2-environment-on-windows-10/

2. https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8729537531

3. https://heekangpark.github.io/wsl/wsl

4. https://blog.naver.com/covision/220547849494

'개발 > 환경설정' 카테고리의 다른 글

WSL을 사용해보자!  (0) 2024.03.03