Bir 'terminal', 'shell', 'tty' ve 'konsol' arasındaki tam fark nedir?


1235

Bence bu terimler, serbestçe kullanıldığında neredeyse aynı şeyi ifade ediyor:

  • terminal
  • kabuk
  • tty
  • konsol

Bu terimlerin her biri tam olarak neyi ifade eder?



28
Buna 'komut satırı' eklemek istiyorum :-)
teeks99

1
Komut satırı, terminal / terminal emülatöründen bir kabuk içinde çalışan komut satırı yorumlayıcısına komut göndermek için kullanılan dildir.
Marty Fried

1
Teleks (TTY) ilk yılında New York'ta Mekaniği Enstitüsü'nde operasyonda koymak ve sergilendi 1844 en.wikipedia.org/wiki/Teleprinter
Serge Stroobandt

İki faydalı bağlantı daha - feyrer.de/NetBSD/ttys.html ve quora.com/…
Nishant

Yanıtlar:


1198

Bir terminal bir elektrik kablosunun ucundadır, bir kabuk bir kaplumbağanın evidir, tty tuhaf bir kısaltmadır ve bir konsol bir tür kabinedir.

Her neyse, etimolojik olarak konuşuyorum.

Unix terminolojisinde kısa cevap şudur:

  • terminal = tty = metin giriş / çıkış ortamı
  • konsol = fiziksel terminal
  • shell = komut satırı yorumlayıcısı

Konsol, terminal ve tty ile yakından ilgilidir. Başlangıçta, bir bilgisayarla etkileşime girebileceğiniz bir ekipman parçası anlamına geliyorlardı: unix'in ilk günlerinde , bazen telet yazıcısı olarak da bilinen bir daktiloya benzeyen bir teleprinter tarzı bir cihaz ya da kısaca "tty" anlamına geliyordu . “Terminal” adı elektronik bakış açısıyla, “konsol” adı mobilya bakış açısıyla geldi. Unix tarihinin çok başında elektronik klavyeler ve ekranlar terminaller için norm haline geldi.

Unix terminolojisinde tty , okuma ve yazmanın ötesinde bir dizi ek komut ( ioctls ) uygulayan özel bir tür cihaz dosyasıdır . En yaygın anlamında, terminal tty ile eşanlamlıdır. Bazı tty'ler, çekirdek tarafından bir donanım aygıtı adına, örneğin klavyeden gelen giriş ve bir metin modu ekranına gelen çıkışla veya seri hat üzerinden iletilen giriş ve çıkışla sağlanır. Da adlandırılan diğer ttys, sözde ttys adı verilen programlar tarafından (ince bir çekirdek tabakası içinden) verilmiştir terminal emulatörleri gibi Xterm (çalışan X Pencere Sistemi ), Ekran(bir programla başka bir terminal arasında bir yalıtım katmanı sağlar), Ssh (bir makinedeki bir terminali başka bir makinedeki programlarla birbirine bağlar), Bekle (terminal etkileşimlerinin komut dosyası için), vb.

Terminal kelimesi ayrıca bir bilgisayarla, tipik olarak bir klavyeyle ve ekranla etkileşime giren bir cihazın daha geleneksel bir anlamını da içerebilir. Örneğin, bir X terminali, bir başka ince istemcidir , tek amacı klavye, ekran, fare ve bazen diğer insan etkileşimi çevre birimlerini çalıştırmak için özel amaçlı bir bilgisayardır, gerçek uygulamalar başka, daha güçlü bir bilgisayarda çalışmaktadır.

