Sự khác biệt giữa Xorg và Gnome / KDE / Xfce


19

Tôi muốn tìm hiểu thêm về các hệ thống UNIX và tôi nghĩ rằng tôi có một câu hỏi khá thẳng. Tôi nghĩ rằng tôi biết X được sử dụng cho mục đích gì: Nó cung cấp một tiêu chuẩn cho các ứng dụng để trình bày UI của họ (trong số những thứ khác).

Nhưng tại sao sau đó lại cần Gnome / KDE và làm thế nào để chúng liên quan đến X? Tôi nghĩ rằng họ đang sử dụng X như một loại giao diện giữa ứng dụng và GUI, vì vậy GUI có thể tùy chỉnh trong khi giao diện giữ nguyên trên các ứng dụng.

Điều đó có đúng hay Gnome / KDE độc lập với X?

Câu trả lời:


26

(Tôi đang xem xét mối quan hệ của Gnome và X. Tôi muốn chia sẻ một số hiểu biết của tôi. Tôi sẽ trình bày nó một cách hợp lý nhất có thể.)

1. GUI bao gồm những gì?

Dưới đây là một minh họa về các thành phần cơ bản của GUI.

nhập mô tả hình ảnh ở đây

Thành phần chính là máy chủ hiển thị . Có một số máy chủ hiển thị có sẵn. Nhu la:

  • X11 (chủ yếu dành cho * nix)
  • Wayland (chủ yếu dành cho * nix)
  • Mir (chủ yếu cho * nix)
  • SurfaceFlinger (Cái này dành cho Google Android.)
  • Quartz Compositor (Đây là những gì Apple MacOS sử dụng.)
  • Desktop Window Manager (Đây là những gì Microsoft Windows sử dụng.)

2. X là gì?

Hệ thống cửa sổ X, X11 và X là từ đồng nghĩa. Tất cả đều đứng cho một hệ thống cửa sổ . Windowing System là một loại giao diện người dùng đồ họa (GUI, như tôi đã đề cập ở trên) thực hiện mô hình WIMP (cửa sổ, biểu tượng, menu, con trỏ) cho giao diện người dùng.

Dưới đây là danh sách các hệ thống cửa sổ chính cho cả hệ thống Linux và Windows.

Thành phần chính của bất kỳ hệ thống cửa sổ nào thường được gọi là máy chủ hiển thị (không có gì ngạc nhiên vì hệ thống cửa sổ là một loại GUI và máy chủ hiển thị là phần chính của bất kỳ GUI nào), mặc dù các tên khác như máy chủ cửa sổ hoặc nhà soạn nhạc cũng được sử dụng.

Bất kỳ ứng dụng nào chạy và trình bày GUI của nó là máy khách của máy chủ hiển thị . Máy chủ hiển thị và các máy khách của nó giao tiếp với nhau qua một giao thức truyền thông, thường được gọi là giao thức máy chủ hiển thị , máy chủ hiển thị là trung gian hòa giải giữa máy khách và người dùng. Máy chủ hiển thị nhận tất cả đầu vào từ kernel, mà kernel nhận được từ tất cả các thiết bị đầu vào được đính kèm, chẳng hạn như bàn phím, thiết bị trỏ hoặc màn hình cảm ứng và truyền nó đến đúng máy khách. Máy chủ hiển thị cũng chịu trách nhiệm cho đầu ra của máy khách đến màn hình máy tính. Một giao thức máy chủ hiển thịcó thể là mạng có khả năng hoặc thậm chí là mạng trong suốt. (vì vậy bạn có thể thấy, về cơ bản chỉ là về luồng dữ liệu và định tuyến, dữ liệu trực quan vẫn là dữ liệu.)

Và theo đây :

Máy chủ X là một chương trình cung cấp dịch vụ nhập liệu hiển thị và người dùng cho các chương trình khác. So sánh, một máy chủ tệp cung cấp các chương trình khác có quyền truy cập vào các thiết bị lưu trữ tệp. Máy chủ tệp thường được đặt ở một vị trí xa và bạn sử dụng các dịch vụ của máy chủ tệp từ máy mà bạn đang ở. Ngược lại, X Server thường chạy trên máy mà bạn đang ở ; dịch vụ nhập liệu hiển thị và người dùng có thể được yêu cầu bởi các chương trình chạy trên máy của bạn, cũng như bởi các chương trình chạy trên máy từ xa .

