
마이크로소프트가 연례 Build 개발자 컨퍼런스를 개막했습니다. 평범한 행사는 아니었습니다. 마이크로소프트는 최선을 다해 인공지능과 증강현실 분야의 놀라운 발전을 시연했고, 윈도우 10이 강력한 게임 플랫폼이라는 평판을 한층 굳혔습니다. 하지만 마이크로소프트는 또 하나의 발표를 했습니다. 많은 사람들의 기대를 모으고 있는 바로 그 소식입니다.
샌프란시스코 무대에서 개발 총괄 디렉터 케빈 갤로(Kevin Gallo)는 BASH 셸이 윈도우 10에 도입될 것이라고 발표했습니다. 정확히는, 어느 정도는요.
우분투 그대로, 윈도우 안으로
BASH가 윈도우 10에 추가된다고 표현하는 것은 상황을 크게 과소평가하는 것입니다. 마이크로소프트가 준비한 것은 그보다 훨씬 인상적인 기술이기 때문입니다. 본질적으로 이것은 가상 머신이 아닌 리눅스 서브시스템으로, 우분투 14.04 LTS를 기반으로 하며 우분투 사용자 공간(userspace)에 대한 접근을 제공합니다.
기존에 있던 방식들과 근본적으로 다르다는 점을 강조할 필요가 있습니다. 윈도우 10은 축소된 가상 머신에서 우분투를 에뮬레이션하는 것이 아닙니다. Cygwin처럼 BASH를 윈도우용으로 컴파일한 것도, CASH처럼 자바스크립트로 재구현한 것도 아닙니다. 대신 사실상 호환성 계층(compatibility layer) 위에서 실행됩니다.
리눅스 시스템 콜(흔히 'syscalls'라고 불리며, 프로그램이 OS 커널에 무언가를 요청하는 동작)은 마이크로소프트가 자체 개발한 소프트웨어를 통해 실시간으로 윈도우 시스템 콜로 변환됩니다. 이 차이점은 포팅 작업을 도운 Canonical 엔지니어 더스틴 커클랜드(Dustin Kirkland)가 더 잘 설명해 주고 있습니다.
이것이 의미하는 바는 단순히 BASH와 필수 리눅스 유틸리티 몇 가지만 넘어온다는 것이 아니라는 점입니다. 사실상 거의 모든 것이 함께 들어옵니다.
사용자는 PuTTY 같은 서드파티 도구 대신 표준 리눅스 SSH 유틸리티를 사용할 수 있습니다. 명령줄에서 VIM으로 텍스트를 편집하고, Sed와 Awk로 텍스트를 가공할 수도 있습니다. 더 좋은 점은 apt-get으로 패키지를 관리하고 수만 개의 우분투 바이너리를 그대로 설치할 수 있다는 것입니다.
더스틴 커클랜드에 따르면, byobu, screen, tmux처럼 TTY를 사용하는 일부 애플리케이션을 제외하면 대부분 잘 작동한다고 합니다. 곧 보완될 것이라는 설명이며, 마이크로소프트가 이 기능을 Build 2016 키노트에서 전면에 내세운 만큼 최종적으로는 완성도 높은 제품이 될 것으로 기대할 수 있습니다.
일반 사용자에게 어떤 의미일까?
솔직히 말하겠습니다. 이 발표는 두 그룹에게 특히 매력적입니다. 바로 리눅스 애호가와 소프트웨어 개발자입니다. 여기에 해당하지 않는다면 '그래서 나랑 무슨 상관?'이라고 생각할 수 있습니다. 하지만 열혈 기술 덕후가 아니더라도 기대할 만한 이유는 분명히 있습니다.
첫째, 실제로 설치하지 않고도 진입장벽이 높다고 알려진 리눅스 생태계에 발을 담가볼 수 있는 훌륭한 방법입니다. 완전 초보자도 윈도우 10의 익숙하고 비교적 안전한 환경 안에서 흔히 쓰이는 리눅스 도구의 기본기를 익힐 수 있습니다.
둘째, 코딩을 처음 배우는 사람들에게도 큰 도움이 됩니다. 배우기 쉬운 언어들, 즉 초보자에게 인기 있는 언어일수록 윈도우에 설치하기는 번거로운 경우가 많습니다. 예컨대 파이썬을 제대로 설치하려면 윈도우 PATH 환경 변수에 항목을 추가해야 하고, 루비와 필수 문서·도구를 손쉽게 설치하려면 RubyInstaller 같은 별도의 설치 프로그램에 의존해야 합니다.

