Tất cả đều rất mô-đun và linh hoạt; tuy nhiên điều này dẫn đến sự phức tạp.
"X Server" thúc đẩy thiết bị hiển thị. Nó cung cấp các dịch vụ đồ họa cho các khách hàng, và các dịch vụ là khá đơn giản - chẳng hạn như:
"Give me a window frame to draw in"
"Put this bitmap here"
"Draw a horizontal black line 100px wide"
"Render the text 'hello' at (100,100)"
"Tell me if any mouse clicks or key presses have been aimed at my window frame"
Có một thư viện gọi Xlib, được cung cấp bởi X, mà có một giao diện chuẩn cho tất cả các dịch vụ đơn giản. Bất kỳ chương trình nào muốn sử dụng màn hình của máy chủ X cuối cùng đều sử dụng thư viện máy khách này và được gọi là một máy khách X. Xlib biết cách kết nối với máy chủ X tùy ý - trên máy cục bộ, hoặc qua TCP/IP trên mạng LAN, hoặc trên toàn thế giới - để gọi các dịch vụ này.
Trình quản lý cửa sổ, chỉ là một chương trình khách hàng X khác, phụ trách "giao diện" của màn hình - cách bạn di chuyển và sắp xếp cửa sổ, v.v. Vì trình quản lý cửa sổ vẽ tất cả các trang trí cửa sổ, có thể làm cho máy tính để bàn trông giống như WindowsXP hoặc Mac hoặc NeXTSTEP.
Một phần triết lý của X là xác định "cơ chế và không chính sách" - nghĩa là chúng cung cấp cho bạn các công cụ để thực hiện, nhưng không cho bạn biết cách sử dụng các công cụ đó. Một công cụ như vậy là trình quản lý cửa sổ, có thể được thay thế theo ý muốn.
Nhiều ứng dụng X hiện đại được viết để sử dụng môi trường máy tính để bàn như Gnome hoặc KDE. Điều này cung cấp cho các chương trình này một bộ nút và điều khiển nhất quán để vẽ và giao diện nhất quán đối với một số thứ không được bao gồm trong X, nhưng thường được coi là một phần của máy tính để bàn - chẳng hạn như cách phản hồi kéo và thả hoặc cách trình bày một hộp thoại chọn tập tin tiêu chuẩn.
Môi trường máy tính để bàn thường cung cấp một mô hình đối tượng hoặc giao diện có lập trình xử lý tất cả các yêu cầu máy khách X đơn giản và cho phép chương trình xử lý những điều quan trọng hơn. Việc loại bỏ các cuộc gọi cấp thấp này mang lại một lợi ích quan trọng khác - nền tảng độc lập.
Nhiều môi trường máy tính để bàn bao gồm trình quản lý cửa sổ, để giao diện của các nút và nút điều khiển cửa sổ nhất quán và hoạt động với ẩn dụ trên màn hình do môi trường cung cấp. Tuy nhiên, nó thường có thể vẫn được chuyển ra.
Việc tách Server X (chạy màn hình) và Client X (muốn sử dụng màn hình) có một vài ý nghĩa:
Hệ thống đồ họa là tách biệt với các chương trình GUI, và họ được phân tách hoàn toàn như trình duyệt web và máy chủ web.
Vì vậy, chương trình GUI có thể không hiển thị trên máy cục bộ - giống như trình duyệt web không phải trỏ đến máy chủ web trên máy cục bộ.
Máy có thể chạy JUST máy khách với máy chủ X ở nơi khác.
Máy có màn hình không phải chạy máy khách - nó có thể chạy JUST máy chủ X và tất cả các máy khách có thể chạy trên một máy chuyên dụng. Đây là máy khách mỏng ban đầu: các chương trình lớn chạy trên máy chủ trung tâm lớn - với tương tác người dùng đồ họa được xử lý bởi phần cứng chuyên dụng trên bàn trước mặt người dùng.
Bạn cần biết địa chỉ mạng của máy chủ X của bạn là gì để bạn có thể nói cho các chương trình GUI nơi hiển thị GUI của chúng. (điều này thường được thực hiện bằng cách đặt biến môi trường DISPLAY)
Bạn có thể hiển thị nhiều chương trình, từ nhiều máy khác nhau, tất cả trên cùng một máy tính để bàn cùng một lúc. Tất cả được xử lý liền mạch, bao gồm cắt và dán.
GNOME và KDE không phải là khung công tác GUI. Chúng là môi trường máy tính để bàn. GTK + và kdelib là các khung công tác đằng sau chúng. Ngoài ra, lưu ý rằng Trình quản lý cửa sổ là chính ứng dụng X, cũng như tất cả các ứng dụng GUI trong DE. – strager
Cách trình quản lý cửa sổ hoạt động khá thú vị ... chúng có móc được gọi khi một khách hàng mới kết nối và họ lấy cửa sổ của khách hàng và dán nó vào một cửa sổ con của chính họ. đó là cửa sổ con này vẽ đường viền và các nút đóng/phóng to, v.v.(Tôi nghĩ) – rmeador
Tôi sắp viết một câu trả lời, nhưng cái này rộng hơn những gì tôi viết. Chỉ một điều: Tôi muốn thêm rằng trình quản lý cửa sổ chỉ là một ứng dụng khách X khác. Và X đó thường được gọi là "X", "X11" hoặc "Hệ thống cửa sổ X"). Tôi thích "X11" vì nó ngắn và khá rõ ràng. –