Apa perbedaan yang tepat antara 'terminal', 'shell', 'tty' dan 'konsol'?


1234

Saya pikir istilah ini hampir merujuk pada hal yang sama, ketika digunakan secara longgar:

  • terminal
  • kulit
  • tty
  • menghibur

Apa tepatnya yang dimaksud dari masing-masing istilah ini?



28
Saya ingin menambahkan 'command line' ke :-)
teeks99

1
Baris perintah hanyalah bahasa yang digunakan untuk mengirim perintah ke interpreter baris perintah yang berjalan dalam shell dari terminal / terminal emulator.
Marty Fried

1
The teletypewriter (TTY) pertama kali dimasukkan ke dalam operasi dan dipamerkan di Institut Mekanika di New York di tahun 1844. en.wikipedia.org/wiki/Teleprinter
Serge Stroobandt

Dua tautan bermanfaat lainnya - feyrer.de/NetBSD/ttys.html dan quora.com/…
Nishant

Jawaban:


1197

Terminal berada di ujung kabel listrik, shell adalah rumah kura-kura, tty adalah singkatan yang aneh dan konsol adalah sejenis kabinet.

Yah, bagaimanapun, secara etimologis.

Dalam terminologi unix, jawaban singkatnya adalah itu

  • terminal = tty = lingkungan input / output teks
  • konsol = terminal fisik
  • shell = juru bahasa baris perintah

Konsol, terminal, dan tty sangat terkait. Awalnya, mereka berarti peralatan yang dapat digunakan untuk berinteraksi dengan komputer: di masa-masa awal unix, itu berarti perangkat gaya teleprinter yang menyerupai mesin tik, kadang-kadang disebut teletypewriter, atau "tty" dalam singkatan. Nama "terminal" berasal dari sudut pandang elektronik, dan nama "konsol" dari sudut pandang furnitur. Sangat awal dalam sejarah unix, keyboard dan display elektronik menjadi norma untuk terminal.

Dalam terminologi unix, tty adalah jenis file perangkat tertentu yang mengimplementasikan sejumlah perintah tambahan ( ioctls ) di luar baca dan tulis. Dalam arti yang paling umum, terminal identik dengan tty. Beberapa ty disediakan oleh kernel atas nama perangkat keras, misalnya dengan input yang berasal dari keyboard dan output pergi ke layar mode teks, atau dengan input dan output yang dikirimkan melalui saluran serial. Ttys lain, kadang-kadang disebut pseudo-ttys , disediakan (melalui lapisan kernel tipis) oleh program yang disebut emulator terminal , seperti Xterm (berjalan di Sistem X Window ), Layar(yang menyediakan lapisan isolasi antara program dan terminal lain), Ssh (yang menghubungkan terminal pada satu mesin dengan program pada mesin lain), Harapkan (untuk interaksi terminal scripting), dll.

Terminal kata juga dapat memiliki makna yang lebih tradisional dari perangkat yang digunakan untuk berinteraksi dengan komputer, biasanya dengan keyboard dan tampilan. Misalnya terminal X adalah sejenis thin client , komputer tujuan khusus yang hanya bertujuan menggerakkan papan ketik, layar, mouse, dan terkadang perangkat periferal manusia lainnya, dengan aplikasi aktual berjalan di komputer lain yang lebih kuat.

Sebuah konsol umumnya merupakan terminal dalam arti fisik yang oleh beberapa definisi terminal utama langsung terhubung ke mesin. Konsol muncul ke sistem operasi sebagai tty (yang diimplementasikan kernel). Pada beberapa sistem, seperti Linux dan FreeBSD, konsol muncul sebagai beberapa ttys (kombinasi tombol khusus beralih antara ttys ini); hanya untuk membingungkan masalah, nama yang diberikan untuk masing-masing tty dapat "konsol", "konsol virtual", "terminal virtual", dan variasi lainnya.

Lihat juga Mengapa Terminal Virtual "virtual", dan apa / mengapa / di mana Terminal "nyata"? .


Sebuah shell adalah antarmuka utama yang dilihat pengguna saat log in, yang tujuan utamanya adalah untuk memulai program lain. (Saya tidak tahu apakah metafora aslinya adalah bahwa shell adalah lingkungan rumah bagi pengguna, atau bahwa shell adalah tempat program lain berjalan.)

