ทำไมถึงมีอุปกรณ์เทอร์มินัลเสมือนจริงมากมาย


11

ฉันได้อ่านหนังสือการเขียนโปรแกรม Linux ขั้นสูงและมันพูดถึงเทอร์มินัลเสมือนซึ่งถ้าฉันเข้าใจถูกต้องมันเป็นคุณสมบัติเฉพาะของ Linux (ไม่ใช่ใน Unix) เพื่ออนุญาตคอนโซลการเข้าสู่ระบบหลายแห่งในระบบที่ไม่ใช่ X11 คุณสร้างเทอร์มินัลเสมือนโดยกด ALT-F2 ฉันใช้ Linux Mint และในโฟลเดอร์ / dev ของฉันแม้ว่าฉันจะเห็นอุปกรณ์ tty มากมายและฉันไม่รู้ว่ามันใช้ทำอะไร นี่คือเอาต์พุต grepped:

crw-rw-rw-  1 root tty       5,   0 Jan  2 19:45 tty
crw--w----  1 root tty       4,   0 Jan  2 19:10 tty0
crw-rw----  1 root tty       4,   1 Jan  2 19:10 tty1
crw--w----  1 root tty       4,  10 Jan  2 19:10 tty10
crw--w----  1 root tty       4,  11 Jan  2 19:10 tty11
crw--w----  1 root tty       4,  12 Jan  2 19:10 tty12
crw--w----  1 root tty       4,  13 Jan  2 19:10 tty13
crw--w----  1 root tty       4,  14 Jan  2 19:10 tty14
crw--w----  1 root tty       4,  15 Jan  2 19:10 tty15
crw--w----  1 root tty       4,  16 Jan  2 19:10 tty16
crw--w----  1 root tty       4,  17 Jan  2 19:10 tty17
crw--w----  1 root tty       4,  18 Jan  2 19:10 tty18
crw--w----  1 root tty       4,  19 Jan  2 19:10 tty19
crw-rw----  1 root tty       4,   2 Jan  2 19:10 tty2
crw--w----  1 root tty       4,  20 Jan  2 19:10 tty20
crw--w----  1 root tty       4,  21 Jan  2 19:10 tty21
crw--w----  1 root tty       4,  22 Jan  2 19:10 tty22
crw--w----  1 root tty       4,  23 Jan  2 19:10 tty23
crw--w----  1 root tty       4,  24 Jan  2 19:10 tty24
crw--w----  1 root tty       4,  25 Jan  2 19:10 tty25
crw--w----  1 root tty       4,  26 Jan  2 19:10 tty26
crw--w----  1 root tty       4,  27 Jan  2 19:10 tty27
crw--w----  1 root tty       4,  28 Jan  2 19:10 tty28
crw--w----  1 root tty       4,  29 Jan  2 19:10 tty29
crw-rw----  1 root tty       4,   3 Jan  2 19:10 tty3
crw--w----  1 root tty       4,  30 Jan  2 19:10 tty30
crw--w----  1 root tty       4,  31 Jan  2 19:10 tty31
crw--w----  1 root tty       4,  32 Jan  2 19:10 tty32
crw--w----  1 root tty       4,  33 Jan  2 19:10 tty33
crw--w----  1 root tty       4,  34 Jan  2 19:10 tty34
crw--w----  1 root tty       4,  35 Jan  2 19:10 tty35
crw--w----  1 root tty       4,  36 Jan  2 19:10 tty36
crw--w----  1 root tty       4,  37 Jan  2 19:10 tty37
crw--w----  1 root tty       4,  38 Jan  2 19:10 tty38
crw--w----  1 root tty       4,  39 Jan  2 19:10 tty39
crw-rw----  1 root tty       4,   4 Jan  2 19:10 tty4
crw--w----  1 root tty       4,  40 Jan  2 19:10 tty40
crw--w----  1 root tty       4,  41 Jan  2 19:10 tty41
crw--w----  1 root tty       4,  42 Jan  2 19:10 tty42
crw--w----  1 root tty       4,  43 Jan  2 19:10 tty43
crw--w----  1 root tty       4,  44 Jan  2 19:10 tty44
crw--w----  1 root tty       4,  45 Jan  2 19:10 tty45
crw--w----  1 root tty       4,  46 Jan  2 19:10 tty46
crw--w----  1 root tty       4,  47 Jan  2 19:10 tty47
crw--w----  1 root tty       4,  48 Jan  2 19:10 tty48
crw--w----  1 root tty       4,  49 Jan  2 19:10 tty49
crw-rw----  1 root tty       4,   5 Jan  2 19:10 tty5
crw--w----  1 root tty       4,  50 Jan  2 19:10 tty50
crw--w----  1 root tty       4,  51 Jan  2 19:10 tty51
crw--w----  1 root tty       4,  52 Jan  2 19:10 tty52
crw--w----  1 root tty       4,  53 Jan  2 19:10 tty53
crw--w----  1 root tty       4,  54 Jan  2 19:10 tty54
crw--w----  1 root tty       4,  55 Jan  2 19:10 tty55
crw--w----  1 root tty       4,  56 Jan  2 19:10 tty56
crw--w----  1 root tty       4,  57 Jan  2 19:10 tty57
crw--w----  1 root tty       4,  58 Jan  2 19:10 tty58
crw--w----  1 root tty       4,  59 Jan  2 19:10 tty59
crw-rw----  1 root tty       4,   6 Jan  2 19:10 tty6
crw--w----  1 root tty       4,  60 Jan  2 19:10 tty60
crw--w----  1 root tty       4,  61 Jan  2 19:10 tty61
crw--w----  1 root tty       4,  62 Jan  2 19:10 tty62
crw--w----  1 root tty       4,  63 Jan  2 19:10 tty63
crw--w----  1 root tty       4,   7 Jan  2 19:10 tty7
crw--w----  1 root tty       4,   8 Jan  2 19:10 tty8
crw--w----  1 root tty       4,   9 Jan  2 19:10 tty9

