ฉันสังเกตเห็นว่ามีหลายคนกล่าวถึงpty
และtty
ในโครงการโอเพนซอร์สบางคนสามารถบอกฉันได้ว่าพวกเขาหมายถึงอะไรและอะไรคือความแตกต่างระหว่างพวกเขา ขอบคุณ!
ฉันสังเกตเห็นว่ามีหลายคนกล่าวถึงpty
และtty
ในโครงการโอเพนซอร์สบางคนสามารถบอกฉันได้ว่าพวกเขาหมายถึงอะไรและอะไรคือความแตกต่างระหว่างพวกเขา ขอบคุณ!
คำตอบ:
"tty" เดิมหมายถึง "teletype" และ "pty" หมายถึง "pseudo-teletype"
ใน UNIX / dev / tty * เป็นอุปกรณ์ใด ๆ ที่ทำหน้าที่เหมือน "โทรพิมพ์" เช่นเทอร์มินัล (เรียกว่าโทรพิมพ์เพราะนั่นคือสิ่งที่เรามีให้กับอาคารผู้โดยสารในวันที่ตื่นตาเหล่านั้น)
pty คือ pseudotty รายการอุปกรณ์ที่ทำหน้าที่เหมือนเทอร์มินัลไปยังกระบวนการอ่านและเขียนที่นั่น แต่จัดการโดยอย่างอื่น พวกเขาปรากฏตัวครั้งแรก (ตามที่ฉันจำได้) สำหรับ X Window และหน้าจอและอื่น ๆ ที่คุณต้องการบางสิ่งที่ทำหน้าที่เหมือนเทอร์มินัล แต่สามารถใช้งานได้จากโปรแกรมอื่น
Ctrl-Alt-F{1..6}
/dev/tty{1..6}
Linux Console ไม่ใช่เทอร์มินัลทางกายภาพ แต่เชื่อมต่อกับttyN
(ไม่ใช่ไปยัง a ptyN
) ฉันทำอะไรบางอย่างหายไปหรือเปล่า
tty คือเทอร์มินัล (ย่อมาจากteletype - เทอร์มินัลดั้งเดิมใช้เครื่องพิมพ์บรรทัดสำหรับเอาต์พุตและคีย์บอร์ดสำหรับอินพุต!) เทอร์มินัลนั้นเป็นเพียงอุปกรณ์ส่วนติดต่อผู้ใช้ที่ใช้ข้อความสำหรับอินพุตและเอาต์พุต
pty เป็นเทอร์มินัลหลอก - เป็นการใช้งานซอฟต์แวร์ที่ปรากฏขึ้นกับโปรแกรมที่แนบมาเช่นเทอร์มินัล แต่แทนที่จะสื่อสารโดยตรงกับเทอร์มินัล "ของจริง" มันจะโอนอินพุตและเอาต์พุตไปยังโปรแกรมอื่น
ตัวอย่างเช่นเมื่อคุณ ssh ในเครื่องและเรียกใช้ls
ที่ls
คำสั่งจะส่งผลลัพธ์ที่ได้จะหลอกขั้วด้านอื่น ๆ ของซึ่งอยู่ติดกับภูตจุ๊
*nix
ระบบปฏิบัติการที่ใช้เวลาและวิธีสร้างเทอร์มินัลหลอกนี้
sshd
และxterm
เป็นสองตัวอย่างทั่วไป
tty: โทรพิมพ์ มักจะอ้างถึงพอร์ตอนุกรมของคอมพิวเตอร์ซึ่งต่อกับขั้ว
pty: pseudoteletype เคอร์เนลมีพอร์ต pseudoserial ที่เชื่อมต่อกับโปรแกรมจำลองเทอร์มินัลเช่น xterm หรือหน้าจอ
หากคุณรันคำสั่ง mount โดยไม่มีอาร์กิวเมนต์บรรทัดคำสั่งซึ่งแสดงระบบไฟล์ที่เมาท์บนระบบของคุณคุณจะสังเกตเห็นบรรทัดที่มีลักษณะดังนี้: none on / dev / pts type devpts (rw, gid = 5, mode = 620) สิ่งนี้บ่งชี้ว่าระบบไฟล์ชนิดพิเศษ, devpts, ถูกเมาท์ที่ / dev / pts. ระบบไฟล์นี้ซึ่งไม่ได้เชื่อมโยงกับอุปกรณ์ฮาร์ดแวร์ใด ๆ , เป็นระบบไฟล์ "เวทมนต์" ที่สร้างขึ้นโดย เคอร์เนล Linux มันคล้ายกับระบบไฟล์ / proc
เช่นเดียวกับไดเร็กทอรี / dev / dev / pts มีรายการที่สอดคล้องกับอุปกรณ์ แต่แตกต่างจาก / dev ซึ่งเป็นไดเรกทอรีสามัญ / dev / pts เป็นไดเรกทอรีพิเศษที่สร้างขึ้นแบบไดนามิกโดยเคอร์เนล Linux เนื้อหาของไดเรกทอรีจะแตกต่างกันไปตามเวลาและสะท้อนสถานะของระบบที่กำลังทำงานอยู่ รายการใน / dev / pts สอดคล้องกับเทอร์มินัลหลอก (หรือ pseudo-TTYs หรือ PTYs)
Linux สร้าง PTY สำหรับทุกหน้าต่างเทอร์มินัลใหม่ที่คุณเปิดและแสดงรายการที่ถูกต้องใน / dev / pts อุปกรณ์ PTY ทำหน้าที่เหมือนอุปกรณ์เทอร์มินัล - มันรับอินพุตจากแป้นพิมพ์และแสดงข้อความจากโปรแกรมที่ทำงานอยู่ในนั้น . PTYs ถูกกำหนดหมายเลขและหมายเลข PTY เป็นชื่อของรายการที่สอดคล้องกันใน / dev / pts
ตัวอย่างเช่นถ้าหมายเลข PTY ของหน้าต่างเทอร์มินัลใหม่คือ 7 ให้เรียกใช้คำสั่งนี้จากหน้าต่างอื่น:% echo 'ฉันเป็นเสมือน di'> / dev / pts / 7 เอาต์พุตปรากฏขึ้นในหน้าต่างเทอร์มินัลใหม่
tty
เป็นทางกายภาพ เสื้อ erminal- เสื้อ élet Yพอร์ต PE บนคอมพิวเตอร์ (มักจะเป็นพอร์ตอนุกรม)
คำว่าโทรพิมพ์เป็นคำย่อของเครื่องพิมพ์ดีดโทรเลขหรืออุปกรณ์โทรพิมพ์จากยุค 30 ซึ่งเป็นอุปกรณ์แม่เหล็กไฟฟ้าที่ใช้แทนเครื่องเข้ารหัสโทรเลขในยุค 1830 และ 1840
pty
เป็นพี seudo- ทีเอเลTY PE พอร์ตให้บริการโดยเครื่องคอมพิวเตอร์ระบบปฏิบัติการเคอร์เนลกับโปรแกรมซอฟแวร์การเชื่อมต่อการลอกเลียนแบบขั้วเช่น SSH, xterm หรือหน้าจอ
เทอร์มินัลเป็นเพียงส่วนติดต่อผู้ใช้ของคอมพิวเตอร์ที่ใช้ข้อความสำหรับอินพุตและเอาต์พุต
เหล่านี้ใช้พี seudo- ทีเอเลTYพอร์ต PE แต่การตั้งชื่อและการใช้งานของพวกเขาได้แยกออกมาเล็ก ๆ น้อย ๆ
ลินุกซ์เมาท์พิเศษระบบไฟล์devptsบน/ dev (ที่ s 'คงจะยืนs erial) ที่สร้างรายการที่สอดคล้องกันใน/dev/pts
สำหรับหน้าต่าง terminal ทุกใหม่ที่คุณเปิดเช่น/dev/pts/0
macOS / FreeBSDยังใช้โครงสร้างไฟล์/ devด้วยเช่นกันพวกมันใช้หลักการTTY
ตั้งชื่อแบบตัวเลขttys
สำหรับทุกหน้าต่างเทอร์มินัลใหม่ที่คุณเปิดเช่น/dev/ttys002
Microsoft WindowsยังคงมีแนวคิดของLPT
พอร์ตสำหรับ Line Printer Terminals ภายใน Command Shell เพื่อส่งออกไปยังเครื่องพิมพ์