참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sunchan683&logNo=221463558428
X Window 개념 및 Xming 사용법
지난 포스팅 중에 리눅스 런레벨에 대한 포스팅이 있었습니다. https://blog.naver.com/sunchan683/2214588...
blog.naver.com
https://en.wikipedia.org/wiki/Windowing_system#Display_server
Windowing system - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Software that manages separately different parts of display screens In computing, a windowing system (or window system) is software that manages separately different parts of display s
en.wikipedia.org
X11 - 나무위키
프로그램이 크다. X11은 XFree86[1]의 라이센스 문제를 해결하기 위해 XFree86의 구버전을 토대로 개발한 프로그램이다. 그런데 하도 오래 쓰다보니 코드 최적화가 이루어질래야 이루어질 수가 없고,
namu.wiki
미리 알아 둘 부분 :
X11, X Window System, Xorg, X 등등 전부 같은 개념, 여기선
'X11'이라고 명칭한다.
X11은 GUI 환경을 위한 기본 프레임워크를 제공하는 프로그램이다.
리눅스든 윈도우든 GUI 환경을 구성 하는데 동일하게 X11 을 사용한다(x11대신 way뭐시기 쓰기도 함, 우분투 버전따라 다름)
리눅스에서 GUI화면이 켜지는 과정_1

창의 일반적인 요소입니다 .
창 장식 은 윈도우매니저 나 클라이언트가 그립니다 .
콘텐츠의 드로잉은 클라이언트의 작업입니다.
컴퓨팅 에서 윈도우 시스템 (또는 윈도우 시스템 )은 디스플레이 화면 의 다른 부분을 별도로 관리 하는 소프트웨어입니다 .
[1] 사용자 인터페이스에 대한 WIMP ( 창 , 아이콘 , 메뉴 , 포인터 ) 패러다임을 구현 하는 일종의 그래픽 사용자 인터페이스 ( GUI)입니다 .
현재 실행 중인 각 응용 프로그램 에는 사용자에게 GUI를 제공하기 위해 일반적으로 크기를 조정할 수 있고 일반적으로 직사각형의 디스플레이 표면이 할당됩니다.
이러한 창은 겹치는 것이 허용되지 않는 타일링 인터페이스 와 달리 서로 겹칠 수 있습니다.
일반적으로 창 장식 은 각 창 주위에 그려집니다.
슬라이더, 버튼 등과 같은 직접적인 사용자 상호 작용을 위한 그래픽 요소 인 창 장식 및 창 내부의 사용 가능한 위젯 프로그래밍은 위젯 툴킷 을 사용하여 쉽고 간단합니다 .
내 결론 :
윈도우 시스템은 gui 화면을 관리하는 소프트 웨어 이다.
메모장에 보면 [파일] [편집] [보기] [ㅁ] [X] 이런 것들이 다 그래픽사용자인터페이스(GUI) 임.
리눅스에서 GUI화면이 켜지는 과정_2
window manager, graphical interface : 창 관리자 [x] [-] [ㅁ] 등등 창 키우기, 창 줄이기 이런 기능들을 사용하게 해주는 플러그인, 또는 레이아웃과 패널들을 제어 하는 그래픽 라이브러리 및 소프트웨어 프레임워크 라고 함.
display server : X.Org 서버는 X11이가 관리하는 분산 네트워크 서비스
user : 유저 사람
x server , x client

