리눅스

(Linux에서 넘어옴)

Linux[1]

당신의 시간이 아무런 가치가 없다면 리눅스는 공짜다.

(Linux is only free if your time has no value)
-Jamie Zawinski [2]

220px-Tux.png
리눅스 커널의 마스코트인 Tux(턱스)[3]

1 개요

커널의 일종. 또한 그 커널을 사용하는 운영체제를 가리키는 말이기도 하다.[4] 소스 코드가 공개되어 있는 대표적인 오픈소스 소프트웨어이다. 소스코드홈페이지 어쩌다 보니 자유 소프트웨어계의 구세주가 되기도 했다. [5] 혹시라도 리눅스가 뭔지 정말 궁금한 사람이라면 아래 설명을 읽어보기보다는 그냥 써 보자. 백문이 불여일견이다. 안드로이드 또한, 많이 커스터마이징되긴 했지만, 리눅스의 일종이기도 하다.

2 역사

2.1 초기

당시 헬싱키 공대 대학생이었던 리누스 토르발즈1991년 미닉스를 보고 이를 약간 개량할 겸해서 파스타를 먹으면서 자신의 컴으로 얼추 끄적이던 커널에서 시작되었다...고 기재되어 있었는데, 실제로는 미닉스를 보고 만든 것이 아니라고 한다. 리눅스를 만들 때 미닉스가 설치되어 있는 컴퓨터로 작업을 한 것일 뿐이다.참고기사 미닉스를 쓰면서 마음에 안드는 점이 있을 때마다 커널에 여러가지 기능을 추가했고, 어느 새 운영체제에 가까울 정도로 기능이 늘어났다. 리누스는 이 커널를 처음 릴리스 할 때, 무료이니 'free', 자신이 이상한 놈이니 'freak', 그리고 UNIX와 유사하니 'X'를 조합해 'Freax'라고 부르길 원했다고 한다. 그러나 FTP 서버에 소스 파일을 업로드해줬던 아리 렘케는 차라리 리누스가 개발했으니 '리눅스'라고 부르는 게 낫겠다 싶어 리누스의 허락 없이 이름을 '리눅스'로 바꿨고, 리누스도 이 이름이 마음에 들어 새 운영체제의 이름은 리눅스로 확정됐다. [6]

2.2 발전

리눅스는 거의 공개 직후부터 가히 폭발적인 성장세를 보인다. 여러가지 원인들이 겹친 결과였다. 유닉스의 일종인 BSD가 소송에 휘말리면서 대체품에 대한 관심이 커진 것도 큰 역할을 했다. 극성 BSD빠들 중에서는 그 소송만 없었다면 리눅스는 존재하지도 않았을 거라고 주장하는 사람도 있을 정도. 또한, GPL 라이선스를 선택하고, 현재 오픈소스 개발 모델의 모체가 된, 소스 공개와 공개적 개발 모델을 선택한 것도 매우 유효했다. 이전에는 오픈 소스 소프트웨어라도 핵심 개발자 집단이 개발 과정을 독점하고, 릴리스할 준비가 되었다고 판단될 때에야 소스를 공개하는 방식을 사용했다. 그런데 리누스는 누구나 소스를 읽은 후 패치를 작성해 보낼 수 있도록 했다. 패치가 받아들여지면 그 패치를 보낸 사람은 기여자가 되어 다음 릴리스 노트에 이름이 박혔다. 에릭 레이먼드의 "시장과 성당"의 표현을 빌리자면, 이는 사람들의 과시욕을 충족시키는 방식이었고, 사람들은 돈을 받지 않고도 커널 버그 수정과 기능 추가에 매달렸다.

초기 리눅스는 기능이 불완전한 운영체제였다. 그러나 자체 커널 개발에 난항을 겪고 있던 GNU 프로젝트가 리눅스 커널에 관심을 가졌고, 리눅스 커널과 GNU 유틸리티가 결합하면서 비교적 완전한 운영체제로 거듭났다. 18개월여만인 1994년에는 리눅스 커널 1.0 버전이 나왔다. 이후 Sun, IBM 등의 대기업들이 리눅스 개발을 지원하기 시작하는 등, 리눅스가 IT 세계에서 가지는 입지는 빠르게 탄탄해졌다.

2.3 현재

상당수의 웹 서버모바일 장치(안드로이드, 미고 등…)를 구동하는 운영체제이다. 특히 서버 쪽에서 리눅스의 지위는 엄청나다. 무료인데다가, 리눅스에 익숙한 인력도 많고, 안정성도 높은 편이니 서버 운영체제로서는 최적인 셈. 서버용 프로그램들 대부분이 리눅스를 지원하거나, 리눅스 상에서 개발되고 있다. 모바일 시장에서 안드로이드의 위상이야 더 말할 필요가 없을 정도이고... 또 국내에서 돌아가는 가정용 공유기의 대부분이 리눅스를 기반으로 하기도 한다.

물론 데스크탑에서 사용하는 사람들도 많다! 다만 서버와 모바일(안드로이드) 운영체제로서의 입지가 엄청나게 탄탄한 데 비해서 데스크탑에서의 존재감은 미미한 편이다. 실제로 리누스 토르발즈는 2014년 "전 아직도 리눅스 데스크탑을 원합니다"라며 리눅스의 데스크탑 운영체제로서의 점유율에 아쉬움을 드러낸 바 있다. 리눅스가 애초에 데스크탑 운영체제로 시작했음을 생각하면 데스크탑에서 리눅스의 미약한 입지는 아이러니하다 할 수 있다. 그렇지만 KDE, GNOME 등의 데스크탑 환경들이 지속적으로 발전하여 사용성과 안정성이 꽤 높아진데다가 리눅스 데스크탑용 소프트웨어의 수가 지속적으로 늘고 있으며, SteamOS의 등장으로 리눅스에 게임도 많이 포팅되고 있다. 리눅스를 데스크탑에서 사용하기에는 지금만큼 좋은 때가 없는 셈.

여담이지만 리눅스 개발자인 리누스 토르발스는 어느 날 리눅스 관련 회사들이 찾아와서 감사의 의미로 주식을 조오금 줬는데 그 덕에 부자가 되었다. 일단 죽을 때까지는 딱히 돈 걱정은 없을듯. 그때 찾아온 어느 조그만 회사 이름이 레드햇이다. 지금은 더 이상 조그마한 회사가 아니다.

3 특성

3.1 다양한 리눅스

같은 리눅스라고는 해도 모양이 생판 다른 수백 종류 이상의 변종들이 존재하며 생긴 모양이 어쨌든 커널이 리눅스면 전부 리눅스라고 부른다.

왜 이런 현상이 생겼냐면, 모든 소스가 공개되어 있다 보니 같은 역할을 하는 프로그램이라도 편리성을 지향하는 프로그램, 속도를 지향하는 프로그램, 확장성을 지향하는 프로그램, 가벼움을 지향하는 프로그램 등등 여러가지 선택지가 존재하기 때문. 기존의 것이 마음에 안 들면 작게는 개인에서 크게는 기업 단위로 직접 고쳐 버리면 되니까.

운영체제 하나를 구성하는 데에도 핵심부 커널부터 해서 그 상위 미들웨어를 거쳐 사용자가 접하는 인터페이스에 이르기까지 수십~수백 가지의 프로그램이 들어가고 그걸 엔드유저가 직접 하나하나 신경쓸 순 없기 때문에[7] 일정한 단체에서 자신만의 기준을 가지고 하나의 세트(배포판)를 만들어 내고 엔드유저가 그걸 가져다 쓰는 것이라고 보면 된다.

여러 사용자층 입맛에 맞추어서 수십가지의 배포판이 나오긴 했지만 처음 리눅스 입문하는 엔드유저는 너무 많은 배포판에 압도되어 리눅스를 포기하는 경우가 왕왕있다. 어차피 엔드유저 입장에서는 쉽고, (커뮤니티) 지원 잘되는 배포판이 장땡이므로 우분투가 제일 적절하다고 할 수 있다. 배포판이 너무 많아 고민된다면 우분투를 선택하여 어느정도 감을 익히고, 맘에 들면 계속 우분투를 쓰거나 자기 입맛에 맞는 다른 배포판으로 갈아타면 된다.

  • 'Linux'가 아니라 'GNU/Linux'라고 불러야한다는 주장도 있다. 자유 소프트웨어 운동을 창시한 리처드 스톨먼도 'GNU/Linux'라고 부르지 않는 기자들과는 대화도 하지 않는다고. [8]
  • 하지만 리누스 본인은 GNU/Linux라고 부르는걸 이상하다 생각하고 Linux라 부르는걸 선호한다. 'Linux'라는 상표를 가지고 있는 원 제작자가 좋아하지 않은 행위이다보니 이쪽 관련으로 본인의 자서전에서 리처드 스톨먼을 언급하기도 한다. 또한 안드로이드도 리눅스는 리눅스다보니 최고로 많이 보급된 리눅스 배포판으로 볼 수 있는데, 이녀석은 GNU 라이센스가 아니다. 구체적으로는 커널은 GNU 라이센스로 그 위의 구성물들은 아파치 라이선스로 배포된다. 그래서 C 라이브러리도 바이오닉이다.
  • 또한 리눅스 커널 자체도 다양한 변종이 있다. 각 배포판 제작팀에서 자기 입맛에 맞춰 약간씩의 수정을 가하기도 하고, 공식 리눅스에는 포함되지 않은 패치를 집어넣어서 직접 컴파일 할 수도 있다. (그렇다고 윈도마냥 비스타에서 옛날프로그램 돌리기 어렵고 뭐 그런건 아니다. 사실 옛날프로그램이 지금과 호환되지 않는 것은 커널의 잘못이 아니라 API의 문제다.[9][10][11][12]).
  • [1] 리눅스 배포본 정보와 출시에 대한 뉴스 정리 사이트.

3.2 다양한 플랫폼

소스 코드가 공개되어 있기 때문에 해당 CPU 및 보드에 맞도록 설정만 주고 컴파일하면 원칙적으로 CPU가 딸린 어떤 기계에서도 돌릴 수 있다(물론 기본 사양은 되어야 한다)[13]. 일반적으로 생각하는 PC용 운영체제 말고도 임베디드 시스템에 리눅스 커널을 얹어서 돌리는 경우도 많으며, 인터넷 공유기나 PDA휴대폰에도 리눅스를 OS로 사용하는 경우가 있다. 2011년 들어서 각광을 받고 있는 안드로이드도 자주 쓰이는 x-window가 서피스플링거로 대체되고 Dalvik 가상머신 등의 안드로이드 프레임워크 계층이 추가된 리눅스이다. 심지어 냉장고TV에서도 사용하는 경우가 있다. 대표적으로 LG전자의 TV인 엑스캔버스 일부 모델의 메뉴 시스템이 리눅스인데, 리눅스의 기본 라이센스가 GPL 라이센스인지라, LG전자에 연락하면 메뉴 시스템 소스를 배포에 필요한 최소한의 비용(배송료 등)만 받고 CD에 담아 보내주게 되어 있다(…). 국내에는 잘 알려져 있지 않지만 DVR의 대표기기인 Tivo가 리눅스이다.

주변기기들로 따지면 마이크로소프트가 가만히 놀고 있어도 주변기기 제작하는 회사들에서 알아서 윈도우즈 지원을 해주는 윈도우즈 계열이 가장 호환성이 높다고 할 수 있지만, 지원되는 플랫폼으로 본다면 리눅스가 더 많다. 물론, 호환성을 최대의 미덕으로 삼아 개발되는 NetBSD 에 비하면 많은건 아니다.[14]

심지어 리눅스는 CPU 핫플러깅[15]도 지원한다. 다시말해 컴퓨터가 작동되는 중에 CPU를 갈아끼워도 된다는 소리. 물론 여러 조건이 만족돼야 하겠지만…흠좀무. 사실 이런 기능은 대형 서버에 필수라서 지원할 수밖에 없다.

파일:Attachment/ps2 linux.jpg
플레이스테이션 2에서는 공식적으로 리눅스를 지원한 적이 있었다. 이를 위해서 네트워크 카드, 40GB HDD, VGA 케이블, 키보드, 마우스, 메모리카드와 더불어 리눅스 인스톨 키트를 세트로 해서 판매하였다. 다만 리눅스를 설치한 상태에서는 게임 구동이 불가능하였으며, 게임을 돌리기 위해서는 리눅스를 포맷하고 PS2 기본 펌웨어로 변경해야 했다. 나중에 나온 슬림모델에서는 HDD 를 설치할 수가 없으므로, 리눅스 설치가 불가능해졌다.

플레이스테이션 3에서도 공식적으로 리눅스 설치가 가능했었다.관련정보. Yellow Dog Linux라는 배포판이 유명한데, 이는 페도라에서 파생되어 나온 물건이다. 다만 PS3에서 데스크탑용 리눅스처럼 쓰려면 PS2 와 마찬가지로 싹 밀고 다시 깔아줘야 하는데 가끔씩 이 짓을 정말로 저지르는 용자들이 꽤 있다. 다만, PS3 초기형에서만 가능하며, 2010년 펌웨어 버전 3.21이 넘어가면서 리눅스 지원을 중단하였다.[16]

또한, 구형 엑스박스는 CPU로 펜티엄 3를 사용하고, 주요 하드웨어 구성이 PC랑 별 차이 없기 때문에 비교적 쉽게 리눅스를 설치 할 수 있다. 약간의 꼼수만 쓰면 모드칩같은 것을 사용하지 않아도 가능하다. 이렇게 리눅스를 설치하여 미디어 플레이어로 쓰거나 서버로 돌리는 사람도 있다. XBMC[17]라는 강력한 미디어 플랫폼이 이 Xbox를 미디어 센터로 사용하려는데서 출발한 것이다. 요즘은 스틱형태의 초소형 리눅스에 설치되어 홈미디어 플레이어로 주로 활용이 되고 있다.

아이팟에도 리눅스를 설치할 수 있다! iPodLinux라는 배포판이 있는데, 아쉽게도 서버가 왔다갔다 하더니 결국 중단되었다. 포럼과 일부 시스템이 나중에 복구되었는데, 원래 프로젝트를 주도하던 사람 말로는 원래 웹호스팅을 해 주던 업체가 죽은지 너무 오래돼서 자료를 담고 있던 서버 자체가 남아있는지조차 모르겠다고...

3.3 중독성

