Linux (r1판)

편집일시 :

||
[ 펼치기 · 접기 ]




파일:Linux 로고(글자).png

개발리누스 토르발스
플랫폼AMD64, IA-32, ARM, MIPS, PowerPC, SPARC(64bit), RISC-V
개발 언어C언어, 어셈블리어 및 기타 언어
커널 홈페이지파일:Linux 로고(글자).png[[파일:Linux 로고(글자) 화이트.svg

1. 개요
2. 역사
2.1. 초기
2.2. 성장
2.3. 현재
3. 특징
3.1. 다양한 배포판
3.2. 다양한 플랫폼
3.3. 명칭 논쟁
4. 라이선스
5. 보안
6. 커널
7. GUI 환경
7.1. 구성 요소
7.2. 데스크톱 환경
7.3. UI / UX 툴킷
8. 주요 용도
8.1. 데스크톱 및 노트북
8.2. 서버 용도
8.3. 모바일 용도
8.4. 임베디드 기기 용도
8.5. 게임 용도
8.6. VFX
9. 리눅스 시장 점유율 현황
10. 특징
10.1. 배포자의 다양화
10.1.1. 데스크톱 환경
10.1.2. 커맨드 셸
10.2. 애플리케이션 설치/관리 방법
10.2.1. 의존성 관리
10.3. 상용 프로그램
10.4. 명령어 및 텍스트 사용환경
10.5. 다국어 지원
10.6. 디바이스 드라이버 지원
10.7. 설정법
11. 배포판
12. 명령어
13. macOS와의 차이
14. Windows 대체 소프트웨어 일람
14.1. Windows용 소프트웨어 실행
15. 관련 문서




1. 개요[편집]


컴퓨터 OS 커널의 일종인 리눅스 커널, 또는 리눅스 커널을 사용하는 운영체제를 가리키는 말이기도 하다. GNU 쪽 사람들은 리눅스는 커널일 뿐이고, 이 커널을 가져다가 GNU 프로그램들을 올려 만든 운영체제는 GNU/Linux라고 이야기하며 이런 명칭에 민감하게 반응하는 경우도 있다. 소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어다. 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트다. 모바일 운영체제로 유명한 안드로이드 역시 리눅스 커널을 가져다 쓰고 있다.

Linux라는 이름은 Linus' *nix, 리누스의 유닉스라는 뜻으로 지어졌다. *nix는 Unix 계열 운영체제라는 뜻이다. 나중에 Linux Is Not UniX라는 재귀약자를 새로 만들어냈다.

리눅스 재단에 따르면 퍼블릭 클라우드 컴퓨팅 워크로드의 90%, 스마트폰의 82%, 임베디드 기기의 62%, 슈퍼 컴퓨터 시장의 99%가 리눅스로 작동한다.[1]

2007년부터 2019년 사이의 리눅스 커널 참여자 중 회사순위를 보면 1위 인텔 (10.01%), 2위 레드햇 (8.90%), 3위 IBM (3.79%), 4위 SUSE (3.49%), 5위 Linaro (3.17%), 6위 구글 (2.79%), 7위 삼성전자 (2.58%), 8위 AMD (2.28%), 9위 르네사스 (1.99%), 10위 텍사스 인스트루먼트 (1.78%), 11위 오라클 (1.70%), 12위 브로드컴 (1.23%), 13위 화웨이 (1.2%), 14위 Mellanox (1.19%), 15위 NXP (1.18%), 16위 ARM (0.98%), 17위 리눅스 재단 (0.78%) 등으로 모두 반도체/통신/IT/시스템 업체임을 알 수 있다.[2]

리눅스 재단 공식 웹사이트


2. 역사[편집]



2.1. 초기[편집]


1991년 당시 핀란드 헬싱키 공대 대학생이었던 리누스 토르발스미닉스 OS를 사용하는 컴퓨터에서 작업해서 만들었다. 참고 기사 미닉스를 쓰면서 마음에 안 드는 점이 있을 때마다 커널에 여러 가지 기능을 추가했고, 어느새 운영체제에 가까울 정도로 기능이 늘어났다.

리누스는 이 커널을 처음 릴리스 할 때, 무료이니 'Free', 매니아이니 'Freak', 그리고 Unix와 유사하니 'x'를 조합해 'Freax'라고 부르길 원했다고 한다. 그러나 FTP 서버에 소스 파일을 업로드해줬던 아리 렘케는 차라리 리누스가 개발했으니 '리눅스'라고 부르는 게 낫겠다 싶어 리누스의 허락 없이(...) 이름을 '리눅스'로 바꿨고, 리누스도 이 이름이 마음에 들어 새 운영체제의 이름은 리눅스로 확정됐다. 나중에 리누스 토르발스는 BSD OS가 실패한 원인이 "이름에 쓸데없이 약자를 써서 그렇다."라고 말한 적이 있다.


2.2. 성장[편집]


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

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


2.3. 현재[편집]


데스크톱/랩톱 용도뿐만 아니라 웹 서버, 클라우드 컴퓨팅, 모바일 기기, 임베디드 기기 등 여러 분야에서 폭넓게 사용되고 있다.

반도체 회사 및 레드햇 등 리눅스 운영체제 배포자들이 주로 리눅스 커널에 참여하고 있다. 모바일 시장에서 리눅스 커널을 쓰는 안드로이드의 위상이야 더 말할 필요가 없을 정도이다.

Microsoft Windows 운영체제에서는 리눅스 커널을 탑재한 WSL(Windows Subsystem for Linux)을 포함시켜 리눅스 환경을 지원하고 있다.[4] 리눅스에서도 와인 등을 통해 Windows용 소프트웨어를 실행할 수 있다.

3. 특징[편집]



3.1. 다양한 배포판[편집]


OS의 핵심 기술이 리눅스 커널이고 동일 한 리눅스 커널을 사용하는 수많은 배포자들이 있다.

모든 소스가 공개되어 있다 보니 같은 역할을 하는 프로그램이라도 편리성을 지향하는 프로그램, 속도를 지향하는 프로그램, 확장성을 지향하는 프로그램, 가벼움을 지향하는 프로그램 등 여러 선택지가 존재하기 때문. 쉽게 이야기 하면 '종자'(감자 혹은 오렌지)와 '종자 개량' 그리고 그 '종자'를 이용해 재배한 작물을 활용한 '완제품'(감자칩 혹은 오렌지음료류)을 생각하면 쉽다.

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

리눅스에 입문하는 엔드 유저는 배포판(벤더)들이 다양하다고 걱정할 필요가 없고 우분투페도라, 데비안, 만자로등의 사용자 친화적 배포판을 사용하면 된다. USB나 SSD로 여러 배포판의 리눅스 OS를 설치없이 테스트 해볼 수 있는 장점도 있다.

거기에다 공개되어 있는 커널 소스와 기타 오픈소스 프로그램들을 마음대로 가져다 자신만의 리눅스 배포판을 만들어 브랜딩이 가능하다. 그래서 모든 리눅스 배포판의 개수를 집계한다는 것은 불가능 하나, 어느 정도 공개적으로 배포되어지거나 인지도가 있는 배포판을 연대표(타임라인)식으로 공개한 GNU/Linux 배포타임라인에 따르면 약 450여개의 배포판이 있다고 전해 진다.# 다만 해당 자료는 2013년까지의 내용만 있기에 2020년대에 들어서면 더 많아졌을 가능성이 있다. 리눅스 배포판의 인기순위를 알고 싶다면 리눅스배포판 랭킹사이트인 디스트리뷰션닷컴#을 참조하면 된다.


프로그래머를 위한 플랫폼이기도 하다. 리눅스와 CLI 환경 자체가 간단한 프로그래밍 언어를 이용해서 처리할 수 있는 수많은 과제들을 제공해주는 소스다. 그래서 이들은 GUI에서 간단히 클릭으로 끝낼 수 있는데도 CLI 셸을 통해서 명령을 내려야 직성이 풀리고 한번 명령 내리는 것으로 끝나는 것들도 굳이 셸 스크립트 혹은 다른 프로그래밍 언어를 이용해서 만든다. GUI 애플리케이션 프로그램을 하나 만들려면 사용될 프로그램 언어와 UX를 위한 비주얼 빌더 사용법 및 GUI 라이브러리 사용법까지 배워야 하지만, CLI 환경에서는 프로그래밍 언어 만으로 커맨드 라인 앱이나 백엔드 앱을 작성하는 것이 가능하다. CLI 명령 중 하나인 wc나 cat, cp 등의 간략화 버전 같은 것은 C언어를 배운지 얼마 안된 사람도 금방 쫓아할 수 있고 소스 코드도 공개되어 있으므로 자신만의 개량형 버전을 만들어 사용하는 것도 쉽다. 게임 관련해서도 CLI 환경이 훨씬 만들기 쉽기 때문에 로그라이크 게임들이 많이 돌아다닌다. 디아블로에 지대한 영향을 주고, 리니지가 대놓고 갖다 베낀 넷핵이 이쪽에서 유명 게임 중 하나. 몇몇 프로그램은 아예 소스 코드 자체를 세팅 파일로 활용한다.(dwm(C), xmonad(Haskell), ranger(Python) 등) 물론, 엄청난 시간을 잡아먹는다. 리눅스 입문하는 노래도 있다.#


3.2. 다양한 플랫폼[편집]


기본성능 이상의 대부분의 CPU 보드에 리눅스를 설치 가능하다. 단, CPU 플랫폼에 의존적인 부분이 있어 각 리눅스 OS 배포판과의 호환성이 있어야 한다. 데스크톱이나 랩톱 PC용 리눅스 운영체제 말고도 임베디드 시스템용 리눅스 배포판도 다양하다. 인터넷 공유기, 스마트폰, 게이밍 콘솔 등에도 리눅스 OS를 포팅가능하다. 리눅스 커널을 사용하는 안드로이드 OS도 X-Window가 서피스플링거로 대체되고 ART(Android Runtime)등의 안드로이드 프레임워크 계층이 추가된 리눅스기반 OS이다. 냉장고텔레비전 등의 가전을 비롯하여 드론에서도 리눅스를 사용하는 경우가 있다. (U)HDTV에서 GUI나 어플등을 위해 리눅스가 사용된다. DVR의 대표기기인 Tivo도 리눅스 OS로 동작한다. 주변기기를 지원하는 플랫폼으로 본다면 리눅스가 더 많다. 참고로, 호환성을 미덕으로 삼는 NetBSD도 있다.[6]

리눅스는 CPU 핫플러그인도 지원한다. 컴퓨터가 작동되는 중에 작동되는 코어를 켜고 끌 수 있다는 소리다. 실제로 이 기능은 ARM big.LITTLE의 핵심 기능으로 사용되고 있다.[7]


위와 같은 리눅스로 동작되는 전용 포터블 콘솔 게임기 말고도 닌텐도 64, 드림캐스트, 게임큐브, Xbox 360, Wii, Wii U, PS4, XBOX ONE에 모두 리눅스를 설치가능하다. 다만, 리눅스 하드웨어 요구 사양이 과거에 비해는 다소 올라가서 Wii와 같은 7세대 이전의 게임기에서는 리눅스 버전과 앱을 취사선택해야 한다.

플레이스테이션 2에서도 공식적으로 리눅스를 지원한 적이 있었다. 이를 위해서 네트워크 카드, 40GB HDD, VGA 케이블, 키보드, 마우스, 메모리카드와 더불어 리눅스 인스톨 키트를 세트로 해서 판매하였다. 다만 리눅스를 설치한 상태에서는 게임 구동이 불가능하였으며, 게임을 돌리기 위해서는 리눅스를 포맷하고 PS2 기본 펌웨어로 변경해야 했다. 나중에 나온 슬림모델에서는 HDD를 설치할 수가 없으므로, 리눅스 설치가 불가능해졌다. 플레이스테이션 3에서도 공식적으로 리눅스 설치가 가능했다.# Yellow Dog Linux라는 배포판이 있는데 이는 페도라에서 파생되어 나온 물건이다. 다만 PS3에서 데스크톱용 리눅스처럼 쓰려면 PS2와 마찬가지로 싹 밀고 다시 깔아줘야 하는데 가끔씩 이 짓을 정말로 저지르는 용자들이 꽤 있다. 다만, PS3 초기형에서만 가능하며, 2010년 펌웨어 버전 3.21이 넘어가면서 리눅스 지원을 중단하였다.[8] 한때 미 공군 연구소에서 영상분석용으로 1,760대의 플레이스테이션 3를 병렬로 연결하여 슈퍼컴퓨터를 구성한 적이 있는데, 이때 사용된 플레이스테이션 3에 리눅스를 탑재한 물건들이었다.[9]

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


3.3. 명칭 논쟁[편집]


'Linux'가 아니라 'GNU/Linux'라고 불러야 한다는 주장도 있다. 자유 소프트웨어 운동을 창시한 리처드 스톨먼도 'GNU/Linux'라고 부르지 않는 기자들과는 대화도 하지 않는다고. 사실 리누스 토르발스가 만든 것은 리눅스 커널 뿐이며, OS의 구성물 대다수는 자유 소프트웨어 재단 하에서 만들어진 소프트웨어로 채워져 있다. 커널이 OS의 핵심이기는 하지만 분량은 극히 일부일 뿐이다.

하지만 리누스 본인은 GNU/Linux라 부르는 걸 이상하다 생각하고 Linux라 부르는 걸 선호한다. 'Linux'라는 상표를 가지고 있는 원 제작자가 좋아하지 않는 행위이다 보니, 이 쪽 관련으로 본인의 자서전에서 리처드 스톨먼을 언급하기도 한다. 리눅스 자체는 GNU프로젝트가 아닌데도 불구하고 FSF가 리눅스를 GNU/Linux라고 하는 등의 GNU 프로젝트인 것처럼 포장 하는 행위를 별로 좋아하지 않는다. the fact that rms and the FSF has tried to paint Linux as a GNU project 특히 안드로이드는 제일 많이 보급된 리눅스 배포판으로 볼 수 있는데, 여기에 GNU의 프로젝트는 포함되지 않는다.

GNU/FSF 쪽 지지자들은, ①리눅스 커널은 전체 운영체제의 일부에 불과하고, ②OS를 구성하는 주요 컴포넌트 중 상당수가 GNU 프로젝트에서 만든 것이기에, ③이를 이용해 만든 전체 OS는 "GNU 시스템의 일종"이라고 주장한다. 따라서 "GNU/Linux" 또는 "GNU 플러스 Linux"가 맞는 명칭이라는 것이다. 대부분의 리눅스 시스템에서 사용되는 GNU 컴포넌트 중 몇 개만 예를 들자면,
등 OS를 구성하는 데 있어 필수적인 컴포넌트를 여럿 만들었음을 알 수 있다.

반면 GNU 컴포넌트를 사용하지 않고도 충분히 전체 OS를 구성할 수 있다며, "Linux"라는 명칭을 지지하는 사람들도 있다. 예를 들어 coreutils는 Busybox로, GCC는 LLVM/Clang으로, glibc는 Bionic이나 musl libc로, GRUB은 syslinux나 u-boot로 대체할 수 있다는 것이다. (실제로 Alpine LinuxAndroid 같은 배포판이 비슷한 구성을 하고 있다.) 또 전체 OS를 구성하는 컴포넌트는 GNU와 커널을 제외해도 여러 가지가 있는데[10], 왜 GNU만 특별취급해서 이름에 넣어야 하냐는 지적도 있다.

이런 논쟁이 격해지다 보면 "커널이 운영체제의 '일부'에 지나지 않는다면, 왜 GNU는 Hurd[11]에서 그 '일부'를 30년째 못 완성하고 있냐"라는 주장이나, "GNU 프로젝트의 지원이 없었으면 리눅스는 그냥 리누스의 취미활동으로 끝났을 것"이라는 극단주의자들도 종종 볼 수 있다.

데스크톱/서버 리눅스를 안드로이드와 구분하여 표현할 때 GNU/Linux라고 하기도 한다. 안드로이드는 리눅스 커널을 쓰긴 하지만 그것 말고는 공통점이 적기 때문이다.


4. 라이선스[편집]


리눅스 커널 소스코드는 GPLv2 라이선스이며 v2로의 배포만 허용한다.[12] Linux 등록 상표 사용에 대해서는 2008년 까지 유료였으나 그 이후 부터 무료로 사용이 가능하다.[13]

대부분의 오픈 소스 리눅스 소프트웨어는 오픈 소스 라이선스를 적용시키는데, 그 종류에는 GPL, AGPL, LGPL, MPL, MIT, Apache, BSD 등이 있다. 이중에서 GPL, AGPL의 경우 소스 코드 배포 의무가 있다.

리눅스 커널이 GPL 라이선스로 배포되고 있기 때문에 리눅스 상에서 동작하는 모든 소프트웨어도 GPL이여야 한다라는 주장을 하는 경우가 있는데 이는 사실이 아니고, 리눅스의 경우 GPL은 커널 소프트웨어에 한정되어 있고 그 위에서 동작하는 유저랜드 소프트웨어가 리눅스 커널의 API를 콜하여 사용하는 것으로는 GPL의 파생 저작물(derivative work)에 해당 되지 않기 때문에 GPL과 무관한 소스코드 비공개 상용 소프트웨어를 제작/배포 하는 것도 가능하다. 아예 명시적으로 시스템 콜을 사용하는 것으로는 적용받지 않는다는 예외가 추가되어 있다. GPL 소프트웨어 커널과 다른 소프트웨어 간의 커뮤니케이션으로는 GPL 파생 저작물에 해당하지 않는다는 이야기다. 예를 들어, 안드로이드의 경우 GPL인 리눅스 커널을 사용하고 있음에도 불구하고 소스 코드 배포 의무가 없는 Apache나 MIT 라이선스로 배포되고 있다. 이 예외는 커널-유저레벨에서 적용되고 유저레벨-유저레벨에서는 적용되지 않는다.

그 외 유저 스페이스 어플리케이션, 리눅스 커널 소스 밖 드라이버 등에서는 각각의 소프트웨어 라이선스에 따라 소스 코드 공개 의무가 정해진다. 공개 의무가 없는 경우의 예시로 GTK나 Flutter 라이브러리를 사용한 앱은 소스 코드 공개 의무가 없는 LGPL이나 BSD로 배포할 수 있다.

대부분의 리눅스 벤더는 각자의 커뮤니티 쪽에서 서포트를 관리하고 있지만, RHEL과 같이 소프트웨어는 무료로 제공하면서 기술 지원 서비스 등을 선택사항으로 판매하는 비즈니스 모델을 취하고 있는 경우도 있다. 상업용 서버나 기타 비즈니스용 소프트웨어를 사용하다가 어떠한 문제가 발생했을 때, 보통 보수적인 기업에서는 비용을 지불하고 전문 기술 지원을 받는 것을 선호하는 경향이 있기 때문이다. 예를 들면 우분투를 배포하는 캐노니컬 같은 경우에는 기술 지원 계약을 통해 수익을 얻고 있으며(물론 막강한 후원자가 있기는 하지만), 레드햇의 경우 RHEL(Red Hat Enterprise Linux)라는 이름으로 솔루션 및 기업 서포트까지 제공하는 유료 프로그램을 판매하고 있다.

유료 기술지원을 받는 것은 선택사항이다. 그 예시로, GPL 소프트웨어 라이선스로 배포되고 있는 'Red Hat 엔터프라이즈' 패키지 구성을 이름이나 로고 같은 상표권이 있는 부분만 다른것으로 리브랜딩 하고 기술 지원 옵션없이 무료로 동일한 소프트웨어를 재배포하는 CentOS, Rocky Linux 등이 존재한다.


5. 보안[편집]


리눅스 배포자가 분산되어 있고 악성코드가 주로 윈도우를 타겟으로 하기 때문에 상대적으로 멀웨어로부터 자유로운 편이다.

하지만 다른 OS와 마찬가지로 보안 업데이트를 하지 않거나, 루트 사용자 관리를 잘못하면 보안 관련한 문제가 생길 수 있다. 유명 배포판인 리눅스 민트의 홈페이지가 해킹 당해서 조작된 ISO 파일이 등록되는 사건도 있었다.[14][15] 그러므로 리눅스 배포판 ISO를 다운받고 해시값까지 확인하는 것이 좋다.[16] 루트(슈퍼 유저) 퍼미션, 보안 키/인증서가 있는 저장소 사용, 백신으로 스캔, 방화벽(GuFw, Firewalld), 백업 유틸 등을 사용하여 예방할 수 있다.

Wine을 사용하는 경우에도 샌드박스 환경이 아니기 때문에 무조건 방심하면 안된다. 워너크라이의 경우 시스템 파일은 건들지 못했지만 Wine과 연결된 home 폴더는 암호화시킨 전력이 있다. 따라서 마찬가지로 믿을 수 없는 프로그램은 돌리지 말아야 한다. 다만, 기본적으로 샌드박스 기술을 지원하는 Wine 기반의 Bottles 등을 사용하면 보다 안전하게 사용할 수 있다.

6. 커널[편집]


파일:나무위키상세내용.png   자세한 내용은 Linux/커널 문서를 참고하십시오.


7. GUI 환경[편집]


Linux / UNIX GUI 환경
[ 펼치기 · 접기 ]

윈도우 시스템X11 · Wayland · Mir · SurfaceFlinger · Quartz
윈도우
매니저
Compositing, StackingMutter · MATE/Marco · Muffin · KWin · Openbox · xfwm · twm
Tilingxmonad · Bspwm · i3
DynamicAwesome · dwm
디스플레이 매니저GDM · SDDM(KDM) · LightDM · LXDM
데스크톱
환경
GTKGNOME · MATE · Cinnamon · Budgie · Unity · Xfce · LXDE · Pantheon · Phosh
QtKDE(Plasma Mobile) · LXQt · Deepin · JDE · UKUI



윈도우와 macOS의 경우 GUI 환경이 시스템에 고정으로 포함되어 있으며 분리할 수 없다. 반면 리눅스에서는 커널GUI 환경이 분리되어 GUI 환경이 별도로 관리되고 있어 필요에 따라 선택하여 사용할 수 있다.

7.1. 구성 요소[편집]


리눅스의 GUI 환경을 구성하는 요소로 디스플레이 서버, 디스플레이 매니저, 윈도우 매니저, 데스크톱 환경 등이 있다.

파일:linux-display-scope.png
리눅스 GUI 구성 요소



7.2. 데스크톱 환경[편집]


데스크톱 환경은 일관된 사용자 경험을 제공하는 인터페이스 스타일이다. 대부분의 사용자는 여러 데스크톱 환경 중 하나를 선택해서 사용한다. 자세한 내용은 데스크톱 환경 문서 참고.


7.3. UI / UX 툴킷[편집]


프로그램을 디자인하면서 유저 인터페이스 UI를 구성하기 위해 사용하는 프로그래밍 툴로, SDK 또는 GUI 프로그래밍 라이브러리 라고도 한다. 리눅스를 공식 지원하는 대표적인 UI/UX 툴킷으로는 GTK[18], Flutter, Uno Platform, wxWidgets, Qt[19] 등등이 있다. 각 툴킷별로 UI를 그래픽 툴처럼 작성할 수 있는 별도의 비주얼 빌더도 있다. 상식적인 것이지만, UI/UX 비주얼 빌더 소프트웨어 소스코드가 GPL이라고 해서 거기서 추출된 XML등의 코드가 GPL을 따를 필요는 없다. 즉, XML을 하이드도 가능하다. UI/UX 툴킷 GUI 프로그래밍 라이브러리가 LGPL, MIT, Apache, BSD 등등일 경우 앱 소스코드 공개/배포도 불필요하다.

GUI 애플리케이션 또는 프론트엔드 디자인을 위해 필수적으로 공부해야 하는 분야이다.

특정 툴킷으로 디자인된 프로그램이 작동하기 위해서는 앱 패키지 설치시 관련된 라이브러리가 설치되고 디펜던시로 딸려오는 패키지도 있다. 이들이 프로그램의 실행과 함께 로딩되어야 한다. 테마를 커스텀도 가능하고 원하는 테마를 선택 적용 가능한 장점도 있다. 상품화된 무료 및 유료 UI/UX 디자인 테마 패키지가 아주 풍부하다. 하나의 리눅스 벤더나 하나의 DE에서는 제공되는 프로그램들을 하나의 툴킷으로 통일하여 제공하거나 앱 별로 개별 툴킷 사용 및 개별 테마도 적용가능하다.


8. 주요 용도[편집]



8.1. 데스크톱 및 노트북[편집]


웹서버 관리나 프로그래밍 용도로는 리눅스만큼 좋은 OS가 없다. 대부분의 배포판은 요즘 나오는 Windows처럼 클릭 몇 번만 하면 설치 가능하다. 또한 Windows에서 할 수 있는 작업 대부분을 대체 프로그램 등을 통해 수행할 수 있다.

USB HDTV 카드 등 멀티미디어 기기는 리눅스용 드라이버를 제공하고 있으며 무선 랜카드 등의 디바이스 드라이버도 각 반도체사에서 리눅스 커널에 직접 참여하여 커널 자체에 포함시키고 있어 별도 드라이버 설치 없이도 자동으로 사용가능하다.

오피스 소프트웨어의 경우, MS 오피스 대신 리브레 오피스로 대체할 수 있다. 기관에서 MS 오피스 문서가 사용되고 있으나 리브레 오피스에서 MS 오피스 파일 포맷을 사용할 수 있다.

동영상 편집도 가능한데, Kdenlive와 ShotCut은 오픈소스 프로그램인데도 전문적인 기능을 제공한다.

대체 프로그램이 없을 경우 리눅스에서 윈도우 프로그램을 직접 실행하게 해주는 Wine, Bottles 등도 사용할 수 있다.

게임 회사 밸브에서는 리눅스를 게임 플랫폼으로 만들기 위해 많은 노력을 하고 있다. NVIDIA와 협력해서 리눅스 기반의 게임 특화 운영체제 SteamOS를 만들기도 했고 다른 배포판에서도 Steam을 이용하여 최신 게임을 플레이할 수 있다.

8.2. 서버 용도[편집]


홈서버든 상업용 서버든 점유율이 윈도우보다 훨씬 높다. 서버 쪽에서 리눅스의 위상은 엄청나다. 무료인 데다가, 오픈 소스고, 리눅스에 익숙한 인력도 많고, 안정성도 높은 편이니 서버 운영체제로서는 최적인 셈이다. 서버용 프로그램들 대부분이 리눅스를 지원하거나, 리눅스 상에서 개발되고 있다. 요즘에는 윈도우스 서버도 성능이 어느 정도 높아져서 점유율이 약간 늘었지만 클로즈드 소스에다 가격도 비싸고 서버 시장에서 비주류인지라 여전히 리눅스 서버에 비할 바는 되지 못한다.

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

GUI가 없는 환경은 가벼워서 서버 성능에도 도움이 되고 보안에도 도움이 된다. 리눅스는 GUI를 선택적[20]으로 사용할 수 있지만 윈도우는 GUI 부분을 삭제하는 것 자체가 불가능하다.[21] 서버 관리에 있어서 CLI는 GUI보다 효율이 압도적으로 뛰어나다. 이러한 전문적인 환경에서는 GUI가 CLI의 효율을 따라잡을 수 없다.

그래서 예전에 소스 엔진 게임들의 멀티플레이 로비에서도 호스팅해주는 게임 서버(데디케이티드 서버)들의 운영체제는 반이 리눅스였다.

구글은 원래 우분투 기반의 구분투(Goobuntu)라는 자체 운영 체제를 썼으나 데비안 기반의 지리눅스(gLinux)로 바꿨다.[22] 구글은 웹 서버구글 웹 서버라는 자체 소프트웨어를 사용한다.


8.3. 모바일 용도[편집]


안드로이드는 리눅스 커널을 가져다 쓰고 있는 사실은 잘 알려져 있다. 리눅스 커널 위에 GUI 앱 등을 위해 구글이 따로 넣은 요소가 많다. 우분투 터치도 안드로이드만큼은 아니지만 마찬가지로 기존 리눅스 기술 스택과 다른 부분이 많다.

안드로이드에서도 Termux와 같은 터미널을 사용하면 안드로이드 위에 데스크톱용 GNU/리눅스를 설치할 수 있다. 이를 이용하면 리눅스 GUI 환경도 제한적으로 돌릴 수 있지만 제약이 많아 대체로 터미널로만 사용한다.[23]

안드로이드와는 별개로 기존 GNU/리눅스를 모바일에서도 사용하기 위한 시도들이 진행되고 있다. 리눅스는 커널과 데스크톱 환경이 분리되어 있어 데스크톱 환경만 모바일용으로 적절히 만들면 기존 데스크톱 앱이 그대로 호환되는 스마트폰/태블릿을 만들 수 있다. 대표적으로는 KaiOS, postmarketOS, Phosh, JingOS 등등이 있다.


8.4. 임베디드 기기 용도[편집]


CCTV, TV, 게임기나 노래방 기계같은 멀티미디어 기기부터 라우터나 휴대전화 같은 통신기기, 키오스크나 ATM 같은 무인 서비스 기기, 스마트홈, 로봇, 자동차 인포테인먼트 등 각종 통신이나 멀티미디어, 사물인터넷용 임베디드 기기에 리눅스가 사용되는 경우가 많다. 산업용 각종 임베디드 보드에서도 리눅스를 사용하는 경우가 많다.

8.5. 게임 용도[편집]


리눅스에서의 게임 플레이 방법은 다양하다. 리눅스를 공식적으로 지원하는 게임의 수 또한 늘고 있다.

첫 번째로, 스팀 게임들이다. 기획단계에서 스팀이 리눅스를 공식 지원하게 되었고, 그에 따라서 밸브 사 자체의 게임은 물론이고 스팀을 플랫폼으로 하는 게임들 중 리눅스로 만들어지는 게임이 대폭적으로 늘었다. 현재 약 9천개 # 이상의 최신 게임을 즐길 수 있다. (카운터-스트라이크를 한물 지난 컴퓨터에서 OpenGL로 돌려보자.) 사실, 리눅스 플랫폼 지원강화는 윈도우 마켓이 클로즈드 방식으로 변했기 때문이다. 밸브는 윈도우를 비난하는 언급을 했으며, 리눅스 플랫폼을 일종의 보험 용도로 인식하여 지원을 강화한다고 발표하였다.# 또한, 스팀에 Wine의 파생 버전으로 게임실행에 중점을 둔 '프로톤(Proton)'을 탑재해 윈도우 게임을 리눅스에서도 실행도 가능하다.# 와인으로도 실행이 불가능 한 윈도우용 게임의 경우에는 KVM/QEMU GPU 패스스루를 사용하면 된다.

물론 위의 방법으로도 돌아가지 않는 게임들이 존재하는데, 안티 치트 프로그램을 사용하는 게임들이다. 배틀그라운드가 대표적이다.

두번째로, OpenGL 계열 게임들은 와인을 활용하든 네이티브로 포팅이 되든 DirectX 기반보다는 어떻게든 리눅스에서 사용할 수 있게 될 확률이 높다.

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

존 카맥이드 소프트웨어에서 출시하는 PC 게임은 거의 다 리눅스를 지원한다. 물론 패치도. DirectX를 사용하지 않고 OpenGL을 사용하기 때문에 가능한 모양. 철지난 게임들[25]의 바이너리 파일을 리눅스용으로 공개하였다.[26]

Braid나 World of Goo 등의 몇몇 인디 게임들도 리눅스용 Full 버전을 팔고 있다. 그리고 자유 소프트웨어로 웬만한 상용 버전 보다 더 빵빵한 웨스노스 전쟁도 있다.

세번째로 에뮬레이터를 거치는 게임은 대부분 리눅스에서도 사용할 수 있는 에뮬레이터가 있기 때문에 큰 문제 없이 사용할 수 있다.참고 마인크래프트 자바 에디션[27]와 같은 경우에도 Java 기반이기 때문에 문제 없이 실행이 가능하다.

네번째로, Wine이 생각보다 최근 성능이 좋아지면서 이를 통해 플레이 할 수 있는 게임이 많아졌다.[28]특히 블리자드의 게임들이 지원이 빨라 최신 게임들이 모두 플래티넘 등급이라 거의 플레이하는 데 지장이 없는 수준이다. 그 외의 경우, WineHQ AppDB나 Lutris를 참고하자. Lutris를 사용하면 유저들이 삽질해가면서 만든 스크립트로 고생할 필요 없이 바로 게임을 실행시킬 수 있다. 특히 2019년 들어서 DXVK(DirectX 11 이하)와 VKD3D(DirectX 12)의 성능이 상당히 발전했기 때문에 사양만 받쳐준다면 다이렉트 X 전용 게임도 무리없이 돌릴 수 있다. 성능은 게임이나 사용 환경에 따라 다르지만 보통은 윈도우랑 비슷하거나 20~30 프레임 가량 떨어지는 경우가 많다. 배틀필드 5 섀도우 오브 더 툼 레이더

KVM/QEMU를 이용해 가상머신으로 게임을 돌리는 방법도 있다. 와인보다 성능이 좋고 완벽한 호환성이 있다는 장점이 있다. VFIO 드라이버와 GPU 패스스루를 사용하면 가상머신에서 GPU 성능이 실제 머신에서의 GPU 성능과 99% 정도로 동일하게 사용가능하다. 싱글 GPU 패스스루도 가능하다.

콘솔 게임기나 아케이드 게임기에도 들어가는 경우가 있으며, 스팀 덱등에 리눅스 커널이 쓰이고 있다. 참고로, Xbox는 윈도우 OS나 다름없고 플레이스테이션, 닌텐도는 FreeBSD에 기반하고 있다.

인터넷 속도가 충분하다면, Xbox Game Pass 얼티밋을 통해 클라우드로도 다양한 게임을 즐길 수 있다.

8.6. VFX[편집]


해외의 경우 렌더팜[29]은 물론 작업 컴퓨터도 리눅스로 되어 있는 경우가 많다. 주로 CentOSRHEL인데, 이는 윈도우보다 렌더팜 구성 등에 용이한 이유도 있지만, 실리콘 그래픽스의 워크스테이션을 쓰며 성장한 8,90년대의 VFX업계가 2000년대에 들어서 SGI를 손절해버리고 리눅스로 갈아탄 역사가 있기 때문이다. 이러면서 IRIX[30]에서 돌아가던 소프트웨어들도 그대로 리눅스로 포팅하게 된다. 상용 프로그램들은 물론이고, 인하우스 프로그램들과 파이프라인에서 사용하는 스크립트들도 IRIX용으로 작성된 것인데 이를 윈도우로 옮기는 것은 비용이 매우 크니까[31] 가격이 더 저렴하고 IRIX와도 비슷한 리눅스로 옮겨간 것이다. 물론 후술하겠지만 윈도우나 맥을 쓰지 않는다는 것은 아니다. 아예 주력으로 쓰는 회사들도 있지만 대부분의 경우 파이프라인의 일부일 것이다.

이렇게 업계와 함께 프로그램들이 유닉스, 그리고 리눅스로 성장해왔고 딱히 윈도우로 옮길 이유는 없었기에 대부분의 프로그램들은 리눅스를 지원하고 있다. 다만 일반적으로 회사 내부에서는 리눅스를 쓰지만 집에서는 프리랜서나 학생, 개인들은 개인컴으로 여러 가지를 겸해야 하기 때문에 윈도우를 쓰는 경우도 있다.

유명한 Blender, Maya, Nuke, Katana, XSI, Clarisse, Mari, Fusion, Arnold, Renderman 등은 모두 리눅스를 지원한다. 특히 렌더러들은 렌더팜에서 돌아가는 것이 전제임으로 모두 지원하고 있다. 다만, ZBrushCinema 4D등의 리눅스 미지원 프로그램들도 있다.[32] 이런 경우는 아예 게임쪽 업계에서 사용하기 시작한 프로그램이거나, 여러 사정으로 윈도우나 맥용으로 시작했으나 이미 성장한 상태에서 포팅하기는 비용이 큰 경우도 있다. 이런 경우는 해당 프로그램이 지원하는 OS를 설치한 컴퓨터를 따로 쓰거나, 아예 VM에서 돌리기도 한다.

9. 리눅스 시장 점유율 현황[편집]


웹서버, 클라우드 서버 시장에서 압도적 점유율을 보이고 있다. 웹서버만 보고 단순히 전세계 100만 개 도메인을 조사해 보면 96.5%가 리눅스 서버라고 하기도 하고 #, 알렉사 기준 많이 쓰는 도메인을 기준으로 보면 70%가 리눅스 서버라고 한다.# 인터넷 서비스 용도로는 윈도우나 유닉스 서버는 보기가 어려울 정도로 대세가 되어 있다.

모바일에서도 실질적으로 리눅스가 장악하고 있다고 할 수 있다. 리눅스 기반의 안드로이드는 80%가 넘는 점유율을 보이고 있고 국내도 비슷한 점유율을 보인다. 안드로이드에서 리눅스 앱을 돌릴수도 있다.

다만 여전히 데스크탑 시장에서는 윈도우가 약 75%인데 반해 리눅스는 2.5%로 부진한 편이다. 특히 한국 시장에서는 리눅스가 약 0.5%로 고전하고 있다. 이러한 점유율에 관한 자세한 내용은 운영체제/점유율 문서를 참조.

카-인포테인먼트 시장에서 강세였던 MS의 임베디드 윈도우 역시 2010년 중후반부터 리눅스에 따라 잡힌 상태이다.

슈퍼컴퓨터 OS의 경우 사실상 리눅스가 100%를 차지한다. top500 참조.

스페인 바르셀로나에서는 모든 소프트웨어를 우분투오픈 소스 소프트웨어로 바꾸기로 결정하였다. 윈도우가 없는 도시를 꿈꾼다 : 스페인 바르셀로나의 오픈소스 전면화 프로젝트 (2018-01-31)

10. 특징[편집]



10.1. 배포자의 다양화[편집]


리눅스용 애플리케이션 소프트웨어의 증가는 다양한 크로스 플랫폼 앱 디자인 개발 툴의 발달에 의한 것이다. 즉, 통합 프로그램 개발 환경인 IDE에서 리눅스 프로그램을 윈도우와 맥용 프로그램과 더불어 자동적으로 만들어 낼 수 있기 때문에 리눅스가 다시 대중화 플랫폼으로 재조명을 받고 있다. 그에 따라 당연히 윈도우 전용 개발 환경등 특정 플랫폼 만을 고집했던 소프트웨어 개발사들은 새로운 패러다임에서 경쟁력을 잃고 있다. 리눅스에서 불리했던 게임도 스팀이 리눅스를 지원하기 시작하면서 거의 다 해결되었다. 디바이스 드라이버나 소프트웨어 문제도 해결되었고 성능 및 보안 등 리눅스 플랫폼 자체가 가진 특징도 있다.

리눅스 커널이 기본 바탕이고 여기에 여러 배포자들이 있기 때문에 경쟁 구도이며 선택의 자유가 있다. 배포판이 달라도 같은 리눅스 커널과 GUI를 취사선택 가능하기 때문에 편리하다. 안드로이드 경우 SW 파편화8.0부터 안드로이드 트레블(Android Treble)을 적용해 해결하려 하고 있다.

최신 리눅스 커널 버전, 데스크톱 환경 DE (GNOME, KDE, Xfce, LXDE 등, 데스크톱 환경을 변경하기 위한 별도 DE 패키지로 추가 변경도 가능), Terminal/CLI/콘솔 (Bash 등등), 배포자 별로 제공되고 있는 디바이스 드라이버 버전 차이 확인 등등을 기준으로 리눅스 벤더를 선정 (입문자에게는 Ubuntu나 Fedora가 적합), 설치후 최적화 시키면 된다. 구글 안드로이드가 언급한 것들을 자체적으로 최적화한 경우이다.

높은 자유도와 수많은 배포자들간의 경쟁이 있는 것이 특징인 운영 체제인만큼 이는 계속 발전될 수밖에 없으며, 서버/임베디드 시장에서는 리눅스가 역으로 장점이고 데스크톱/랩톱 시장에서도 2010년 중후반부터 사용자가 늘고 있다. 참고로, 윈도우 환경에서 가능한 모든 기능을 대체할 리눅스용 앱/커맨드/스크립트들이 리눅스에 존재한다.


10.1.1. 데스크톱 환경[편집]


데스크톱 환경의 기반인 UX툴킷(SDK)들의 표준화 문제나 같은 툴킷 벤더 버전 별로도 사용법이 변경 되어 왔으나 2010년 중반부터 안정화 되어 가고 있다. 참고로, 과거 UX 툴킷의 급변과 라이브러리 사용법의 불안정화는 윈도우가 리눅스 보다 더 심했다.

어플리케이션 클라이언트와 Display Server 사이의 통신 프로토콜에는 기존방식의 X11과 새로운 Wayland가 있다.
GNOME의 경우, Wayland 컴포지팅을 위해 Mutter가 사용되고, KDE의 경우에는 Kwin이 사용된다.

각 리눅스 배포판의 디폴트 데스크톱 환경 하에서 GNOME, KDE, Xfce, LXDE 기반의 또다른 데스크톱 페키지를 선택하여 설치/변경도 가능하다. 데스크톱 용으로도 롤링 릴리즈라 오피스 등의 일상 프로그램을 깔아두고 매일 업데이트하며 쓰기 좋다. 맞춤 UX 룩을해서는 아치 리눅스젠투 리눅스를 추천하는데, 젠투는 직접 컴파일해서 설치하는 방식이라 어렵고 시간이 소모된다.[33]


10.1.2. 커맨드 셸[편집]


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

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

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


10.2. 애플리케이션 설치/관리 방법[편집]


리눅스에서 애플리케이션을 설치하는 방법은 여러 가지가 있는데 크게 분류하여 다음과 같다.

- 소스코드를 받아서[35] 직접 컴파일 후 설치하는 방법. 가장 고전적인 방식이다.
- 시스템 패키지 매니저를 사용하여 패키지를 설치하는 방법. 흔히 보는 데비안 계열의 sudo apt install <프로그램명>이 이것이다.
- Flatpak, Snap와 같은 시스템 패키지 매니저와 독립된 패키지 매니저를 사용하여 패키지를 설치하는 방법. 배포판의 의존성을 따르지 않고 자체적으로 의존성을 해결한다.
- AppImage 형태의 패키지를 설치 혹은 실행하는 방법.[36] 필요한 의존성을 모두 한 독립적인 패키지 파일에 담아 의존성을 해결한다.
- GUI 소프트웨어 설치 앱에서 프로그램을 설치하는 방법도 있는데 언급한 apt(dpkg/.deb) 또는 snap등의 패키지를 GUI를 통해 관리해준다.

패키지 매니저나 설치 파일 확장자는 배포판에 따라서 다르다. 예를 들어 apt 시스템 패키지 매니저와 및 *.deb 패키지 확장명은 우분투데비안 계열에서 주로 사용되며, dnf 시스템 패키지 매니저 및 *.rpm 패키지 확장명은 RHEL페도라 계열에서 주로 사용된다.

Flatpak, Snap, AppImage는 최근 등장한 패키지 설치/관리 방법이다. 한 배포판에 종속되어 있지 않고 독립적이기 때문에 모든 배포판에서 사용 가능하며, 패키지 설치 시 루트 권한을 필요로 하지 않는다. 또한 자체적으로 의존성을 해결하기 때문에 후술할 의존성 문제로부터 자유롭다. 리눅스 처음 접한 초보자에게 추천되는 이유이다.


10.2.1. 의존성 관리[편집]


리눅스[37] 배포판에서 패키지들을 관리할 때에는 특히 의존성 문제를 신경써야 한다.

전통적으로, 리눅스에서 프로그램을 설치하면 그 해당 프로그램만 딱 설치하며, 부속품 격인 '의존 패키지들[38]'은 별도로 설치해야 한다.[39] 그러다 보니 어떤 프로그램을 설치하려면 의존 패키지들까지 일일이 따로 구해서 설치하는 불편함이 존재했었다. 이를 해결하기 위해 등장한 것이 시스템 패키지 매니저이다. 시스템 패키지 매니저의 출현은 이러한 의존성 문제를 대신 해결해주었다.

또한 리눅스에서는 윈도우macOS와 달리, 프로그램들이 서로 의존성을 공유한다. 이것은 저장공간 낭비를 줄인다는 장점은 있지만 서로 다른 의존성을 요구하는 프로그램들을 동시에 설치할 수 없거나, 프로그램 한번 업데이트했더니 다른 프로그램이 먹통이 된다거나 하는 치명적인 문제가 있다. 또한 각 배포판마다 다른 의존 패키지가 필요하여 각 배포판마다 설치 파일을 별도로 제작해야 하는 파편화도 발생시킨다. 따라서 대부분의 리눅스 배포판들은 의존 패키지들을 해당 의존성을 필요로 하는 패키지 내에 명시하고, 의존성이 모두 맞춰진 프로그램 세트를 구할 수 있도록 각 배포판 버전마다 따로 저장소를 만들어 두어 각 프로그램마다 필요한 버전을 가리키도록 하는 것으로 문제를 해결한다.[40]

다만 이러한 의존성 처리 방식이 비효울적이라는 비판이 있었고, 그래서 최근에 등장한 것이 Flatpak, Snap, AppImage, 그리고 Docker[41]이다. 이들은 기존의 시스템에 설치되어 있는 패키지들과는 독립적으로 각 프로그램의 의존성을 관리하여 앞서 나온 의존성 관련 문제들을 해결한다.


10.3. 상용 프로그램[편집]


리눅스 서버 상에서 사용되는 프로그램들중 유료 프로그램들이 많다. 리눅스 엔터프라이즈용 프로그램들도 유료 프로그램들이 대다수다

구글 안드로이드의 수익은 구글 플레이를 통한 거래의 수수료에서 나오지만 안드로이드 기술 자체는 엄연한 구글 소유다. 제조사는 안드로이드 인증을 받기 위해선 구글로부터 직접 기기 인증 요청을 해야 하고 이 과정은 결코 '무료'가 아니다. 이는 오픈 소스 라이선스를 가진 프로그램들이 주로 취하는 유료 정책 중 하나이기도 하다. MySQL은 오픈소스 부분만 포함한 커뮤니티 버전은 무료이고 오라클에서 수정한 부분을 포함한 버전만 유료에 상용 라이선스다. 다만 오라클이 수정한 부분을 사용함으로써 얻는 이득은 미비하고 유료 버전을 구매하는 이유는 레드헷이 그러하듯 오라클로부터 직접 고객 지원을 받을 수 있기 때문이다. 여담으로 현재 대부분의 리눅스 배포판은 MySQL 대신 커뮤니티 버전을 fork한 MariaDB로 대체했다. Java의 가장 널리 쓰이는 JVM인 HotSpotVM은 OpenJDK로 오픈 소스로 제공되지만 실상은 오라클이 소유한 엄연한 '상용 소프트웨어'이다. 즉 Java도 엄연한 상용 프로그램이다. 안드로이드의 달빅 가상머신이 이미 Java 기술 저작권 침해로 오라클과 소송을 진행한 적이 있었다. 구글이 오라클을 상대로 승소하기 했지만.[42] 다만 개발자들이 그렇게 느끼지 못할 뿐인데 이는 오라클에 합병되기 전 썬 마이크로시스템즈가 가진 Java 라이선스 정책에 의해 그렇게 느껴질 뿐이다.

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


10.4. 명령어 및 텍스트 사용환경[편집]


터미널이라고 줄여 부르는 터미널 에뮬레이터(Terminal Emulator)는 사용자가 데이터를 입력 출력하는 프로그램이며 사용자는 터미널 에뮬레이터를 통해 응용 프로그램에 접근하는 구조로 되어있다. 즉 터미널은 종류에 따라 CLI 또는 텍스트 유저 인터페이스(TUI), 넓게 보면 GUI 환경을 쓸 수 있도록 하는 프로그램이다.

bash와 cmd를 비교해 보자면, bash와 cmd는 모두 현재 프로그래밍 언어의 주류인 C-style에서 많이 벗어난 문법이므로 프로그래밍을 대충 끄적거려 본 사람에게도 둘 모두 익숙해지는데는 시간이 꽤 걸린다. 그런데 cmd는 문법 자체가 매우 비효율적이라[43] bash가 차라리 낫다. bash는 일단 쉽지 않다고는 해도 리눅스의 수많은 셸 중에서 경쟁을 거쳐 가장 많이 사용되는 셸이니 어느 정도 검증돼 있다고 볼 수 있다. 만약 꼭 bash나 타 셸을 써야 할 필요가 없다면, 셸을 간단히만 배우고 파이썬을 셸 대신 사용하여 리눅스를 활용하는 것도 가능하다. 문법이 직관적인 것은 물론이고 생산성도 더욱 높으며, 무엇보다 필요할 경우 파이썬 내에서 리눅스 셸 스크립트도 실행시킬 수 있다.

하지만, 파이썬을 따로 설치해야 하고 한 줄 한 줄 명령어를 입력해야 하는 상황에서는 별로 적합하지 않다는 단점이 있다. 말 그대로 셸 스크립트를 짜야 할 만한 반복적이고 정교한 작업이 필요할 경우 파이썬이 셸 스크립트를 효율적으로 대체할 수 있다는 것일 뿐, 완벽하게 대체하지는 못한다.

전통적인 Unix 환경이 그러하듯이 원격 접속은 기본적으로 텔넷이나 SSH 등을 통해 CLI 환경으로 접속하는 것이다. 웹호스팅 등에서 서버에 접속하는 것도 바로 리눅스의 SSH 원격접속이다. 텔넷PC통신 시절에 많이 쓰던 그것으로, 이 때문에 리눅스 환경에서는 다른 프로그램 없이 바로 telnet 명령 입력하고 PC통신 연결 주소 입력하면 PC통신 화면이 바로 떴다. 애초에 PC통신 자체가 리눅스의 원본(?)인 유닉스의 터미널 환경을 사용하기 때문에 리눅스에서도 그대로 되는 것. PC통신 프로그램은 이 터미널 환경을 도스나 윈도우 환경에서도 쓸 수 있게 에뮬레이션 시켜주는 프로그램이다. 단, 텔넷은 암호화가 안 되기 때문에 보안성이 낮아서 요즘은 거의 안 쓰고, 암호화 통신을 하는 SSH를 많이 사용한다. 이처럼 서버 관리 부분에서는 CLI 환경으로 접속하는 것이 기본일 뿐더러, 대부분의 작업이 CLI로도 모두 가능하므로 GUI는 필요가 없는 경우가 많다. 그래서 서버 등 원격접속해서 쓰는 용도로 리눅스를 설치한다면 아예 GUI 부분은 제외하고 설치하거나 설치 후 GUI 부분을 삭제하는 경우도 많다. 물론 Windows에서도 텔넷 등 CLI 환경으로의 원격접속을 지원하긴 하지만 어디까지나 기본은 GUI이기 때문에 CLI 모드에서 할 수 있는 작업은 제한되어 있다.


10.5. 다국어 지원[편집]


리눅스는 영어권 사용자를 대상으로 개발되고 있고 각 국가의 사용자들이 커뮤니티 차원에서 다국어 지원을 추가하고 있다. 로마자(라틴 문자) 사용 국가용은 다국어 지원이 잘되는 편이나 한글화는 기대하지 않는게 좋다. 리브레 오피스에서 한글 스펠링 체크 애드인도 있다. 리눅스의 상용판인 레드햇이나 OpenSUSE 또한 팔리는 수준만큼만 부족한 로컬라이징을 보완해서 출시하고 있다. 영어가 사실성의 국제어인 시대이고 프로그램을 만든 국가들도 대부분 영미권이기 때문에 용어를 그대로 따르는게 편리하다.

오픈소스 자유 소프트웨어가 아닌 리눅스판 상용 프로그램을 국내에 판매한다면야 한글화를 옵션으로 지원해 주어야 할것이다. 윈도우나 맥용 프로그램 역시 한글화가 안되어 있는 경우가 태반으로 많다.

운영체제 레벨에서 한글이나 한자에 대한 지원도 잘되고 있다. 한국어 인터페이스도 설치 가능하고 우분투의 경우 IBUS를 다른 입력기로 바꾸기보다 /usr/share/X11/xkb/symbols/kr 키보드 설정 파일에서 default를 kr104 항목에 위치시키면 간단히 해결된다. (20.04 이상 기준)


10.6. 디바이스 드라이버 지원[편집]


리눅스 각각의 벤더들이 반도체사에서 제공하고 있는 리눅스용 디바이스 드라이버를 기반으로 각 배포판에 최적화를 시키고 있다. 그래픽 드라이버 경우 반드시 리눅스 배포자가 제공하는 것을 버전별로 선택하여 사용하여야 한다. nouveau 드라이버는 성능 저하 문제가 있으며 gpu제조사 드라이버를 직접 설치시 문제점이 있다. 인텔 iGPU경우 리눅스 커널 버전업시 자체 지원되고 있고, 참고로 Nvidia Optimus 경우 퍼포먼스 모드에서 스크린 Tearing 문제는 nvidia-drm[44] modeset 값을 1로 설정 해주어야 sync가 이루어져 테어링 문제가 없다. 반도체사나 주변기기 디바이스 드라이버 제조사에서 리눅스용 배포판을 윈도우용 디바이스 드라이버 버전과 거의 동시에 출시하고 있는 상황이다.

GNU/리눅스 OS 커널의 소스코드는 GPL이지만 거기서 실행되는 애플리케이션은 오픈소스로 프로그램으로 배포할수도 있고 상용 클로즈드 소스 프로그램으로도 배포할 수 있다. 유료 소프트웨어 보다는 자유 소프트웨어가 풍부하다.

PC 계열 이외의 임베디드 SoC 칩/보드에 대한 지원 양상을 보면 MS 윈도우 보다 리눅스 계열의 지원이 빠르면서도 충실한 경우가 많다.윈도우 계열이 SoC/보드레벨에서 지원 범위가 극히 좁은 이유는 윈도우 라이선스 비용뿐아니라 PC용 CPU에 비해 훨씬 다종 다양한 SoC 제품군들에 대한 지원을 일일이 해줄 수 없다는 점이 크게 작용한다. 전력관리 기능이나 소비전력 효율화도 PC 운영체제나 CPU 보다 적극 도입되고 있다. 전용 드라이버 지원도 빠르다. SoC 시스템 사업구조가 PC용 CPU와는 상당히 다른 탓이 크다. SoC 업체들은 스스로가 주도하여 각종 리눅스 커널을 자사 전용 SoC에 맞춰 포팅하는 작업을 해야 하고 주변장치 드라이버 최적화등은 그 과정에서 자연스럽게 반영되기 마련이다. SoC 주변기기나 기타 라이선스 문제 역시 SoC 업체에서 주도적으로 해결하여 공급가능하므로 그러한 구심점이 없는 윈도우에 비해 문제해결이 한결 수월한 경향이 있다.


10.7. 설정법[편집]


배포자간의 공통된 리눅스 커널로 인해 DE 및 CLI를 통해 모든 설정이 가능하다. 윈도우 보다 상세한 셋팅이 가능하다. 새로운 기능이 도입되거나, 다른 프로그램과의 충돌을 피하거나, 사용자에게 더 많은 선택지를 주거나, 다른 프로그램과의 호환성을 높이거나, 편의성을 높이려고 하거나, 사용자별로 설정을 다르게 하거나 하는 등의 이유로 한 프로그램에 설정 파일이 여러 개가 있는 경우가 있다. 설정 파일의 위치가 로컬 및 글로벌로 되어있고 파일 익스텍션 명도 분리되어있다.

리눅스 상에서는 조합에 따라 다른 프로그램을 쓸 수도 있고 안 쓸수도 있기 때문에 신호나 출력이 거쳐가는 프로그램마다 각자 설정을 가지고 있는 경우가 많으며 대형 배포판에서는 여러 사용자의 요구를 커버하기 위해 여러 가지 프로그램을 모아 놓게 된다.


11. 배포판[편집]


파일:나무위키상세내용.png   자세한 내용은 Linux/배포판 문서를 참고하십시오.


12. 명령어[편집]


파일:나무위키상세내용.png   자세한 내용은 Linux/명령어 문서를 참고하십시오.



13. macOS와의 차이[편집]


macOS와 Linux의 공통점은 POSIX 규격을 따르는 Unix-like 운영체제라는 점이 있으나 macOS는 일부 컴포넌트를 제외하고 모두 폐쇄형 클로즈드 코드이다.

macOS의 하부 시스템인 Darwin과 그 커널인 XNU는 미국 대학에서 만든 마이크로커널인 Mach 3.0과 4.4BSD-Lite2의 구성요소로 주로 FreeBSD와 약간의 NetBSD 가져다가 Apple에서 자기 입맛대로 섞어 만든 하이브리드 커널 방식의 OS이다.

macOS는 상표적인 Unix 운영체제이고 POSIX C API, X11 GUI 애플리케이션 구동, 유닉스식 권한 체계와 유틸리티, 셸 등이 그러하다. macOS는 일부 데스크탑 어플 정도에서 쓰이고 있다.

macOS에 기본 포함된 유닉스 유틸리티들은 BSD의 소스코드에 기반하고 있다. macOS에서 기본적으로 창 관리자 내지 디스플레이 서버의 기능을 하는 것은 오래된 X11과 유사한 Quartz Compositor다. macOS에서 X11 응용프로그램을 구동하려면 Quartz 위에서 도는 X11 서버인 XQuartz를 따로 설치해야 하며 이렇게 구동한 X11 응용프로그램은 Cocoa API 프레임워크로 작성된 네이티브 macOS 앱과 이질적으로 표시된다.


14. Windows 대체 소프트웨어 일람[편집]




14.1. Windows용 소프트웨어 실행[편집]



리눅스에서 멀티버튼 마우스 설정이 어려운 경우 윈도우 VM에 마우스 디바이스를 패스쓰루 한후 윈도우 전용 마우스 셋팅 앱에서 버튼 등을 설정하고 패스쓰루를 해제하면 리눅스에서도 설정값 그대로 사용할 수 있다. 단 마우스에 플래시 저장 기능이 있어야 한다. 윈도우 VM에서 마우스 커서가 나타나지 않는 경우에는 마우스 포인터 크기를 조절하면 된다.

또한 KVM/QEMU 가상머신에서 기본 vga 드라이버를 대체하여 그래픽 가속을 구성할 수 있다. dGPU의 경우 GPU Full Pass-Through, vGPU 쉐어링 등을 사용할 수 있다. 따로 GPU 가상화가 불가능한 경우에는 QXL/SPICE, VirtIO(VirGL)/SPICE 모드 등을 사용할 수 있다.

GPU full passthrough시 별도의 kvm(keyboard/monitor/mouse) switch없이 가상머신 VM을 사용하도록 하는 Looking Glass, GPU PT시 vfio 드라이버와 기본 드라이버를 로드/언로드 설정을 해주는 유틸도 있다.


15. 관련 문서[편집]



[1] #[2] 출처: #[3] GNU Hurd. 1990년 첫 버전을 발표한 이래로 2023년 까지 안정화가 안 된 물건이다. 이 때문에 후술할 Linux vs GNU/Linux 명칭 논란에서 언급되기도 한다.[4] 리눅스 커널은 WSL2 부터 탑재됨.[5] LFS, 젠투, 아치 리눅스 같은 경우 그 모든 걸 유저가 선택해서 쓰는 걸 목표로 하고 있다.[6] NetBSD의 경우 지원되는 CPU 플랫폼이 11개 정도이다. NetBSD의 모토는 "Of course it runs NetBSD!" 이다.[7] 코어를 켜고 끄는 건 바이오스에서 설정해야 하는 것이 일반적이다. 그것을 OS가 작동할 때 설정할 수 있다는 소리다.[8] 이전에도 PS3 크랙 시도가 있긴 있었으나 이 사건을 빌미로 PS3 보안이 완전히 붕괴되었다고 봐야 한다. 해커들로서는 뭐가 오픈되었던 것이 다시 사라지는 것을 해킹의 대의명분으로 쓰기 참 좋기 때문. 참고로 이전에 PSN 해킹 대란이 원인이라 되어 있었는데, 이건 2011년 일이다.[9] 한때 전세계 33위, 미 국방부의 실시간 조작이 가능한 컴퓨터 중에서는 1위의 성능을 가진 물건이었다고 한다.[10] 데스크탑 환경에서 필수불가결한 요소인 freedesktop.org 소속의 프로젝트들 (X11, Wayland, Mesa3D 등), 레드햇과 같은 기업들도 참여하고 있는 서비스 매니저인 systemd 등[11] GNU에서 UNIX를 대체할 자체 커널을 개발하고자 발족한 프로젝트. 1990년 개발 시작[12] 이에 대한 저작자인 리누스의 입장은 v3에서 하드웨어에 대한 DRM 무력화를 동의하지 않는데다 v3+DRM 관련 조항 예외를 두어도 다른 사람이 포크해서 해당 예외 없이 GPLv3 원형으로 배포하는 경우 이를 막을 수 없고 이렇게 배포된 코드는 라이선스가 호환되지 않기 때문이라고 밝힌바 있다.[13] https://en.wikipedia.org/wiki/Linux_Mark_Institute[14] #[15] #[16] 이 사건의 여파가 상당이 컸는지 해당 사건 이후 배포판들은 대부분 해시값을 확인하라고 하며 아치 리눅스 같이 자체적으로 해시값이 일치하는지 확인하는 프로그램도 깔려있는 경우도 많다.[17] 윈도우 서버, 윈도우 시스템이라고도 한다.[18] GTK+에서 GTK로 명칭이 변경되었다. 무료이며 GTK 라이브러리 소스코드 라이선스도 LGPL로 앱 소스코드 공개의무가 없다.[19] 오픈소스 앱에 적합. 앱을 클로즈드 소스로 판매/배포 하려면 구독형태의 상업용 라이선스를 구입하여야 한다. 가격은 연간 $3,950이고 UI 빌더 툴도 별도로 연간 $999이 추가된다. 공식 기술지원이 없는 커뮤니티 라이선스의 경우 무료로 사용가능하나 GPL 라이선스로 빌드했거나 Qt Charts등과 같은 GPL로 배포되는 모듈을 사용하는 경우 앱 소스코드를 공개해야 한다, 앱 소스코드 공개없이 사용하려면 유료 라이선스를 구입해야 하거나 LGPL 로 빌드하고 GPL에 해당되는 모듈을 쓰면 안 된다.[20] 데스크톱용 GUI 환경을 그대로 사용할 수도, 필요 없는 부분을 치우고 아주 가벼운 GUI만 사용할 수도, 아니면 아예 사용하지 않을 수도 있다.[21] 아주 안 되는건 아니다.#[22] 구글, 사내 리눅스PC 우분투→데비안 갈아탄다. 물론 그 우분투도 데비안 기반으로 나온 운영체제니까 우분투 때랑 전반적인 환경은 크게 바뀌지 않을 것으로 보인다. [23] VNC 서버를 활성화해 연결해야되며 llvmpipe로 3D가속이 되며(사실상 소프트웨어 렌더링) 소리는 pulse audio를 별도로 불러와야 한다.[24] 밸브가 소스엔진을 리눅스에 포팅할 때도 그래픽 카드 제조사들과 긴밀히 협조해서 드라이버 개선(특히 멀티스레딩 지원)을 동시에 진행했다.[25] 둠3, 퀘이크3, 리턴 투 캐슬 울펜슈타인 등.[26] 다만 게임은 실행 파일만으로 즐길 수 없으므로 윈도우용 카피에서 실행 파일을 제외한 패키지 파일들(.pak)을 가져와야 한다.[27] JE 1.12.2를 기점으로 UWP(Win10, Win10 Mobile), 안드로이드, iOS, tvOS, 엑스박스 원, Nintendo Switch용 버전은 마인크래프트로 통합되었고 원래 '마인크래프트'였던 Win32, 리눅스, macOS용 버전은 '마인크래프트 자바 에디션'으로 변경되었다.[28] 특히 게임 뿐만 아니라 어도비 소프트웨어도 추가 패치만 하면 가능하다.[29] 렌더링을 위해 수십~수천개의 컴퓨터를 서버마냥 돌리는 것이다.[30] SGI에 탑재된 유닉스의 일종인 OS[31] 유닉스 셸에서 사용되는 스크립트를 전부 윈도우용 프로그램 또는 .bat으로 번역한다고 생각해보자.[32] 일부 프로그램들은 개인이 아닌 회사에만 리눅스 버전을 제공하기도 한다.[33] CLI 설치라 처음엔 머리가 아프지만, 익숙해지면 기본 설치/맞춤 설정까지 1시간도 채 안 든다! 하지만, 터미널 명령어는 다른 배포판들의 특성과 마찬가지로 명령어 변동이 있다. 꽤나 머리아픈 부분. 그럴 때는 아치 리눅스 위키를 참고하자.[34] 셸 스크립트의 경우 완전한 호환을 원하는 스크립트는 #! /bin/sh로 시작하고, 특정 셸을 통해 실행되기를 원하면 #! /bin/(셸의 이름)으로 시작하는 식이다. 물론 전자의 경우에는 제한된 기능만을 사용할 수 있다.[35] 주로 *.tar.gz 등 압축 파일로 배포된다.[36] 별도의 패키지 설치 과정 없이 실행 권한만을 준 후 바로 실행할 수 있다.[37] 안드로이드 제외. 안드로이드리눅스 커널만 가져다 썼을 뿐 사실상 다른 OS라 봐도 무방하다.[38] 영문에서 주로 'dependencies'라 하는 그것. 해당 프로그램의 구동에 필요한 부속 라이브러리 등을 의미한다.[39] 상술한 소스코드 직접 설치 방식이 그렇다.[40] 젠투 리눅스, 아치 리눅스, 데비안 sid 등 특별한 릴리즈 주기 없이 rolling-release를 사용하는 배포판은 모든 프로그램과 구성요소를 최신 버전으로 유지하여 의존성을 해결한다. 만약 한 의존 패키지의 버전이 올라가 이를 의존성으로 두는 패키지들이 더 이상 그 의존성을 해결할 수 없는 상황이 되면, 그 패키지들을 새 의존 패키지 버전에 의존성을 두도록 모두 다시 컴파일한다.[41] Docker의 경우 가상화 기술이긴 해도 패키지 매니저나 앱스토어는 아니다보니, 앱 설치를 위해 의존성 관리를 최적화한 앞의 것들과는 차이가 있다.[42] Java 그 자체를 쓰지 않고 이의 API를 이용한 것은 공정 이용이라고 보았다.[43] 반복을 위한 유일한 구문인 for문도 꽤나 기형적이고, continue나 break도 존재하지를 않아서 모든 반복문을 goto로 처리해야 한다! 이게 왜 문제냐면, 모두 goto로 처리하면 알아볼 수 없는 스파게티 코드가 될 가능성이 높기 때문이다.[44] Direct Rendering Manager[45] GTK용 비주얼 빌더. VS의 XAML Designer에 해당[46] 마소의 VS는 리눅스판이 없으나 Android Studio는 Linux판이 있다. Android 에뮬레이터도 지원하여 Linux에서 Android 앱 디자인에 최적. Java, Kotlin, 또는 Flutter 프레임워크가 있다. 웹브라우저에서 동작하는 웹 앱 소프트웨어 디자인도 가능하다.[47] 리눅스에서 WINE이나 Bottles를 사용하여 실행. 뷰어도 기본 편집 가능이 있다.[48] 무료 및 유료 버전이 있다. HiDPI모니터 사용시 설정창에서 Nimbus를 GTK+로 변경하여야 한다.[49] PDF 편집툴로도 사용가[50] 원노트 대체툴이다.[51] MPlayer와 같은 커맨드 라인 플레이어. MPlayer의 포크로 쓸데없는 기능들을 지우고 몇몇 새로운 기능을 추가했다. 화질도 더좋고 가벼워 Celluloid 등 여러 프론트엔드 미디어플레이어에서 백엔드로서 사용된다.