Dlaczego tyle wirtualnych konsol?

26

Jaki jest powód posiadania tak wielu wirtualnych konsol?

Zrozumiałbym, gdyby istniał jeden w przypadku awarii GUI, ale 6 innych oprócz domyślnych? Po co one są? Nie widzę nawet żadnego zastosowania dla żadnego z nich, z wyjątkiem sytuacji, gdy GUI zawiesza się.

Hinklo
źródło
Zgadzam się z odpowiedzią Mateo poniżej. Dlaczego nie WIĘCEJ? Czuję, że mam wszystkie 6 otwartych i chcę więcej (a GUI często pozostaje „wyłączony” na ekranie logowania).
haziz

Odpowiedzi:

16

Krótka odpowiedź : dlaczego nie? (sugerowany uśmiech, proszę)

Dłużej : przypuszczam, że jest to głównie historia. Było sześć wirtualnych konsol skonfigurowanych gettyw pierwszym Linuksie, który uruchomiłem ze wsparciem VC, naprawdę zapomniałem kiedy (chyba około 1990). Potem, kiedy uruchomiłeś środowisko graficzne (ręcznie, zstartx ), otworzyło się ono na pierwszym wolnym VC, którym było # 7. W tym czasie nadal większość pracy nad VC: edytory były znacznie szybsze i czasami używałem więcej VC niż standardowe sześć, a mój laptop nie był dokładnie potworem graficznym ...

Na przykład uruchamiałem trzy edytory (program, jego dane wejściowe, opisujący go plik TeX), jeden VC do kompilacji, inny do czytania instrukcji, a drugi podłączony przez telnet do mojego serwera pocztowego.

Podejrzewam, że uzasadnieniem dla dalszego korzystania z sześciu wirtualnych konsol jest pozostawienie graficznej VC na # 7 dla każdego, abyś mógł pisać o instrukcjach „ Ctrl-Alt-F7”, a nie „ Ctrl-Alt-Fxgdzie xjest pierwsza darmowa VC”.

Na marginesie, możesz (przypuszczam - nigdy nie próbowałem) przyciąć VC. Po prostu zrób

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

aby zatrzymać VC # 6, postępując zgodnie z instrukcją wstępną .

Rmano
źródło
Możliwe jest zmniejszenie liczby aktywnych tty, ale nie samych plików urządzeń (chyba że ludzie chcą ponownie skompilować jądra). Zobacz moją odpowiedź poniżej
Sergiy Kolodyazhnyy
9

Dlaczego nie więcej? Uruchom toplub htopw jednym (daje statystyki użycia procesora / pamięci), sshinnym systemom w 2 lub 3, uruchom jakieś automatyczne zadanie w innym, zachowaj jedno na wszelki wypadek, zaloguj się do wielu użytkowników w kilku innych, uruchom cmatrixna jednym, uruchom GUI w innym z -

startx -- :1

(niektóre grafiki mają z tym błędy)

http://mostlylinux.wordpress.com/trou Rozwiązywanie problemów/ttysessions/

Kiedy naprawdę zaczniesz korzystać z tej funkcji, 7 tty (siódmy jest domyślny) wydaje się być nieliczną - i możesz dodać więcej.

Aby zmniejszyć liczbę: Jak mogę zmniejszyć liczbę TTY?

Mateo
źródło
8

Wszystkie /dev/tty*wpisy są znane jako device file, zgodnie z filozofią Uniksa. Służą jako łącznik między użytkownikiem a rzeczywistym urządzeniem, ale ich przeznaczenie może się nieznacznie różnić.

Konsole wirtualne

Pliki urządzeń, takie jak, /dev/tty123mogą być używane do interakcji z systemem za pośrednictwem zwykłej powłoki. Są to wirtualne terminale. System Ubuntu jest skonfigurowany tak, aby domyślnie otwierać TTY od 1 do 6, ale można ręcznie otworzyć więcej, na przykład:

