이 글은 그래픽이 어떻게 구성되는지에 대한 내용입니다. Linux и из каких компонентов она состоит. В ней много скриншотов с различными реализациями сред рабочих столов.
Если вы не сильно различаете KDE и GNOME или различаете, но хотели бы узнать, какие еще есть альтернативы, то эта статья для вас. Она обзорная, и хотя в ней много названий и немного терминов, материал будет также полезен начинающим и только посматривающим в сторону Linux.
Тема может заинтересовать и продвинутых пользователей при настройке удаленного доступа и при реализации тонкого клиента. Часто встречаю вполне матерых линуксойдов с утверждениями «на сервере только командная строка, и графику подробнее изучать не планирую, так как это всё нужно для простых пользователей». Но даже знатоки Linux с большим удивлением и радостью открывают для себя опцию «-X» у команды ssh (а для этого полезно понимать работу и функции X-сервера).

Я почти 15 лет обучаю на курсах Linux "에서» и уверен, что многие из тех более пяти тысяч человек, которых обучил, читают и наверняка пишут статьи на Хабр. Курсы всегда очень насыщены (средняя продолжительность курса — пять дней), нужно рассказать темы, на полноценное знакомство с которыми требуется минимум дней десять. И всегда в ходе курса в зависимости от аудитории (новички собрались или матерые администраторы), а также от «вопросов из зала» я делаю выбор, что донести подробнее, а что — более поверхностно, чтобы посвятить больше времени утилитам командной строки и их практическому применению. Таких тем, которыми приходится немного жертвовать, достаточно. Это «История Linux», «Различия в дистрибутивах Linux», «Про лицензии: GPL, BSD, …», «Про графику и среды рабочих столов» (тема этой статьи) и др. Не то, чтобы они не важны, но обычно есть множество более актуальных «здесь и сейчас» вопросов и всего каких-то пять дней… Однако для общего понимания основ ОС Linux, понимания доступного разнообразия (чтобы даже пользуясь одним конкретным дистрибутивом Linux, всё-таки иметь более широкий взгляд на весь этот огромный и необъятный мир, что зовется «Linux») изучать эти темы полезно и нужно.
이 글 전체에서 각 구성 요소에 대해 해당 주제를 더 깊이 파고들고 싶어하는 사람들을 위해 링크를 제공합니다. 예를 들어, 위키피디아 문서로의 링크가 있습니다(영어와 러시아어 문서가 있는 경우 보다 완전하고 유용한 버전을 나타냅니다).
주요 예제와 스크린샷에서는 openSUSE 배포판을 사용했습니다. 저장소에 많은 수의 패키지가 들어 있는 다른 커뮤니티에서 개발한 배포판을 사용하는 것도 가능했을 것입니다. 상업용 배포판에서는 데스크톱 디자인의 다양성을 보여주는 것이 어렵지만 가능합니다. 왜냐하면 이러한 배포판은 종종 가장 잘 알려진 데스크톱 환경 중 하나나 두 개만 사용하기 때문입니다. 이런 방식으로 개발자는 안정적이고 디버깅이 가능한 OS를 출시하는 데 작업 범위를 좁힙니다. 동일한 시스템에서 저장소에서 찾은 모든 DM/DE/WM(아래에 해당 용어에 대한 설명이 있음)을 설치했습니다.
"파란색 프레임"이 있는 스크린샷은 openSUSE에서 촬영되었습니다.
다른 배포판에서는 "흰색 프레임"으로 스크린샷을 찍었는데, 스크린샷에 표시되어 있습니다.
"회색 프레임"이 있는 스크린샷은 지난 몇 년간의 데스크톱 디자인의 예로 인터넷에서 가져온 것입니다.
자, 시작합시다.
그래픽을 구성하는 주요 구성 요소
시스템이 시작될 때 실행되는 순서대로 세 가지 주요 구성 요소를 강조하여 나열하겠습니다.
- DM(디스플레이 관리자)
- 디스플레이 서버;
- DE(데스크톱 환경).
또한, 데스크톱 환경의 중요한 하위 항목은 다음과 같습니다.
- 앱 관리자/런처/스위처(시작 버튼)
- WM(윈도우 관리자)
- 데스크톱 환경과 함께 제공되는 다양한 소프트웨어.
각 항목에 대한 자세한 내용은 다음과 같습니다.
DM(디스플레이 관리자)
"그래픽"을 시작할 때 실행되는 첫 번째 애플리케이션은 DM(Display Manager)입니다. 주요 업무는 다음과 같습니다.
- 시스템에 어떤 사용자를 허용할지 묻고, 인증 데이터(비밀번호, 지문)를 요청합니다.
- 실행할 데스크톱 환경을 선택합니다.
현재 다양한 배포판에서 널리 사용되는 것은 다음과 같습니다.
- (변경됨 ),
- ,
- ,
- .
- Также можно упомянуть Fly-DM (используемый в AstraLinux).
기존 DM 목록은 최신 상태로 유지됩니다.




