Windows Subsystem for Linux : 윈도우 속의 리눅스 세계

 

Windows Subsystem for Linux : 윈도우 속의 리눅스 세계

WSL이란 무엇인가?

Windows Subsystem for Linux(이하 WSL)은 윈도우 운영체제에서 리눅스 환경을 사용할 수 있게 해주는 마이크로소프트의 혁신적인 기술입니다. 과거에는 윈도우와 리눅스 사이의 벽이 높아 개발자들이 두 환경을 오가며 작업하는 것이 불편했습니다. 가상 머신을 사용하거나 듀얼 부팅 시스템을 구축해야 했죠. 하지만 WSL의 등장으로 윈도우 내에서 직접 리눅스 명령어와 도구들을 사용할 수 있게 되었습니다.

WSL은 단순한 에뮬레이터가 아닙니다. 윈도우 커널과 리눅스 커널이 함께 작동하는 방식으로, 효율적인 성능과 뛰어난 호환성을 제공합니다. 특히 WSL 2는 실제 리눅스 커널을 사용하여 더욱 완벽한 리눅스 호환성을 제공합니다.

WSL의 역사와 발전

WSL은 크게 두 가지 버전으로 발전해왔습니다:

WSL 1 2016년에 처음 출시되었으며, 윈도우가 리눅스 시스템 호출을 윈도우 NT 커널에서 처리할 수 있는 호출로 변환하는 방식으로 작동했습니다. 하지만 이 방식은 일부 리눅스 앱과의 호환성 문제가 있었습니다.

WSL 2 2019년에 소개되어 완전히 다른 접근 방식을 취했습니다. 가볍고 효율적인 가상화 기술을 사용하여 실제 리눅스 커널을 윈도우에서 실행합니다. 이는 성능을 크게 향상시키고 거의 완벽한 리눅스 호환성을 제공합니다.

현재는 WSL 2가 주로 사용되며, 마이크로소프트는 지속적으로 기능을 개선하고 있습니다.

WSL의 장점

WSL을 사용하면 다음과 같은 이점이 있습니다:

1.     개발 환경 통합: 윈도우의 편안함과 리눅스의 강력한 개발 도구를 함께 사용할 수 있습니다.

2.     리소스 효율성: 완전한 가상 머신보다 적은 리소스를 사용합니다.

3.     빠른 성능: 특히 WSL 2는 파일 시스템 성능이 뛰어납니다.

4.     다양한 배포판 지원: Ubuntu, Debian, Fedora 등 다양한 리눅스 배포판을 설치할 수 있습니다.

5.     GUI 애플리케이션 지원: 최신 버전에서는 리눅스 GUI 앱도 실행 가능합니다.

WSL 설치 방법

WSL을 설치하는 방법은 생각보다 간단합니다. 다음 단계를 따라해보세요.

사전 요구 사항

  • Windows 10 버전 2004 이상 또는 Windows 11
  • 관리자 권한

간편 설치 (Windows 10 버전 2004 이상 또는 Windows 11)

가장 간단한 방법은 PowerShell이나 명령 프롬프트를 관리자 권한으로 실행한 후 다음 명령어를 입력하는 것입니다:

wsl --install

이 명령어는 다음 작업을 자동으로 수행합니다:

  • WSL 2를 위한 필수 구성요소 활성화
  • 'Virtual Machine Platform' 기능 활성화
  • Linux 커널 패키지 다운로드 및 설치
  • WSL 2를 기본 버전으로 설정
  • Ubuntu를 기본 배포판으로 다운로드 및 설치

설치가 완료되면 컴퓨터를 재시작해야 합니다.

다른 리눅스 배포판 설치하기

기본적으로 'wsl --install' 명령은 Ubuntu를 설치하지만, 다른 배포판을 선택할 수도 있습니다:

# 사용 가능한 배포판 목록 확인

wsl --list --online

 

# 특정 배포판 설치하기 (: Debian)

wsl --install -d Debian

WSL 사용 방법

WSL을 설치한 후에는 여러 가지 방법으로 리눅스 환경에 접근할 수 있습니다.

1. 터미널에서 접근하기

설치한 리눅스 배포판을 시작 메뉴에서 찾아 실행하거나, 명령 프롬프트 또는 PowerShell에서 다음 명령어를 입력합니다:

wsl

이렇게 하면 기본 배포판의 터미널이 열립니다. 특정 배포판을 열고 싶다면:

wsl -d Ubuntu  # 또는 다른 배포판 이름

2. Windows Terminal 사용하기

Windows Terminal WSL과 함께 사용하기 매우 좋은 도구입니다. Windows Terminal을 설치한 후에는 드롭다운 메뉴에서 설치된 리눅스 배포판을 쉽게 선택할 수 있습니다.