익숙해지기까지 시간이 오래 걸리고 배워야 할 것도 기본적인, 유닉스의 구조부터 다양한 프로그래밍 언어들 및 쉘 사용법 등, 고3 수능공부를 가볍게 애들 장난으로 치부할만큼 복잡하고 방대하지만, 처음 익숙해지기까지의 과정만 어찌어찌 이겨내면 저것들이 모두 레고블럭으로 변신하면서 갖고 놀거리가 무궁무진한 장난감이 된다. GUI 에서 간단히 클릭으로 끝낼 것도 쉘을 통해서 명령을 내려야 직성이 풀리고, 한번 명령 내리는 것으로 끝나는 것들도 굳이 쉘 스크립트 혹은 다른 프로그래밍 언어를 이용해서 만드는 중독성을 보여 준다. 사실, 이 중독성은 프로그래밍과도 밀접한 관련이 있는데, 리눅스와 CLI 환경 자체가 간단한 프로그래밍 언어를 이용해서 처리할 수 있는 수많은 과제들을 제공해주는 소스라고 볼 수 있다. 윈도우 등의 경우, 프로그래밍 언어를 배운 후 쓸만한 프로그램을 하나 만들려면 그 언어의 문법 등을 모두 마스터한 후, GUI 나 기타 윈도우 전용 라이브러리까지 배워야 하지만, CLI 환경에서는 초반부터 실제 사용목적의 프로그램을 만들어 사용하는 것이 가능해진다. 실제로, CLI 명령 중 하나인 wc 나 cat, cp 등의 간략화 버전같은 것은 C 언어를 배운지 얼마 안된 사람도 금방 쫓아할 수 있고, 소스코드도 공개되어 있으므로 자신만의 개량형 버전을 만들어 사용하는 것도 쉽다. 게임 관련해서도 CLI 환경이 훨씬 만들기 쉽기 때문에, 게임은 만들어보고 싶고, 그래픽관련 디자인 능력은 안되는 이들이 여가시간을 할애하여 개발한 Roguelike 게임들이 많이 돌아다닌다. 디아블로에 지대한 영향을 주고, 리니지1이 대놓고 갖다 베낀 넷핵이 이쪽에서 유명게임 중 하나.

물론 이러한 진입장벽은 최근은 옛말이라고 할 수도 있는 것이, 많은 리눅스 배포판들이 업데이트를 거듭하면서 컴퓨터를 처음 이용하는 사용자도 '적어도 윈도우만큼은' 편하게 이용할 수 있도록 충분한 UI를 개발하고 있다. 무엇이듯 OS는 사용하기 나름이니, 널리 퍼져있는(…) 리눅스는 매니아를 위한 OS라는 편견은 버리도록 하자. 요즘에도 리눅스가 윈도나 맥에 비해서 신경쓰지 않고 맘 편히 쓸 수 있는 운영체제는 아니지만, 사용하기 어려운 운영체제는 아니다.

또한, 굳이 프로그래밍이 아닌 세팅 및 커스터마이징 관련 덕후들의 덕심을 자극하는 부분도 많다.커널도 셋팅이 가능하다 오픈소스쪽에서 사용자에게 불친절하다고 알려진 수많은 프로그램들은 사실 세팅이 매우 복잡하고 방대한 까닭인 경우가 많은데, 이것을 바꿔말하면 거의 바닥부터 원하는대로 세팅하는게 가능하다. 실제로 수천 줄 이상의 세팅파일이 돌아다니는 경우도 허다하며, 몇몇 프로그램은 아예 소스코드 자체를 세팅파일로 활용한다.(dwm(C), xmonad(Haskell), ranger(Python) 등) 물론, 엄청난 시간을 잡아먹는다. 덕분에 일반인들은 기피하지만, 프로그래밍이 직업인 사람부터 취미로 하는 사람까지 전세계 다양한 인종들을 끌어들여 폐인양산에 일조하고 있는 중. 리눅스 입문하는 노래도 있다.#

4 라이선스

주요 특징으로는 제너럴 퍼블릭 라이선스(GPL)라는 '소스 공개 및 자유로운 이용을 원칙으로 하는' 라이선스에 의해 배포된다.

GPL에 대해 좀 더 정확하게 말하자면, 무료로 배포할 의무는 없고 돈이나 이런저런 조건 하에 배포할 수 있지만, 구매자에게는 소스만큼은 최대 3년내에 읽을 수 있는 형태로 배포해야 하며 이 구매자가 소스를 다시 배포하는 것을 제한해서는 안 되기 때문에 현실적으로는 무료나 다름없다.[18] 실제로 소스는 공개하면서 프로그램은 유료로 판매하는 경우도 있기는 있다.

단, '리눅스'라는 이름 자체는 리누스 토르발스의 등록상표이므로 배포판에 저 이름을 함부로 사용할 수는 없다. 원래는 등록상표가 아니었는데, 대한민국을 포함한 여러 나라의 리눅스를 상표를 점거하여, 언죽번죽 로열티나 사용 불가를 주장하는 경우가 있어서 그런 일을 방지하기 위해 등록했다. 다행히도 다 무효 판정 났다.

4.1 항상 공짜는 아니다

리눅스를 사용하다가 어떠한 문제가 생기면 하루종일 삽질을 해서라도 스스로 해결해야하는 경우가 많다. 윈도우도 고객센터나 도움말이 아니라 구글신에 의존하고 있지만. 이런 상황을 피하기 위해 돈을 내고 고객지원 서비스를 받을 수 있는데, 리눅스에 웬 돈을 받아먹느냐 할 수 있지만 소프트웨어 자체는 공짜라도, '소프트웨어' 비용이 아닌 '기술 지원' 비용 등도 반드시 공짜가 아니기 때문이다. 예를 들면 우분투를 배포하는 캐노니컬 같은 경우에는 기술 지원 라이센스 계약을 통해 수익을 얻고 있으며(물론 막강한 후원자가 있기는 하지만), 비용은 평일 업무시간만 지원을 받는 계약일 경우 1년에 250달러, 1년 내내 시간과 날짜에 관계없이 지원을 받는 계약은 1년에 900달러. 서버일 경우 각각 750달러, 2750달러이다. 유명한 레드햇의 경우 아예 리눅스 배포판에 기업 지원 및 솔루션 제공까지 무조건 사도록 되어 있다. 그 대신에 RHEL의 패키지 구성을 거의 그대로(이름이나 로고같이 저작권이 있는 부분만 빼고) 가져가서 기술 지원 없이 무료로 배포하는 CentOS라는 리눅스도 있다.

다만, 이런 기술지원은 개인과는 거의 관련이 없는게, 이런 기술지원은 기업에서 쓰라고 만든 것이다. 일반적으로는 제조사에서 모든 걸 맡기 때문에 어딘가 잘못되면 제조사에 연락해서 A/S만 받으면 그만인 반면에, 리눅스는 운영체제를 구성하는 대부분의 프로그램을 각자의 커뮤니티에서 관리하기 때문에 어딘가 잘못되더라도 어딘가 구심점이 되어 맡길 때가 없기 때문이다. 개인 사용자라면 남는 시간에 이것저것 찾아보면서 천천히 고치면 되지만 시간과 인력이 곧 돈인 기업에서는 이런 기술지원이 필수다.[19]

사실 GPL에서도 찾아볼 수 있듯이 Free Software라는 것은 그냥 무작정 공짜 소프트웨어가 아닌데, 이걸 착각하는 사람들이 매우 많다(…) 영어는 공짜도 free이고 자유도 free이기 때문에 이로 인해 생기는 오류가 크다. GPL의 내용에서 따오자면free beer(공짜 맥주) 할 때의 free가 아니라, freedom(자유)의 free이다. free software는 보통 그래서 자유 소프트웨어로 번역한다. 여기서의 자유는 "소프트웨어를 자유롭게 사용, 변경, 연구, 배포할 권리"를 뜻한다. 자세한 내용은 항목 참고.

주의: 법적인 문제를 깊이 있게 따지고자 하는 사람은, 오픈 소스 진영에서도 GPL, LGPL, MPL, AGPL 등 다양한 라이선스의 호환성과 자유를 강제하는 범위에 차이가 있으므로 나무 위키보다는 전문 문서를 통해 정확한 내용을 습득하기 바란다. 오픈 소스 라이선스 역시 저작권법에 의해 보호받으므로, 잘못 알고 있다가 문제가 발생할 수 있다.
대표적인 예로 GPL은 항상 “프로그램을 원한다면 유료로 판매할 수 있다”고 전문에 명시하나, 내부에서는 파생 작업의 GPL화(v1) 또는 공중에 소스코드를 무료로 보급하도록 강제(v2)하고 있다.

5 엔드 유저 입장에서...

5.1 데스크탑 용도

우선, 리눅스 데스크탑 환경에 대해 알아볼 필요가 있다. 리눅스 자체는 커널만을 의미한다는 문장에서 알 수 있듯이, 리눅스에서는 데스크탑 환경도 하나의 '앱'일뿐이다. 윈도우로 따지면 옛날 MS-DOS 시절에 윈도우 3.1을 따로 설치해서 쓰던 때를 생각하면 된다.

여러종류의 UI 가 존재하고, 원하는 대로 바꿔쓸 수 있기때문에 리눅스는 인터페이스가 편하다 불편하다 말하는게 애매모호하다. 인기있는 데스크탑 환경[20]으로는 GNOME, KDE, Xfce, LXDE 정도가 있으며, 이중에서 맥의 UI 와 비슷한 철학을 갖는[21] GNOME 이 가장 인기가 많고, 그다음으로 윈도우의 UI 와 철학을 공유하는[22] KDE 가 있다. 이외에도 데스크탑 환경 없이, 달랑 윈도우 매니저와 자신이 사용할 프로그램만 선별적으로 인스톨하여 사용할수도 있고, 올드스쿨러의 경우에는 그냥 CLI 환경만으로 사용하는 것도 가능하다. 즉, 알고보면 그 안에서 무궁무진한 선택지가 존재한다. 다만, 저런 선택지를 어느정도 알고 니즈에 맞게 선택할 수 있게 되기까지는 상당한 시간을 보내야 한다.사실 이것때문에 그냥 우분투로 대동단결 하는거다.

인터페이스가 어렵다는 말도 많지만 위에서 설명한 오해를 차치하고라도 사실 누구나 윈도의 인터페이스에 익숙해져있기 때문에 거기에서 오는 이질감이 가장 크다. 실제 아무것도 모르는 컴맹이 익숙해지는 속도는 리눅스가 빠르다는 연구결과도 있다. 그러나, 이런 류의 연구 결과는 의미도 없고 믿을 게 되지 못한다. 리눅스의 인터페이스 종류가 많아서 결과를 특정 지을 수도 없으며 학습자가 학습 대상을 구하기 쉽고 가장 접하기 쉬운 인터페이스가 가장 학습이 빠르다. 그리고, 빨리 익숙해진다고 해서, 꼭 사용하기가 편한 것도 아니다. 즉 아무리 쓰기 쉬운 리눅스 데스크탑 환경을 사용하더라도 정보의 양이 윈도보다 압도적으로 적어서 초보자가 배우기에는 오히려 윈도가 나은 면이 많다. 무엇보다 운영체제는 그 자체가 목적이 아니라 그 위에서 응용 소프트웨어를 돌리기 위한 도구이다. 각자가 사용할 프로그램과의 호환성에 따라 선택할 문제라는 것. 위키질은 상관없다 저러한 연구가 시사하는 것은 리눅스가 어렵다는 이미지는 그저 익숙함의 차이에서 기인한 것일 수도 있다는 점 정도만 짚고 넘어가자.

한국 사이트에서 도움을 받고 싶다면, 우분투 한국 사용자 모임 [2]에 가면 친절한 도움을 받을 수 있다. 한국어 리눅스 문서 프로젝트 [3]에 가면 도움을 받을 수는 있지만, 분위기 자체가 매우 덕력이 높은 분위기라 뉴비가 끼기엔 힘들다.

만약 영어가 된다면 몇몇 영문 용어만을 통한 구글링으로도 매우 쉽게 해결법이 나오는 경우가 많다. 배포판의 가장 대다수를 차지하는 우분투를 사용하는 경우는 한글 키워드로 검색만 해봐도 초심자가 겪는 기초적인 문제는 해결 가능하다. 어차피 컴맹들은 윈도우를 쓰나 리눅스를 쓰나 검색을 통해 스스로 해결하려는 의지조차 없기 때문에 잘 모른다. 일반적인 중수 이하의 엔드 유저들은 호기심에 깔아서 이것저것 해 보는 경우도 있지만 이제까지 알던 것들과 너무 다르고 낯설고 익숙한 윈도우즈를 나두고 리눅스를 깔아서 써야할 마당한 이유가 없기 때문에 안쓰는 경우가 많다.

리눅스를 처음 시도하는 사람들은 메인 컴퓨터를 리눅스로 바로 시작하기보다 주변에 남는 구형컴퓨터 혹은 안쓰는 구형 랩탑등에 먼저 인스톨하여 쓰는 것이 권장된다. 일단, 부담없이 이거저거 막 해보다가 부팅이 안되도 별 문제가 없고, 구형 컴퓨터가 하드웨어 지원도 더 잘된다.

리눅스의 인터페이스 하면 빼놓을 수 없는부분이 CUI 인데, 일단 이 부분은 리눅스뿐 아니라 유닉스 전체에 해당하는 부분이다. 이부분을 단점으로 생각하는 유저들이 많지만, 사실 웬만한건 GUI 로 모두 가능하고, 옵션으로 윈도우의 cmd 창처럼 CLI 환경을 제공한다고 보면 된다. 리눅스 하면 CUI를 많이 연상하는 이유는 리눅스의 각종 강좌나 팁이 GUI로 설명하는 것보다 CUI로 설명하는 것이 압도적으로 많기 때문이고, GUI에서 못하거나 어려운 것이 CUI에서 가능한 경우가 의외로 많기 때문이다. 사실, 리눅스의 쉘은 sh, bash, ksh, csh, tcsh, zsh 등 종류도 많고 기능도 다양하여 사용법만 안다면 다량의 파일/디렉토리 관리시 매우 강력한 UI 가 될 수 있다. 예를들어, 100 개 이상의 디렉토리가 있을 때, 그 각각의 디렉토리로 들어가서 모든 파일 확장자를 xxx 에서 yyy 로 바꾼 후 압축하고 압축파일은 상위디렉토리로 보낸 후, 해당 디렉토리는 삭제하는 노가다 작업을 쉘에서는 단 한줄로 가능하다.[23] 컴퓨터 사용 용도가 컨텐츠 소모라면 필요가 없겠지만, 컨텐츠 생산작업을 겸하고, 데이터 관리를 어느정도 해야한다면 어차피 윈도우 cmd 나 리눅스 쉘의 기본적인 사용법은 알고있는 것이 훨씬 편리하다. 저런 파일/디렉토리 관리 작업들은 GUI 만으로는 사실 매우 힘든것들이다. bash와 cmd를 비교해 보자면, bash와 cmd는 모두 현재 프로그래밍 언어의 주류인 C-style에서 많이 벗어난 문법이므로 프로그래밍을 대충 끄적거려 본 사람에게도 둘 모두 익숙해지는데는 시간이 꽤 걸린다. 그런데 cmd는 문법 자체가 매우 비효율적이라[24] bash가 차라리 낫다. bash는 일단 쉽지 않다고는 해도 리눅스의 수많은 쉘 중에서 경쟁을 거쳐 가장 많이 사용되는 쉘이니 어느정도 검증돼 있다고 볼 수 있다.

자체적으로 문제 해결이 가능하고 주로 제한된 업무만을 수행하는 환경인 기업이나 관공서 등에서는 비용 절감을 위해 윈도우즈를 리눅스로 대체하는 경우가 늘고 있다. 많은 사람이 이용할 만한 프로그램은 어지간한 것은 거의 있고, 자신들이 필요한 프로그램을 직접 만드는 경우도 많은데 이 경우 리눅스라해서 큰 문제가 없기 때문이다. 특히 우리나라의 우체국들은 이용객을 위해 '인터넷 PC'라는 것을 각 지점당 하나씩 갖추고 있는데, 이 PC가 아시아눅스를 사용한다.2009년 이후로 업뎃도 안해서 망했다 카더라하지만 한국에서는 중립적이어야 할 많은 국가기관들이 여전히 윈도우즈가 아니면 안되거나 열람에 불편한 자료들을 국민들에게 당연하다는듯이 공개하는 곳이 많기 때문에 윈도우즈를 완전히 대체하는 것은 요원하다.

