리눅스

리눅스의 마스코트 턱스(Tux)

리눅스(Linux)는 유닉스 계열이고 POSIX 호환인 오픈 소스 커널 중 하나이자 그 커널을 사용하는 운영 체제를 말하기도 한다.

BSD 계열이나 윈도우와는 달리 커널만 개발하고, 리눅스 배포판 개발자들이 여기에 다른 소프트웨어를 추가하여 배포판을 만든다. 커널 개발은 GNU(GNU Is Not UNIX) 프로젝트와는 관계없는 별개의 프로젝트로 리눅스 창시자 리누스 토르발스와 GNU쪽 리처드 스톨만오픈 소스에 대한 견해 차이로 사이도 좋지 않다. 토르발스는 유료 판매 및 비오픈소스 소프트웨어에도 긍정적인 반면 스톨만은 모든 유료 및 비오픈소스 소프트웨어를 싫어하기 때문이다.

GNU쪽에서는 자신들의 소프트웨어가 리눅스 배포판에 포함되는 경우가 많으므로 GNU/Linux라고 부르지만 리누스 토르발스를 포함하여 리눅스 커널 개발자들은 리눅스라고만 부른다.

최신 커널 버전은 여기서 확인할 수 있다.

1 역사[편집]

1.1 초기[편집]

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

그래 놓고서 리누스는 93년도에 "이름 빼고, BSD가 아니라 리눅스를 써야 하는 이유가 있나요?"라는 질문에, "아니, 그것뿐입니다. 이름이 멋지다는 거. 우리는 모두에게 어필할 수 있는 이름을 지어내기 위해 열심히 노력했고 그 덕을 많이 보고 있어요. 386BSD는 이름에 쓸데없이 약자랑 숫자를 넣는 실수를 해서 사용자들이 겁을 먹고 피하고 있어요." 라는 쌩구라 농담을 하기도 했다.(...) [1]

1996년 마스코트 턱스(Tux)가 만들어졌다. 왜 펭귄이 리눅스의 마스코트인고 하니, 어느 동물원에서 리누스가 "존나 거대하고 시속 100마일 이상으로 달리고 펭귀니티스라는 희귀병을 앓는 펭귄에게 공격당한 후부터 펭귄을 좋아하게 되었다 카더라M???"...라는 이야기가 있지만, 이건 사실이 아니고, 그냥 리누스가 좋아하는 동물이라고 한다. 게다가 펭귄은 전형적인 기업 이미지와는 백만광년 정도 떨어진 동물이라는 판단도 한몫했다고.[2]

1.2 발전[편집]

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

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

1.3 현재[편집]

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

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

2 특징[편집]

2.1 오픈 소스[편집]

리눅스 커널은 GPL v2 라이선스 하에 소스 코드가 공개되어 있다. 소스 공개는 많은 잉여개발자들의 참여를 가능케 했고, 이는 리눅스가 지금의 위치까지 성장하게 된 큰 힘이 되었다.

2.2 배포판[편집]

리눅스의 배포판

리눅스 커널과 시스템 애플리케이션(init, systemd, udev, syslogd, etc..), 그 외 일반 유저 애플리케이션들을 묶어서 배포하는 형태. 리눅스는 커널일 뿐이다. 배포판들은 커널 위에 이것저것을 얹어서 실사용이 가능한 상태로 만들어서 주는 것이라고 할 수 있다. 리눅스 시스템이 동작하기 위해서 설치해야 하는 것들은 기본적인 시스템 애플리케이션에서 미들웨어, 사용자가 직접 다루는 UI 등 수백 개에 달한다. 이를 사용자가 하나하나 선택/컴파일한다고 생각해보라. 그럴 수는 없기에 배포판이 등장했던 것이다.

배포판 시스템은 리눅스를 처음 접하는 유저들에게 적지 않은 혼란을 줄 때가 있다. "아니, 나는 리눅스라는 운영체제를 써보고 싶었을 뿐인데, 우분투는 또 뭐고, 페도라는 또 뭐고, …에라 모르겠다!" 와 같은 생각을 하는 것이다. "왜 리눅스라는 운영체제가 수백 개가 있느냐"라고 질문하는 경우도 있었다. 리눅스 자체는 커널일 뿐이다. 리눅스 커널 기반의 운영체제들이 많다고 생각하면 되겠다. 이런 현상이 나타나는 근본적 이유는 리눅스가 오픈 소스이기 때문이다.기존에 사용하고 있던 배포판에 마음에 들지 않는 부분이 있으며, 자신이 새로운 배포판을 개발할 역량이 있다면 누구나 마음대로 새로운 배포판을 만들어낼 수 있는 것이다. 그러다보니 우분투 기반의 배포판만 수십~수백 개에 달한다.(...)