다음 스크린샷은 동일한 LightDM 디스플레이 관리자를 사용하지만, 배포판이 다르다는 점에 주목할 필요가 있습니다(배포판 이름은 괄호 안에 표시되어 있습니다). 다양한 배포판의 디자이너들의 작업 덕분에 이 DM이 얼마나 다르게 보일 수 있는지 확인해 보세요.





이러한 다양성에서 가장 중요한 것은 그래픽을 실행하고 사용자가 이 그래픽에 접근할 수 있도록 하는 애플리케이션이 있으며, 이 애플리케이션에는 모양과 기능(디자인 환경 선택, 사용자 선택, 시각 장애인 사용자를 위한 버전, 프로토콜을 통한 원격 접근 가능성)이 약간씩 다른 구현이 있다는 점을 분명히 하는 것입니다. ).
디스플레이 서버
디스플레이 서버는 일종의 그래픽 기반으로, 주된 역할은 비디오 카드, 모니터, 다양한 입력 장치(키보드, 마우스, 터치패드)를 다루는 것입니다. 즉, "그래픽"으로 렌더링되는 애플리케이션(예: 브라우저나 텍스트 편집기)은 장치와 직접 작동하는 방법을 알 필요가 없고 드라이버에 대해서도 알 필요가 없습니다. X Window가 이 모든 작업을 처리합니다.
Когда говорится про Display Server, то много лет в Linux, да и в Unix имелось в виду приложение 또는 일반적으로 X(Xs)라고 합니다.
이제 많은 배포판이 X를 대체품으로 구현하고 있습니다. .
다음 내용도 읽어보세요:
- ,
- ,
- (예: PuTTY를 사용하여 그래픽 애플리케이션을 원격으로 시작하는 데 필요함).
먼저 X와 그 안에 있는 몇몇 그래픽 애플리케이션을 실행해 보겠습니다.
워크숍 "X 및 X를 활용한 애플리케이션 실행"
새로 생성된 사용자 webinaruser로 모든 작업을 수행하겠습니다(루트로 모든 작업을 수행하는 것이 더 쉽지만 안전하지는 않습니다).
- X'am이 장치에 접근해야 하므로 접근 권한을 부여합니다. 로그(/home/webinaruser/.local/share/xorg/Xorg.77.log)에서 X를 시작할 때 발생하는 오류를 보고 장치 목록을 확인했습니다.
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- 그 후 X를 실행합니다.
% X -retro :77 vt8 &
옵션: * -retro - 기본 검정색 대신 "회색" 클래식 배경으로 시작합니다. * :77 — 화면 번호를 지정합니다(적절한 범위 내에서 가능하지만 :0은 이미 실행 중인 그래픽으로 채워져 있을 가능성이 가장 높음). 이는 여러 개의 실행 중인 X를 구별할 수 있는 일종의 실제 고유 식별자입니다. * vt8 - X가 표시될 터미널(여기서는 /dev/tty8)을 지정합니다.
- 그래픽 애플리케이션을 실행합니다.
이를 위해 먼저 애플리케이션이 실행 중인 X 중 어느 X에 무엇을 그려야 할지 이해할 수 있는 변수를 설정합니다.
% export DISPLAY=":77"
실행 중인 X 목록은 다음과 같이 볼 수 있습니다.
ps -fwwC X
변수를 설정한 후에는 X에서 애플리케이션을 실행할 수 있습니다. 예를 들어 시계를 실행합니다.
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &

