Computer >> 컴퓨터 >  >> 시스템 >> Mac

마이크로소프트 WSL(Linux용 Windows 하위 시스템) 완벽 정리: Windows에서 리눅스 바이너리 직접 실행하기

WSL(Linux용 Windows 하위 시스템)이란 무엇인가?

WSL(Windows Subsystem for Linux, 리눅스용 윈도우 하위 시스템)은 마이크로소프트가 제공하는 일련의 구성 요소로, 네이티브 리눅스 64비트 실행 파일 형식인 ELF64(Executable and Linkable Format) 바이너리를 Windows 10 운영체제(OS)의 커널 위에서 직접 실행할 수 있도록 지원하는 기술입니다.

Windows 10에서 WSL 기능을 활성화한 뒤 리눅스 bash 셸을 실행하면, Windows 커널 계층 위에서 동작하는 우분투(Ubuntu) 사용자 모드 이미지를 설치할 수 있습니다. 설치가 완료되면 사용자는 우분투 패키지 저장소의 다양한 파일을 실행하고, grep·sed·awk 같은 리눅스 명령줄 유틸리티를 활용하며, 리눅스 파일 시스템을 탐색하고, CLI(명령줄 인터페이스) 도구로 스크립트를 실행할 수 있습니다.

WSL은 리눅스 인스턴스를 관리하는 사용자 모드 세션 관리자 서비스, 리눅스 시스템 콜을 처리하는 최소화된 피코(Pico) 프로세스, 그리고 리눅스 커널을 에뮬레이션하는 피코 드라이버로 구성됩니다. 이러한 아키텍처 덕분에 리눅스 시스템 콜이 Windows 커널로 전달되어 원활하게 처리될 수 있습니다.

WSL은 누구를 위한 것일까?

WSL은 기본적으로 Windows 환경에서 작업하는 리눅스 개발자를 위해 설계되었습니다. 예를 들어 GitHub 등에서 리눅스 및 오픈소스 도구를 자주 활용하지만, 개발과 실험에 쓸 수 있는 완전한 리눅스 시스템에 접근하기 어려운 웹 개발자가 대표적인 사용자입니다. WSL을 활용하면 개발자는 Ruby, Python 같은 주요 개발 언어와 익숙한 리눅스 도구들을 Windows 환경에서 그대로 사용할 수 있습니다.

WSL 1 vs WSL 2: 무엇이 다른가?

마이크로소프트는 WSL 1과 보다 최신 버전인 WSL 2, 두 가지 버전을 제공합니다. 두 버전 모두 Windows와 리눅스 간의 통합을 지원하며, 가볍고 부팅 속도가 빠르다는 장점이 있습니다. 또한 VMware, Oracle VM VirtualBox 같은 비(非)마이크로소프트 하이퍼바이저와도 함께 사용할 수 있습니다.

두 버전의 핵심적인 차이 중 하나는 WSL 2가 관리형 가상 머신(VM) 내부에서 실행된다는 점입니다. VM이 자동으로 관리되기 때문에 IT 담당자는 가상 머신과 관련된 복잡한 구성이나 관리 작업을 신경 쓸 필요가 없습니다.

또 다른 차이점은 WSL 2가 완전한 리눅스 커널을 탑재한다는 것입니다. 이 커널은 마이크로소프트가 직접 빌드한 것으로, Windows Update를 통해 최신 상태로 유지됩니다.

마이크로소프트는 일반적으로 WSL 2 사용을 권장합니다. WSL 1보다 성능이 뛰어나고 시스템 콜 호환성이 100%에 달해 Docker 같은 애플리케이션도 문제없이 실행할 수 있기 때문입니다. 다만 프로젝트 파일을 Windows 파일 시스템에 저장해야 하거나, Windows와 리눅스 도구를 함께 사용하는 크로스 컴파일이 필요한 경우에는 WSL 1을 계속 사용해야 합니다.

WSL에 대한 자주 묻는 질문(FAQ)

VM에서 리눅스를 돌리는 것보다 WSL을 쓰는 이유는?

VM 안에서 리눅스를 실행하는 것도 가능하지만, WSL은 두 가지 뚜렷한 장점이 있습니다. 첫째, 완전한 VM에 비해 CPU, 메모리, 스토리지 등 컴퓨팅 자원 오버헤드가 훨씬 적습니다. 둘째, Windows와 리눅스 환경을 동시에 실행할 수 있어 필요에 따라 동일한 파일을 대상으로 Windows 애플리케이션과 리눅스 유틸리티를 함께 사용할 수 있습니다.

WSL에는 어떤 제약이 있나?

WSL에는 몇 가지 제약이 있습니다. 첫째, 모든 리눅스 애플리케이션을 지원하지 않습니다. WSL은 bash와 주요 리눅스 명령줄 유틸리티를 다루기 위한 도구로 설계되었으며, GNOME이나 KDE 같은 리눅스 GUI(그래픽 사용자 인터페이스) 환경은 지원하지 않습니다. 또한 해당 시점 기준으로 WSL은 우분투 배포판만 공식 지원합니다.

둘째, WSL은 Windows 10 전용 기능으로 Windows Server 버전에서는 제공되지 않습니다. Redis 데이터베이스처럼 일부 리눅스 서버 애플리케이션을 구동할 수는 있지만, 근본적으로 리눅스 서버 애플리케이션 호스팅을 위한 용도는 아닙니다.

WSL은 어떤 파일 시스템을 지원하나?

WSL은 두 가지 파일 시스템을 사용해 리눅스 파일 규칙을 지원하는 동시에 Windows 파일과의 상호 운용성을 제공합니다. VolFs라 불리는 파일 시스템은 리눅스 권한, 파일 링크, Windows에서 허용되지 않는 특수 문자가 포함된 이름, 리눅스 디렉터리 구조 등 리눅스 고유의 파일 규칙을 지원합니다. 다만 VolFs만으로는 Windows 애플리케이션과의 상호 운용이 불가능하며, 이 역할을 담당하는 것이 DriveFs입니다. DriveFs는 유효한 Windows 파일 이름을 보장하고 Windows 보안 정책을 적용하며, 대소문자를 구분하는 파일 이름을 지원합니다. DriveFs의 디렉터리 구조 덕분에 사용자는 동일한 파일에 Windows 도구와 리눅스 도구를 동시에 적용할 수 있습니다.

정리

WSL은 별도의 완전한 리눅스 머신 없이도 Windows 환경에서 리눅스 도구와 개발 워크플로를 그대로 활용할 수 있게 해주는 강력한 기능입니다. 특히 성능과 호환성이 크게 향상된 WSL 2를 활용하면 Docker를 포함한 다양한 리눅스 기반 개발 환경을 Windows에서 손쉽게 구축할 수 있습니다.