X Window 시스템 프로토콜 및 아키텍처

X Window System protocols and architecture
X Window 시스템 로고

컴퓨팅에서 X 윈도 시스템(일반적으로: X11, 또는 X)은 비트맵 디스플레이를 위한 네트워크 투명 윈도우 시스템이다.이 기사는 X11의 프로토콜과 기술 구조를 상세히 기술하고 있다.

클라이언트-서버 모델 및 네트워크 투명성

이 예에서 X 서버는 키보드와 마우스로부터 입력을 받아 화면에 표시한다.웹 브라우저터미널 에뮬레이터가 사용자의 워크스테이션에서 실행되고, 터미널 에뮬레이터는 원격 서버에서 실행되지만 사용자의 기계에 의해 제어된다.원격 응용 프로그램은 로컬과 동일하게 실행된다는 점에 유의하십시오.

X는 클라이언트-서버 모델을 사용한다.X 서버 프로그램은 그래픽 디스플레이가 있는 컴퓨터에서 실행되며 다양한 클라이언트 프로그램과 통신한다.X 서버는 사용자와 클라이언트 프로그램을 중개하는 역할을 하며, 클라이언트 프로그램의 그래픽 출력(창)을 위한 TCP 포트 6000의 요청을 받아들여 이를 사용자(디스플레이)에게 표시하고, 사용자 입력(키보드, 마우스)을 받아 클라이언트 프로그램에 전송한다.

X에서 서버는 사용자의 컴퓨터에서 실행되는 반면 클라이언트는 원격 컴퓨터에서 실행될 수 있다.이 용어는 클라이언트가 일반적으로 사용자의 로컬 컴퓨터에서 실행되고 서버가 원격 컴퓨터에서 실행되는 클라이언트-서버 시스템의 일반적인 개념을 뒤집는다.X Window 용어는 X Window 프로그램이 모든 활동의 중심에 있다는 관점을 취한다. 즉, X Window 프로그램은 사용자의 마우스와 키보드 입력으로부터 요청을 받아들이고 응답한다.따라서 (원격 컴퓨터의) 애플리케이션은 X Window 서버 프로그램의 클라이언트로 간주된다.

서버와 클라이언트 사이의 통신 프로토콜네트워크로 명확하게 실행된다: 클라이언트와 서버는 동일한 기계에서 실행되거나 다른 기계에서 실행될 수 있으며, 아마도 다른 아키텍처와 운영체제와 함께 실행될 수 있다.클라이언트와 서버는 암호화된 연결을 통해 연결을 터널링함으로써 인터넷을 통해 안전하게 통신할 수 있다.[1]

설계원리

밥 셰이플러와 짐 게티스는 X의 초기 원리를 다음과 같이 제시하고 있다(셰이플러/게티 1996에 열거된 바와 같다).

  • 구현자가 실제 응용 프로그램을 사용하지 않고 완료할 수 없는 경우가 아니면 새 기능을 추가하지 마십시오.
  • 제도가 무엇인지 결정하는 것만큼 제도가 무엇인지 결정하는 것도 중요하다.세계의 모든 요구에 부응하지 말고, 상향 호환되는 방식으로 추가 니즈를 충족할 수 있도록 시스템을 확장할 수 있도록 하십시오.
  • 하나의 예에서 일반화하는 것보다 더 나쁜 것은 전혀 예시하지 않고 일반화하는 것이다.
  • 만약 문제가 완전히 이해되지 않는다면, 아마 어떤 해결책도 제공하지 않는 것이 가장 좋을 것이다.
  • 작업의 10%에 대해 원하는 효과의 90%를 얻을 수 있다면 더 간단한 솔루션을 사용하십시오.(참고 항목: 최악이 낫다.)
  • 최대한 복잡성을 격리하십시오.
  • 정책보다는 메커니즘을 제공한다.특히 사용자 인터페이스 정책을 클라이언트의 손에 넣으십시오.

첫 번째 원칙은 X11을 설계하는 동안 다음과 같이 수정되었다: 새로운 기능을 필요로 하는 실제 애플리케이션을 알지 못하는추가하지 마십시오.

