Máy chủ hiển thị so với Window Manager so với trình điều khiển đồ họa?


8

Tôi đang cố gắng sắp xếp sự hiểu biết của mình về phần khác nhau của đồ họa trên Linux và tôi bối rối về vai trò của từng khái niệm sau đây.

  • Máy chủ hiển thị
  • Quản lý cửa sổ
  • Trình điều khiển đồ họa

Những câu hỏi của tôi:

  • Các trình điều khiển đồ họa được triển khai bên trong Linux Kernel hay bên ngoài? Nếu bên ngoài kernel tại sao chúng bị loại trừ khi mạng, đĩa, hệ thống tập tin đều nằm trong kernel?
  • X Windows, Gnome, Ubuntu Unity, KDE, Mir, Wayland, những người làm điều gì về Máy chủ hiển thị, Trình quản lý cửa sổ và Trình điều khiển đồ họa?

Mục tiêu của tôi cho câu hỏi này là để hiểu các dự án nào đang đóng góp những phần nào của trải nghiệm Đồ họa Linux?

CẬP NHẬT http://blog.mecheye.net/2012/06/the-linux-graphics-stack/ có rất nhiều chi tiết mà tôi đang tìm kiếm.

Câu trả lời:


3

Thuật ngữ "trình điều khiển đồ họa" được sử dụng để chỉ một số điều khác nhau. Một trong số đó là trình điều khiển kernel. Trình điều khiển hạt nhân chủ yếu chỉ đặt chế độ video và tạo điều kiện truyền dữ liệu đến / từ thẻ. Nó cũng thường tải firmware vào GPU trên thẻ. Phần sụn là chương trình mà GPU tự chạy, nhưng thật không may, các nhà cung cấp đồ họa chỉ cung cấp nó dưới dạng blob nhị phân để bạn không thể xem mã nguồn của nó.

Ở trên, bạn thường có Xorg đang chạy, có trình điều khiển riêng dịch các lệnh gọi vẽ X11 hoặc OpenGL chung thành các lệnh mà thẻ hiểu và gửi chúng xuống thẻ để thực thi. Nó cũng có thể tự thực hiện một số công việc tùy thuộc vào lệnh mà gpu thực hiện và không hỗ trợ. Trong trường hợp các cuộc gọi OpenGL, Cơ sở hạ tầng kết xuất trực tiếp cho phép phần này của trình điều khiển thực sự thực thi trực tiếp trong ứng dụng khách chứ không phải máy chủ X, để có được hiệu suất chấp nhận được. Nó cũng cho phép trình điều khiển trong ứng dụng khách gửi các lệnh của nó trực tiếp đến gpu, nhờ sự phối hợp với và trợ giúp từ Xorg và trình điều khiển kernel khi khởi động.

Wayland và Mir được cho là sẽ thay thế Xorg như một loại máy chủ hiển thị đơn giản hóa.

Unity vừa là shell (cung cấp máy tính để bàn / launcher) vừa kết hợp trình quản lý cửa sổ trong một.

Gnome và KDE là môi trường máy tính để bàn. Họ là những dự án lớn bao gồm nhiều thành phần. Cốt lõi của chúng là các bộ công cụ ứng dụng tương ứng, là GTK cho Gnome và Qt cho KDE. Đây là một khung thư viện mà một ứng dụng được viết và cung cấp nền tảng cho mọi thứ khác được xây dựng. Một số dịch vụ cơ bản mà họ cung cấp là xử lý sự kiện và đối tượng, Windows, các chức năng vẽ cơ bản, I / O và nhiều hơn nữa.


4
  • Trình điều khiển đồ họa được thực hiện như các mô-đun hạt nhân phải được tải vào nó. Vì vậy, về cơ bản, chúng nằm ngoài kernel. Có hay không một hạt nhân có thể được xây dựng để chứa chúng hay không là vấn đề còn lại từ một người hiểu biết hơn tôi để trả lời. Tôi nghĩ rằng chúng đã bị loại trừ khỏi kernel bởi vì nếu kernel được xây dựng cùng với nouveautrình điều khiển, nó sẽ có xung đột khi tải trình điều khiển NVIDIA độc quyền sau này.
  • X Windows, Wayland và Mir là các máy chủ hiển thị.
  • Gnome, Ubuntu Unity và KDE là tất cả các môi trường máy tính để bàn không phải là trình quản lý cửa sổ. Trình quản lý cửa sổ là một phần của môi trường máy tính để bàn (ví dụ: Gnome sử dụng metacity). Điều đó nói rằng, bạn có thể chạy các trình quản lý cửa sổ độc lập (không có môi trường máy tính để bàn) như awesome , xmonad hoặc openbox

Thành phần nào đóng vai trò nào:

  • Trình điều khiển đồ họa là cách kernel "nói chuyện" với card đồ họa.
  • Máy chủ hiển thị là thứ tạo và quản lý các cửa sổ và các yếu tố đồ họa khác của màn hình của bạn.
  • Một môi trường máy tính để bàn hoặc trình quản lý cửa sổ hoạt động như một máy khách đến máy chủ hiển thị và hướng dẫn nó về cách nó nên vẽ / trang trí các cửa sổ, bảng, ...

Các mô-đun hạt nhân chắc chắn được coi là "bên trong" hạt nhân.
psusi

@psusi Tôi đã chọn đọc "bên trong" và "bên ngoài" của OP với nghĩa là được tích hợp vào kernel so với được tải vào từ "bên ngoài". Bạn có thể có nghĩa là "bên trong" hạt nhân theo nghĩa chúng không phải là một phần của không gian người dùng, phải không?
Joseph R.

Vâng, đó là cách tôi diễn giải "bên trong" so với "bên ngoài".
psusi
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.