배포판 선택에 혼란을 겪는 사용자라면, 우분투리눅스 민트 등을 선택하여 감을 먼저 익히는 것이 좋다. 우분투와 민트가 국내/국외 커뮤니티 지원이 빠방하기 때문이다. 우분투나 민트를 사용하면서 리눅스에 익숙해지면, 그 후에 자신의 입맛에 따라 다른 배포판으로 갈아타면 된다.

2.2.1 대표적인 배포판들[편집]

  • 데비안 계열
  • 레드햇 계열
    • CentOS - 레드햇의 일반 사용자용 버전. 지금은 레드햇과 많이 달라졌다.
    • RHEL
    • 페도라
  • 안드로이드 계열
    • 안드로이드 리눅스 커널 기반이지만, 일반적 GNU 라이브러리를 사용하지 않아 다른 GNU/Linux 와는 ABI 가 호환되지 않는다. 에뮬레이터를 사용해야 터미널에 접근 가능하다.
    • Phoenix OS 피닉스 OS
  • 슬랙웨어
  • 기타
    • Linux From Scratch (배포판보다는 매뉴얼에 가까운 물건. 완전한 바닥에서 출발해서 시스템을 쌓아올리는 방법을 담고 있다.)
    • 아치 리눅스 - LFS와 비슷한 철학을 가지고 있지만, LFS만큼 하드코어하지는 않고, 패키지 관리자를 포함한 기본적인 시스템을 구성해서 준다. 롤링 릴리스 배포판.
    • 젠투 리눅스 (소스 컴파일 식 배포판. GNU/Linux 혹은 µClibc/Linux 두 설정 중 하나로 시스템 구성이 가능하다.)

2.3 무한한 선택 가능성[편집]

리눅스 사용자는 자신이 원하는 환경을 구축하기 위하여 운영체제의 거의 모든 요소를 취사선택할 수 있다. 정말로. 일반 데스크탑 사용자의 입장에서 예를 들자면, 사용 가능한 데스크탑 환경이 매우 다양하다. GNOME, KDE, Cinnamon, MATE, Xfce, LXDE 등의 완전한 데스크탑 환경을 선택할 수 있을 뿐 아니라, Openbox나 Awesome, Xmonad 등 단일 창 관리자를 데스크탑 환경으로 사용하는 것도 가능하다. 데스크톱 환경을 여러 개 설치하여 사용하는 것도 가능하다. 더 깊이 들어가자면 NetworkManager이나 Wicd같은 시스템 관리 도구부터 부트로더, init 시스템까지 마음대로 선택해서 변경할 수 있다!

리눅스라는 커널이 굉장히 작은 기반을 마련해 주고, 사용자는 그 커널 위에 자신이 원하는 환경을 구축할 수 있는 것이다. [3] 이와 같은 선택 가능성이 극단적으로 드러나는 것이 바로 Linux From Scratch. 말 그대로 커널과 GNU 유틸부터 모든 것을 자신이 컴파일하여 밑바닥부터 리눅스 시스템을 짜는 것이다. 자신의 시스템의 구성 요소를 사용자가 정말 하나하나 선택할 수 있다. 물론 LFS를 설치하고 사용 가능한 리눅스 시스템을 구축하는 데에 드는 시간은 매우 길다.

2.4 중독성[편집]

리눅스의 중독성을 매우 적절하게 보여주는 XKCD 456화 Cautionary.

진입장벽이 없는 것은 아니지만, 일단 리눅스 환경에 익숙해지면 리눅스는 매우 훌륭한 장난감으로 변신한다. 위에서 말했듯, 시스템의 거의 모든 요소를 사용자가 선택할 수 있다는 게 마치 레고처럼 이것저것 선택하는 재미를 제공한다. 또한 명령줄, 그러니까 CLI 사용에 익숙해지면 GUI 사용을 귀찮아하고 웬만한 작업에 명령을 직접 치거나, 아예 쉘 스크립트를 작성하고 있는 자신을 발견할 수 있을 것이다.

