Shell sử dụng thiết bị TTY (nếu được kết nối với một) để lấy đầu vào của người dùng và để tạo đầu ra, chứ không phải nhiều thứ khác. Việc một vỏ được kết nối với TTY được xác định bởi getty
(và được bảo toàn bởi login
); hầu hết thời gian vỏ không quan tâm liệu nó có được kết nối với TTY hay không. Tương tác của nó với kernel xảy ra thông qua các cuộc gọi hệ thống.
Máy chủ X11 không biết về thông tin đăng nhập (giống như trình bao). Quá trình đăng nhập trong X11 hoạt động theo hai cách:
- người dùng đăng nhập vào thiết bị đầu cuối, sau đó khởi động X (thường sử dụng
startx
);
- hoặc một máy chủ X được khởi động với trình quản lý hiển thị của người dùng, điều đó sẽ nhắc người dùng đăng nhập và mật khẩu (hoặc bất kỳ thông tin xác thực nào được yêu cầu).
Cách các máy chủ X11 có được đầu vào và sản xuất đầu ra rất khác so với vỏ. Về phía đầu vào, X biết về các thiết bị không có vỏ, bắt đầu bằng chuột; nó thường quản lý những người trực tiếp với trình điều khiển riêng của mình. Ngay cả đối với bàn phím, X cũng có trình điều khiển riêng bổ sung cho việc xử lý kernel (vì vậy theo tôi hiểu, trên Linux, ví dụ X sử dụng trình điều khiển TTY để đọc dữ liệu thô từ bàn phím, nhưng sau đó diễn giải bằng trình điều khiển riêng của nó). Về phía đầu ra, các ổ X hiển thị các thiết bị trực tiếp, có hoặc không có sự trợ giúp của kernel và không thông qua thiết bị TTY.
Máy chủ X11 trên nhiều hệ thống làm các thiết bị sử dụng TTY tuy nhiên, để đồng bộ hóa với các hạt nhân: trên hệ thống có hỗ trợ thiết bị đầu cuối ảo, X cần “dự trữ” các VT nó đang chạy trên, và chuyển mạch xử lý VT. Có một vài sự tinh tế khác trên đường đi; do đó, trên Linux, X điều chỉnh TTY để vô hiệu hóa GPM (một chương trình cho phép sử dụng chuột ở chế độ văn bản). X cũng có thể chia sẻ VT ...
Trên một số máy trạm trong quá khứ, không có nhiều đồng bộ hóa rõ ràng với kernel; nếu bạn không chạy xconsole
, bạn có thể kết thúc với các thông báo kernel được hiển thị trong chế độ văn bản của chế độ trực tuyến trên màn hình X11 của bạn.