본문 바로가기

문당(文堂)

리눅스가 데스크탑 운영체제로써 나아가기 위해..

리눅스라는 운영체제가 리누스 토발즈라는 핀란드인에 의해 시작된 지 벌써 수십 년이 흘렀습니다. 그저 심심해서 만들어본 원시적 운영체제에서 시작하여 지금은 세계적으로 여러 곳에서 쓰이는 운영체제가 되었습니다.

가장 대표적으로는 각종 서버의 운영체제로써 쓰입니다. 인터넷 전문은행인 카카오뱅크에서는 메인 서버용 운영체제로도 쓰이고 있습니다. 우리가 자주 사용하는 갤럭시, LG V 시리즈 등에 들어가는 '안드로이드' 운영체제도 리눅스를 기반으로 합니다. 우리나라는 아직 저작권에 대한 인식이 미진하여 공개를 안하는 경우가 많습니다만 대다수의 국산 공유기에도 리눅스 운영체제가 사용되고 있습니다. 일례로 국내에서 쉽게 볼 수 있는 ipTIME 공유기에도 과거 리눅스 운영체제가 사용 중임이 드러나기도 했었지요. 2000년대 초중반, 세인들에게 인기를 끌었던 요즘으로 치면 스마트폰과 스마트패드 중간쯤 위치한, PMP(Portable Media Player), 그중에서도 지금은 사라진 아이스테이션의 V43, T43모델도 Qtopia(큐토피아)라는 리눅스를 기반으로 합니다.

과거에 비해서는 리눅스 운영체제를 서버용이나 임베디드 환경에서의 운영체제로 사용하는 경우 외에, 가정용 혹은 사무용 컴퓨터에 설치하여 사용하는 '데스크톱 운영체제'로도 쓰이는 사례가 많아졌고, 국내에서도 유의미한 여건을 가지고 있습니다만 아직도 리눅스가 세계적인 데스크톱 운영체제의 절대자인 '마이크로소프트 윈도'에 비해서는 물론이고, 유닉스 계통의 macos에 비해서는 가야 할 길이 너무나 멉니다.

13~4년 전, 처음 리눅스를 접하고 저는 사랑에 빠졌고 당시 저는 리눅스가 데스크톱 운영체제 시장에서 MS 윈도를 제압하지는 못해도 나름대로의 인기가 있지 않을까 생각했었습니다. 하지만 지금은 그 생각을 하지 않습니다.

우선 리눅스가 다른 운영체제에 비해 갖는 장점은 다음과 같습니다.

  • 초기 접근비용이 없다.
    > MS윈도는 상용 소프트웨어로 고가의 비용을 지불하고 구입하여야 합니다. 또한 macos는 애플의 하드웨어에서만 구동되므로 수백만 원의 구입비용을 필요로 하는데 반해 리눅스는 리눅스 운영체제를 계량해서 배포하는 업체가 제공하는 설치 파일로 컴퓨터에 설치한 하면 그만입니다.
  • 저사양 컴퓨터에서도 잘 돌아간다.
    > 저사양의 기준이 사람에 따라 다를 수는 있고, 배포판에 따라 다르지만 대게 MS 윈도는 클린 설치 직후라도 버벅거리던 컴퓨터에서 리눅스는 버벅거리는 증상이 잡히기도 합니다.
  • 선택의 폭이 넓다.
    > MS윈도에서는 선택권이 버전 7, 8, 8.1, 10 등 정도입니다. 그나마도 지원이 끊겼거나 끊길 예정인 점을 감안하면 윈도 10 밖에 없고, 그 안에서 '홈', '프로', 에듀케이션' 등으로 나뉘지만 기능상의 차이이지 대단한 차이는 없습니다. macos 쪽으로 가면 선택권은 없습니다. 반면 리눅스의 경우는 '배포판'이라는 이름으로 수백 가지의 배포판 중 선택이 가능합니다. 물론 그중에서 한글 지원 등 몇 가지 필터링을 거친다 해도 열 손가락보다는 많습니다. 그리고 그 배포판 내에서도 Gnome, KDE, XFCE 등 어떤 데스크톱 환경을 사용하는가에 따라 '같은 컴퓨터에서 구동되는 운영체제 맞아?'라고 할 정도의 차이를 구현할 수 있습니다.

