Offcanvas

가상화 / 개발자 / 디지털 디바이스 / 애플리케이션 / 운영체제

리뷰 | 윈도우-리눅스 간 오작교 '시그윈'

2018.03.06 Dave Taylor  |  Computerworld
아직도 운영 체제는 하드웨어에 종속돼야 한다고 생각한다면, 구시대적 발상이다. 이제는 하나의 운영 체제를 다른 운영체제 안에서, 혹은 다른 운영 체제와 함께 구동할 수 있는 여러 가지 방법이 있다. 기본 운영 체제가 리눅스이든, 윈도우나 맥OS든 상관 없다. 예를 들어 메인 시스템은 맥OS를 사용하면서도 윈도우 10이나 우분투 리눅스에 액세스할 수 있다.



문제는 이를 위해 많은 리소스가 필요하다는 점이다. 컴퓨팅 디바이스에 많은 부담을 주기 때문에 듀얼 부트나 가상 머신을 통해 이루어진다. VM 내에서 앱을 구동하며 동시에 기본 OS에서 다른 프로그램을 사용하면 아마도 전반적인 성능 저하에 실망할 것이다.

그러나 한 OS의 특징과 기능을 다른 OS에 접목한 더 똑똑한 대안이 속속 등장하고 있다. 시그윈(Cygwin)이 그 중 하나다. 시그윈은 마이크로소프트 윈도우를 이용하면서 리눅스 명령 셸 등 다양한 오픈 소스 리눅스 프로그램을 쓸 수 있도록 한다. 시그윈 자체도 오픈 소스여서 설치와 이용이 모두 무료이다.

시그윈은 어떻게 탄생했을까
시그윈이라는 이름은 원래 시그너스 솔루션(Cygnus Solutions)에서 따왔다. 원 개발자인 스티브 챔벌린은 시그너스 솔루션에 소속돼 GCC(GNU C 컴파일러)가 윈도우 호환이 가능한 실행 가능한 코드를 출력할 수 있는 시스템을 개발하고 있었다. 이 시스템의 원래 이름이 gnuwin32였다.

더 기술적인 측면에서 보면, 시그윈의 아이디어는 훌륭하다. 리눅스와 윈도우 시스템 간 POSIX(Portable Operating System Interface) 컴플라이언스에 필요한 모든 API 수준의 에뮬레이터이기 때문이다. 즉 시그윈을 거치면 원래는 윈도우에 없는 매우 다양한 종류의 개발 툴과 유틸리티를 빠르게 액세스해 사용할 수 있다. 개발자에게 엄청난 매력이다.

하지만 한 가지 분명히 할 것은, 시그윈이 리눅스 애플리케이션을 다운로드해 구동하는 툴은 아니라는 것이다. 시그윈 환경에서 앱을 제대로 구동하려면 환경에 맞게 리컴파일링해야 한다. 대신 좋은 소식은, 이미지매직(ImageMagick), 파이썬(Python), 펄(Perl), 루비(Ruby), EMACS, 메이크(make), 컬(curl), 그리고 bzip를 포함해 무려 2만 1,000개가 넘는 오픈 소스 소프트웨어 패키지가 시그윈 환경으로 포팅됐다는 것이다. 또한 C, C++, 오브젝티브-C, Tcl, Ada, CLISP, Scheme, 그리고 Prolog 등으로 코딩할 수 있다.

뿐만 아니라, 마이크로소프트 윈도우 내에서 시그윈을 통해 X 윈도우 시스템을 구동할 수도 있다. 시그윈/X 포트를 이용하면 된다. 왜 이렇게 해야 하는가를 별개로 하면, 이는 분명 윈도우 기기에 시그윈을 접목했을 때 얻을 수 있는 역량과 유연성을 바로 보여주는 좋은 예다.

시그윈 설치하기
설치 과정은 놀랄만큼 쉽다. 그냥 시그윈 홈페이지(cygwin.com)에 접속해 설치 링크를 클릭하면 된다. 그러나 여느 오픈 소스 커뮤니티가 그렇듯, 시그윈 역시 2만 1,000개가 넘는 패키지 중 어떤 것을 설치 할 지는 직접 선택을 해야 한다. 워낙 선택지가 많아서 고민이 될 수도 있다. 어쨌든 기본 패키지를 선택하면 여러 가지가 다운로드 되고, 컴파일된 후 데스크톱에 시그윈 터미널이 나타날 것이다.

설치 과정은 놀랄만큼 쉽다.

