대충 10여년간 리눅스를 주력으로 쓰다가 윈도우를 사용하니 보이는 점들
By SeukWon Kang
(중간 중간 잠깐씩 윈도우를 사용한 적이 있긴 합니다. ^^)
잊어버리기 전에 기록용으로 적어봅니다.
윈도우 업데이트는 여전히 한숨만 나옵니다.
최근 리눅스를 쓰면서 업데이트로 답답한 적은 전혀 라고 할정도로 없었는데 윈도우는 아직도 이해할수 없을 정도로 업데이트 하는 시간이 오래 걸리는 군요.
( 리눅스도 가끔 이상한 업데이트로 시스템에 말썽을 일으키기는 하지만 업데이트 하는데 걸리는 시간 자체는 빠릅니다. 사용자를 하염없이 기다리게 하거나 리부팅을 몇번식 하게 하는 경우는 더더욱 없지요. )
이제는 사용하는 프로그램이 거의 동일해서 지금 리눅스를 쓰고 있는지 윈도우를 쓰고 있는지 잘 구별되지 않습니다.
그동안 오픈소스 프로그램들의 약진 덕입니다.
( chrome, gimp, blender , libreoffice, vscode , vlc, 7zip , vim, firefox, golang, python, git 등 )
달라진 것은 notepad++ 과 파일 매니저 정도 인듯 합니다.
powershell은 뭔가가 어색합니다.
아무리 스크립트라도 언어니까 언어의 syntax설명이나 Language Specification 이 보고 싶은데 그부분이 어지럽게 흩어저 있습니다.
게다가 문서를 보면 windows 내부 object들? 에게 query 날리는 이야기만 하고 있습니다.
그래서 역시 MS 답다. 라고 생각했습니다.
그 외에는 생각보다 리눅스와 윈도우의 속도 차이가 느껴지는 경우가 있습니다.
특히나 놀라웠던 것이 제가 항상 cpu/ram성능 테스트용으로 가장 신뢰한다고 말하고 다니던 7zip인데 윈도우가 리눅스 보다 약 40% 정도 빠름니다. ( 55000 vs 78000 )
이유를 살펴보니 윈도우는 19. xx 버전이고 리눅스는 16.xx 버전이어서 그런듯 합니다.
( 정확히는 7zip의 리눅스 포팅 프로젝트인 p7zip 이 16.xx 이후로 멈춰있습니다. )
아니 그래도 40%는 좀.. 하고 살펴보니 16.xx 이후로 인텔 cpu의 특수 명령어들 지원이 대거 추가 된듯 합니다.
명령행 버전의 7zip을 실행하면
CMPXCHG MMX SSE RDTSC PAE SSE2 NX SSE3 CMPXCHG16B XSAVE VIRT_FIRMWARE RDWRFSGSBASE FASTFAIL RDRAND RDTSCP 33 36 37 38 39 40
와 같이 추가 사용하는 instruction목록이 나옵니다.
16.xx 에서는 이보다 훨씬 적은 명령어 만을 지원하더군요.
(마지막에나오는 수자 6개는 뭘까요? )
이런 특수 목적 명령어들이 실제로 효과가 있다니 신기합니다.
그리고 어디까지나 느낌인데 파일시스템의 속도가 윈도우가 리눅스 보다 더 느린듯 합니다.
정확히 말하면 디스크에 데이터를 읽고 쓰는 속도가 아니라 파일시스템에 접근 관련된 쪽의 차이 같습니다.
실제로 golang으로 컴파일을 하면 묘하게 멈칫 멈칫 하는 것이 느껴짐니다.
ext4와 ntfs의 차이 때문인지 아니면 윈도우가 리눅스보다 파일 접근시 check하는 것이 더 많고 복잡해서 인지는 잘 모르겠습니다.
blender는 linux가 더 빠르다는 이야기가 있었는데 제가 많이 써보지 않아서 잘 모르겠습니다.
그리고 기대하고 있던 wsl2 이야깁니다.
기대 했던대로 거의 완벽한 리눅스 환경을 제공해 줍니다.
몇몇 패키지는 빠저 있는 것 같구요. ( p7zip 이 없더군요. )
따라서 호환성 문제도 현재까지는 없었습니다.
다만 이게 wsl2문제라긴 애매하지만
개발 설정을 할때 윈도우와 같은 프로젝트를 쓰기위해서
wsl2에서 윈도우 폴더를 mount해서 사용합니다.
반대도 가능하다고 하는 데 wsl2의 disk는 파일로 구현된 가상 파일 시스템이라 좀 불안했습니다.
이 mount한 폴더 git을 사용한 프로젝트를 넣고 윈도우와 리눅스를 오가며 개발을 진행하고 있습니다.
당연히 양쪽다 git prompt를 설정 해서 쓰는데 (windows oh-my-posh, linux oh-my-zsh )
wsl2의 git prompt는 어마무지하게 느립니다.
git상태를 받아오는 것이 느린탓인지 빈 명령행에서 enter를 치면 다음 프롬프트가 뜨는데 까지 ??? 할정도의 시간이 걸립니다.
그래서 대분분의 작업을 윈도우-powershell에서 하게 되더군요. ( powershell을 쓰게하려는 MS의 음모인가? )