그 외에도 장점을 꼽으라면 꼽을 수 있겠으나 크게는 이 정도인 듯합니다. 하지만 이에 비해 단점이 너무 많습니다.

  • 한글화와 문서화
    > 리눅스 운영체제의 한글화가 예전에 비해서는 많이 나아졌고, 배포판에 따라 다르긴 하지만 이제는 설치 단계에서부터 한글로 메뉴를 표시해주고, 별도의 세팅 없이도 한글 입출력이 잘 되는 정도까지 발전하였지만 아직도 한글화, 특히 '입력'면에서는 아쉬움이 많은 게 사실입니다.
    그리고 우리나라에서 가장 많은 사용자 층을 갖고 있다고 하는 우분투 리눅스의 경우에도 운영체제가 업데이트되는 주기(일반 버전 기준 6개월)에 비해 업데이트에 대한 정보 혹은 신버전 업데이트 이후 발생되는 '새 버전 특유의 문제점'에 대해 한국어로 도움을 받기는 쉽지 않은 게 사실입니다. 어느 정도 조예가 깊은 사람도 번역기나 검색의 도움, 그리고 그들만의 감으로 어떻게 때려 맞추면서 해결하기도 하지만 짜증남을 느끼기도 합니다. 하지만 초보자라면 그런 수고를 하면서 까지 써야 할 만큼의 가치를 리눅스가 제공해 주는 가는 의문입니다.
    무엇보다 문서화 측면에서도 아쉬움이 남습니다.
  • 패키지 관리의 문제점
    > MS윈도나 macOS에서는 '의존성'이라는 문제가 없습니다. (맥 쪽에서는 드물게 있을지도 모르겠네요.) 예컨대 A라는 프로그램을 설치하려고 하면 exe, msi 혹은 dmg 등의 설치 프로그램을 실행시켜 설치하면 됩니다. 간혹 '이 프로그램을 사용하려면 Java가 필요합니다', 'VC런타임이 필요합니다' 등의 경우가 있기도 하지만 대게는 쉽게 해결됩니다. 하지만 리눅스(와 유닉스)에서는 의존성 문제가 있습니다.

    예컨대 "A라는 프로그램을 설치하려면 B, C, D, E, F, G.... 등의 프로그램이 필요한데 그중에서 B를 설치하려면 또 1, 2, 3, 4, 5, 6... 등의 프로그램이 필요하고, 그 B를 설치하기 위해 필요한 수많은 프로그램 중 1을 설치하려면 또 !, $, ^, #, @, *, & 등의 프로그램이 필요하다" 등의 식입니다. 요즈음에는 rpm(Redhat Package Manager), deb(Debian Extract Binary)등 배포판마다의 패키지 관리 프로그램으로 말미암아 이 과정이 조금 쉬워지긴 했습니다만, 아직도 종종 패키지 문제점이 발생하곤 합니다. 예컨대 A라는 프로그램을 설치하기 위해 필요한 구성요소는 시스템이 알아서 찾아 동반 설치를 해준다 하더라도, A라는 프로그램이 더 이상 필요하지 않을 때 지우려고 할 경우 A라는 프로그램을 설치하기 위해 같이 설치되었던 다른 프로그램들은 그대로 남아 있습니다. (경우에 따라 같이 지워주기도 하지만 그렇지 않은 경우도 있습니다.) 리눅스 운영체제를 설치하면서 같이 설치된 프로그램도 방대하기에 "컴퓨터 초기 설치 이후 추가된 것만 추려내면 되지 않느냐?"는 주장은 통하지 않습니다. 기본적으로 설치되어 있는 패키지도 사람들의 인지 기억능력을 초과할 만큼 많기 때문에 '초기에 설치된 것을 기억했다가 거기에 없는 것만 지우면 된다'는 것이 불가능합니다.

    그리고 윈도의 경우 설치된 프로그램은 모두 '제어판'의 '프로그램 추가 및 제거'를 통해 관리가 가능합니다. 윈도 8에서부터 추가된 '스토어 앱' 정도가 프로그램 추가/제거에 나오지 않을 뿐 '설치'된 프로그램은 한 곳에서 삭제가 가능합니다. 반면 리눅스의 경우 이렇게 rpm, deb 등의 확장자를 가진 파일로부터 설치했거나 yum, apt 등 자체의 패키지 설치 명령을 통해 설치한 경우라면 관리가 됩니다만, 리눅스에서는 전통적으로 .tar.gz(혹은 .tar.bz나 그냥 .gz 등)라는 압축파일에 들려있는 쉘 프로그램을 통해 설치하는 프로그램들 - 보통 make나 install 등이 명령으로 설치됨 -도 있습니다. 이 프로그램들은 패키지 관리시스템에는 등록이 안 되는 프로그램들이고 보통 설치는 지원하나 이후 삭제는 수동으로 해야 하는 경우가 많습니다. 대중적이고 나름대로 자주 쓰이는 프로그램이라면 어떻게 삭제를 해야 하는지도 검색으로 알 수 있으나, 그렇지 않다면 설치 자체를 잊고 있다가 지우는 방법을 찾지 못하거나 하는 경우도 있습니다. (예컨대 '이 프로그램(A)이 있어야 B를 실행할 수 있다'라고 하여 설치하였다, 이후 A의 존재를 망각한 경우)
  • 그래픽 환경 안정성
    > (현재의) 윈도의 경우는 GUI용도로 개발되었고 과거처럼 부팅을 위해 DOS에 의존하지 않습니다. macos의 경우도 유닉스 기반이긴 하나 '데스크톱용 운영체제'를 목표로 개발되었기에 그래픽 환경의 안정성은 높습니다. 이유 없이 GUI 화면이 뜨지 않고 텍스트 모드로만 진입이 된다던지, GUI가 멈추어서 tty전환으로 텍스트 모드에 들어가 GUI 프로세스를 강제 종료해주어야 한다던지 하는 일은 없습니다. 하지만 리눅스는 있습니다. 그리고 초보자가 이런 것 까지 신경 쓸 여유는 없습니다.
  • Windows/macos등에서 사용하던 프로그램을 사용할 수 없음.
    > 국내에서 많이 쓰이는 아래아한/글이나 카카오톡 PC버전은 리눅스에서 사용이 불가능합니다. (카카오톡 PC버전은 WINE으로 실행까지는 되지만 아직도 문제가 많습니다.) 세계적 소프트웨어인 Microsoft Office, Adobe사의 제품들도 사용이 불가능합니다. 리눅스용 버전이 없기 때문입니다. 애플의 모바일 디바이스를 원활히 사용하는데 필요한 'iTunes' 등도 사용이 불가능 합니다. 이 점이 리눅스의 가장 큰 한계입니다. (MOS나 어도비사 제품들, 아이튠즈 등을 대체할 프로그램들이 있기는 합니다만, 많이 아쉬운 게 사실입니다.) 대다수의 국내에서 즐기는 게임들도 구동이 어렵습니다.