그게 전부다. 추후 다른 패키지를 더 추가하려면 설치 링크를 다시 클릭해 추가하고 싶은 패키지를 선택하기만 하면 된다. 이때 선택한 패키지는 하나인데 10여 가지가 넘는 파일이 다운로드 된다고 해서 놀랄 필요는 없다. 이들은 모두 선택한 패키지를 성공적으로 설치, 실행하는 데 필요한 패키지와 라이브러리다.

C 개발 환경에 필요한 라이브러리와 코드를 설치하려면 'gcc-core'를 설치하면 된다. 그렇게 하면 윈도우 운영 체제를 사용 중이라도 시그윈 환경에서 C 소스 코드를 작성하고, 컴파일링하고, 실행할 수 있다. 기초적 프로그램인 C "헬로 월드(hello world)" 프로그램이 컴파일링, 실행되는 과정을 예로 들어 보자.

'헬로 월드(hello world)' 프로그램이 컴파일링, 실행되는 과정

물론 스크린 뒤에서는 GCC 컴파일러 설치를 위한 복잡하고 분주한 작업이 펼쳐지겠지만, 전체 개발자 하위 시스템은 그저 설치를 위해 몇 번의 마우스 클릭만으로 충분하다.

만일 원한다면 다른 패키지들도 얼마든지 설치할 수 있다. 앞서 언급한 X 윈도우 시스템, K Desktop Environment, GNOME, 아파치 웹 서버, 그리고 sshd와 같은 시스템 데몬(system daemon)이 그것이다(sshd는 시스템이 ssh 시큐어 셸 커넥션을 수용할 수 있도록 해준다). 만약 마이크로소프트 오피스 같은 환경을 윈도우 내에 유지하면서도 시그윈 오픈 소스 렌즈를 이용하고 싶다면 오픈오피스(OpenOffice)를 설치하면 된다.

시그윈 패키지 뜯어 보기
리눅스나 유닉스 시스템이 익숙하지 않다면 앞서 언급한 소프트웨어 앱이나 패키지에 대한 이야기가 전혀 와 닿지 않을 것이므로 먼저 이들을 더 자세히 살펴보자.

X 윈도우 시스템. 마이크로소프트 윈도우가 있기 전, MIT에는 명령행으로 가득한 유닉스 환경에 그래픽 유저 인터페이스를 더하고자 하는 일련의 개발자가 있었다. 이들의 목표는 유연하고 레이어화 된 GUI를 만들어 윈도잉 시스템을 다양한 유닉스 시스템에서 구동되도록 하고, 동시에 네트워크 컴퓨팅까지 지원하는 것이다. 이렇게 하면 컴퓨터의 윈도우 중 일부는 다른 컴퓨터에 호스팅된 프로세스에서 제어하고, 로컬 컴퓨터의 일부 프로세스는 온라인 다른 곳의 윈도우를 통제할 수도 있다. 이러한 발상이 X 윈도우 시스템이 되었으며 이는 훗날 아주 강력하고 혁명적인 아이디어로 인정받았다.

GNOME과 KDE(K Desktop Environment). X 윈도우 시스템을 제외하면 가장 유명한 윈도우 매니저다. 윈도우 매니저가 없으면 백그라운드 그래픽, 윈도우 프레임, '닫기'나 '최소화' 버튼, 그리고 팝업 메뉴 등도 사용할 수 없다. GNOME와 KDE는 이러한 그래픽 인터페이스에 대한 서로 다른 대안을 제시하는 경쟁 관계에 있지만, 기본적으로 제공하는 기능은 같다. 또한, 이러한 윈도우 매니저를 함께 사용해 X 윈도우 시스템은 더 유용하고 강력해진다.

아파치 웹 서버. 온라인에 접속하면 우리가 매일같이 마주치는 것이 바로 아파치다. 오리지널 웹 서버 프로그램 중 하나이며 이제는 수 많은 웹사이트를 구동하는 원동력이다. 아파치(Apache)라는 이름은 사실 말장난에서 따 온 것인데, 영어의 'a patchy web server'의 앞 두 글자를 소리 나는 대로 적은 것이다.

sshd. sshd를 비롯한 기타 시스템 데몬은 뒤에서 조용히 구동되며 인터넷을 보조하는 저레벨 프로그램이다. 시큐어 셸 ssh는 원격 사용자가 암호화 된 연결을 통해 컴퓨터에 쉽게 로그인 할 수 있도록 해 준다. 그래픽이나 윈도우 같이 거창한 것 없이 몇 줄의 명령행만 있어도 된다. 이 외에 다른 시스템 데몬으로는 네트워크 타임 서버, FTP 및 SFTP 파일 서버, 그리고 이메일 서버 등이 있다.

