Saya dapat melihat perbedaan antara / dev / tty dan / dev / tty0 dengan menguji metode yang disediakan dari pertanyaan ini . Tapi saya benar-benar bertanya-tanya tentang penggunaan praktis dari perangkat tersebut (seperti situasi yang akan digunakan).
8
/dev/sda
dan/dev/sda1
menunjuk perangkat blok tertentu (satu kebetulan menjadi bagian dari yang lain)./dev/tty
, di sisi lain, adalah perangkat virtual yang terkait dengan tty spesifik lainnya.Jawaban:
/dev/tty
adalah tty mengendalikan proses saat ini , untuk setiap proses yang benar-benar membuka file khusus ini. Ini belum tentu merupakan perangkat konsol virtual (/dev/tty
n ), dan dapat berupapty, port serial, dll. Jika tty yang mengendalikan bukan konsol virtual, maka prosesnya belum berinteraksi dengan perangkat konsol bahkan jika pseudottynya benar-benar diterapkan pada konsol sistem. E. g. untuk sebuah shell di emulator terminal di bawah server X yang berjalan secara lokal, program-program tersebut membentuk rantai interaksi seperti:Unix shell
⇕
/dev/pts/2
(≡/dev/tty
untuk prosesnya)driver pty kernel
⇕
/dev/ptmx
terminal emulator
⇕ protokol
X Window X server
⇕
/dev/tty7
(≡/dev/tty
untuk server)konsol sistem
zxc↿⇂ [_̈░░]
pengguna
Penggunaan
/dev/tty
program oleh userland meliputi:/dev/tty0
adalah konsol virtual aktif dari sistem operasi . File khusus ini tidak mungkin digunakan secara signifikan oleh perangkat lunak sistem, tetapi/dev/console
sebenarnya merupakan "alias" untuktty0
dan/dev/console
telah banyak digunakan oleh daemon syslog dan, kadang-kadang, oleh kernel itu sendiri.Eksperimen untuk menunjukkan perbedaan: jalankan
root
shell padatty3
( Ctrl+ Alt+ F3) atau di emulator terminal. Sekaranglalu dengan cepat Ctrl+ Alt+ F2, tunggu dua detik, dan Ctrl+ Alt+ apa pun kembali. Di mana Anda melihat hasilnya?
Dan sekarang tes yang sama untuk
/dev/tty0
.sumber
sshd
), atau dixterm
jendela, belum spesifik / dev / tty n . Itu tidak berinteraksi dengan perangkat dari konsol sistem , karena itu melekat pada perangkat pseudo-terminal. Ini tidak menghalangi dari pembukaan / dev / tty n jika itu adalah proses root, atau pengguna yang sama masuk logty tty n . Akan menambahkan beberapa poin tentang "tty spesifik" untuk jawabannya./ dev / tty adalah tty pengendali untuk setiap proses. Ini mungkin kulitmu.
Jika proses Anda tidak memiliki tty pengendali, / dev / tty tidak tersedia, mis. Ini berlaku untuk daemon.
Jika proses Anda memiliki tty pengendali, maka / dev / tty adalah driver alias ke driver tty asli yang digunakan proses Anda untuk stdin, stdout atau stderr.
Lihat
man -s7d tty
untuk informasi lebih lanjut. Perhatikan bahwa bagian di mana manual ini berada mungkin berbeda antara OS yang berbeda dan tidak boleh bingung dengan halaman manual di bagian 1. Jadi, periksa misalnyaman -k tty
.sumber