X는 그 이후로 대체로 이러한 원칙을 지켜왔다.X.Org Foundation은 구현의 확장 및 개선을 목적으로 참조 구현을 개발하며, 원래 1987 프로토콜과 거의 완전히 호환되도록 한다.

코어 프로토콜

서버와 클라이언트 간의 통신은 네트워크 채널을 통해 패킷 교환으로 이루어진다.클라이언트는 첫 번째 패킷을 보내면서 연결을 설정한다.서버는 접속의 수락 또는 거부를 기재한 패킷을 다시 보내거나, 추가 인증 요청으로 응답한다.연결이 허용되면, 허용 패킷은 클라이언트와 서버와의 후속 상호 작용에 사용할 데이터를 포함한다.

연결이 설정된 후 클라이언트와 서버는 채널에서 네 가지 다른 유형의 패킷을 교환한다.

  1. 요청: 클라이언트가 서버로부터 정보를 요청하거나 작업을 수행하도록 요청.
  2. 응답: 서버가 요청에 응답함모든 요청이 응답을 생성하는 것은 아니다.
  3. Event(이벤트): 서버는 클라이언트에게 이벤트를 보낸다(예: 키보드나 마우스 입력 또는 이동, 크기 조정 또는 노출되는 창).
  4. 오류: 요청이 잘못된 경우 서버가 오류 패킷을 전송함요청이 대기 중이기 때문에 요청에 의해 생성된 오류 패킷이 즉시 전송되지 않을 수 있다.

X 서버는 일련의 기본 서비스를 제공한다.클라이언트 프로그램은 서버와 상호 작용함으로써 더 복잡한 기능을 실현한다.

창문들

일부 창 배치 가능: 1은 전체 화면을 덮는 루트 창, 2와 3은 최상위 창, 4와 5는 2의 하위 창이다.부모 외부에 있는 창 부분은 보이지 않는다.

다른 그래픽 사용자 인터페이스가 보통 윈도우라고 부르는 것은 X 윈도우 시스템의 최상위 윈도우다.창이라는 용어는 다른 창, 즉 부모 창의 하위 창 에 있는 창에도 사용된다.버튼, 메뉴, 아이콘 등 그래픽 요소가 모두 창을 이용해 실현된다.

창은 부모 창의 하위 창으로만 만들 수 있다.이것은 창문을 나무계층적으로 배열하게 한다.X 서버는 트리의 루트를 자동으로 만들어 루트 창이라고 한다.최상위 창은 정확히 루트 창의 직접 하위 창이다.눈에 띄게 루트 창은 화면만큼 크며, 다른 모든 창 뒤에 놓여 있다.

식별자

X 서버는 창, 글꼴 등에 대한 모든 데이터를 저장한다.클라이언트는 이러한 개체의 식별자(서버와 상호 작용할 때 이름으로서 사용할 수 있는 정수)를 알고 있다.예를 들어, 클라이언트가 창 만들기를 원하는 경우 창 만들기를 서버에 요청하고 (성공할 경우) 새로 만든 창과 연결된 식별자를 반환한다.식별자는 나중에 클라이언트가 창문에 그릴 문자열과 같이 요청하기 위해 사용할 수 있다.

식별자는 클라이언트뿐만 아니라 서버에 고유하다. 예를 들어, 두 개의 다른 클라이언트에 의해 생성되더라도 동일한 식별자를 가진 두 개의 창은 없다.클라이언트는 다른 클라이언트가 개체를 만들었더라도 식별자가 지정된 개체에 액세스할 수 있다.

속성 및 속성

모든 창에는 미리 정의된 속성 집합과 속성 집합이 있으며, 모두 X 서버에 저장되며 적절한 요청을 통해 클라이언트가 액세스할 수 있다.속성은 창 크기, 위치, 배경색 등과 같은 창 관련 데이터다.속성은 창에 붙어 있는 데이터의 조각이다.속성과는 달리 속성은 X 윈도 코어 프로토콜 수준에서는 의미가 없다.클라이언트는 임의 데이터를 창의 속성에 저장할 수 있다.

