내가 처음 만진 컴퓨터는 Intel 펜티엄 G3260에 Windows XP가 설치된 컴퓨터였다. 아버지의 컴퓨터였고, 아버지는 농사를 지으셨기 때문에 엑셀로 수입 정산을 하곤 하셨다. 내 기억으로는 2010년 즈음, 내가 5살쯤 되었을 때 처음 컴퓨터를 만졌다. 그때의 첫 운영체제는 Windows XP였고, 사용 목적은 거의 전부 게임이었다.
그러다 컴퓨터에 문제가 생겨 출장 서비스를 불렀고, 그 과정에서 Windows 7으로 업그레이드가 되었다. 그때 Steam이라는 플랫폼을 알게 되었고, 여러 스팀 게임을 하면서 컴퓨터를 더 많이 사용하게 되었다. 이후 그 컴퓨터는 2015년에서 2017년 사이에 Windows 10을 사용하게 되었다.
개발을 처음 접한 2020년에도 나는 Windows 10을 사용하고 있었다. 최근까지도 계속 Windows 10을 사용했다. 지금 쓰고 있는 데스크탑은 2019년에 구매한 것으로, CPU는 라이젠 2600X, GPU는 RTX 2060, RAM은 16GB(이후 16GB 추가) 구성이다. 운영체제는 당연히 Windows 10이었다.
문제는 메인보드가 TPM 2.0을 지원하지 않아 Windows 11로 업그레이드할 수 없었다는 점이다. 하지만 그 시기에는 디스코드 봇 개발, 간단한 웹사이트, 게임 개발 정도를 하고 있었기 때문에 Windows 환경에서도 전혀 불만이 없었다. 무엇보다 익숙했으니까.
상황이 바뀐 건 2024년이었다. Wave라는 언어를 본격적으로 개발하기 시작하면서 WSL을 통해 리눅스 환경을 접하게 되었다. 또 내가 좋아하는 마인크래프트 서버 소프트웨어인 Paper 커뮤니티를 보면서 Paper 개발진들이 가상머신에 Ubuntu를 설치해 개발하는 모습을 보고 나도 똑같이 가상머신에 Ubuntu를 설치해 리눅스를 맛보게 되었다.
그 이후로는 사실상 개발에 WSL만 사용했다. Windows 10을 쓰고 있었지만, 모든 개발은 WSL Ubuntu에서 했고 릴리즈 타깃도 Windows가 아니라 Linux였다. Windows는 거의 게임을 위한 공간이 되었고, 개발은 전부 리눅스 환경에서 진행했다.
운영체제 개발이라는 목표도 생기면서 리눅스 커널을 직접 컴파일해보고 싶다는 생각도 하게 되었다. 처음에는 WSL에서 시도했지만 무리라고 판단했고, 가상머신에 Linux Mint를 설치해 커널 컴파일과 직접 설치까지 해봤다. 컴파일 시간이 7시간 넘게 걸렸던 기억이 난다.
문제는 가상머신이었다. 가상머신은 결국 하드웨어를 소프트웨어로 흉내 낸 환경이다 보니 버벅임이 꽤 심했다. 그래도 “WSL 쓰면 되지”라는 생각으로 계속 Windows + WSL 조합을 유지했다.
하지만 어느 순간 정리를 해보니 게임은 거의 하지 않고, 모든 개발은 WSL Ubuntu에서 하고 있고, Windows 10은 지원이 완전히 종료된 상태였다. Windows 11로 올릴 수도 없고, 컴퓨터를 새로 사기에도 부담이 되는 상황에서 이참에 운영체제를 리눅스로 전환할까?라는 생각을 하게 되었다.
운영체제를 바꾸는 게 보통은 큰 결정이지만, 나에게는 그렇지 않았다. FreeBSD도 써봤고, Arch Linux 배포판도 만들어봤고, 리눅스 커널 컴파일도 해본 사람이기 때문에 설치 자체는 문제가 아니었다.
그래서 고민 끝에 그냥 바꾸기로 했다.
리눅스 배포판은 Fedora를 선택했다. Ubuntu는 Windows처럼 일반 사용자를 타깃으로 한 배포판이라는 인상이 강했고, Fedora는 명시적으로 개발자 타깃이라고 말하지는 않지만 커널 업데이트가 빠르고, 커널 교체가 쉽고, 최신 소프트웨어를 빠르게 사용할 수 있으며 개발 환경 구축에 유리한 점이 많았다.
반면 Ubuntu는 사용자 편의성을 우선으로 두는 느낌이 강했다. 또 개인적으로 Ubuntu보다 Fedora가 더 깔끔하고 인상이 좋았다. WSL에서는 Ubuntu를 사용하고 있었지만, 메인 운영체제로는 Fedora가 더 잘 맞겠다는 생각이 들었다.
Windows NT 커널에 대해서도 자연스럽게 생각해보게 되었다. 개인적으로 Windows NT 커널은 지금까지 나온 운영체제 커널 중에서도 완성도와 영향력 면에서 하나의 걸작이라고 생각한다.
다만 Windows NT 커널은 리눅스에 비해 오랜 기간 유지해온 레거시와 호환성 계층이 매우 많은 구조이기도 하다. 이는 단점이라기보다는, 과거부터 현재까지의 방대한 Windows 소프트웨어 생태계를 끊지 않고 이어오기 위해 선택된 방향에 가깝다.
Windows는 과거 프로그램과의 호환성을 강하게 유지하는 운영체제이고, 그 과정에서 기존 구조 위에 새로운 계층을 추가하는 방식으로 발전해왔다. 그 결과 기능적으로는 매우 강력하지만, 구조적으로는 복잡해질 수밖에 없는 면이 있다고 느꼈다.
리눅스 역시 레거시가 없는 것은 아니지만, 필요에 따라 기능을 제외하거나 설정을 조절해 커널을 구성할 수 있고, 원한다면 직접 기능을 추가하거나 수정할 수 있는 유연함이 있다. 오픈소스라는 특성상 이런 부분이 상대적으로 수월한 편이다.
나는 리눅스 커널 개발자는 아니고 오히려 나만의 커널을 만들고 있는 입장이기 때문에 이 차이를 깊게 평가할 위치에 있지는 않다. 다만 리눅스를 네이티브 환경에서 사용해보니, 내가 하는 작업 기준에서는 체감 안정성과 예측 가능성이 더 높게 느껴졌다.
게임 역시 생각보다 큰 문제는 없었다. 밸브가 리눅스에 대한 지원을 적극적으로 이어가고 있고, Steam의 Proton 덕분에 내가 플레이하는 대부분의 게임은 무리 없이 실행된다. 운영체제 자체도 특별한 이유 없이 커널 패닉이나 갑작스러운 오류를 일으키는 경우는 거의 없었고, 문제가 생긴다면 대체로 내가 뻘짓을 하는 경우였다.
사실 Fedora 말고도 강력한 후보로 FreeBSD가 있었다. 가상머신에서 Fedora와 FreeBSD를 둘 다 사용해봤지만, 결과적으로는 Fedora가 나에게 더 잘 맞았다.
결론적으로 나는 Windows보다는 Fedora가 프로그래밍이나 다른 작업을 하기에 더 잘 맞았고, 쓸데없는 “응답 없음”이 뜨지 않는 점도 마음에 들었다.
모두에게 Fedora가 정답은 아니겠지만, 지금의 내가 하고 있는 작업과 목표를 기준으로 보면 Fedora는 가장 합리적인 선택이었다.