상용 소프트웨어인 Windows, 자유 소프트웨어인 Linux, 뭐가 더 사용하기에 적합한 운영체제인 것일까?

사용자의 취향, 목적 등이 가장 극명하게 나타나는 OS 분야인 만큼 지금까지도 결정이 잘 안 나고 있으며 결정이 날 기미도 보이지 않는 논쟁이다.

하지만 뭔가가 쓸 만한지 결정하려면 먼저 그게 무엇인지를 잘 알아야 하는 만큼, Windows와 Linux에 대한 정보 정도는 알아두고 이 논쟁을 읽는 것이 중요하다.

Linux란?

본래 의미의 Linux는 커널을 의미하는 것이지만, 그 커널을 사용해 돌아가는 OS까지 포함하는 단어이기도 하다. 공대생이었던 리누스 토르발즈가 미닉스 OS를 쓰다가 마음에 안 드는 점을 고치려고 만들기 시작했는데, 어느새 세상에서 가장 많은 사람들이 작업에 참여한 작품이 되었다. 현재 대다수 스마트폰의 운영 체제인 Android 또한 이 리눅스로 만들어졌다. 모든 부분이 오픈 소스로 공개되어 있어서 자신만의 Linux 기반 OS를 제작하는 것도 가능하다. Debian, CentOS 등이 그렇게 만들어졌다.

Windows란?

Microsoft에서 개발하고 있는, 흔히 ‘OS’ 하면 사람들에게 가장 먼저 생각나는 OS이다. 데스크탑 부분에서는 압도적인 사용률을 자랑해 사실상 표준 수준으로 취급받고 있다. 커널 및 제품의 소스 코드가 공개되어 있지 않은 전면 상용 소프트웨어이기 때문에 구매해야 사용할 수 있다. 그 특징 때문에 가장 불법 복제가 많이 일어나는 OS이기도 하다.

그럼 뭐가 더 적합한 것인가?

간단하게 말하면 그 운영체제가 가장 많이 쓰이는 분야에 더 적합하다. Windows 같은 경우는 데스크탑용, 즉 컴퓨터 개발에 대한 지식이 아예 없어도 사용 가능한 수준의 GUI를 구축했고1, Linux 같은 경우는 쉽게 말해서 작업용, 즉 컴퓨터 개발에 대한 지식이 어느 정도 있는 사람들이 손쉽게 사용 가능한 CLI를 구축했다. 물론 Linux도 데스크탑에서 쓸 수 있다. Ubuntu가 그 대표적인 예시이다. 하지만 Windows에 비해 아직 드라이버를 잡는 부분부터 시작해 프로그램의 호환성 면에서 떨어지는 부분이 있다.

그렇다고 이것이 100% Linux의 잘못이냐 하면 또 아닌 것이, 보통 컴퓨터를 ‘게임기’ 정도로 생각하는 사람들이 가장 많이 돌리는 ‘게임’의 경우를 예시로 들어보자. 필요를 충족시켜 줄 게임 개발사는 일차적인 면에서 ‘사람들이 많이 쓰는’ OS를 위해 게임을 만든다. 데스크탑 분야에서 절대적인 우위를 차지하는 Windows가 있는데, 당연히 이 OS에서 먼저 돌아가는 게임을 만드는 것이 게임 개발사의 사고방식일 수밖에 없다. 프로그램도 잘 호환되지 않는 Linux를 일반적인 데스크탑의 용도로 쓸 사람들은 적어질 수밖에 없고, 그럼 또 Windows에서만 돌아가는 프로그램, 게임들이 무수히 쏟아져 나온다. 일종의 악순환이라고 볼 수 있다.

그러나 ‘작업용’의 용도로 가면 얘기가 확 달라진다. 서버를 굴리는 데 쓴다면 더더욱 그렇다. 물론 Windows에도 서버용 운영체제가 있고 인터넷 정보 서비스라는 서버용 프로그램이 있지만 Windows는 앞서 말했듯 컴퓨터 개발에 대한 지식이 아예 없어도 사용 가능한 수준의 GUI를 구축했다. 즉 그래픽 기술을 어느 정도 사용한다는 이야기이다. 반면 Linux는 GUI가 기본이 아니다. Ubuntu 같은 변형 배포판의 데스크탑 버전이나 GUI가 기본이지 서버용을 설치하고 컴퓨터를 켜 보면 까만 화면에 깜빡이는 글씨만이 사용자를 반긴다. 즉 기본적으로는 Linux 구동에서 그래픽 기술을 사용할 일이 거의 없다시피하며 이는 기본적인 성능의 차이로 다가온다. 당장 웹 서버 중 하나인 nginx는 Windows에서의 지원을 거의 포기하다시피 했다.

이 차이는 보안 문제로 가면 더욱 두드러지는데, Windows는 완전한 상용 프로그램이다. 따라서 소스 코드가 전혀 공개되어 있지 않다. 이렇게 되면 치명적인 보안 문제가 발생했다고 하더라도 Microsoft에서 이에 대응하는 보안 업데이트를 배포할 때까지 속수무책으로 당할 수밖에 없다. 반면 Linux는 오픈 소스라는 기본 특성 상 누구나 코드를 보고 문제되는 부분을 수정할 수 있고, 수정된 코드를 배포할 수 있기 때문에 중앙에서 나설 필요가 별로 없다. Meltdown 버그도 Linux 계열에서 제일 먼저 대응 업데이트가 올라왔다.

개인적인 요약

  • 데스크탑용: Windows
  • 서버용: Linux

실제로도 이렇게 쓰고 있는 만큼 각자가 가진 장점의 분야에서 활용하는 것이 최적의 성능과 만족을 얻을 수 있는 길이라고 생각하고 있다. 또한 언젠가는 Linux를 데스크탑에서 Windows만큼 편리하게 이용할 수 있는 날도 올 것이다. Android를 이미 그렇게 쓰고 있기 때문이다.


  1. 인터넷 익스플로러 켜는데 까만 도스 창 들어가서 C:\Program Files\Internet Explorer\iexplore.exe 라고 친다고 해보자. 얼마나 끔찍한가? ↩