Vì vậy, X bao gồm:

  • máy chủ hiển thị
  • giao thức máy chủ hiển thị
  • một số lib cho sự phát triển
  • và những thứ khác

nhập mô tả hình ảnh ở đây

Theo đây :

X cung cấp khung cơ bản cho môi trường GUI: vẽ và di chuyển các cửa sổ trên thiết bị hiển thị và tương tác với chuột và bàn phím. X không bắt buộc giao diện người dùng - điều này được xử lý bởi các chương trình riêng lẻ. Như vậy, kiểu dáng trực quan của môi trường dựa trên X thay đổi rất nhiều; các chương trình khác nhau có thể trình bày các giao diện hoàn toàn khác nhau.

Nói cách khác, X chỉ cung cấp cho chương trình khả năng thực hiện những việc cơ bản như vẽ / di chuyển cửa sổtương tác đầu vào . X không thực thi các kiểu trực quan. Vì vậy, những gì bạn nói " ... Nó cung cấp một tiêu chuẩn cho các ứng dụng để trình bày UI của họ ... " là không chính xác.

3. Gnome / KDE là gì

Gnome và KDE đều là môi trường máy tính để bàn Linux . Môi trường máy tính để bàn là một gói các chương trình chạy trên hệ điều hành, có chung GUI .

Nhưng giống như tôi đã đề cập ở trên, X11, với tư cách là một máy chủ hiển thị, chỉ cung cấp khả năng vẽ cơ bản thông qua một số lib như Xlib hoặc XCB. Các ứng dụng giao tiếp trực tiếp X11 thông qua các lib như vậy có thể có các kiểu hình ảnh hoàn toàn khác nhau .

Vậy làm thế nào để tạo một GUI chung? Ở đây có các bộ công cụ phụ tùng . Chẳng hạn như GTK +Qt . Chúng phổ biến trong các hệ thống cửa sổ Wayland và X11 .

Gnome sử dụng GTK +.

KDE sử dụng Qt.

đây là so sánh về môi trường máy tính để bàn hệ thống X Window.

Để tóm tắt ...

Tôi vẽ một minh họa khái niệm thô. 3 phần trên HĐH rất tùy biến. Đó là lý do tại sao rất nhiều sự linh hoạt (nhầm lẫn) phát sinh.

nhập mô tả hình ảnh ở đây

THÊM 1 - 1:26 PM ngày 21/9/2018

đây là một số cuộc thảo luận về QT và GTK (có thể không phù hợp với chủ đề này mặc dù ...)


"Việc thuật ngữ" máy chủ "được áp dụng cho phần mềm trước người dùng thường gây ngạc nhiên cho người dùng quen với chương trình của họ là khách hàng sử dụng dịch vụ trên máy tính từ xa. Ở đây, thay vì cơ sở dữ liệu từ xa là tài nguyên cho ứng dụng cục bộ , các thiết bị đầu vào và hiển thị đồ họa của người dùng trở thành tài nguyên được cung cấp bởi máy chủ X cục bộ cho cả chương trình máy khách X được lưu trữ cục bộ và từ xa, những người cần chia sẻ đồ họa và thiết bị đầu vào của người dùng để giao tiếp với người dùng. " (xem wiki )
yaobin

1
Trong trường hợp ai đó bị nhầm lẫn bởi câu "Máy chủ X thường chạy trên máy mà bạn đang ở", vui lòng xem nhận xét của tôi ở trên. Cảm ơn @smwikipedia đã đưa ra một câu trả lời cực kỳ tuyệt vời!
yaobin

5

Xorg (và Xfree trước đó và X10 trước đó ) là máy chủ cho giao thức được gọi hoàn toàn là Hệ thống X Window ; nó cho phép các ứng dụng vẽ trên "màn hình". Có thể điều khiển từ xa với X. Gnome / KDE / Xfce và các trình quản lý cửa sổ / môi trường máy tính để bàn khác là các ứng dụng đặc biệt chạy trong X, vẽ những thứ như viền và biểu tượng và tối thiểu hóa và tối đa hóa mà chính các ứng dụng không có.

Và, vì cả Gnome và KDE đều có thể (hoặc đã) chạy trên MS Windows (và Wayland ở các mức độ khác nhau), nên chúng có (hoặc có thể) độc lập với X.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.