Bir konsol genel olarak fiziksel anlamda bir terminaldir ve bir tanımla doğrudan bir makineye doğrudan bağlı olan birincil terminaldir. Konsol, işletim sistemine (çekirdek uygulamalı) bir tty olarak görünür. Linux ve FreeBSD gibi bazı sistemlerde, konsol birkaç tty olarak görünür (bu tty'ler arasında özel tuş kombinasyonları değişir); Sadece konuları karıştırmak için, her bir tty'ye verilen ad “konsol”, “sanal konsol”, “sanal terminal” ve diğer varyasyonlar olabilir.

Ayrıca bkz. Sanal Terminal neden “sanal” ve ne / neden / “gerçek” Terminal nerede? .


Bir kabuk , kullanıcıların giriş yaptıklarında gördükleri ana arayüzdür; birincil amacı ise diğer programları başlatmaktır. (Orijinal metaforun, kabuğun kullanıcının ev ortamı mı, yoksa kabuğun diğer programların çalıştığı alan mı olduğunu bilmiyorum.)

Unix çevrelerinde, kabuk , başlamak istediği uygulamanın adını girmek, ardından uygulamanın üzerinde çalışması gereken dosya veya diğer nesnelerin adlarını girmek ve Enter tuşuna basmak üzere ortalanmış bir komut satırı kabuğu anlamına gelmek üzere uzmanlaşmıştır . Diğer ortam türleri “kabuk” kelimesini kullanmaz; örneğin, pencere sistemleri bir “kabuk” değil “ pencere yöneticileri ” ve “ masaüstü ortamları ” içerir.

Birçok farklı unix kabukları var. Etkileşimli kullanım için popüler mermiler Bash (çoğu Linux kurulumunda varsayılan), zsh (gücü ve özelleştirilebilirliği vurgulayan) ve balık (basitliği vurgulayan) içerir.

Komut satırı kabukları, komutları birleştirmek için akış kontrol yapılarını içerir. Etkileşimli bir komut isteminde komut yazmaya ek olarak, kullanıcılar komut dosyaları yazabilir. En yaygın kabukları, Bourne_shell'e dayanan ortak bir sözdizimine sahiptir . “ Kabuk programlama ” tartışılırken , kabuğun hemen hemen her zaman Bourne tarzı bir kabuk olduğu belirtilir. Genellikle komut dosyası olarak kullanılan ancak gelişmiş etkileşimli özelliklere sahip olmayan bazı kabuklar , Korn kabuğunu (ksh) ve birçok kül varyantını içerir. Neredeyse tüm Unix benzeri sistemler /bin/shgenellikle kül, ksh veya bash olarak kurulmuş Bourne tarzı bir kabuğa sahiptir .

Unix sistem yönetiminde, kullanıcının kabuğu giriş yaptıklarında çağrılan programdır. Normal kullanıcı hesaplarında komut satırı kabuğu vardır, ancak erişimi kısıtlı kullanıcılar kısıtlı bir kabuk veya başka bir özel komut içerebilir (örn. Dosya transferi için). -sadece hesaplar).


