ซ้ำได้:
ความแตกต่างที่แน่นอนระหว่าง '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 มีคำอธิบายอย่างละเอียดของสถานีหลอก