3. VS Code와의 통합

Visual Studio Code에서는 'Remote - WSL' 확장 프로그램을 설치하여 WSL 환경에서 직접 코드를 작성하고 실행할 수 있습니다:

1.     VS Code 설치

2.     'Remote - WSL' 확장 프로그램 설치

3.     VS Code의 좌측 하단에 있는 녹색 아이콘을 클릭하여 'New WSL Window' 선택

이렇게 하면 WSL 환경 내에서 VS Code가 실행되어 리눅스 도구와 완벽하게 통합됩니다.

파일 시스템 이해하기

WSL에서는 두 가지 파일 시스템에 접근할 수 있습니다:

1.     리눅스 파일 시스템/home/username/ 디렉토리를 포함한 리눅스 파일 시스템입니다.

2.     윈도우 파일 시스템/mnt/c/ 형식으로 윈도우 드라이브에 접근할 수 있습니다.

성능을 최적화하려면 리눅스 개발 작업은 리눅스 파일 시스템에서 진행하는 것이 좋습니다. WSL 2에서는 리눅스 파일 시스템이 훨씬 빠른 성능을 제공하기 때문입니다.

윈도우 파일 탐색기에서 리눅스 파일 시스템에 접근하려면:

# PowerShell에서

explorer.exe .

리눅스 터미널에서 현재 디렉토리를 윈도우 파일 탐색기로 열 수 있습니다.

WSL 고급 기능 및 팁

1. GUI 애플리케이션 실행하기

최신 WSL 버전에서는 GUI 애플리케이션을 바로 실행할 수 있습니다. 예를 들어 Firefox를 설치하고 실행하는 방법은 다음과 같습니다:

sudo apt update

sudo apt install firefox

firefox

2. 포트 포워딩

WSL에서 실행 중인 서버는 자동으로 윈도우에서 접근할 수 있습니다. 예를 들어 WSL에서 웹 서버를 3000번 포트로 실행하면, 윈도우 브라우저에서 localhost:3000으로 접속할 수 있습니다.

3. WSL 버전 확인 및 변경

현재 사용 중인 WSL 버전을 확인하려면:

wsl -l -v

특정 배포판의 WSL 버전을 변경하려면:

wsl --set-version <배포판 이름> <버전 번호>

4. 리소스 제한 설정

WSL 2가 사용할 수 있는 메모리와 CPU를 제한하려면 %UserProfile%\.wslconfig 파일을 생성하고 다음 내용을 추가합니다:

[wsl2]

memory=4GB

processors=2

일반적인 문제 해결

1. WSL 설치 오류

WSL 설치 중 오류가 발생하면 다음을 확인하세요:

  • Windows 버전이 최신인지 확인
  • BIOS에서 가상화 기능이 활성화되어 있는지 확인
  • Windows 기능에서 'Virtual Machine Platform' 'Windows Subsystem for Linux' 기능이 활성화되어 있는지 확인

2. 느린 성능

WSL 2에서 성능 문제가 있다면:

  • 윈도우 파일 시스템이 아닌 리눅스 파일 시스템에서 작업하는지 확인
  • 안티바이러스 프로그램이 WSL 폴더를 검사 대상에서 제외했는지 확인
  • .wslconfig 파일로 리소스 할당을 최적화

3. 네트워크 문제

네트워크 연결 문제가 있다면 WSL을 다시 시작해보세요:

wsl --shutdown

wsl

 

WSL D 드라이브에 설치하는 방법

Windows Subsystem for Linux(WSL)는 기본적으로 C 드라이브에 설치됩니다. 하지만 SSD 용량이 제한적이거나, 시스템 드라이브를 가볍게 유지하고 싶다면 D 드라이브와 같은 다른 드라이브에 WSL을 설치하는 것이 유리할 수 있습니다. 이 글에서는 WSL D 드라이브에 설치하는 여러 방법을 자세히 알아보겠습니다.

WSL D 드라이브에 설치하는 방법들

WSL D 드라이브에 설치하는 것은 직접적인 명령어로는 불가능합니다. wsl --install 명령어는 기본적으로 시스템 드라이브에 설치하게 되어 있기 때문입니다. 하지만 우회적인 방법들을 통해 D 드라이브에 WSL을 설치할 수 있습니다.


방법 1: WSL 배포판을 내보내고 다시 가져오기

이 방법은 가장 널리 사용되는 방법으로, 이미 설치된 WSL 배포판을 D 드라이브로 이동시키는 과정입니다.

1단계: WSL 배포판 설치하기

먼저 일반적인 방법으로 WSL 배포판을 설치합니다:

wsl --install -d Ubuntu  # 또는 다른 원하는 배포판

