ทำไมต้องเป็น Virtual Console


26

เหตุผลที่มีคอนโซลเสมือนจำนวนมากคืออะไร?

ฉันจะเข้าใจว่ามีหนึ่งในกรณีที่เกิดปัญหา GUI แต่อีก 6 นอกเหนือจากค่าเริ่มต้น? สิ่งที่พวกเขาสำหรับ? ฉันยังไม่เห็นการใช้งานใด ๆ ของพวกเขายกเว้นเมื่อ GUI ค้าง


ฉันเห็นด้วยกับคำตอบของ Mateo ด้านล่าง ทำไมไม่มากขึ้น ฉันพบว่าตัวเองมีทั้ง 6 ที่เปิดอยู่และต้องการมากขึ้น (และ GUI มักจะยังคง "ปิด" ที่หน้าจอเข้าสู่ระบบ)
haziz

คำตอบ:


16

คำตอบสั้น ๆ : ทำไมไม่ (ยิ้มโดยนัยโปรด)

อีกอันที่ยาวกว่า : มันเป็นเรื่องประวัติศาสตร์ส่วนใหญ่ฉันคิดว่า มีคอนโซลเสมือน 6 ​​รายการที่กำหนดค่าด้วยgettyใน linux แรกที่ฉันบูทด้วยการสนับสนุน VC ฉันลืมจริงๆเมื่อ (ประมาณปี 1990 ฉันคิดว่า) จากนั้นเมื่อคุณเริ่มสภาพแวดล้อมแบบกราฟิก (ด้วยมือด้วยstartx ) มันจะเปิดตัวเองใน VC ฟรีแรกซึ่งเกิดขึ้นเป็น # 7 และฉันยังคงทำงาน VCs เป็นส่วนใหญ่ในขณะนั้น: บรรณาธิการเร็วขึ้นมากและบางครั้งฉันใช้ VC มากกว่ามาตรฐานหกและแล็ปท็อปของฉันไม่ใช่กราฟิกมอนสเตอร์แน่นอน ...

ตัวอย่างเช่นฉันเคยรันบรรณาธิการสามคน (โปรแกรม, ข้อมูลอินพุต, ไฟล์ TeX ที่อธิบายไว้), หนึ่ง VC สำหรับการคอมไพล์, อีกอันเพื่ออ่านคู่มือและอีกอันหนึ่งเชื่อมต่อผ่าน telnet ไปยังเมลเซิร์ฟเวอร์ของฉัน

ฉันสงสัยว่าเหตุผลในการคงใช้หกคอนโซลเสมือนคือการปล่อยให้กราฟิก VC ใน # 7 สำหรับทุกคนเพื่อให้คุณสามารถเขียนในคู่มือ " Ctrl-Alt-F7" และไม่ " Ctrl-Alt-Fxซึ่ง xเป็นครั้งแรกฟรี VC"

ในฐานะที่เป็นบันทึกด้านข้างคุณสามารถ (ฉันคิดว่า --- ไม่เคยลอง) ตัดแต่ง VCs เพียงทำ

sudo bash -c "echo 'manual' >> /etc/init/tty6.override"

ที่จะหยุด VC # 6, ต่อไปนี้คู่มือพุ่งพรวด


