[CS] X 윈도우

최민길(Gale)·2023년 8월 5일
1

CS 탐구

목록 보기
7/13

안녕하세요 오늘은 X 윈도우에 대해 알아보는 시간을 갖도록 하겠습니다.

X 윈도우란 플랫폼 독립적으로 작동하는 GUI 환경을 구현하기 위해 디스플레이 장치에 윈도우를 그려주고 마우스 및 키보드 등 입력장치를 통해 사용자와의 상호작용을 가능하게 하는 플랫폼입니다. X 윈도우는 서버 클라이언트 모델을 사용하여 네트워크로 연결될 수만 있다면 언제든 사용할 수 있습니다. 이로 인해 X 서버와 X 클라이언트가 정보를 주고 받기 위한 메시지 형식을 정의한 통신 규약인 X 프로토콜만 준수할 수 있다면 어떤 시스템이든 쉽게 X 윈도우를 이식할 수 있습니다.

X 윈도우 계층은 크게 X 서버 계층X 클라이언트 계층으로 나뉘어집니다.

X 서버 계층은 키보드, 마우스, 디스플레이 등의 디바이스와 직접 통신을 수행하고 관리하는 역할을 담당하며 디스플레이 장치를 제어하고 X 클라이언트 게층에 디스플레이 서비스를 제공합니다. 로컬(유닉스 도메인 소켓) 및 원격(6000 포트)로 다수의 X 클라이언트와 연결을 허용하며, X 프로토콜의 메시지를 처리하기 위해 request queue, event queue 등을 운용합니다.

X 서버 계층의 가장 처음 디스플레이 매니저가 존재합니다. 디스플레이 매니저는 그래픽으로 구성된 로그인 유저 인터페이스를 사용자에게 제공하는 역할을 담당하며 X 윈도우 프로세스에서 가장 첫 단계에서 실행됩니다. 로그인 인증이 성공하면 사용자의 세션을 시작하고 디스플레이 서버와 사용자의 환경을 초기화합니다. 디스플레이 매니저가 실행된 후 X 클라이언트에게 요청을 받을 준비를 하여 요청이 오면 요청 내용을 화면에 출력합니다.

X 서버에 X 클라이언트가 연결되면 X 세션이 형성됩니다. 이렇게 생성된 X 세션을 통해 X 프로토콜에 맞춰 메시지가 송수신됩니다.

X 클라이언트 계층은 Xlib을 사용하여 작성된 일종의 응용 프로그램입니다. 쉽게 말해 그림판, 메모장 등 사용자들과 상호작용하는 프로그램들입니다. Xlib은 C언어로 작성된 X 윈도우 시스템 프로토콜 클라이언트 라이브러리로 X 프로토콜의 상세 내용을 알지 못해도 제공하는 API를 통해 X 클라이언트를 개발할 수 있습니다. X 클라이언트에서는 X 서버에 그래픽 요청을 보내고 요청을 받은 X 서버에서 요청값을 화면에 출력합니다.

X 클라이언트 계층에는 윈도우 매니저 - 데스크탑 환경 & 위젯 툴킷 - 어플리케이션 등이 존재합니다.

윈도우 매니저는 X 윈도우 상에서 윈도우의 그래픽 요소를 관리하는 매니저 프로그램입니다. X 클라이언트들이 화면에 표시되는 방법 등을 결정하며 스택형, 타일형, 복합형 등 여러 타입이 존재합니다.

데스크탑 환경은 윈도우 매니저 뿐만 아니라 계정 관리, 디바이스 관리, 문서 관리 등 데스크탑 구성을 위한 모든 애플리케이션을 포함한 패키지 형태입니다.

즉 정리하자면, X 윈도우는 X 클라이언트에서 X 서버로 그래픽 요청을 보내면 요청받은 X 서버에서 디스플레이에 표시하여 사용자에게 보여주는 프로세스로 동작합니다.

profile
저는 상황에 맞는 최적의 솔루션을 깊고 정확한 개념의 이해를 통한 다양한 방식으로 해결해오면서 지난 3년 동안 신규 서비스를 20만 회원 서비스로 성장시킨 Software Developer 최민길입니다.

0개의 댓글