보안 프로그램이 Wine에서 돌아가지 않기 때문에 게임, 뱅킹, 쇼핑이나 공인인증서가 필요한 곳 정도는 포기해야 한다. 이 때문에 윈도를 날려버리고 리눅스만 사용하기는 리스크가 조금 큰 게 현실. 편리성에 조금만 중점을 두는 배포판이라면 윈도와 함께 멀티부팅하는 것도 친절하게 안내해 주니 리눅스 쓸거라고 윈도부터 날려버리진 말자. 최근에는 2011년부터 오픈뱅킹이니 뭐니 해서 리눅스를 지원해 주는 추세이긴 한데, 아직도 지원 안되는 곳도 많고 오픈뱅킹이래도 그리 편리하게 이용할 수 있는 것은 아니라서... 다만 쇼핑 정도는 2016년 현재 계좌이체를 하는 데 까지 액티브엑스 없이 불가능한 수준의 사이트는 더이상 얼마 없으므로 어찌어찌 가능은 하다(...)

그러나, 리눅스의 데스크탑 진입은 아직도 요원한 일로 여겨지는 경우가 많다. 보통 5-10년전 사용해본 유저들이 특히 부정적인데5-10년이라고 쓰인지가 몇 년이 지났다. 사실은 고질적이라 카더라[25], 제대로 테스트되지 않은 오픈소스 프로그램들에 자잘한 버그들이 수두룩한 것 하며, 늦어지는 최신 드라이버 개발 등 윈도우즈나 OS X에 비하면 일반 사용자들이 사용하기에는 버거운 부분들이 당시에 많았기 때문이다.

다만, 재정적인 뒷받침을 받기 힘든 작은 오픈 소스 소프트웨어 개발은 일반 사용자들을 위해 지속적으로 고도화, 단순화되는 인터페이스를 구현하는 것 같은 상당한 노력이 필요한 일들은 그저 '재미'로 하기에는 불가능한 것이다. 덕분에 기능이 비슷하더라도 오픈소스 프로그램쪽이 편의성에서 밀리는 경우가 많다.

데스크탑 운영체제로써의 심각한 문제점을 나열한 다음 링크를 참고해 보자. #
여기 언급된 문제는 제아무리 유저들을 위해 편의성을 높인 우분투 같은 배포판에도 해당되는 문제이다. 특히 와이어리스 USB 펌웨어가 아직 존재하지 않거나, 같은 칩셋임에도 불구하고 사용자가 보유한 기기를 제대로 인식하지 않는 경우[26]가 존재하며, 업데이트 후에 한글 환경이 깨지는 등 시스템을 잘 모르는 엔드 유저 입장에서는 치명적인 문제점이 한둘이 아니다. 위와 같은 리스트는 윈도우즈나 OS X에서도 뽑아낼 수 있다지만 이미 이들 운영체제들은 사용처도 많고, 커뮤니티도 활성화되어 있으므로 해결책을 찾는 게 훨씬 수월하다. 그리고 정품 컴퓨터라면 아싸리 워런티 센터로 들고 가거나 RMA보내버릴 수도 있으므로 문제점이 있더라도 해결 방안이 상당히 많다. 그러나 우분투 같은 유명한 배포판조차 USB Floppy Drive 인식 문제를 해결하려면 사용자가 직접 설정 파일을 만져줘야 하며, 이 설정 파일을 찾아다녀야 한다[27]. 그러나 몇몇 아키텍쳐의 경우 xorg 버그인 로그인 후 타이틀 바 클릭이 안 되는 문제(ALT+CTL+F1 등으로 콘솔로 갔다 오거나 Xorg데몬을 재시작하면 해결된다)는 아직도 완벽히 해결되지 않은 상태. 데스크탑 엔드 유저를 상정한다면 out of box 상황에서 시스템 세팅을 일일히 조절해 버그를 잡아주는 과정 없이 작동시키는 것을 원할 텐데, 아직도 이 정도 까지는 못 미치는 실정이다. 물론 리눅스 팬들은 우회 방법을 알고 있으므로 별로 상관 없다 하겠지만, 요즘은 컴맹들도 컴퓨터를 사용할 수 있도록 만들어야 하는 세상이다.

위와 같은 문제점을 처리하고도 실사용자 입장에서 가장 크게 다가오는 문제점은 [28] 응용 프로그램이다. 사실 윈도우의 독점적 지위는 윈도우 자체가 뛰어난 점보다 오히려 오피스라는 전무후무한 베스트셀러 프로그램에 의한 것이라 봐도 될 정도로, 오피스의 영향력은 막강하다. 관공서, 기업 심지어 한국 한정으로 대학까지 오피스(혹은 한글)의 문서포맷은 일종의 표준인 상황이라 협업을 하게될 시 오피스는 일종의 필수아이템이 된다. 그리고 오피스는 윈도우에서만 돌아간다는것이 가장 큰 문제. 그나마 오피스는 완벽히 호환되진 않더라도 열고 수정할 수 있는 방법이나마 있는데 아래아한글은 리눅스에선 답이 없다. 특히 한국의 경우, 리눅스를 고집하다가는 '저놈 때문에'라는 시선을 피하기 힘들다.아마도 대학에서부터 길러지는 이런 시선들이 액티브 엑스 왕국을 만들었겠지 즉, 일개 시민 입장에서 리눅스를 사용하고 싶더라도 그냥 개인용도로만 사용하고 대외적으로는 눈 밖에 나기 싫다면 윈도우를 사용하도록 하자. 오피스365나 구글 문서와 같은 대체재가 나름 발달한 현재에 와서도 그놈의 한컴오피스 한글때문에 여전히 오피스 프로그램만큼은 곤란하다. 다만 한컴오피스 한글의 영향력이 떨어져 가는 것을 보면 그나마 빛이 보이기는 한다.

비영어권 사용자는 언어장벽 또한 심각한 문제이다. 물론 사용자가 많은 배포판은 한글화가 많이 진행되었다. 그러나 한글화가 가장 잘 진행된 배포판인 우분투마저도 OS 내에서 영어메세지나 파일명, 설정 등을 지겹도록 보게 되고, 처음 OS 설치후 한글입력 문제 등으로 고생하는 경우는 매우 흔하다. 그리고 이것도 순정 우분투의 이야기이며 쿠분투 같은 변형판들은 상태가 더 심각하다. 근래들어 다운로드 수가 우분투를 초월한 개인배포판인 리눅스 민트 역시 우분투보다 상태가 더 심각하다. 하물며 사용자 수가 적은 배포판은? 한국어는 기대하지 않는게 좋다.
또한 리눅스 관련 인터넷 자료의 절대다수는 영어자료인 것 또한 사용자를 좌절시키는 요인 중 하나이다.[29] 그나마도 이 팁들도 우분투, 민트, 페도라자료가 대부분이고 나머지 배포판 자료들은 비중이 적다.
그냥 처음부터 영어도 배우자는 마음가짐으로 편하게 생각하는게 답이다
하다보면 실제로 영어 실력이 는다 (...) 특히 deny, allow 등 컴쪽에서 자주 쓰이는 용어는 그냥 저절로 외워진다
그런데 사실 운영체제의 완성도를 떠나서 엔드유저는 데스크탑에 리눅스를 깔어서 써야할 마당한 이유 자체가 없다. 그러니 사용하는 이유 자체가 확실한 개발자나 쓰는 것.
간단하게 듀얼부팅을 하면 된다

5.2 서버 용도

데스크탑 용도와는 다르게, 홈서버 용도로는 매우 많은 사랑을 받고있다. 한국의 경우, 징벌적 누진세로 인해 가정에서 홈서버를 돌리는것이 그다지 보편화되어있는 상황은 아니지만, 누진세 없이 그냥 전기 쓴만큼 내는 해외의 경우, 웬만한 IT 에 관심있는 사람들은 홈서버를 돌리는 비중이 꽤 되는편이다. 실제 홈서버 용도로 판매되는 상당수의 NAS 기기들이나 혹은 공유기들 역시 리눅스 혹은 BSD 운영체제를 올려서 사용중이며, 좀더 고급기능을 원하는 유저들은 직접 아톰이나 저전력 CPU 를 사용한 컴퓨터를 이용하여 스스로 서버를 설치하기도 한다. 서버용도로 사용하는 경우, 리눅스를 사용함으로서 발발하는 수많은 호환성 관련 문제도 없고, 리눅스에서 지원이 잘 안되는 소위 exotic 한 하드웨어 드라이버 관련 문제도 없으며, 세팅한번 해놓으면 그걸로 끝이니 굳이 리눅스라는 새로운 운영체제를 깊이 배워야 한다거나 하는 부담감도 없다.물론, 그다지 네트워크 성능에 관심이 없고, 이 초기세팅마저 귀찮은 이들은 유료버전인 윈도우 서버버전을 사용하지

좀더 전문적인 서버 용도로도 리눅스는 대단히 많이 사용된다. 기본적으로 서버쪽 성능이나 안정성 등은 리눅스가 가장 뛰어나다는 평가를 자주 받는다. 실제로, G-WAN 이라는 웹서버 소프트웨어는 원래 윈도우 서버용으로 개발중이었는데, 윈도우와 리눅스에서 네트워크 성능테스트를 해본 결과 윈도우에서의 성능이 처참할 정도로 밀렸다고 한다.벤치마크 현재는 개발중이던 윈도우 버전을 그냥 버리고 리눅스쪽으로 옮긴 상태이다. 흔히 리눅스의 강점을 공짜라고 생각하는데, 서버쪽에서는 공짜인 CentOS도 많이 사용하지만 값비싼 RHEL 같은 유료 리눅스도 많이 사용한다. 서버쪽에서 리눅스를 많이 쓰는 건 단순히 공짜라서로 치부할 일이 아닌 그만한 이유가 있는 것.

게다가, ZFS라는 파일시스템은 윈도우의 파일시스템을 그야말로 애들장난으로 만들어 버리는 정도의 고급기능과 안정성 등을 제공한다. 윈도우에서도 서버 2012 에서 ReFS라는 파일시스템을 새로 개발해 도입했지만, 여전히 끝판왕은 ZFS다. 단점은, NAS 수준으로는 돌리기 힘든 사양이다. 메모리를 매우 적극적으로 사용하며, 사양이 올라갈수록 퍼포먼스도 올라가는 스타일이기 때문에, 저전력 iCPU[30]에 4기가 이상의 메모리를 확보 후 돌리는 것이 좋다. 참고로, SSD 등을 L2ARC 캐싱 디바이스로 사용이 가능하기 때문에 많은 양의 메모리와 SSD 를 달아주면 고가의 하드웨어 레이드 카드 수준의 퍼포먼스도 보여준다. 사실 이 ZFS라는 건 원래 솔라리스용이었고 지금도 정식 포팅된 건 솔라리스와 FreeBSD 정도뿐이다. 리눅스에서는 Sun의 CDDA 라이센스와 자신들의 GPL 라이센스 차이 때문에 커널에서 공식지원하지 않는다. 그래도 fuse로 사용은 얼마든지 가능하고, native로도 포팅하는 프로젝트가 있다. 리눅스에서는 Btrfs를 대신 밀어주고 있는데 아직까지는 시범 단계인 정도.

즉, 홈서버, 대형서버를 불문하고 서버 용도로는 데스크탑과 상황이 반전되어 '리눅스가 윈도우 얼터너티브'가 아니라, '윈도우가 리눅스 얼터너티브' 인 상황. 실제 점유율도 그만큼 리눅스가 더 높다.

전통적인 Unix환경이 그러하듯이 원격 접속은 기본적으로 telnet이나 ssh등을 통해 CLI 환경으로 접속이 가능하다.[31] 때문에 웹호스팅 등에서 putty를 이용하여 서버에 접속하는 것이 바로 리눅스의 ssh 원격접속이다. 또한 telnet은.... 그렇다. PC통신 시절에 많이 쓰던 그 텔넷이다[32]. 단, 텔넷은 암호화가 안 되기 때문에 보안성이 낮아서 요즘은 거의 안 쓰고, 암호화 통신을 하는 ssh를 많이 사용한다. 이러한 CLI은 GUI보다 서버관리에 있어서는 효율이 압도적으로 뛰어나다. 특히 기본적으로 Text를 주고 받는 것이기 때문에 이미지를 주고 받은 GUI보다 훨씬 빠르며 느린 인터넷 환경에서도 매우 쾌적히 작업이 가능하다. 특히 관리하는 서버수가 늘어 날 경우 GUI보다 정확하고 훨씬 빠른 작업속도를 보장한다. 이러한 전문적인 환경에서는 GUI가 CLI의 효율을 따라잡을 수 없기 때문에 MS도 Powershell,netsh 같은 CLI 솔루션을 제공하고 있고 GUI에 의존적인 면을 줄이기 위해 노력하고 있다.

물론 GUI 환경도 원격접속이 가능하다. 윈도우나 맥OS, 심지어는 다른 리눅스의 GUI 환경에서도 원격 접속이 가능하다. 주로 VNC를 사용하는데 윈도우에서는 별도 프로그램이 필요하다.[33] 윈도우에 기본탑재된 "원격 데스크톱 연결"프로그램은 RDP를 사용하기 때문. 다만 VNC 프로토콜로 접속 가능한 윈도우용 클라이언트도 있고, 역으로 VNC를 RDP로 변환해서 윈도우의 원격 데스크톱 연결로 접속가능하게 만드는 XRDP라는 프로그램도 있다.[34]Windows에서 자주 쓰이는 TeamViewer도 리눅스용이 있다. 윈도용 팀뷰어를 Wine에 결합시켜 패키지 형태로 내놓은 것이다. 우분투 14.04로 버전업 되면서 xrdp로 접속하는 방법이 더이상 불가능 하다. 따라서 위의 방법은 14.04버전에서 더이상 쓰지 못하므로 Teamviewer나 chrome remote desktop을 쓰는것이 좋다.

6 점유율 및 현황

IDC가 발표한 12년 4분기 마켓 셰어 현황에 따르면 리눅스가 20%, 윈도우가 45%, 유닉스가 17% 정도의 점유율을 보이고 있다. 이는 OS가 탑재된 상용서버의 판매량을 기준으로 측정한 것이고, 실제로 서버는 그 종류가 많기 때문에 딱히 점유율이라는 것을 측정하기가 쉽지는 않다.

모바일에서는 상당히 강세인데, 이 시장에서 안드로이드는 70%가 넘는 점유율을 보이고 있다. 세계적으로는 이 정도고, 국내에서는 90%를 넘어간다. 그 외의 리눅스 기반 모바일 OS는 우분투 터치, 타이젠 등이 있지만 아직 걸음마도 떼지 못하고 있다.

흔히들 말하는 '리눅스 세계정복'은 농담이다. 너무 진지하게 받아들이지는 말자.

