윈도10 속 우분투 배시, 어떻게 실행되나

컴퓨팅입력 :2016/04/25 09:55

이달초 마이크로소프트(MS)는 빌드2016 컨퍼런스에서 윈도10 우분투 배시를 공개했다. 당시 MS는 가상머신을 이용하지 않고 우분투 배시를 실행한다고 밝혔는데, 구현기술에 대한 자세한 설명이 조금씩 공개되고 있다.

23일(현지시간) 미국 지디넷에 따르면, MS는 블로그를 통해 윈도10의 리눅스용 윈도서브시스템(WSL)에 대한 추가정보를 공유하기 시작했다.[블로그 바로가기]

우선, 윈도10에 리눅스 커널은 없다. 윈도커널팀에서 개발한 WSL이 윈도 상에서 리눅스 바이너리를 실행하는 토대를 이룬다.

WSL은 사용자모드 세션매니저, 리눅스커널을 에뮬레이트하는 피코(pico) 프로바이더 드라이버(예: lxss.sys, lxcore.sys), 수정되지 않은 사용자모드 리눅스를 호스트하는 피코 프로세스(예: bash) 등을 포함한다.

MS의 잭 해몬스는 “사용자모드 리눅스 바이너리와 윈도커널 요소 사이에 위치해 마법을 부린다”며 “수정되지 않은 리눅스 바이너리를 피코 프로세스에 위치시킴으로써 윈도커널에서 리눅스 시스템을 곧바로 불러올 수 있다”고 설명했다.

그는 “lxss.sys와 lxcore.sys 드라이버는 리눅스커널을 에뮬레이트하고, NT API에서 호출한 리눅스 시스템을 번역한다”고 덧붙였다.

피코 프로세스 요소는 MS 리서치에서 개발했던 ‘프로젝트 드로브릿지(Drawbridge)’에 기반한 것으로 추정된다. 드로브릿지는 싱귤래리티(Singularity) 마이크로커널 OS의 여러 변종 중 하나다.

관련기사

MS 채널9 동영상에 의하면, 윈도커널은 드로브릿지 피코프로세스와 피코 드라이버 개념을 모두 담고 있다. 피코 프로세스와 드라이버가 WSL의 토대를 제공하는 것으로 설명된다.

MS 윈도NT는 Win32 같은 서브시스템 환경을 지원하도록 설계됐다. NT커널 첫 공개 시점엔 POSIX, OS/2, Win32 서브시스템이 포함돼 있었다.