Pty ve tty ne anlama geliyor?


237

Birçok açık kaynak projesinden bahsedildiğini fark ettim ptyve ttybazı açık kaynaklı projelerde, birisi bana ne anlama geldiğini ve aralarındaki farkın ne olduğunu söyleyebilir mi? Teşekkürler!

Yanıtlar:


225

"tty" aslen "teletype", "pty" ise "pseudo-teletype" anlamına gelir.

UNIX'te / dev / tty *, bir "teletype", yani bir terminal gibi davranan herhangi bir aygıttır. (Teletype olarak adlandırıldı, çünkü o günlerde terminaller için sahip olduğumuz şey buydu.)

Bir pty, sözde okuma ve yazma sürecine bir terminal gibi davranan, ancak başka bir şey tarafından yönetilen bir sahte addır. İlk önce (hatırladığım gibi), bir terminal gibi davranan ancak başka bir programdan kullanılabilecek bir şeye ihtiyaç duyduğunuz X Window ve screen ve benzerleri için ortaya çıktı.


Bence Telix, rsh ve rlogin'i desteklemek için Unix'e eklenen pty'ler.
Fred Foo

5
@CharlieMartin Ne demek pty "bir terminal gibi davranan bir şey?" Neden böyle bir şey isteyelim ki? Ve başka bir program bu pty'den nasıl yararlanıyor? Benim tahminim pty komutları ya da bir şey program için gerçek terminal (tty) röle olduğunu. Bu doğru mu? Değilse, tahminimi görmezden gelin ve lütfen yorumumun ilk kısmını cevaplayın.
OKGimmeMoney

16
Bir terminali bir nesne olarak düşünün: bir uçtaki bir şeyi diğer tarafa stdin ve stdout'a bağlar. Gerçek bir TTY fiziksel bir terminale bağlanır. PTY bir programa bağlanır, örneğin, xterm veya komut penceresi veya kabuk penceresi. O zaman programda yatıyor ve gerçekten çok terminal, dürüst olduğunu söylüyor . PTY'lerden önce böyle programları borulara bağladınız, ancak boruların akış kontrolü yok gibi önemli farklılıkları var. PTY'ler bunu çözdü.
Charlie Martin

3
@CharlieMartin "Gerçek bir TTY fiziksel bir terminale bağlanır". Linux Konsolu ne olacak? Örneğin, bir Ubuntu sisteminde Linux Konsolları vardır Ctrl-Alt-F{1..6}ve bunlara bağlanırlar /dev/tty{1..6}. Linux Konsolu fiziksel bir terminal değildir, ancak a'ya ttyN(a değil ptyN) bağlıdır. Burada bir şey mi eksik?
Utku

1
Sadece LINUX hakkında garip bir kenar durumu olmayacak kesin bir şey söyleyemezsiniz. Bu durumda Linux konsolu, / dev / tty dev girdisini kullanan ancak daha sonra kullanıcıya ulaşmak için bir sürü şeye bağlanan bir çekirdek özelliğidir. en.wikipedia.org/wiki/Linux_console
Charlie Martin

234

Tty bir terminaldir ( teletype anlamına gelir - orijinal terminaller çıkış için bir hat yazıcısı ve giriş için bir klavye kullanır!). Terminal temel olarak yalnızca giriş ve çıkış için metin kullanan bir kullanıcı arabirim cihazıdır.

Bir pty sahte bir terminaldir - ekli programa bir terminal gibi görünen bir yazılım uygulamasıdır, ancak doğrudan "gerçek" bir terminalle iletişim kurmak yerine, girişi ve çıkışı başka bir programa aktarır.

Örneğin, bir makineye ssh yaptığınızda ve çalıştırdığınızda ls, lskomut çıktısını diğer tarafı SSH arka plan programına bağlı olan bir sözde terminale gönderir.


1
PTY'lerden biraz daha "kesin" bir örnek verebilir misiniz? Nereye geldiklerini ve nasıl çağrıldıklarını hala anlamadım. Teşekkürler
user3085931

Birisi *nixbu sahte terminalleri ne zaman ve nasıl oluşturduğu işletim sistemi yardımcı olabilir .
Krishna Oza