여담이지만 빌 게이츠도 리눅스 세계정복을 위해 자신의 블로그를 리눅스 서버로 돌리고 있다는 소문이 있었지만, 정확하게는 블로그의 서버가 아니라 블로그를 캐싱하는 서버가 리눅스이다. 블로그 서버는 윈도우를 쓴다.

과거 핫메일 서버는 리눅스는 아니고 BSD 유닉스중 하나인 FreeBSD 로 돌렸었는데, 현재는 윈도우로 이전한 상태이다.[35] 현재, 윈도우 7 울티메이트 버전과 엔터프라이즈 버전에는 유닉스 하위호환 시스템이 들어있는데[36], 이 유닉스 하위호환 시스템이 바로 핫메일 서버를 FreeBSD 에서 윈도우 서버로 옮기는 과도기에 사용하던 시스템이다. 윈도우 8 에서는 이 유닉스 서브시스템은 사라졌지만, 윈도우 8 엔터프라이즈 한정으로 NFS client 가 탑재된다.

리눅스를 잘 모르는 일반인들은 왠지 검은 바탕의 흰 글씨의 프롬프트로 대변되는 CLI[37]를 떠올린다. 현재는 GUI환경의 많은 발전으로 얼마 안되는 적응기간만 지나면 윈도우와의 호환성을 제외하면 큰 문제는 없다. 다만 CLI에 익숙해 진다면 콘솔에서의 작업이 편한 경우가 많다.

요즘은 잘 찾아보면 CLI까지 갈 필요 없이 웬만한 세팅이나 설정까진 GUI로도 가능하긴 하다. 하지만 인터넷에서 뭘 물어보면 GUI 보다는 주로 CLI 환경의 답변만 받는 경우가 많은데, GUI 기준으로 설명하게 되면 동일한 데스크탑 환경을 사용하는 소수의 사용자에게나 유효한 설명이 돼버리기때문이다. 게다가, GUI가 CLI보다 편한 경우도 많이 있지만, 경우에 따라 GUI 에서 불가능하거나 극심한 클릭노가다로만 가능한 작업이 CLI에서는 간단히 끝나는 경우가 많기도 하다. CLI 에 어느정도 익숙해지게 되면, 그저 터미널을 띄울 수 있다가 전부인 GUI 위주의 데스크탑 환경보다는 터미널을 데스크탑 환경에 이리저리 통합시켜 사용하는 데스크탑 환경을 더 편하게 느낄 것이다. 추가로 GUI로 알려주면 계속 사진찍고 위치 알려줘야하는데 커맨드는 복붙해서 알려주면 된다는 편함도 있다. 다만 당연히 터미널 뜨면 그저 막막한 대부분의 일반인들은 이것을 불친절함으로 받아들이게 되는 경우도 많다. 안 그럼 아직도 다들 도스에서 커맨드 치고 있지 윈도우나 맥을 쓰겠는가. [38]

의외로 맥이 리눅스 계열 오픈소스 진영을 도와준 경우도 많다. OS X도 뿌리는 유닉스 계열인지라, 리눅스나 BSD 계열과 어느 정도 호환이 되고, 사실 거의 독점이었던 윈도우즈에 혼자서는 대항이 불가능했기에 오픈 소스 진영의 힘을 빌린 것이라고 볼 수 있다. 결론적으로 OS X는 많은 성공을 거두었지만...그럼에도 리눅스 진영은 OS X를 그다지 탐탁치 않게 보고 있는데, 소스를 뜯어가서 라이센스 하에 공개 하는 것은 좋지만, 원본 소스의 성능과 같은 부분에 대해서 피드백을 절대 하지 않는데다가, 애플이 수정한 소스 자체를 원본 소스에 다시 적용하기 힘들게 바꿔놓기 때문이다. 이부분은 사실, 애플이 리눅스가 아닌 FreeBSD 에서 많은 부분을 가져다 썼기 때문에 벌어지는 차이라 볼 수 있다. 리눅스나 BSD 나 같은 유닉스이지만, 그 유닉스 specification 을 넘어서는 부분에 대해서는 리눅스와 BSD 의 차이가 꽤 심하게 벌어진다. 덕분에, 순수하게 POSIX 기준에만 맞춰 제작된 소수의 프로그램은 두 운영체제에서 문제없이 돌아가지만, 리눅스 기준으로 만들어진 프로그램은 BSD 에서 돌리려면 에뮬레이터가 필요해지고, 반대의 경우에도 상당한 포팅작업이 필요해진다. 즉, 애플의 기여도는 리눅스를 기준으로 보면 불친절하고사실 코드를 가져온 OS 가 리눅스가 아니기 때문에 굳이 갚을 의무같은게 없긴 하다, 리눅스가 아닌 FreeBSD 를 기준으로 보면 상당히 높은 편이다. 실제로, 초창기에는 FreeBSD 의 코드를 가져다 쓰기만 했지만, OS X 가 자체적으로 발달하고 애플이 여러가지 오픈소스 프로젝트에 손을 뻗으면서 요즘에는 오히려 FreeBSD 에서 애플쪽 소스코드를 가져다 쓰는 경우가 많다. 기본 베이스가 FreeBSD 와 상당히 유사하기 때문에 FreeBSD 기준으로는 OS X 용도로 개발된 코드의 포팅작업도 리눅스에 비해 매우 쉬운 편.(예를들어, libdispatch 나 libc++ 같은것들은 FreeBSD 로 가장 먼저 포팅이 되었다.)

7 게임은?

여담으로 리눅스 깔면 게임 할게 없다는 소문은 어느 정도는 옛말이다. 특히, DirectX가 아닌 OpenGL 계열 게임들은 와인을 활용하든 네이티브로 포팅이 되든 DirectX 기반보다는 어떻게든 리눅스에서 사용할 수 있게 될 확률이 높으므로 참고.[39]

첫 번째로, 리눅스를 네이티브로 지원하는 게임을 살펴보자. 가장 먼저 말할 수 있는 것은 스팀 게임들이다. 스팀OS를 기획하면서부터 스팀이 리눅스를 공식 지원하게 되었고, 그에 따라서 밸브 사 자체의 게임은 물론이고 스팀을 플랫폼으로 하는 게임들 중 리눅스로 만들어지는 게임이 대폭적으로 늘었다. (Counter-Strike를 한물 지난 컴퓨터에서 OpenGL로 돌려보자.) 사실, 리눅스 플랫폼 지원강화는 윈도우 8 이 클로즈드 마켓방식으로 변했기 때문이다. 밸브는 윈도우 8 을 비난하는 언급을 했으며, 리눅스 플랫폼을 일종의 보험용도로 인식하여 지원을 강화한다고 발표하였다. # 이제 리눅스라고 지갑이 안전해지지 않는다! 블리자드 역시 이에 동조하고 있으나, 리눅스 지원에 대해서는 아직 구체적인 이야기가 없는 상태. 한국시간 2013년 2월 15일 오전 3시경부터 드디어 스팀의 리눅스 정식판이 공개되었다. 기념으로 리눅스용 게임들을 할인하는 이벤트를 열었다.

대인배 존 카멕의 이드 소프트웨어에서 출시하는 PC 게임은 거의 다 리눅스를 지원한다. 물론 패치도. DirectX를 사용하지 않고 OpenGL을 사용하기 때문에 가능한 모양. 철지난 게임들[40]의 바이너리 파일을 리눅스용으로 공개하였고[41], BraidWorld of Goo등의 몇몇 인디 게임들도 리눅스용 Full버젼을 팔고 있다. 그리고 프리웨어로 웬만한 상용보다 더 빵빵한 게임을 내놓는 용자도 있다.

엄밀히 네이티브라고 하기 곤란하기는 하지만, 에뮬레이터를 거치는 게임은 대부분 리눅스에서도 사용할 수 있는 에뮬레이터가 있기 때문에 큰 문제 없이 사용할 수 있다.참고 마인크래프트와 같은 경우에도 자바 기반이기 때문에 문제 없이 실행이 가능하다.

두 번째로, Wine을 거치는 방법을 생각해 보자면, Wine이 생각보다 최근 성능이 좋아지면서 이를 통해 플레이 할 수 있는 게임이 많아졌다. 특히 블리자드의 게임들이 지원이 빨라 거의 Platinum급이며, 2016년 4월 현재 오버워치를 제외하면 최신 게임들이 모두 플래티넘 등급이라 거의 플레이하는 데 지장이 없는 수준이다. 그 외의 경우, WineHQ AppDB를 참고하자. 핵쉴드, 게임가드 등 보안 프로그램을 떡칠하고 나오는 국내 온라인 게임들의 경우에는 이 보안 프로그램들이 Wine 하에서 제대로 실행되지 못하기 때문에 거의 희망을 버려야 한다(...)

다만 게임사들이 맘먹고 포팅을 한다고 가정한다면, 성능측면에서는 오히려 리눅스+OpenGL 조합이 윈도우+DirectX 조합을 능가할 가능성도 분명히 존재한다. 실제로, 윈7+DirectX 조합에서 레포데2 270 프레임을 찍었던 컴퓨터에 밸브가 리눅스+OpenGL 로 소스엔진을 포팅하여 돌려봤더니 처음에는 6 프레임 나오던 것이 최적화가 진행되니 결국 315 프레임으로 윈도우에 비해 무려 20% 가까이 상승했으며, 이에 힘입어 윈도우에서도 DirectX 대신 OpenGL 조합으로 바꿔봤더니 역시 300 프레임으로 상승했다고 한다. DirectX 의 굴욕 이미지 퀄리티 등의 문제가 있던 것도 아니었다고 하니, 리눅스 커널이나 OpenGL의 최적화 수준은 게임 측면에서도 윈도우에 뒤지지 않거나 혹은 그 이상이라는 결론이 나온다. 다만, 그래픽 드라이버의 문제[42]와 문서화가 불친절하다는 점, 그리고 빈번히 뒤집어 엎는 경우가 많은 오픈소스 특징상, 상용 업체들이 '믿고' 개발하기가 힘든 측면이 있다.

근데 애초에 가장 큰 문제는, 게임만을 위해 리눅스를 설치할 필요성은 전혀 없다는 것이다. 위에 기술된 이런저런 방법이 존재해도 리눅스에서 게임을 돌리는 방법은 편법적인 방법이 많이 동원되기 때문이다. 거기다 리눅스를 공식적으로 지원하는 게임은 수량 면에서는 확실히 적은 편이고, 대작 게임에서도 찾아보기 힘든 편. 리눅스에서 게임 할 게 없다는 이야기는 이런 배경에서 나온 것이다. 분명 돌릴 수 있는 게임이 많지만 이런저런 편법을 동원하거나 뭘 만지거나 해야 하고, 돌릴 수 있는 게임은 인디 게임이나 철지난 게임이 상당수다. 게임에 비중을 크게 두면 둘 수록 리눅스는 윈도우보다 우선순위에서 밀릴 수 밖에 없다. 다만 이는 본질적인 문제라기보다는 닭과 달걀 같은 문제다. 리눅스 사용자가 적다보니 게임사에서 적극 지원하지 않고, 지원이 없으니 리눅스에서 게임하는 사람도 적다. 일종의 악순환의 고리가 만들어져있는 셈.

8 대중화의 방해 요소들

당장 리눅스 대중화 방해 요소중 제일 큰 문제점인 소프트웨어 숫자의 한계는 스팀이 마이크로소프트와 맥으로부터의 엑소더스를 선언하며 리눅스로 이전함으로써 상당부분 해결될 희망이 생기긴 했다. 스팀과 구글이 리눅스진영에 힘을 실어주면서 중구난방식으로 개발되던 리눅스 커뮤니티에 약간이나마 구심점을 제공한 것도 다행이라면 다행.[43] 하지만 여전히 대중화를 위해 고쳐야할 점이 많이 남아있다. 드라이버나 소프트웨어 문제는 그렇다쳐도, 리눅스 자체가 가진 딜레마들이 큰 문제다. 이 중 상당수 문제는 유닉스의 기본적 사용 방식인 소스를 직접 컴파일해서 설치하는 것의 잔재와 관련된다고 볼 수 있다.

8.1 UI의 파편화

리눅스가 기본적으로 커널만 리눅스면 떡을 치건 삽을 푸건 리눅스로 인정받기 때문에 천태만상의 배포판들이 있으며, 그 사용법도 배포판마다 다르고, 때로는 소프트웨어 버전에 따라 방법이 달라지기도 한다. 배포판 간의 호환성 문제까지 발생할 정도로는 파편화가 발생하지 않았으나, UX에 있어서는 배포판의 버전별로조차도 사용법이 자주 왔다갔다 한다는 점이 문제이다. 인터넷에 사용법을 찾아보면 수년 전 버전의 설명이 뒤섞여서 등장하게 되어 혼란스러울수 밖에 없으며, 어느날 운영체제 업데이트를 했더니 또다시 UI가 딴판이 되어버리는 상황이다. 초보자에게는 장벽이 될 수 밖에 없는 부분이다.

우분투만 하더라도, 기존에 있던 디스플레이 서버인 X.org를 대체하는 Wayland가 뜨기 시작하자 Unity라는 자체 인터페이스를 개발하며 Wayland를 밀어주는가 싶더니 자체 개발 프로그램인 mir로 선회하였으며, Unity는 현재 적용이 되어 있으나 mir로의 전환이 완료되지 않아서 또 한차례의 파란이 예고되어 있다. 다른 대부분의 리눅스는 Wayland로 넘어가는 추세이며, mir나 Unity로의 전환을 고려하는 다른 배포판은 2016년 1월 현재 거의 없다. 심지어 우분투와 한 가족인 쿠분투조차도 여기에는 반대의 목소리를 내는 실정이다. 우분투의 갈라파고스화가 우려되는 상황. 바로 위 주석의 "삐딱선"에 해당되는 대목이다.

8.1.1 CLI에서는 문제가 없다?

CLI라고 그런게 아주 없지는 않다. 패키지 관리자야 배포판마다 각자의 철학이 있으니 그렇다 치더라도, 2016년 기준, 최근 몇 년 사이에 인터넷 설정과 시스템 초기화에 사용되던 대세 프로그램이 각각 ifconfig에서 ip로, 그리고 SysV init 혹은 OpenRC에서 systemd로 변경된 예가 있다. 이 두 예시 모두 좀 더 나은 성능과 더 깊이 있는 레벨의 설정을 고려하여 만들어진 것이라, 간단한 설정에 있어서는 오히려 사용법이 어려워졌다.

쉘스크립트를 실행하고 CUI 환경을 관리하는 리눅스 쉘 마저도, Bash가 사실상의 표준이기는 하지만 데비안 계열은 실상 Bash가 아닌 Dash를 사용하여 미묘한 부분에서 호환성 문제가 발생하는데다가 일부 배포판에서는 zsh이나 다른 쉘을 기본 쉘로 지정하는 등의 예가 있다. 이것 또한 기본적으로 쉘이 지켜야 할 부분 이외에는 어떤 확장을 추가하더라도 문제가 없기에 발생하는 일. [44]

그 외에도, 한 배포판 내에서도 같은 이름의 툴인데도 BSD판 툴과 GNU판 툴이 저장소에 공존하기도 하고, python이라는 명령어에 어떤 배포판은 python2를 매핑시켜놓고 어떤 배포판은 python3을 매핑시켜놓는 등 파고들수록 여러 가지 문제를 찾을 수 있다.