속성은 이름, 유형, 그리고 값으로 특징지어진다.속성은 응용 프로그램이 주어진 이름과 유형을 가진 새로운 속성을 생성하고 그 안에 값을 저장할 수 있다는 점에서 명령적 프로그래밍 언어변수와 유사하다.속성은 창과 연관된다: 동일한 이름을 가진 두 속성이 다른 두 개의 창문에 존재할 수 있지만 유형과 값은 다를 수 있다.

속성은 주로 클라이언트 간 통신에 사용된다.예를 들어, 이름이 지정된 속성WM_NAME창 이름을 저장한다. 창 관리자는 일반적으로 이 속성을 읽고 창 이름을 맨 위에 표시한다.

xprop프로그램은 창의 속성을 표시할 수 있다.특히.xprop -rootX 리소스(프로그램의 매개 변수)를 포함하는 루트 창의 속성을 보여준다.

이벤트

이벤트는 클라이언트가 관심을 가질 수 있는 어떤 일이 발생했다는 것을 알리기 위해 서버가 클라이언트에 보내는 패킷이다.클라이언트는 다른 클라이언트로 이벤트 전송을 서버에 요청할 수 있다. 이것은 클라이언트 간의 통신에 사용된다.예를 들어, 클라이언트가 현재 선택된 텍스트를 요청하면, 선택사항을 보관하고 있는 창을 현재 처리 중인 클라이언트로 이벤트가 전송된다.

창문의 내용은 일부 조건(예: 창문이 가려진 경우)에서 "파괴"될 수 있다.파괴된 콘텐츠 영역이 보일 때마다 서버는Expose창의 일부를 그려야 함을 고객에게 알리는 이벤트

기타 이벤트는 키보드 또는 마우스 입력, 새 창 작성 등을 고객에게 알리는 역할을 할 수 있다.

어떤 종류의 이벤트는 항상 고객에게 전송되지만, 대부분의 이벤트는 고객이 이전에 관심을 표명한 경우에만 전송된다. 왜냐하면 고객은 어떤 종류의 이벤트에만 관심을 가질 수 있기 때문이다.예를 들어, 클라이언트는 키보드 관련 이벤트에 관심이 있을 수 있지만 마우스 관련 이벤트에는 관심이 없을 수 있다.

색상 모드

X 윈도 시스템이 색상을 처리하는 방식은 때때로 사용자를 혼란스럽게 할 수 있으며 역사적으로 여러 가지 다른 모드가 지원되었다.대부분의 최신 애플리케이션은 풀 컬러(24비트 컬러, 빨간색, 녹색, 파란색 각각 8비트)를 사용하지만, 오래된 애플리케이션이나 전문 애플리케이션은 다른 색상 모드를 요구할 수 있다.많은 상업용 전문가 어플리케이션들은 PhyseColor를 사용한다.

X11 프로토콜은 대부분의 그래픽 작업에서 단일 색상을 나타내기 위해 실제로 픽셀 값이라고 불리는 단일 32비트 부호화되지 않은 정수를 사용한다.원색의 명암을 전송할 때는 각 색상 성분에 대해 16비트 정수를 사용한다.다음과 같은 색상의 표현이 존재한다. 모든 색상이 특정 장치에서 지원되는 것은 아니다.

  • DirectColor: 픽셀 값은 별도의 빨간색, 녹색 및 파란색 하위 필드로 분해된다.각 하위 필드는 별도의 콜럼프를 인덱싱한다.모든 캡슐의 항목은 변경할 수 있다.
    • TrueColor: Colormap 항목이 하드웨어에 의해 미리 정의되어 있으며 변경할 수 없다는 점을 제외하고는 DirectColor와 동일함.전형적으로, 빨강, 초록, 파랑의 각각의 콜로마프는 (근접한) 선형적인 강도의 램프를 제공한다.
  • 그레이스케일: 픽셀 값은 단색 강도를 포함하는 단일 콜럼프를 인덱싱한다.Colormap 항목은 변경할 수 있다.
    • StaticGray: Colormap 항목이 하드웨어에 의해 미리 정의되어 있으며 변경할 수 없다는 점을 제외하고는 GrayScale과 동일함.
  • 의사 색상(청키):픽셀 값은 색 강도를 포함하는 단일 콜럼프를 인덱싱한다.Colormap 항목은 변경할 수 있다.
    • StaticColor: Colormap 항목이 하드웨어에 의해 미리 정의되어 있으며 변경할 수 없다는 점을 제외하면 PhysiousColor와 동일하다.

