Di Ubuntu 10,04, jika saya periksa di bawah / dev, ada lebih dari 50 ttys. tty0, tty1, tty2 ....
Saya mengerti tty adalah perangkat karakter untuk konsol input / output.
tetapi mengapa jumlahnya sangat banyak? apakah ini seperti kolam renang?
dan apa perbedaan antara / dev / pts / 0, 1, 2 ..., / dev / tty?
Jika saya membuka terminal, nomor baru dibuat di bawah / dev / pts. tapi saya tidak tahu kapan / dev / tty? digunakan.
bahkan jika saya membuat koneksi SSH, jumlah / dev / tty s sama.
dan jika saya melakukannya
cat /dev/tty0
dan ketik sesuatu di keyboard, saya mendapatkan output yang sesuai. mengapa ini terjadi?
Jawaban:
Mereka bukan hanya perangkat input / output. Mereka juga melakukan pekerjaan khusus sebagai terminal kontrol untuk suatu sesi, seperti mengirim sinyal (Ctrl + C). / dev / ttyNN adalah konsol virtual, yang merupakan tampilan layar penuh pada monitor.
Terminal mulai dari / dev / tty1. Anda dapat beralih ke konsol ini, biasanya, dengan menekan tombol Ctrl + Alt + Fn.
misal, Ctrl + Alt + F1 akan membawa Anda ke terminal virtual pertama. Saat ini, sebagian besar distribusi Linux menjalankan server X dari tty1. Jadi, menekan Ctrl + Alt + F1 mungkin tidak berpengaruh.
Ctrl + Alt + F2 akan membawa Anda ke terminal kedua. Biasanya distro menjalankan program login (agetty) pada terminal virtual.
Program masuk memberi Anda prompt masuk dan memungkinkan Anda masuk dengan nama pengguna / kata sandi. Skrip init memutuskan, di mana semua program login akan dijalankan. Jadi tergantung bahwa Anda mungkin atau mungkin tidak melihat prompt masuk, katakan tty9. Untuk kembali ke antarmuka GUI Anda, tekan Ctrl + Alt + F1 (seperti pada contoh output di atas).
/ dev / tty0 adalah perangkat khusus, yang menunjuk ke terminal saat ini. Jadi, terlepas dari dari mana Anda menjalankannya (konsol virtual), apa pun yang dibaca dari / ditulis ke tty0 masuk ke terminal Anda saat ini.
Kolom kedua dalam 'ps ax' juga memberikan terminal pengendali program. Untuk beberapa program, seperti daemon, Anda mungkin melihat bahwa kolomnya adalah '?', Yang berarti mereka tidak terikat ke terminal.
/ dev / pts / 0 dll adalah perangkat terminal psuedo, yang tidak terpasang ke tampilan sistem. misalnya untuk terminal, Anda dapatkan ketika Anda membuka terminal gnome atau terminal GUI lainnya. Ini adalah pendekatan berbasis klien-server di mana sisi klien akan diekspor ke program, seperti bash. Data yang dikirim oleh program ke terminal semu dikirim ke sisi 'server' (yang biasanya dipantau oleh program lain, seperti gnome-terminal). Proses pengendalian (sisi server) menentukan apa yang perlu dikirim ke terminal, yang akhirnya dilihat oleh klien. Perangkat ini membantu Anda untuk membuka banyak 'terminal GUI' tanpa batas pada sistem Anda, masih memberikan terminal lama yang sama seperti kontrol (ioctl (), pengaturan warna, Mengirim sinyal [Ctrl + C] dll.).
sumber
man /dev/pts
adalah awal yang baik, jugaman termios
, catatan bahwa klien / server adalah dua arah antara ptys - PTM dan pts - di mana terminal virtual seperti gnome-terminal, atau xterm biasanya terhubung ke master dan shell seperti bash, budak ./dev/tty
adalah terminal pengendali saat ini, tetapi saya tidak tahu apa/dev/tty0
, bagaimanapun,/dev/tty1
adalah KMSCON Linux. Dan/dev/tty7
X server.Saya hanya ingin memperjelas hubungan hal-hal semacam ini.
Pertama, / dev / tty berada pada level proses, bisa ttyn (tty1, tty2, ...), ttySn (ttyS0, ttyS1), pty (pts / 0, pts / 1), dan yang lainnya.
/ dev / tty0 adalah alias dari konsol virtual saat ini (foreground), jadi bisa tty1, tty2, dan sebagainya. Perhatikan bahwa ttyS0 bukan alias; Ini adalah port serial pertama.
/ dev / console adalah konsol sistem, ini menunjuk ke / dev / tty0 sebagai default. Itu bisa ttyn, ttySn, ttyUSBn, lpn, dan sebagainya.
Secara kasar, / dev / tty> / dev / cosole> / dev / tty0
sumber