위에서 잠깐 언급했듯, 안드로이드도 리눅스를 기반으로 합니다. 하지만 안드로이드와 리눅스의 관계는 macos와 유닉스의 관계를 떠올리면 쉬울 것 같습니다. 애플에겐 '안정적인 운영체제'가 필요했을 뿐이지 그 운영체제가 유닉스인지 뭔지는 중요치 않았습니다.

안드로이드도 마찬가지입니다. 구글은 '안정적인 모바일 운영체제'가 필요했을 뿐이지 리눅스라는 게 꼭 중요하지는 않았습니다.
우분투의 경우 리눅스 쪽에서도 가장 시도를 많이 하는 편입니다. 다른 리눅스 배포판에서는 사용할 수 없는 자체적 GUI인 Unity(유니티)를 탑재해 보기도 하는 등의 시도를 했지요. 하지만 그럼에도 우분투는 '리눅스'라는 정체성을 포기하거나, 독립된 울타리를 치지는 않았습니다. 아직도 많은 부분을 '리눅스'에 의존합니다. (다른 말로 하면 '호환성을 유지한다'라고 할 수도 있겠습니다.)

하지만 안드로이드의 경우 '리눅스'에 의존하고, '리눅스'와 교류를 하는 부분은 '리눅스 커널' 부분입니다. macos가 자체적 그래픽 환경과 패키징 시스템을 쓰듯, 안드로이드도 '커널' 이외의 요소는 리눅스와의 '호환성'을 고려하지 않습니다. 그래서 리눅스처럼 X11을 사용하지도, rpm이나 deb를 사용하지도 않습니다.

저는 이 지점에서 힌트를 얻을 수 있다고 생각합니다. 만일 리눅스를 기반으로 하되, 초보자도 쉽게 설치하고 사용할 수 있으면서도 데스크톱용 운영체제로써의 안정성이 뛰어난 운영체제를 만들고자 한다면 기존 리눅스의 문법은 일정 부분 포기해야 합니다. 즉 '호환성'은 일정 부분 포기해야 합니다. 패키징 시스템도 독자적인 것을 쓴다던가 하는 식으로요. 하지만 그렇게 되면 '리눅스'라는 정체성도 포기해야 하는 것을 의미합니다. 기존 리눅스에서 돌아가던 프로그램이 새롭게 탄생된 리눅스 기반의 운영체제에서는 돌아가지 않게 될 가능성이 큽니다. 그리고 무엇보다도 GNU정신을 중시하는 리눅스의 특성상 쉽지 않을 가능성이 큽니다. 무엇보다 이미 Windows와 macos 그리고 (극) 소수의 Linux의 데스크톱 운영체제 시장에서, 기존 리눅스와의 호환성도 일정 부분 포기한 새로운 운영체제가 성공할 수 있을 까?

모바일 시장에서 '바다 OS'나 '타이젠 OS'가 인기를 얻지 못하는 이유를 생각해 보면 성공할 가능성은 낮을 겁니다.

 

많이 아쉽습니다. 그리고 개발자가 아니기에 깊은 내막은 모르지만, 기존 리눅스와의 호환성을 유지하고 리눅스라는 정체성도 유지하면서 지금의 우분투 보다도 초보자가 쓰기에 더더욱 편리한 리눅스 운영체제를 내놓을 수도 있지 않을까? 하는 생각도 문득 해봅니다. 20년 후에는 달나라로 여행도 가는 세상이 온다는 시대에서, 곧 육공 양용차(땅 위에서도 달릴 수 있고, 하늘을 날 수도 있는 자동차)도 상용제품이 나온다는 세상인데 그게 어려울까? 싶기도 합니다.

 

점점 머리가 나빠지는지 이런 류의 글을 쓰는 게 어렵습니다. 너무 길어지기도 했고요. 양해 부탁드립니다.