Shell menggunakan perangkat TTY (jika terhubung ke satu) untuk mendapatkan input pengguna dan menghasilkan output, dan tidak banyak lagi. Fakta bahwa shell terhubung ke TTY ditentukan oleh getty
(dan diawetkan oleh login
); sebagian besar waktu shell tidak peduli apakah itu terhubung ke TTY atau tidak. Terjadi interaksi dengan kernel melalui panggilan sistem.
Server X11 tidak tahu tentang login (seperti shell). Proses masuk di X11 bekerja dalam dua cara:
- baik pengguna log in di terminal, dan kemudian mulai X (biasanya menggunakan
startx
);
- atau server X dimulai dengan "manajer tampilan" yang meminta pengguna untuk login dan kata sandi (atau informasi otentikasi apa pun yang diperlukan).
Cara X11 server mendapatkan input dan menghasilkan output sangat berbeda dibandingkan dengan shell. Di sisi input, X tahu tentang perangkat yang tidak dimiliki shell, dimulai dengan mouse; itu biasanya mengelola mereka secara langsung dengan drivernya sendiri. Bahkan untuk keyboard, X memiliki driver sendiri yang melengkapi penanganan kernel (jadi seperti yang saya mengerti, di Linux misalnya X menggunakan driver TTY untuk membaca input mentah dari keyboard, tetapi kemudian menafsirkannya menggunakan driver sendiri). Di sisi output, X drive menampilkan perangkat secara langsung, dengan atau tanpa bantuan kernel, dan tanpa melalui perangkat TTY.
Server X11 pada banyak sistem memang menggunakan perangkat TTY, untuk menyinkronkan dengan kernel: pada sistem yang mendukung terminal virtual, X perlu "menyimpan" VT yang sedang berjalan, dan menangani switching VT. Ada beberapa kehalusan lainnya di sepanjang jalan; dengan demikian di Linux, X mengubah TTY untuk menonaktifkan GPM (sebuah program yang memungkinkan penggunaan mode teks dari mouse). X juga dapat membagikan VT ...
Pada beberapa workstation di masa lalu, tidak ada banyak sinkronisasi eksplisit dengan kernel; jika Anda tidak menjalankan xconsole
, Anda bisa berakhir dengan pesan-pesan kernel yang ditampilkan dalam "mode teks" di atas layar X11 Anda.