Jaka jest dokładna różnica między „terminalem”, „powłoką”, „tty” i „konsolą”?

1235

Myślę, że te terminy prawie odnoszą się do tej samej rzeczy, gdy są używane luźno:

  • terminal
  • muszla
  • tty
  • konsola

Co dokładnie odnosi się do każdego z tych terminów?

Lazer
źródło
28
Chciałbym dodać do tego „wiersz poleceń” :-)
teeks99
1
Wiersz poleceń to po prostu język używany do wysyłania poleceń do interpretera wiersza poleceń działającego w powłoce z emulatora terminala / terminala.
Marty Fried
1
Dalekopisowe (TTY) został po raz pierwszy wprowadzony w pracy i na wystawie w Instytucie Mechaniki w Nowym Jorku w 1844 roku en.wikipedia.org/wiki/Teleprinter
Serge Stroobandt
Dwa więcej przydatnych linków - feyrer.de/NetBSD/ttys.html i quora.com/…
Nishant,

Odpowiedzi:

1198

Terminal znajduje się na końcu przewodu elektrycznego, skorupa jest domem żółwia, tty to dziwny skrót, a konsola jest rodzajem szafki.

W każdym razie, mówiąc etymologicznie.

W terminologii unixowej krótka odpowiedź brzmi:

  • terminal = tty = środowisko wprowadzania / wyprowadzania tekstu
  • konsola = terminal fizyczny
  • shell = interpreter wiersza poleceń

Konsola, terminal i tty są ściśle powiązane. Początkowo oznaczały one element wyposażenia, za pomocą którego można było wchodzić w interakcje z komputerem: we wczesnych czasach uniksowych oznaczało to urządzenie w stylu teleprintera przypominające maszynę do pisania, czasami nazywane teletypewriter lub skrótem „tty”. Nazwa „terminal” pochodzi z elektronicznego punktu widzenia, a nazwa „konsola” z meblowego punktu widzenia. Bardzo wcześnie w historii Uniksa elektroniczne klawiatury i wyświetlacze stały się normą dla terminali.

W terminologii unixowej tty jest szczególnym rodzajem pliku urządzenia, który implementuje szereg dodatkowych poleceń ( ioctls ) poza odczytem i zapisem. W swoim najczęstszym znaczeniu terminal jest synonimem tty. Niektóre tty są dostarczane przez jądro w imieniu urządzenia sprzętowego, na przykład z danymi wejściowymi pochodzącymi z klawiatury i danymi wyjściowymi przechodzącymi do ekranu trybu tekstowego lub z danymi wejściowymi i wyjściowymi przesyłanymi przez linię szeregową. Inne tty, czasami nazywane pseudo-tty , są dostarczane (przez cienką warstwę jądra) przez programy zwane emulatorami terminali , takie jak Xterm (działający w systemie X Window ), Screen(który zapewnia warstwę izolacji między programem a innym terminalem), Ssh (który łączy terminal na jednym komputerze z programami na innym komputerze), Oczekiwanie (do skryptów interakcji terminalu) itp.

Słowo „terminal” może również mieć bardziej tradycyjne znaczenie dla urządzenia, poprzez które wchodzi się w interakcję z komputerem, zwykle z klawiaturą i wyświetlaczem. Na przykład terminal X jest rodzajem cienkiego klienta , komputerem specjalnego przeznaczenia, którego jedynym celem jest sterowanie klawiaturą, wyświetlaczem, myszą i czasami innymi urządzeniami peryferyjnymi służącymi do interakcji człowieka, przy czym rzeczywiste aplikacje działają na innym, mocniejszym komputerze.

Konsola jest zwykle terminal w sensie fizycznym, który jest przez niektórych definicji głównym terminala bezpośrednio podłączony do komputera. Konsola wydaje się systemowi operacyjnemu jako (zaimplementowany w jądrze) tty. W niektórych systemach, takich jak Linux i FreeBSD, konsola pojawia się jako kilka tty (specjalne kombinacje klawiszy przełączają się między tymi tty); żeby pomylić sprawy, nazwa nadana każdemu konkretnemu tty może być „konsola”, „konsola wirtualna”, „terminal wirtualny” i inne odmiany.

Zobacz także Dlaczego wirtualny terminal jest „wirtualny” i co / dlaczego / gdzie jest „prawdziwy” terminal? .


