เทอร์มินัลหลอกคืออะไร (pty / tty)?


92

นี่อาจเป็นคำถามพื้นฐานจริงๆ แต่ฉันต้องการที่จะเข้าใจอย่างละเอียด

  1. เทอร์มินัลเทียมคืออะไร (TTY / Pty)
  2. ทำไมเราต้องการพวกเขา พวกเขาได้รับการแนะนำอย่างไรและมีความต้องการอะไร?
  3. พวกเขาล้าสมัยหรือไม่ เราไม่ต้องการมันอีกแล้วเหรอ? มีอะไรบ้างที่แทนที่พวกเขา?
  4. มีประโยชน์ใช้กรณีใด?

ฉันทำอะไรไป:

  1. อ่าน man pages - รับข้อมูล แต่ไม่ใช่ภาพที่แน่นอน
  2. พยายามอ่านจาก Unix Network Programming โดย Richard Stevens มีข้อมูล แต่ไม่ใช่why?ส่วนหนึ่ง

ฉันคิดอย่างนั้นเช่นกันโดยเฉพาะอย่างยิ่งหากไม่มีปัญหาเฉพาะอย่างเช่น openpty / forkpty เกิดขึ้นที่นี่

พยายามตั้งค่าสถานะเพื่อการโยกย้าย แต่ Linux / Unix ไม่ใช่เป้าหมายการโยกย้ายที่ถูกต้อง การลองใช้การไล่ระดับสีผู้ใช้ขั้นสูงนั้นเป็นเป้าหมายที่ดีกว่าไซต์นี้เล็กน้อยและบางทีพวกเขาสามารถกำหนดเส้นทางไปยังไซต์ที่ดียิ่งขึ้นได้

7
นี่เป็นภาพรวมที่ดีทีเดียว: linusakesson.net/programming/tty/index.php
nos

@nos: ว้าว! ลิงค์ที่น่ากลัว สิ่งที่ฉันกำลังมองหา ขอบคุณตัน :)
Hari

บทที่ 62 และบทที่ 64 ของส่วนต่อ
ประสาน

คำตอบ:


42
  1. อุปกรณ์ที่มีฟังก์ชั่นของฟิสิคัลเทอร์มินัลโดยไม่มีอุปกรณ์ใด ๆ สร้างโดยเทอร์มินัลอีมูเลเตอร์เช่น xterm รายละเอียดเพิ่มเติมอยู่ใน manpage pty (7)
  2. ตามเนื้อผ้า UNIX มีแนวคิดของเทอร์มินัลการควบคุมสำหรับกลุ่มของกระบวนการและฟังก์ชั่น I / O จำนวนมากถูกสร้างขึ้นโดยคำนึงถึงเทอร์มินัล Pseudoterminals จัดการตัวอย่างเช่นตัวควบคุมบางตัวเช่น ^ C
  3. พวกเขาจะไม่ล้าสมัยและใช้ในหลาย ๆ โปรแกรมรวมถึง ssh
  4. SSH

1
ขอบคุณ @thiton คุณช่วยอธิบายตัวอย่างของsshคุณได้ไหม? มันใช้ pty / tty อย่างไร? บทบาทหลัก / ทาสมีบทบาทsshอย่างไร
hari

3
ssh จัดสรร pty สำหรับเชลล์ที่มันสร้าง เชลล์เชื่อมต่อกับปลายทาสและสามารถพึ่งพาความสามารถทั้งหมดของเทอร์มินัลปกติ (เช่น termcap ถ้าฉันจำได้ถูกต้อง) และ ssh daemon เชื่อมต่อกับปลายมาสเตอร์และส่งและรับอินพุตที่นั่น

27

คำตอบอยู่ในชื่อ - "Pseudo" หมายถึง "ไม่ใช่ของแท้ แต่มีลักษณะของ"

ด้วยเทอร์มินัลแรกจะมีชิ้นส่วนของฮาร์ดแวร์ที่เชื่อมต่อกับอุปกรณ์ที่เกี่ยวข้องเสมอไม่ว่าจะเป็นฮาร์ดแวร์ที่แสดงหรือพอร์ตอนุกรม