เป็นไปได้ที่จะตัดทอนจำนวนtty ที่ใช้งานอยู่แต่ไม่ใช่ไฟล์อุปกรณ์ด้วยตัวเอง (ยกเว้นว่าผู้ใช้ต้องการคอมไพล์เคอร์เนลใหม่ ดูคำตอบของฉันด้านล่าง
Sergiy Kolodyazhnyy

9

ทำไมไม่มากไปกว่านี้? เรียกใช้topหรือhtopหนึ่ง (ให้การใช้งานซีพียู / หน่วยความจำสถิติ) sshไปยังระบบอื่น ๆ ใน 2 หรือ 3 เรียกใช้งานอัตโนมัติบางอย่างในอีกระบบหนึ่งให้ฟรีในกรณีเข้าสู่ระบบผู้ใช้หลายคนในอีกไม่กี่เริ่มทำงานcmatrixหนึ่ง GUI ในที่อื่นด้วย -

startx -- :1

(กราฟิกบางตัวมีข้อบกพร่องด้วยสิ่งนี้)

http://mostlylinux.wordpress.com/troubleshooting/ttysessions/

เมื่อคุณเริ่มใช้คุณลักษณะนี้ 7 tty (อันที่เจ็ดคือค่าเริ่มต้น) ดูเหมือนจะน้อยและคุณสามารถเพิ่มได้มากขึ้น

วิธีลดจำนวน: ฉันจะลดจำนวน TTY ได้อย่างไร


8

ทั้งหมดของ/dev/tty*รายการเป็นสิ่งที่เป็นที่รู้จักกันdevice fileในสอดคล้องกับปรัชญา Unix พวกเขาทำหน้าที่เป็นลิงค์ระหว่างผู้ใช้และอุปกรณ์จริง แต่วัตถุประสงค์ของพวกเขาอาจแตกต่างกันเล็กน้อย

คอนโซลเสมือน

ไฟล์อุปกรณ์เช่น/dev/tty123สามารถใช้ในการโต้ตอบกับระบบผ่านเปลือกปกติเหล่านี้เป็นอาคารเสมือน ระบบ Ubuntu ได้รับการกำหนดค่าให้เปิดโดยค่าเริ่มต้น TTY 1 ถึง 6 แต่สามารถเปิดด้วยตัวเองได้มากกว่าเช่น

sudo openvt -c 9 -s "bash"

ซึ่งจะเปิดbashเป็นรูทบน / dev / tty9 และสลับคุณเป็น TTY นั้นทันที (ถ้าทำบนเทอร์มินัลท้องถิ่น แต่ถ้าคุณทำเช่นนั้นผ่านsshเซสชันระยะไกลซึ่งในกรณีนี้คุณอาจจำเป็นต้องใช้chvt 9โดยที่ 9 อยู่/dev/tty9ในตัวอย่างนี้) หากต้องการทำสิ่งเดียวกันโดยsudoไม่ใช้รูทคุณจะต้องเปลี่ยนความเป็นเจ้าของ tty ที่คุณต้องการเปิด ตัวอย่างเช่น,

$ sudo chown xieerqi:tty /dev/tty8 
$ openvt -c 8 -l 

ที่จะเข้าสู่ระบบด้วยเปลือกเริ่มต้นของฉันใน tty8 ในการทดสอบของฉันอย่างไรก็ตามดูเหมือนว่ามันจะทำงานผ่านทาง TTY เท่านั้นดังนั้นหากคุณกำลังทำเช่นนั้นผ่านเทอร์มินัลอีมูเลเตอร์นั่นอาจไม่ทำงาน (ฉันได้รับCouldn't get a file descriptor referring to the console ข้อผิดพลาดและsudo openvt -c 8 -lทำงานให้ฉันจากโปรแกรมจำลองเท่านั้น)

จากมุมมองเชิงประวัติศาสตร์ก่อนที่จะสร้างเทอร์มินัลมัลติเพล็กซ์แฟนซีทั้งหมดนี้เป็นคุณสมบัติที่มีประโยชน์ - คุณสามารถวางไข่ได้ถึง 62 คำสั่ง (อาจเป็นเซิร์ฟเวอร์) บนคอนโซลเหล่านั้นและปล่อยให้มันทำงานในขณะที่ทำงานใน 63 ทุกวันนี้อาจไม่จำเป็นเท่าที่ควร

มีไฟล์อุปกรณ์หลายไฟล์ที่สร้างขึ้นตามค่าเริ่มต้น แอ็คทีฟคือ 1 ถึง 6 แต่สามารถเปลี่ยนจำนวนได้โดยการแก้ไขโดย/etc/default/console-setupเฉพาะส่วนนี้:

# Setup these consoles.  Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"

อุปกรณ์ ttyS *

เหล่านี้คือไฟล์อุปกรณ์ที่ใช้สำหรับคอนโซลอนุกรมหรือที่รู้จักในชื่อ UART (หรือที่รู้จักในชื่อ RS-232) ในอดีตระบบคอมพิวเตอร์จำนวนมากจะมาพร้อมกับพอร์ตอนุกรม ทุกวันนี้สิ่งนี้สามารถพบได้ในคอมพิวเตอร์ประเภทเซิร์ฟเวอร์ อุปกรณ์ ttyS หลายตัวอาจมีประโยชน์กับฮับ RS-232 ซึ่งช่วยให้การเชื่อมต่ออุปกรณ์หลายตัวได้รับการจัดการผ่าน USB หรืออีเธอร์เน็ต

สำหรับวิศวกรไฟฟ้า (ซึ่งเป็นสิ่งที่ฉันเรียนวิชาเอกในวิทยาลัย) เราใช้พอร์ตอนุกรมเพื่อโต้ตอบกับไมโครคอนโทรลเลอร์และบอร์ดพัฒนา (เช่น Arduino) คอมพิวเตอร์พอร์ตเดียวเช่น Raspberry Pi ก็ใช้เช่นกัน ทุกวันนี้การเชื่อมต่อแบบอนุกรมนั้นใช้สายเคเบิล USB กับ UART และเปิดคอนโซลในเทอร์มินัลผ่านscreen:

screen /dev/ttyUSB0 115200 # the number is baud rate or speed

โปรดทราบว่า Arduino และ Raspberry จะสร้างไฟล์อุปกรณ์ของตัวเองสำหรับการเชื่อมต่อแบบอนุกรม/dev/ttyUSB0หรือ/dev/ttyACM0

อุปกรณ์ vcs *

ตามman vcsเหล่านี้เป็นอุปกรณ์หน่วยความจำคอนโซล ในคำง่าย ๆ ถ้าคุณsudo cat /dev/vcs1คุณจะเห็นสิ่งที่อยู่บนหน้าจอ/dev/tty1อย่างน้อยที่สุดจำนวนบรรทัดสูงสุดในเทอร์มินัลนั้น

การลดจำนวนคอนโซล

การลดจำนวนไฟล์อุปกรณ์จริงไม่สามารถทำได้โดยไม่ต้องเปลี่ยนtty.hไลบรารีและรวบรวมเคอร์เนลใหม่ ( อ้างอิงและอีกอันหนึ่ง ) อย่างไรก็ตามการลบอุปกรณ์เหล่านั้นสามารถทำได้ด้วยตนเองผ่านคำสั่งนี้:

sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'

อย่างไรก็ตามสิ่งนี้ค่อนข้างไม่มีจุดหมาย - ไฟล์อุปกรณ์ไม่ใช้พื้นที่และไม่ส่งผลต่อประสิทธิภาพของระบบ


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
terdon

6

การปฏิบัติจริงเป็นจริง อาจมีหลายโปรแกรมที่ทำงานพร้อมกันในระบบลีนุกซ์ผู้ใช้หลายคนอย่างแท้จริง, และคุณสามารถไปที่แต่ละรายการเพื่อตรวจสอบว่าแต่ละโปรแกรมทำงานในเทอร์มินัลเสมือนของตัวเองหรือไม่. เมื่อคุณเข้าสู่ระบบแต่ละคนคุณสามารถเข้าสู่ระบบในฐานะผู้ใช้ที่แตกต่างกันหากจำเป็น ตอนนี้ได้รับอนุญาตหลาย ๆ คนมาถึง Linux ด้วยมุมมองของผู้ใช้เพียงคนเดียว แต่เนื่องจาก Linux เกิดมาพร้อมกับผู้ใช้หลายคนความสามารถนั้นจึงไม่เคยถูกละทิ้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.