Windows 하위 시스템(WSL)이란 무엇인가요?
WSL은 Microsoft에서 개발한 호환성 계층으로, Windows 운영 체제에서 완전한 Linux® 환경을 직접 실행할 수 있도록 해줍니다. WSL을 사용하면 가상 머신이나 이중 부팅 설정 없이도 Linux® 명령줄 도구를 사용하고 Linux® 애플리케이션을 실행할 수 있습니다.
WSL은 어떻게 작동하나요?
WSL은 Linux® 시스템 호출을 Windows 시스템 호출로 변환하여 Linux® 바이너리를 Windows에서 기본적으로 실행할 수 있도록 하는 방식으로 작동합니다. 시스템 호출을 리디렉션하고 파일 시스템, 네트워크 및 프로세스 실행을 관리하는 Linux® 호환 커널 인터페이스를 제공합니다. 이를 통해 Linux® 도구 및 유틸리티를 Windows 워크플로에 원활하게 통합할 수 있습니다.
WSL을 사용하면 어떤 이점이 있나요?
WSL을 사용하면 몇 가지 이점이 있습니다. 첫째, 개발자가 다른 운영 체제로 전환하거나 가상 머신을 설정할 필요 없이 Linux® 도구 및 유틸리티를 활용할 수 있습니다. 따라서 크로스 플랫폼 애플리케이션을 더 쉽게 개발하고 테스트할 수 있습니다. 또한 WSL은 인기 있는 프로그래밍 언어, 도구 및 패키지 관리자를 포함한 풍부한 Linux® 에코시스템에 대한 액세스를 제공합니다. 또한 기존 가상화 솔루션에 비해 향상된 성능을 제공합니다.
모든 Windows 버전에서 WSL을 사용할 수 있나요?
아니요, WSL은 특정 버전의 Windows에서만 사용할 수 있습니다. 처음에는 Windows 10 버전 1607에 도입되었으며 이후 다양한 업데이트와 개선이 이루어졌습니다. 현재 WSL은 Windows 10 Pro, Enterprise 및 Education 버전에서 지원됩니다. 그러나 Windows 11이 출시되면 홈을 포함한 모든 Windows 11 버전에서 WSL을 사용할 수 있게 됩니다.
WSL은 어떤 Linux® 배포판을 지원하나요?
WSL은 현재 우분투, 데비안, 페도라, 칼리 리눅스 등 여러 Linux® 배포판을 지원합니다. 이러한 배포판은 Microsoft Store에서 직접 설치하거나 배포판의 appx 패키지를 다운로드하여 설치할 수 있습니다. 각 배포판은 별도의 격리된 환경으로 실행되므로 서로 다른 배포판을 나란히 설치할 수 있습니다.
내 Windows 머신에 WSL을 설치하고 사용하려면 어떻게 해야 하나요?
WSL을 설치하려면 다음 단계를 따르세요:
관리자로 Windows PowerShell을 엽니다.
wsl --install 명령을 실행하여 필요한 Windows 기능을 활성화하고 Linux® 커널 업데이트를 다운로드합니다.
메시지가 표시되면 컴퓨터를 다시 시작합니다.
다시 시작한 후 Microsoft Store를 열고 원하는 Linux® 배포판을 검색합니다.
설치하려는 배포판을 선택하고 “설치” 버튼을 클릭합니다.
설치가 완료되면 시작 메뉴에서 또는 명령 프롬프트 또는 PowerShell에서 해당 명령을 실행하여 배포판을 실행합니다.
WSL 내에서 내 Windows 시스템의 파일에 액세스할 수 있나요?
예, WSL 내에서 Windows 시스템의 파일에 액세스할 수 있습니다. WSL은 Windows 드라이브를 마운트하고 액세스할 수 있는 편리한 방법을 제공하므로 두 환경 간에 파일과 디렉터리로 원활하게 작업할 수 있습니다. 기본적으로 Windows 드라이브는 WSL 내의 /mnt 디렉터리에 자동으로 마운트됩니다. 예를 들어, WSL에서 /mnt/c/로 이동하여 C: 드라이브에 액세스할 수 있습니다.
WSL로 그래픽 애플리케이션을 실행할 수 있나요?
예, Windows X 서버를 활용하여 WSL로 그래픽 애플리케이션을 실행할 수 있습니다. 널리 사용되는 Windows용 X 서버 중 하나는 Xming입니다. X 서버를 설치한 후 DISPLAY 환경 변수를 설정하여 WSL을 사용하도록 구성할 수 있습니다. 이렇게 하면 Linux® GUI(그래픽 처리 장치) 애플리케이션을 실행하여 Windows 데스크톱에 표시할 수 있습니다.
WSL은 Docker를 지원하나요?
예, WSL은 Docker를 지원합니다. WSL의 최신 버전인 WSL 2를 사용하면 WSL에서 제공하는 Linux® 환경 내에서 직접 Docker 컨테이너를 실행할 수 있습니다. 따라서 가상 머신 내에서 Docker를 실행할 때보다 성능이 향상됩니다. 또한 WSL 2는 Docker Desktop과 통합되어 컨테이너를 더 쉽게 관리하고 작업할 수 있습니다.
WSL 내에서 Windows 명령줄 도구에 액세스할 수 있나요?
예, WSL 내에서 Windows 명령줄 도구에 액세스할 수 있습니다. WSL은 Windows와 Linux® 환경 간의 상호 운용성을 제공하므로 Windows 실행 파일을 실행하고 Windows 전용 명령을 사용할 수 있습니다. 예를 들어, WSL 내에서 ipconfig 또는 regedit를 실행하여 네트워크 정보에 액세스하거나 Windows 레지스트리를 수정할 수 있습니다.
웹 개발에 WSL을 사용할 수 있나요?
물론, WSL은 웹 개발에 일반적으로 사용되는 방대한 도구와 프레임워크에 쉽게 액세스할 수 있기 때문에 웹 개발자들 사이에서 인기가 높습니다. Python, Node.js, Ruby와 같은 인기 프로그래밍 언어를 설치할 수 있을 뿐만 아니라 Apache, Nginx, MySQL, PostgreSQL과 같은 인기 웹 서버 및 데이터베이스를 실행할 수 있습니다. WSL을 사용하면 Windows 컴퓨터에서 웹 애플리케이션을 원활하게 개발하고 테스트할 수 있습니다.
WSL은 그래픽 처리 장치(GPU) 가속을 지원하나요?
현재로서는 WSL에서 GPU 가속이 기본적으로 지원되지 않습니다. 하지만 Microsoft는 머신 러닝 워크로드가 WSL 내에서 GPU 가속을 활용할 수 있는 DirectML이라는 기술을 도입했습니다. 이를 통해 개발자는 머신 러닝 작업 및 학습 모델에 GPU 리소스를 활용할 수 있습니다. 이 기능은 머신 러닝 워크로드에만 해당되며 다른 유형의 애플리케이션에는 적용되지 않을 수 있다는 점에 유의해야 합니다.
WSL을 사용하여 Android™ 애플리케이션을 개발할 수 있나요?
예, Android™ 개발에 WSL을 사용할 수 있습니다. WSL을 사용하면 Android™ SDK, java 개발 키트(JDK), Android™ Studio 등 Android™ 개발에 필요한 도구를 설치하고 구성할 수 있습니다. 이를 통해 WSL에서 제공하는 Linux® 환경을 사용하여 Windows 시스템에서 직접 Android™ 애플리케이션을 빌드, 테스트 및 디버깅할 수 있습니다.
네트워크의 다른 기기에서 WSL에 액세스할 수 있나요?
기본적으로 WSL은 로컬 컴퓨터에서만 액세스할 수 있습니다. 그러나 원격 액세스를 활성화하여 네트워크의 다른 장치에서 들어오는 연결을 허용하도록 WSL을 구성할 수 있습니다. 이렇게 하면 동일한 네트워크에 연결된 다른 컴퓨터, 태블릿 또는 모바일 장치에서 WSL 인스턴스에 액세스하고 관리할 수 있습니다.
여러 Linux® 배포판에서 동시에 WSL을 사용할 수 있나요?
예, 여러 Linux® 배포판을 동시에 설치 및 실행하여 WSL 내에서 사용할 수 있습니다. 각 배포판은 별도의 인스턴스로 작동하므로 배포판 간에 전환하거나 서로 다른 배포판을 나란히 실행할 수 있습니다. 이는 여러 Linux® 환경에서 작업하거나 여러 배포판에서 애플리케이션을 테스트해야 하는 경우에 특히 유용합니다.
WSL은 머신 러닝 작업을 위한 GPU(그래픽 처리 장치) 패스스루를 지원하나요?
현재 WSL은 일반적인 용도로는 GPU 패스스루를 지원하지 않지만, WSL에서 GPU 지원을 개선하기 위한 개발이 계속 진행 중입니다. Microsoft는 WSL에 GPU 가속 기능을 도입하고 Windows와 Linux® 그래픽 하위 시스템 간의 통합을 개선하여 GPU 리소스가 필요한 머신 러닝 워크로드에 도움이 될 수 있도록 할 계획을 발표했습니다.
WSL에서 Windows 드라이브에 저장된 파일에 액세스할 수 있나요?
예. WSL 내에서 직접 Windows 드라이브에 저장된 파일에 액세스하여 작업할 수 있습니다. Windows 드라이브는 WSL 내의 /mnt/ 디렉터리에 자동으로 마운트되므로 두 환경 모두에서 파일을 원활하게 탐색하고 조작할 수 있습니다. 따라서 Windows와 Linux® 애플리케이션 간에 파일을 쉽게 공유할 수 있습니다.