4
ในความเป็นจริงคุณไม่ได้สร้าง Linux VT โดยการกด CTRL-ALT-F1 (และอื่น ๆ ) พวกเขาอยู่ที่นั่นแล้วคุณไม่เห็นพวกเขาเนื่องจากตัวจัดการการแสดงผลของคุณถูกเรียกใช้โดยอัตโนมัติเมื่อเริ่มต้นและจากนั้นคุณก็สิ้นสุดใน X (ซึ่งคือ, สับสน, ทำงานบน tty 7) ลองดู/etc/inittabแล้วคุณจะเห็นว่ามันทำงานอย่างไร
Emanuel Berg

คำตอบ:


10

เหล่านี้เป็นอุปกรณ์คอนโซลเสมือนโดยเฉพาะใน Linux terminolgy การสนับสนุนคอนโซลเสมือนบนอุปกรณ์ฟิสิคัลเดียวกันไม่ได้มีเฉพาะใน Linux (ตัวอย่างเช่นBSDเรียกพวกเขาว่า "พอร์ตฮาร์ดแวร์ของพอร์ต")

Linux ไม่มีกลไกสำหรับการสร้างอุปกรณ์คอนโซลตามต้องการ คอนโซล 63 ไม่ได้เปิดใช้งานเสมอ (คุณต้องเปิดใช้งานttyNเพื่อเปลี่ยนเป็น ( Ctrl+) Alt+ FN) แต่การเปิดใช้งานต้องเปิดอุปกรณ์คอนโซล ( openvtคำสั่งทำเช่นนั้นgettyกับเซิร์ฟเวอร์ X) ดังนั้นรายการอุปกรณ์จะต้องมีอยู่ตลอดเวลามิฉะนั้นจะต้องสร้างขึ้นด้วยตนเองก่อนที่จะสามารถใช้งานได้

ระบบ Linux ที่ทันสมัย ​​(ที่มี udev หรือ devtmpfs) สร้างรายการอุปกรณ์สำหรับทุกอุปกรณ์ที่มีอยู่ในระบบ คอนโซลเสมือนทั้งหมดมีอยู่เสมอ (ไม่ว่าจะใช้งานอยู่หรือไม่ก็ตาม) ดังนั้นรายการทั้งหมดจึงถูกสร้างขึ้น ผู้ใช้ส่วนใหญ่ไม่ต้องการอะไรมากนัก - ที่จริงแล้วผู้ใช้ส่วนใหญ่ไม่เคยเห็นอะไรเลยนอกจากคอนโซลเสมือนที่ X กำลังทำงานอยู่ แต่มีบางอย่างที่ต้องทำและจำเป็นต้องแก้ไขเคอร์เนลเพื่อให้สามารถใช้งานคอนโซลได้มากกว่า 63 เครื่องเนื่องจากใช้งานเครื่องจักรขนาดใหญ่ที่มีฮาร์ดแวร์คอนโซลจำนวนมาก)


-2

ไม่ใช่สิ่งเฉพาะ linux และ ttys ไม่เพียง แต่ใช้สำหรับเทอร์มินัลเสมือนเท่านั้น พวกเขายังใช้เช่นเมื่อคุณเริ่ม xterm เมื่อคุณอยู่ในส่วนต่อประสานกราฟิก หากมีอุปกรณ์ tty น้อยกว่าคุณจะไม่สามารถมีล็อกอิน xterms หรือ ssh จำนวนมาก


หืมอยากอธิบายเพิ่มเติมอีกหน่อยเหรอ? เมื่อคุณรัน xterm ภายใต้ X คุณจะไม่ได้รับ pts และไม่ใช่ tty ใช่ไหม
Emanuel Berg


ตกลงฉันอ่าน แต่ก็ยังไม่ชัดเจน คุณกำลังพูดว่าเมื่อฉันเริ่ม xterm กระบวนการนั้นเกี่ยวข้องกับไฟล์อุปกรณ์ tty /devดังนั้นถ้ามีน้อยกว่านั้นคุณสามารถ "หมด" ttys ได้จริงหรือ
Emanuel Berg

4
ที่จริงแล้วอินเตอร์เฟสอุปกรณ์สำหรับ X emulators ไม่ใช่ tty - เป็น "สถานีหลอก" (pt) ผู้ที่ได้รับการจัดการแบบไดนามิกโดย kernel /dev/pts/แต่คนที่มีอยู่ในปัจจุบันมีการระบุไว้ใน ttyคำสั่งจะให้อุปกรณ์ของคุณในปัจจุบัน - ลอง X แล้วลองในเวอร์มอนต์
goldilocks

2
คุณกำลังสับสน/dev/ttyN(เสมือนคอนโซลบางครั้งเรียกว่าเทอร์มินัลเสมือน) กับเทอร์มินัลเก่า/dev/ptyN(หลอก - เทอร์มินัลบางครั้งเรียกว่าเทอร์มินัลเสมือน) ลินุกซ์ตอนนี้ใช้แบบไดนามิกจัดสรรแทนของเดิมแบบคงที่จัดสรร/dev/pts/N /dev/ptyN
Gilles 'ดังนั้นหยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.