Terminal ile kabuk arasındaki işbölümü tamamen açık değildir. İşte ana görevleri.

  • Giriş: terminal tuşları kontrol dizilerine dönüştürür (örn. Left\e[D). Kabuk, kontrol dizilerini komutlara dönüştürür (örneğin \e[Dbackward-char).
  • Satır düzenleme, giriş geçmişi ve tamamlama kabuk tarafından sağlanır.
    • Terminal, bunun yerine kendi satır düzenlemesini, tarihçesini ve tamamlanmasını sağlayabilir ve yalnızca çalıştırılmaya hazır olduğunda kabuğa bir satır gönderir. Bu şekilde çalışan tek genel terminal M-x shellEmacs'ta.
  • Çıktı: Kabuk “ekran foo”, “ön plan rengini yeşile değiştir”, “imleci bir sonraki satıra taşı” vb. Gibi talimatlar yayar . Terminal bu talimatlara göre hareket eder.
  • Bilgi istemi tamamen bir kabuk kavramı.
  • Kabuk, çalıştırdığı komutların çıktısını asla görmez (yönlendirilmediği sürece). Çıktı geçmişi (scrollback) tamamen bir terminal konseptidir.
  • Uygulama içi kopyala-yapıştır, terminal tarafından sağlanır (genellikle fare veya Ctrl+ Shift+ Vveya Shift+ gibi tuş dizileriyle Insert). Kabuğun kendi iç kopyala yapıştırma mekanizması da olabilir (örneğin, Meta+ Wve Ctrl+ Y).
  • İş kontrolü (arka planda programlar başlatmak ve bunları yönetmek) çoğunlukla kabuk tarafından yapılır. Ancak, gibi anahtar kombinasyonları kolları terminali bulunuyor Ctrl+ Cön plan işi öldürmek ve Ctrl+ Zasılması.

50
Sadece kelime oyunu: Her iki tipte yazının da çekirdeği “sağladığını” söyleyebilirim. Vurgulayacağım fark, donanım tiplerinin (örneğin seri hatlar ve yerleşik, metin modu konsolu) donanıma bağlı bir ucunun ve yazılıma bağlı bir ucunun (örneğin, giriş programları ve / veya mermiler) olmasıdır. her iki uç da yazılıma bağlanır (örn. bir ucunda bir terminal emülatörü ve diğer ucunda kabuk).
Chris Johnsen

12
@phunehehe: Bu, işletim sistemi tasarımında yaygın olarak kullanılan “kabuğun” farklı bir anlamı: Kabuk çekirdeğin dış kısmı. Bu unix terminolojisi değildir: Unix çekirdekleri bir kişinin kabuk diyebileceği bir bileşene sahip olma eğiliminde değildir.
Gilles

24
Bu kabuk metafor için aklımdaki görüntü.
ændrük

12
Linux altında "konsol" un bir başka anlamı da var. Konsol (sadece bir tane var) printkyeterli önceliğin olduğu yer (örneğin, çekirdek panikleri). console=DEVICE,...Çekirdek komut satırından geçerek ayarlanır (örneğin, console=ttyS0,115200ilk seri bağlantı noktası için, 115.200 b / s'de). Normalde sanal terminale öntanımlıdır, ancak çekirdek derlendiğinde değiştirilebilir.
derobert

19
“… Terminal… ön plan işini öldürmek için Ctrl + C ve askıya almak için Ctrl + Z gibi tuş kombinasyonlarını kullanıyor” Tam olarak değil: Terminal hala sadece kontrol karakterleri gönderiyor, bu aygıtların nasıl kullanılacağına karar veren tty cihazı . Varsayılan olarak tty cihazı, kontrol karakterlerini kabuğa (ve diğer işlemlere) gönderilen sinyallere dönüştürür.
Chris Page

194

Bir terminal veya konsol , bir kullanıcının bir ana bilgisayarla etkileşime girebileceği bir donanım parçasıdır. Temelde bir metin ekranı ile birleştirilmiş bir klavye.
Günümüzde neredeyse tüm terminaller ve konsollar "sanal" olanları temsil etmektedir.

Bir terminali temsil eden dosyaya geleneksel olarak tty dosyası adı verilir . Bir UNIX sisteminin "/ dev" dizini altına bakarsanız , sanal konsollara (örneğin linux üzerinde tty1), sanal terminallere (örneğin, pts / 0) veya fiziksel olarak bağlı donanıma (örneğin ttyS0) bağlı çok sayıda tty dosyası bulacaksınız. varsa, sunucunun ilk seri bağlantı noktasına bağlı fiziksel seri terminalidir).

Bir konsol , ana bilgisayara fiziksel olarak bağlı (veya bunun bir parçası) bir donanım parçası olmalıdır. Sistemde özel bir rolü vardır: Bakım için bir sisteme erişmenin ana noktasıdır ve bazı özel işlemler sadece bir konsoldan yapılabilir (örn. Bakınız single user mode). Bir terminal uzak bir donanım parçası olabilir ve genellikle de olabilir.

Son olarak, en az değil, bir kabuk , bir kullanıcı ile kontrol eden bir tty ile etkileşime giren özel bir programdır ve kullanıcıya, diğer programları (örneğin bash, csh, tcsh) başlatma yolunu sunar.

Bir terminal emülatörü , fiziksel bir terminali taklit eden bir programdır (örneğin, xterm, gnome-terminal, minicom).

Bu nedenle linux sisteminizde (X11'in altında) bir "metin penceresine" baktığınızda: aradığınız tty dosyasıyla tanımlanan sanal bir terminale bağlanmış ve içinde kabuk çalıştıran bir terminal emülatörü .


2
Herhangi bir masaüstü bilgisayarda sistem konsolu vardır (2015 veya posterimin 2010'da, önemi yok). Doğru bir şekilde belirtildiği gibi, bir donanım parçası. Ancak “Bugünlerde hemen hemen tüm… konsolların“ sanal ”olanları temsil ettiğini” belirterek neredeyse çelişkili ve açıkçası iyi değil.
Incnis Mrsi

1
"Bir terminal veya konsol, kullanıcının bir ana bilgisayarla etkileşime girebileceği bir donanım parçasıdır. Temel olarak bir metin ekranıyla birleştirilmiş klavye." onun somut yönüyle tarafından müthiş açıklama
Webwoman

@ andcoz - "Metin penceresi" ile ne demek istiyorsun? Bir terminal emülatörü sanal bir terminal değil mi? ttyKomutta KDE Konsole gibi bir terminal emülatöründe çalışırsam , çıktı / dev / pts / 0 olur.
Ocak'ta Motive

1
@IncnisMrsi - Bir masaüstü bilgisayar konsolu değil mi? Olmazsa, sistem konsolu olduğundan ne kastediyorsunuz?
Ocak'ta Motive

2
@Motivated /dev/pts/0, tty bir dosyadır, çekirdeğin maruz kaldığı programatik bir arabirime yönelik bir işleyicidir. Bu işleyici aracılığıyla, bir program (örneğin kabuk) bir uçbirimle (gerçek veya sanal) etkileşime girebilir. Bir terminal emülatörü, bir terminali taklit eden bir yazılımdır. Emülatör, çekirdekten programların kendisiyle etkileşime girmesini sağlamak için bir işleyici oluşturmasını ister (bkz. man openpty). Böylece bilgi terminalden (emülatör) çekirdek çekirdek işleyicisine, programa (ve tersi) akar. Programlar ve terminaller birbirleriyle doğrudan konuşmaz, ancak yalnızca tty dosyasıyla (işleyici) konuşur.
andcoz

48

KISA açıklama:

Konsol bir terminaldir. Bir sistemin bir konsolu ve potansiyel olarak çoklu terminalleri vardır. Konsol, genellikle bir bilgisayarı yönetmek için birincil arayüzdür, örneğin hala önyüklenirken.

Bir terminal, komut satırı programları için giriş ve çıkış alabilen ve gönderebilen bir oturumdur. Konsol bunların özel bir halidir.

Bir TTY temelde sahte bir cihazdır, belirli bir terminale erişmek için işlemler tarafından kullanılan bir çekirdek kaynağıdır. TTY'ler seri bağlantı noktası gibi bir donanıma bağlanabilir veya sanal olabilir, örneğin bir kullanıcı ağ üzerinden oturum açtığında oluşturulabilir

Kabuk, programları kontrol etmek ve çalıştırmak için kullanılan bir programdır. Genellikle bir terminal aracılığıyla etkileşimli olarak kullanılır. Birkaç Shell programı var, Bash tartışmasız bugün en yaygın kullanılan kabuk. Belirli bir düzende olmayan diğer mermiler Bourne Kabuğu, C-kabuğu, Dash, Tsch, Ksh ve giderek daha popüler olan zsh'yi içerir. Daha çok var.

Bir GUI'niz olduğunda, güzel bir yeniden boyutlandırılabilir kenarlık çizmek, kaydırma çubukları eklemek ve metni vb. Bir terminal oturumu için biçimlendirmek için bir terminal programı kullanabilirsiniz. Genellikle bunlara terminal emülatörleri denir ve bazen bir TAB konsepti ile çoklu seanslar yapabilirler. Bir Terminal Emülatörü, genellikle komut satırında etkileşimli olarak çalışmanıza izin vermek için bir Shell başlatır.


1
PTY bir sahte TTY. TTY olabilir, ancak esasen sanal (sözde olmayan) terminal olabilir.
Luciano

35

Bir TTY (yani, T ele TY yazar), sağır, işitme engelli veya konuşma engelli kişilerin, metin mesajları yazarak, iletişim kurmak için telefonu kullanmalarına olanak sağlayan özel bir cihazdır. İletişim kurmak için konuşmanın her iki ucunda bir TTY gerekir.
VEYA
TTY , metin mesajı yazmak için kullanılan terminaldir .


Kabuk : Tohumun dış koruyucu kaplama kısmı, yani çekirdek.
VEYA
sistemin merkezi veya temel kısmına çerçeve veya dış yapı.
görüntü tanımını buraya girin


Konsol , klavye anlamına gelir ve bir bilgisayara fiziksel olarak bağlanma izler.


28

Zaten iki büyük cevap var, ancak “sanal terminal” ibaresi hakkında bilgi eklemek istiyorum . Genel olarak, bir terminalin görünümünü / işlevselliğini sağlayan bir şey anlamına gelir, i. e. geniş anlamda bir . Ancak Linux'un ilk günlerinde (1994–95) bazı geliştiriciler tarafından “sanal konsol” (bazı ilgisiz kullanıcı arayüzleri) ile eşanlamlı olarak kullanıldı . Bu kullanım dokümantasyonda devam eder; İki farklı terim tty1, tty2… şeylerine atıfta bulunmak için kullanıldı. Günümüzde (≈ 1996’dan beri) “sanal terminal” aynı zamanda tabanlı terminal emülatörlerini de ifade edebilir .

Linux vt(metin modu sistem konsolunun sürücüsü) çekirdeğinin ilk parçasıydı. Başlangıçta anabilgisayarlara bağlantı için kullanıldı ve bu anlamda “sanal bir terminal”, dolayısıyla adı. Sanal konsolları denetleyen kodda da bulunurvt.c . Linux çekirdeği mühendisleri sürekli olarak “konsollar” kelimesini tty1, tty2… olarak belirtmek için kullanırlar ve onlar için “vc_” ön ekini kullandılar. Örneğin, bir vc_allocateişlevi var. Öte yandan, gibi kullanıcı uzay araçları geliştiriciler kbdve console-toolskullanılan “sanal konsola” (VC) ve birbirinin yerine “sanal terminali” (VT). Ī̲ temas Andries E. Brouwerve ondan erken geliştiriciler tarafından kullanılan terminolojiyi netleştirmesini istedi (1994–95). Andries, kibarca bazı cevaplar verdi. VT ve VC'nin eş anlamlı ve “bölünmez” kısaltmalar olduğunu belirtir. -> Genel olarak, sanal bir konsol sanal bir terminaldir, ancak converse doğru değildir. Sanal konsollar olmayan bu “sanal terminaller” aslında psödoterminallerdir (Andries'ın belirttiği gibi, bunlar VT değildir ). Çekirdeğin bir konsol uygulaması için terminal işlevsellik sağladığı sanal konsolların aksine, psödoterminaller, konsol uygulamaları ile kullanıcı alanında çalışan terminal oluşturma programı arasındaki iletişimi düzenlemek için PTY “aygıtları” kullanır . Örnekler X tabanlı terminal emülatörleri vesshd, bu her oturum açma oturumu için bir takma ad verir. Bir takma adı "konsol" olarak adlandırılmayabilir - bu bir hata.


14
  • Terminal = Çıkış için bir ekran ve bir kabuk oturumuna giriş için bir klavye sağlayan bir arayüz.

  • Shell = String olarak yazılan komutları çalıştıran yorumlayıcı

  • Konsol: Aslında iki çeşit konsol kullanıyoruz.

    • Fiziksel konsol = Bir sistemle etkileşimde kullanılan donanım ekranı ve klavye

    • Sanal konsol = Her biri bağımsız bir oturum açma oturumunu destekleyebilecek birden fazla mantıksal konsoldan biri.

  • tty (teletype yani terminal). = Bir terminal temelde yalnızca input ve output.message için metin kullanan bir kullanıcı arayüz cihazıdır.


Bir tty nedir? - Aksi takdirde, cevabını okuduğum tek cevap budur
loxaxs 21

8

Tarihe dalmalısınız.

Kâğıt ve klavyeli daktilo benzeri cihazlar vardı. Teletypes ("uzaktan" anlamına gelen "uzaktan" anlamına gelir, "tele" "uzak" anlamına gelir) ya da kısa ttys denirdi . 70'lerde, CRT monitörü olan cam tty'ler denilen cihazlar tarafından kullanılmazlardı .

Herhangi bir bilgisayarın durumunu ve hatalarını bildirmek için bir yol gerekir (ve muhtemelen komutları kabul edin). Neredeyse her zaman doğrudan bilgisayara bağlı olan konsol üzerinden yapılır . Dolayısıyla, konsolun 2 anlamı vardır : durumu bildirmek için kullanılan ve doğrudan bağlı olan bir şey.

UNIX etkileşimli bir sistemdir: birkaç kullanıcı buna bağlanabilir ve uygulamaları başlatabilir. İlk bilgisayarlarda bunun için teletypes ( tty ) kullanıldı : her kullanıcının seri hat bağlantısı olan makineye bağlı teletipi vardı. Bu tür teletipe terminal denir . UNIX ayrıca denir "terminalleri arkasında oturan kullanıcıları" işlemek için özel alt sistemi var tty ilk terminalleri teletypes çünkü. Unix'te her işlem tty'ye bağlanabilir. Bu, terminale yakın bir yerde oturan bir kullanıcı olduğu anlamına gelir. Daha fazla bilgi için http://www.linusakesson.net/programming/tty/ adresini ziyaret edin .

Kullanıcıların uygulamayı çalıştırmasını sağlamak için çekirdeğe bir yol göstermeleri gerekir. Bunun için kabuk (sh, bash, csh, ksh vb.) kullanılır. kabuk tty üzerinde çalışır, kullanıcıdan gelen komutları kabul eder ve çekirdeği bazı uygulamaları çalıştırmasını ister.

Ancak terminaller her zaman fiziksel olarak makineye bağlı değildir. Kullanıcıdan tuş vuruşlarını kabul eden ve bunları bir yere gönderen terminali "taklit eden" bir uygulama olabilir (xterm ve ssh iyi örneklerdir). Kernel'de bunun için sahte terminal adı verilen bir API var. Bu yüzden, tty'niz gerçek terminal yerine bazı uygulamalara bağlı olabilir. Xterm, metni görüntülemek için X11'i ve ssh bunun için ağ bağlantısını kullanır.

IBM PC'de klavye ve ekran kartı bulunur ( bazen konsolu da denir ). Linux bununla farklı şeyler yapabilir:

  • Linux konsolu: "hataları ve durumunu bildirmek için motor" olarak kullanın. Eğer konsola = / dev / ttyS0'u çekirdeğe iletirseniz, COM1'e konsol olarak bağlı bir şey kullanacak ve eğer kullanmazsanız PC konsolunu kullanacaktır.
  • Sanal terminal (vty) olarak adlandırılan terminale öykünmek için kullanın .

Ayrıca konsoldaki taklit terminalini durdurabilir ve bazı uygulamalara verebilir. Uygulama video modunu değiştirebilir ve yalnızca kullanabilir (X11 veya svgalib bunu yapabilir).

Yani, işte modern anlamlar:

  • terminal: Gerçek kullanıcı arkasında oturan bir şey. Fiziksel terminal (nadir) veya sözde terminal (xterm, ssh) veya sanal terminal (Linux'ta vty) olabilir
  • Kabuk: kullanıcının sistemle etkileşime geçmesine yardımcı olan uygulama (bash, tcsh, etc).
  • tty: terminalleri desteklemek için terminal veya çekirdek alt sistemi.
  • Konsol: Durum ve hataların bildirildiği bir şey ( /dev/console) veya bilgisayara bağlı fiziksel klavye ve video görüntüsü.

7

İşte kısa cevap -

Çekirdek - doğrudan gerçek donanıma konuşan, herhangi bir modern işletim sisteminin en iç kısmı.

Kabuk - asıl Çekirdeğin etrafındaki sarıcı. Ne zaman bir komut çalıştırsak, aslında uygun Çekirdek talimatlarını çağıran shell ile konuşuruz. Bunun dışında, kabuk komutları, uygun bir dosya adı kısa el, boru komutları vb.

Terminal - daha önceki bilgisayar çağında, bilgisayarlar (Mainframe olarak bilinir) devasa idi. Böylece, tek bir işlem biriminin olması ve birçok yerden bağlanması kolaydı. Terminal, ana bilgisayara bağlı klavye ve çıkış cihazlarına sahip gerçek donanımdır.

Konsol - İşletim Sistemi Yönetimi amacıyla doğrudan Mainframe'e bağlı özel tip terminal.

tty - TeleTypewriter, Mainframe'e ve Mainframe'den veri gönderip almak için kullanılır. Video Terminalleri mevcut değildi önce kullanılır. Ancak geleneksel olarak hala tty olarak adlandırılmıştır. Hatta bilestty

Uzun ayrıntılı cevap burada - Terminal, Konsol, Kabuk, Çekirdek, Komutlar - Bilgisayarın Farklı Parçaları


teşekkürler ama temelde eğer terminal mevcutsa, neden hala ubuntu sisteminde kişisel bilgisayarlar için hala tty var, alt + f-1/6 ile erişilebilir, lütfen yardımcı programlarını, grafik sistemi kullanmadan erişilebilecekleri gerçeğinin üstünde bulamıyorum. iyi anladıysam
Webwoman

1
@Webwoman - Sistemim, roothesaba yalnızca sudokonsol oturum açma yoluyla veya bu hesap aracılığıyla erişime izin verecek şekilde yapılandırılmış durumda . Konsollar genellikle, kendilerine erişimi olan birinin iletişim kurduğu bilgisayara fiziksel olarak erişebilmesi nedeniyle özel bir yere sahiptir. Onlar da son çare erişim yöntemidir. İşletim sistemi kısmen bozuk durumda ise (Ethernet sürücüsü bozuk gibi) Konsola hala erişebilirsiniz. Hangi durumda olursa olsun, HER ZAMAN kullanılabilir olması gereken tek insan arayüz cihazıdır.
Omnifarious

Cevabınız için çok teşekkür ederiz "Konsollar genellikle kendileriyle özel bir yere sahiptir, çünkü kendilerine erişimi olan bir kişi mutlaka iletişim kurduğu bilgisayara fiziksel olarak erişebilir" demek istediniz, TTY'nin genellikle özel bir yeri var mı?
Webwoman,

@Webwoman - Hayır, konsol. Bir TTY sıklıkla bir bilgisayara doğrudan bağlı değildir. Ve bir konsol sıklıkla geleneksel anlamda bir TTY değildir. 80'lerin sonlarında MN'nin U'suna gittiğimde, rastgele TTY'leri rastgele bilgisayarlara bağlamak için İnternet Protokolü'nü (yani IP) çalıştırmadığım kampüs çapında bir uzmanlık ağı vardı. IBM anabilgisayarlarında da benzer bir şey oluyor ve IBM'in SNA'yı yaratmasının en büyük nedenlerinden biriydi. Normal bir bilgisayar, sadece metin gösterse bile, birçok yönden TTY'ye benzemez, bu yüzden bir PC konsolu tam olarak bir TTY değildir.
Omnifarious

@Webwoman - Bir konsolun belirleyici özelliği, işletim sistemini çalıştıran donanıma doğrudan bağlantısı olmasıdır. Bu fikir, modern 'sanal makineler' ile biraz bulanık, ancak temel fikir.
Omnifarious

6

Kabul edilen cevabın yanı sıra TTY'nin açıkladığı makale dışında, bu iki makaleyi okumayı gerçekten çok sevdim:

Bu , NetBSD'ye dayanıyor.

Unix'in taş çağlarında, bilgisayar sistemleri bir ana bilgisayardan, hafızası, yığın depolama ve bilgi işlem birimlerine sahip ve kullanıcılar veya operatörler tarafından başlatılan işlemleri yürüten büyük bir yanıp sönen ışık kutusundan oluşuyordu. Donanım çok pahalı olduğu için, sistemler gerçek zamanlı çok kullanıcılı sistemler olarak kullanıldı, birçok kişi aynı anda sistemle etkileşime girdi. Genelde sahip olmadıkları şey - bugünün Unix iş istasyonlarının aksine - sabit bir monitör ve klavyeydi. Bunun yerine, makineye komut vermek ve çıktı almak, ilk önce teletiperler ve daha sonra CRT (katod ışını tüpü) terminalleri kullanılarak seri hatlar üzerinden yapıldı. Teletiperler - Unix'deki "tty" lerin geldiği yer burasıdır - seri hat üzerinden basılan anahtarları sunucuya gönderen elektronik daktilolar,

Bu , Linux'a dayanıyor.

Terminaller, sadece normal dosyalar, borular ve soketler ile elde edilebileceklerin ötesinde gelişmiş giriş / çıkış yetenekleri sağlayan cihazlardır. Bu özellikler, insanların bilgisayarlarla etkileşimini kolaylaştırmak için tasarlanmıştır ve birbirleriyle konuşmaya çalışan programlar için yararsızdır.


1

Bu konuyu çözmeme izin verin ... Bu konuda Unix ve Linux'u az çok eşanlamlı olarak kullanacağım. Eğer Linux'un varlığını yırtan tarihsel bir şeye atıfta bulunuyorsam, genellikle "Unix" yazacağım ve daha yeni bir şeyden ya da Unix'in Linux tadına özgü bir şeyden bahsedeceğim, genellikle "Linux yazacağım" ".

Kabuk

Listenizde diğerleri ile örtüşmeyen ayrık bir kavram olan tek şey 'kabuk'tur. Kabuk, amacı bir kullanıcıyla iletişim kurmak ve kendi adına işletim sistemi işlemleri gerçekleştirmek olan bir programdır.

En yaygın mermiler, kullanıcıya bir tür komut istemi göndermek, kullanıcının bir metin komutu yazmasını beklemek ve daha sonra bu komutu uygulamaktan oluşan 'komut satırı' adı verilen bir tekniği kullanır. Ancak menü tabanlı mermiler ve hatta grafiksel mermiler bile (Windows Dosya Gezgini gibi) kendi kendine saygı duyan hiçbir Unix kimsenin böyle bir şeyi 'kabuk' olarak adlandırmayacak olmasına rağmen.

Unix'te, eğer birisi bir 'kabuk' diyorsa, neredeyse tarif ettiğim gibi bir çeşit komut satırı arayüzü anlamına gelir. Ve Unix dünyasında, daha fazla açıklayacağım tty modelini kullanarak bir kullanıcıyla iletişim kurmuyorsa, herhangi bir şeyi 'kabuk' olarak adlandırmak çok garip.

TTY

Bu kafa karıştırıcı olanıdır, çünkü birkaç farklı şeyle ilgili olabilir.

Linux'ta 'tty' adı verilen bir tür cihaz var. Bir kullanıcı olan veya bir şekilde bir kullanıcıdan girdi alan bir şeyle iki yönlü iletişim için kullanılması beklenen soyut bir cihazdır. Bazen bu soyut cihaz doğrudan bazı fiziksel cihazlara karşılık gelebilir. Bazen, birisine iletişimin göründüğü ve kullanıcının yazabileceği bir pencere sunan bir program olabilir.

Ancak, bu soyut cihazın var olmasının ve 'tty' olarak adlandırılmasının nedeni, 'tty'nin klavyeyle birleştirilmiş bir kağıda basılmış bir yazıcıya sahip olan gerçek bir fiziksel cihaz olan' teletype 'için kısa olmasıdır. Soyut 'tty' cihazının modeli, onu kullanan programlara sunuyor, temelde diğer tarafta bir teletype var. Karakterleri gönderirsiniz ve bu karakterler teletipte görünür. Ondan karakter okuduğunuzda, bu karakterler klavyede yazılmış tuşları temsil eder.

Eski kâğıt-yazıcı tabanlı tty'ler hızlı bir şekilde video tty'ler ile desteklenmiştir. Şunlara tabii ki rulo kağıt yok. Ve aslında, ekrandaki herhangi bir karakterin üzerine yazmak mümkündür. Ancak, programlara bir çeşit soyut 'ekran' arayüzü sunmak yerine, programların yerine çeşitli görevleri gerçekleştiren kaçış dizileri adı verilen özel karakter akışları göndermesi beklenmektedir. Genellikle ekranda hareket ettirilebilen 'imleç' olarak adlandırılan soyut bir şey vardır ve gönderilen herhangi bir karakter imlecin üzerinde olanın yerine geçecektir ve imleç bir karakter daha ilerleyecektir. Genelde kaçış dizileriyle basılacak olan karakterin rengini de değiştirebilirsiniz.

Bu modeli takip etmeyen ve sonuç olarak Unix dünyasında kötü şekilde ele alınan 'cam tipler' var. IBM 3270 video terminal ailesi bu kategoriye girer.

Linux / Unix kullanıcılarının tipik olarak 'kabuk penceresi' dedikleri şey, grafiksel bir kullanıcı arayüzü kullanarak bir cam tty emülasyonudur. Dahili olarak, bir kabuk penceresinin içinde çalışan programlar, bazen bir sahte tty veya sahte terminal (aka bir pty) olarak adlandırılan sanal bir tty cihazıyla konuşuyor.

terminal

Bir terminal, sadece bilgisayar ve insanın arayüz kurması gereken bir yer. Bir program bunu taklit etmek için yeteneklerini kullanabilse de, terminaller tamamen grafik olabilir ve tty modelini hiçbir şekilde izlemeyebilir. Tüm gerçek fiziksel tipler (cam veya başka) terminaldir.

konsol

Konsol, genel olarak işletim sisteminin üzerinde çalıştığı donanıma doğrudan güvenli bir şekilde bağlanması gereken özel bir terminal türüdür.

Linux'ta konsol, sanal konsollar arasında geçiş yapmak için özel bir tuş vuruşu kullanmanıza izin veren küçük bir şekilde sanallaştırılmıştır. Ancak bu sanallaştırma, çekirdekte bulunan yazılım tarafından gerçek bir donanım parçası ile gerçekleştirilir.

Bilgisayarı USB bağlantı noktası gibi seri bir bağlantı noktası (veya çok küçük ve / veya çok eski bilgisayarlarda RS-232 bağlantı noktası gibi) seri bağlantı noktası üzerinden bilgisayara bağlanan bir konsol olan 'seri konsol' olarak adlandırılan yolla Linux kullanmanın yolları vardır bir çeşit) ve eski teletype modelini oldukça katı bir şekilde izler.

Yine, fikir, bu konsolun, herhangi birinin bağlanmasına izin verebilecek bir ağ türü yerine, bilgisayara doğrudan fiziksel bir şekilde bağlı olmasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.