이 글의 주요 아이디어와 결론:
- X는 장치에 대한 액세스가 필요합니다: 터미널, 비디오 카드, 입력 장치,
- X 자체에는 어떠한 인터페이스 요소도 표시되지 않습니다. 그래픽 애플리케이션을 실행하기 위한 특정 크기(예: 1920x1080 또는 1024x768)의 회색(--retro 옵션 사용 시) 또는 검은색 캔버스입니다.
- "십자가"의 움직임은 X가 마우스 위치를 추적하고 이 정보를 해당 위치에서 실행되는 애플리케이션으로 전송한다는 것을 보여줍니다.
- X는 또한 키보드의 키 입력을 포착하여 이 정보를 애플리케이션에 전달합니다.
- DISPLAY 변수는 그래픽 애플리케이션에 어떤 화면(각 X는 실행 시 고유한 화면 번호로 실행됨)을 지정하고, 따라서 내 컴퓨터에서 실행 중인 애플리케이션 중 어떤 화면이 X를 그려야 하는지 알려줍니다. (또한 이 변수에 원격 컴퓨터를 지정하고 네트워크의 다른 컴퓨터에서 실행 중인 X로 출력을 보낼 수도 있습니다.) X는 -auth 옵션 없이 실행되었으므로 XAUTHORITY 변수나 xhost 명령을 처리할 필요가 없습니다.
- 그래픽 애플리케이션(또는 X 클라이언트라고 함)은 X에 그려지며, 이를 이동하거나 닫거나 변경할 수 없습니다. "-g (너비)x(높이)+(왼쪽 가장자리에서 Shift)+상단 가장자리에서 Shift)". 각각 오른쪽과 아래쪽 가장자리에서 빼기 기호를 붙입니다.
- 언급할 만한 두 가지 용어는 X 서버(X의 명칭)와 X 클라이언트(X에서 실행되는 모든 그래픽 애플리케이션의 명칭)입니다. 이 용어를 이해하는 데 약간의 혼란이 있으며, 많은 사람들이 이를 정반대로 이해합니다. "클라이언트 머신"(원격 액세스 용어)에서 "서버"(원격 액세스 용어)에 연결하여 서버의 그래픽 애플리케이션을 내 모니터에 표시하면 X 서버는 모니터가 있는 머신(즉, "서버"가 아닌 "클라이언트 머신")에서 시작되고 X 클라이언트는 "서버"에서 시작되어 실행되지만 "클라이언트 머신"의 모니터에 표시됩니다.

DE 구성 요소
다음으로, 데스크탑을 구성하는 일반적인 구성 요소를 살펴보겠습니다.
DE 구성 요소: 시작 버튼 및 작업 표시줄
먼저 "시작" 버튼부터 시작해 보겠습니다. 이는 종종 작업 표시줄에 사용되는 별도의 애플릿입니다. 실행 중인 애플리케이션 간에 전환하기 위한 애플릿도 일반적으로 있습니다.

