Linux에서 QEMU와 씨름 중이다.

물 들어온 김에 노 젓는다고 기왕에 리눅스와 QEMU와 가까이 할 수 있는 상황이니 맘놓고 놀아보려고 하고 있다.

처음엔 설치가 가장 편한 ubuntu를 올려뒀었는데, 이게 가만 두고 보면 업데가 빠른 것도 아니고 일부러 구버전의 소프트웨어도 들고 있고 원치 않는 것을 워낙 많이 가지고 있어서 arch linux로 올리려다가 이건 또 거의 바닥에서 올라가야 되는 지경이라 어쩔 수 없이 배포판 중 하나인 manjaro를 써서 하나 둘 씩 올려가보고 있다.

OS의 최고봉들만 쓰다가 이런 바닥부터 올리는 OS를 쓰면 오직 환경 구축으로 쓰이는 시간이 아주 어마어마하다.

그러니까 컴퓨터를 가장 시간적으로 효율적으로 쓸 수 있는 것은 OS에 대한 쓸데없는 호기심과 바램을 버리고 있는 기능의 10-20%만 사용하는 것이다. 더 잘하려고 욕심 내면 안된다.

그러니까, 요즘 같으면 웹 앱으로 마소 오피스도 다 잘 돌아가고 있으니까 온전히 웹앱으로만 일하고 나머지 일은 절대 하지 않는 것이다.

메인 OS를 리눅스로 쓰고 있고, 그것도 사용자층이 두꺼운 ubuntu도 아닌 arch linux로 거기에 QEMU로 가상 OS까지 얹어쓰는 거라면 좀 많이 나간 것인데, 여기에 GPU passthru를 한다거나 하면서 객으로 쓰는 OS를 native에 거의 버금가게 쓰겠다는 것은 역시나 재택근무를 하는 시절에 딱 어울리는 짓이지 싶다.

QEMU가 상당히 발전이 많이 됐다. 속도도 매우 빨라지고, 뭐 그게 다 CPU가 가상 오에스를 지원하는 능력이 좋아진 것이기 때문이기도 하고 그러한 기능을 kernel에서 잘 지원해주는 덕택이기도 하다. 리눅스는 KVM이라는 드라이버가 있고 MacOS에서도 xhyve라는 하이퍼바이저 계층이 존재하는데 그 덕택에 docker가 꽤나 스무스하게 돌지만, 이게 AMD CPU로 지원이 안되서 골치가 아픈데 아예 주인이 되는 OS를 리눅스로 가지고 가면 docker는 말 할 것도 없이 엄청나게 빠르고 윈도우도 제법 빠르고 MacOS도 그럭저럭 쓸만한 수준이 된다. 사용해보면 KVM이 훨씬 좋다는 게 체감상 딱 와닿는다. 일반 사람들은 리눅스를 잘 쓰지 않으니 모를 뿐이지만.

주인이 되는 OS를 윈도우즈로 하면 이것 저것 꼬이는 게 많고 OS가 엄청나게 커지고 머리 아픈 일이 한두개가 아니게 되고 MacOS에서 하면 나름 깔끔하고 좋긴한데, 파일 시스템이 제짝이 아니라 좀 느리다. 물론 인텔 해킨이 아니면 엄청 답답해지는 일이 생긴다.

어쨌든 AMD CPU때문에 이런 일을 하게 되었는데, 덕택에 배우는 것이 많이 있다. 그냥 시간만 날리는 게 아니라. 이렇게 기회가 될 때 모든 경우의 수를 다 대입해봐서 최적의 루트를 찾는 것이다. 바보같다고 해도 할 수 없다. 해보지 않고 지름길을 알 수 없으니까.

리눅스를 주 호스트로 할 때 좋은 점은 별 다른 명령을 내리거나 하지 않으면 OS는 자기 본업에 충실하단 것이다. 다른 OS들 처럼 새로운 업데이트가 나왔으니까 업데 해라 오늘까지 안하면 안된다 하면서 괴롭히지 않는다. 그외의 인적 네트워크(메일)와 관련된 것들은 잘 만들어진 SW가 없어서 실행하지 않고 그래서 그렇게 쓰다보면 일하는 동안 날 괴롭히는 놈들이 없어져서 집중하기가 좋고 컴퓨터가 불필요한 일을 하지 않으니까 늘 쾌적하다.

일을 한 땐 컴퓨터가 오직 일에 집중하고 GNU 관련 소프트웨어들은 타의 추종을 불허할 정도로 너무 빠르고 좋다.

다만 초기 진입장벽이 좀 높다. 내가 아주 어렸을 때부터 컴퓨터를 했고 unix나 리눅스 관련 OS에서도 오래 일을 해왔지만, 여전히 이 바닥은 새로운 것도 많고 한방에 잘 되지 않아서 헤딩을 해야하되는 게 무궁무진하다. 이게 다 컴퓨터나 OS의 기능을 어떻게 하면 잘 찾아쓸 수 있을까 호기심과 탐구심을 갖게 된 결과다. 컴퓨터도 그다지 잘하는 편이 아니지만 다른 분야는 더 엉망이 되어가는 것이니까. 또 이렇게 깊게 파고 들어가는 분야가 자꾸 생기면 타인과의 대화가 잘 될리가 없다. 남들을 위해 살아가는 것이 아니니까 그냥 살자.

libvirt라든가 virtmanager 같은 것을 GUI라서 편하단 이유로 잠시 사용했었는데 오늘부로 완전히 접고 그냥 qemu-system으로 kvm불러서 쓰는 것으로 바꿨다. 그냥 터미널 상태에서 한 줄 부르면 OS가 뜬다. 매우 가볍게 떠오르고 가볍게 꺼버릴 수 있다. 이미지를 하나 만들어두고 매번 설치하지 않게 할 수 있다. 파일 시스템은 주인호스트의 파일 시스템만 (가상 네트워크로)이용하면 되니까 하나로 통일할 수 있어서 좋다.

EXT4가 생각보다 매우 빠르고 좋은 파일시스템이라고 나는! 인정한다. 이것 저것 파편화되었을 때 골치아픈 것을 생각하면 이처럼 좋을 수가 없는 것이다.

앞으로의 세상도 이렇게 가게 될 것 같다고 본다. 어차피 프로세서가 인텔이 되든 AMD가 되든 가상세계로 올라가면 가장 하위에 있는, 그러니까 하드웨어 상태로 존재하는 CPU는 무엇이든 상관없이 돌아가게 되어있다. CPU의 속도가 빨라지면 가상 OS의 속도는 호스트 CPU에 거의 버금가는 속도로 돌아가기 때문에 그다지 문제가 되지 않는다.

그러니까 개개인이 가지고 있는 PC의 CPU 성능이 우수하기만 하면 그 위에 뭐든 얹어서 돌리게 되는 그런 세상이다. CPU의 종류도 그다지 중요하지 않아지는 것이다. 무엇이든 원하는 일을 할 수 있는 그거라면 그만인 것이다.