Trong quá trình học cách thực hiện một số điều nhất định trong lập trình GUI (ví dụ: dành chỗ trên màn hình cho một ứng dụng), tôi phải tìm hiểu thêm về Trình quản lý cửa sổ, thường là X11 trên Linux (Tôi không chắc liệu thậm chí có bản phân phối không , sử dụng bất cứ thứ gì khác ngoài X11, mặc dù tôi đã nghe về Wayland , chưa được triển khai trong bất kỳ.)
Tôi còn khá mới với lập trình, và thiếu kiên nhẫn; Vì vậy, tôi chỉ cần lặn vào nó. Bây giờ tôi đang đọc ICCCM, với hy vọng tìm hiểu thêm. Tuy nhiên, tài liệu này nhắm đến một công chúng biết (cách) nhiều hơn tôi. Vì vậy, tôi đã xem qua một số thông tin, và tôi rất muốn nhận được một số làm rõ.
Mục 2 của trích dẫn ICCCM:
Lưu ý rằng tất cả dữ liệu được chuyển giữa chủ sở hữu và người yêu cầu thường phải đi bằng phương tiện của máy chủ trong môi trường X Phiên bản 11. Một khách hàng không thể cho rằng một khách hàng khác có thể mở cùng một tệp hoặc thậm chí giao tiếp trực tiếp. Máy khách khác có thể đang nói chuyện với máy chủ bằng cơ chế kết nối mạng hoàn toàn khác (ví dụ: một máy khách có thể là DECnet và TCP / IP khác). Do đó, việc chuyển tham chiếu gián tiếp đến dữ liệu (như tên tệp, tên máy chủ và số cổng, v.v.) chỉ được phép nếu cả hai khách hàng đồng ý cụ thể.
Theo tôi hiểu, X Window Manager được xây dựng trên Top of X Server (cảm ơn Wikipedia). Trong trích dẫn ở trên: nó nói rằng máy khách có thể giao tiếp với máy chủ bằng cách sử dụng DECnet hoặc TCP / IP. Cho đến nay tôi đã nghĩ rằng "máy chủ" là một con số của bài phát biểu, bây giờ tôi nghi ngờ: máy chủ X có phải là máy chủ như trong "máy chủ web" không? Làm thế nào tôi nên hiểu chức năng / định nghĩa của nó?
Sau đó, thường có các tham chiếu đến X11, Xorg, X Server và / hoặc X Window Manager. Nó gây nhầm lẫn: X11 có phải là một gói bao gồm Xorg và X Window Manager không? Nếu vậy, có gì khác trong gói X11 này không?
X cũng cần chuột hoặc bàn phím hoặc bất kỳ loại đầu vào nào khác: đây cũng là một phần của các chức năng của X Server phải không? Có phải X Window Manager chỉ chăm sóc màn hình?
Cuối cùng, trích dẫn ở đây cũng đề cập đến việc khách hàng có giao tiếp hay không với nhau: điều này khiến tôi nhớ đến D-Bus, nơi tôi đã sử dụng một chút cho mục đích học tập. Với D-Bus, bạn cũng có thể kích hoạt các sự kiện cửa sổ. Điều đó khiến tôi hơi bối rối về cách các chương trình nên giao tiếp với nhau: * có gì khác biệt giữa các chương trình tương tác bằng X Server hoặc sử dụng D-Bus? *
Thật xấu hổ khi thông tin này vẫn còn mơ hồ, nó làm cho nó khó học hơn, nhưng hy vọng bạn có thể mang lại một chút ánh sáng về điều này :) Cảm ơn.