다양한 데스크톱 환경을 살펴본 후, 이러한 애플리케이션을 "앱 관리자(런처/스위처)"라는 일반 명칭으로 일반화하겠습니다. 즉, 애플리케이션을 관리(실행 중인 애플리케이션을 시작하고 전환)하는 도구입니다. 또한 이러한 유형의 애플리케이션의 예가 되는 유틸리티도 표시하겠습니다.
- 클래식(화면의 한 모서리의 전체 길이) "작업 표시줄"의 "시작" 버튼 형태일 수 있습니다.
○ xfce4-패널,
○ 메이트 패널/그놈 패널,
○ 발라패널,
○ 틴트2. - "MacOS 스타일 작업 표시줄"(전체 엣지 버전이 아님)을 선택할 수도 있지만, 많은 작업 표시줄을 두 버전 모두에서 표시할 수 있습니다. 여기서 가장 큰 차이점은 순전히 시각적인 면, 즉 "아이콘 위에 마우스를 올리면 아이콘이 확대되는 효과"가 있다는 점입니다.
○ 부두,
○ 라떼독,
○ 카이로-독,
○ 판자. - 또는 단축키를 누르면 애플리케이션을 실행하는 서비스(많은 데스크톱 환경에는 사용자가 단축키를 직접 설정할 수 있는 유사한 구성 요소가 있음):
○ sxhkd.
- 또한 다양한 메뉴 형태의 "런처"(영어 Launch(런치)에서 시작)가 있습니다.
○ dmenu-실행,
○ 로피-쇼 드런,
○ 앨버트,
○ 으르렁.

DE 구성 요소: WM(Window Manager)
WM(Window Manager)은 창을 관리하는 애플리케이션으로, 다음과 같은 기능을 추가합니다.
- 바탕 화면 주변으로 창을 이동합니다(창의 어느 부분에서든 Alt 키를 누르고 있는 표준 방법 포함, 제목에서만이 아님)
- 예를 들어 "창 프레임"을 끌어서 창 크기를 조절합니다.
- 창 인터페이스에 "제목"과 애플리케이션을 최소화/최대화/닫기 위한 버튼을 추가합니다.
- 어떤 애플리케이션이 "초점"에 있는지에 대한 개념입니다.

가장 잘 알려진 DE를 나열해 보겠습니다(괄호 안은 기본적으로 사용되는 DE를 나타냈습니다).
- (그놈3),
- (친구),
- (그놈2),
- (계피),
- (KDE)
- (XFCE),
- .

DE 요소가 포함된 오래된 WM도 나열하겠습니다. 저것들. 윈도우 관리자 외에도 시작 버튼과 작업 표시줄과 같은 요소가 있는데, 이는 본격적인 DE에서 흔히 볼 수 있는 요소입니다. IceWM과 WindowMaker가 이미 2020년에 업데이트된 버전을 출시했다면 얼마나 "오래된" 버전일까요? "오래된" 버전이 아니라 "옛날 것"이라고 하는 게 더 정확할 것 같습니다.
- ,
- ,
- , , , ,
- ...





"클래식"("스택 창 관리자") 외에도 별도로 언급할 가치가 있습니다. 이를 통해 전체 화면에 창을 바둑판식으로 배열할 수 있으며, 일부 애플리케이션의 경우 전체 화면에 실행 중인 각 애플리케이션에 대해 별도의 데스크톱을 가질 수 있습니다. 이전에 이런 인터페이스를 사용한 적이 없는 사람들에게는 다소 특이할 수 있지만, 저는 이런 인터페이스를 꽤 오랫동안 사용해 왔기 때문에 매우 편리하다고 말할 수 있고, 이런 인터페이스에 금방 익숙해질 수 있습니다. 익숙해진 뒤에는 "고전적인" 윈도우 관리자가 더 이상 편리하지 않게 느껴집니다.
- ,
- ,
- ,
- ,
- ,
- 분위수,
- bspwm,
- 허브스트루프트움,
- ...
- 쌍둥이,
- .

프로젝트를 별도로 언급하는 것도 가치가 있습니다. и такое понятие, как «Композитный менеджер окон», использующий возможности аппаратного ускорения для отображения прозрачности, теней, различных трёхмерных эффектов. Около 10 лет назад был бум 3D-эффектов на Linux-десктопах. Сейчас многие из оконных менеджеров, встроенных в DE, частично используют композитные возможности. Недавно появился — Wayland에서 Compiz와 비슷한 기능을 가진 제품입니다.