하지만 이제 개발 지망생은 명령줄에 "bash"라고 입력하는 것만으로, 윈도우에서 이런 언어들을 설정하는 까다로운 과정을 걱정할 필요 없이 바로 루비나 파이썬 스크립트 작업에 착수할 수 있습니다.
게다가 초보자용 학습 튜토리얼 대부분이 맥 OS X와 리눅스 환경을 기준으로 작성되기 때문에, 윈도우 사용자도 이제 문제없이 그 튜토리얼을 그대로 따라갈 수 있게 됩니다.
윈도우의 리눅스, 개발자에게 중요한 이유
역사적으로 마이크로소프트의 명령줄(정확히는 '명령 프롬프트') 도구는 UNIX 계열 운영체제의 도구에 한참 못 미쳤습니다. 가장 큰 이유는 윈도우가 늘 터미널이 아닌 그래픽 인터페이스와 메뉴를 통한 작업 처리를 강조해 왔기 때문입니다. 일반 사용자에게는 편리하지만, 지난 20년간 훨씬 안정적이고 보안성이 높은 리눅스 기반 서버에 점점 의존해 온 개발자에게는 그렇지 않았습니다.
그 결과 개발자들은 서서히 윈도우에서 멀어졌습니다. 아무 개발자 컨퍼런스나 밋업에 가보거나, 기술 스타트업 사무실을 방문해 보면 사용 중인 장치 대부분이 애플 노트북이거나 리눅스를 구동하는 PC일 가능성이 매우 높습니다. 이미 이 운영체제들을 익히고 그에 맞춰 워크플로를 구축해 버린 개발자들이 다시 돌아올 가능성도 낮습니다.
리버풀의 데이터 과학 스타트업 ScraperWiki에서 여름 인턴으로 일할 때 함께했던 한 개발자는 세밀하게 커스터마이징한 VIM 편집기와, 흔히 쓰이는(그리고 드문) 리눅스 유틸리티 몇 가지를 중심으로 한 작업 루틴을 갖추고 있었습니다. 그가 편안하게 윈도우로 돌아오는 모습은 상상하기 어려웠습니다.
어쩌면 윈도우 10의 우분투가 이런 개발자들을 마이크로소프트 진영으로 되돌릴 만큼, 최소한 윈도우 플랫폼에서 개발자가 계속 유출되는 현상을 막을 만큼은 충분할지도 모릅니다.
동시에 이번 발표는 마이크로소프트의 실추된 평판 회복에도 크게 기여합니다. 특히 오픈소스 커뮤니티와의 관계에서 그렇습니다. 1990년대 후반부터 2000년대 초반까지 마이크로소프트는 오픈소스와 리눅스에 노골적으로 적대적이었습니다. 당시 CEO 스티브 발머는 리눅스를 '암(cancer)'이라고 부르기도 했고, '포섭하고, 확장하고, 소멸시킨다(embrace, extend, extinguish)'는 전략으로 리눅스를 비롯한 경쟁 제품들을 잠식하려 했습니다.
하지만 사티아 나델라가 CEO로 취임한 이후 마이크로소프트는 오픈소스 커뮤니티와 협력하고 이미지를 개선하기 위해 일관된 노력을 기울여 왔습니다. 그리고 그 노력이 성과를 내고 있는 것으로 보입니다.
윈도우 10용 BASH, 받는 방법
글을 쓰는 시점 기준으로 BASH는 발표만 된 상태이며 아직 실제로 받아볼 수는 없습니다. 올여름 출시 예정인 윈도우 10 애니버서리 업데이트에 포함될 예정입니다. '애니버서리(주년)' 업데이트이고 마이크로소프트가 윈도우 10을 7월 29일에 출시했다는 점을 감안하면, 그 무렵에는 만나볼 수 있을 것입니다.
기다리기 힘들다면 윈도우 10 인사이더 프로그램에 참여해 미리 체험할 수 있습니다.
윈도우 10에 BASH가 들어오는 소식, 기대되시나요? 리눅스를 떠나 윈도우로 갈아탈 만큼 매력적일까요? 아래 댓글로 의견을 남겨주세요.