@darth_coder: Bir uygulama talep ettiğinde oluşturulur. Bu, yeni bir grafik terminal penceresi açmak veya uzaktan oturum açmak gibi şeyler yaptığınızda olur.
caf

@caf, bir terminal oluşturmaktan sorumlu çekirdek modüllerini veya arka plan programını adlandırabilirsiniz.
Krishna Oza

@darth_coder: Herhangi bir uygulama bunu yapabilir. sshdve xtermiki tipik örnektir.
caf

21

tty: teletip. Genellikle, terminallerin bağlı olduğu bir bilgisayarın seri bağlantı noktalarını belirtir.

pty: sözde otel türü. Çekirdek, xterm veya ekran gibi terminalleri taklit eden programlara bağlı takma portu sağladı.


19

Mount komutunu, sisteminize takılı dosya sistemlerini görüntüleyen komut satırı bağımsız değişkenleri olmadan çalıştırırsanız, şuna benzer bir satır görürsünüz: / dev / pts type devpts (rw, gid = 5, mode = 620) Bu, / dev / pts'de özel bir dosya sistemi türü olan devpts'in bağlandığını gösterir. Herhangi bir donanım aygıtıyla ilişkilendirilmeyen bu dosya sistemi, Linux çekirdeği. / Proc dosya sistemine benzer

/ Dev dizini gibi / dev / pts de aygıtlara karşılık gelen girişleri içerir. Ancak sıradan bir dizin olan / dev'in aksine / dev / pts, Linux çekirdeği tarafından dinamik olarak oluşturulan özel bir dizindir. Dizinin içeriği zamana göre değişir ve çalışan sistemin durumunu yansıtır. / Dev / pts içindeki girişler sözde terminallere (veya sözde TTY'lere veya PTY'lere) karşılık gelir.

Linux açtığınız her yeni terminal penceresi için bir PTY oluşturur ve / dev / pts içinde karşılık gelen bir giriş görüntüler. PTY cihazı bir terminal cihazı gibi çalışır - klavyeden girişi kabul eder ve içinde çalışan programlardan metin çıktısı görüntüler . PTY'ler numaralandırılır ve PTY numarası / dev / pts içindeki karşılık gelen girişin adıdır.

Örneğin, yeni terminal penceresinin PTY numarası 7 ise, bu komutu başka bir pencereden çağırın:% echo 'Ben sanal bir di'yim> / dev / pts / 7 Çıktı yeni terminal penceresinde görünür.


2

Bir ttya, fiziksel t erminal- t elet y , bir bilgisayar (genellikle bir seri bağlantı noktası) pe noktası.

Teletip kelimesi , telgraf daktilosunun veya teletypewriter cihazının bir kısa metindir - kendisinin 1830'ların ve 1840'ların telgraf kodlama makinelerinin yerini alan bir elektromanyetik cihaz .

telem
TTY - Teletypewriter 1930'lar

Bir ptya, p seudo- t ele ty örneğin SSH, xterm'den veya ekran gibi terminaller, taklit bağlantı yazılım programlarına bir bilgisayar işletim sistemi çekirdek tarafından sağlanan pe noktası.

resim açıklamasını buraya girin
PTY - PseudoTeletype

Terminal, giriş ve çıkış için metin kullanan bir bilgisayarın kullanıcı arabirimidir.


İşletim Sistemi Uygulamaları

Bu kullanım s seudo- t ele ty pe bağlantı noktaları, ancak bunların adlandırma ve uygulamalar bir Little ayrılmaktadır.

Linux özel bir dosya sistemi bağlar devpts üzerinde / dev ( 's' muhtemelen için ayakta ler ki karşılık gelen bir giriş oluşturur eri) /dev/ptsaçtığınız her yeni terminal penceresinde, örneğin için/dev/pts/0


macOS / FreeBSD de / dev dosya yapısını kullanır, ancak açtığınız her yeni terminal penceresi için numaralı bir TTYadlandırma kuralı kullanırlar.ttys/dev/ttys002


Microsoft Windows hala LPTbir yazıcıya çıktı almak için Komut Kabuğu içindeki Satır Yazıcı Terminalleri için bir bağlantı noktası kavramına sahiptir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.