2단계: 사용자 계정 설정하기

설치 후 리눅스 배포판이 실행되면 사용자 이름과 비밀번호를 설정합니다. 이 단계는 중요합니다. 왜냐하면 내보내기 전에 기본 설정이 완료되어야 하기 때문입니다.

3단계: WSL 배포판을 tar 파일로 내보내기

PowerShell을 관리자 권한으로 실행하고 다음 명령어를 입력합니다:

wsl --export Ubuntu D:\ubuntu.tar

이 명령어는 Ubuntu 배포판을 D 드라이브의 루트에 'ubuntu.tar'라는 파일로 내보냅니다.

4단계: 기존 WSL 배포판 등록 해제하기

다음 명령어로 C 드라이브에 설치된 배포판을 제거합니다:

wsl --unregister Ubuntu

5단계: D 드라이브에 디렉토리 만들기

WSL 설치를 위한 디렉토리를 D 드라이브에 생성합니다:

mkdir D:\WSL\Ubuntu

6단계: tar 파일에서 WSL 배포판 가져오기

이제 내보낸 tar 파일을 D 드라이브의 새 위치로 가져옵니다:

wsl --import Ubuntu D:\WSL\Ubuntu D:\ubuntu.tar

이 명령어는 세 가지 매개변수를 사용합니다:

  • 배포판 이름 (Ubuntu)
  • 설치할 디렉토리 경로 (D:\WSL\Ubuntu)
  • 가져올 tar 파일 경로 (D:\ubuntu.tar)

7단계: 기본 사용자 설정하기

이 방법으로 가져온 WSL은 기본적으로 root 사용자로 로그인됩니다. 원래 설정한 사용자로 로그인하려면 기본 사용자를 변경해야 합니다.

ubuntu config --default-user 사용자이름

여기서 '사용자이름' 3단계 이전에 설정한 사용자 이름입니다.

8단계: 임시 tar 파일 삭제하기

설치가 완료되었다면 임시로 생성한 tar 파일은 삭제해도 됩니다:

del D:\ubuntu.tar


방법 2: wslpath를 이용한 설치 (WSL 2 전용)

WSL 2를 사용한다면, 가상 디스크 파일(.vhdx)의 위치를 조정하여 D 드라이브에 설치할 수 있습니다.

1단계: WSL 기능 활성화하기

아직 WSL 기능을 활성화하지 않았다면, 다음 명령어로 WSL 기능을 활성화합니다:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

컴퓨터를 재시작한 후, WSL 2를 기본 버전으로 설정합니다:

wsl --set-default-version 2

2단계: .wslconfig 파일 생성하기

사용자 프로필 디렉토리에 .wslconfig 파일을 생성합니다:

notepad "$env:USERPROFILE\.wslconfig"

다음 내용을 파일에 추가합니다:

[wsl2]

kernel=

memory=4GB

processors=4

localhostForwarding=true

swap=0

swapFile=D:\\wsl-swap.vhdx

여기서 swapFile 경로가 D 드라이브로 지정되어 있습니다. 메모리와 프로세서 수치는 시스템에 맞게 조정하세요.

3단계: WSL 배포판 다운로드하기

Microsoft Store나 직접 다운로드를 통해 원하는 배포판을 다운로드합니다. 예를 들어, Ubuntu를 다운로드하려면:

curl.exe -L -o D:\ubuntu-2004.appx https://aka.ms/wslubuntu2004

4단계: 배포판 설치하기

다운로드한 appx 파일을 이용해 배포판을 설치합니다:

Add-AppxPackage D:\ubuntu-2004.appx

5단계: VHDX 파일 위치 변경하기

WSL 2는 가상 디스크 파일(.vhdx)을 사용합니다. 이 파일의 기본 위치는 %USERPROFILE%\AppData\Local\Packages\<DistroPackageName>\LocalState\ 입니다.

배포판을 처음 실행한 후, WSL을 종료하고 이 vhdx 파일을 D 드라이브로 이동한 다음, 레지스트리를 수정하여 새 위치를 가리키도록 할 수 있습니다. 하지만 이 방법은 복잡하고 레지스트리 편집이 필요하므로 첫 번째 방법을 추천합니다.

주의사항 및 팁

성능 고려사항

WSL을 외장 하드 드라이브나 네트워크 드라이브가 아닌 내장 디스크에 설치하는 것이 성능 면에서 좋습니다. SSD NVMe 드라이브를 사용하는 것이 가장 이상적입니다.

디스크 공간 관리

WSL 배포판의 크기는 사용량에 따라 달라질 수 있습니다. 사용하지 않는 배포판은 제거하여 디스크 공간을 확보하세요:

wsl --unregister <배포판이름>

WSL 버전 확인