Powłoka jest głównym interfejsem, który użytkownicy widzą podczas logowania, którego głównym celem jest, aby uruchomić inne programy. (Nie wiem, czy oryginalną metaforą jest to, że powłoka jest środowiskiem domowym dla użytkownika, czy też powłoka jest tym, w czym działają inne programy.)

W kręgach uniksowych powłoka specjalizuje się w znaczeniu powłoki wiersza poleceń , koncentrując się na wpisaniu nazwy aplikacji, którą chcesz uruchomić, a następnie nazw plików lub innych obiektów, na które aplikacja powinna działać, i naciśnięciu klawisza Enter. Inne typy środowisk nie używają słowa „shell”; na przykład systemy okienne obejmować „ menedżerów okien ” i „ środowisk graficznych ”, a nie „Shell”.

Istnieje wiele różnych powłok uniksowych. Popularne powłoki do interaktywnego użytku to Bash (domyślny w większości instalacji Linuksa), zsh (który podkreśla moc i możliwości dostosowania) i fish (który podkreśla prostotę).

Powłoki wiersza poleceń zawierają konstrukcje kontroli przepływu do łączenia poleceń. Oprócz wpisywania poleceń w interaktywnym monitie użytkownicy mogą pisać skrypty. Najpopularniejsze powłoki mają wspólną składnię opartą na Bourne_shell . Omawiając „ programowanie powłoki ”, prawie zawsze sugeruje się, że jest ona powłoką typu Bourne'a. Niektóre powłoki, które są często używane do pisania skryptów, ale nie mają zaawansowanych funkcji interaktywnych, obejmują powłokę Korna (ksh) i wiele wariantów jesionu . Prawie każdy system podobny do Uniksa ma zainstalowaną powłokę w stylu Bourne'a /bin/sh, zwykle ash, ksh lub bash.

W administracji systemem unix powłoka użytkownika to program, który jest wywoływany podczas logowania. Normalne konta użytkowników mają powłokę wiersza polecenia, ale użytkownicy z ograniczonym dostępem mogą mieć ograniczoną powłokę lub inną określoną komendę (np. Do przesyłania plików - tylko konta).