GUI 의 기본 구성 요소 : 디스플레이 서버 는 윈도우 시스템을 구현합니다.
간단한 윈도우매니저 는 창 장식 을 그릴 뿐이지 만 합성 윈도우매니저는 더 많은 작업을 수행합니다.
창 시스템의 주요 구성 요소는 일반적으로 디스플레이 서버 라고 하며 , 창 서버 또는 합성기와 같은 대체 명칭도 사용 중입니다.
GUI를 실행하고 창에 표시하는 모든 응용 프로그램은 디스플레이 서버의 클라이언트입니다.
디스플레이 서버와 해당 클라이언트 는 일반적으로 디스플레이 서버 프로토콜이라고 하는 통신 프로토콜 을 통해 서로 통신합니다.
디스플레이 서버는 클라이언트와 사용자 간의 중재자입니다.
커널이 키보드 , 포인팅 장치 또는 터치스크린 과 같은 연결된 모든 입력 장치 로부터 받는 모든 입력을 커널 에서 받습니다.
올바른 클라이언트로 전송합니다. 디스플레이 서버는 또한 컴퓨터 모니터 에 대한 클라이언트의 출력을 담당합니다 .
사운드 출력은 일반적으로 디스플레이 서버에서 관리하지 않지만 사운드 볼륨은 일반적으로 GUI 애플릿을 통해 처리되며 어떤 응용 프로그램이 맨 위에 있는지 결정하는 것은 디스플레이 서버입니다.
윈도우 시스템은 컴퓨터 사용자가 동시에 여러 프로그램으로 작업할 수 있도록 합니다.
각 프로그램은 일반적으로 화면의 직사각형 영역인 자체 창에 GUI를 표시합니다. [ 인용 필요 ]
프로그래머 의 관점에서 윈도우 시스템은 그래픽 프리미티브를 구현합니다 .
ex) 글꼴 렌더링 또는 화면에 선 그리기, 창 관리자와 같은 그래픽 인터페이스의 상위 수준 요소에서 사용할 그래픽 하드웨어의 추상화를 제공합니다. [ 인용 필요 ]
디스플레이 서버 프로토콜은 씬 클라이언트 의 구현을 용이하게 하는 네트워크 가능 또는 네트워크 투명 일 수 있습니다 . [ 인용 필요 ]
내 결론 :
(메모장같은)창은 디스플레이 서버로 구성이 되어있다.
GUI를 실행하고 (메모장같은)창에 표시하는 모든 응용 프로그램( [파일] [편집] [보기] [ㅁ] [X] 같은)은 디스플레이 서버의 클라이언트임.
따라서 구조가 [사용자] <------> [디스플레이서버] <-----> [클라이언트] 로 중재자 역할을 가짐.
순서
1. [사용자] 가 클릭 키보드입력 터치스크린 Action
2. 커널에서 Action(입력) 을 캐치 >ps> Action예 ) 키보드, 포인팅장치(마우스,노트북터치패드같은 화살표움직이는것들),터치스크린
3. 커널이 Action(입력)을 디스플레이 서버로 보내줌
4. 디스플레이 서버에서 Action(입력)을 보고 판단해서 알맞은 클라이언트 프로그램(메모장,브라우저,터미널 등) 을 실행해줌
5. 실행된 클라이언트 프로그램에 알맞게 윈도우매니저 or 클라이언트 프로그램이 GUI화면을 띄워줍니다.
(ex) 메모장에 'a'를 쓴다면)
1. 키보드 'a' 타이핑 (Action)
2. 키보드'a' -> 커널
3. 커널'a' -> 디스플레이서버
4. 디스플레이서버 'a' -> 클라이언트 프로그램
5. 클라이언트 프로그램 or 윈도우매니저 -> 메모장에 'a' 출력( GUI화면 )
x11 원리 개념 , 리모트PC의 GUI 화면을 host 내에서 키는 과정

X.Org Server 는 X11 프로토콜을 통해 Amarok 와 같은 클라이언트와 통신 합니다 .
주요 기사: X 윈도우 시스템 코어 프로토콜 및 X 윈도우 시스템
디스플레이 서버의 한 예는 커널(일반적으로 Linux 또는 BSD 와 같은 Unix 계열 커널) 위에서 실행되는 X.Org Server 입니다.
사용자 입력 데이터(예: Linux의 evdev 에서)를 받아 클라이언트 중 하나로 전달합니다.
디스플레이 서버는 클라이언트로부터 데이터도 수신합니다.
데이터를 처리하고 합성을 수행하며 Linux에서는 DRM , gem 또는 KMS 드라이버 의 세 가지 커널 구성 요소 중 하나로 데이터를 전달합니다 .
컴포넌트는 프레임 버퍼에 데이터를 쓰고 프레임 버퍼 의 내용은 연결된 화면으로 전송되어 표시됩니다. X는 GLX 에 의존합니다 .
디스플레이 서버 개념의 구현 중 하나는 X Window System , 특히 실제로 사용되는 버전인 X.Org Server 와 Xlib 및 XCB 클라이언트 라이브러리입니다.
X.Org Server는 디스플레이 서버이지만 현재 구현에서는 두 번째 프로그램인 합성 창 관리자 에 의존하여 합성 을 수행합니다. 예는 Mutter 또는 KWin 입니다.
X11 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버의 주목할만한 예로는 X.Org Server , XFree86 , XQuartz 및 Cygwin/X 가 있으며
X11 디스플레이 서버 프로토콜을 구현하는 클라이언트 라이브러리는 Xlib 및 XCB 입니다.
내 결론 :
여태 위의 내용까지는 Windows 내에서 사용자입력 부터 커널,GUI 클라이언트 프로그램 호출 까지의 과정을 배웠다.
위의 개념들과 x11이라는 x윈도우 시스템을 이용한다면,
리모트pc(WSL2)에 있는 Client program을 실행하고 GUI 부분은 UserPC(windows)에서 실행이 가능하다. 라는 결론이 나옴
'협업툴,가상환경 정리 > wsl2_명렁어-docker_GUI_with_x11' 카테고리의 다른 글
1_docker_GUI_in_linux (0) | 2022.12.13 |
---|---|
wsl 명령어 정리 (0) | 2022.10.12 |
3_docker_GUI_in_ssh (0) | 2022.07.12 |
2_docker_GUI_in_wsl2(window docker) (0) | 2022.07.11 |
댓글