현재 사용 중인 WSL 버전을 확인하려면:

wsl -l -v

이 명령어는 설치된 모든 배포판과 각각의 WSL 버전을 보여줍니다.

여러 배포판 관리

여러 개의 리눅스 배포판을 설치하고 D 드라이브에 저장할 수 있습니다. 각 배포판마다 별도의 디렉토리를 만들어 관리하는 것이 좋습니다:

mkdir D:\WSL\Ubuntu

mkdir D:\WSL\Debian

mkdir D:\WSL\Fedora

WSL D 드라이브에 설치하는 것은 C 드라이브의 공간을 절약하고 시스템 드라이브의 부담을 줄이는 좋은 방법입니다. 가장 안정적인 방법은 WSL 배포판을 내보내고 다시 가져오는 첫 번째 방법입니다. 이 과정이 약간 번거롭게 느껴질 수 있지만, 한 번만 설정하면 계속해서 D 드라이브에서 WSL을 사용할 수 있습니다.

 

OS 간 파일 액세스
모든 파일과 함께 운영 체제에서 작업할 수 있습니다.

Linux에서 Windows 파일에 액세스
C 드라이브에 대한 다음 예제와 같이 /mnt로 이동한 다음 Windows 드라이브 문자를 이동하여 Linux 내에서 Windows 파일에 액세스할 수 있습니다.
cd /mnt/c/

파일 탐색기를 사용하여 Linux 파일에 액세스
파일 탐색기에서 \\wsl$\localhost\로 이동하거나 'Linux' 아이콘을 클릭하여 Linux 파일을 볼 수 있습니다.

WSL에서 Windows 파일 및 프로그램 시작
WSL을 사용하는 동안에도 bash에서 직접 Windows 실행 파일을 실행할 수 있습니다. 실행 시도
powershell.exe /c start .를 클릭하여 현재 폴더의 파일 탐색기를 엽니다.

네트워킹 통합
Windows 및 Linux 운영 체제에서 네트워킹 앱에 쉽게 액세스할 수 있습니다.

Windows에서 Linux 네트워킹 앱 액세스
Linux 배포판에서 네트워킹 앱(예: NodeJS 또는 SQL 서버에서 실행되는 앱)을 빌드하는 경우 평소와 같이 localhost를 사용하여 Windows 앱(예: Edge 또는 Chrome 인터넷 브라우저)에서 액세스할 수 있습니다. 즉, 포트 3000을 수신 대기하는 Linux 서버를 시작한 경우 Windows의 Edge에서 http://localhost:3000으로 이동하여 액세스할 수 있습니다.

미러 모드 네트워킹
WSL에는 IPv6 지원 및 LAN에서 네트워킹 애플리케이션에 액세스하는 기능과 같은 고급 기능을 추가하는 미러 모드라는 새로운 네트워킹 모드도 포함되어 있습니다.

GUI 앱
Alt-tab, 시작 메뉴 실행, 작업 표시줄 고정 및 잘라내기 및 붙여넣기 지원과 같은 기본 Windows 상호 작용과 함께 그래픽 기반 Linux 애플리케이션을 사용할 수 있습니다.

다음은 시도할 앱 목록입니다(‘sudo apt install <앱 이름>’을 입력하여 Ubuntu에서 이러한 모든 항목을 설치할 수 있습니다.)

  • gedit – 기본 텍스트 편집기

  • audacity – 오디오 파일 녹음 및 편집

  • blender – 3D 애니메이션 및 시각화 만들기

  • gimp – 사진 편집

  • nautilus – Linux 파일 탐색기

  • vlc – 비디오 플레이어

VS Code 통합

WSL을 VS Code 직접 전체 개발 환경으로 사용할 수 있습니다.

설치 방법 VS Code 설치한 후 Windows 터미널 원격 WSL 확장을 설치할 수 있습니다.

'code --install-extension ms-vscode-remote.remote-wsl'

Visual Studio Code WSL 프로젝트 열기 WSL 네트워크 VS Code 프로젝트를 열려면 배포의 명령을 열고 'code .'를 실행하여 프로젝트 파일을 엽니다.

VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵션에 액세스할 수도 있습니다. 키보드에서 "SHIFT+CTRL+P"를 눌러 명령 팔레트를 열고 'Remote-WSL'을 입력하여 사용 가능


마무리하며

WSL은 윈도우와 리눅스의 장점을 결합한 강력한 도구입니다. 웹 개발, 데이터 사이언스, DevOps 등 다양한 영역에서 개발자들의 생산성을 크게 향상시킬 수 있습니다. 특히 VS Code와의 통합은 거의 완벽한 개발 환경을 제공합니다.

 

 


댓글 쓰기

0 댓글