Podział pracy między terminalem a powłoką nie jest całkowicie oczywisty. Oto ich główne zadania.

  • Wejście: terminal przekształca klucze w sekwencje kontrolne (np. Left\e[D). Powłoka konwertuje sekwencje kontrolne na polecenia (np. \e[Dbackward-char).
  • Edycja linii, historia wprowadzania i uzupełnianie są dostarczane przez powłokę.
    • Terminal może zamiast tego udostępnić własną edycję linii, historię i uzupełnienie oraz wysyłać linię do powłoki tylko wtedy, gdy jest ona gotowa do wykonania. Jedynym wspólnym terminalem, który działa w ten sposób, jest M-x shellEmacs.
  • Dane wyjściowe: powłoka emituje instrukcje takie jak „display foo”, „zmień kolor pierwszego planu na zielony”, „przesuń kursor do następnej linii” itp. Terminal działa zgodnie z tymi instrukcjami.
  • Podpowiedź jest wyłącznie koncepcją powłoki.
  • Powłoka nigdy nie widzi danych wyjściowych poleceń, które uruchamia (chyba że nastąpi przekierowanie). Historia danych wyjściowych (przewijanie wstecz) jest wyłącznie pojęciem terminala.
  • Terminal kopiuj-wklej jest dostarczany przez terminal (zwykle za pomocą myszy lub sekwencji klawiszy, takich jak Ctrl+ Shift+ Vlub Shift+ Insert). Powłoka może mieć również swój wewnętrzny mechanizm kopiuj-wklej (np. Meta+ WI Ctrl+ Y).
  • Kontrola zadań (uruchamianie programów w tle i zarządzanie nimi) odbywa się głównie przez powłokę. Jednak to terminal obsługuje kombinacje klawiszy, takie jak Ctrl+, Caby zabić zadanie na pierwszym planie i Ctrl+, Zaby je zawiesić.
Gilles
źródło
50
Tylko spór: powiedziałbym, że oba rodzaje tty są „dostarczane” przez jądro. Różnicę, którą chciałbym podkreślić, to to, że sprzętowe tty (np. Linie szeregowe i wbudowana konsola tekstowa) mają jeden koniec podłączony do sprzętu i jeden koniec do oprogramowania (np. Programy do logowania i / lub powłoki), podczas gdy pseudo-tty mają oba końce są podłączone do oprogramowania (np. emulator terminala na jednym końcu i powłoka na drugim).
Chris Johnsen,
12
@phunehehe: Racja, to inne znaczenie „powłoki”, powszechnie stosowane w projektowaniu systemu operacyjnego: powłoka jest zewnętrzną częścią jądra. To nie jest terminologia uniksowa: jądra uniksowe nie mają zwykle komponentu, który można by nazwać powłoką.
Gilles
24
To jest obraz w mojej głowie dla metafory powłoki.
ændrük
12
Istnieje również inne znaczenie „konsoli” pod Linuksem. Konsola (jest tylko jedna) to miejsce, w którym printkma wystarczający priorytet (np. Panika jądra). Ustawia się go przez przekazanie console=DEVICE,...wiersza poleceń jądra (np. console=ttyS0,115200Dla pierwszego portu szeregowego, przy prędkości 115 200 bps). Zwykle domyślnie jest to terminal wirtualny, ale można to zmienić podczas kompilacji jądra.
derobert
19
„… Terminal… obsługuje kombinacje klawiszy, takie jak Ctrl + C, aby zabić zadanie pierwszoplanowe, a Ctrl + Z, aby je zawiesić” Niezupełnie: terminal nadal jedynie wysyła znaki sterujące, to urządzenie tty decyduje o tym, jak sobie z nimi poradzić, i można je konfigurować . Domyślnie urządzenie tty konwertuje znaki sterujące na sygnały wysyłane do powłoki (i innych procesów).
Chris Page
194

Terminala lub konsola jest kawałek sprzętu, za pomocą którego użytkownik może wchodzić w interakcje z hostem. Zasadniczo klawiatura połączona z ekranem tekstowym.
Obecnie prawie wszystkie terminale i konsole reprezentują „wirtualne”.

Plik reprezentujący terminal jest tradycyjnie nazywany plikiem tty . Jeśli zajrzysz do katalogu „/ dev” systemu UNIX, znajdziesz wiele plików tty podłączonych do konsol wirtualnych (np. Tty1 na Linuksie), wirtualnych terminali (np. Pts / 0) lub fizycznie podłączonego sprzętu (np. TtyS0 to fizyczny terminal szeregowy, jeśli istnieje, podłączony do pierwszego portu szeregowego hosta).

Konsola musi być elementem sprzętu fizycznie połączona (lub części) gospodarza. Odgrywa szczególną rolę w systemie: jest to główny punkt dostępu do systemu w celu konserwacji, a niektóre specjalne operacje można wykonać tylko z konsoli (np. Patrz single user mode). Terminal może być i zazwyczaj jest, zdalny kawałek sprzętu.

Wreszcie, powłoka jest specjalnym programem, który współdziała z użytkownikiem poprzez kontrolujący tty i oferuje użytkownikowi sposób uruchamiania innych programów (np. Bash, csh, tcsh).

Emulator terminala jest program, który emuluje terminal fizyczne (np xterma, okien terminala, minicom).

Kiedy więc patrzysz na „okno tekstowe” w systemie Linux (pod X11), szukasz: emulatora terminala , podłączonego do wirtualnego terminala , identyfikowanego przez plik tty , wewnątrz którego działa powłoka .

andcoz
źródło
2
Każdy komputer stacjonarny ma konsolę systemową (nie ważne w moim 2015 lub plakacie 2010). Jak słusznie stwierdzono, jest to sprzęt. Ale stwierdzenie „W dzisiejszych czasach prawie wszystkie… konsole reprezentują„ wirtualne ”jest prawie sprzeczne i oczywiście nie jest dobre.
Incnis Mrsi,
1
„Terminal lub konsola to sprzęt, za pomocą którego użytkownik może wchodzić w interakcje z hostem. Zasadniczo klawiatura połączona z ekranem tekstowym”. niesamowite wyjaśnienie poprzez konkretny aspekt
Webwoman
@andcoz - Co rozumiesz przez „okno tekstowe”? Czy emulator terminala nie jest terminalem wirtualnym? Jeśli uruchomię polecenie ttyw emulatorze terminali, takim jak Konsola KDE, wynikiem jest / dev / pts / 0.
Zmotywowany
1
@IncnisMrsi - Czy komputer stacjonarny nie jest konsolą ? Jeśli nie, co masz na myśli mówiąc, że ma konsolę systemową?
Zmotywowany
2
@Motivated /dev/pts/0to plik tty, procedura obsługi interfejsu programowego udostępnianego przez jądro. Dzięki tej procedurze program (np. Powłoka) może wchodzić w interakcje z terminalem (rzeczywistym lub wirtualnym). Emulator terminala to oprogramowanie, które emuluje terminal. Emulator prosi jądro o utworzenie modułu obsługi, który pozwoli programom na interakcję ze sobą (patrz man openpty). Tak więc informacje płyną z terminala (emulatora) do modułu obsługi tty jądra, do programu (i odwrotnie). Programy i terminale nie komunikują się bezpośrednio, ale tylko przez plik tty (moduł obsługi).
andcoz
48

KRÓTKIE wyjaśnienie:

Konsola jest terminalem. System ma jedną konsolę i potencjalnie wiele terminali. Konsola jest zazwyczaj podstawowym interfejsem do zarządzania komputerem, np. Podczas uruchamiania.

Terminal to sesja, która może odbierać i wysyłać dane wejściowe i wyjściowe dla programów wiersza polecenia. Konsola jest ich specjalnym przypadkiem.

TTY jest zasadniczo pseudo urządzeniem, nazwij go zasobem jądra, który jest używany przez procesy w celu uzyskania dostępu do określonego terminala. TTY mogą być powiązane ze sprzętem, takim jak port szeregowy, lub mogą być wirtualne, np. Tworzone, gdy użytkownik loguje się przez sieć

Powłoka jest programem służącym do kontrolowania i uruchamiania programów. Jest często używany interaktywnie przez terminal. Istnieje kilka programów Shell, przy czym Bash jest prawdopodobnie najczęściej używaną obecnie powłoką. Inne powłoki, w żadnej kolejności, nie obejmują Bourne Shell, C-shell, Dash, Tsch, Ksh i coraz bardziej popularnego zsh. Jest o wiele więcej.

Kiedy masz GUI, możesz użyć programu terminalowego, aby narysować ładną ramkę o zmiennym rozmiarze, dodać paski przewijania i sformatować tekst itd. Dla sesji terminalowej. Często nazywane są emulatorami terminali, a czasem mogą obsługiwać wiele sesji za pomocą koncepcji TAB. Emulator terminala często uruchamia powłokę, aby umożliwić interakcyjną pracę z wierszem poleceń.

Johan
źródło
1
PTY to pseudo TTY. TTY może być, ale nie wirtualnie (pseudo) terminalem.
Luciano,
35

TTY (czyli T ele TY pewriter) jest specjalnym urządzeniem, które pozwala ludziom, którzy są głusi, problemy ze słuchem, albo zaburzeniami mowy używać telefonu do komunikowania się, pozwalając im wpisywać wiadomości tekstowe. TTY jest wymagany na obu końcach rozmowy w celu komunikacji.
LUB
TTY to terminal, który służy do wpisywania wiadomości tekstowych.


Skorupa : zewnętrzna ochronna część nasienna, tj. Jądro.
LUB
szkielet lub konstrukcja zewnętrzna do centralnej lub istotnej części systemu.
wprowadź opis zdjęcia tutaj


Konsola oznacza klawiaturę i monitor fizycznie załączniki do komputera.

Premraj
źródło
28

Istnieją już dwie świetne odpowiedzi, ale Ī̲ chciałbym dodać informacje o frazie „terminal wirtualny” . Ogólnie oznacza to coś, co zapewnia wygląd / funkcjonalność terminala, tj. mi. w szerokim tego słowa znaczeniu. Ale we wczesnych dniach Linux (1994–1995) był używany przez niektórych programistów jako synonim „wirtualnej konsoli” (kilka niepowiązanych interfejsów użytkownika) . To użycie utrzymuje się w dokumentacji; dwa różne terminy były (i są) używane w odniesieniu do tty1, tty2… rzeczy. Obecnie (od ≈ 1996 r.) „Terminal wirtualny” może także odnosić się do emulatorów terminali opartych na .

Linux vt(sterownik konsoli systemowej w trybie tekstowym) był pierwszym elementem jądra. Początkowo był używany do połączenia z komputerami mainframe iw tym sensie jest „wirtualnym terminalem”, stąd nazwa. Kod kontrolujący również konsole wirtualne również znajduje się wvt.c systemie . Inżynierowie jądra Linuksa konsekwentnie używają słowa „konsole”, aby oznaczyć tty1, tty2… i użyli dla nich przedrostka „vc_”. Na przykład jest vc_allocatefunkcja. Z drugiej strony, twórcy takich narzędzi przestrzeni użytkownika jak kbdi console-toolsużywane „wirtualnej konsoli” (VC) i „wirtualny terminal” (VT) zamiennie. Ī̲ skontaktował się z Andries E. Brouweri poprosił go o wyjaśnienie terminologii stosowanej przez pierwszych programistów (1994–1995). Andries uprzejmie udzielił kilku odpowiedzi. Twierdzi, że VT i VC są synonimami i „niepodzielnymi” skrótami. -> Ogólnie, wirtualna konsola jest wirtualnym terminalem, ale konwersacja nie jest prawdą. Te „wirtualne terminale”, które nie są wirtualnymi konsolami, są rzeczywiście pseudoterminalami (jak twierdzi Andries, nie są to VT ). W przeciwieństwie do konsol wirtualnych, w których jądro zapewnia funkcjonalność terminala dla aplikacji konsolowej, pseudoterminy używają „urządzeń” PTY do organizowania komunikacji między aplikacjami konsolowymi a programem tworzącym terminale działającym w przestrzeni użytkownika . Przykładami są emulatory terminali oparte na X isshd, który przydziela pseudotty dla każdej sesji logowania. Pseudotty nie można nazwać „konsolą” - to pomyłka.

Incnis Mrsi
źródło
14
  • Terminal = Interfejs, który zapewnia wyświetlanie danych wyjściowych i klawiaturę do wprowadzania danych w sesji powłoki.

  • Shell = Interpreter, który wykonuje polecenia wpisane jako ciąg znaków

  • Konsola: Właściwie używamy dwóch rodzajów konsoli

    • Fizyczna konsola = Wyświetlacz sprzętowy i klawiatura używane do interakcji z systemem

    • Konsola wirtualna = Jedna z wielu konsol logicznych, z których każda może obsługiwać niezależną sesję logowania.

  • tty (teletype, tj. terminal). = Terminal to po prostu urządzenie interfejsu użytkownika, które wykorzystuje tekst do wprowadzania i wysyłania wiadomości.

Rakib
źródło
Co to jest tty? - w przeciwnym razie twoja odpowiedź jest jedyną, którą przeczytałem
loxaxs
8

Musisz zanurzyć się w historii.

Były urządzenia do pisania z papierem i klawiaturą. Nazywano je teletypami (co oznacza „pisz zdalnie”, ponieważ „tele” oznacza „zdalnie”) lub w skrócie ttys . W latach 70. były przestarzałe przez urządzenia z monitorem CRT zwane szklanymi tty .

Każdy komputer potrzebuje sposobu, aby zgłosić swój status i błędy (i prawdopodobnie zaakceptować polecenia). Odbywa się to za pomocą konsoli, która prawie zawsze jest podłączona bezpośrednio do komputera. Istnieją więc 2 znaczenia dla konsoli : coś, co służy do raportowania statusu i coś, co jest bezpośrednio połączone.

UNIX to system interaktywny: kilku użytkowników może się z nim połączyć i uruchomić aplikacje. Pierwsze komputery wykorzystywały do ​​tego teletypy ( tty ): każdy użytkownik miał teletyp podłączony do urządzenia z połączeniem szeregowym. Taki teletyp nazywa się terminalem . UNIX otrzymał także specjalny podsystem do obsługi „użytkowników siedzących za terminalami”, który jest również nazywany tty, ponieważ pierwsze terminale były teletypami. Każdy proces może być podłączony do tty w Uniksie. Oznacza to, że gdzieś w pobliżu terminalu siedzi użytkownik. Aby uzyskać więcej informacji, zobacz http://www.linusakesson.net/programming/tty/

Użytkownicy potrzebują sposobu, aby poinformować jądro o uruchomieniu aplikacji. służy do tego powłoka (sh, bash, csh, ksh itp.). shell działa na tty , akceptuje polecenia użytkownika i prosi jądro o uruchomienie aplikacji.

Ale terminale nie zawsze są fizycznie podłączone do maszyny. Może istnieć aplikacja, która „emuluje” terminal akceptujący naciśnięcia klawiszy od użytkownika i wysyłający go gdzieś (dobre przykłady to xterm i ssh). Jest w tym celu interfejs API zwany pseudo terminalem . Więc twój tty może być naprawdę podłączony do jakiejś aplikacji zamiast prawdziwego terminala. Xterm używa X11 do wyświetlania tekstu, a ssh używa do tego połączenia sieciowego.

IBM PC ma klawiaturę i kartę graficzną ( czasami nazywane są także konsolami ). Linux może z nim robić różne rzeczy:

  • Użyj go jako „silnika do zgłaszania błędów i statusu”: konsola Linux. Jeśli przekażesz konsolę = / dev / ttyS0 do jądra, użyje ona czegoś podłączonego do COM1 jako konsoli, a jeśli tego nie zrobisz, użyje konsoli PC.
  • Użyj go do emulacji terminala, tzw. Terminalu wirtualnego (vty).

Może także przestać emulować terminal na konsoli i przekazać go jakiejś aplikacji. Aplikacja może przełączać tryb wideo i używać go wyłącznie (X11 lub svgalib może to zrobić).

Oto nowoczesne znaczenia:

  • terminal: Coś z prawdziwym użytkownikiem siedzącym za nim. Może to być terminal fizyczny (rzadko) lub pseudo terminal (xterm, ssh) lub terminal wirtualny (vty w systemie Linux)
  • shell: aplikacja (bash, tcsh itp.), która pomaga użytkownikowi w interakcji z systemem.
  • tty: terminal lub podsystem jądra do obsługi terminali.
  • konsola: coś, w którym zgłaszany jest stan i błędy ( /dev/console) lub fizyczna klawiatura i wyświetlacz wideo podłączone do komputera.
użytkownik996142
źródło
7

Oto krótka odpowiedź -

Jądro - najbardziej wewnętrzna część każdego nowoczesnego systemu operacyjnego, który bezpośrednio komunikuje się z rzeczywistym sprzętem.

Shell - otacza rzeczywiste jądro. Ilekroć uruchamiamy polecenie, faktycznie rozmawiamy z powłoką, która z kolei wywołuje odpowiednie instrukcje jądra. Poza tym powłoka jest w stanie wykonać kilka innych czynności, takich jak znalezienie odpowiedniego programu, mając komendy, krótkie nazwy plików, komendy potokowe itp.

Terminal - w erze wcześniejszych obliczeń komputery (znane jako Mainframe) były gigantyczne. Łatwo było więc mieć jedną jednostkę przetwarzającą i podłączyć ją z wielu miejsc. Terminal to rzeczywisty sprzęt z klawiaturą i urządzeniami wyjściowymi podłączonymi do komputera mainframe.

Konsola - specjalny typ terminala, który jest bezpośrednio podłączony do Mainframe w celu administrowania systemem operacyjnym.

tty - TeleTypewriter używany do wysyłania i odbierania danych do i z Mainframe. Używany zanim terminale wideo były dostępne. Ale tradycyjnie jest nadal nazywany tty. Nawet wspólna komendastty

Długa szczegółowa odpowiedź znajduje się tutaj - Terminal, konsola, powłoka, jądro, polecenia - różne części komputera

Palash Kanti Kundu
źródło
dzięki, ale w zasadzie, jeśli terminal istnieje, dlaczego wciąż istnieje tty również w systemie Ubuntu na komputery osobiste, dostępne z alt + f-1/6, proszę, nie mogę zrozumieć ich użyteczności ponad fakt, że można do nich uzyskać dostęp bez użycia systemu graficznego jeśli dobrze zrozumiałem
Webwoman
1
@Webwoman - Mam skonfigurowany system, aby umożliwić dostęp do rootkonta tylko poprzez sudologowanie do konsoli lub za pomocą logowania. Konsole często mają specjalne miejsce uprzywilejowane, ponieważ osoba, która ma do nich dostęp, musi mieć fizyczny dostęp do komputera, z którym się komunikuje. Są również metodą dostępu w ostateczności. Jeśli system operacyjny jest częściowo uszkodzony (np. Sterownik Ethernet jest uszkodzony), nadal możesz uzyskać dostęp do konsoli. To jedyne ludzkie urządzenie interfejsu, które powinno ZAWSZE być dostępne, bez względu na stan systemu.
Wszechobecny
@Onifarious podziękowania za odpowiedź „Konsole często mają specjalne miejsce uprzywilejowane, ponieważ ktoś, kto ma do nich dostęp, musi mieć fizyczny dostęp do komputera, z którym się komunikuje” miałeś na myśli, że TTY często ma specjalne miejsce uprzywilejowane?
Webwoman
@Webwoman - Nie, konsola. TTY często nie jest bezpośrednio podłączony do komputera. A konsola często nie jest TTY w tradycyjnym tego słowa znaczeniu. Kiedy pod koniec lat 80. poszedłem do U MN, istniała specjalistyczna sieć na terenie całego kampusu, w której nie korzystałem z protokołu internetowego (inaczej IP) do łączenia losowych TTY z losowymi komputerami. Komputery mainframe IBM mają podobną sytuację i był to jeden z głównych powodów, dla których IBM stworzył SNA. A normalny komputer, nawet jeśli wyświetla tylko tekst, pod wieloma względami bardzo nie przypomina TTY, więc konsola PC nie jest tak naprawdę TTY.
Wszechobecny
@Webwoman - Cechą definiującą konsolę jest to, że ma ona bezpośrednie połączenie ze sprzętem, na którym działa system operacyjny. Pomysł ten jest nieco zamazany nowoczesnymi „maszynami wirtualnymi”, ale to podstawowa idea.
Wszechobecny
6

Oprócz zaakceptowanej odpowiedzi i odszyfrowanego artykułu TTY , uwielbiałem czytać te dwa artykuły:

Ten oparty jest na NetBSD.

W epoce kamiennej Unixa systemy komputerowe składały się z komputera mainframe, dużego pudełka migających świateł, które miały pamięć, pamięć masową i jednostki obliczeniowe i które uruchamiają procesy rozpoczęte przez użytkowników lub operatorów. Ponieważ sprzęt był bardzo drogi, systemy były używane jako prawdziwe systemy dla wielu użytkowników, przy czym wiele osób wchodzi w interakcję z systemem w tym samym czasie. To, czego zwykle nie miało - w przeciwieństwie do dzisiejszych uniksowych stacji roboczych - to stały monitor i klawiatura. Zamiast tego wydawanie poleceń maszynie i pobieranie danych wyjściowych odbywało się liniami szeregowymi, najpierw przy użyciu teletyperów, a później terminali CRT (lampa elektronopromieniowa). Teletypy - stąd „tty” w Uniksie - to elektroniczne maszyny do pisania, które wysyłają klawisze naciskane przez linię szeregową do hosta,

Ten jest oparty na systemie Linux.

Terminale to urządzenia, które zapewniają ulepszone możliwości wejścia / wyjścia wykraczające poza to, co można osiągnąć przy użyciu zwykłych plików, potoków i gniazd. Funkcje te zostały zaprojektowane w celu ułatwienia ludziom interakcji z komputerami i są bezużyteczne dla programów próbujących ze sobą rozmawiać.

Nishant
źródło
1

Pozwólcie mi się na to zgodzić ... Będę używał w tym systemie Unix i Linuksa mniej więcej synonimicznie. Jeśli mam na myśli coś historycznego poprzedzającego istnienie Linuksa, zwykle piszę „Unix”, a jeśli mówię o czymś nowszym lub czymś specyficznym dla Linuksa o smaku Unixa, zwykle piszę „Linux” „.

Muszla

Jedyną rzeczą na liście, która jest dyskretną koncepcją, która nie pokrywa się z innymi, jest „powłoka”. Powłoka to program, którego celem jest komunikacja z użytkownikiem i wykonywanie operacji systemu operacyjnego w jego imieniu.

Najpopularniejsze powłoki używają techniki zwanej „linią poleceń”, która polega na wysłaniu użytkownikowi jakiegoś pytania, czekaniu na wpisanie polecenia tekstowego, a następnie wykonaniu tego polecenia. Istnieją jednak powłoki oparte na menu, a nawet powłoki graficzne (takie jak Eksplorator plików Windows), choć żadna szanująca się osoba uniksowa nigdy nie nazwałaby czegoś takiego „powłoką”.

W Uniksie, jeśli ktoś nazywa coś „powłoką”, prawie na pewno oznacza jakąś formę interfejsu wiersza poleceń, jak właśnie opisałem. I w świecie uniksowym bardzo dziwne jest nazywanie czegokolwiek „powłoką”, jeśli nie komunikuje się ono z użytkownikiem za pomocą modelu tty, który opisuję dalej.

TTY

Jest to mylące, ponieważ może odnosić się do kilku różnych rzeczy.

W Linuksie istnieje rodzaj urządzenia zwanego „tty”. Jest to abstrakcyjne urządzenie, które ma być używane do dwukierunkowej komunikacji z czymś, co albo jest użytkownikiem, albo w jakiś sposób odbiera dane od użytkownika. Czasami to urządzenie abstrakcyjne może bezpośrednio odpowiadać niektórym urządzeniom fizycznym. Czasami może to być program, który wyświetla komuś okno, w którym pojawia się komunikacja i do którego użytkownik może wpisać.

Ale powodem, dla którego istnieje to urządzenie abstrakcyjne i jest nazywane „tty”, jest to, że „tty” jest skrótem od „teletype”, który był faktycznym urządzeniem fizycznym, które miało drukarkę drukowaną na papierze w połączeniu z klawiaturą. Model, który abstrakcyjne urządzenie „tty” przedstawia programom, które go używają, polega zasadniczo na tym, że na drugim końcu znajduje się teletyp. Wysyłasz znaki, a te znaki pojawiają się na teletypie. Gdy czytasz z niego znaki, te znaki reprezentują klawisze wpisane na klawiaturze.

Stare tty oparte na drukarce papierowej szybko zastąpiono tty wideo. Na tych oczywiście nie ma rolki papieru. I w rzeczywistości możliwe jest zastąpienie dowolnej postaci na ekranie. Ale zamiast przedstawiać programom jakiś abstrakcyjny interfejs ekranowy, zamiast tego oczekuje się od programów wysyłania specjalnych strumieni znaków zwanych sekwencjami ucieczki, które wykonują różnorodne zadania. Zwykle istnieje abstrakcyjna rzecz zwana „kursorem”, którą można przesuwać po ekranie, a każdy wysłany znak zastąpi wszystko, co znajduje się na kursorze, a kursor przesunie się o jeden znak dalej. Często możesz zmienić kolor postaci, która ma zostać wydrukowana, również za pomocą sekwencji ucieczki.

Istnieją „szklane tty”, które nie są zgodne z tym modelem i w związku z tym są źle obsługiwane w świecie uniksowym. Rodzina terminali wideo IBM 3270 należy do tej kategorii.

To, co ludzie Linux / Unix zwykle nazywają „oknem powłoki”, to emulacja szklanego tty przy użyciu graficznego interfejsu użytkownika. Wewnętrznie programy działające w oknie powłoki rozmawiają z wirtualnym urządzeniem tty, które jest czasami nazywane pseudo-tty lub pseudo-terminalem (inaczej pty).

Terminal

Terminal to tylko miejsce, w którym komputer i człowiek mają się łączyć. Terminale mogą być całkowicie graficzne i nie podążać za modelem tty w jakikolwiek sposób, nawet jeśli program może wykorzystać ich możliwości do naśladowania tego. Wszystkie rzeczywiste fizyczne tty (szklane lub inne) są terminalami.

Konsola

Konsola to specjalny rodzaj terminala, który zazwyczaj powinien być podłączony w jakiś bezpośredni bezpieczny sposób do sprzętu, na którym działa system operacyjny.

W systemie Linux konsola jest zwirtualizowana w niewielki sposób, co pozwala na użycie specjalnego skrótu klawiaturowego do przełączania między konsolami wirtualnymi. Ale ta wirtualizacja odbywa się za pomocą prawdziwego sprzętu przez oprogramowanie w jądrze.

Istnieją sposoby korzystania z Linuksa za pomocą tak zwanej „konsoli szeregowej”, która jest konsolą podłączoną do komputera przez port szeregowy, taki jak port USB (lub, na niektórych bardzo małych i / lub bardzo starych komputerach, port RS-232 pewnego rodzaju) i podąża za starym modelem telegraficznym w dość ścisły sposób.

Ponownie chodzi o to, że ta konsola jest podłączona fizycznie bezpośrednio do komputera zamiast przez jakąś sieć, która może umożliwić każdemu połączenie.

Wszelaki
źródło