Xlib 및 기타 클라이언트 라이브러리

대부분의 클라이언트 프로그램은 Xlib 클라이언트 라이브러리를 통해 서버와 통신한다.Xlib 외에도 XCB 라이브러리는 X 프로토콜에 더 가깝게 운영된다.특히 대부분의 클라이언트는 Xaw, Motives, GTK+ 또는 Qt와 같은 라이브러리를 사용하며, 이 라이브러리는 Xlib를 사용하여 서버와 상호 작용한다.qt는 5.0 릴리즈와 함께 Xlib에서 XCB로 전환했지만 클라이언트 프로그램은 거의 이런 변화에 영향을 받지 않았다.

클라이언트 간 통신

X Window 핵심 프로토콜은 특히 클라이언트-클라이언트 간 메시지 이벤트와 같은 클라이언트 간의 통신 메커니즘을 제공한다.그러나 그러한 상호작용에 대한 어떤 프로토콜도 명시하지 않는다.대신에, 클라이언트간 통신 규약의 별도 세트가 이러한 프로토콜들을 지배한다.

클라이언트간 통신 규약 매뉴얼은 선택을 통한 데이터 교환 및 창 관리자와의 응용 프로그램의 상호작용을 위한 프로토콜을 규정한다.일부는 이 규격을 어렵고 혼란스럽게 여겼다;[2][3] 애플리케이션 모양과 느낌과 통신의 일관성은 일반적으로 주어진 데스크톱 환경에 대한 프로그래밍을 통해 해결된다.

ICE(Inter-Client Exchange Protocol)는 프로그래머가 그 위에 특정 프로토콜을 구축할 수 있도록 클라이언트 간 상호작용을 위한 프로토콜을 구축하기 위한 프레임워크를 지정한다.특히 X Session Management Protocol(XSMP)은 세션 매니저와의 애플리케이션 간 상호작용을 관장하는 ICE 기반의 프로토콜로, 인터랙티브 세션이 끝날 때 데스크톱의 상태를 저장한 후 동일한 사용자와의 다른 세션이 다시 시작될 때 복구하는 작업을 담당하는 프로그램이다.

자유롭스크톱 규격에는 드래그 앤 드롭 규약 Xdnd(데이터를 선택하고 다른 창에서 끌어서 데이터를 전송하는 데 사용)와 내장된 응용 프로그램 규약 Xembed(다른 응용 프로그램의 하위 창에서 응용 프로그램을 실행할 수 있는 방법을 자세히 설명하는 방법)를 포함한 새로운 규약이 포함된다.

선택, 버퍼 잘라내기 및 끌어서 놓기

X Window 시스템의 선택, 절단 버퍼 및 드래그 앤 드롭 메커니즘을 통해 사용자는 한 창에서 다른 창으로 데이터를 전송할 수 있다.선택 및 절단 버퍼는 사용자가 창에서 텍스트나 기타 데이터를 선택하고 다른 창에 붙여넣을 때 일반적으로 사용된다.드래그 앤 드롭은 사용자가 창에서 어떤 것을 선택한 다음 선택 항목을 클릭하고 다른 창으로 끌 때 사용된다.

두 개의 다른 응용 프로그램이 두 개의 창을 처리할 수 있기 때문에, 데이터 전송은 상호 작용하기 위해 동일한 X 서버에 연결된 다른 클라이언트를 필요로 한다.X 윈도 코어 프로토콜은 선택 교환에 특유한 일부 유형의 요청과 이벤트를 포함하지만, 주로 선택 전송에 특유하지 않은 일반 클라이언트-클라이언트 이벤트 송신 및 창 속성을 사용하여 전송한다.

사용자는 클라이언트 간에 서로 다른 유형의 데이터를 전송할 수 있다. 일반적으로 텍스트일 뿐 아니라 픽스맵, 숫자, 개체 목록 등이 될 수도 있다.

