개발 환경: Windows와 Linux의 장점을 모두 활용하기
개발자들은 종종 Windows 환경과 Linux 환경 사이에서 선택의 어려움을 겪습니다. Windows는 다양한 도구와 소프트웨어를 제공하지만, Linux는 개발자에게 최적화된 환경을 제공합니다. 단일 컴퓨터를 사용하는 경우, 둘 중 하나의 운영 체제를 선택해야만 했습니다.
하지만 이제는 복잡한 듀얼 부팅이나 성능 저하를 유발할 수 있는 가상 머신 없이도 두 운영 체제를 동시에 사용할 수 있는 방법이 생겼습니다. 왜 하나를 선택해야 할까요? 두 가지 모두 편리하게 이용할 수 있습니다.
Windows 운영 체제 내에서 Linux의 강력한 기능들을 활용할 수 있게 되었습니다. Windows 환경에서 Linux 응용 프로그램 및 명령어를 실행하는 것은 기존의 개발 방식에 혁신적인 변화를 가져다줍니다.
먼저, 두 운영 체제의 최고 장점을 하나의 시스템에서 무료로 사용할 수 있습니다. Windows가 제공하는 다양한 소프트웨어와 뛰어난 사용자 인터페이스를 활용하면서, Linux 명령줄의 강력한 기능 또한 누릴 수 있습니다. 이는 작업 자동화, 다양한 오픈 소스 도구 활용, bash 셸에서 직접 Windows 파일 및 실행 파일에 접근하는 것을 가능하게 합니다.
또한, Linux 패키지 관리자를 사용하여 소프트웨어를 간편하게 설치하고 관리할 수 있습니다. 크로스 플랫폼 프로젝트를 쉽게 작업하고, SSH, grep, sed, awk와 같은 Linux 유틸리티를 활용할 수 있습니다.
마지막으로, Windows에서 Linux 명령을 사용하는 것은 Linux를 처음 접하는 사용자에게 보다 친숙한 접근 방식을 제공하여, 필요에 따라 Linux 운영 체제로 완전히 전환하는 것을 더 쉽게 만듭니다. 이러한 기능을 가능하게 하는 핵심 도구는 바로 ‘Linux용 Windows 하위 시스템’입니다.
Linux용 Windows 하위 시스템 (WSL)
Linux용 Windows 하위 시스템(WSL)은 2016년에 처음 소개된 Windows 기능입니다. WSL을 사용하면 가상 머신이나 듀얼 부팅 없이도 Windows에서 직접 실제 Linux 배포판을 설치하여 Linux 파일 시스템, 명령줄 도구, GUI 응용 프로그램 및 유틸리티를 사용할 수 있습니다. 즉, Linux와 Windows를 동시에 활용할 수 있게 됩니다.
WSL을 사용하려면 Windows 11 또는 Windows 10 버전 2004 이상(빌드 19041 이상)이 필요하며, x64 및 Arm CPU를 지원합니다.
WSL을 통해 Ubuntu, OpenSUSE, Kali, Debian, Fedora, Fedora remix, Arch Linux 등 다양한 Linux 배포판을 설치할 수 있으며, 이 모든 배포판은 Microsoft Store에서 간편하게 설치할 수 있습니다.
WSL은 Windows에서 Linux 실행 파일을 호출하고 Windows에서 Linux 파일을 볼 수 있도록 Windows에 통합된 Linux 환경을 제공합니다. Linux Bash Shell에서 Windows 실행 파일을 호출하고 Windows 파일에 접근하는 것 또한 가능합니다.
Linux용 Windows 하위 시스템 작동 방식
내부적으로 WSL은 에뮬레이터나 가상화기가 아닌, Windows와 Linux 사이의 호환성 계층 역할을 합니다. WSL은 수정되지 않은 ELF64 Linux 바이너리를 실행할 수 있도록 하여 통합된 환경을 제공합니다.
이를 위해 WSL은 Windows 커널 위에 위치하는 Microsoft에서 개발한 Linux 커널 인터페이스를 제공합니다. 이 Linux 커널은 Windows 내부에서 실행되며, Hyper-V의 핵심 기술을 기반으로 합니다.
Hyper-V는 가상 머신을 생성하고 실행할 수 있는 기본 하이퍼바이저 소프트웨어입니다. 하드웨어 가상화를 통해 가상 컴퓨터가 가상 하드웨어에서 실행되도록 합니다. 핵심 기술에 기반을 둔 WSL은 향상된 파일 시스템 성능과 더욱 나은 Linux 응용 프로그램 지원을 제공할 수 있습니다.
수정되지 않은 ELF64 Linux 바이너리를 실행하기 위해 WSL은 Linux 바이너리의 Linux 시스템 호출을 Windows 시스템 호출로 변환하여 기본 속도로 실행되도록 합니다.
Windows 환경에서 실행되는 WSL 제공 Linux 커널 인터페이스를 통해 다양한 Linux 배포판을 설치할 수 있습니다. 이러한 배포판은 Linux 응용 프로그램을 실행하는 데 필요한 모든 종속성 및 패키지 관리를 포함하는 컨테이너와 같은 환경을 제공합니다. Linux 응용 프로그램은 이러한 배포판 내에서 실행됩니다.
Linux용 Windows 하위 시스템을 사용하는 이유
이전에 가상 머신을 사용하여 Windows에서 Linux를 실행해본 경험이 있다면, WSL이 가상 머신과 어떻게 다른지 궁금할 것입니다. WSL은 가상 머신을 실행하는 것보다 훨씬 적은 컴퓨터 리소스를 사용합니다.
WSL은 스토리지와 메모리를 훨씬 적게 사용하며, CPU 사용량에도 큰 영향을 미치지 않습니다. 또한, WSL을 사용하면 Windows 응용 프로그램과 동일한 파일에서 Linux 명령줄 도구를 사용할 수 있습니다. 즉, Linux 환경에서 Windows 파일에 접근할 수 있습니다.
WSL의 또 다른 중요한 장점은 Linux 실행이 매우 쉽다는 것입니다. 가상화는 복잡할 수 있지만 WSL은 이러한 복잡성을 제거했습니다. 다양한 Linux 배포판을 쉽게 설치할 수 있으며, 한 Linux 배포판에서 다른 배포판으로 전환하는 것 또한 간단합니다.
개발자는 WSL을 통해 두 세계의 장점을 모두 누릴 수 있습니다. Linux를 실행하고 Linux 환경에 특화된 모든 프로그래밍 도구 및 오픈 소스 리소스에 액세스하면서, 동시에 Windows에서 제공하는 모든 기능을 이용할 수 있습니다.
WSL을 사용하면 Linux에서만 실행되는 도구를 사용할 수 있으므로 호환성 문제를 걱정할 필요가 없습니다. 또한, 두 운영 체제 간 전환이 훨씬 빠르고 쉬워지며, 복잡한 설정이나 추가 컴퓨터가 필요하지 않습니다.
Linux 명령 사용을 시작하려면, 우선 컴퓨터에 Linux용 Windows 하위 시스템을 설치하는 것이 가장 쉽습니다.
Linux용 Windows 하위 시스템 설치 방법
1. 컴퓨터가 Windows 11 또는 Windows 10 버전 2004 이상을 실행하는 64비트 시스템이어야 합니다. Windows 10 버전의 경우, 빌드 19041 이상이어야 합니다. 인터넷 연결도 필요합니다.
2. 시작 메뉴를 열고 ‘PowerShell’을 검색한 후, ‘관리자 권한으로 실행’을 선택하여 관리자 권한으로 PowerShell을 엽니다.
3. 열린 PowerShell 창에 다음 명령어를 입력합니다.
wsl --install
이 명령어는 WSL을 실행하는 데 필요한 모든 기능을 활성화하고, 운영 체제가 WSL을 원활하게 실행하는 데 필요한 업데이트를 수행합니다. 가상 머신 플랫폼 플랫폼을 설치한 다음, 마지막으로 WSL을 설치합니다. 이 과정은 시간이 걸릴 수 있으니 잠시 기다려 주십시오.
4. 프로세스가 완료되면, ‘wsl –install’을 다시 실행하여 WSL이 설치되었는지 확인할 수 있습니다. WSL에 대한 도움말 페이지가 나타나면 설치가 성공적으로 완료된 것입니다.
5. 다음 단계는 WSL과 함께 사용할 Linux 배포판을 설치하는 것입니다. 사용 가능한 모든 배포판을 보려면 PowerShell에 다음 명령어를 입력합니다.
wsl --list --online
사용 가능한 배포판 목록이 표시됩니다.
6. 목록에서 원하는 Linux 배포판을 설치하려면 다음 명령어를 입력합니다.
wsl --install -d <distribution NAME>
예를 들어, Ubuntu 22.04 Long Term Support를 설치하려면 다음 명령어를 실행합니다.
wsl --install -d Ubuntu-22.04
프로세스가 완료될 때까지 기다립니다. 완료되면 성공적으로 완료되었다는 메시지가 나타나고, Ubuntu 터미널 창이 열립니다.
환경을 설정하려면 사용자 이름과 비밀번호를 입력하십시오. Linux에서는 터미널에 비밀번호를 입력할 때 입력하는 문자가 표시되지 않지만, 입력은 정상적으로 처리됩니다.
PowerShell에서 배포판을 설치하는 대신 Microsoft Store를 열고 ‘WSL’을 검색할 수도 있습니다. 사용 가능한 모든 배포판이 표시됩니다. ‘Get’을 클릭하여 원하는 배포판을 설치하십시오.
7. 사용자 이름과 비밀번호를 입력하면, 아래와 같이 Windows에서 Ubuntu에 접근할 수 있습니다.
이제 자유롭게 자주 사용하는 Linux 명령을 사용해 보십시오.
설치된 Linux 배포판은 시작 메뉴에서 쉽게 찾을 수 있습니다.
파일 탐색기에는 모든 배포판과 Linux 파일이 저장되는 ‘Linux’라는 새로운 저장 위치도 표시됩니다.
Linux용 Windows 하위 시스템은 Windows 환경에서 Linux 명령어를 실행하는 뛰어난 방법입니다. 만약 컴퓨터가 WSL 설치에 필요한 요구 사항을 충족하지 못한다면, WSL을 대체할 수 있는 좋은 방법들이 있습니다. Windows에서 Linux 명령을 실행하는 데 도움이 되는 두 가지 에뮬레이터를 살펴보겠습니다.
Cygwin을 사용하여 Windows에서 Linux 명령어 사용
Cygwin은 Windows에서 Linux 배포판과 유사한 기능을 제공하는 대규모 GNU 및 오픈 소스 도구 모음입니다.
Cygwin은 UNIX 에뮬레이터로서, Windows에서 UNIX 쉘 환경을 제공하여 Linux 생태계의 다양한 도구에 대한 액세스를 가능하게 합니다.
Cygwin은 Windows에서 Linux 환경과 유사한 느낌을 제공하는 것을 목표로 하고 있습니다. 그러나 Cygwin을 사용하더라도 Windows에서 Linux 애플리케이션을 실행할 수는 없습니다. Cygwin은 Windows 7부터 모든 x86_64 버전의 Windows에서 작동합니다.
Cygwin을 설치하려면:
1. 설치 페이지로 이동하여 setup-x86_64.exe 파일을 다운로드하고 실행합니다.
2. 설치 마법사의 처음 몇 단계를 진행하면서 기본 옵션을 유지하고 ‘다음’을 클릭합니다. 인터넷에서 다운로드하여 설치하고, 기본 제안 루트 및 패키지 디렉토리를 사용하며, 시스템 프록시 설정을 사용하도록 합니다.
3. Cygwin 패키지를 다운로드할 사이트를 선택하려면, 제공된 링크 중 하나를 클릭하고 ‘다음’을 클릭합니다.
4. 설치할 패키지를 선택할 때 기본 섹션을 유지합니다. 선택한 카테고리가 맞는지 확인한 후 ‘다음’을 클릭합니다. 그러면 ‘검토 및 변경 사항 확인’ 화면으로 이동됩니다. ‘다음’을 클릭하여 Cygwin 설치를 시작합니다.
5. 설치 프로세스가 완료될 때까지 기다립니다.
6. ‘마침’을 클릭하여 설치 프로세스를 완료합니다. 데스크탑과 시작 메뉴에 Cygwin 아이콘을 생성하지 않으려면 상자를 선택 취소하면 됩니다.
7. 시작 메뉴나 데스크탑에서 Cygwin 아이콘을 찾을 수 있습니다. Cygwin을 시작하려면 해당 아이콘을 두 번 클릭합니다.
8. Cygwin이 열리면, Linux 시스템에서처럼 Linux 명령을 사용할 수 있는 bash 쉘 창이 나타납니다.
QEMU를 사용하여 Windows에서 Linux 명령어 사용
QEMU는 널리 사용되는 오픈 소스 머신 에뮬레이터이자 가상화 프로그램입니다. QEMU는 일반적으로 현재 사용 중인 운영 체제와 다른 운영 체제를 실행할 수 있는 다른 컴퓨터의 가상 모델을 제공하는 시스템 에뮬레이터로 사용됩니다.
QEMU를 설치하려면,
1. 다운로드 페이지로 이동하여 64비트 컴퓨터용 qemu setup .exe 파일을 다운로드하고, 다운로드가 완료되면 실행합니다.
2. QEMU 설치 마법사 창이 나타납니다. ‘다음’을 클릭하여 계속 진행합니다. 다음 화면에서 라이선스 계약에 동의하고 ‘다음’을 클릭하여 기본적으로 선택된 구성 요소를 설치합니다. 설치 위치를 선택하거나 기본적으로 선택된 로컬 디스크 C를 그대로 둡니다. 단순화를 위해 설치 위치를 변경하지 마십시오.
3. 설치가 완료될 때까지 기다린 후 ‘마침’을 클릭합니다.
4. 이제 QEMU가 설치된 파일 경로를 환경 변수에 추가해야 합니다. 이렇게 하려면 내 컴퓨터 -> 로컬 디스크 C -> 프로그램 파일 -> qemu로 이동합니다.
5. 컴퓨터에서 QEMU가 설치된 파일 경로를 강조 표시하고 복사합니다.
6. Windows 설정을 열고 ‘시스템’을 클릭한 후, 왼쪽 메뉴 표시줄을 스크롤하고 ‘정보’를 선택합니다. ‘정보’ 페이지에서 ‘고급 시스템 설정’을 클릭하여 ‘시스템 속성’ 창을 엽니다.
7. ‘시스템 속성’ 창의 ‘고급’ 탭에서 ‘환경 변수’를 클릭합니다.
8. ‘환경 변수’ 페이지에서 ‘Path’를 두 번 클릭하여 QEMU가 설치된 경로를 추가합니다.
9. ‘새로 만들기’를 클릭한 다음, 복사한 경로 URL을 붙여넣고 ‘확인’을 클릭하여 추가합니다. ‘환경 변수’ 창 및 ‘시스템 속성’ 창에서 ‘확인’을 클릭하여 변경 사항을 저장하고 창을 닫습니다.
10. QEMU가 성공적으로 설치되었고 해당 경로가 환경 변수에 성공적으로 추가되었는지 확인하려면 PowerShell을 열고 다음 명령어를 실행합니다.
qemu-img --help
두 프로세스가 모두 성공했다면 설치된 qemu-img 버전과 도움말 페이지를 보여주는 창을 볼 수 있습니다.
11. Linux 운영 체제 에뮬레이션을 시작하려면, QEMU를 사용하여 에뮬레이션하려는 Linux 배포판의 .iso 이미지를 다운로드해야 합니다. 그런 다음 Powershell에서 .iso 파일이 저장된 위치로 이동하여 다음을 실행합니다.
qemu-system-x86_64.exe -boot d -cdrom <linux_distro_name> -m <RAM_TO_ALLOCATE>
예를 들어, 다운로드한 iso 파일에서 Ubuntu 22.04.3을 에뮬레이트하려면 .iso 파일이 있는 위치로 이동하여 다음을 실행합니다.
qemu-system-x86_64.exe -boot d -cdrom ubuntu-22.04.3-desktop-amd64.iso -m 2048
그러면 Linux 명령을 사용할 수 있는 bash 쉘 창이 열립니다.
결론
Windows에서 Linux를 사용할 때, Linux에서 Windows 파일에 접근하고 그 반대의 경우도 가능하지만, 파일 경로를 조정해야 할 수 있다는 점을 명심하는 것이 중요합니다.
또한, 일부 운영 체제 관련 명령어는 예상대로 작동하지 않을 수 있으며, 두 운영 체제 간의 파일 권한은 다르게 처리될 수 있습니다. 두 시스템이 원활하게 실행되도록 리소스 할당을 적절히 조절해야 하며, 문제가 발생할 경우를 대비하여 항상 중요한 파일을 백업해야 합니다.
WSL2 기능, 설치 과정 및 효과적인 사용 방법에 대해 더 자세히 알아보는 것도 좋습니다.