8.2 저장소 Repository

윈도우의 경우 파일을 프로그램 별로 모아서 각각의 폴더 내에 저장하기 때문에 같은 요소가 프로그램 별로 중복되어 설치되는 경우가 종종 생긴다. 그러나 리눅스는 저장소 시스템 덕분에 공용 라이브러리가 설치되어 있는지 확인하기 쉽기 때문에 라이브러리를 최대한 프로그램과 별개로 빼내어 설치하여 프로그램의 구성 파일이 중복되는 상황을 줄인다. 하지만 이 때문에 프로그램을 설치하기 전 구성요소를 미리 설치해야 하며, 프로그램별로 요구하는 구성요소의 버전이 다를 경우 문제가 생기기도 한다.

그래서 많은 패키지 시스템에서는 패키지 내에 의존성을 명시하고 리눅스 배포판들은 의존성이 모두 맞춰진 프로그램 세트를 구할 수 있도록 별도의 저장소를 만들어 두곤 한다. 각 프로그램이 문제 없이 돌아갈 수 있도록 안정 버전을 모아두는 게 배포판의 주요 목적인 만큼 필요한 구성요소를 버전별로 갖춰두고 각 프로그램마다 필요한 버전을 가리키도록 개조하는 것으로 이 문제를 해결하는 것이 보통이다.[45]

이상적으로만 돌아간다면 프로그램을 찾으려고 여기저기 돌아다닐 필요도 없고, 같은 요소를 중복 설치할 필요도 없고, 보안 업데이트 등을 OS가 알아서 관리해 주고, 필요한 것들은 알아서 선택해 주는 등 편리하기 그지없는 시스템. 이런 시스템은 지속성에 도움을 주기도 한다[46]. 이런 패키지 관리자는 프로그램을 쉽게 검색하여 금방 설치할 수 있다는 장점도 있기 때문에, 시스템 구조상 그 체계를 완전히 가져올 순 없더라도 이런 모양을 갖춘 관리자를 다른 시스템에서도 갖춰 가는 모습도 볼 수 있다.

이 방식의 장점을 정리하자면

  • 라이브러리 중복 설치로 인한 저장 장치 공간 감소
  • 보안 문제에 대해 유연한 대응이 가능하다. [47]
  • 일관적인 설치 방식 [48]
  • 편리한 업데이트 [49]

다만 이게 문제가 되는 것은 주요 소프트웨어 설치 방법이 여기에 죄다 묶여버렸다는 것이다. 리눅스에서 프로그램을 설치하는 방법은 정석적인것부터 나열하면

  • 저장소에 등록된 프로그램을 설치하는 것
  • 저장소에 없는 프로그램이라면 운영체제 버전에 맞게 컴파일된 패키지를 홈페이지에서 받아서 설치하는 것
  • 다른 의존성 패키지까지 필요하다면 별도의 저장소를 추가해서 설치하는 것
  • 소스를 직접 받아서 패키지로 만들어 설치하는 것
  • 패키지를 거치지 않고 소스를 직접 설치하는 것

까지가 있다.

일단 가장 크게 다가오는 단점으로는 초보자에게 매우 낯설다는 점이다. 흔히 프로그램을 설치하는 것은 윈도의 방식대로 인터넷에서 설치 파일을 받아서 실행만 하면 끝나는 것에 익숙한 데 비해 어느 방법이나 상당히 어색할 수 밖에 없다. 어떤 프로그램을 설치하고 싶은데 제작사 홈페이지를 가 보니 뭘 어떻게 해야 할지를 모르는 난관에 봉착하는 것.

설치를 하려니 첫 번째 방식으로 해결되지 않아서 다른 방법을 선택해서 설치하는 경우에는 기본적으로 번거롭고 어려운데다가 제 때 업데이트를 받지 못 하는 것부터 의존성이 꼬여버리는 경우까지 각양각색의 위험성이 도사리고 있다. 윈도의 경우 각 프로그램이 의존성이 필요한 프로그램은 설치 패키지내에 다 때려박아서 무식하게 해결하는 대신 적어도 꼬일 위험은 훨씬 적다. 이렇게 꼬여버린 시스템은 리눅스 구조에 대해 어느 정도 지식을 가지지 않은 한 풀어내기는 매우 어렵다.

또다른 단점으로는 배포판의 안정화를 위해 버전을 억지로 묶어두다보니 빠른 업데이트가 불가능하게 됐다는 것이다. 물론 보안 업데이트처럼 중요한 업데이트나 자잘한 버그픽스는 배포판을 만든 쪽에서 알아서 챙겨 주지만 좀 큰 규모의 업데이트는 자칫 잘못하다가는 배포판 전체를 삐걱대게 만들 수 있기 때문에 다음 버전이나 돼야 만날 수 있는 경우가 많다. 또 프로그램의 새 업데이트가 배포판 릴리즈 시기보다 일찍 나왔다고 해도 배포판 쪽에서 안정화 테스트가 이미 어느정도 진행된 상태라면 다시 또 다음 릴리즈를 기약해야 하는 경우도 많다.

8.3 상용 프로그램에 대한 장벽

GNU/Linux 가 자유 소프트웨어라고해서 리눅스에서 돌아가는 소프트웨어가 전부 자유 소프트웨어야할 필요는 없다. 하지만 리눅스에서 돌아가는 대부분의 소프트웨어는 레포지터리에서 무료로 다운로드 가능한 소프트웨어로 거의 한정되어있으며, 상용 소프트웨어는 대부분 기업용으로 나온 무지막지하게 비싼 제품들 말곤 드물다.

자유 소프트웨어들은 충분히 상용 소프트웨어들에 대해 경쟁력을 충분히 갖추고 있지만, 모두가 자유로움을 원하지는 않는다. 리눅스에서 보다 완성도 높고 안정적이며 때로는 비용을 지불해서라도 쓰고 싶은 소프트웨어를 쓸 수 있다면 기뻐할 수요층은 충분히 많다. 이런 수요를 완전히 묵살하다 시피한 자유 소프트웨어에 대한 집착은 리눅스 대중화에 오히려 해악을 끼칠 뿐이다. 대안이라면, 우분투 스토어가 있긴 한데, 이 플랫폼도 영 좋지 않은 상황이다.

아이폰의 AVPlayer가 그러하듯 자유 소프트웨어=무료 소프트웨어라는 공식은 잘못되어있다. 실제로 많은 자유 소프트웨어 프로그램은 지금도 유료로 팔리고 있고 이러한 유료로 팔리는 자유 소프트웨어 중에선 레드햇과 같은 유명 프로그램도 많다.[50] 하지만 이러한 프로그램들은 유명하고 널리 알려져있기 때문에 그게 아니면 딱히 대적할 프로그램이 없는 경우가 많지만 치열한 경쟁 상대가 많은 소규모 회사나 개인 개발자가 제작한 프로그램은 다른 프로그램과 차별성을 두지 못하면 뒤쳐지기 쉽기 마련이다.
자유 소프트웨어로 배포하면 이러한 차별성을 두는 것에 이점을 상당량 잃게 되므로 상용 프로그램을 판매하는 회사는 자사의 프로그램을 자유 소프트웨어로 배포하는걸 꺼리게 되는 이유다.

이는 어도비 플래시HWP포맷, ALZ, EGG포맷이 그러하듯 다른 사용자들이 퇴출되어야할 것들이라 비판하더라도 대체제가 없는 차별성 때문에 계속 쓰이는 것처럼 회사와 개발자에겐 장점이 되지만 사용자에겐 단점이 되기도 하므로 개개인의 가치관에 따라 판단해야할 부분이다. [51]

허나 이러한 자유 소프트웨어에 대한 지나친 요구는 상업적 목적으로 개발하는 대부분의 회사들이 리눅스로부터 등을 돌리게 되는 이유이며 리눅스 프로그램이 윈도우등 경쟁 OS에 비해 부족한 이유중 하나이기도 하다.

이러한 심리적인 이유 외에도 기술적인 이유도 있는데, 어느 배포판에서는 잘 돌아가는 프로그램도 다른 배포판에서 돌아간다는 보장이 없기 때문에 진지하게 개발하려면 주류 리눅스 배포판에서 테스트하는 것 만으로도 상당한 비용이 들어가게 된다. 스팀이나 어도비 플래시 구글 크롬[52] 등이 공식으로 지원하는 배포판이 페도라와 우분투 계열로 한정된 이유가 이러한 이유. 이런 상황에서 상용 소프트웨어를 개발하기는 상당히 어렵다.

리눅스 프로그램이 대부분 온갖 환경에서의 실행을 지원하고 문제 없이 돌아가는 것은 사실이나, 이것은 한 명, 혹은 한 집단의 노력으로 달성가능한 수준이 아니다. 처음에는 미약하게 시작하더라도 오 이거 괜찮네 하고 쓰는 사람들이 많아지고, 그러다보면 '이런 상황에서는 버그가 있네?' '이런 조합도 지원해줬으면...'하는 사람들이 피드백을 해 주고, 또 커밋을 해 주면 원 프로젝트의 주인이 그것을 받아서 개선해 나가면서 점차 크고 아름다운 프로젝트가 되어 가는 것인데, 상용 프로그램이라면 소스 공개를 할 수도 없고, 그렇다고 그런 피드백을 다 받아주자니 역량이 모자라는 사태가 온다. 게다가 오픈소스 동네는 우리가 이렇게 움직이면 상호관계에 있는 다른 프로젝트도 같이 움직여 줄 거라는 전제 하에 이런저런 수정이 잦은 편인데, 오픈소스라면 충분히 열정을 가진 개발자들이 어느정도 같이 개선해 나갈 수 있지만 커뮤니티 참여가 제한된 상용 프로그램의 입장에서는 기껏 만들어서 테스트까지 다 마쳐 놨더니 얼마 안 가서 호환이 안 되어버리는 미쳐버릴 환경이 되어버리는 것. 더욱이 서로 다른 환경에서 돌아가기 위해서는 새로 컴파일을 해야 하는 경우도 많기 때문에 보통 소스 코드를 공개하고 바이너리는 각 배포판에서 직접 컴파일하여 저장소에 올리도록 하는 것이 보통인 만큼 소스공개조차 하지 않는 상용 프로그램이 모든 환경에서 돌아가도록 하는건 말도 안 되는 소리. 그렇다고 오픈 소스 프로그램만 쓰기엔 상용 프로그램의 성능이 필요할때가 있는것이 현실이다. 공돌이 삘 충만한 툴이나 알고리즘같은 경우는 상용프로그램 뺨을 후려갈기는 완성도의 걸작이 나오지만 UI나 그래픽 편집 등 미적 감수성이 필요한 부분에서는 그저 안습...

이 부분에 있어서는 구글이 사용하는, 크로미움-구글 크롬이나 AOSP-안드로이드처럼 오픈소스 프로젝트를 후원하고 브랜딩만 붙여서 상용 소프트웨어로 만드는 효율적인 구조의 예도 있으나 일단 전제조건이 오픈소스 프로젝트가 일단 성공해야 그 뒤의 커뮤니티 지원이 성공적으로 이루어진다는 점, 그리고 직접적인 수익은 기대할 수 없다는 점에서 구글이라서 가능한 전략이라고 봐야 할 것이다.

8.4 터미널 명령어

단 터미널이라고 줄여 부르는 터미널 에뮬레이터(terminal emulator)는 사용자가 데이터를 입력 출력하는 프로그램이며 사용자는 터미널 에뮬레이터를 통해 응용 프로그램에 접근하는 구조로 되어있다. 즉 터미널은 종류에 따라 CUI또는 '텍스트 유저 인터페이스(TUI)' 넓게 보면 GUI환경을 쓸 수 있도록 하는 프로그램이다. 그러므로 이 문단에서 다루는 문제점은 터미널 명령어가 아니라 그냥 리눅스가 GUI보다 CUI에 기반하고 있다는 문제와 파편화이다.)

터미널 없는 리눅스는 리눅스가 아니다. 터미널이 없는 안드로이드우분투 터치 등의 모바일용 배포판은 리눅스가 아닌가 보다[53] 하지만, 터미널은 그 존재 자체만으로 일반 사용자들에게 막대한 부담을 준다. 사실, 오히려 터미널 명령어가 존재하기 때문에 여러가지 문제가 생겼을 때 터미널 명령어만 따라 입력해주면 바로 해결이 가능해서 오히려 GUI 보다 문제 해결에 훨씬 유리한게 터미널이다. 문제는 모든 설명을 이 터미널로 끝낸다는 점에 있다. 모든 유저들이 터미널 명령어로 일을 해결하고 싶어하는 것은 아니다! 실제론 터미널 명령어를 쓰는 것보다 복잡하더라도 GUI를 통해 일을 해결하고 싶은 사람들도 아주 많고 그것은 지금의 리눅스의 데스크탑 점유율이 확실히 입증한다.
(사실 이것도 오해인데, 요즘 외국의 해결책 설명은 GUI방법을 먼저 하고 그 다음 콘솔 해결책을 표시해준다. 다만 국내에는 유저층이 적어서 이러한 면이 아직 정착이 덜 된 것이 문제. )

더 골치아픈 문제점은, 배포판과 버전별로 입력해야하는 터미널 명령들이 따로 노는 경우가 허다하며, 또한 사실 GUI 상으론 똑같은 행동을 하는 것인데, 터미널 명령어는 묘하게 바뀌어있는 부분이 한두가지가 아니란 점이다. 포럼들에서 터미널 명령어를 보고 명령어를 입력했는데, 설명한 것과 다른 결과가 나오는게 어디 한두번인가?눈물나는 삽질

예시를 들면, 한 때 우분투에서 노트북 전력 관리 기능이 꺼져있어서 포럼들을 해매며 강제로 활성화 시켜야 했던 적이 있다. 검색을 해보면 뭐 하나 제대로된 명령어가 없다. 하나같이 구버전에만 먹히는 명령어 이거나, 터미널 명령어로 열어야하는 창은 열었는데 그 이후의 설명이 빠져있는 둥 일반 유저는 죽었다 깨어나도 해결 불가능한 영역에 가있다. 노트북 전력 관리기능이 꺼진 우분투의 배터리 광탈이 얼마나 심각한지를 생각하면 더 이상의 설명이 필요할까?

실제로, 이 문제는 리눅스 사용자 사이에서도 일반 사용자들의 진입장벽으로 가장 먼저 언급되는 문제이며, GUI가 기본인 현재의 컴퓨팅 환경에서 지나치게 뒤쳐져 있는(Outdated) 시스템이라는 비판이 거세다. 시대적 흐름을 모르고 구식 시스템을 고수함으로써 갈라파고스화 되고 있다는 것.

명심하자. GUI에 익숙해져 있는 대다수의 일반 사용자들은 컴퓨터의 문제를 해결하려고 텍스트뿐인 창에 일일히 명령어를 쳐줘야 하는 이유를 이해하지 못할뿐더러, 비직관적이고 어렵다고 생각해 리눅스 자체에 회의감을 느끼고 끝내는 포기하게 된다. 더군다나 현 시대는 모든 소프트웨어가 직관적인 인터페이스를 추구하고 있는 시대인데 아직도 비직관적인 터미널 명령어에 의존하는 현재의 리눅스 시스템에 대중이 얼마나 적응할 수 있을 것 같은가?[54]