sudo openvt -c 9 -s "bash"

Otworzy się bashjako root na / dev / tty9 i natychmiast przełączy cię do tego TTY (jeśli zrobiono to na terminalu lokalnym, ale jeśli robisz to za pośrednictwem sshsesji zdalnej , w takim przypadku możesz potrzebować użyć chvt 9, gdzie 9 jest /dev/tty9w tym przykładzie). Aby zrobić to samo bez użytkownika sudoroot, musisz zmienić własność tty, którą chcesz otworzyć. Na przykład,

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

To by mnie zalogowało przy użyciu domyślnej powłoki na tty8. Jednak w moich testach wydaje się, że działa to tylko przez TTY, więc jeśli robisz to za pomocą emulatora terminala, może to nie działać (dostaję Couldn't get a file descriptor referring to the console błąd i sudo openvt -c 8 -ldziałało tylko dla mnie z emulatora)

Z historycznego punktu widzenia, zanim powstały wszystkie fantazyjne multipleksery terminali, była to przydatna funkcja - można było spawnować do 62 poleceń (być może serwerów) na tych konsolach i pozwolić im działać, pracując na 63. miejscu. W dzisiejszych czasach może nie być tak konieczne.

Domyślnie utworzonych jest wiele plików urządzeń. Aktywne mają od 1 do 6, ale można zmienić ich liczbę , edytując /etc/default/console-setup, a konkretnie tę część:

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

urządzenia ttyS *

Są to pliki urządzeń używane przez konsole szeregowe, znane również jako UART (znane również jako RS-232). W przeszłości wiele systemów komputerowych miało port szeregowy. Obecnie można to najczęściej znaleźć na komputerach typu serwer. Wiele urządzeń ttyS może być użytecznych z koncentratorami RS-232, które umożliwiają podłączanie wielu urządzeń zarządzanych przez USB lub Ethernet.

W przypadku inżynierów elektryków (na których głównie studiuję na studiach) używamy portu szeregowego do interakcji z mikrokontrolerami i płytami programistycznymi (na przykład Arduino). Używają go także komputery z jednym portem, takie jak Raspberry Pi. Obecnie połączenie szeregowe jest ustanawiane za pomocą kabla USB do UART i otwieranie konsoli w terminalu poprzez screen:

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

Uwaga: Arduino i Raspberry utworzą własny plik urządzenia dla połączenia szeregowego /dev/ttyUSB0lub/dev/ttyACM0

urządzenia vcs *

Zgodnie z man vcsnimi są urządzenia pamięci konsoli. Krótko mówiąc, jeśli to zrobisz sudo cat /dev/vcs1, zobaczysz, co jest na ekranie /dev/tty1, przynajmniej do maksymalnej liczby linii w tym terminalu.

Zmniejszenie liczby konsol

Zmniejszenie liczby rzeczywistych plików urządzeń nie jest możliwe bez zmiany tty.hbiblioteki i ponownej kompilacji jądra ( Reference i inny ). Jednak usuwanie tych urządzeń można wykonać ręcznie za pomocą tego polecenia:

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

Jest to jednak nieco bezcelowe - pliki urządzeń nie zajmują miejsca i nie wpływają na wydajność systemu.

Sergiy Kolodyazhnyy
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
terdon
6

Praktyczność jest prawdziwa. W prawdziwie wieloużytkownikowym systemie Linux może być uruchomionych wiele programów jednocześnie. Możesz wpaść i sprawdzić, czy każdy z nich działa w swoim własnym terminalu wirtualnym. Po zalogowaniu się do każdego z nich możesz w razie potrzeby zalogować się jako różni użytkownicy. To prawda, że ​​wielu ludzi przybywa do Linuksa z perspektywą jednego użytkownika, ale ponieważ Linux narodził się z wieloma użytkownikami, ta zdolność nigdy nie została odrzucona.

K7AAY
źródło