Jaka jest różnica między Terminalem, konsolą, powłoką i wierszem poleceń?

169

Jaka jest różnica między Terminalem, konsolą, powłoką i wierszem poleceń?

    
zadawane Akiva 04.08.2014, 06:35
źródło

10 odpowiedzi

118

Krótka odpowiedź brzmi:

  • terminal = środowisko wejścia / wyjścia tekstowego
  • console = terminal fizyczny
  • shell = interpreter linii poleceń

Konsola i terminal są ze sobą ściśle powiązane. Pierwotnie oznaczały sprzęt, przez który można było wchodzić w interakcję z komputerem: w początkach systemu Unix oznaczało to teleprintera przypominające maszynę do pisania, czasami nazywane telepracownikiem lub "tty" w skrócie. Nazwa "terminal" pochodzi z elektronicznego punktu widzenia, a nazwa "konsola" z punktu widzenia mebli. Bardzo wcześnie w historii unixu elektroniczne klawiatury i wyświetlacze stały się normą dla terminali.

W terminologii uniks, terminal jest szczególnym rodzajem pliku urządzenia , który implementuje liczba dodatkowych poleceń ( ioctls ) poza czytaniem i pisaniem. Niektóre terminale są dostarczane przez jądro w imieniu urządzenia sprzętowego, na przykład z wejściem pochodzącym z klawiatury i wyjściem przechodzącym do ekranu trybu tekstowego lub z wejściem i wyjściem przesyłanymi przez linię szeregową. Inne terminale, czasem nazywane pseudo-terminalami lub pseudo-tty, są dostarczane (przez cienką warstwę jądra) przez programy zwane Emulatory terminali . Niektóre typy emulatorów terminali to:

  • Aplikacje GUI działające w systemie X Window System : Xterm , Gnome Terminal, Konsole, Terminator, itp.
  • Ekran i tmux , który zapewnia warstwę izolacji między programem a innym terminalem
  • Ssh , który łączy terminal na jednej maszynie z programami na innej maszynie
  • Oczekiwanie , w przypadku interakcji terminalu skryptów

Słowo terminal może mieć również bardziej tradycyjne znaczenie urządzenia, za pomocą którego użytkownik komunikuje się z komputerem, zazwyczaj za pomocą klawiatury i wyświetlacza. Na przykład terminal X to rodzaj cienkiego klienta , komputera specjalnego przeznaczenia, którego jedynym celem jest sterowanie klawiaturą, wyświetlacz, mysz i sporadycznie inne peryferia interakcji człowieka, z rzeczywistymi aplikacjami działającymi na innym, potężniejszym komputerze.

Konsola jest ogólnie terminalem w sensie fizycznym, który z definicji jest terminalem podstawowym bezpośrednio połączonym z maszyną. Konsola pojawia się w systemie operacyjnym jako terminal (zaimplementowany przez jądro). W niektórych systemach, takich jak Linux i FreeBSD, konsola pojawia się jako kilka terminali (tty) (specjalne kombinacje klawiszy przełączają się między tymi terminalami); tylko w celu pomieszania spraw, nazwa nadana każdemu konkretnemu terminalowi może być "konsolą", "konsolą wirtualną", "terminalem wirtualnym" i innymi odmianami.

Zobacz także Dlaczego wirtualny terminal jest "wirtualny" i co / dlaczego / gdzie jest "prawdziwym" terminalem? .

Linia poleceń to interfejs, w którym użytkownik wpisuje polecenie (wyrażone jako sekwencja znaków - zazwyczaj nazwa polecenia, po której następuje kilka parametrów) i naciska przycisk Powrót , aby wykonać polecenie.

powłoka to podstawowy interfejs, który użytkownicy widzą po zalogowaniu w, którego głównym celem jest uruchamianie innych programów. (Nie wiem, czy oryginalna metafora jest taka, że ​​powłoka jest środowiskiem domowym użytkownika, czy też powłoką są inne programy.)