선택과 끌어서 놓기는 활성 메커니즘이다. 사용자가 창의 데이터를 선택한 후, 창을 처리하는 클라이언트는 해당 데이터를 요청하는 응용프로그램으로 전송하기 위한 프로토콜을 적극적으로 지원해야 한다.반대로 절단 버퍼는 수동적인 메커니즘을 제공한다: 사용자가 일부 텍스트를 선택할 때, 그 내용이 절단 버퍼로 전송되며, 여기서 윈도우를 처리하는 애플리케이션이 종료되고 윈도우가 파괴되더라도 그대로 유지된다.

창 관리자

윈도 매니저는 그래픽 사용자 인터페이스의 다른 그래픽 요소들과 윈도우의 일반적인 외관을 제어하는 프로그램이다.다른 설치에서 X 윈도우 시스템의 외관 차이는 주로 다른 윈도우 매니저의 사용이나 윈도우 매니저의 다른 구성에서 비롯된다.

창문의 위치 결정, 장식 테두리 배치, 아이콘 처리, 창 밖의 마우스 클릭 처리("배경") 및 특정 키 입력 처리 등을 창 관리자가 처리한다.

X 서버의 관점에서 윈도 매니저는 다른 클라이언트와 마찬가지로 클라이언트로 동작한다.창 주변의 초기 위치와 장식 테두리는 다음과 같은 요청을 사용하여 창 관리자가 처리한다.

  1. 응용프로그램은 서버에게 주어진 창의 매핑(수정) 하위 창에 대한 요청을 만족시키지 않고 대신 이벤트를 전송하도록 요청할 수 있다.
  2. 애플리케이션은 창의 부모 변경을 요청할 수 있다.

창 관리자는 첫 번째 요청을 사용하여 최상위 창(루트 창의 하위 창)을 매핑하기 위한 요청을 차단한다.다른 응용 프로그램이 최상위 창 매핑을 요청할 때마다 서버는 하지 않고 대신 창 관리자에게 이벤트를 보낸다.대부분의 윈도우 관리자들은 윈도우를 다시 렌트한다: 그들은 더 큰 최상위 윈도우(프레임 윈도우라고 부른다)를 만들고 원래의 윈도우를 그것의 아이로 리렌트한다.그래픽적으로 이것은 원래 창을 프레임 창 내부에 배치하는 것과 일치한다.원래 창으로 가져가지 않는 프레임 창의 공간은 창 주위의 장식 프레임("경계"와 "제목 바")에 사용된다.

창 관리자는 프레임 창에서 마우스 클릭을 관리한다.예를 들어, 사용자는 테두리 또는 제목 표시줄에서 마우스를 클릭하고 끌어서 창을 이동하거나 크기를 조정할 수 있다.

윈도우 관리자는 또한 그래픽 사용자 인터페이스의 아이콘과 관련 시각적 요소를 처리한다.X Window 코어 프로토콜 레벨에는 아이콘이 존재하지 않는다.그것들은 윈도우 매니저에 의해 구현된다.예를 들어 창이 "동일화"되어야 할 때마다 FVWM 창 관리자가 창을 매핑 해제하고 아이콘 이름에 대한 창과 아이콘 이미지에 대한 다른 창을 만든다.따라서 아이콘의 의미와 취급은 윈도우 매니저에 의해 완전히 결정된다: wm2와 같은 일부 윈도우 매니저는 아이콘을 전혀 구현하지 않는다.

세션 관리자

대략, 세션의 상태는 주어진 시간의 "데스크톱 상태"이며, 현재 내용이 있는 창 집합이다.보다 정확히 말하면, 이러한 창을 관리하는 애플리케이션 집합과 이러한 애플리케이션이 필요할 경우 관리되는 창의 상태를 복원할 수 있도록 하는 정보를 제공하는 것이다.X 세션 관리자로 알려진 프로그램은 세션의 상태를 저장 및 복원한다.