또한 이것은 리눅스라는 OS 자체의 문제 뿐만 아니라, 사용자측의 책임도 어느정도 맞물려 있는 문제이다. 웹에서 돌아다니는 많은 리눅스 팁들이 터미널을 활용하게 되어있는데, 민트나 우분투 관련 팁의 절대다수는 GUI에서 클릭질로 해결이 가능한 문제이다. 그러나 '리눅스 팁의 수요자는 컴퓨터를 어느정도 아는 사람이다'라는 선입견과, 컴퓨터 초보자에 대한 이해 부족이 리눅스 팁의 절대다수가 CUI로 이루어지게 된 원인이 되었다. 물론 CUI는 GUI보다 훨씬 간단하고 설명하기도 쉽고 관리하기도 쉽다. 예를들어 리눅스 민트에서 A라는 패키지를 설치하는 것을 GUI로 설명한다고 가정해보자. 초보자에게 설명을 한다면, 소프트웨어 관리자를 키고 어느 것을 선택하고 적용을 누르라는 식으로 설명해야한다. 하지만 예를 들어 데비안 계열의 CUI로 설명을 한다면, "터미널 켜서 sudo apt-get install A라고 입력하세요"라고 설명하면 끝이다. 단순히 패키지를 설치하는 과정만 하더라도, CUI가 훨씬 압도적으로 설명하기 편하며 (익숙해지면) 사용자도 편리하다. 하지만 초보자는 CUI를 보면 우선 겁부터 먹는다. CUI가 GUI보다 어떤 장점이 있는지도 이해하지 못하는 경우가 절대다수다. 컴퓨터 초보자 뿐만 아니라, 윈도 환경에서 나름 컴퓨터 잘한다는 소리 듣던 사람들도 CUI의 장점을 이해하지 못하는 경우가 많다. 그렇기에 번거럽더라도 팁을 설명할 때는 GUI 환경에서 설명해주는 것이 훨씬 바람직하다.

결국 이 문제점은 사용자를 터미널 명령으로부터 사실상 분리하는 데 성공한 안드로이드에서는 확실하게 해결이 되었다. 물론 데스크탑 리눅스는 여전히 그런 거 없다 가 현실이지만.

8.5 다국어 지원 문제

리눅스는 영어권 사용자를 대상으로 개발되고 있고 각 국가의 사용자들이 커뮤니티 차원에서 다국어 지원을 추가하고 있다. 리눅스 사용자가 상대적으로 많은 국가는 다국어 지원이 잘되는 편이나 한국은 사용층이 턱없이 부족하기 때문에 다국어 지원 미비 문제를 마주치기 쉽다. 또한 이는 상용 리눅스인 레드햇 계열이나 OpenSUSE 또한 팔리는 수준 만큼만 부족한 로컬 라이징을 보완해서 출시하기 때문에 손익 구조를 계산하면 한국의 리눅스 유저 점유율이 지금의 배 이상으로 늘어나지 않는 이상 오랜 시간이 지나도 절대로 해결되지 않을 전망이다.

실제로 써보면 꽤나 억소리나는데. 배포판에 따라서는 인스톨러만 간신히 한글화되어 있기도 하고. 프로그램도 반만 한글화 되어 있다거나 전산용어 한글화 운동의 영향이 아직 남아서 처음들어보는 생소한 단어와 마주치는 경우도 있다. 다수의 사람들은 윈도우식 용어에 익숙한 데 비해 순우리말 용어에 대한 애착이 큰 사용자들도 많아서, 어느 쪽이 맞다고 손들어주기도 애매하지만 통일성도 중요한 지라 골치 아파지는 것도 큰 문제 중 하나이다.

특별히 상용 프로그램이 아니라면 유저들에게 로컬라이징을 맡기는데 이것도 자발적인 거라... 기여자에 따라 품질이 천차 만별이다. 유명한 배포판/프로그램들이야 빠르게 한글화 되지만 그게 아니라면 골치아프다. 때문에 차라리 영어로 두고 쓰는게 나을 정도의 상황이 자주 생긴다. 물론 윈도우나 맥용 프로그램도 한글화가 안된 경우가 많지만 기본 UI에서 로컬라이징 문제를 마주칠 가능성이 있는 건 리눅스 뿐이다. 그야말로 치명타.

8.6 부실한 디바이스 드라이버 지원

이하 내용의 대부분은 클로즈드 소스 드라이버에만해당된다. 아래 내용처럼 제조사에서 잘 지원을 안해주니, 오픈소스 개발자들이 하드웨어하고 바이너리 파일만 보고 오픈소스 드라이버를 만들어냈다. 가장 대표적인 예로 nouveau[55]그래픽 카드의 오픈소스 드라이버이다. [56] 가 있다.

PC용 리눅스 배포판의 경우 신규 하드웨어와 그에 부속된 신규 사양에 대한 디바이스 드라이버 지원이 대체로 늦고 설령 지원이 되더라도 부실한 경우가 많다. 예를 들어 PC쪽에서 최근 추진하고 있는 저전력 환경에 대한 대응에서도 한발 늦는 모습을 보여주고 있고, 이 때문에 리눅스가 커널 수준에서 전력관리 성능이 떨어진다는 오해까지 불러오고 있다.

이러한 현상의 근원은 크게 세 가지로 요약할 수 있다.
1. 일반 PC용 디바이스 드라이버에 한정할 경우 디바이스 드라이버를 작성해야 할 업체 입장에서는 대부분 윈도우 드라이버에 대한 대응이 우선이고 리눅스 지원은 2순위이다.
2. 때문에 전력 관리기능 같은 여러 디바이스 드라이버도 같은 맥락에서 업체들이 늦게 개발한다.
3. 제조업체들과 배포판 업체들간의 공개/비공개 부분이나 라이센스 정책에 관련된 부분을 조율하고 그 결과에 맞춰 디바이스 드라이버를 변경해야 한다.

즉 저전력 환경에 대한 지원이나 GPU등의 드라이버 지원[57]이 전반적으로 부실하거나 늦는 것은 PC용 리눅스 배포판에 대해서는 맞는 이야기이지만 이것조차도 리눅스 자체의 문제라기 보다는 드라이버 개발을 주도해야 할 관련 업체들이 적극적으로 발빠르게 움직이지 않은 것이 큰 원인을 차지한다[58]. 더불어 GPL과 같은 라이센스 정책과 각 업체들의 입장에 대한 교통정리도 필요한 상황. 즉 PC OS의 리눅스 점유율이 윈도우를 역전하지 않는 이상 리눅스 지원이 우선시되거나 지원이 충실해질 일은 없을 것으로 전망된다.

반면 PC계열 이외의 SoC계열 디바이스들에 대한 지원 양상을 보면 오히려 리눅스 계열의 지원이 빠르면서도 충실한 경우가 많고[59] PC쪽에서 최근에 발전해온 전력관리 기능도 일찌감치 적용된 경우가 대부분이다. 즉 점유율이 높거나 혹은 문제가 되지 않을 경우 드라이버 지원이 빠를 것이라는 점은 가능성이 충분히 높은 이야기이다. 이는 SoC계열 디바이스들의 사업구조가 PC업체와는 상당히 다른 탓이 크다. 우선 SoC업체들은 스스로가 주도하여 디바이스 드라이버뿐만 아니라 OS커널을 자사 SoC에 맞춰 포팅하는 작업을 해야 하기 때문에 디바이스 드라이버 추가작업은 그 과정에서 자연스럽게 반영되기 마련이다. 또한 SoC내의 여러 주변장치들에 대한 라이센스 문제 역시 SoC 업체에서 주도적으로 풀 수 있으므로 그러한 구심점이 없는 PC리눅스에 비해 문제해결이 한결 수월한 경향이 있다.

다만 이렇게 만들어진 SoC계열 드라이버들은 커널에 기본적으로 포함되도록 업스트림까지 올라가는 경우가 잘 없고 디바이스 전용으로만 남는 경우가 많다. 리눅스 커널 드라이버는 커널이 업데이트되면 커널 드라이버도 같이 수정을 해 줘야 하는데 업스트림에 포함되지 않으면 드라이버 업데이트도 제품지원 종료와 함께 끊어지는게 다수. 게다가 커널과 드라이버가 같은 버전이라도 같은 옵션으로 컴파일되지 않으면 여기서 쓰던 드라이버를 저기서도 쓰고 이런게 안 된다. 리눅스가 SoC계열에 적용되는 사례는 폭발적으로 늘어나고 있지만 리눅스 확장성의 폭발적 확대 및 SoC계열에서의 제품과 운영체제의 분리까지 가기에는 아직까지 머나먼 일로 보인다.

8.7 복잡한 설정법

시스템 기본 프로그램조차 각 프로그램이 따로 개발되는 오픈소스 동네의 특성상 설정파일이 꼬이는 경우도 많은데, 이것도 리눅스의 매력을 반감시키는 것 중의 하나이다. 실제로 새로운 기능이 도입되거나, 다른 프로그램과의 충돌을 피하거나, 사용자에게 더 많은 선택지를 주거나, 다른 프로그램과의 호환성을 높이거나, 편의성을 높이려고 하거나, 사용자별로 설정을 다르게 하거나 하는 등의 이유로 한 프로그램에 설정 파일이 여러 개가 있는 경우도 많고 설정 파일의 위치가 바뀌는 경우도 많고 설정 파일의 형식이 바뀌는 경우도 많다.

예를 들어, A 프로그램의 설정을 고치기 위해 a라는 설정을 고쳤다고 해 보자.
이 경우 꼬일 수 있는 경우의 수는

  • a보다 우선시되는 a'라는 설정파일이 존재한다.[60]
  • a는 사실 과거 버전에만(혹은 새로운 버전에만) 사용되는 설정이다.
  • a가 원하는 부분을 건드리는 게 맞지만, 다른 설정도 같이 건드려줘야 한다.
  • A의 버그(!)로 설정이 적용이 안 된다(혹은 A가 뻗어버린다).
  • 사실 내가 쓰던 프로그램은 A가 아니고 B였다.
  • a가 A의 설정은 맞지만, 엉뚱한 부분만 설정이 바뀌었다.
  • A는 설정이 고쳐졌는데 같이 사용되는 B는 설정이 안 고쳐진다.
  • A는 종료될 때 설정파일을 덮어쓰고 종료된다.
  • A와 B를 같이 쓸 때 설정과 A와 C를 같이 쓸 때 설정이 다르다.[61]

등등...

특히, 여러 프로그램이 같은 설정파일을 공유할 때 이런 현상이 발생한다든지, 설정프로그램으로 수정해서 어느 설정파일이 건드려졌는지 모른다든지, 시스템 테마 관련해서 프로그램들이 죄다 따로 논다든지[62] 하면 답이 없는 상황이 온다. 그리고 시스템 전체의 설정파일이 모조리 수정되는 배포판 메이저 업데이트라도 할라치면...이럴땐 리눅스도 포맷이 진리. 아치 리눅스를 씁시다
간혹 설정을 고쳤는데 효과가 없다고 무시한 채로 제대로 된 방법을 찾는다고 이것저것 건드리다가 한참동안 잊어버린 뒤에야 해당 설정이 뒤늦게 갑툭튀하는 바람에 멘붕이 오는 경우도 있다(...)

물론 설정파일이 복잡해지는것은 유저의 자유도를 위한 것이 맞지만, 리눅스를 세팅하다보면 기본적인 세팅을 하는데도 GUI가 제대로 갖춰져 있지 않거나, 장치를 제대로 사용하기 위해서 아예 처음부터 설정파일을 건드려야 하는 경우도 생긴다. 더욱 큰 문제는, GUI를 통해서 설정하는 경우에도 이 프로그램과 저 프로그램이 건드리는 파일이 달라서 설정이 꼬여버리는 경우가 생긴다는 것이다. 위에서 설명한 테마 설정의 문제도 그렇고, 더 극단적인 예를 들자면, 무선인터넷을 설정한다고 할 때, 무선인터넷을 비활성화 할 수 있는 방법은 커널 드라이버 비활성화, ip 또는 iwconfig를 통한 장치 전원 차단(down 플래그), NetworkManager 설정파일 조작, NetworkManager 인터페이스 상에서 비활성화시키는 방법 등이 있는데, 한 6개월 전에 귀찮다고 비활성화시켜놓은 무선 인터넷을 다시 활성화시키려면 한숨부터 나오는 경우가 생기기도 한다...

이런 설정을 한 군데로 통합시켜 놓으면 좋으련만, 리눅스 상에서는 조합에 따라 다른 프로그램을 쓸 수도 있고 안 쓸수도 있기 때문에 신호나 출력이 거쳐가는 프로그램마다 각자 설정을 가지고 있는 경우가 많으며, 대형 배포판에서는 여러 사용자의 요구를 커버하기 위해 여러 가지 프로그램을 모아 놓게 된다. 물론 GUI 내에서만 얌전하게 놀면 해결될 문제일 수도 있지만, 앞에서도 말했듯 피치 못할 경우가 생기기도 하고 GUI 설정 프로그램도 일처리를 완벽하게 해 주지는 못하기 때문에 결국 설정 파일이 꼬이고 복잡해지는것은 어쩔 수 없는것. 게다가 어느정도 세팅을 하여 설정 프로그램이 수정된 뒤에 위에서도 말한 배포판 메이저 업데이트를 한번 하고 나면 헬게이트 확정(...)

9 주요 배포판

광대한 리눅스 배포판의 계보도. 원작은 2012년 12월에 업데이트가 끊겼지만 다른 기여자가 github에 옮겨서 계속 갱신하여 위키백과에 업로드 하는 중이다. GNU 라이센스 1.3버전.
리눅스 계열은 주로 패키지 관리자를 기준으로 묶는다. 배포판 특징상 불가능한 경우가 아니라면 서로 다른 패키지를 변환해서 사용할 수도 있다.

9.1 레드햇 계열

레드햇 계열이라고 부르는 것들로, 레드햇 리눅스를 시조로 파생된 배포판들이다. 패키지 관리자로 rpm을 사용하는 것이 특징이다. 한때 엄청난 인기를 끌었고 지금도 서버 시장에서는 대세. 얼마 없는 상용 리눅스 중에서도 지배적이다. 개인용으로는 데비안 계열에 자리를 많이 내주었다.

페도라 - 레드햇 엔터프라이즈 리눅스

9.2 데비안 계열

데비안에서 파생된 배포판들. 패키지 형식은 .deb이며, 패키지 관리자로 apt를 이용한다. 수많은 리눅스를 제치고 점유율 순위권에 드는 배포판이 몇 개씩 나오는 뼈대있는 계열이다.

데비안 GNU/리눅스

9.3 안드로이드 계열