다양한 창 관리자의 자세한 목록도 다음에서 찾을 수 있습니다. .
DE 구성 요소: 기타
다음 데스크톱 구성 요소도 주목할 만합니다(여기서는 애플리케이션 유형을 설명하기 위해 확립된 영어 용어를 사용했으며, 이는 애플리케이션 자체의 이름이 아닙니다).
- 애플릿:
- 소프트웨어(위젯 툴킷) - 종종 특정 "최소 세트"의 소프트웨어가 환경과 함께 제공됩니다.
DE(데스크톱 환경)
위에 나열된 구성 요소는 소위 "데스크톱 디자인 환경"을 만듭니다. 종종 모든 구성 요소가 동일한 그래픽 라이브러리와 동일한 디자인 원칙을 사용하여 개발됩니다. 이런 방식을 사용하면 적어도 애플리케이션의 모양에 대한 공통적인 스타일이 유지됩니다.
현재 존재하는 데스크톱 환경은 다음과 같습니다.
가장 흔한 것은 GNOME과 KDE이고, XFCE가 바로 그 뒤를 따릅니다.

다양한 매개변수의 비교는 표 형태로 해당 항목에서 확인할 수 있습니다. .
DE 품종

Даже есть такие интересные примеры уже из истории: в 2003-2007 годах для Linux было сделано «3D-оформление рабочего стола» с названием «Project Looking Glass» от фирмы Sun. Я сам пользовался этим рабочим столом, точнее «игрался», так как пользоваться было тяжело. Это «3D-оформление» было написано на Java во времена, когда не было ещё видеокарт с поддержкой 3D. Потому все эффекты пересчитывались процессором, и компьютер должен был быть очень мощным, иначе все работало медленно. Но зато получалось красиво. Трёхмерные плашки приложений можно было поворачивать/разворачивать. Можно было поворачиваться в цилиндре рабочего стола с обоями из панорамы в 360 градусов. Было несколько своих красивых приложений: например, прослушивание музыки в виде «смены CD-дисков» и т. д. Можно на youtube посмотреть 이 프로젝트에 관해서는, 그 당시에는 고품질의 영상을 업로드할 방법이 없었기 때문에 영상의 품질이 좋지 않을 가능성이 높습니다.

가벼운 작업대. 이 프로젝트는 1996년부터 꽤 오랫동안 진행되어 왔습니다. 최근 몇 년 동안 많은 배포판에서 가볍고 "클래식한" 데스크톱 인터페이스를 필요로 하는 무거운 KDE와 GNOME과 대조적으로 이 프로젝트는 꽤 인기를 얻었습니다. 많은 설정과 자체 프로그램이 있습니다: 터미널(xfce4-terminal), 파일 관리자(thunar), 이미지 뷰어(ristretto), 텍스트 편집기(mousepad).

Используется в дистрибутиве «Elementary OS». Тут можно сказать, что есть «рабочие столы», которые разрабатываются и используются в рамках одного отдельного дистрибутива и не сильно используются (если не сказать «совсем не используются») в других дистрибутивах. По крайней мере они пока не набрали популярность и не убедили большую часть аудитории в преимуществах своего подхода. Pantheon ставит перед собой задачу построить интерфейс, похожий на macOS.

도크 패널이 있는 옵션:

그래픽 효과와 위젯에 큰 중점을 두었습니다(다른 데스크톱 환경에 달력/시계와 같은 데스크톱 위젯이 없던 시절부터). 자체 라이브러리를 사용합니다. 자체적으로 "아름다운" 응용 프로그램이 많이 있습니다. 터미널(Terminology), 비디오 플레이어(Rage), 사진 뷰어(Ephoto) 등이 있습니다.

Это форк Enlightenment17, который используется в дистрибутиве BodhiLinux.

