WSL은 가상 머신이나 듀얼 부팅 설정 없이 윈도우에서 최적화된 리눅스 환경을 제공하는 시스템이다. 이 책은 WSL을 사용하는 다양한 IT 종사자에게 WSL 다운로드와 설치, 환경 구축, 설정, 활용, 배포 방법 등의 과정을 그림으로 하나하나 상세하게 설명한다. WSL 1과 WSL 2의 변화, 각 버전의 장점과 단점, 리눅스와 윈도우의 호환성 등을 자세히 다룬 이 도서를 통해 자유로운 WSL 개발 환경을 구축하길 바란다.
저자소개
저자
프래틱 싱
IT 인프라를 관리하는 클라우드 개발자이며, 열정적인 파워셸 블로거이자 오픈소스 커뮤니티 기여자. 그의 블로그(www.ridicurious.com)는 지난 3년간 ‘전 세계에서 인기 있는 50대 파워셸 블로그’로 인정받았다. 기술 문서 작성에 대한 폭넓은 경험을 보유하고 있으며 그의 블로그, 4SysOps.com, IPSwitch.com, TechTarget.com과 같은 여러 웹 사이트에 250개 이상의 글을 작성했다. 파워셸 스크립트와 애저Azure에 대한 주제를 가지고 유튜브 채널을 운영하고 있다. 파워셸과 파이썬에 관련된 기술 서적들을 집필했으며, 최근에는 『PowerShell to C# and Back』(Leanpub, 2021)을 통해 C#과 닷넷(.NET)에 대한 기술 서적을 집필하고 있다. 컴퓨터 앞에서 일을 하지 않을 때는 따뜻한 커피 한 잔과 함께 책을 읽는 것을 좋아하며, 마라톤에 참가하는 것을 정말 좋아한다.
역자
남정현
2009년부터 13년간 Microsoft MVP로 활동하고 있다. 현재는 ㈜데브시스터즈에서 소프트웨어 개발과 클라우드 컴퓨팅 분야의 기술 작가로 일하고 있다. C#과 닷넷을 사용하는 프로그래머로 경력을 시작한 덕분에 현재는 ‘닷넷데브’라는 닷넷 개발자들을 위한 커뮤니티의 운영진으로 활동하고 있다. 이 외에도 페이스북에서 각자 코딩하는 모임(fb.com/groups/mogaco), 한국 WSL 사용자 그룹(wslhub.com )이라는 커뮤니티에 운영진으로 참여하고 있다. 또한 최근 많은 관심을 받고 있는 오픈소스 프로젝트인 식탁보 프로젝트(github.com/yourtablecloth/tablecloth)를 진행하며 기술 작가뿐 아니라 개발자로서 꾸준히 활동하고 있다.
목차
CHAPTER 1 WSL 시작
_1.1 윈도우 하위 시스템의 역사
_1.2 WSL 한눈에 둘러보기
_1.3 WSL 1의 장점
_1.4 WSL 1의 아키텍처와 구성 요소
_1.5 WSL 1의 단점
_1.6 주요 용어와 개념
_1.7 마무리
CHAPTER 2 다운로드, 설치와 설정
_2.1 WSL 기능 활성화하기
_2.2 리눅스 배포판 다운로드하고 설치하기
_2.3 WSL 구성하고 설정하기
_2.4 사용자 계정 구성 및 관리하기
_2.5 배포판 업데이트와 업그레이드
_2.6 추가 도구와 패키지 설치하기
_2.7 마무리
CHAPTER 3 윈도우와 리눅스 섞어 사용하기
_3.1 WSL 시작 구성 - wsl.conf
_3.2 윈도우와 리눅스 사이의 경로 변환 - wslpath
_3.3 공유 환경 변수 - WSLENV
_3.4 마무리
CHAPTER 4 WSL 배포판 관리
_4.1 배포판 목록 조회하기
_4.2 기본 배포판 설정하기
_4.3 WSL 배포판 백업 또는 내보내기
_4.4 WSL 배포판 복원 또는 가져오기
_4.5 WSL 배포판 등록 취소와 제거
_4.6 커스텀 WSL 배포판 만들기
_4.7 마무리
CHAPTER 5 WSL 2 알아보기
_5.1 WSL 2의 새로운 기능
_5.2 WSL 2의 아키텍처
_5.3 설치와 구성
_5.4 가상 머신에서 WSL 2 실행하기
_5.5 WSL 1과 WSL 2 사이에는 무슨 변화가 있을까?
_5.6 마무리
CHAPTER 6 파일 시스템
_6.1 파일 시스템 구성 요소
_6.2 WSL 파일 시스템 아키텍처
_6.3 윈도우와 리눅스의 상호운용성
_6.4 마무리
CHAPTER 7 네트워킹
_7.1 WSL 네트워킹
_7.2 WSL 1과 WSL 2 네트워크의 차이점
_7.3 마무리
CHAPTER 8 WSL에서 리눅스 개발 환경 만들기
_8.1 소스 제어
_8.2 윈도우 터미널
_8.3 비주얼 스튜디오 코드(VSCode)
_8.4 WSL 2의 도커 컨테이너
_8.5 마무리
CHAPTER 9 WSL에서 실행하는 리눅스 데스크톱
_9.1 Xfce
_9.2 xRDP
_9.3 설치와 구성
_9.4 마무리
출판사리뷰
윈도우와 리눅스의 경계를 허물고, 개발자의 생산성을 극대화한 WSL
WSL은 윈도우 OS에서 손쉽게 리눅스 터미널 환경을 이용할 수 있도록 해주는 도구다. WSL은 리눅스를 처음 사용하는 개발자, 기존 윈도우 기반의 프로그래머, 최신 데브옵스 기술을 사용하는 엔지니어가 많은 시간과 수고를 들이지 않고 곧바로 리눅스 환경에서 작업할 수 있도록 도와준다. 이 책은 WSL 버전 1과 2의 장단점, WSL 환경 구축법, 윈도우와 리눅스의 혼합된 환경 사용법, WSL 배포판 관리 등을 입문자의 시선에 맞게 상세히 설명한다. 각종 예제와 그림을 하나씩 실습해보면서 내 데스크톱에 커스터마이즈된 WSL 환경을 구축하길 바란다.
개발자 및 IT 전문가를 위한 리눅스용 윈도우 하위 시스템 실무 안내서 LINUX 처음 만나는 WSL책이 나왔다. 전반적으로 짜임새가 있고 WSL 책 추천을 할만한 서적이라고 생각이 들었다.
이 책을 WSL 책 추천 하며 WSL로 얻을 수 있는 5가지 장점을 배운것을 나열해 볼까 한다.
1. 리눅스 도구에 대한 접근: 윈도우 운영체제에서 리눅스 바이너리를 실행하면 강력한 리눅스 앱과 도구를 사용할 수 있게 만들어 준다. 따라서 윈도우 사용자가 리눅스 기능을 활용할 수 있는 완전히 새로운 기회를 얻게 된다.
2. 크로스 플랫폼 개발: 개발자와 시스템 관리자는 모두 WSL을 활용하여 닷넷 코어 (.Net Core) 와 같은 크로스 플랫폼 개발 도구를 활용할 수 있다. 즉, 리눅스 가상 머신을 실행하지 않아도 윈도우와 WSL에서 프로젝트를 쉽게 테스트할 수 있다.
3. 올바른 작업에 적합한 도구 사용: 기본 플랫폼에 관계없이 가장 좋은 도구를 사용할 수 있다. 리눅스에 Nginx 웹 서버를 배보하는 것이 편하다면, 윈도우 운영체제 안의 리눅스 하위 시스템에서 Nginx를 실행할 수 있다.
4. 일관된 사용자 경험: WSL은 단순한 통합이 아니다. 리눅스 개발자에게 원활한 경험을 제공한다. 리눅스 개발자에게 원활한 경험을 제공하기 때문에 개발자는 마치 리눅스 운영체제에서 작업하는 것처럼 느낀다. 하지만 실제로는 윈도우 운영체제가 제공하는 변환 계층을 통해 네이티브 리눅스 바이너리가 윈도우 운영체제에서 작동하고 있는 것이다.
5. 안전한 격리: WSL은 하위 시스템이므로 WSL에서 실행되는 앱은 실제로 호스트 운영체제의 다른 앱을 손상시킬수 없도록 안전하게 격리된 컨테이너에서 실행된다.
저자는 www.ridicurious.com 을 운영하는 열정적인 파워셸 블로거이자 오픈소스 커뮤니티의 기여자인 프렉팅 싱 이다. (나는 파워셸을 윈도우에서 개발자들에게 추가로 던져준 배울거리라 생각하여 가능한 cmd셸에서 해결하는 것과 bash셸을 선호한다.)
옮긴이 남정현님은 2009년 부터 13년간 Microsoft MVP로 활동하고 계시는 분으로 닷넷데브 커뮤니티의 운영진이시고 페이스북에서 각자 코딩하는 모임 mogaco와 한국 WSL 사용자 그룹 wslhub.com 커뮤니티의 운영진으로 참석하고 계신다.
이 책은 X11 터미널 서버를 이용하여 전체 데스크톱 환경을 구현하는 방법도 다루고 있지만, 윈도우 11 이후의 OS를 사용한다면 X11 터미널 서버 없이도 곧바로 리눅스 GUI 앱을 실행할 수도 있다고 한다.
WSL은 본래 개발자가 안드로이드 코드를 재사용하여 휴대폰용 윈도우 앱을 비드 하거나 윈도우에서 기본 안드로이드 앱을 실행할 수 있게 했던 유니버설 윈도우 플랫폼 브리지 도구 키트인 프로젝트 아스토리아(Project Astoria)에서 비롯되었다고 한다. 이는 안드로이드 앱을 최소한으로 변경하여 에뮬레이션된 환성에서 실행하면서 , MS 플랫폼 API에 접근할 수 있도록 하기 위한 기술이었다고 한다.
WSL은 사용자가 완전한 리눅스 가상 머신을 실행하지 않고도 기본적으로 리눅스 명령 줄 도구, 유틸리티 그리고 리눅스에서 사용하던 ELF64 바이너리를 그대로 윈도우에서 실행할 수 있도록 하는 새로운 윈도우 운영체제 호환성 계층이라고 한다.
WSL은 bash 셸을 제공하는 것을 넘어, 실제로 리눅스 운영체제와 똑같이 보이고 동작하는 환경을 실행하는 완전한 호환성 계층이라고 한다. 이제 마이크로소프트는 더 이상 운영체제나 윈도우 또는 리눅스 사용자에 편향성을 지니지 않고 최종 사용자가 기본 플랫폼에 관계없이 앱을 만들 수 있는 최상의 도구를 제공하는 것에 초점을 맞추고 있다고 한다.
나는 아직 WSL을 사용할 일이 없어서 앞의 서두의 개요만을 잠깐 읽고 언급하였는데도 이렇게 얻어 갈 점이 많은 책이었다.
그럼 이상으로 WSL 책 추천 드리고 싶은 처음 만나는 WSL 책 리뷰를 마쳐볼까 한다.
WSL 입문서나 WSL 책 추천을 받고 싶은 분들이 읽고 소장시며 참조하시면 좋을 것이라 생각이 든다.
처음 만나는 WSL 아마 WSL이 무엇인지 한 번이라도 들어 본 적이 있다면, 현 개발자이거나 개발자였을 것이다.
WSL은 Windows Subsystem for Linux의 약자이다. 리눅스를 잘 따르고 원활하게 사용하는 분들에게는 필요가 없겠지만, 윈도우를 주로 사용하는 분들에게는 굉장히 좋은 기능이라고 생각한다. 굳이 가상머신을 설치하여 리눅스를 사용하는 방법도 있지만, 윈도우 안에서 윈도우 프로그램으로 된 기능들을 사용하여 원하는 리눅스의 기능을 사용할 수 있는 것이다.
구조가 저렇게 되어 있다고 하는데, 구조야 어떻게 되어 있든 윈도우에서 리눅스를 실행하고 사용할 수 있는 것이다.
책은 크게 9챕터로 구성이 되어 있다.
당연히 WSL의 이론적인 설명부터 설치 방법, 개발 환경 구축, GUI 환경에서 리눅스를 사용할 수 있도록 Xfce 등의 내용들이 정리되어 있다. 윈도우를 사용하다 갑자기 리눅스가 필요하게 되었을 때 막연하게 가상머신에 리눅스를 설치해서 하는 것보다, WSL을 활용하여 원하는 작업을 하면 굉장히 효율적일 것이다.
그리고 이 책의 장점으로는 WSL을 활용하여 할 수 있는 것들과 윈도우 사용자가 리눅스를 사용하면서 놓칠 수 있는 부분들을 친절하게도 미리 모아 놓았다.
예를 들면, 윈도우와 리눅스 간의 대소문자 처리 방식 차이라든지
윈도우에서 비주얼 코드(VSCode)를 사용하여 개발하는 방법 등
윈도우 주 사용자가 리눅스를 이용하여 뭔가 할 일이 생겼다면, 이런 편리한 방법도 있으니 리눅스를 설치하기 전에 책을 보고 WSL를 한 번 사용해 보는 것도 좋을 것 같다.
달마다 그렇듯 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받았습니다.
WSL1이 나오고, 2가 나온지도 몇년이 지난 것 같다.
아직 개발에 사용하기엔 그냥 리눅스만 설치하거나 가상머신을 사용하는거보다 부족한 부분이 많은건지 이유는 잘 모르겠지만, 최근들어 조금씩 안정적이고 개선되기 전까진 국내에선 관심에 비해 많이 쓰이진 않은 것 같다.
심지어 국내에 출간된 wsl도서는 이책 포함 2권뿐이다.
나도 wsl을 단순한 흥미 목적에서 설치하고 사용하고 있지만, 여전히 내 노트북의 다른 SSD에는 별도의 리눅스가 설치되어있다.
일단은 작년에서야 공식적으로 wsl2에서 gui를 지원하게 되었고, 그 전까지는 약간 비공식적인 루트라 그런가 잘 되지 않았다.
그리고 내가 기대했던 기능 중 하나는 라즈베리파이 의 sd카드에 있는 windows에선 읽을 수 없는 리눅스파티션을 wsl로 접근가능한가였다.
근데 마소가 usb기능은 아직 안넣어놔서 못했던것같다.
뭐 이거는 그렇다고 치고, 내 경우엔 wsl2에서 네트워크관련 버그도 있었다.
처음 들어갔을때 네트워크 연결이 안된다.
그래서 resolv.conf파일에서 1.1.1.1로 매번 바꿔줘야한다.
매우 귀찮다.
"구글링하면 해결책이 있겠지"생각하고 해봤었다.
근데 wsl github페이지 보니까 나랑 같은 현상을 겪고 있는 사람들이 있었다. 그리고 그 밑에는
"나도안됨.
나도 안되는데.
나도 안돼요.
저도 안됨요.
아 나 이렇게 이렇게 했는데 해결됨.
나 그거 해봤는데 그것도 안됨.
.
.
.
"
대충 이랬던것같다.
나도 거기서 제시된 해결책 몇개 따라해봤는데 안됨.
그래서 친구가 gui깔아서 보여줬을때도 "어 이제 되네"하고 말았다.
그런데 이 책에 wsl의 네트워크 관련 내용이 있다.
그래서 읽어보고 몇가지 테스트를 해보려고 했는데, 바빠서 아직도 하지 못했다.
만약 WSL관련 작업을 하다 막히는 것이 있어서 Microsoft의 WSL설명 페이지와 GITHUB을 봤는데, 해결책이 없어 구글이 가장 먼저 보여준 블로그를 따라했는데도 도저히 해결이 되지 않을 때!
이 책을 읽어보시기 바랍니다.
솔직히 설치하고 세팅하는 내용만 거의 반에다가 WSL2만 다루는게 아니라 WSL1까지 다루고 있어서 계속 사용하시던 분들이면 이미 알고있는 내용이 꽤 될 것 같은데,
마소의 기계번역이나 블로그의 경험에서 나온 설명이 아닌 전문가가 WSL의 가상 구조라던지, 파일시스템과 네트워크 작동방식을 상당히 자세히 설명해주니 읽다보면
여기가 문제가 있는게 아닐까??
하면서 자연스럽게 문제해결을 위한 깨달음을 줄 수도 있습니다.
https://blog.naver.com/aul-_-/222688387039
하나의 컴퓨터에서윈도우와 리눅스를 사용하기 위해서는 멀티 부팅을 이용하여 윈도우와 리눅스를 각각 설치하거나, 호스트시스템에 가상 머신을 설치하고 다른 운영체제를 게스트 시스템으로 설치하는 것이 일반적이다. 예전에는멀티 부팅을 이용한 방법을 많이 사용했지만, 컴퓨터의 성능이 좋아지고,CPU가 가상화 관련 기술을 직접 지원하면서 현재는 가상 머신을 더 많이 사용한다. VMWare, VirtualBox는이러한 가상 머신을 사용할 수 있도록 해주는 인기있는 도구이다.
가상머신을 이용한 방법이 하나의 시스템에 여러 게스트 시스템을 사용할 수 있도록 해주는 장점이 있으나, 별도설치 및 운영에 따른 번거로움 역시 존재한다. 리눅스의 경우, 프로그래밍이나컴퓨터 작업과 관련하여 편리하게 사용할 수 있는 도구들이 많은 데, 이를 사용하기 위해 새롭게 리눅스를설치하는 것은 여전히 많은 노력을 필요로 한다.
WSL(Windows Subsystem for Linux)은 이러한 불편을 해결하고자 하는 데에서 시작했다. WSL은 가상 머신을 생성하고 새로운 운영체제를 설치하는 과정없이 개발자들이 리눅스를 사용할 수 있도록 해준다. ‘처음 만나는 WSL’은 전체 9개의챕터를 통해 WSL의 개발 이야기에서 WSL을 사용하기 위한준비 과정, WSL1과 WSL2의 차이점, WSL 파일 시스템과 네트워크, WSL에서 리눅스 개발 환경을 만들고리눅스 데스크톱을 실행하는 방법 등 그동안 널리 알려지지 않은 WSL에 대해 다루고 있다.
컴퓨터 관련 전문 서적들은 대체로 두툼한 외모를 자랑하는데, 이 책은채 190 페이지가 안된다. 하지만 윈도우 환경에서 리눅스관련 개발을 시작하거나 리눅스 도구를 사용하고자 하는 개발자들에게 꼭 필요한 핵심 내용을 담고 있다. 특히옮긴이의 주석과 추가 설명 및 관련 자료에 대한 링크는 한정된 지면에 담지 못한 다양한 정보를 독자가 관심을 갖고 찾아 볼 수 있도록 해준다. 윈도우와 리눅스의 경계를 허물고 생산성을 극대화하고자 하는 개발자들에게 추천한다.
맨 처음에 리눅스를 깔고 사용하려다 보니까 시행착오가 많았는데(정확히는 리눅스에서만 돌아가는 관리 플랫폼을 사용하려다 보니) 막상 구글링을 할 때 참고할 문서가 생각보다 많지 않았다. 그나마 있는 포스팅에서는 작성자가 굉장히 고난을 겪은 흔적이 보여서 나 또한 많은 도움을 받으면서도 이게.. 이렇게 어려울 일인가? 라는 생각이 들었다.
특히 '아니 이게 왜 안되지?' 라는 생각이 드는 부분은 이것저것 뒤져서 추론에 가까운 결론을 내리고 대안을 찾느라 정신없었다. 그리고 저자도 말하고 있는데 WSL2의 경우 WSL1과는 조금 차이가 있다. 그러므로 막상 구글링을 하면 WSL1 포스팅이 걸려들 가능성이 있으므로 주의해서 WSL2로 도움을 받는 걸 추천한다.
1장 : WSL 시작
WSL의 시초라 할 수 있는 WSL 1을 먼저 살펴본다. WSL은 윈도우에서 달러 기호 모양의 프롬프트를 사용할 수 없어 가상머신을 만들고 그 안에서 리눅스를 돌리는 수고를 덜어준다. 그리고 리소스 소비도 최소화한다. 확실히 옛날에 가상머신 설정할 때 메모리가 충분치 않으면 이것저것 파일 정리를 했어야 했는데 WSL을 사용하게 된 후로는 이런 수고를 덜 수 있다.
but 리눅스가 오픈소스 운영체제기 때문에 시시각각 변화하는 사항들을 마소에서 실시간으로 반영해 WSL1에 넣어줄 순 없다. 즉 업데이트 사항의 시간차가 존재한다.
또한 모든 리눅스 소프트웨어를 실행할 수 없는데 WSL 프로그램 호환성 목록을 찾아볼 수 있다. 이 경우 WSL2에서는 하이퍼 V 기반의 경량 유틸리티 가상머신을 만들어서 리눅스를 실행하므로 WSL1의 제한사항을 상당 부분 해결했다.
몇몇 약어 정리
- NT : New Technology
- WSL : Windows Subsystem for Linux
- ELF : Executable and Linkable Format(실행 가능하고 링크 가능한 형식)
- PE : Portable Executable(이식 가능한 실행 파일)
- API : Application Programming Interface(애플리케이션 프로그래밍 인터페이스)
- PEB : Process Environment Block(프로세스 환경 블록)
커널 : 사용자 애플리케이션과 하드웨어 간의 인터페이스
응용프로그램 > 드라이버 > 드라이버 > 커널
2장: 다운로드, 설치와 설정
WSL을 설치하기 전에 GUI 방식으로 WSL을 활성화해준다. 나의 경우 리눅스 배포판은 우분투로 설치했다.
WSL은 윈도우 사용자 계정과 동일한 접근 권한을 가진다. 즉 Administrator 권한 하에 있는 디렉터리는 WSL 또한 접근하지 못한다.
우분투 배포판 패키지 업데이트와 업그레이드 명령어
sudo apt update && sudo apt upgrade
3장 : 윈도우와 리눅스 섞어 사용하기
WSL 시작 구성 - /etl/wsl.conf
[automount], [network], [interop] 섹션으로 WSL 시작 구성 파일 설정 방법
윈도우와 리눅스 사이 경로 변환을 돕는 유틸리티 : wslpath, WSLENV
4장 : WSL 배포판 관리
배포판 목록 조회: wsl -l, wsl --list
WSL 배포판 백업 방법 : 관리자 권한으로 명령 프롬프트 시작 후 wsl --list -all.
리눅스 배포판 환경 이름 체크 후 배포판 이름과 tar 파일 저장할 경로를 전달해서 아래와 같이 실행
- 더 나은 파일 입출력 성능 : WSL 1에 비해 2-3배 정도 빠르다. 압축 파일 푸는 것은 약 20배 정도 빨라졌다고 한다.
- 완전한 시스템 호출 지원 : 커널 업데이트를 쉽게 제공할 수 있또록 자체 관리하는 리눅스 커널을 포함한다. 도커나 고급기능을 사용하고 기존에 지원되지 않았던 더 많은 앱을 원활하게 실행할 수 있다.
WSL2는 기본적으로 하이퍼 V와 같이 경량 VM에서 실행된다. 그렇기 때문에 하이퍼-V 기반 가상머신에서 직접 WSL을 실행할 수도 있다.
6장 : 파일 시스템
윈도우에서 리눅스로, 리눅스에서 윈도우로 파일을 접근할 때 유용성을 향상시킨 것이 WSL이다.
7장 : 네트워킹
WSL 1에서는 윈도우 애플리케이션과 같은 네트워크 인터페이스 카드(NIC), IP 주소, DNS 서버를 사용한다.
WSL2는 하이퍼-V 기술을 기반으로 만들어진 경량 유틸리티 VM에서 실행되기 때문에 전용으로 가상화된 네트워크 인터페이스가 있고, 전용 IP 주소와 DNS 서버 설정이 부여된다.
8장 : WSL에서 리눅스 개발 환경 만들기
VS Code에서 Remote - WSL 확장을 설치 후 개발자가 WSL을 비주얼 스튜디오 코드의 개발 환경으로 사용할 수 있다. WSL 파일에 접근해서 편집하거나 윈도우에서 리눅스 애플리케이션을 직접 디버깅하기도 편하다. 윈도우와 리눅스 간 많은 경로 변환과 호환성 문제도 처리한다. VS Code로 연결하는 부분이 유익했다.
WSL이 등장한 것은 2016년부터 였지만, 최근에 들어서야 사용자들이 많아지기 시작했다. 컴퓨터 사용자들 대다수가 윈도우 운영체제를 사용하기 때문에 개발자들도 윈도우 환경에서 테스트가 필요하다. 스택오버플로우 2021 통계에 따르면 개발자들 45% 정도는 윈도우 운영체제를 선호한다고 한다. 그러나 재밌는 점은 2021년도부터 WSL도 하나의 운영체제로 선호도 반열에 올라섰다.
나 역시 윈도우 환경에서 서류 작업과 코드를 짜면서 동시에 리눅스 환경에서 빌드 테스트를 해야할 일이 많다. 보통은 가상머신을 설치하여 리눅스 환경을 별도로 구축하거나, 리눅스 노트북을 이용하여 개발을 진행해왔다. 그러나 WSL 존재를 알고난 이후부터 따로 해도 되지 않아 편리해졌지만, 아직 개선점이 많이 필요하지만 훌륭하게 동작하고 있다.
WSL 사용자가 극히 드물기 때문에 정보를 입수할 방법이 제한적이였는데, 이런 책이 등장해서 매우 반가웠다.
무엇보다 WSL 1과 2의 아키텍처를 보여주면서 어떤 식으로 동작하는지 설명하는 파트가 가장 좋았다. 아쉬운 점은 아니지만 워낙 개발이 활발하게 진행되고 있기 때문에 설치 과정 일부분은 책 내용을 따라하더라도 제대로 동작하지 않았다. 그래픽 카드 드라이버 설치도 별도로 해주었지만 VS code 상에서 인식을 제대로 하지 못했다. 리눅스 환경에서 하던대로 동일하게 설치하였지만 어떠한 부분이 잘못되었는지 파악하기 힘들었다.
책에서도 설명되어있지만 리눅스의 모든 기능을 지원하지 않는다. 마이크로소프트에서 최신 버전의 리눅스에서 제공하는 새로운 기능을 구현할 때까지 기능 차이가 존재할 수 밖에 없다. 따라서 WSL에서 일부 리눅스 소프트웨어를 제대로 실행하지 못할 수도 있다는 얘기다. 물론 깃허브 레포지토리에서 커뮤니티가 관리하는 WSL 프로그램 호환성 목록을 찾아볼 수 있긴 하지만...
윈도우11에서는 WSL2를 기반으로 WSL 문제점을 보완한 WSLg가 나온다고 한다. WSL 버전이 많아지는 느낌이 들어서 왠지 꺼림직 하지만 점점 더 개선된 버전이라고 하니 일단은 마음에 드는 편이다. 개인적으로 마이크로소프트에서 WSL에 최대한 많은 지원이 들어갔으면 한다. WSL 자체는 계속해서 업데이트가 되기 때문에 책 내용 일부는 맞지 않을 수 있지만, 아키텍처나 다이어그램 흐름도는 동일하기 때문에 WSL을 지속적으로 사용하는 개발자라면 한 권쯤은 사둘만 하다고 본다.
오늘 소개할 책은 [처음 만나는 WSL] 이다. WSL에 대해 다소 생소할 수 있는데, 사실 일반적인 ICT 용어는 아니다. 이 단어는 Microsoft에서 사용하는 "리눅스를 위한 Windows 하위 시스템(Windows Subsystem for Linux)"의 약자이다. 일반적으로 Windows에서 Linux 시스템을 사용하려면 이제까지는 당연히 가상화 프로그램 즉, VMWare, VirtualBox 또는 Microsoft의 Virtual PC를 통해 그 위에 가상머신으로 Linux를 올렸었다. 하지만 이제 Linux를 사용하기 위해 가상화프로그램을 먼저 설치하고 그 위에 가상머신으로 Linux 시스템을 설치할 필요가 없게 되었다. 그래서 Linux 시스템에서 사용하는 명령어 grep, sed, awk과 같이 널리 쓰이는 명령어를 사용할 수 있게 되었다.
제대로 된 WSL 책이 필요하던 차에 이 책이 출간되어 반가운 마음이 먼저 앞섰다. MySQL같은 경우 수업할 때 Windows 10위에서 설치해서 필요한 SQL 명령어를 강의할 수 있거나, 위에서 언급한 가상화 프로그램을 설치하고 Linux(특별히 Ubuntu 20.04 LTS)를 설치하고 그 안에 Ubuntu용 MySQL을 설치해서 Windows 10에서 MySQL Workbench로 연결하는 방법을 소개했었는데, 이제는 WSL을 사용하면 그 작업을 훨씬 생략하고 쉽게 이용할 수 있게 된 것이다. 이 책은 WSL에 대한 소개, 설치 및 설정부터 배포판 관리, 그리고 WSL에서 Linux 개발 환경을 셋팅하는 방법까지 꼭 필요한 내용을 망라하고 있다. WSL을 제대로 공부해보고 싶은 분들에게 꼭 필요한 학습서가 출간된 것이다. 다만 아쉬운 것은 내용 자체가 어려운 것이 아니어서 책으로 출간될 만큼 양이 많지 않았기 때문인지 모르지만, WSL2를 이용해서 작업해도 충분함에도 굳이 WSL1에 대한 설명이 좀 길었다는 것이다. WSL1에 대한 간단한 설명을 하고 바로 WSL2 설치부터 진행했으면 좋았을 것이고, 대신 명령어에 대해 보다 더 자세한 설명을 있었으면 베스트였다라고 생각한다. 자~ 이제 Windows10에서 Linux 시스템을 제대로 배워보자.
한.. 10년전에는 윈도우가 대세였다. 윈도우는 한 때 '치명적 오류 = 블루스크린'이라는 말을 만들 정도로 오명을 뒤집어 썼던 그런 OS이지만, 윈도우7을 기점으로 새롭게 탈바꿈하여 많은 안정성을 가져왔고, UX에서도 사람들에게 자연스러움을 최대한 심겨주었고, 보는 즐거움마저 안겨준 UI를 보여주기도 하였다.
그러한 윈도우7의 발전이 꽤나 익숙해질 무렵, macOS는 다시 재정비를 하여 OSX의 버전업을 하면서 우리에게 다가왔고, 지금은 개인 사용자들에게(특히 개발자나 크리에이터를 중심으로) 윈도우보다도 macOS를 선호하도록 만들었다.
나 역시도 OSX를 2010년 초반에 좀 사용하다가 아직은 굳이 편리하다고 느끼지는 못하여 윈도우 위주로 사용하였고, 그 사이에 리눅스도 많이 익숙하도록 노력하면서 최대한 나의 직업을 잘 활용하는 방향으로 학습해 왔었다. 그러다가 다시 2018년 이후부터는 macOS를 점차 활용하기 시작하였고, bash 쉘(zsh로 바뀌긴 했지만) 등의 활용으로 macOS가 이제는 개발자의 측면에서는 편하다고 느끼고 있는 것이 사실이다.
그러던 중 윈도우도 윈도우10을 지나, 윈도우11을 내고 꾸준히 발전하고 있었는데, 그 사이에 포함되어 있었던 WSL의 존재를 신기하나 대수롭게 여기지 않았기 때문일까. 잊고있던 것이 생각났다. 이 책을 보면서 WSL(Windows Subsystem for Linux)은 얼마나 발전되었으며, 이것은 어떻게 활용이 가능할까 궁금해하며 이 책을 열어보기 시작하였다.
> 책에 대한 간단한 정보
이 책은 WSL의 전반에 대해 간략하게 기록된 책이다. 이 책을 보았다 하여 WSL의 모든 것을 알 수는 없다고 생각할 만큼 책이 두껍지도 않다. 하지만 단순 bash쉘을 넘어서서 윈도우 내에 포함된 리눅스 시스템이 얼마나 활용가치가 있는지, 그리고 상호 운영체제간 연동성을 위해 알아야 하는 필요성이 있다면 그런 필요를 채워주는 내용으로 기록되어 있다.
머릿말에 보면 역자는 한국 WSL 사용자 그룹에 속해있고 운영중이다. 그래서 필요시 한국 WSL 사용자 그룹에도 방문하여 도움을 얻었으면 좋겠다고 말하고 있다.(wslhub.com)
리눅스하면 생각나는 검정색 터미널 화면과 펭귄을 내세운 디자인이기에 바로 이해가 되었다.
윈도우를 사용하지만 리눅스에 관심이 있는 개인사용자라면 WSL에 대한 정보를 쉽게 접할 수 있도록 책이 얇게 나온 것도 특징이다.
> 인상깊은 부분들
WSL의 전반적인 구조를 알 수 있었기 때문에 좋았던 부분은 뒤에서 다시 언급할 것이지만, 그 중 파일시스템에 대해서 언급한 내용은 꽤 인상적이었다. 사실 실생활에서 서로 다른 OS간에 난관을 겪기 쉬운 부분이 바로 파일시스템이기 때문이다. OS가 다르면 서로 인식되는 파일시스템도 다르기 때문에 불러올 수 없는 경우도 많다. 대표적으로 Mac의 OSX시절 NTFS 파일을 불러오기 위해 별도의 유틸을 설치했던 경험이 있었으며, 리눅스에서도 ext부터 ext4까지 공부하지 않으면 알 수 없는 시스템으로 난관을 겪기 일쑤이기 때문이다. (ext4에 대해 궁금하다면 아래를 참고)
여기에서는 drvfs파일시스템으로 마운트되어서 WSL 내에서 활용이 가능함을 알려주고 있으며, 이것은 NTFS와 ReFS만 지원한다고 말하고 있다. 사실 윈도우10 이상을 활용하는 사용자라면 더이상 FAT32를 사용하지는 않을 것이기에 이정도면 충분해 보이며, NTFS정도만 되어도 서로 호환이 완벽하게 된다고 생각되기 때문이다. 물론 이 책에 구체적으로 더 실린 부분인 파일의 대소문자를 다루는 문제에 있어서는 몇가지 설정이 더 필요하기는 하지만(리눅스는 대소문자 별도 구성이 가능하므로) 기본적으로 c와 d 드라이브 등 윈도우에서 기본적으로 사용하는 드라이브를 자동으로 마운트되어 사용할 수 있게 한다는 점을 다룬다.
WSL의 아키텍쳐에 대해 말하는 부분과 함께 나온 부분이다. WSL1과 WSL2의 차이도 함께 말하고 있는데, WSL1에서는 과도기적인 느낌을 주고 있다고 생각을 주는 부분이 이러한 부분인데(NTFS를 사용하여 윈도우 드라이브에 확장 속성을 주어 저장) WSL2에서는 별도의 OS에 가깝도록 모든 리눅스상의 파일들이 ext4 파일시스템을 사용하는 하드웨어 디스크(VHD)에 저장됨을 말하고 있다. 이 밖에도 9P서버 등 사용자 모드와 커널 모드 사이에서 작동하는 원리가 궁금하면 이 책을 읽는 것이 큰 도움이 될 것이라고 생각된다.
이 책의 실습을 한 내용 중 하나인데, 환경변수에 대한 내용이다. 리눅스에서 환경변수 설정을 했을 때 윈도우에서 그것을 활용하도록 하는 방법이다. 물론 그 반대도 가능하다. 또한 윈도우에서 리눅스의 프로그램을 접근하는 방법과, 서로간의 git ssh key를 공유해서 사용하는 방법 등, 윈도우에서 쉘을 실행하지 못해서 한계가 있었다면 그 한계를 당당하게 넘어서 사용할 수 있도록 그 벽을 무너뜨리도록 한다.
심지어는 터미널 혹은 커맨드창에서만 활용하는 것이 아니라 vscode(Visual Studio Code)에서도 활용이 가능하다. 이것은 파이썬을 WSL에 연결하여 활용한 것을 보여주고 있다. 빌드 및 디버깅까지 가능하게 함으로써, 얼마든지 로컬 환경에서 비주얼인 툴로도 활용이 어렵지 않다는 것을 보여준다. 비주얼 스튜디오 코드는 언어 및 프레임워크의 장벽을 넘어서서 어디든 활용이 폭 넓게 가능하기에 좋은 예시라고 생각되며, 특히나 vscode는 마이크로소프트가 개발하는 툴이기에 더욱 호환성이 좋지 않았을까 하는 생각도 들었다. 안드로이드 개발자인 나 스스로도 vscode로 한다면 윈도우에서 쉘스크립트로 이루어진 빌드를 아무 거리낌없이 할 수 있지 않을까 하는 생각이 들어서 조만간 시도해야겠다는 생각이 들었다.
> 괜찮은 부분
1. 생소하다 느낄 수 있는 WSL에 대해서 다루는 책이다.
WSL에 대한 책은 찾기가 어렵다.(네이버에서 'WSL 책'이라고 당장 검색해보라) 그래서 매우 드문 책이다. 그렇다고 가치가 없는 것이 아니다. 이미 나온지 수년이 된 구성요소로서 윈도우 사용자에게는 가뭄의 단비같은 책이 될 것이다. 윈도우에서 쉘 스크립트 활용이 어렵기에 리눅스나 맥으로 넘어간 개발자가 이미 많을 것이라고 생각이 들지만, 그래도 여러 이유로 여전히 윈도우를 활용하는 편이 낫다고 생각하는 개발자들에게 필요한 지식이기에 이 책은 귀한 책이라는 생각이다.
2. WSL의 아키텍처까지 상세히 다뤘다.
WSL2의 아키텍처를 포함하여 실행 흐름을 그림과 함께 상세히 다루었다. 그래서 이해하는 데 큰 도움이 되었다. 특히 WSL1과 WSL2와의 차이점에 많은 지면을 할애하였기 때문에 비교하며 발전사항을 알 수 있었다. 단순 활용방법에만 집중하여도 이미 실제적인 활용에는 문제 없는 수준이었겠지만, 본인을 비롯하여 구조와 원리를 궁금해하는 사람에게는 이러한 부분이 필요하다. 너무 깊게 다루지는 않았기 때문에 난이도가 그렇게 높게 느껴지지 않았다는 것은 또 하나의 장점이라고 볼 수 있다.
3. 윈도우와 상호작용하는 부분을 많이 다루어서 흥미로웠다.
윈도우와 통합되어 상호작용이 많은 WSL이기 때문에, 이러한 주제로 흥미를 유발하였다고 생각한다. 특히 탐색기에서 WSL을 네트워크 드라이브 연결하듯이 파일 접근이 가능하다는 점을 처음 알게 되었다. 이 밖에도 git의 서명키를 공유하는 부분이나, XRDP로 데스크탑모드로 접근하도록 하는 부분, 도커 활용과 비주얼 스튜디오를 통한 코딩 등 많은 부분이 도움이 된다는 것을 알려주고 있다. 단순히 윈도우내에 리눅스 체험하도록 한 것이겠거니 생각했다면 오산이다. 이 부분으로 WSL에 충분히 매력을 느끼도록 했다고 생각한다.
> 아쉬운 부분
1. 윈도우11에 대해 반영되지 않았다.
발행된지 한달이 안된 책이다. 이미 윈도우11은 작년부터 공개가 되어 있었으며, 이에 몇개의 가이드는 UI가 달라 조금은 당황한 부분도 있었던 것이 사실이다. 그래도 대충 이해할 수 있는 정도의 수준을 지닌 사람이 이 책을 볼 것이기 때문에 큰 문제라고 생각되지는 않으나 윈도우11의 사용자가 따라하기에는 아무래도 자의로 해석해야 하는 부분들이 있었기에 아쉬웠다.
2. 일부 최신화 및 상세설명이 필요한 부분이 존재하였다.
앞의 부분과 비슷한 부분일 수 있으나 윈도우 스토어에 대해서도 UI가 달라진 부분들에 대한 반영 뿐 아니라, 우분투에 대해서도 이 책에서는 18.04를 기준으로 진행하였지만, 20.04가 이미 LTS로 나온지 2년이 지나 얼마 후면 22.04가 나올 수도 있는 시기이기 때문에 굳이 18.04로 진행했어야 하는가 라는 생각을 갖기는 하였다. 또한 xrdp를 따라 진행하는 부분에서도 너무 설명이 간단하였는데, 생각보다 실행이 쉽지 않아서 구글에서 추가검색을 필요로 하였기 때문에 아쉬운 부분이었다.
3. 명령줄 실행 관련 오타가 종종 발견되었다.
실습을 진행할 때 명령줄 실행에 대한 부분(직접 발견한 부분은 74, 76, 141페이지)이 있었는데, 이러한 부분들로 오류를 경험하게 되었다. 결국 이런것들로 인해 신뢰도가 떨어져서 명령줄을 입력하는 부분마다 해당 명령어가 맞는지 다시 한번 확인 후 입력을 하게 되어 시간이 추가로 소요되었으며, 책이 갖는 의미가 부분적으로나마 퇴색된다고 생각도 들었다.
> 추천 독자
- 윈도우를 사용하고 있는 개발자
- 리눅스나 쉘스크립트 활용을 필요로 하는 개발자
- 듀얼부팅이나 2개의 머신으로 리눅스를 활용하고 있는 일반인
- 팀에서 리눅스, 맥, 윈도우 섞여서 사용하고 있는데, 공통 스크립트로 쉘 스크립트를 사용하려고 하는 팀장(또는 팀원)
WSL은 윈도우를 메인 개발환경으로 사용하는 개발자가 여러 다양한 운영체제, 특히 유닉스/리눅스 계열 운영체제에서 동작하는 서비스를 개발하거나 윈도우에 더 강력한 생산성 도구를 추가 사용하고 싶을 때 고려되는 옵션중 하나이다. MS 윈도우는 GUI를 기반으로 사용자들에게 편리하게 쓰기 쉬운 개인용 컴퓨터 운영체제가 되었지만, 서버의 영역에서는 리눅스(POSIX 운영체제들)에 많이 밀렸다. 다양한 툴과 GNU 컴파일러들, 다양한 서버 프로그램 등 리눅스가 제공해주는 강력한 기능들은 개발자들에게 윈도우에서도 너무 쓰고싶은 리눅스만의 매력 포인트였다.
클라우드 시대가 전개되면서 리눅스는 더 많은 개발자들의 많은 지지를 받게 된다. 하지만 MS는 Visual Studio, 오피스 등 각종 강력한 도구들을 갖추고 있는 회사 아닌가! 운영체제 차원에서는 BSD를 기반으로 하는 맥북이 Unix의 강점을 잘 활용할 수 있는 구조였기에 나도 한동안 맥북을 개발 메인용도로 사용하였다. 집에서는 윈도우를 사용하고 윈도우 기반 앱을 개발하다보니 윈도우를 벗어날 수 없어 한동안 MinGW/msys 나 VirtualBox 같은 도구로 VM을 생성하여 리눅스를 설치하고 사용했었다. 일정 정도 원하는 바를 해소해주는 방안이긴 했으나 호스트 운영체제인 윈도우와 VM상의 리눅스는 상호 운용성이 부족하고, VM 관리도 불편하여 초반 설정후 잘 안쓰게 되었다.
하지만 WSL이라는 게임 체인저가 등장했다. WS(Windows Subsystem)이라는 개념은 초기 32비트 앱을 실행하기 위한 서브시스템에서 출발했지만 이제는 리눅스(WSL)에서 안드로이드(WSA)까지 확장되어 기존 운영체제 장벽을 허물고 있다. 그런데 의외로 WSL에 대한 서적은 나오질 않았는데, 이 책은 WSL을 다룬 첫번째 국내 서적이다.
리눅스에 사용경험이 있는 윈도우 사용자라면 MS가 워낙 쉽게 구성해서 WSL을 설치 사용해 본 적이 있을 것이다. 그런데 그 구조나 구성 원리에 대한 소개는 찾아보기 어려웠다. 그러나 보니 상호 운용성을 고려해서 설계된 WSL의 능력을 100% 사용하지 못하는 것이 아닌가 생각하던 차에 이 책을 접하게 되었다.
이 책의 구조: WSL의 과거와 현재, 미래 방향을 이해하자
이 책은 전체 구조부터 활용까지 WSL이 시도하는 전체 로드맵을 간결하게 소개하고 있다.
1장에서는 WSL이 만들어지기까지의 MS사의 시도들, 아스토리아나 드로 브릿지부터 WSL 1과 WSL2의 구조를 설명하면서 이에 대한 장단점을 기술하고 있다. 이런 역사를 다루는 것은 역시 이러한 기술이 왜 등장했으며 어떤 방향으로 나아가고 있는지를 이해하는데 큰 도움이 된다.
2장에서는 WSL을 설치하는 과정을 다룬다. 이미 나는 WSL을 사용한 경험이 있기 때문에 큰 무리없이 읽을 수 있었다.
3장에서는 이제 윈도우와 리눅스를 섞어 사용하기 위하여 디스크 마운팅이나 경로 설정/변환을 다룬다. 쉘 스크립트를 통해 윈도우/리눅스간 장점을 활용하기 위해서는 충분히 이해하고 있어야 한다. 예를 들어 /etc/wsl.conf 파일의 [interop] 섹션을 통해 리눅스 서브 시스템에서 윈도우 프로그램을 연계하여 실행한다거나 윈도우에 설정된 시스템 환경변수 값을 어떻게 가져오는지에 대한 동작을 간략히 소개한다.
4장에서는 WSL 백업에 관한 이야기인데, 사실 나는 내 개인 블로그의 이전 글에서 WSL백업을 다룬 적이 있었다. C드라이브의 용량부족을 해소하기 위하여 다른 디스크로 기본 경로를 옮겼었는데, 그때는 기술 블로그를 보면서 따라하는 수준이었다면 4장의 내용을 통해 왜 그렇게 되는지를 좀 더 이해할 수 있게 되었다.
책에서는 WSL1과 WSL2를 같이 사용할 수 있다고 되어있겠지만, 특별한 이유가 없다면 최신 기술인 WSL2를 이용하는 것이 좋다. 5장에서는 WSL2의 구조적 변화를 설명하고 있다. WSL2의 효용가치를 높이기 위해 마이크로소프트사가 직접 관리하는 리눅스 커널을 사용하고 있는 것도 놀라웠다. (마치 우리 MS가 바뀌었어요를 보는 느낌.)
6장의 파일시스템과 7장의 네트워킹은 윈도우/리눅스간 상호 운용성을 어떻게 구현하고 있는지에 대한 기반 기술을 간략하게 소개하고 있다. WSL을 구성하는 파일시스템 형식이 volfs, drvfs, tmpfs, procfs, sysfs 등 여러개인 것은 생각하지 못했던 부분이었다. 각 파일시스템과 용도, 특징을 잘 소개하다보니 MS가 왜 그렇게 구현했고, WSL이 어떻게 동작하는지에 대한 이해가 높아진다. 막연히 윈도우와 리눅스간 파일 공유는 SAMBA를 사용하지 않았을까 했는데 P9NP라는 프로토콜로 새롭게 구축한 배경도 재미있게 읽었다.
8장과 9장은 개발환경 구축, 리눅스용 프로그램을 윈도우에서 실행하는 방법과 도구를 소개하고 있는데, WSL을 처음 접하는 개발자라면 도움이 될 것이다. 윈도우에서 실행한 비주얼스튜디오 코드에서 리눅스 서브시스템에 접근하여 코드를 개발하는 방법 등을 소개하고 있다.
WSL의 빠른 개발속도로 인해 책 내용과 살짝 안맞는 부분이 있다. 예를 들어 윈도우 터미널에서 WSL을 설정하는 부분이 예전에는 설정파일이었는데, 이제는 GUI에서 설정하도록 변경되었다. 하지만 책 내용을 이해하고 따라하는데에는 문제가 되지 않는 정도이다.
WSL을 처음 사용할 때 반드시 읽어보고 시작할만한 책
이 책은 WSL을 사용해 보고자 하는 개발자 또는 WSL을 예전 리눅스를 사용하던 느낌으로만 쓰고 있는 개발자들이 WSL의 능력을 좀 더 이해하고자 할 때 좋은 길잡이가 될 수 있는 책이다. "개발자 및 IT 전문가를 위한 리눅스용 윈도우 하위 시스템 실무 안내서"라는 이 책의 부제가 딱 들어맞는 내용과 구성이다. 관련 기술들을 훑고 있다는 점에서는 좋게 평가한다. 다만 기술의 깊이 면에서는 조금 더 자세히 설명해 주어도 괜찮지 않았을까 하는 아쉬움이 들지만.. 그래도 잘 구성한 실무 안내서이다.
개인적으로 별점 4.5개를 부여해 본다. 당연하지라고 생각했던 WSL에 대한 구조를 좀 더 이해할 수 있게 되었다. 이 책을 읽고나니 WSL에 좀 더 궁금점들이 생겨서 "Pro WSL"(APress)을 읽어보고 있다. 이 책을 통해 WSL의 기본 개념을 얻었기 때문인지 상대적으로 쉽게 읽고 있는 중이다.
WSL을 들어본적이 있는가? 나는 예전에 잠깐 LINUX 공부를 할때 들어본 것 빼고는 활용할줄도 모르고, 왜 사용하는지도 몰랐다. 그러던 도중 최근에 서버개발로 인해 LINUX 환경에 대해 공부를 해야됐고, VM을 사용하기 싫었던 나는 WSL을 한번 해볼까? 라는 생각에 이 책을 펼치게 됐다.
2.메인 내용
내용은 생각보다 간단했다. 200pg보다 적은 분량에 WSL의 설치부터 기본 활용까지 알려준다. 그리고 마지막으로 WSL 2와 리눅스에 대한 짧막한 지식도 알려준다. 한빛미디어스러운 디자인 내용으로 꽤나 보기도 편하고 따라해보기도 편했다. 실제로 따라하는데 3시간정도 걸렸던 것 같다.
3.나의 생각
이 책을 통해 WSL을 직접 컴퓨터에 설치해서 해보기도 했고, 이렇게 윈도우 환경에서 LINUX를 활용할 수 있다는 것을 알게됐다. 생각보다 리눅스는 쓸데가 많아서 분명 언젠가 도움이 될것 같다. 리눅스를 찍먹해보고 싶은 분들께 강추한다. 내용설명도 좋고, 기본서같은 느낌이라 가볍게 보고 따라할 수 있다.
보통 일상 및 학교에서 운영체제를 사용한다고 하면 먼저 윈도우를 자주 쓰고 그 이외의 리눅스 기반의 운영체제는 잘 사용하지 않을 것이라고 예상합니다. 그리고 실상 리눅스를 배운다고 하면 윈도우안에서 구동시켜 실습하는 방법을 먼저 찾으려 할 것입니다. 저 또한 버츄얼 박스를 통하여 리눅스를 구동하는 실습을 이전에 배웠었습니다. 본 책은 윈도우에서 리눅스를 배포 및 실습하는 내용을 간단하고 이해하기 쉽게 다루고 있습니다.
먼저 본 책을 읽으면서 유튜브 및 여러가지 서적을 찾아가면서 공부했던 내용들을 보다 쉽게 접할 수 있던 점이 장점이라고 생각합니다.
또한 설치와 가상머신에서도 구동하는 방법도 알려주어서 윈도우 shell 의 캡쳐 사진을 통하여 실습또한 가능합니다.
마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 4월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.