오픈오피스. 이 놀라운 오픈 소스 프로그램 스위트는 마이크로소프트 오피스의 모든 기능, 특성을 그대로 제공하면서도 가격은 전혀 닮지 않은 기특한 녀석이다. 사실, 닮지 않은 정도가 아니라 아예 무료다. 물론 구글 독스라는 대안이 있지만, 사실 작성하는 모든 문서와 스프레드시트 사본이 모두 구글에 저장된다는 것은 좀 꺼림칙하다. 오픈오피스가 훌륭한 대안으로 주목 받는 이유도 이 때문이다. 뿐만 아니라 시그윈/리눅스 버전을 사용하고 싶지 않다면 윈도우나 맥 시스템에서도 사용할 수 있다.

시그윈의 대안
아직도 시그윈에 대해 확신이 들지 않는가? 그렇다면 대안은 여러 가지다. 마이크로소프트의 WSL(Windows Subsystem for Linux), 듀얼 부팅, 그리고 VM 솔루션 등이 대표적이다.

실제로 많은 개발자가 시그윈의 대안을 찾아 떠나고 있다. FreshConsulting.com의 CTO 스티브 헐렛은 "과거 시그윈이 많은 도움을 주었던 것은 사실이지만, 이제는 굳이 시그윈만 고집할 필요가 없다"라고 말했다. 이렇게 느끼는 것은 그 만은 아니다. 엘리멘터스(Elementus)의 개발자 맥스 갤카도 이에 동의한다. "1년 전 윈도우 10으로 업그레이드 한 후 줄곧 WSL을 사용했다. 덕분에 내 삶이 한결 편해졌다고 자신 있게 말할 수 있다"라고 말했다.

마이크로소프트에서 내놓은 것이므로 WSL은 윈도우 환경에 아주 적합하다. 마이크로소프트의 WSL 웹사이트를 보면 "우분투, openSUSE, 그리고 SUSE 리눅스 엔터프라이즈 서버를 가장 좋아하는 윈도우 툴과 함께, 그리고 Cmd나 파웨셸(PowerShell)과 같은 셸과 함께 설치, 구동할 수 있다"고 설명돼 있다.

리눅스용 윈도우 서브시스템은 윈도우에서 잘 작동한다.

개발자에 따라서는 듀얼 부팅(dual-boot) 환경을 선택하는 것이 더 합리적일 수 있다. 듀얼 부팅 환경에서는 리눅스와 윈도우를 같은 부팅 드라이브 상에서 파티션만 나누어 설치할 수 있기 때문이다. 듀얼 부팅 환경에서는 부팅 시 사용하고자 하는 OS를 선택하면 된다. 이러한 환경의 가장 큰 장점은 한 환경에서 다른 환경으로 바이러스나 악성코드가 침투, 이동할 수 없어 더 안전하다는 것이다.

대부분 메이저 리눅스 버전은 듀얼 부팅을 지원한다. GNU GRUB을 이용해 부팅 시 어떤 OS를 사용할 지 선택할 수 있다. 단, 듀얼 부팅 환경의 경우 어느 쪽 OS도 지나치게 공간이 남거나 모자라지 않도록 최적의 용량 파티셔닝에 대해 미리 조사를 한 후 공간을 나눌 것을 추천한다.

마지막으로 VM도 하나의 대안이 될 수 있다. VM은 하나의 OS를 또 다른 OS에서 마치 애플리케이션처럼 구동할 수 있게 해 준다. 필자의 맥북 프로를 보자. VM웨어 퓨전을 사용해 우분투 리눅스와 윈도우 10을 맥북 프로에서 사용하고 있다. 윈도우 기반 VM 솔루션은 VM웨어와 오라클의 버추얼 박스(Virtual Box)처럼 오픈 소스 솔루션도 있고, 유료 솔루션도 있으니 좋을 대로 선택하면 된다.

물론 이런 대안들 중에 마음에 드는 것이 없을 수 있다. PIckAKit.com의 창립자 애론 요시타케는 시그윈은 자신의 개발 환경에서 매우 중요한 부분을 차지하며 "(시그윈 역시) 나름의 장점과 단점이 있겠지만, 우분투 버추얼박스(VirtualBox) VM보다는 시그윈이 더 낫다"고 평가했다.

마지막으로 오픈 소스 와인 프로젝트의 일환인 와인리브(Winelib)를 잠깐 살펴보자. 와인리브는 리눅스와 유닉스 유사 시스템 하에서 윈도우 프로그램을 구동할 수 있는 솔루션이다. 시그윈의 반대라고 할 수 있다. 와인 시스템은 변경되지 않은 윈도우 바이너리 실행을 지원한다. ciokr@idg.co.kr 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.