본문 바로가기
용어 사전

WSL(Windows Subsystem for Linux)이란?

by 테크원 2023. 6. 21.
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)

WSL(Windows Subsystem for Linux)

WSL(Windows Subsystem for Linux)이란?

WSL(Windows Subsystem for Linux)Windows 운영 체제에서 Linux 운영 체제를 실행할 수 있는 가상 환경을 말합니다. WSL을 설치하면 Windows 운영 체제에서 Linux 배포판(다양한 Linux 버전)을 선택하고 설치할 수 있습니다.

 

WSL은 Windows와 Linux의 각각의 장점을 결합하여 사용할 수 있는 매우 유용한 기능으로 WSL을 통해 Windows에서 Linux 명령어와 프로그램을 실행할 수 있습니다. 이는 Windows 사용자가 Linux 환경에서 제공하는 도구와 개발 환경을 사용할 수 있게 해주는데, 예를 들자면 Linux의 강력한 명령줄 도구, 개발 언어 컴파일러, 서버 소프트웨어, 데이터베이스 관리 시스템 등을 Windows에서 직접 실행할 수 있게 해줍니다.

 

또한 Windows 파일 시스템에 액세스할 수 있으므로 Windows 파일을 Linux 명령어를 사용하여 처리하거나 Linux 파일을 Windows 애플리케이션에서 사용할 수 있고 네트워크 통신을 통해 Windows와 WSL에서 실행되는 Linux 애플리케이션 간에 상호작용할 수 있습니다.

 

WSL 2의 경우 가상화 기술을 사용하여 Linux 커널을 완전히 가상화하고 Windows와는 분리된 환경에서 실행하여 Docker와 같은 컨테이너 기술을 사용하여 Linux 컨테이너를 실행할 수도 있습니다.

 

WSL이 필요한 이유

WSL은 개발자들과 Linux에 익숙한 사용자들에게 매우 유용한 기능으로 WSL을 사용하면 Windows 환경에서 Linux 쉘(shell)이라고 하는 명령어 입력 환경을 직접 체험할 수 있습니다.

 

쉘이란 사용자가 컴퓨터에게 명령을 내릴 수 있도록 해주는 프로그램으로, WSL을 통해 Windows 사용자는 Linux의 명령어를 실행하고 결과를 받아볼 수 있습니다. 예를 들어, ls라는 명령어를 입력하면 현재 폴더에 있는 파일들의 목록을 볼 수 있습니다.

 

WSL은 Windows 운영체제와 Linux 운영체제 간의 상호 운용성을 제공하여 개발자들이 Windows에서도 Linux 환경을 사용할 수 있도록 합니다. 이를 통해 Linux에 익숙한 개발자는 자신이 알고 있는 Linux 명령어와 도구를 Windows에서도 활용할 수 있게 됩니다.

 

또한, WSL은 Windows와 Linux 간의 통합을 강화해주는데, Windows에서 Linux 파일에 접근하거나 Linux 명령어를 실행하는 등의 작업이 가능합니다. 이는 개발 프로젝트나 환경에 따라 Windows와 Linux 간의 유연한 작업을 가능하게 해줍니다.

 

따라서 WSL은 Windows 사용자들에게 Linux 환경을 손쉽게 접근하고 활용할 수 있는 기능을 제공하여 개발 작업과 관련된 편의성과 유연성을 높여주는 유용한 도구입니다.

 

WSL의 주요 기능과 이점

호환성: WSL을 사용하면 Windows 운영 체제에서 Linux 바이너리 파일(예: ELF 포맷)과 명령어를 직접 실행할 수 있습니다. 이는 Windows 사용자들이 Windows 환경과 Linux 환경 간에 전환을 쉽게 할 수 있게 해줍니다.

 

완전한 개발 환경: WSL을 통해 Linux 개발 도구와 명령줄 유틸리티를 Windows에서 실행할 수 있습니다. 이는 개발자들이 Windows에서 Linux 개발 환경을 구축하고 관리하는 데 도움이 됩니다.

 

패키지 관리자: WSL은 기본적으로 Ubuntu, Debian, SUSE, Kali 등 다양한 Linux 배포판을 지원합니다. 이를 통해 사용자는 WSL을 통해 Linux 패키지 관리자 (예: apt-get, yum)를 사용하여 손쉽게 소프트웨어를 설치하고 관리할 수 있습니다.

 

파일 시스템 액세스: WSL은 Windows 파일 시스템에 대한 액세스 권한을 제공합니다. 이는 Windows 파일 시스템의 파일에 WSL을 통해 접근하여 Linux 명령어 및 도구를 사용할 수 있음을 의미합니다.

 

네트워크 통합: WSL은 Windows와 동일한 네트워크 스택을 사용하므로 WSL에서 실행 중인 Linux 애플리케이션은 Windows에서 실행 중인 애플리케이션과 네트워크를 통해 통신할 수 있습니다.

 