W kręgach uniksowych powłoka specjalizuje się w rozumieniu powłoka wiersza poleceń , skupiona wokół wpisywania nazwy aplikacji, którą chce się uruchomić, a następnie nazw plików lub innych obiektów, na których aplikacja powinna działać, i naciśnięcia klawisza Enter. Inne typy środowisk (z godnym uwagi niedawnym wyjątkiem Gnome Shell) zwykle nie używają słowa "shell"; na przykład systemy okien obejmują " menedżerów okien " i " środowiska graficzne ", a nie "powłoka".

Istnieje wiele różnych powłok uniksowych. Domyślną powłoką Ubuntu jest Bash (podobnie jak większość innych dystrybucji Linuksa). Popularne alternatywy to zsh (co podkreśla moc i możliwość dostosowania) i ryby (co podkreśla prostotę) .

Powłoki wiersza poleceń zawierają konstrukcje sterowania przepływem w celu łączenia poleceń. Oprócz wpisywania poleceń w interaktywnym monitorze, użytkownicy mogą pisać skrypty. Najczęściej używane powłoki mają wspólną składnię opartą na Bourne_shell . Omawiając " programowanie powłoki ", powłoka jest prawie zawsze implikowana jako powłoka w stylu Bourne'a. Niektóre powłoki, które są często używane do pisania skryptów, ale brakuje zaawansowanych funkcji interaktywnych, to między innymi powłoka Korn (ksh) i wiele ash warianty. Prawie każdy system podobny do Uniksa ma powłokę Bourne'a zainstalowaną jako /bin/sh , zwykle popiół, ksh lub bash. W Ubuntu /bin/sh to Dash , wariant jesionu (wybrany, ponieważ jest szybszy i zużywa mniej pamięci niż bash).

