ซ้ำได้:
ความแตกต่างที่แน่นอนระหว่าง 'terminal', 'shell', 'tty' และ 'console' คืออะไร?
ฉันเห็น pts และ tty เสมอเมื่อฉันใช้who
คำสั่ง แต่ฉันไม่เคยเข้าใจว่ามันแตกต่างกันอย่างไร ใครช่วยอธิบายเรื่องนี้หน่อยได้ไหม
ซ้ำได้:
ความแตกต่างที่แน่นอนระหว่าง 'terminal', 'shell', 'tty' และ 'console' คืออะไร?
ฉันเห็น pts และ tty เสมอเมื่อฉันใช้who
คำสั่ง แต่ฉันไม่เคยเข้าใจว่ามันแตกต่างกันอย่างไร ใครช่วยอธิบายเรื่องนี้หน่อยได้ไหม
คำตอบ:
TTYเป็นอุปกรณ์ปลายทางพื้นเมืองแบ็กเอนด์เป็นฮาร์ดแวร์หรือเคอร์เนลเทิดทูน
Pty (อุปกรณ์ปลายทางหลอก) เป็นอุปกรณ์ปลายทางซึ่งเป็นที่เทิดทูนโดยโปรแกรมอื่น ๆ (เช่นxterm
, screen
หรือssh
เป็นโปรแกรมดังกล่าว) จุดคือส่วนที่เป็นทาสของPty
(สามารถอ่านข้อมูลเพิ่มเติมได้man pty
)
สรุปสั้น ๆ :
Ptyถูกสร้างขึ้นโดยกระบวนการผ่านposix_openpt()
(ซึ่งมักจะเปิดอุปกรณ์พิเศษ/dev/ptmx
) และประกอบด้วยคู่ของอุปกรณ์ตัวอักษรแบบสองทิศทาง:
ส่วนหลักซึ่งเป็นตัวอธิบายไฟล์ที่ได้รับจากกระบวนการนี้ผ่านการโทรนี้จะใช้ในการจำลองเทอร์มินัล หลังจากการเริ่มต้นบางส่วนส่วนที่สองสามารถปลดล็อคด้วยunlockpt()
และต้นแบบที่ใช้ในการรับหรือส่งตัวละครไปยังส่วนที่สองนี้ (ทาส)
ชิ้นส่วนสลาฟซึ่งถูกยึดในระบบไฟล์ในขณะที่/dev/pts/x
(ชื่อจริงสามารถรับได้จากต้นแบบผ่านptsname()
) จะทำงานเหมือนอุปกรณ์เทอร์มินัลเนทีฟ ( /dev/ttyx
) ในกรณีส่วนใหญ่เชลล์จะเริ่มต้นโดยใช้มันเป็นเทอร์มินัลการควบคุม
A tty
เป็นอุปกรณ์เทอร์มินัลปกติ (เช่นคอนโซลบนเซิร์ฟเวอร์ของคุณ)
A pts
เป็นทาสเทอร์มินัล psuedo ( xterm
หรือการssh
เชื่อมต่อ)
man pts
มีคำอธิบายอย่างละเอียดของสถานีหลอก