GUI 애플리케이션 지원: WSL 2의 경우, X 서버를 사용하여 Linux에서 GUI 애플리케이션을 실행할 수 있습니다. 이를 통해 Linux 기반의 개발 도구나 응용 프로그램을 Windows에서 사용할 수 있습니다.

 

 

WSL1과 WSL2의 차이점

WSL은 WSL 1과 WSL 2로 두 가지의 다른 버전이 존재하며 각각의 차이점은 다음과 같습니다.

1. WSL 1과 WSL 2의 실행 방식

WSL 1은 번역 계층을 사용하여 Windows 커널 위에서 Linux 바이너리를 실행하며, WSL 2는 가상 머신을 사용하여 실제 Linux 커널을 실행합니다. WSL 2는 완벽한 Linux 호환성과 더 높은 성능을 제공하며, Windows와 Linux 간의 통합 환경을 향상시킵니다.

2. 파일 시스템 성능 및 시스템 호출 호환성

WSL 2는 WSL 1보다 파일 시스템 성능이 향상되었고, 전체 시스템 호출 호환성을 제공합니다. 시스템 호출은 운영체제가 제공하는 기능을 프로그램이 요청하는 것을 말합니다. WSL 2에서 파일 열기, 저장, 삭제 등의 작업이 더욱 효율적으로 처리됩니다.

3. Windows와 Linux 간의 통합

WSL 2는 Windows와 Linux 간의 통합을 원활하게 지원하는 기술입니다. 이를 통해 Windows 운영체제에서는 Linux 파일에 접근할 수 있으며, Linux 환경에서는 Windows 프로그램을 실행할 수도 있습니다.

 

이제 Windows 사용자들은 자신의 시스템에서 Linux 운영체제를 가상화하여 사용할 수 있게 되었고, 이는 Windows와 Linux 간의 상호작용을 용이하게 만들어줍니다.

4. Linux 커널 업데이트

WSL 2는 Windows 업데이트를 통해 Linux 커널을 자동으로 업데이트해주는 기능을 제공합니다. 여기서 Linux 커널은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 사이에서 매우 중요한 역할을 담당합니다.

 

이전의 WSL 1은 Windows 시스템과 Linux 환경 간의 상호작용을 제공하는데 사용되었지만, Linux 커널을 완벽하게 호스팅하지는 않았습니다. 그러나 WSL 2에서는 Microsoft가 Hyper-V 기술을 사용하여 가상화된 Linux 커널을 직접 실행할 수 있도록 업그레이드했습니다.

5. 지원하는 Linux 애플리케이션과 도구

WSL 2는 WSL 1보다 더 많은 Linux 애플리케이션과 도구를 실행할 수 있습니다. 이를 통해 다양한 개발 및 운영 환경을 구축할 수 있습니다.

 

예를 들어, WSL 2는 Docker와 같은 컨테이너 기술을 지원하는데 컨테이너란 애플리케이션을 독립적인 환경으로 격리하여 실행하는 기술을 말합니다. 각각의 컨테이너는 자체 파일 시스템, 라이브러리 및 종속성을 갖고 있어 서로 영향을 주지 않으면서 독립적으로 실행됩니다. 이는 애플리케이션의 배포와 관리를 단순화하고, 다양한 환경에서 일관된 실행을 보장합니다.

6. 사용 가능한 Windows 버전

WSL 2는 Windows 11 또는 Windows 10 버전 1903 이상에서만 사용할 수 있습니다. 이는 WSL 2가 추가된 최신 버전의 Windows 운영체제에서만 이용할 수 있다는 뜻입니다.

 

반면에 WSL 1은 이전 버전의 Windows에서도 사용할 수 있습니다. WSL 1은 Windows의 이전 버전에 추가된 기능으로, 기존 Windows 운영체제에서 Linux 운영체제를 실행하기 위한 번역 과정을 거쳐서 실행됩니다.

7. OS 파일 시스템 성능

WSL 2는 OS 파일 시스템 간의 성능이 WSL 1보다 느릴 수 있습니다. 운영체제 파일 시스템은 파일을 저장하고 관리하는 방식을 의미하는데 하는데, Windows는 NTFS, Linux는 ext4와 같은 파일 시스템을 사용합니다. 따라서 프로젝트 파일을 실행 중인 도구와 동일한 운영체제의 파일 시스템에 저장하는 것이 성능 향상에 도움이 됩니다.

 

표로 정리하면 다음과 같습니다.

 

기능 WSL 1 WSL 2
Windows와 Linux 통합 O O
빠른 부팅 시간 O O
기존 가상 머신보다 작은 리소스 공간 O O
현재 버전의 VMware 및 VirtualBox에서 실행 O O
관리 VM X O
전체 Linux 커널 X O
전체 시스템 호출 호환성 X O
OS 파일 시스템 간 성능 O X

 

반응형