Dalam lingkaran unix, shell memiliki spesialisasi untuk shell command-line , berpusat di sekitar memasukkan nama aplikasi yang ingin dimulai, diikuti dengan nama file atau objek lain yang harus ditindaklanjuti oleh aplikasi, dan menekan tombol Enter. Jenis lingkungan lain tidak menggunakan kata "shell"; misalnya, sistem jendela melibatkan " manajer jendela " dan " lingkungan desktop ", bukan "shell".

Ada banyak shell unix yang berbeda. Kerang populer untuk penggunaan interaktif termasuk Bash (default pada kebanyakan instalasi Linux), zsh (yang menekankan daya dan kemampuan penyesuaian) dan ikan (yang menekankan kesederhanaan).

Cangkang baris perintah termasuk konstruksi kontrol aliran untuk menggabungkan perintah. Selain mengetik perintah pada prompt interaktif, pengguna dapat menulis skrip. Kerang yang paling umum memiliki sintaksis umum berdasarkan pada Bourne_shell . Ketika membahas " pemrograman shell ", shell hampir selalu tersirat menjadi shell gaya Bourne. Beberapa shell yang sering digunakan untuk scripting tetapi tidak memiliki fitur interaktif canggih termasuk shell Korn (ksh) dan banyak varian abu . Hampir semua sistem mirip Unix memiliki shell bergaya Bourne yang diinstal sebagai /bin/sh, biasanya ash, ksh, atau bash.

Dalam administrasi sistem unix, shell pengguna adalah program yang dipanggil ketika mereka login. Akun pengguna normal memiliki shell baris perintah, tetapi pengguna dengan akses terbatas mungkin memiliki shell terbatas atau beberapa perintah khusus lainnya (misalnya untuk transfer file -hanya akun).