원래는 KDE에 대한 대항마로 만들어진 "클래식" 데스크톱 인터페이스로, QT 라이브러리를 기반으로 작성되었으며, 당시 상업용 배포에는 그다지 편리하지 않은 라이선스로 배포되었습니다.

세 번째 버전부터 GNOME에는 GNOME Shell이 제공되었는데, 이는 "비고전적인 모습"을 가지고 있어 모든 사용자가 좋아하지는 않았습니다(사용자는 인터페이스의 급격한 변화를 받아들이기 어렵습니다). 그 결과, 이 데스크탑을 "클래식" 스타일로 계속 개발하는 포크 프로젝트인 MATE와 Cinnamon이 등장했습니다. 많은 상업용 배포판에서 기본적으로 사용됩니다. 다양한 설정과 자체 응용 프로그램이 있습니다.

GNOME2를 기반으로 만들어졌으며 이러한 디자인 환경을 계속 개발하고 있습니다. GNOME2에서 사용되었던 많은 수의 설정과 애플리케이션 포크가 포함되어 있습니다(새로운 이름이 사용됨). 이는 포크와 GNOME3의 새로운 버전을 혼동하지 않기 위해서입니다.

GNOME Shell의 포크로, 사용자에게 "클래식" 스타일 인터페이스(GNOME2에서와 같음)를 제공합니다.
GNOME Shell과 동일한 응용 프로그램과 많은 수의 설정을 제공합니다.

Solus 배포판의 일부로 개발되었지만, 현재는 다양한 다른 배포판에서 독립형 데스크톱으로 제공되는 GNOME의 "클래식" 스타일 포크입니다.

(또는 종종 간단히 KDE라고 불립니다)
KDE 프로젝트에서 개발한 데스크톱 환경.
이 데스크톱에는 그래픽 인터페이스에서 일반 사용자가 사용할 수 있는 수많은 설정이 있으며, 이 데스크톱 내에서 개발된 많은 그래픽 애플리케이션도 있습니다.

2008년에 KDE는 새로운 구현체인 KDE Plasma를 출시했습니다(데스크톱 엔진은 대대적으로 다시 작성되었습니다). GNOME/MATE와 마찬가지로 모든 KDE 팬이 이를 좋아한 것은 아닙니다. 그 결과, 이전 버전의 개발을 계속하는 프로젝트 포크가 등장했는데, 이를 TDE(Trinity Desktop Environment)라고 합니다.

Одна из новых сред рабочего стола, написанная с использованием Qt (на котором написан KDE). Имеет много настроек и достаточно красивый (хотя это субъективное понятие) и проработанный интерфейс. Разрабатывается в рамках дистрибутива Deepin Linux. Также есть пакеты под другие дистрибутивы

파리
Пример среды рабочего стола, написанной с использованием Qt. Разрабатывается в рамках дистрибутива Astra Linux.

가벼운 데스크톱 환경. 이전의 여러 예와 마찬가지로 이 예제도 Qt를 사용하여 작성되었습니다. 실제로 이는 LXDE 프로젝트의 연장선이며 Razor-qt 프로젝트와 합병된 결과입니다.
Как видите, рабочий стол в Linux может выглядеть очень по-разному и на вкус любого здесь найдётся подходящий интерфейс: от очень красивых и с 3D-эффектами до минималистических, от «классических» до необычных, от активно использующих ресурсы системы до легковесных, от больших экранов до планшетов/смартфонов.
Ну и хочется надеяться, что у меня получилось дать представление о том, из каких основных компонентов состоит графика и рабочий стол в ОС Linux.
본 기사의 자료는 2020년 XNUMX월에 진행된 웨비나에서 테스트되었습니다. 시청할 수 있습니다 .
그게 전부입니다. 도움이 되었으면 좋겠습니다. 질문이나 의견이 있으시면 적어주세요. 기꺼이 답변해드리겠습니다. 그럼 와서 공부하세요 !
출처 : habr.com
