2009-03-11 10 views
5

Gần đây tôi đã bắt đầu sử dụng Linux (nơi tôi làm việc là một cửa hàng Microsoft, vì vậy tôi chỉ viết mã trong C#, làm việc với các sản phẩm MS vv).X11/X - phần mềm máy tính để bàn linux, tôi không hiểu làm thế nào điều này phù hợp với nhau

Tôi đang cố gắng hiểu ở mức độ cao về cách một số thứ cơ bản trong Linux kết hợp với nhau. Tôi đã đọc www.linfo.org

Dù sao tôi chưa bao giờ có được những gì X là.

Từ đọc this article có vẻ như với tôi rằng X là lớp nằm trên đầu hệ điều hành (một máy chủ X nằm trên đầu của hệ điều hành ??) và ứng dụng khách X tạo yêu cầu cho máy chủ X. Tôi nghĩ rằng KDE, Xfce và Gnome là những người quản lý hiển thị, họ có phải là máy khách X server không?

Tôi khá bối rối khi mọi thứ đều nằm.

Mọi lời giải thích sẽ thực sự được đánh giá cao!

Trả lời

27

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.

+0

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

+0

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

+0

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. –

4

X11 là giao thức mạng, hiện tại đang được phát hành 7 (do đó X11R7). Nó đóng gói thông tin đồ họa và đầu vào, và kết nối một máy khách X (ứng dụng hoặc trình quản lý cửa sổ) chạy trên máy cục bộ hoặc từ xa đến máy chủ X hiện đang điều khiển màn hình và thiết bị đầu vào cục bộ.

Gnome, KDE, XFCE và LXDE là môi trường máy tính để bàn; chúng chứa các phần nói chuyện với/với máy chủ X (metacity, kwin, vv), nhưng cũng bao gồm các đặc tả mà các ứng dụng phải tuân thủ và các thư viện có sẵn để một ứng dụng "thuộc về" với DE.

+0

Ứng dụng trung bình của bạn cũng nói chuyện với máy chủ X, mặc dù thường gián tiếp thông qua thư viện bộ công cụ (ví dụ: GTK hoặc Qt). – strager

2

Ngoài ra, đáng nhớ rằng máy chủ X chỉ là một chương trình khác chạy dưới Linux. Không có gì đặc biệt về nó, nó chỉ xảy ra để biết làm thế nào để lấy vào card đồ họa và đi qua màn hình bằng cách sử dụng trình điều khiển video. Bạn có thể (về mặt lý thuyết) chạy Linux rất vui vẻ mà không bao giờ chạy một máy chủ X - mặc dù tất nhiên, bạn sẽ bị giới hạn trong các chương trình dòng lệnh. Đó là cách linux tổ chức chính nó - hạt nhân tại cơ sở, sau đó một tập hợp các chương trình cung cấp chức năng cho các chương trình cấp cao hơn, tự cung cấp chức năng cho các chương trình cấp cao hơn, tất cả xây dựng thành một đống phần mềm hoàn chỉnh. công việc của máy là (nói chung, máy tính để bàn, phát triển phần mềm, máy chủ web, v.v.)

Ngoài hạt nhân và mô-đun của nó, không có gì là 'đặc biệt'.

Các vấn đề liên quan