모바일 운영체제인 안드로이드 계열 배포판들. 패키지 형식은 apk이다. 기존 리눅스와는 구조가 크게 달라서 다른 배포판과 함께 엮지 않는 경우도 많지만, 어쨌거나 리눅스로 본다면 현재 일반 사용자를 대상으로 한 리눅스 배포판 중에는 가장 메이저하다. 구글 또한 데스트탑 크롬OS 모바일 안드로이드 정책에서 벗어나 데스크탑도 안드로이드로 통합하려는 정책으로 전환되었다.또한 저가 소형PC나 테블릿형 PC들이 안드로이드를 탑재해서 출시되기도 한다. 향후에는 아마도 모든 데스트탑 리눅스들은 안드로이드로 대체되는 날이 올 가능성도 있다. 물론 지금처럼 생산성 떨어지는 UI는 아닐것이다.
이렇게 된다면 데스크탑 시장에서 리눅스 점유율이 상당히 비중이 늘어나게 될 것이다.

안드로이드

(이것들[70]운영 체제인지 커스텀 롬인지는 추가 바람)

9.4 슬랙웨어 계열

슬랙웨어에서 파생된 배포판들. 현재 명맥이 이어지는 배포판 중 가장 오래된 배포판이다.

슬랙웨어 리눅스

  • 오픈수세[71]
  • Slax - USB저장장치등에 설치하여 사용하는 것을 목적으로 제작된 리눅스이다. KDE를 데스크탑 환경으로 사용하며, 모든 프로그램이 모듈식으로 분리되어 있는 것이 특징이다. USB저장장치 내의 특정 디렉토리에 모듈 파일을 넣고 부팅시키기만 하면 알아서 활성화 된다.

9.5 기타 배포판

초보자가 접하기에는 결코 쉽지 않은 배포판이지만 어느정도 감을 익힌 사용자를 중수 이상의 실력자로 만들어 주는 배포판. 나름의 매력이 있어 점유율 순위에서는 항상 10위권을 찍는다. 패키지 관리자는 pacman이며, 패키지 형식은 특별한 확장자 없이 압축파일 확장자 tar.gz 혹은 tar.xz이다.
모든 패키지를 소스 컴파일로 설치하기 때문에 극한의 최적화가 가능하다. 대신 유명 배포판 중에는 극악의 난이도를 자랑한다. 아예 배포판이 아닌 LFS(Linux From Scratch)다음으로 난이도가 높다. 패키지 관리자는 portage이며, 소스컴파일 방식이라 패키지 파일 대신 ebuild 스크립트가 배포된다. 그리고 다른 배포판들이 발적화해서 제품을 내놓는 게 아니므로 최적화가 성공적으로 됐어도 다른 바이너리 기반 배포판보다 아주 살짝 빠른 정도에 그친다. 최적화를 위한 컴파일러 옵션 등을 전부 직접 입력해야 하며 디폴트 옵션으로 설치할 수도 있지만 이럴거면 시간낭비, 전기료 낭비일 뿐이다. 물론 임베디드용으로 개발해서 용량을 극한으로 쥐어짜야 한다던가 자기가 직접 개발한 CPU(!!)에 리눅스를 포팅하고 싶다거나 할 때는 이게 가장 편리한 배포판이다.
크롬 OS는 원래 우분투 기반으로 알려졌었는데, 현재에는 젠투 기반으로 개발되고 있다. 원래 최소한의 리눅스 위에 구글 크롬 하나만 올라가 있었으므로 패키지 파일은 .crx, 패키지 관리자는 크롬으로 볼 수 있었지만 운영체제의 크기를 키우고 이 부분에 대한 확장을 장려하는 쪽으로 방향을 잡으면서 패키지 관리자가 portage가 되었다.
크롬 OS를 기반으로 만들어진 클라우드와 데이터센터를 위한 Docker특화 경량 OS.
모듈화가 잘 되어 있어 용량이 작으면서도 프로그램의 설치가 간편하다. CD에 설치돼서 부팅시에 램 상에 운영체제를 통째로 얹어서 운용하는 방식이 기본(!)이다. 패키지 관리자는 pet-get이며 패키지 형식은 .pet이다. 다른 계열의 패키지도 사용가능하다.
VMware에서 만든 배포판이다. CoreOS와 마찬가지로 경량화를 강조하고 있으며, CentOS페도라같은 배포판에서 사용하는 패키지 매니저를 포크해온 tdnf를 사용하고 있다고 한다.

10 유사 리눅스?

Cygwin과 coLinux는 둘 다 마이크로소프트 윈도에서 GNU/리눅스와 그 유틸리티들을 쓰기 위한 방법이지만 구현 기술이 다르다. coLinux는 개조된 리눅스 커널 자체를 로드해 리눅스를 셋방살이(...)시킨 유저모드 리눅스이다. 반면 Cygwin은 윈도우 내에서 리눅스와 같은 환경을 조성해주는 툴이며 에뮬레이션은 들어있지 않다. coLinux에서는 리눅스 네이티브 앱을 실행하는 것이 가능하지만 Cygwin은 소스부터 새로 컴파일 해 줘야 한다.

  • Cygwin : [4]
  • coLinux : Cooperative Linux [5]

11 관련 항목

11.1 보면 도움되는 것들

12 리눅스가 항상 안전한 것은 아니다