ด้วย xwindows, telnet และ ssh, จำเป็นต้องมีซอฟต์แวร์ "อุปกรณ์ Pseudo" เพื่อทำงานในสถานะของฮาร์ดแวร์จอแสดงผล พวกเขาคือ "Pseudo Terminals" ... ซอฟต์แวร์ที่เลียนแบบฮาร์ดแวร์ของเทอร์มินัลการจัดการอินพุทและเอาท์พุทในลักษณะเดียวกับที่อุปกรณ์ทางกายภาพต้องการเพื่อให้ซอฟต์แวร์ที่เชื่อมต่อไม่ทราบว่าไม่มีอุปกรณ์จริงติดอยู่


เพราะตอนนี้เรามีแอพพลิเคชั่นมากมายที่จำเป็นต้องเข้าถึงฮาร์ดแวร์ชิ้นเดียวกันทุกแอปใช้ฮาร์ดแวร์ผ่านทางเทอร์มินัล "หลอก"?
hari

ฉันขยายคำตอบเล็กน้อย - หวังว่ามันชัดเจน

ไม่เราแค่ไม่มีฮาร์ดแวร์ชนิดนั้นอีกแล้ว xterm จำลองเทอร์มินัลคลาสสิคนั่นคือทั้งหมด

@thiton: เมื่อคุณพูดemulatesนั่นเป็นส่วนหนึ่งของซอฟต์แวร์ใช่มั้ย
Hari

1
ดังนั้นการใช้คำว่า "เทอร์มินัล" ในบริบทของ UNIX วันนี้เป็นความจริงหรือ เพราะทุกอย่างเป็น "สถานีหลอก"?
A. Sallai

11

Pseudo-terminal เป็นอีมูเลเตอร์สำหรับสายอนุกรม จัดเตรียมจุดปลายสำหรับเชลล์ telnet, ssh และ xterm


2
และพวกเขาเป็นโบราณวัตถุโบราณ (จริง ๆ แล้วแอปพลิเคชั่นเปลือกหอย / ข้อความยังคงมีการโต้ตอบผ่านอุปกรณ์ที่เลียนแบบเครื่องเขียนแบบเทเลผ่านสายอนุกรมเช่นที่พวกเขาทำงานเมื่อ 40 ปีที่แล้ว ... ) เรายังต้องการพวกมันเพราะไม่มีการทดแทน: - (
Nos

ถ้าคุณพิจารณาเทอร์มินัลฉันไม่คิดว่าคุณต้องการอะไรมากกว่าตัวอักษรที่ส่งไป ...
Diego Sevilla

4
@Diego Sevilla นักประดิษฐ์ยูนิกซ์ดั้งเดิมทำไปด้วย tty / ptys ในแผน 9 และมีเทอร์มินัลค่อนข้างมากเพียงแค่ใช้สตรีมข้อมูลเข้า / ออก แต่ใน * ระวัง, ttys ยังคงอยู่รอบ ๆ และใช้โดยคอนโซลและเทอร์มินัลอีมูเลเตอร์เช่นขนาดเทอร์มินัลการควบคุมการควบคุมการไหลการบัฟเฟอร์บรรทัดเหตุการณ์สำคัญพิเศษและสิ่งอื่น ๆ
nos

4
@ ไม่มี: ปรากฎว่าพวกเขาไม่ใช่โบราณวัตถุโบราณที่เราเชื่อ การพยายามทำโดยที่ไม่มีพวกเขาใน Windows นั้นค่อนข้างเจ็บปวดในที่สุด การใช้งานรีโมท remowershell ถูกขัดขวางโดยสิ่งหนึ่ง: โปรแกรมคอนโซลแบบโต้ตอบไม่ทำงานและไม่สามารถแก้ไขให้ทำงานได้อย่างถูกต้อง ไม่มีความเป็นไปได้ของ text editor ที่สมเหตุสมผลเช่น DOS EDIT หรือ vi
Joshua

2
@Joshua หลักฐานอีกข้อที่ตรงกันข้ามคือนักออกแบบดั้งเดิมของ Unix ได้สร้างระบบปฏิบัติการ Plan 9 ขึ้นมาโดยที่พวกเขาทำไปด้วย ttys อย่างสมบูรณ์ แต่พวกเขาก็ประสบความสำเร็จในการใช้วิธีการนั้น (และอีกมากมาย)
nos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.