특히 윈도우에서 건너온 사용자라면 이 중독성이 강렬하게 다가온다. 윈도우는 사용자에게 내부 작동 방식을 보여주는 데에 인색한 반면, 리눅스는 사용자에게 모든 것을 보여주기 때문이다. 게다가 윈도우나 에서는 마음에 들지 않는 부분이 있어도 그것을 고치는데 한계가 있는 반면, 리눅스에서는 그걸 어떻게든 해결하거나 수정할 방법이 존재하는 경우가 대부분이다. 정말 희한하게도, 리눅스를 사용하다보면 문제가 생겨 트러블슈팅을 하는 것을 매우 재미있게 느끼고 있는 자신을 발견하게 되는 경우가 많다. 훌륭한 M

3 대중화 방해 요인[편집]

3.1 하드웨어 드라이버 문제[편집]

리눅스는 커널에 기본적으로 모든 드라이버가 탑재되어 있다. 이에 특히 최신 하드웨어를 사용하는 경우, 구형 커널을 사용하는 배포판에서 문제가 발생할 수 있다. 이럴 경우, 커널을 직접 빌드하거나, 아치(만자로) 리눅스 같은 배포판을 사용하는 것을 권장한다. 윈도우에 비해 하드웨어 드라이버의 지원이 부족한데, 특히 터치바 이후의 맥북, 서피스 랩톱 같은 경우 드라이버가 탑재되어 있지 않아 사용하려면 커널 패치를 해야하는 등 복잡한 과정을 거쳐야한다. 리눅스 사용자라면 특이한 하드웨어는 피하는게 좋다. 이에 캐노니컬과 레드햇에서는 자신들의 배포판이 잘 돌아가는지 테스트한 리스트를 제공하는데, [4], [5]. 여기 올라와 있는 하드웨어들은 호환성 문제가 생길 가능성이 낮으니, 리눅스가 지원하는 하드웨어에 대해 잘 모른다면 이 리스트를 확인해 보고 구매를 결정하는 것도 좋다.

CPU는 AMD, 인텔 양사 잘 돌아가나, GPU 의 경우 가리는 것이 있다. AMD와 인텔의 경우 오픈소스로 드라이버를 제공해 문제가 낮으나, Nvidia 는 상용 드라이버로 제공해 종종 문제가 생긴다. 예를 들어 리눅스의 최신 디스플레이 프로토콜인 Wayland 를 지원을 독자 규격으로 해 그놈, KDE를 제외하고는 사용을 못한다. 혹여 X 서버를 사용한다 해도 몇몇 관련 커맨드는 듣질 않는 문제가 있다. 허나 AMD 의 경우 AMF (하드웨어 가속 인코딩 기능) 같은, 윈도우는 지원하나 리눅스를 지원 안하는 기능이 몇몇 있으나, Nvidia의 경우 윈도우 처럼 대부분의 기능을 사용할 수 있다는 장점이 있다.

3.2 쉽지 않은 문제 해결[편집]

Windows의 경우 문제가 생기면 인터넷에서 GUI로 가능한 쉬운 방식의 해결법을 찾을 수 있다. 하지만 GNU/Linux 배포판을 사용하다 발생하는 문제는 해결이 어려운 경우가 많고 기본적인 터미널 사용법은 알아야 한다. 일반인들에겐 마우스로 클릭하면 (거의) 모든 문제를 해결할 수 있는 Windows나 macOS (구 OS X, Mac OS) 보다 더 편해보이지 않을것이다. 비록 Ubuntu GNU/Linux 등의 배포판에서는 쉽게 마우스 클릭으로도 여러 기능들을 제공하지만, 이 또한 기초적인 기능에만 그치며 사용이 어려운 배포판이 많다.

4 대체 가능한 프로그램들[편집]

  • MS Office - Libre Office, OpenOffice.org. 아웃룩 기능은 Mozilla Thunderbird 혹은 Evolution 등의 메일 클라이언트가 있다.
  • 웹브라우저 - Firefox, Google chrome
  • Adobe photoshop - Gimp
  • Visual Studio - Vim, Emacs, gnome builder, kdevelop, Eclipse
  • 와인 - 윈도우의 프로그램을 리눅스에서 돌아가게 해주는 프로그램이다.

5 같이 보기[편집]

6 각주

  1. 해당 포럼 포스트
  2. The Story Behind Tux the Penguin
  3. 물론 배포판을 선택하면 그 변경의 폭이 약간 제한되지만, 관리도구나 데스크탑 환경, 부트로더 변경을 지원하지 않는 배포판은 없다. 다만 위에서 설명한 init 시스템 선택은 Linux From Scratch를 사용하지 않은 이상 쉬운 일은 아니다.
  4. https://catalog.redhat.com/hardware
  5. https://certification.ubuntu.com/