-
X윈도우
1) X윈도우란
- "플랫폼 독립적으로 작동하는 GUI환경을 구현하기 위해 서버 클라이언트 구조를 기반으로 X프로토콜을 통해 디스플레이에 윈도우를 그려주고, 입력장치를 통한 사용자와 상호작용을 가능케 하는 플랫폼"이다
2) 특징
- X프로토콜이라 불리는 네트워크 프로토콜을 사용, 서버클라이언트 모델을 사용해 네트워크로 연결 할 수 있다면 X윈도우를 사용할 수 있다.
- X서버는 X클라이언트의 요청에 대하여 처리 후 응답 or 이벤트를 직접 X클라언트에 보낼 수 있다.(x클라이언트: GUI 프로그램들, x서버: 디스플레이, 키보드)
- X클라이언트는 원격지 X서버 시스템에서 작동하는 응용 프로그램을 실행 할 수 있다.(X클라이언트를 사용하는 사용자가 응용 프로그램을 직접 설치할 필요는 없다.)
- X윈도우는 사용자 인터페이스에 독립적이다.
- 서버 클라이언트 모델을 사용하므로 이론적으로 X프로토콜만 준수할 수 있다면 어떤 시스템이든 X윈도우 이식이 가능하다.
- X서버
1) X서버란?
- 입출력 하드웨어(모니터, 키보드, 마우스 등)를 직접 제어한다.
- 클라이언트로부터 요청을 받아 화면에 그리기, 입력 이벤트 전달을 담당한다.
- X클라이언트
1) X클라이언트란
- 실제로 GUI 프로그램(예: Firefox, gedit, 터미널 등)이 X 클라이언트.
- 자신을 표시하기 위해 X 서버에 화면을 그려달라고 요청하고, 사용자 입력을 기다림.
- X프로토콜
1) X프로토콜이란
- X 서버와 클라이언트 간 통신을 위한 저수준 이진 프로토콜.
- TCP, UNIX 도메인 소켓, 기타 전송 메커니즘 위에서 동작
- x프로토콜의 기본 메세지는 Request, Reply, Event, Error로 구성
- x프로토콜의 메세지를 처리하기 위해 자료구조 Queue을 사용
-
Xilb,XCB
1) Xlib이란
- X 프로토콜을 추상화한 전통적인 C 라이브러리
- 대부분의 X 클라이언트는 Xlib을 통해 X 서버에 요청을 보냄
2)XCB란
- Xlib의 대체 라이브러리로, X 프로토콜에 더 직접적이고 현대적인 접근 제공
- Xlib보다 작고 빠르고 더 비동기적
- 완전 비동기 방식 지원
- X툴킷
1) X툴킷이란
- Xlib 위에 구축된 GUI 위젯 라이브러리로, 개발자가 버튼, 텍스트박스, 메뉴 등의 GUI 요소를 직접 구현하지 않고도 쉽게 사용할 수 있도록 해주는 고수준 인터페이스.
- X윈도우의 계층
1) 디스플레이 매니저(= 로그인 매니저)
- gerry, login을 대체하며, 사용자의 아이디, 비밀번호를 그래픽 방식으로 입력 받음.
- 원격지의 윈도우 매니저를 실행시키는 역할도 수행
2) X세션
- X서버와 X클라이언트가 연결되면 "X세션"이 형성(연결 상태)
- 생성된 X세션을 통해 X프로토콜에 맞춰 메세지가 송수신 될 수 있다.
- X서버에서 발생한 마우스 입려고가 같은 이벤트가 X클라이언트에게 전달되기도 함.
3) 윈도우 매니저


순차적으로 기본 로그인 시 -> startX로 gui -> gui종료