Podczas administrowania systemem Unix powłoka użytkownika jest programem wywoływanym podczas logowania. Zwykłe konta użytkowników mają powłokę wiersza polecenia, ale użytkownicy z ograniczonym dostępem mogą mieć restrykcyjna powłoka lub inne specyficzne polecenie (np. w przypadku kont transferu plików).

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

  • Wejście: terminal konwertuje klucze na sekwencje kontrolne (np. W lewo \e[D ). Powłoka konwertuje sekwencje kontrolne na polecenia (np.% Co_de% → \e[D ).
  • Edycja linii, historia wprowadzania i uzupełnianie są dostarczane przez powłokę.
    • Terminal może zamiast tego udostępniać własną edycję linii, historię i uzupełnianie, a jedynie wysyłać linię do powłoki, gdy jest gotowa do wykonania. Jedynym wspólnym terminalem działającym w ten sposób jest backward-char w Emacs.
  • Dane wyjściowe: powłoka wysyła instrukcje, takie jak "wyświetl M-x shell ", "zmień kolor pierwszego planu na zielony", "przenieś kursor do następnej linii" itd. Terminal działa zgodnie z tymi instrukcjami.
  • Monit to pojęcie wyłącznie powłoki.
  • Powłoka nigdy nie widzi wyjścia poleceń, które uruchamia (chyba że zostały przekierowane). Historia wyjściowa (przewijanie) jest wyłącznie pojęciem terminala.
  • Kopiuj-wklej między aplikacjami jest dostarczany przez terminal (zazwyczaj za pomocą myszy lub sekwencji klawiszy, takich jak Ctrl + Shift + V lub Shift + Insert ). Powłoka może mieć również własny wewnętrzny mechanizm kopiuj-wklej (np. Meta + W i Ctrl + Y ).
  • Kontrola pracy (uruchamianie programów w tle i zarządzanie nimi) jest najczęściej wykonywane przez powłokę. Jednak to terminal obsługuje kombinacje klawiszy, takie jak Ctrl + C , aby zabić zadanie na pierwszym planie i Ctrl + Z zawiesić.

Przetworzono z Unix & amp; Linux

    
odpowiedział Gilles 04.08.2014, 12:30
źródło
52

Wizualna reprezentacja.

Terminal

Coś, na czym możesz usiąść i pracować jak szef.

Konsola

Niektóre urządzenia, które robią mnóstwo rzeczy.

Kolejnym przykładem konsoli może być konsola do gier wideo, taka jak Super Nintendo [gdzie możesz grać w Actraiser]

powłoka

Zasadniczo aplikacja do uruchamiania poleceń.

Wiersz poleceń [Interfejs]

Zasadniczo wszystko, do czego wprowadzisz komendy.

    
odpowiedział Akiva 04.08.2014, 22:09
źródło
19

Z Projektu informacji o Linuxie :

  

Terminal : Technicznie, okno terminala, nazywane również emulatorem terminalu, jest oknem tekstowym graficzny interfejs użytkownika (GUI) emulujący konsolę.

W naszych słowach Aplikacja GUI, z której możemy uzyskać dostęp do konsoli użytkownika.

  

Konsola : panel instrumentów zawierający elementy sterujące komputera

     

Powłoka : Powłoka to program zapewniający tradycyjny, tekstowy interfejs użytkownika dla systemu Linux i innych systemów uniksowych. jak systemy operacyjne

     

Wiersz poleceń : wiersz poleceń to spacja po prawej stronie wiersza poleceń na wyświetlaczu tekstowym tryb na monitorze komputera (zwykle CRT lub panelu LCD), w którym użytkownik wprowadza polecenia i dane

    
odpowiedział Ten-Coin 04.08.2014, 06:39
źródło
14

Odpowiedzi tutaj wydają się bardzo dobre. Są jednak zbyt suche i mają techniczny smak, więc poddam się ..

Terminal to koniec czegoś - gdzie kończy się. Na przykład, jeśli wsiądziesz do metra w jakimś mieście, stacja, z której wysiadasz, jest terminalem. Albo na lotnisku miejsce, w którym ludzie wychodzą, gdy docierają do kraju docelowego, jest uważane za terminal. Powodem, dla którego terminal na lotnisku jest obecnie zarówno miejscem, w którym ludzie wsiadają, jak i miejscem, w którym je wyładowali, jest z oczywistych względów ekonomicznych.

Celem komputera jest uzyskanie danych, zrobienie czegoś z nim i wypluwanie wyniku. Tak więc terminal jest dowolnym urządzeniem, z którego można uzyskać wynik obliczeń. Na przykład ekran. Tak się złożyło, że na pierwszych komputerach zwykle było dane wejściowe (klawiatura) i wyjściowe (ekran) jako pojedyncze urządzenie. Z tego powodu w dzisiejszych czasach terminale są uważane za urządzenia wejścia / wyjścia. Mysz, klawiatura, ekran, kamera, wszystkie są terminalami.

Shell jest rzeczą systemu operacyjnego. Na komputerze masz jądro, które na przykład w Ubuntu jest częścią Linuksa. Teraz, gdy jądro jest naprawdę niskiego poziomu, zapewniona jest powłoka - program, który pozwala użytkownikowi na łatwą interakcję z kernelem. Tak właśnie jest na przykład BASH.

Console to (ze słownika)

  

płaska powierzchnia zawierająca elementy sterujące dla maszyny, dla części   sprzętu elektrycznego itp.

Dlatego w przemyśle muzycznym płyta ze wszystkimi pokrętłami lub w wahadłowcu w tabeli dowodzenia, wszystkie są uważane za konsole. Super Nintendo i PS2 są również nazywane konsolami historycznie, ponieważ pierwsze takie urządzenia rozrywkowe wyglądały jak pudełka z mnóstwem przycisków.

Command line to tylko interfejs - przeciwieństwo GUI. Mianowicie istnieją dwa rodzaje interfejsów na komputerze; CLI (interfejs linii poleceń) i GUI (graficzny interfejs użytkownika). Główną różnicą jest to, że pierwsza otrzymuje dane z klawiatury, podczas gdy druga pobiera dane z myszy.

    
odpowiedział Pithikos 06.08.2014, 12:40
źródło
7

Podsumuj moją odpowiedź:

Powłoka to program, w którym processes poleceń i returns wyjściowych, takich jak bash w systemie Linux.

Terminal to program, który run powłoki , w przeszłości był urządzeniem fizycznym (Zanim terminale były monitorowane za pomocą klawiatur były teletypami ), a następnie jego koncepcja została przeniesiona do oprogramowania , np. Gnome-Terminal .

Otwieram Gnome-Terminal , pojawiają się czarne okna z Shell , więc mogę uruchamiać moje polecenia.

Konsola to specjalny terminal , to także urządzenie fizyczne. przykład w Linuksie mamy virtual console , do których mogę uzyskać do nich dostęp poprzez kombinację Ctrl + Alt + F1 do F7 .

Konsola to czasami klawiatura i monitor fizycznie dołączony do tego komputera.

    
odpowiedział nux 05.08.2014, 13:59
źródło
7

Te terminy często idą w parze, więc ludzie używają jednego z terminów odnoszących się do kolekcji. (to jest zwykle oczywiste z kontekstu, że chodzi o okno terminala zapewniające interfejs do powłoki linii poleceń).

Aby nie dopuścić do tego, aby był rozwlekły, po prostu powiem xterm jako stand-in dla XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. To samo dla basha.

Konsola ma wiele innych specyficznych znaczeń, więc na razie zostaw to.

Terminal : coś, co zapewnia ludzką interakcję z programami poprzez dwukierunkowy strumień ASCII / UTF8 / innych znaków, zwykle z VT100 lub podobnym przetwarzaniem kodu wyjścia. (Np. Backspace, delete, klawisze strzałek itp. Generują kody escape, programy mogą drukować kody escape, przesuwać kursor po ekranie terminala, przełączać na pogrubiony tekst i / lub kolor, czyścić lub przewijać ekran itp.) w dawnych czasach było to często dedykowane urządzenie z ekranem i klawiaturą oraz portem szeregowym. Zwykle jest to program taki jak xterm.

Istnieją pliki urządzeń dla programów do odczytu / zapisu z / do terminali, a terminale wirtualne mają również drugą stronę dostępną jako plik urządzenia. W tym miejscu xterm zapisuje twoje dane wejściowe, aby bash mógł je odczytać.

Każdy terminal, w tym wirtualny, zapewnia podstawową edycję linii, gdy jest w gotowanym (w przeciwieństwie do surowego) trybie. Jest to obsługiwane przez kod jądra. To bash zapewnia edycję linii, którą można wykonać za pomocą klawiszy strzałek. (Spróbuj uruchomić cat i pisząc, jeśli chcesz zobaczyć, jak wygląda podstawowa edycja jądra, Backspace działa, i kilka innych rzeczy jak na twoje ustawienia stty.)

Mimo, że za urządzeniami końcowymi jest dużo kodu jądra, będzie on oznaczony jako kod obsługi terminala, a nie jako sam terminal.

Edytuj: Gilles przekonał mnie, że odwoływanie się do tty jako terminala jest właściwym użyciem. Emulatory terminala i interaktywne programy, które działają w połączeniu z terminalem, zależą od semantycznej terminala zaimplementowanej przez jądro. (Większość tego zachowania jest standaryzowana przez POSIX i jest taka sama w systemach Linux / * BSD / innych systemach Unix.) Pełnoekranowy edytor tekstu zależy od zachowania uniksowych treści tty, a także od obsługi kodów ucieczki z ruchu kursora, i wiele innych funkcji emulatora terminala.

Jednak fizyczny VT100 z ekranem, klawiaturą i portem szeregowym jest instancją terminala. Nie wymaga jądra systemu Unix na drugim końcu portu szeregowego. Coś zupełnie innego może być wysyłanie kodów ucieczki i tekstu ASCII i otrzymywanie od niego tego samego. Byłby to jednak VT100, a nie terminal Unix. Emulator terminala plus semantyka tty Unix tworzą pełen pakiet terminala uniksowego, na którym zwykle działa program, taki jak bash.

Wiersz poleceń to styl interfejsu użytkownika, w którym wpisujesz coś, a następnie naciśnij klawisz Return, aby coś się stało. Jest również używany jako skrót dla powłoki linii poleceń, takiej jak bash lub MS-DOS, ale możesz też powiedzieć "to narzędzie wiersza poleceń" o czymś takim jak fdisk. Biorąc pod uwagę tylko programy korzystające z terminala dla ich interfejsu użytkownika, dwie główne rodziny to linia poleceń i tekst pełnoekranowy (np. Edytor taki jak vi lub emacs -nw ).

Programy wiersza poleceń, które normalnie działają na terminalach, prawie zawsze działają z wejściami i wyjściami przekierowanymi do plików, ale programy pełnoekranowe oparte na terminalach, takie jak edytory lub klienci poczty e-mail, są interaktywne i nie działały.

Powłoka to program do uruchamiania innych programów. W kontekście uniksowym często chodzi o powłokę wiersza poleceń (tj. Powłokę Bourne'a lub odpowiednik powłoki C). Powłoki uniksowe mogą także odczytywać dane wejściowe z plików, tj. Ze skryptów powłoki. Są to pełne języki programowania, ze zmiennymi, pętlami i warunkami, a wiele programów jest zapisanych w bashu (lub tylko z funkcjami powłoki /bin/sh POSIX, dla większej przenośności). Łatwo też można napisać szybki for i in *.something; do some_program "$i";done w interaktywnej powłoce.

Łącząc wszystko w całość, powłoka taka jak bash (lub jakikolwiek program uruchomiony przez uruchomienie polecenia powłoki) otrzyma znaki z urządzenia końcowego /dev/pts/N po tym, jak xterm zapisze dane wejściowe na swojej stronie pseudo-terminala. Jeśli uruchomisz cat , a następnie osiągniesz ^c , kod tty jądra będzie działał na ^c i wyśle SIGINT do procesu pierwszoplanowego na tym terminalu. (Zauważ, że użycie terminala w tym kontekście oznacza Unix tty, a nie emulator terminala lub coś podpiętego do portu szeregowego.) Dzieje się tak, ponieważ powłoka ustawia terminal w trybie "gotowym" przed uruchomienie dowolnego programu, co oznacza, że ​​jądro działa na niektórych sekwencjach kontrolnych. (Kod tty nadal nie ma nic wspólnego z obsługą kodów ucieczkowych VT100, tylko kilka kodów kontrolnych niskiego ASCII.) Jeśli zamiast xterma używasz terminalu tekstowego konsoli Linux, to jądro IS robi emulację VT100 i obsługuje wszystkie te rzeczy. Linux może być kompilowany bez obsługi terminalu tekstowego konsoli wirtualnej, ale nie bez wsparcia tty.

Konsola jest czasem używana jako synonim terminala (KDE nawet ma emulator terminalu zwany Konsolą).

Jak wskazuje 0xSheepdog, ma to również inne znaczenie: lokalnie podłączony sprzęt do interakcji człowieka.

W kontekście jądra konsola ma inne konkretne znaczenie: jest to terminal, na którym zapisywane są komunikaty rozruchowe. Może to być port szeregowy. Zwykle jest to konsola tekstowa zaimplementowana przez jądro na sterownikach do sprzętu graficznego i klawiaturach USB / ps2 / AT. Jeśli uruchomisz Linuksa z console=tty0 console=ttyS0,115200n8 w wierszu poleceń, otrzymasz komunikat jądra na ekranie ORAZ na porcie szeregowym.

Linux implementuje wirtualne konsole ( /dev/tty1 do N ). Możesz zamienić, który z twoich fizycznych ekranów / klawiszy steruje za pomocą Ctrl + Alt + F N . Typowe dystrybucje Linuksa tworzą 6 i uruchamiają getty na wszystkich z nich, więc nawet jeśli nie możesz lub nie chcesz uruchamiać X11, możesz zalogować się 6 razy i przechodzić między poleceniem, stroną podręcznika i cokolwiek innego. inaczej, bez uruchamiania programu takiego jak ekran. Linux (jądro) zawiera emulator terminalu w stylu VT100, który zapewnia interfejs terminala za pośrednictwem ekranu i klawiatury na wirtualnych konsolach.

Standardowe 6 wirtualnych terminali z pytaniami o zalogowanie powoduje, że Ctrl + Alt + F7 przywraca cię do twojej sesji X11: serwer X chwyta następną dostępną konsolę wirtualną. (Serwer X otwiera bezpośrednio /dev/input/... , zamiast odbierać twoje naciśnięcia klawiszy z /dev/tty7 ).

Więc "zamień na konsolę tekstową" oznacza nacisnąć Ctrl + Alt + F1 i użyć tego terminala. Kiedy komputery były powolne i nie miały dużo pamięci RAM, niektórzy ludzie spędzali większość czasu na konsolach tekstowych, ponieważ były szybkie, można ustawić ładną czcionkę, a nawet zmienić rozmiar terminala na mniejsze znaki, ale więcej na ekranie jednocześnie. Alt + Lewy i Alt + Prawy zamień na poprzednią / następną konsolę. (X11 wyłącza to dla swojej konsoli, pozostawiając tylko kombinację Ctrl + Alt + F N . )

Tak więc konsola jest jedynym z tych terminów, który nie ma jednego dobrze zdefiniowanego znaczenia technicznego. Ma kilka różnych. (W zależności od tego, co myślisz o terminalu właściwym a terminalu i obsłudze tty, możesz powiedzieć, że terminal ma również wiele znaczeń.)

    
odpowiedział Peter Cordes 05.08.2014, 11:16
źródło
5

Wydaje mi się, że w początkowych czasach komputerów współdzielących czas każdy użytkownik miał terminal (kiedy mogli go dostać!), ale tylko operatorzy systemu mieli konsolę. Konsola może być używana do zadań takich jak ponowne uruchomienie komputera lub uzyskanie diagnostyki systemu, która nie była możliwa z terminali użytkowników. Konsola znajdowała się w maszynowni, nieodłącznej części komputera, podczas gdy terminale mogły być odległe. Konsola zawiera również oświetlenie sprzętowe i przełączniki, a nie tylko tekstowe i wyjściowe.

Powiedziałbym, że wiersz poleceń jest obszarem, w którym użytkownik może wpisać polecenie, podczas gdy powłoką jest program interpretujący / przestrzegający tego polecenia. Termin "powłoka" jest bardzo szczególny dla pochodnych uniksowych; "command-line" jest bardziej w tradycji Windows / DOS. Odpowiednik na komputerach typu mainframe jest zwykle nazywany "językiem sterowania zadaniami".

Oczywiste jest, że te oryginalne rozróżnienia z czasem uległy rozmyciu wraz ze zmianą technologii.

    
odpowiedział Michael Kay 05.08.2014, 00:35
źródło
3

Próba krótkiej odpowiedzi zorientowanej na użytkownika:

Wiersz poleceń - wiersz, w którym wpisujesz polecenia. Zazwyczaj mówiono, że musisz uruchomić coś w oknie tekstowym (interfejs wiersza poleceń) dostarczonym przez twój system operacyjny.

powłoka - rzeczywisty program uruchamiany przez system operacyjny w celu przetworzenia rzeczy wprowadzonych w command line . Stąd nazwa - przyjazna dla użytkownika powłoka dla nieprzyjaznego rdzenia OS. Zapewnia wiersz polecenia, taki jak $ lub > , uruchamia własne komendy i aplikacje. Zawsze pracujesz przez program shell i nigdy nie pracujesz bezpośrednio z konsolą lub terminalem.

Konsola - to okno, w którym są uruchomione programy w trybie tekstowym. To okno przetwarza naciśnięcia przycisków, wie, że jest to szerokość i wysokość. Może być w trybie pełnoekranowym.

terminal - to urządzenie z wyświetlaczem dla ludzi, które przyjmuje strumień wejściowy znaków i wyświetla je. Nie ma informacji zwrotnej dla użytkownika na temat wysokości lub szerokości (tylko hacki) lub klawiszy klawiatury - tylko znaki podróżują do niego. Terminal przetwarza specjalne sekwencje w tym strumieniu, aby zabarwiać rzeczy, czyścić ekran i wykonywać inne nieprzyjemne rzeczy. Terminale są łukowate, ponieważ łatwo jest zepsuć rzeczy, jeśli plik, który wyprowadzasz na wyjście, zawiera te specjalne sekwencje. Są popularne w sieciach i interfejsach do debugowania urządzeń, ponieważ potrzebujesz tylko jednego strumienia do wysyłania danych wyjściowych i sterowania urządzeniem wyjściowym, a Ty możesz po prostu tap prowadzić konwersację bez potrzeby inicjowania lub tworzenia okna.

konsola szeregowa - to konsola przetwarzająca strumień wejściowy podobny do terminala.

    
odpowiedział anatoly techtonik 24.10.2014, 12:42
źródło
3

To jest niejasny temat, ponieważ terminy są bardzo niejednoznaczne. Gorąco polecam przeczytanie linków podanych przeze mnie w tej odpowiedzi, które są również moimi źródłami odpowiedzi.

shell to warstwa nad jądrem:

  • Interpretuje polecenia wprowadzone przez użytkownika i przetwarza je. Powłoka ma dostęp do jądra, w przeciwieństwie do użytkowników. Użytkownicy mogą uzyskiwać dostęp do jądra tylko poprzez wprowadzanie komend za pomocą powłoki i za pomocą procesów (tj. Uruchomionych programów). Programy korzystają z wywołań systemowych , aby uzyskać dostęp do funkcji jądra. Wszystkie wywołania systemowe tworzą systemowy interfejs API.
  • Przykłady powłok podano w definicji drugiego terminala.

A terminal ma wiele znaczeń:

  • (1) Terminal tekstowy . Jest to połączenie monitora i klawiatury. Kabel podłączony do terminala do komputera (często pośrednio). Nazywał się terminalem, ponieważ znajdował się na końcu tego kabla. Terminale te były zwykle fizycznie oddzielone od komputera, ponieważ w czasach, gdy wiele terminali było podłączonych do jednego komputera głównego / komputera, wielu użytkowników mogło mieć jednocześnie dostęp do komputera.
  • (2) Okno terminala a.k.a. emulator terminala . W systemie Linux okno terminala jest emulacją konsoli zawartej w oknie GUI. Jest to CLI, w którym wpisujesz swój tekst, a to wejście jest odczytywane przez powłokę, której używasz. Istnieje wiele rodzajów powłok (np. Bash, dash, ksh88) i terminali (np. Konsole, gnome).
  • (3) Aby uzyskać wyjaśnienie pseudo terminali , zobacz ten . Jest to para dwóch "plików urządzeń" używanych do komunikacji między procesem a emulatorem terminala.

A konsola ma wiele znaczeń:

  • (1) panel instrumentów zawierający elementy sterujące dla komputera.
  • (2) Konsola systemowa a.k.a. konsola komputerowa . Jest to połączenie monitora i klawiatury podłączonej do komputera. Jest to synonim tego, co nazywamy "terminalem tekstowym". Czasami także inne urządzenia peryferyjne użytkownika, takie jak mysz, są częścią konsoli.
  • (3) Interfejs wiersza poleceń, który obejmuje cały ekran. Jest to przeciwieństwo okna terminala, które jest GUI z X w prawym górnym rogu, aby go zamknąć. Są to dwa tryby wyświetlania interfejsu CLI (interfejs wiersza polecenia) w systemach uniksowych. Podobnie jak w oknie terminalu, konsola może również obsługiwać wiele powłok.

Często systemy operacyjne umożliwiają uruchamianie wielu konsoli na fizycznej konsoli (definicja konsoli 2). Nazywane są konsolami wirtualnymi aka wirtualnymi terminalami i można uzyskać do nich dostęp za pomocą ctrl + alt + Fx Kombinacje . Na przykład, jeśli chcesz otworzyć trzecią konsolę wirtualną, użyj kombinacji ctrl + alt + F3 .

Konsole (definicja 3) mogą wydawać się anachronizmem, ale eksperci powinni czuć się komfortowo z ich używania, ponieważ istnieje wiele systemów operacyjnych, które nie obsługują GUI. Ponadto, jeśli GUI przestanie odpowiadać, konsola może nadal działać.

    
odpowiedział user1534664 03.12.2015, 06:13
źródło
2

Większość terminali obecnie to ściśle mówiąc emulatory terminali . Jest to typ roli w funkcjonowaniu systemu uniksopodobnego i jednocześnie podstawowego interfejsu oferowanego przez systemy. W rzeczywistości wszystko, łącznie z GUI, opiera się na nim Potocznie "terminal" może również odnosić się do punktów końcowych w sieci komputerowej z topografią gwiazdy.

Konsola odnosi się do (sprzętowych) interfejsów terminali. To znaczy. są konsole seryjne , a obecnie w większości wirtualne .
Okno potocznie zwane "konsolową" -window jest powłoką, połączoną z terminalem systemu, za pośrednictwem wirtualnej konsoli.

W dniu, w którym komputery były drogie, urządzenie mogło mieć podłączony jeden komputer i kilka terminali za pośrednictwem kabli szeregowych ("konsola szeregowa"). Operacje systemu operacyjnego itp. Zostały przeprowadzone na fizycznym komputerze, dane wejściowe i wyjściowe wydarzyły się na konsoli (s).
Możesz przełączać się między wirtualnymi terminalami, naciskając CTRL + ALT + F1 (do F6 ): resztę te czasy Dzisiaj koncepcja "cienkich klientów" ma swój początek w centralizacji ogromnych zasobów i dostarczeniu wystarczającej ilości sprzętu, aby zapewnić najnowocześniejszy interfejs w rzeczywistym miejscu pracy.

powłoka to "silnik" widoczny w terminalu. Zapewnia współdziałanie z samym systemem i dodaje fajne funkcje, takie jak autouzupełnianie, zmienne itp.
Przekłada się to na rzeczywiste OS / jądro, które używa wywołań systemowych i ciebie. Wywołania systemowe bez powłoki są trochę jak kodowanie assembler , a powłoka przynajmniej daje ci C .

Wiersz poleceń odnosi się do metody wymiany danych wejściowych i wyjściowych za pośrednictwem okna tekstowego. Ściśle mówiąc, wiersz, w którym piszesz, to (aktualna) linia poleceń. Ogólnie metoda jest bardziej poprawnie określana jako interfejs wiersza poleceń lub CLI.

  1. jądro
  2. oferuje terminal
  3. Terminal
  4. jest podłączony za pośrednictwem konsoli
  5. konsola uruchamia powłokę
  6. komendy i dane wyjściowe są wymieniane za pośrednictwem wiersza poleceń (interfejsu)
odpowiedział Mark 04.08.2014, 14:17
źródło

Przeczytaj inne pytania na temat tagów