Pembagian kerja antara terminal dan shell tidak sepenuhnya jelas. Inilah tugas utama mereka.

  • Input: terminal mengubah kunci menjadi urutan kontrol (misalnya Left\e[D). Shell mengubah urutan kontrol menjadi perintah (misalnya \e[Dbackward-char).
  • Pengeditan baris, riwayat masukan dan penyelesaian disediakan oleh shell.
    • Terminal mungkin menyediakan pengeditan baris sendiri, histori dan penyelesaiannya, dan hanya mengirim baris ke shell ketika sudah siap untuk dieksekusi. Satu-satunya terminal umum yang beroperasi dengan cara ini adalah M-x shelldi Emacs.
  • Output: shell memancarkan instruksi seperti "display foo", "alihkan warna foreground menjadi hijau", "pindahkan kursor ke baris berikutnya", dll. Terminal bertindak berdasarkan instruksi ini.
  • Prompt adalah murni konsep shell.
  • Shell tidak pernah melihat output dari perintah yang dijalankannya (kecuali dialihkan). Output history (scrollback) adalah murni konsep terminal.
  • Copy-paste antar-aplikasi disediakan oleh terminal (biasanya dengan urutan tetikus atau mouse seperti Ctrl+ Shift+ Vatau Shift+ Insert). Shell juga dapat memiliki mekanisme copy-paste internal (misalnya Meta+ Wdan Ctrl+ Y).
  • Kontrol pekerjaan (meluncurkan program di latar belakang dan mengelolanya) sebagian besar dilakukan oleh shell. Namun, terminallah yang menangani kombinasi kunci seperti Ctrl+ Cuntuk mematikan pekerjaan latar depan dan Ctrl+ Zuntuk menangguhkannya.

50
Hanya berdalih: Saya akan mengatakan bahwa kedua jenis ttys "disediakan oleh" kernel. Perbedaan yang akan saya tekankan adalah bahwa hardware ttys (mis. Baris serial dan built-in, mode teks konsol) memiliki satu ujung terhubung ke perangkat keras dan satu ujung terhubung ke perangkat lunak (misalnya program login dan / atau shell) sementara pseudo-ttys memiliki kedua ujungnya terhubung ke perangkat lunak (misalnya emulator terminal di satu ujung dan shell di sisi lain).
Chris Johnsen

12
@ phunehehe: Benar, itu arti berbeda dari "shell", yang umum digunakan dalam desain sistem operasi: shell adalah bagian luar dari kernel. Ini bukan terminologi unix: kernel Unix tidak cenderung memiliki komponen yang bisa disebut shell.
Gilles

24
Ini adalah gambar dalam pikiran saya untuk metafora shell.
ændrük

12
Ada juga arti lain dari "konsol" di Linux. Konsol (hanya ada satu) adalah tempat printkprioritas yang cukup (mis., Kernel panik). Ini diatur dengan meneruskan console=DEVICE,...pada baris perintah kernel (misalnya, console=ttyS0,115200untuk port serial pertama, pada 115.200 bps). Biasanya ini default ke terminal virtual, tetapi itu bisa diubah ketika kernel dikompilasi.
derobert

19
"... terminal ... menangani kombinasi tombol seperti Ctrl + C untuk mematikan pekerjaan latar depan dan Ctrl + Z untuk menangguhkannya" Tidak cukup: terminal masih hanya mengirim karakter kontrol, itu adalah perangkat tty yang memutuskan bagaimana menangani mereka, dan itu dapat dikonfigurasi . Secara default perangkat tty mengubah karakter kontrol menjadi sinyal yang dikirim ke shell (dan proses lainnya).
Chris Page

194

Sebuah terminal atau konsol adalah bagian dari perangkat keras, menggunakan yang pengguna dapat berinteraksi dengan host. Pada dasarnya keyboard ditambah dengan layar teks.
Saat ini hampir semua terminal dan konsol mewakili yang "virtual".

File yang mewakili terminal, secara tradisional, disebut file tty . Jika Anda melihat di bawah direktori "/ dev" sistem UNIX, Anda akan menemukan banyak file tty yang terhubung ke konsol virtual (mis. Tty1 di linux), terminal virtual (mis. Pts / 0) atau perangkat keras yang terhubung secara fisik (mis. TtyS0 adalah terminal serial fisik, jika ada, terpasang pada port serial pertama dari host).

Sebuah konsol harus menjadi bagian dari perangkat keras fisik terhubung ke (atau bagian dari) tuan rumah. Ini memiliki peran khusus dalam sistem: ini adalah titik utama untuk mengakses sistem untuk pemeliharaan dan beberapa operasi khusus hanya dapat dilakukan dari konsol (misalnya lihat single user mode). Sebuah terminal dapat, dan biasanya, sepotong terpencil hardware.

Terakhir, tetapi tidak sedikit, shell adalah program khusus yang berinteraksi dengan pengguna melalui tty kontrol dan menawarkan, kepada pengguna, cara meluncurkan program lain (misalnya bash, csh, tcsh).

Sebuah terminal emulator adalah sebuah program yang mengemulasi terminal fisik (misalnya xterm, gnome-terminal, minicom).

Jadi ketika Anda melihat "jendela teks" pada sistem linux Anda (di bawah X11) Anda mencari: emulator terminal , terhubung ke terminal virtual , diidentifikasi oleh file tty , di dalamnya menjalankan shell .


2
Komputer desktop mana pun memiliki konsol sistem (pada 2015 saya atau poster 2010, tidak masalah). Seperti yang dinyatakan dengan benar, itu adalah perangkat keras. Tetapi menyatakan "Saat ini hampir semua ... konsol mewakili yang" virtual "" hampir kontradiktif dan jelas tidak baik.
Incnis Mrsi

1
"Terminal atau konsol adalah perangkat keras, yang digunakan pengguna untuk berinteraksi dengan host. Pada dasarnya keyboard digabungkan dengan layar teks." penjelasan luar biasa dari aspek konkretnya
Webwoman

@andcoz - Apa yang Anda maksud dengan "jendela teks"? Bukankah emulator terminal adalah terminal virtual? Jika saya menjalankan perintah ttypada terminal emulator seperti Konsole KDE, outputnya adalah / dev / pts / 0.
Termotivasi

1
@IncnisMrsi - Bukankah komputer desktop adalah konsol ? Jika tidak, apa yang Anda maksudkan dengan konsol sistem?
Termotivasi

2
@ Dimotivasi /dev/pts/0adalah file tty, sebuah handler ke antarmuka terprogram yang diekspos oleh kernel. Melalui pengendali ini, suatu program (mis. Shell) dapat berinteraksi dengan terminal (nyata atau virtual). Emulator terminal adalah perangkat lunak yang mengemulasi terminal. Emulator meminta kernel untuk membuat handler untuk membiarkan program berinteraksi dengan dirinya sendiri (lihat man openpty). Jadi informasi mengalir dari terminal (emulator) ke kernel tty handler, ke program (dan sebaliknya). Program dan terminal tidak berbicara satu sama lain secara langsung tetapi hanya melalui file tty (pengendali).
andcoz

48

Penjelasan singkat:

Konsol adalah terminal. Suatu sistem telah mendapat satu konsol dan berpotensi banyak terminal. Konsol biasanya merupakan antarmuka utama untuk mengelola komputer, mis. Saat masih booting.

Terminal adalah sesi yang dapat menerima dan mengirim input dan output untuk program baris perintah. Konsol adalah kasus khusus ini.

TTY pada dasarnya adalah perangkat pseudo, sebut saja sumber daya kernel, yang digunakan oleh proses untuk mengakses terminal tertentu. TTY dapat diikat ke perangkat keras seperti port serial, atau bisa virtual, misalnya dibuat ketika pengguna masuk melalui jaringan

Shell adalah program yang digunakan untuk mengendalikan dan menjalankan program. Ini sering digunakan secara interaktif, melalui terminal. Ada beberapa program Shell, Bash bisa dibilang shell yang paling umum digunakan saat ini. Kerang lain, tanpa urutan tertentu, termasuk Bourne Shell, C-shell, Dash, Tsch, Ksh, dan zsh yang semakin populer. Masih banyak lagi.

Ketika Anda memiliki GUI, Anda dapat menggunakan program terminal untuk menggambar perbatasan yang dapat disesuaikan ukurannya, menambahkan bilah gulir, dan memformat teks, dan sebagainya, untuk sesi terminal. Seringkali ini disebut emulator terminal, dan kadang-kadang mereka dapat menangani beberapa sesi melalui konsep TAB. Terminal Emulator sering memulai Shell untuk memungkinkan Anda bekerja secara interaktif pada baris perintah.


1
PTY adalah TTY semu. TTY bisa, tetapi pada dasarnya terminal tidak virtual (pseudo).
Luciano

35

Sebuah TTY (yaitu T ele TY pewriter) adalah perangkat khusus yang memungkinkan orang-orang yang tuli, tuli, atau pidato-gangguan penggunaan telepon untuk berkomunikasi, dengan memungkinkan mereka untuk mengetik pesan teks. TTY diperlukan di kedua ujung percakapan untuk berkomunikasi.
ATAU
TTY adalah terminal yang digunakan untuk mengetik pesan teks.


Shell : bagian luar yang menutupi bagian luar dari benih, yaitu kernel. Kerangka
OR
atau struktur eksterior ke bagian pusat atau penting dari suatu sistem.
masukkan deskripsi gambar di sini


Konsol berarti papan ketik dan monitor yang secara fisik terpasang ke komputer.


28

Sudah ada dua jawaban yang bagus, tetapi saya ingin menambahkan informasi tentang frasa “terminal virtual” . Secara umum, ini berarti sesuatu yang menyediakan tampilan / fungsi terminal, i. e. sebuah dalam arti luas. Tetapi pada masa awal Linux (1994-1995) digunakan secara sinonim dengan "konsol virtual" (beberapa antarmuka pengguna yang tidak terkait) , oleh beberapa pengembang. Penggunaan ini tetap ada dalam dokumentasi; dua istilah berbeda digunakan untuk merujuk ke tty1, tty2… thingies. Saat ini (sejak ≈ 1996) "terminal virtual" juga dapat merujuk ke emulator terminal berbasis .

Linux vt(driver konsol sistem mode teks) adalah bagian pertama dari kernelnya. Awalnya digunakan untuk koneksi ke mainframe dan dalam hal ini adalah "terminal virtual", maka namanya. Kode mengendalikan konsol virtual berada divt.c juga. Insinyur kernel Linux secara konsisten menggunakan kata "konsol" untuk menunjukkan tty1, tty2 ... dan menggunakan awalan "vc_" untuk mereka. Misalnya ada vc_allocatefungsi. Di sisi lain, pengembang alat ruang pengguna seperti itu kbddan console-toolsmenggunakan "konsol virtual" (VC) dan "terminal virtual" (VT) secara bergantian. Ī̲ menghubungi Andries E. Brouwerdan memintanya untuk mengklarifikasi terminologi yang digunakan oleh pengembang awal (1994-95). Andries dengan ramah memberikan beberapa jawaban. Dia menyatakan bahwa VT dan VC adalah singkatan yang identik dan “tidak terpisahkan”. -> Secara umum, konsol virtual adalah terminal virtual, tetapi sebaliknya tidak benar. Mereka "terminal virtual" yang bukan konsol virtual memang pseudoterminals (seperti yang dinyatakan Andries, ini bukan VT ). Tidak seperti konsol virtual, di mana kernel menyediakan fungsionalitas terminal untuk aplikasi konsol, pseudoterminals menggunakan "perangkat" PTY untuk mengatur komunikasi antara aplikasi konsol dan program pembuatan terminal yang berjalan di ruang pengguna . Contohnya adalah emulator terminal berbasis-X dansshd, yang mengalokasikan pseudotty untuk setiap sesi login. Seorang pseudotty mungkin tidak disebut "konsol" - itu adalah kesalahan.


14
  • Terminal = Antarmuka yang menyediakan tampilan untuk output dan papan kunci untuk input ke sesi shell.

  • Shell = Interpreter yang mengeksekusi perintah yang diketik sebagai string

  • Konsol: Sebenarnya dua jenis konsol yang kami gunakan

    • Konsol fisik = Layar perangkat keras dan keyboard yang digunakan untuk berinteraksi dengan suatu sistem

    • Konsol virtual = Salah satu dari beberapa konsol logis yang masing-masing dapat mendukung sesi login independen.

  • tty (yaitu terminal teletype). = Terminal pada dasarnya hanyalah perangkat antarmuka pengguna yang menggunakan teks untuk input dan output.message.


Apa itu tty? - jika tidak, jawaban Anda adalah satu-satunya yang saya baca
loxax

8

Anda perlu menyelami sejarah.

Ada perangkat seperti mesin tik dengan kertas dan keyboard. Mereka disebut teletypes (yang berarti "ketik jarak jauh," karena "tele" berarti "jauh") atau tty untuk pendek. Pada 70-an mereka usang oleh perangkat dengan monitor CRT yang disebut kaca ttys .

Komputer apa pun membutuhkan cara untuk melaporkan status dan kesalahannya (dan, mungkin, menerima perintah). Ini dilakukan melalui konsol yang hampir selalu terhubung langsung ke komputer. Jadi, ada 2 arti untuk konsol : sesuatu yang digunakan untuk melaporkan status dan sesuatu yang terhubung secara langsung.

UNIX adalah sistem interaktif: beberapa pengguna dapat terhubung dan memulai aplikasi. Komputer pertama menggunakan teletype ( tty ) untuk itu: setiap pengguna memiliki teletype yang terhubung ke mesin dengan koneksi jalur serial. Teletype semacam itu disebut terminal . UNIX juga mendapat subsistem khusus untuk menangani "pengguna yang duduk di belakang terminal" yang juga disebut tty karena terminal pertama adalah teletype. Setiap proses dapat dihubungkan ke tty di Unix. Itu berarti ada pengguna di suatu tempat duduk di dekat terminal. Lihat http://www.linusakesson.net/programming/tty/ untuk info lebih lanjut.

Pengguna perlu beberapa cara untuk memberitahu kernel untuk menjalankan aplikasi. shell (sh, bash, csh, ksh, dll.) digunakan untuk itu. shell berjalan pada tty , menerima perintah dari pengguna dan meminta kernel untuk menjalankan beberapa aplikasi.

Tetapi terminal tidak selalu terhubung secara fisik ke mesin. Mungkin ada beberapa aplikasi yang "mengemulasi" terminal yang menerima penekanan tombol dari pengguna dan mengirimkannya ke suatu tempat (xterm dan ssh adalah contoh yang baik). Ada API di Kernel yang disebut terminal semu untuk itu. Jadi tty Anda mungkin benar-benar terhubung ke beberapa aplikasi, bukan terminal nyata. Xterm menggunakan X11 untuk menampilkan teks dan ssh menggunakan koneksi jaringan untuk itu.

IBM PC memiliki keyboard dan kartu video ( kadang-kadang disebut juga konsol ). Linux dapat melakukan berbagai hal dengan itu:

  • Gunakan itu sebagai "mesin untuk melaporkan kesalahan dan status": Konsol Linux. Jika Anda mengirimkan konsol = / dev / ttyS0 ke kernel, ia akan menggunakan sesuatu yang terhubung ke COM1 sebagai konsol, dan jika tidak, ia akan menggunakan konsol PC.
  • Gunakan untuk meniru terminal, yang disebut terminal virtual (vty).

Ini juga dapat berhenti meniru terminal pada konsol dan memberikannya ke beberapa aplikasi. Aplikasi dapat mengganti mode videonya dan menggunakannya secara eksklusif (X11 atau svgalib dapat melakukannya).

Jadi, inilah makna modern:

  • terminal: Sesuatu dengan pengguna asli duduk di belakangnya. Bisa terminal fisik (jarang) atau terminal semu (xterm, ssh) atau terminal virtual (vty di Linux)
  • shell: aplikasi (bash, tcsh, dll) yang membantu pengguna untuk berinteraksi dengan sistem.
  • tty: terminal atau subsistem kernel untuk mendukung terminal.
  • konsol: sesuatu di mana status dan kesalahan dilaporkan ( /dev/console) atau tampilan keyboard dan video fisik terhubung ke komputer.

7

Inilah jawaban singkatnya -

Kernel - bagian terdalam dari setiap sistem operasi modern yang langsung berbicara dengan perangkat keras yang sebenarnya.

Shell - wrapper di sekitar Kernel yang sebenarnya. Setiap kali kita menjalankan perintah, kita benar-benar berbicara dengan shell yang pada gilirannya memanggil instruksi Kernel yang sesuai. Terlepas dari ini, shell mampu melakukan beberapa hal lain seperti menemukan program yang sesuai saat memiliki perintah, beberapa nama file, perintah perpipaan dll.

Terminal - di era komputasi sebelumnya, komputer (dikenal sebagai Mainframe) berukuran raksasa. Jadi, mudah untuk memiliki unit pemrosesan tunggal dan menghubungkannya dari banyak tempat. Terminal adalah perangkat keras aktual dengan keyboard dan perangkat output yang terhubung ke mainframe.

Konsol - Jenis terminal khusus yang terhubung langsung ke Mainframe untuk keperluan Administrasi OS.

tty - TeleTypewriter digunakan untuk mengirim dan menerima data ke dan dari Mainframe. Digunakan sebelum Terminal Video tersedia. Tapi secara konvensional masih bernama tty. Bahkan coommandstty

Jawaban terinci yang panjang ada di sini - Terminal, Konsol, Shell, Kernel, Perintah - Bagian komputer yang berbeda


terima kasih tetapi pada dasarnya jika terminal ada, mengapa masih ada juga di sistem ubuntu untuk komputer pribadi, dapat diakses dengan alt + f-1/6 tolong, saya tidak bisa mengetahui utilitas mereka di atas fakta mereka dapat diakses tanpa penggunaan sistem grafis jika saya mengerti dengan baik
Webwoman

1
@Webwoman - Sistem saya dikonfigurasikan untuk hanya memungkinkan akses ke rootakun melalui sudoatau melalui login konsol. Konsol sering memiliki tempat khusus dengan hak istimewa karena seseorang yang memiliki akses kepadanya tentu saja memiliki akses fisik ke komputer yang mereka gunakan untuk berkomunikasi. Mereka juga merupakan metode akses jalan terakhir. Jika OS dalam keadaan rusak sebagian (seperti driver ethernet rusak) Anda masih dapat mengakses konsol. Ini adalah satu-satunya perangkat antarmuka manusia yang harus SELALU tersedia, tidak peduli apa kondisi sistemnya.
Mahakuasa

@ Terimakasih, terima kasih atas jawaban Anda, "Konsol sering kali memiliki tempat istimewa sebagai hak istimewa karena seseorang yang memiliki akses ke mereka tentu saja memiliki akses fisik ke komputer yang mereka komunikasikan" maksud Anda TTY sering memiliki tempat khusus dengan hak istimewa?
Webwoman

@Webwoman - Tidak, konsol. TTY sering tidak terhubung langsung ke komputer. Dan konsol sering bukan TTY dalam arti tradisional. Ketika saya pergi ke U of MN pada akhir 80-an, ada jaringan khusus kampus-lebar yang saya tidak menjalankan Internet Protocol (alias IP) untuk menghubungkan TTYs acak ke komputer acak. Mainframe IBM memiliki hal serupa terjadi dan itu adalah salah satu alasan besar IBM menciptakan SNA. Dan PC normal, meskipun hanya menampilkan teks, sangat berbeda dengan TTY dalam banyak hal, jadi konsol PC sebenarnya bukanlah TTY.
Mahakuasa

@Webwoman - Fitur utama konsol adalah konsol ini memiliki koneksi langsung ke perangkat keras yang menjalankan sistem operasi. Ide ini agak kabur dengan 'mesin virtual' modern, tapi itulah ide dasarnya.
Mahakuasa

6

Terlepas dari jawaban yang diterima dan artikel The TTY demystified , saya benar-benar suka membaca dua artikel ini:

Yang ini didasarkan pada NetBSD.

Kembali ke zaman batu Unix, sistem komputer terdiri dari mainframe, sekotak besar lampu berkedip yang memiliki memori, penyimpanan massal dan unit komputasi, dan proses yang dijalankan dimulai oleh pengguna atau operator. Karena perangkat kerasnya sangat mahal, sistem tersebut digunakan sebagai sistem multiuser yang sebenarnya, dengan banyak orang berinteraksi dengan sistem pada saat yang sama. Apa yang biasanya tidak dimiliki - tidak seperti workstation Unix saat ini - adalah monitor dan keyboard tetap. Alih-alih, mengeluarkan perintah ke mesin dan mengambil output dilakukan melalui saluran serial, menggunakan teletype terlebih dahulu, dan terminal CRT (tabung sinar katoda) kemudian. Teletypers - dari situlah "ttys" di Unix berasal - adalah mesin tik elektronik yang mengirim kunci yang ditekan melalui saluran serial ke host,

Yang ini didasarkan pada Linux.

Terminal adalah perangkat yang memberikan kemampuan input / output yang ditingkatkan melampaui apa yang dapat dicapai dengan hanya file, pipa, dan soket biasa. Fitur-fitur ini dirancang untuk memudahkan manusia berinteraksi dengan komputer, dan tidak berguna untuk program yang mencoba berbicara satu sama lain.


1

Biarkan saya mengambil celah di ini ... Saya akan menggunakan Unix dan Linux kurang lebih secara sinonim dalam hal ini. Jika saya merujuk pada sesuatu yang historis yang mendahului keberadaan Linux, saya biasanya akan menulis "Unix", dan jika saya berbicara tentang sesuatu yang lebih baru, atau sesuatu yang spesifik dengan rasa Linux dari Unix, saya biasanya akan menulis "Linux ".

Kulit

Satu-satunya hal dalam daftar Anda yang merupakan konsep diskrit yang tidak memiliki tumpang tindih dengan yang lain adalah 'shell'. Shell adalah program yang tujuannya adalah untuk berkomunikasi dengan pengguna dan menjalankan operasi sistem operasi atas nama mereka.

Kerang yang paling umum menggunakan teknik yang disebut 'baris perintah' yang terdiri dari mengirimkan pengguna semacam prompt, menunggu pengguna untuk mengetikkan perintah teks, dan kemudian melaksanakan perintah itu. Tetapi ada cangkang berbasis menu, dan bahkan cangkang grafis (seperti Windows File Explorer) meskipun tidak ada orang Unix yang menghargai diri sendiri yang akan menyebut hal semacam itu sebagai 'cangkang'.

Di Unix, jika seseorang menyebut sesuatu 'shell' mereka hampir pasti berarti beberapa bentuk antarmuka baris perintah seperti yang baru saja saya jelaskan. Dan sangat aneh di dunia Unix untuk menyebut sesuatu sebagai 'shell' jika tidak berkomunikasi dengan pengguna menggunakan model tty yang saya jelaskan lebih lanjut.

TTY

Ini membingungkan karena dapat merujuk pada beberapa hal yang berbeda.

Di Linux, ada semacam perangkat yang disebut 'tty'. Ini adalah perangkat abstrak yang diharapkan dapat digunakan untuk komunikasi dua arah dengan sesuatu yang merupakan pengguna, atau sedang mengambil input dari pengguna dengan cara tertentu. Terkadang perangkat abstrak itu dapat berhubungan langsung dengan beberapa perangkat fisik. Kadang-kadang itu mungkin sebuah program yang menghadirkan seseorang dengan jendela di mana komunikasi muncul dan di mana pengguna dapat mengetik.

Tetapi, alasan perangkat abstrak ini ada dan alasannya disebut 'tty' adalah bahwa 'tty' adalah kependekan dari 'teletype', yang merupakan perangkat fisik aktual yang memiliki printer yang dicetak pada kertas yang dikombinasikan dengan keyboard. Model perangkat abstrak 'tty' menyajikan untuk program yang menggunakannya pada dasarnya adalah bahwa ada teletype di ujung lainnya. Anda mengirimnya karakter dan karakter itu muncul di teletype. Saat Anda membaca karakter dari karakter tersebut, karakter tersebut mewakili kunci yang diketik pada keyboard.

Ttys berbasis kertas-printer yang lama dengan cepat digantikan dengan ttys video. Pada mereka, tentu saja, tidak ada gulungan kertas. Dan, pada kenyataannya, dimungkinkan untuk menimpa karakter apa pun di layar. Tetapi, alih-alih menghadirkan semacam antarmuka 'layar' abstrak untuk program, program sebaliknya diharapkan mengirim aliran karakter khusus yang disebut escape sequence yang menyelesaikan berbagai tugas. Biasanya ada hal abstrak yang disebut 'kursor' yang dapat dipindahkan di sekitar layar, dan setiap karakter yang dikirim akan menggantikan apa pun yang ada di kursor dan kursor akan memindahkan satu karakter lebih jauh. Seringkali Anda dapat mengubah warna karakter yang akan dicetak dengan urutan melarikan diri juga.

Ada 'glass ttys' yang tidak mengikuti model ini dan akibatnya ditangani dengan buruk di dunia Unix. Terminal video IBM 3270 termasuk dalam kategori ini.

Apa yang biasanya orang Linux / Unix sebut 'shell window' adalah emulasi dari tty kaca menggunakan antarmuka pengguna grafis. Secara internal, program yang berjalan di dalam shell window sedang berbicara dengan perangkat virtual tty yang kadang-kadang disebut pseudo-tty atau pseudo-terminal (alias pty).

Terminal

Terminal hanyalah tempat di mana komputer dan manusia seharusnya berinteraksi. Terminal mungkin sepenuhnya grafis dan tidak mengikuti model tty dengan cara apa pun, meskipun suatu program dapat menggunakan kemampuan mereka untuk meniru ini. Semua tyys fisik aktual (kaca atau lainnya) adalah terminal.

Menghibur

Konsol adalah jenis terminal khusus yang umumnya seharusnya dipasang dengan cara aman langsung ke perangkat keras yang digunakan sistem operasi.

Di Linux, konsol divirtualisasi dengan cara yang kecil yang memungkinkan Anda untuk menggunakan penekanan tombol khusus untuk beralih di antara konsol virtual. Tetapi virtualisasi ini dilakukan dengan perangkat keras yang nyata oleh perangkat lunak dalam kernel.

Ada cara untuk menggunakan Linux melalui apa yang disebut 'konsol serial' yang merupakan konsol yang terpasang ke komputer melalui port serial seperti port USB (atau, pada beberapa komputer yang sangat kecil dan / atau sangat tua, port RS-232 dari beberapa jenis) dan mengikuti model teletype lama dengan cara yang cukup ketat.

Sekali lagi, idenya adalah konsol ini terhubung secara fisik langsung ke komputer alih-alih melalui semacam jaringan yang memungkinkan siapa pun untuk terhubung.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.