맥북에 리눅스 설치, 그리고 hyper-v

· 1584 words · 4 minute read

개요 🔗

맥을 사용하다보니 점점 운영체제가 갖는 한계가 느껴졌다. 지난 1년 반 동안 사용하면서 느꼈던 점은 윈도우즈와 리눅스의 장점만을 취한 운영체제였지만 동시에 맥 만의 단점을 갖고 있었고 생각보다 매우 영향이 컸다.

PIM은 기본이고 상위 레벨 프로그래밍을 위해서, 맥 만큼 좋은 운영체제는 없을 것이다. BSD 기반으로 만들어져 완벽하지는 않지만 포팅을 하면 어느정도 리눅스에 가까울 정도로 네이티브 환경에서 실행 가능하고 다양한 분야에서 강력한 유료 애플리케이션이 지원되기 때문에 만족스럽게 사용할 수 있다.

하지만 맥은 WSL을 도입하면서 윈도우즈가 갖게된 리눅스 플랫폼(?)과의 호환성은 가지고 있지 않다. 포팅은 가능하지만 기본적으로 리눅스 배포판들이 갖는 환경을 구성하기가 매우 힘들다. 게다가 완전한 독점 플랫폼이고 하드웨어조차 security chip을 도입하고 있기 때문에 맥 OS 외에는 설치조차 힘들다.

또한, 크로스 컴파일러를 이용한 커널 빌드를 위한 환경 구성에도 그닥 좋지 않다. 기본으로 사용하는 파일시스템은 case-sensitive도 아니고, bare-metal 크로스 컴파일러를 구성한다면 상관없겠지만, 커널을 빌드하기 위해 필요한 glibc, openssl, … 등의 라이브러리들이 포함되기 시작하면 매우 까다로운 작업이 된다. 맥에서 LFS (Linux From Scratch) 프로젝트를 할 것도 아닌데, 그만큼의 노력과 시간이 요구되는 아이러니한 상황이 펼쳐진다.

맥북과 커널의 호환성 🔗

현재, mbp 기준 리눅스 커널의 기본 드라이버들과의 호환성은 그닥 좋지 않다. 호환성은 https://github.com/Dunedan/mbp-2016-linux#bluetooth 페이지에서 확인해볼 수 있다. 논터치바 13인치 모델(13,1)을 제외하고는 와이파이조차 안된다는 점에 유의하자.

우분투 설치 🔗

개인적으로 우분투는 별로 좋아하지 않지만 설치 후 서드 파티 드라이버 설치를 간편하게 하기 위해 우분투를 설치하기로 했다.

$ hdiutil convert -format UDRW -o ~/Desktop/ubuntu.img ~/Downloads/ubuntu.iso
$ dd if=ubuntu.img of=/dev/disk2 bs=1m # /dev/disk2 는 반드시 직접 확인해야 한다.

dd 명령어로 img 파일을 USB 에 구울 때 busy resource 에러가 나온다면, 디스크 유틸리티에서 해당 파티션을 unmount 해주고 다시 실행해야 한다.

나머지는 간단하다. USB를 넣고 맥북 재부팅 시 option키를 눌러 이동식디스크로 부트해주면 설치를 진행할 수 있다.

호환성 문제 🔗

우분투를 설치하고 나서 여러가지 고질적인 하드웨어 문제들이 나타나기 시작했다. 블투루스와 5g 와이파이가 안되는 문제, 소리가 안들리는 문제 등 드라이버를 온전하게 지원하지 않고 있었다. 단순하게 컴파일만을 하기 위해서는 문제가 없었으나 그 이상의 작업을 위해서 불편하게 재부팅해야 하는 문제가 있었다.

부트캠프 윈도우즈 설치 🔗

부트캠프를 이용해 윈도우즈를 설치하고 나머지 맥 파티션은 모두 밀어버렸다. 맥에서의 패러럴은 내게 아무런 장점도 갖고 있지 않았다. VM의 GUI 환경이 필요없는 내게 심리즈 모드나 불필요하게 리소스를 잡아먹는 게 한두가지가 아니었고 virtualbox, vmware 들은 윈도우즈에서 지원하는 hyper-v의 성능의 기대에 크게 못미쳤다.

부트캠프를 이용해 윈도우즈에서 일어나는 드라이버 이슈를 해결하고 github에서 서드파티로 개발되어 있는 터치패드 드라이버를 설치했다. 이맥스는 터미널 환경에서의 작업을 위해 구성하고 vscode를 이용하여 hyper-v 가상머신으로 접속하니, 맥에서 보던 리소스 문제도 없고 완벽하게 윈하는 만큼의 리눅스 환경을 즐길 수 있게 되었다.

끝맺음 🔗

한동안 맥을 정말 좋아했는데 최근에 들어서는 윈도우즈에 한참 못미치는 모습이다. 대학 시절 우분투, 레드햇, 아치와 젠투 리눅스로 리눅스를 접하고 netbsd와 freebsd 등으로 bsd를 접하다가 마침내 맥을 접했을 때, 내가 원하는 개발 환경을 지원하면서 동시에, 카카오톡과 같은 유틸리티를 wine 없이도 맘껏 돌릴 수 있다는 것이 큰 장점이었다. 하지만 그 매력도 이제는 점점 사라져간다. WSL로 왠만한 리눅스 배포판에 포함되는 tui 툴은 사용가능하고 이마저도 hyper-v를 이용해 가상머신으로 완벽하게 돌릴 수 있다. 거기에 리소스도 일반 가상머신 에뮬레이터에 비해 많이 차지하지 않는다는 점이 정말 매력적이다.

멀티미디어가 주인 사용자들에게는 맥이 아직도 값어치를 하는 충분히 매력적인 운영체제이겠지만, 개발자에게는 이제 유일한 선택지가 아니다. 오히려 후순위로 밀려나지 않았을까.