세션 관리자를 사용하면 사용자가 대화형 세션에서 로그아웃할 수 있지만 다시 로그인할 때 동일한 상태에서 정확히 동일한 창을 찾을 수 있다는 것이 가장 큰 인식이다.이를 위해 세션 관리자 프로그램은 실행 중인 응용 프로그램의 이름을 로그아웃에 저장하고 로그인 시 다시 시작한다.(창문의 내용을 복원하는데 필요한) 애플리케이션 상태도 복원하기 위해서는 애플리케이션은 세션 관리자로부터 요청 시 실행 상태를 저장한 후 다시 시작할 때 다시 로드할 수 있어야 한다.

X Window 시스템에는 다음과 같은 기본 세션 관리자가 포함되어 있음xsm개발자들은 특정 데스크탑 시스템에 대한 다른 세션 매니저들을 썼다.주요 예는 다음과 같다.ksmserver,xfce4-session그리고gnome-sessionKDE, XfceGNOME의 경우.

X 표시 관리자

X 디스플레이 관리자로 알려진 프로그램은 X 윈도우 시스템에 그래픽 로그인 프롬프트를 보여준다.보다 일반적으로 디스플레이 관리자는 로컬 컴퓨터에서 하나 이상의 X 서버를 실행하거나 원격 컴퓨터에서 실행되는 X 서버로부터 들어오는 연결을 허용한다.로컬 서버는 디스플레이 관리자에 의해 시작되며, 이 관리자가 이 서버에 연결하여 사용자에게 로그인 화면을 표시한다.원격 서버는 디스플레이 관리자로부터 독립적으로 시작되어 이에 연결된다.이러한 상황에서 디스플레이 매니저는 그래픽 텔넷 서버처럼 작동한다: X 서버는 세션을 시작하는 디스플레이 매니저에 연결할 수 있다; 이 세션을 활용하는 애플리케이션은 디스플레이 매니저의 동일한 컴퓨터에서 실행되지만 X 서버가 실행되는 컴퓨터(앞쪽의 컴퓨터일 수도 있음)에서 입출력된다.사용자 또는 원격 사용자).

X 윈도 시스템은 기본 공급 디스플레이 관리자로 XDM과 함께 배송된다.기타 디스플레이 관리자로는 GDM(GNOME), KDM/SDDM(KDE), WDM(Window Maker에서 사용되는 WINGs 위젯 사용), 입구(계몽주의 v.17에서 사용되는 아키텍처 사용) 등이 있다.

사용자 인터페이스 요소

X를 위한 초기 위젯 툴킷에는 Xaw(Athena Widget Set, 1983), OLIT(OPEN LOVE Essentics Toolkit, 1988), XView(1988), Mote(1980년대), Tk가 포함되었다.OLIT와 XView는 Sun의 레거시 OpenWindows 데스크톱 환경의 기본 툴킷 역할을 한다.

모티브는 Solaris, AIX, HP-UX와 같은 상용 Unix 시스템에서 사용되는 데스크톱 환경인 Common Desktop Environment(CDE)를 위한 기본 툴킷을 제공한다(Solaris 10은 CDE와 GNOME를 모두 포함하며, 후자는 2010년 현재 선호하는 데스크톱 환경을 선호함).

보다 최근에 개발된 툴킷에는 Qt(1991- KDE 사용), GTK+(1997- GNOME 사용), wxWidgets(1992- ), FLTK(1998- ), FOX(1997- ) 및 FPGUI(2005-current)가 포함된다.

확장

Scheifler와 Gettys는 X 서버를 단순하지만 확장 가능하도록 설계했다.이와 같이, 많은 기능성은 현재 프로토콜의 확장에 존재한다.

프로토콜 수준에서 모든 확장자에 새로운 요청/이벤트/오류 패킷 유형을 할당할 수 있다.확장 기능은 확장 라이브러리를 통해 클라이언트 응용 프로그램에 의해 액세스된다.현재 X 서버 구현에 확장자를 추가하는 것은 서버 설계의 모듈성 부족으로 인해 어려운 것으로 알려졌다.[4]XML 프로토콜 설명에서 확장의 클라이언트측과 서버측 모두를 자동화하는 것은 XCB 프로젝트의 장기적인 목표다.

다음 표는 도입의 보류에 의해 대략적으로 정렬되고 개발된 확장자의 부분 카탈로그를 제공한다.

