เหตุผลที่มีคอนโซลเสมือนจำนวนมากคืออะไร?
ฉันจะเข้าใจว่ามีหนึ่งในกรณีที่เกิดปัญหา GUI แต่อีก 6 นอกเหนือจากค่าเริ่มต้น? สิ่งที่พวกเขาสำหรับ? ฉันยังไม่เห็นการใช้งานใด ๆ ของพวกเขายกเว้นเมื่อ GUI ค้าง
เหตุผลที่มีคอนโซลเสมือนจำนวนมากคืออะไร?
ฉันจะเข้าใจว่ามีหนึ่งในกรณีที่เกิดปัญหา GUI แต่อีก 6 นอกเหนือจากค่าเริ่มต้น? สิ่งที่พวกเขาสำหรับ? ฉันยังไม่เห็นการใช้งานใด ๆ ของพวกเขายกเว้นเมื่อ GUI ค้าง
คำตอบ:
คำตอบสั้น ๆ : ทำไมไม่ (ยิ้มโดยนัยโปรด)
อีกอันที่ยาวกว่า : มันเป็นเรื่องประวัติศาสตร์ส่วนใหญ่ฉันคิดว่า มีคอนโซลเสมือน 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"
ทำไมไม่มากไปกว่านี้? เรียกใช้top
หรือhtop
หนึ่ง (ให้การใช้งานซีพียู / หน่วยความจำสถิติ) ssh
ไปยังระบบอื่น ๆ ใน 2 หรือ 3 เรียกใช้งานอัตโนมัติบางอย่างในอีกระบบหนึ่งให้ฟรีในกรณีเข้าสู่ระบบผู้ใช้หลายคนในอีกไม่กี่เริ่มทำงานcmatrix
หนึ่ง GUI ในที่อื่นด้วย -
startx -- :1
(กราฟิกบางตัวมีข้อบกพร่องด้วยสิ่งนี้)
http://mostlylinux.wordpress.com/troubleshooting/ttysessions/
เมื่อคุณเริ่มใช้คุณลักษณะนี้ 7 tty (อันที่เจ็ดคือค่าเริ่มต้น) ดูเหมือนจะน้อยและคุณสามารถเพิ่มได้มากขึ้น
วิธีลดจำนวน: ฉันจะลดจำนวน TTY ได้อย่างไร
ทั้งหมดของ/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]"
เหล่านี้คือไฟล์อุปกรณ์ที่ใช้สำหรับคอนโซลอนุกรมหรือที่รู้จักในชื่อ 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
ตาม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'
อย่างไรก็ตามสิ่งนี้ค่อนข้างไม่มีจุดหมาย - ไฟล์อุปกรณ์ไม่ใช้พื้นที่และไม่ส่งผลต่อประสิทธิภาพของระบบ
การปฏิบัติจริงเป็นจริง อาจมีหลายโปรแกรมที่ทำงานพร้อมกันในระบบลีนุกซ์ผู้ใช้หลายคนอย่างแท้จริง, และคุณสามารถไปที่แต่ละรายการเพื่อตรวจสอบว่าแต่ละโปรแกรมทำงานในเทอร์มินัลเสมือนของตัวเองหรือไม่. เมื่อคุณเข้าสู่ระบบแต่ละคนคุณสามารถเข้าสู่ระบบในฐานะผู้ใช้ที่แตกต่างกันหากจำเป็น ตอนนี้ได้รับอนุญาตหลาย ๆ คนมาถึง Linux ด้วยมุมมองของผู้ใช้เพียงคนเดียว แต่เนื่องจาก Linux เกิดมาพร้อมกับผู้ใช้หลายคนความสามารถนั้นจึงไม่เคยถูกละทิ้ง