보통 리눅스에는 웬만하면 바이러스에 감염되지 않는다라는 인식이 있는 편인데 대형사고가 터진 적이 있다. 전 세계에서 유명하기로 손꼽히는 리눅스 민트 홈페이지가 해킹당해서 조작된 iso파일이 등록되있던것 [72][73]. 그러므로 리눅스 배포판 iso를 다운받고 해시값까지 확인하는 것이 좋다.
  1. Linus' Minix의 줄임말이라는 설이 가장 유력하다. Linux Is Not UniX의 줄임말이라는 설도 있다. 그럼 Linus' Minix Is Not UniX로 생각하면 되겠네
  2. 영미권을 포함한 넷상에 자주 떠돌아다니는 말이지만, 원래 본인의 의도와는 거리가 있다. 98년도에 발언한 원문의 내용은 리눅스가 가치 없다는 말이 아니다. 정확히 하려던 말은 "리눅스가 예전보다 좋다고 다들 그러더라. 나도 훌륭한 건 아는데 당장 시간투자하기는 마땅찮고 지금 쓰는 SGI Unix 컴퓨터를 교체할 때가 되기 전까지는 별로 쓸 생각은 없다"정도이다. 같은 글에서 전반부엔 심지어 "유닉스를 좋은 물건이라고 생각하지는 않는다. 근데도 쓰고 있는 이유는 윈도나 맥보다 덜 나쁜 물건이라고 생각하기 때문이다"라는 말까지 했다.
  3. 왜 하필 펭귄이냐 하면 별다른 이유는 없고, 그저 개발자인 리누스 토르발스펭귄을 좋아해서라고..... 때는 93년 경, 토르발스가 오스트레일리아를 여행하던 때의 일이다. 토르발즈는 유닉스 모임에서 리눅스에 대해 말하려 가던 중에 작은 펭귄에게 물리게 된다. 그 일로 인해 토르발스가 펭귄을 좋아하게 되고 리눅스의 로고로 떠올리게 되었다고 한다. 하지만 이런 Tux도 모에선의 마수를 피해가진 못했다. #
  4. GNU 쪽 사람들은 리눅스는 커널일뿐이고, 이 커널을 가져다가 GNU 프로그램들을 올려 만든 운영체제는 GNU/Linux 라고 이야기하며 이런 명칭에 민감하게 반응하는 경우도 있다.
  5. 컴퓨터 역사상, 사람이 가장 많이 들어간, 가장 큰 프로젝트이다.
  6. 나중에 리누스가 BSD가 실패한 원인이 "이름에 쓸데없이 약자를 써서 그렇다."라고 말한 적이 있다는 걸 생각하면 참...
  7. LFS나 젠투, 아치리눅스 같은 경우에는 그 모든걸 유저가 선택해서 쓰는 걸 목표로 하고 있다. ㅎㄷㄷ
  8. 사실 리누스가 만든 것은 리눅스 커널 뿐이며 대부분의 OS의 구성된 내용은 자유소프트웨어 재단하에서 만들어진 소프트웨어로 채워져 있기 때문이다. 사실 커널이 OS의 핵심이기는 하지만 분량자체는 극히 일부일 뿐이다.
  9. 리눅스 커널에서의 수정은 드라이버의 포함 여부, 자원을 다루는 규칙의 선택, 최대 절전 모드 등의 기능 포함 여부 정도가 전부다. 커널 패치도 마찬가지. 따라서 변종이라고 해 봐야 일반적인 의미의 그런 변종은 아니다.
  10. 커널 컴파일 옵션을 보면 실행파일 형식도 두어가지(a.out과 ELF)가 나오는데, 이미 한참 예전에 바뀐 표준이라 큰 의미는 없다. 굳이 호환성을 신경써야 할 상황이라면 둘 다 체크해도 된다.
  11. 윈도 API는 메이저 업데이트마다 우수수 바뀌고 상용프로그램도 일정 기간마다 야!끝났다!하고 버그픽스 외엔 손을 놓아버리고 다음 버전으로 넘어가기 때문에 그런 인식이 강하다. 반면 리눅스는 API도 프로그램도 지속적으로 계속 발전돼나가기 때문에 전체가 유기적으로 움직여서 그런 느낌이 덜하다. 일반적으론 API가 업데이트되더라도 소스코드가 개방돼있는 이 동네 특성상 재컴파일만 하면 쓸 수 있으며, 그렇지 않으면 죽기 직전의 프로그램이라도 누군가가 새 라이브러리에 맞게 수정한 패치만 올려주면 연명가능. 우분투만 해도 메이저 버전마다 패키지가 따로 만들어져 나오는 걸 생각해 보자.
  12. 참고로 한번 설치하면 지속적으로 업데이트해 나가는 아치 리눅스같은경우, 어떤 라이브러리에 큰 수정이 있으면 그에 관련된 프로그램들이 동시에 우수수 업데이트되기도 한다. 그만큼 업데이트가 잦은 편이며 너무 업데이트를 드물게 해 주면 업데이트 한 방에 부팅 불가능한 상황이 오기도 한다(...)
  13. 사실 소스 상에 플랫폼 의존적인 부분이 존재하며, 이 부분이 준비되어 있는 플랫폼에 대해서만 작동한다.
  14. NetBSD 의 경우 공식적으로 지원되는 플랫폼만 따져도 57개이다. NetBSD 의 모토가 "Of course it runs NetBSD!" 이다.
  15. 플러그 앤 플레이와 비슷하다고 보면 된다. 같지는 않은 모양
  16. 이전에도 PS3 크랙 시도가 있긴 있었으나 이 사건을 빌미로 PS3 보안이 완전히 붕괴되었다고 봐야 한다. 해커들로서는 뭐가 오픈되었던 것이 다시 사라지는 것을 해킹의 대의명분으로 쓰기 참 좋기 때문. 참고로 이전에 PSN 해킹 대란이 원인이라 되어 있었는데, 이건 2011년 일이다.
  17. http://xbmc-korea.com/
  18. 이러한 GPL 전염성 때문에 내가 만들 걸 무료로 배포해야 된다고 하여 무료가 아니다 라고 주장하는 의견도 있다.
  19. 즉 이걸 다시 풀어서 말하자면, 윈도우가 유료로 팔리는 것은 곧 OS+기술지원+기타A/S 등을 함께 산다는 것을 의미한다. 이걸 산 유저들은 확실하게 보증된 품질 하에서, 충분한 기술지원과 여러가지 A/S를 그냥 받을 수 있다는 것. 애플의 경우 하드웨어+OS와 자사 소프트웨어+기본적 기술지원과 A/S 개념이다. (이쪽은 기타A/S는 애플케어로 빠지기 때문)
  20. 리눅스 세계에서 데스크탑 환경이란 일반적으로 윈도우 매니저+기본적인 프로그램들의 모음 정도를 의미한다.
  21. 심플하며 꼭 필요한 기능 위주로 제공
  22. 옵션이 많고 복잡하지만 거의 모든게 가능한 UI
  23. 물론, 윈도우 cmd 에서도 배치파일 만들어서 쓰면 가능하다.
  24. 반복을 위한 유일한 구문인 for문도 꽤나 기형적이고, continue나 break도 존재하지를 않아서 모든 반복문을 goto로 처리해야 한다!
  25. 물론 시간이 지날수록 나아지고 있는 건 분명한 사실이다. 그러나 현재까지도 확실하게 해결이 되었느냐고 하면 누구도 확답은 해줄 수 없는 것이 현실이다.
  26. carl9170 펌웨어어를 사용하라 나오는 USB랜카드도 막상 이 펌웨어를 얹어 주면 작동하지 않는 경우가 있다. 참고로 이 랜카드는 DWA-160A2로, 출시 후 3년도 넘은 모델이다.
  27. 다행히 이 경우는 포럼에 11.10버젼 기준으로 해결책이 나와 있다.
  28. 만일 리눅스를 출하시 기본 탑재하는 모델을 구입했다면 문제가 되지 않을 것이다.
  29. 사실 리눅스뿐만 아니라 어느 OS든간에 당연히 영어자료가 압도적으로 많다. 하지만 윈도우 같은 경우는 워낙 사용자가 많기 때문에 한국어 화자들의 정보만으로도 어지간한 것은 다 처리가 가능하다.
  30. i3, i5, i7 등
  31. Windows에서도 텔넷등 CLI환경으로의 원격접속을 지원하나 무엇보다 Windows의 경우 기본은 GUI이기 CLI모드에서 할수 있는 작업은 제한되어 있다. 따라서 CLI에서 작업을 해도 결국 GUI로 접속을 해야 하는 경우가 꼭 생긴다. 다만 리눅스는 대부분의 작업이 CLI에서 사용이 가능 하기 때문에 GUI는 필요가 없는 경우가 많다. 그래서 아예 설치시 GUI부분은 제외하고 설치하거나 설치후 GUI부분을 삭제하는 경우도 많다. GUI가 없는 환경은 서버성능이나 보안에 도움이된다. (한마디로 가볍다. 반면 윈도의 경우 GUI부분을 삭제하는 것 자체가 불가능 하다.)
  32. 이 때문에 리눅스 환경에서는 다른 프로그램 없이 바로 telnet 명령 입력하고 PC통신 연결 주소 입력하면 PC통신 화면이 바로 떴다. 애초에 PC통신 자체가 리눅스의 원본(?)인 유닉스의 터미널 환경을 사용하기 때문에 리눅스에서도 그대로 되는 것. PC통신 프로그램은 이 터미널 환경을 도스나 윈도우 환경에서도 쓸 수 있게 에뮬레이션 시켜주는 프로그램이다.
  33. 이전 문서에는 맥 OS도 프로그램 설치가 필요하다 적혀 있었는데 맥의 경우 Finder의 서버에 연결하기 기능으로 VNC 연결이 자체적으로 가능하다.
  34. VNC는 화면을 그대로 전송하는 방식인 반면 RDP는 화면 구성요소를 전송한 뒤 클라이언트에서 적절히 짜맞추는 방식이다. 비트맵과 벡터와도 비슷한 차이인데, 일장일단이 있기 때문에 자기에게 적절한 방법을 쓰는 것이 좋다.
  35. 왜 마소가 비록 과거 제닉스라는 유닉스 운영체제를 잠깐 만든적이 있긴 했다지만, 손도 때서 상관도 없는 유닉스 계열의 운영체제를 썼느냐 하면, 핫메일이 마소에 인수되기 전 부터 쓰고 있어서.. 핫메일은 원래 마이크로소프트에서 개발한게 아니라 기존에 있던 걸 인수한거다.
  36. 이것을 사용하면 유닉스 시스템과 삼바가 아닌 NFS 를 통해 연결이 가능하다. 세팅에 따라 차이가 지겠지만, 보통 테스트 결과를 보면 NFS 가 삼바보다 속도면에서 크게 빠른 경우가 많다.
  37. Command-line interface, 명령줄 사용자 환경, GUI와 대응되는 CUI라는 약자를 쓰기도 한다. 이때는 Command-line User Interface, Character User Interface(문자 사용자 환경), Console User Interface(조작판 사용자 환경)등을 의미한다. 모두 다 같은 의미.
  38. 예로,,, 어떤 드라이버가 없어서 안된다고 하면, Win 에서는 브라우져 열기 -> A 사이트 -> 다운로드탭 -> OS버젼 선택 -> 다운로드진행 -> 완료후 설치... 이 과정이 리눅스에선 1줄짜리 커맨드 명령어로 끝난다.
  39. OpenGL 하면 윈도우에서 게임할 때 몇번 본 사용자들은 DirectX 에 비해 좀 열등한 것으로 생각할지 모르겠지만, 사실 OpenGL 이 우월했고, DirectX 는 계속 그 뒤를 열심히 쫓아온 것이 진실이다. DirectX 신 버전에서 이것도 된다며 게이머들의 가슴을 설레게 하던 것 중에는 사실 OpenGL 에서 이미 한참 전에 구현이 되어있던 것도 많다. 예를 들어 다이렉트 X 10이후 지원되기 시작한 앰비언트 오클루젼 기술은 OpenGL 1.5를 가지고도 코드를 만들어 낼 수 있다. 현재도 전문적인 용도에서는 OpenGL 을 많이 사용하며, DirectX 가 뒤를 쫓고있는 중이다. 게임에서 DirectX 에 밀려버린 이유는, 아무래도 MS 가 뒤에서 막대한 돈을 쏟아부어 빠르게 개발한 것도 있고, OpenGL 에 비해 MS 의 DirectX 서포트가 훨씬 뛰어났던 것이 그 이유이다.(성능이 아무리 좋아봤자, 아무설명이나 예시없이 불친절하면 그것으로 만들어진 결과물도 좋지 않고, 결국 버림받는게 당연하다.)
  40. 둠3, 퀘이크3, 리턴 투 캐슬 울펜슈타인 등
  41. 다만 게임은 실행 파일만으로 즐길 수 없으므로 윈도우용 카피에서 실행 파일을 제외한 패키지 파일들(.pak)을 가져와야 한다.
  42. 밸브가 소스엔진을 포팅할때도 그래픽 카드 제조사들과 긴밀히 협조해서 드라이버 개선(특히 멀티스레딩 지원)을 동시에 진행했다고 한다.
  43. 그러나 커뮤니티와 지향점이 달라질 때는 불협화음이 발생하기도 한다는 단점도 있다. 기존에 가장 큰 구심점 역할을 하던 우분투도 삐딱선을 타면서 욕을 엄청 먹고 있는 사례가 있다. 더욱이 구글은 기존의 리눅스 생태계보다 안드로이드에 더 관심이 큰게 함정
  44. 쉘스크립트의 경우 완전한 호환을 원하는 스크립트는 #! /bin/sh로 시작하고, 특정 쉘을 통해 실행되기를 원하면 #! /bin/(쉘의 이름)으로 시작하는 식이다. 물론 전자의 경우에는 제한된 기능만을 사용할 수 있다.
  45. 단 젠투, 아치, 데비안 sid등 특별한 release주기 없이 rolling-release를 사용하는 배포판은 모든 프로그램과 구성요소가 최신버전으로 유지된다. 이 경우 반대로 시스템이 불안정해지는 역효과가 나타난다.
  46. 여담으로 데비안 계열이 유명해진건 의존성 처리를 안해주던 기존 패키지 관리 기능(대표적으로 레드헷의 rpm과 기존 슬랙웨어의 tar 묶음 패키지 설치 방식)에 의존성 기능을 넣었기 때문이다.
  47. 이와 관련해 리눅스 라이브러리 중 하나인 zlib에서 있던 일이 대표적인데 이 프로그램은 공용 라이브러리를 제공하지 않고 정적 라이브러리(static, 윈도우 방식에 가깝다)로 배포되었는데 zip알고리즘을 다루기 위해 전역적으로 쓰던 라이브러리에 결함이 있다는게 밝혀지고 사용자들은 문제가 된 zlib를 업데이트 하기 위해 시스템 내부의 zlib를 사용하는 모든 패키지를 다시 컴파일 해야했다. 공용 라이브러리를 쓰면 모든 패키지를 다시 컴파일 할 동안 문제가된 라이브러리만 기존 버전과 호환성을 유지한채로 다시 빌드하면 이런 문제가 해결된다
  48. 윈도우 같은 경우는 각 어플리케이션마다 설치 방법이 제 각각이지만 리눅스 같은 경우는 저장소에서 설치할 경우 상용이던지 비상용 오픈소스이던지 모든 어플리케이션이 동일한 방법으로 설치된다. 안드로이드나 아이폰을 생각해 보자
  49. 이 역시 마찬가지로 안드로이드나 아이폰을 생각해 보자
  50. 안드로이드 구글의 수익은 구글플레이를 통한 거래의 수수료에서 나오지만 안드로이드 기술 자체는 엄연한 구글 소유다. 제조사는 안드로이드 인증을 받기 위해선 구글로 부터 직접 기기 인증 요청을 해야하고 이 과정은 결코 '무료'가 아니다. 이는 오픈소스 라이센스를 가진 프로그램들이 주로 취하는 유료 정책 중 하나이기도 하다. MySQL은 오픈소스부분만 포함한 커뮤니티버전은 무료이고 오라클에서 수정한 부분을 포함한 버전만 유료에 상용 라이센스이다. 다만 오라클이 수정한 부분을 사용함으로써 얻는 이득은 미비하고 유료 버전을 구매하는 이유는 레드헷이 그러하듯 오라클로부터 직접 고객 지원을 받을 수 있기 때문이다. 여담으로 현재 대부분의 리눅스 배포판은 MySQL대신 커뮤니티 버전을 fork한 MariaDB로 대체했다. JAVA의 가장 널리 쓰이는 JVM인 HotSpotVM은 OpenJDK로 오픈 소스로 제공되지만 실상은 오라클이 소유한 엄연한 '상용 소프트웨어'이다. 또한 자바 기술 자체는 유료가 아니다. 안드로이드의 달빅 가상머신이 이미 자바 기술 침해로 오라클에게 고소당한 적이있다(물론 인정은 안됨). 즉 자바도 엄연한 상용 기술이다. 다만 개발자들이 그렇게 느끼지 못할 뿐인데 이는 오라클에 합병되기전 썬 마이크로시스템즈가 가진 자바 라이센스 정책에 의해 그렇게 느껴질 뿐이다.
  51. 실제로 플래시 플레이어의 소스가 JAVA와 같이 자유 소프트웨어로 공개되었다면 플래시 기술은 사장되지 않고 HTML기술 안에 통합되는 식으로 색다른 발전이 이뤄졌을 것이다. 결국 어도비가 플래시 시장을 축소하게 된거도 스마트폰 시대가 열리며 급격히 바뀌는 시장의 요구에 제때 대응하지 못한 것에 대한 자업 자득이기도 하다.
  52. 단, chromium은 오픈소스이다.
  53. 문서 전체에 걸쳐 여러번 언급되는 내용이지만, 다시 적자면 안드로이드는 일반적인 리눅스배포판과는 별개로 취급되는 경우도 많다. 우분투는 데스크탑에서도 가능하면 골치 아픈 부분을 사용자로부터 숨기려는 노력을 하는 건지 gksu나 시냅틱과 같은 관리에 필수적인 소프트웨어를 줄여나가고 있는데, 잘 되는 것 같지는 않다. gksu와 시냅틱을 까는건 우분투를 깔고 필수적으로 제일 처음 하는 일일 정도. 우분투 터치에서도 실상 제대로 된 관리 작업을 하려면 결국은 터미널 작업을 해야 할 확률이 높다.
  54. 비터치 PC 환경의 인터페이스 직관성 문제로 큰 악평을 받은 Windows 8의 부진과, 이를 일부 개선했음에도 시장으로부터 외면받은 Windows 8.1의 사례를 떠올려 보자. GUI의 직관성 문제로도 이런 사태가 일어나는데, CUI 인터페이스라면...
  55. NVIDIA
  56. 참고로 NVIDIA에서 아무런 도움도 받지 않고 개발했다고 한다.
  57. 리누스 토르발즈가 NVIDIA에 가운데손가락을 날린 일이 이쪽 방면의 전설적 사례이다.(...) # 리눅스 오픈소스에 참여할 경우 오픈소스를 가져다 쓰는 이득을 최소한의 코드 오픈으로 환원해 주는 관계가 불문률인데 엔비디아의 경우 그러한 부분을 좀 심하게 무시해 왔기 때문에 벌어졌던 일.
  58. 칩셋스펙을 공개하지 않는 이상 관련 작업은 칩셋 제조사에서 직접 수행해야만 한다.
  59. 윈도우 계열이 SoC에서 지원 범위가 상대적으로 좁은 이유는 PC에 비해 훨씬 다종다양한 SoC제품군들에 대한 지원을 일일히 해줄 수 없다는 점이 크게 작용한다.
  60. 컴퓨터 전체 설정보다 우선시되는 사용자별 설정이라든지, 다른 프로그램과 공유되는 설정이 따로 있다든지
  61. 대표적인 예로, Conky의 투명 배경 설정은 정말 윈도 매니저가 다르면 하나하나 다 실험해 봐야되는걸로 악명높다
  62. 이러면 진짜 꼴뵈기 싫어진다. 근데 프로그램 기본 테마 설정에 가장 많이 쓰이는 Qt(KDE쪽)와 gtk+(Gnome쪽)조차도, 아니, gtk2+ 와 gtk3+ 조차도(KDE쪽은 확인바람) 서로 테마 설정파일이 통일이 안 되어 있어 이 부분에 신경 안 쓰고 프로그램을 자꾸 설치하고 테마를 바꾸다보면 어느새 쉽게 이런 진풍경이 벌어진다(...)
  63. 놀랍게도 윗동네에서 만든 물건이라 하고 그네들이 페도라 7을 이리저리 마개조 한 물건이라 읽는다(…). 윗동네에서 만들었기에 GPL같은 듣보잡은 다 날려버렸다고 한다 레드햇 혹은 페도라 프로젝트의 고소가 필요합니다. 미하일(Mikhail)이라는 러시아 유학생이 자신의 블로그에 올리면서 알려졌다. 윗동네치고 디자인이 괜찮다. 그거야 베낀거니까 국내에서 이것을 다운로드, 설치, 배포 등 붉은별과 관련된 행동을 하는 것이 불법은 아니다. 하지만 감시용 코드가 내장되어있다. 다만 사용자의 행동이나 접속 프로그램등을 감시하는 건 아니고 파일에 워터마크를 삽입해 사용자가 누구인지를 구분하는 정도라고 한다.
  64. 참고로 "알색맞추기"와 "원자맞추기"란 정체불명의 게임과 장기 게임, 심지어 지뢰찾기도 있다!
  65. 붉은별이 레드햇 계열의 유저친화 OS인 페도라를 기반으로 하였고, 하모니카가 데비안 계열의 유저친화 OS인 민트를 기반으로 하였다는 점을 생각하면 정말 비슷하다(...) 그리고 레드햇과 데비안은 리눅스 진영에서 가장 뼈대있는 양대 명문가이기도 하다. 물론 대한민국 정부는 북한처럼 GPL 라이센스를 씹는 짓은 하지 않는다.
  66. 정부에서 주도해서 만들어진 개방형OS, 미래창조과학부와 한국정보통신산업진흥원이 2억원 규모의 예산을 투입해서 제작했다고 하는데... 정작 내용을 보면 최적화+리눅스 민트 Mate 버전의 한글화정도이다. 대체 어떻게 하면 한글화에 2억원이 까지드는가요? 기본버전과 UI개선버전이 존재하며 일부 은행에서는 인터넷 뱅킹도 가능하다. 대체로 사용하기에는 좋고 윈도에 익숙한 사용자도 쉽게 적응할 수 있다는 평이 많다. 다만 이쪽은 리눅스 민트 자체의 특징이라서 하모니카만의 특징이라고 하기엔 뭐하다. 그래도 나름의 의의는 있는데, 정부가 MS 윈도 위주의 전산화에서 탈피하려는 척이라도 하였다는 것이다. 즉 정부가 국민에게 HWP, 액티브X를 강요하는 환경이 조금이라도 개선될 여지가 생겼다. 그리고 리눅스 민트가 정부에 의해 선택된 덕에, 오리지널 민트 유저들 역시도 한글화의 덕을 간접적으로 누릴 수 있게 되었다. 하모니카에 대한 평을 요약하자면, "전체적으로 의도도, 결과도 다 괜찮은데, 한글화 하시다가 회식을 조금 자주하셨네요?"라고 할 수 있다. 하지만 조금만 생각해 보면 이런 비판은 지나치다. '정부에서 하는 일인데 오픈소스니까 돈은 안 드리겠습니다. 재능기부하시죠? 데헷'이라고 할 수도 없고, 되려 돈 안 썻으면 당당하게 열정 페이 계산법에 이름을 올리고 정부가 개발자 착취한다고, 혹은 우리 세금 걷어서 어디다 쓰고 오픈소스 프로젝트에 무임승차하냐며 욕을 죽도록 먹었을 것이다. 소프트웨어 인력에 투입하는 유지보수까지 고려한 인건비와 서버유지비용 등을 고려하면 2억이란 돈이 잘 쓰인 것이 맞다. 정부과제 총액이 2억이면 작은 과제에 속한다. 특히나 국방부과제는 더 그렇다. 국방부가 차지하는 예산 비중과 특정 유료플랫폼에 종속적이지 않은 공공 서비스의 제공이라는 사안의 중요성을 생각해보면 할 맘 없다고 욕먹어도 쌀 예산 책정이다.
  67. 현재는 지원이 완전히 끊어졌다. 지금 보면 이 리눅스는 4년 전에 나오고, 지원도 완전히 끊어져 있는 우분투를 수정한 것이다.
  68. 백트랙이나, 칼리 리눅스 처럼, 침투 테스트할 때 사용하라고 있는 리눅스이다.
  69. 라즈베리파이 + 데비안
  70. 안드로이드를 제외하고
  71. 원래 S.U.S.E였다가 SuSe로 바뀌었고, 다시 openSUSE로 이름이 바뀌었다. 이 쪽은 유럽이 본진인지라 유럽에서 흥하고 있다. 한국에서도 우분투와 CentOS가 널리 알려지기 이전에는 인지도가 있었다. 처음에는 슬랙웨어 기반이었지만 이제는 독자적인 길을 가고 있다고 봐야 한다.
  72. https://nakedsecurity.sophos.com/2016/02/22/worlds-biggest-linux-distro-infected-with-malware/
  73. http://blog.linuxmint.com/?p=2994