확장 설명 및 참고 사항
합성 전체 창 계층 구조를 화면 밖으로 렌더링하여 애플리케이션 및 구성 관리자가 도중에 어디에서나 효과를 발휘할 수 있도록 지원창문이나 그림자를 위한 알파 투명도와 같은 것에 필요하다.
피해 수정된 창의 영역을 추적하고 디스플레이를 최신 상태로 유지하는 데 필요한 대역폭 사용 최소화
XFixes 몇 가지 프로토콜 변경.
확장 시각 정보(EVIE) 클라이언트가 코어 프로토콜이 제공하는 것 이상의 코어 X 비주얼에 대한 정보를 결정할 수 있도록 허용한다.
분산 다중 헤드(DMX) DMX X 서버와 통신.
X-비디오 모션 보상(XvMC) 비디오 모션 보상을 지원하는 GPU로 오프로드.
GLX 창 내에서 OpenGL 렌더링 지원
엑스렌더 알파 혼합을 사용한 하드웨어 가속 영상 합성.
크기 조정 및 회전(RANDR) X 화면의 크기, 반사, 회전 및 새로 고침 속도를 동적으로 변경
시네라마 데스크톱을 여러 모니터로 분할
디스플레이 전원 관리 신호(DPMS) 모니터 절전 모드 제어 허용
X 키보드 확장자 향상된 자판 배열 처리.
더블 버퍼 깜박임이 없는 애니메이션을 제공한다.
기록하다 서버 테스트에 사용됨
MIT-SHM 성능 향상을 위한 공유 메모리 사용
동기화 X 서버 내에서 타이머를 제공하고 클라이언트(예: 서로 다른 호스트 및 운영 체제에서 실행) 동기화네트워크에 의해 유입된 오류로 인해 생성됨.
XTEST 가짜 입력 생성용.사용: 즉,xteXAutomation 패키지의 응용 프로그램.
XIInputExtension 그래픽 태블릿과 같은 입력 장치 지원, libXi로[5] 구현 가능
빅 리퀘스트 길이가 262,140바이트를 초과하는 요청을 활성화한다.
XC-MISC 리소스 ID 범위 오버런[6] 수정
X 비디오 확장 재생 시 하드웨어 비디오 오버레이 및 하드웨어 기반 비디오 확장 지원Xv(xv 프로그램과 혼동되지 않도록)라고도 한다.
모양 직사각형이 아닌 부분 투명(이진, 알파 불투명도 없음) 윈도우 지원
MIT-스크린-세이버 X 서버가 기본 제공 화면 보호기를 켤 때 프로그램 시작
보안 향상된 서버 보안[7] 제공
X-리소스 X 서버의 리소스 사용량에 대한 쿼리 허용
XFree86-Bigfont
XFree86-DGA 선형 프레임 버퍼 직접 액세스 제공(직접 그래픽 액세스)대부분 X에서 제거된다.7.6조[8]
XFree86-VidMode확장 모델과 감마를 동적으로 구성

더 이상 사용되지 않는 확장자

확장 설명 및 참고 사항
낮은 대역폭 X(LBX) 보안 쉘 연결을 통해 터널링된 VNC로 대체, LBX보다 빠르게 입증.
PEX "PHIGS Extension to X"; PHIGS 3D 장면 그래프 API 지원.대신 OpenGL이 적용된 GLX가 자주 사용된다.
X 이미지 확장 대신 MIT-SHM이 사용된다.
XEVIE X 이벤트 가로채기 확장.모든 키보드 및 마우스 이벤트를 인터셉트해야 하는 사용자를 위해 설계됨.X에서 제거됨.7.5절.[9]
XFree86-Misc 입력 속성으로 대체됨.X에서 제거됨.7.5절.[9]
디코드-XTRAP X에서 제거됨.7.5절.[9]
토그컵 Corormap 활용 정책 제공.X에서 제거됨.7.5절.[9]
MIT-순수-비표준 X11의 초기 구현을 사용한 클라이언트를 위한 다양한 역호환성 기능 지원.X11R4 이전 클라이언트와의 호환성을 위해.2006년 이후 장애인.X에서 제거됨.7.5절.[9]
XC-APPGroup X에서 제거됨.7.5절.[9]
XPRINT 사용되지 않음.응용 프로그램이 다른 디스플레이 장치처럼 프린터에 출력을 렌더링할 수 있도록 허용.2008년 5월에 제거됨.[10]

