[Review] 처음 만나는 WSL 도서 리뷰


처음 만나는 WSL : 개발자 및 IT 전문가를 위한 리눅스용 윈도우 하위 시스템 실무 안내서

img

Tag : WSL ,Windows Subsystem for Linux ,리눅스용 윈도우 하위 시스템 ,WSL 1 ,WSL 2 ,리눅스 ,Linux ,윈도우 ,Windows ,개발 환경 ,터미널 ,Terminal

필자는 학부생 시절 연구실에서 항상 리눅스를 사용했기에 윈도우에서보다 리눅스 개발환경을 사용하는 것이 편했다. 물론 코딩테스트 문제를 풀거나 web 관련 프로젝트를 할 때는 윈도우가 편했지만, Hadoop/Spark/Docker를 사용함에 있어서는 리눅스 환경이 필수적이었다.

이때 WSL2를 요긴하게 사용했던 경험이 있다. Window PC를 사용하면서, Windows Powershell를 켜서 리눅스로 개발을 한다는 것은 새로운 충격이었다.’

WSL이 어떤 원리로 구동될 수 있는지 궁금하지도 않고 그냥 사용만 해왔던 시절을 반성하며 “처음 만나는 WSL”을 읽었다.

1장: WSL시작에서는 WSL이 등장하게 된 배경, 아키텍처, 장단점을 설명한다.운영체제에 대한 배경 지식이 있다면, 읽는데 조금 더 수월할 것 같다.

책에서 가장 공감됐던 부분은 wsl이 등장하게 된 배경이다.

당신이 개발자이고, 윈도우를 사용한다고 가정하자. 개발 공부를 하거나, 서버에 무언가를 설정하기위해 서적 및 공식 문서를 살펴보고 있는데, 갑자기 문서에 셸 명령이라고 하면서 $ 기호가 나타난다면 곧바로 다음과 같은 생각을 하게 될 것이다.

‘어라? 이런 건 본 적도 없는데? 윈도우에서는 안 되는 기능이잖아. 이걸 따라하려면 가상머신(VM)을 만들고 리눅스를 설치해야 하잖아! 귀찮아! 안 할래’

그렇다. WSL을 사용하면 그냥 terminal을 키기만 하면 된다.

2장: 다운로드, 설치와 설정, 3장: 윈도우와 리눅스 섞어 사용하기, 4장: WSL 배포판 관리에서는 WSL(WSL2가 아님 주의) 설치 및 사용 방법에 대해 알려준다. WSL2를 사용하는 사용자에게도 설치 및 배포판 설정에 있어서 궤를 같이하기 때문에 읽어봄직하다.

글 전체적으로 Window PowerShell에서 어떤 명령어를 입력하는지 알 수 있도록 화면을 보여주고, 이에 대한 결과 창도 보여준다. 초보자도 쉽게 따라할 수 있다.

img

새로 배운 점은 3.2장 윈도우와 리눅스 사이의 경로 변환 - wslpath를 꼽을 수 있다. wslpath는 WSL경로에서 윈도우 경로로 혹은 그 반대로 변환을 수행해주는 유틸리티이다.

5장: WSL2 알아보기에서는 말 그대로 WSL2가 무엇인지, 어떤 점이 달라졌는지에 대한 내용이 나온다.

  1. 더 나은 파일 입출력 성능 : git clone, npm install, apt update 등과 같은 파일 입출력 작업은 WSL1에 비해 WSL2에서 약 2~3배 빨라졌고 압축된 파일(tarball file)을 푸는 것은 약 20배 이상 빨라졌다.
  2. 완전한 시스템 호출 지원 : WSL1에서 실행되는 시스템 호출(메모리 요청, 프로세스 생성 등)은 각각 윈도우 운양체제의 시스템 호출로 번역되어 호출됐지만 모든 리눅스 시스템 호출을 윈도우 시스템 호출로 변환하는게 불가능했다. 하지만 WSL2에서 시스템 호출 호환성일 완벽하게 지원하고 커널 업데이트를 제공할 수 있도록하는 리눅스 커널을 포함했다. 이는 도커나 그 외의 고급 기능을 사용하고, 기존에 지원되지 않았던 더 많은 애플리케이션을 WSL2에서 사용할 수 있다.

아울러 6장: 파일시스템, 7장: 네트워킹을 통해 WSL2 Deep Dive를 할 수 있었다. WSL이 윈도우 파일에 직접 접근할 수 있고, 윈도우가 WSL에서 실행되는 리눅스 배포판 내의 파일에 접근할 수 있는 방법에 대해서 배운다.

마지막으로 8장: WSL에서 리눅스 개발 환경 만들기에서는 Visual Studio Code, WSL 원격 확장을 통해 리눅스 기반의 애플리케이션을 윈도우 운영체제에서 자연스럽게 실행할 수 있는 도구와 런타임에 대해서 배운다. 가장 관심이 있는 장이었고 Git, VSCode, Docker 등의 설치 및 개발 환경 구성법이 나와서 쉽게 따라할 수 있었다.

총평을 하자면, WSL2를 사용하다가 OS에 더 관심이 생긴 독자에게 추천한다. 사실 WSL 개발 환경구성은 구글링으로도 충분히 가능하기 때문이다. 아쉬운 점은 OS에 대한 설명이 부족하다는 것이다. 책에서 반복되는 OS 용어(VM, hyper-v 등등)에 대한 짧은 설명 말고도 한 챕터를 사용해서 OS 기초를 다지고 갔으면 어떨까? 하는 생각이 들었다.

<이 리뷰는 한빛미디어 ‘나는 리뷰어다’로 부터 책을 지원 받아 작성되었습니다>




© 2020. by lsh110600

Powered by aiden