어쩌다보니 윈도우 유저로서 리눅스를 사용하게 되었다. 그런데 맨 처음에 리눅스를 깔고 사용하려다 보니까 시행착오가 많았는데(정확히는 리눅스에서만 돌아가는 관리 플랫폼을 사용하려다 보니) 막상 구글링을 할 때 참고할 문서가 생각보다 많지 않았다. 그나마 있는 포스팅에서는 작성자가 굉장히 고난을 겪은 흔적이 보여서 나 또한 많은 도움을 받으면서도 이게.. 이렇게 어려울 일인가? 라는 생각이 들었다.
특히 '아니 이게 왜 안되지?' 라는 생각이 드는 부분은 이것저것 뒤져서 추론에 가까운 결론을 내리고 대안을 찾느라 정신없었다. 그리고 저자도 말하고 있는데 WSL2의 경우 WSL1과는 조금 차이가 있다. 그러므로 막상 구글링을 하면 WSL1 포스팅이 걸려들 가능성이 있으므로 주의해서 WSL2로 도움을 받는 걸 추천한다.
WSL 책을 좀 사볼걸. 그렇지 않다면 관련 한국 커뮤니티라도 찾아볼걸. 왜 이 생각을 못햇나 모르겠다 ^^;
확실히 예전에 뭔가 관련된 경험을 한 적이 있는 내용을 담은 책은 리뷰를 쓸 때 서두가 길다.
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 --export Ubuntu-18.04 c:\temp\ubuntu1804.tar
WSL 배포판 복원 방법 : 관리자 권한, 명령 프롬프트 실행.
wsl --import SLES-Imported c:\temp\ c:\temp\SLES.tar
5장 : WSL 2 알아보기
WSL 최신버전이다. 가장 고도화된 기능을 제공한다.
- 더 나은 파일 입출력 성능 : 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로 연결하는 부분이 유익했다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'IT리뷰' 카테고리의 다른 글
완성된 웹사이트로 배우는 HTML&CSS 웹디자인(2022.05.10) (0) | 2022.05.29 |
---|---|
머신러닝 실무 프로젝트 2판(2022.03.10) (0) | 2022.04.24 |
SRE를 위한 시스템 설계와 구축(2022.01.03) (0) | 2022.02.23 |
머신러닝을 활용한 웹 최적화(2021.06.07) (0) | 2021.12.26 |
머신러닝 디자인 패턴(2021.11.01) (0) | 2021.11.21 |
댓글