참고 항목

메모들

  1. ^ 클라이언트-서버 모델
  2. ^ Hopkins, Don (uncredited) (May 1994). Garfinkel, Simson; Weise, Daniel; Strassmann, Steven (eds.). The UNIX-Haters Handbook (PDF). San Mateo, CA, USA: IDG Books. p. 126 The X-Windows Disaster. ISBN 978-1-56884-203-5. OCLC 30681401. Retrieved July 11, 2011. The ICCCM is unbelievably dense, it must be followed to the last letter, and it still doesn’t work. ICCCM compliance is one of the most complex ordeals of implementing X toolkits, window managers, and even simple applications. It’s so difficult, that many of the benefits just aren’t worth the hassle of compliance.
  3. ^ Raymond, Eric S. (September 30, 2008). "The Unix Hater's Handbook, Reconsidered". Armed and Dangerous. Retrieved July 11, 2011. ICCCM is about as horrible as the [Unix Hater’s Handbook's] authors describe, but that’s hard to notice these days because modern toolkits and window managers do a pretty good job of hiding the ugliness from applications.
  4. ^ Gettys, James; Karlton, Philip L.; McGregor, Scott (10 December 1990). "The X Window System, Version 11" (PDF). Digital Equipment Corporation and Silicon Graphics Computer Systems. p. 36. Retrieved July 11, 2011. X11 does not permit the read back of all information that may have been stored in the server (for example, the X11 protocol does not permit querying the GC state). This makes modularity somewhat harder to accomplish.
  5. ^ "X.org libXi Client library for XInput". Retrieved 2010-03-02. libXi - library for the X Input Extension
  6. ^ "XC-MISC Extension" (PDF). Archived from the original (PDF) on September 27, 2011. Retrieved 2010-08-02.
  7. ^ "Security Extension Specification" (PDF). Archived from the original (PDF) on September 27, 2011. Retrieved 2010-08-02.
  8. ^ XFree86-DGA 요청은 상대 마우스 모션을 제외한 나머지 요청은 신퍼트 2가 모두 제거할 수 있을 때까지 비활성화하십시오. X.Org Wiki - 릴리스/7.6
  9. ^ a b c d e f 7.5 출시 발표
  10. ^ XPrint 제거 커밋

참조

  1. Manrique, Daniel (May 23, 2001). "The X Window System Architecture: overview". X Window System Architecture Overview HOWTO. The Linux Documentation Project. Retrieved July 13, 2011.
  2. Maguolo, Filippo (December 16, 2005). "The Architecture of X-Window". Lessons in Linux. Mount Kisco, NY, USA: John F. Moore. Retrieved July 13, 2011.
  3. Stevens, W. Richard (1994). "30.5 X Window System" (PDF). TCP/IP Illustrated (PDF). Addison-Wesley professional computing series. Vol. 1, TheProtocols (1 ed.). Boston, MA, USA: Addison-Wesley. 30.5 X Window System. ISBN 978-0-201-63346-7. OCLC 246049781. Retrieved July 13, 2011.
  4. IBM Corporation, International Technical Support Center (July 1994). "1.2 X Concepts" (PDF). TCP/IP for MVS, VM, OS/2 and DOS: X Window System Guide (PDF). IBM Redbooks (Second ed.). Research Triangle Park, NC, USA: IBM. X Concepts. Retrieved July 13, 2011.
  5. Quercia, Valerie; O'Reilly, Tim (1993) [1988]. X Window System User's Guide : for X11 release 5. Definitive guides to the X Window System. Vol. 3. Sebastopol, CA, USA: O'Reilly & Assoc. ISBN 978-1-56592-014-9. OCLC 682229836. LCC QA76.76.W56 Q47. Retrieved July 14, 2011. 아마존닷컴은 1990년판을 가지고 있다.

추가 읽기

외부 링크