Mengapa UNIX / Linux menyediakan banyak terminal?

8

Pada tahun 1970-an kami memiliki terminal perangkat keras dengan antarmuka CUI (karakter antarmuka pengguna) untuk input / output.

Sekarang, kami memiliki emulator terminal ( Ctrl+ Alt+ Fn) di dunia Unix / Linux.

Di OS Ubuntu, saya melihat tujuh terminal emulator, di mana GUI menempati emulator terminal ke-7 ( Ctrl+ Alt+ F7).

Sebagai contoh, ini adalah emulator terminal ( Ctrl+ Alt+ F1) pertama saya

$ tty
/dev/tty0

Mengapa Unix / Linux menyediakan beberapa emulator terminal?

pertukaran berlebihan
sumber
8
Selalu ada permintaan untuk itu. Sebuah program bernama "layar" digunakan ketika hanya ada satu terminal yang tersedia.
VPfB
7
@vpfb Layar masih tersedia dan merupakan bagian integral dari alur kerja saya!
tpg2114
1
Saya pikir apa yang Anda tanyakan di sini bukanlah emulator terminal (yang merupakan program seperti xterm, rxvt, & c yang berjalan sebagai aplikasi grafis di bawah X), tetapi terminal mode teks yang tidak menjalankan grafik. Satu-satunya penggunaan yang benar-benar saya temukan untuk mereka (dan itu tidak selama beberapa tahun yang baik) adalah untuk men-debug hal-hal ketika X tidak berfungsi dengan benar. OTOH Saya melakukan sebagian besar pekerjaan saya yang sebenarnya di windows xterm, dan mungkin memiliki tiga hingga selusin atau lebih terbuka.
jamesqf
@ jamesqf mengapa Anda tidak memanggil ctrl + alt + f1 sebagai terminal emulator? Karena itu bukan terminal perangkat keras CUI yang kami miliki di tahun 1970-an
overexchange
2
@exexchange: Saya tidak memanggil mereka karena itu bukan terminologi yang digunakan oleh orang-orang yang akrab dengan mereka. Jika Anda mencari "emulator terminal linux", Anda akan mendapatkan banyak hasil, yang sebagian besar tidak ada hubungannya dengan konsol mode teks yang Anda dapatkan dengan Ctl-Alt-F [1-7].
jamesqf

Jawaban:

25

Mengapa UNIX / Linux menyediakan beberapa emulator terminal [di konsol]?

Untuk alasan yang sama emulator terminal GUI Anda kemungkinan mendukung tab (mis. Terminal GNOME), dan jika tidak (mis. rxvt), Maka untuk alasan yang sama meluncurkan instance aplikasi terminal GUI kedua tidak hanya menarik yang pertama ke latar depan dan keluar, memaksa Anda untuk menggunakan instance pertama.

Saya secara rutin menggunakan setidaknya 3 terminal windows dalam pekerjaan saya, dan seringkali lebih:

  1. Editor teks untuk sisi server dari sistem yang sedang saya kerjakan

  2. Editor teks untuk sisi klien dari sistem yang sama

  3. Jendela perintah untuk menjalankan server

Saya jarang membutuhkan terminal keempat untuk menjalankan program klien, karena biasanya berjalan di tempat lain (aplikasi web, aplikasi GUI asli, aplikasi seluler, dll.), Tetapi jika saya sedang mengembangkan klien CLI untuk aplikasi server saya, saya akan punya terminal terpisah juga terbuka untuk itu.

Di masa lalu, sebelum sudomenjadi populer, saya membuat rootterminal terbuka sepanjang waktu.

Saya jarang menggunakan kotak Unix / Linux secara interaktif di konsol tanpa GUI hari ini, tapi saya sering menjalankannya tanpa kepala dan mengaksesnya melalui SSH. Klien terminal SSH pilihan saya mendukung tab, yang dikonfigurasi seperti di atas.

Salah satu proyek hobi saya saat ini adalah saya menggunakan terminal kaca tua sekali -sekali, yang berarti saya tidak lagi memiliki banyak jendela terminal, jadi saya akhirnya belajar sedikit tentang GNUscreen , sebuah program yang tidak pernah saya gunakan sebelumnya, karena saya punya baik beberapa terminal konsol atau beberapa terminal GUI. Dan apa fungsinya screen? Di antara hal-hal lain, Anda dapat mengkonfigurasinya untuk memberi Anda beberapa terminal virtual pada satu layar, seperti halnya Linux dengan Ctrl- Alt- .Fx

Warren Young
sumber
10
Bit yang lebih baik tentang layar - selain memiliki beberapa terminal pada terminal konsol bodoh - adalah bahwa Anda dapat memutuskan koneksi, logout, masuk kembali, dan menyambung kembali ke sesi, dan proses (es) atau apa pun yang Anda lakukan dalam persyaratan layar teruskan.
ivanivan
Menambahkan pada apa yang dikatakan @ivanivan, orang lain dapat melihat sesi layar Anda dan banyak orang dapat melihatnya secara bersamaan. Ini seperti berbagi desktop konsol.
stanri
Catatan: ada beberapa alternatif yang tersedia untuk menggunakan superuser.com/q/423310
moooeeeep
18

Ini adalah fitur yang disediakan oleh hampir semua jika tidak semua Unix dan Unix suka berjalan pada perangkat keras x86. Menariknya, konsol virtual diperkenalkan pertama kali dalam Unix oleh Microsoft Xenix pada awal tahun delapan puluhan, dan juga tersedia dalam CP / M bersamaan.

Fitur ini kemudian diintegrasikan dalam AT&T SVR4 Unix, Solaris, dan dipinjam oleh BSDs dan Linux.

Mengapa UNIX / Linux menyediakan beberapa emulator terminal?

Ketika mereka pertama kali diperkenalkan, tidak ada lingkungan grafis yang tersedia untuk mesin yang menjalankan implementasi Unix ini. Sementara memiliki terminal fisik yang terhubung ke server Unix pusat melalui jalur RS232 adalah standar, menghubungkan beberapa terminal ke PC standar yang menjalankan Xenix adalah berlebihan jika tujuannya hanya untuk satu pengguna untuk menjalankan beberapa program interaktif secara bersamaan. Terminal virtual memberikan solusi yang elegan dan nyaman untuk masalah itu.

Implementasi Unix lainnya kemudian menyediakan fitur yang sama untuk memenuhi kebutuhan yang sama.

Ketika lingkungan grafis, terutama X11, menyebar, dapat melihat beberapa emulator terminal pada saat yang sama pada layar yang sama merupakan peningkatan yang signifikan. Fitur konsol virtual umumnya disimpan jika hanya karena masih nyaman untuk dapat beralih ke konsol jika lingkungan grafis beku atau disfungsional karena suatu alasan.

Perhatikan bahwa utilitas menyukai screendan tmuxdatang lebih lambat dari terminal virtual untuk menggeneralisasi fungsionalitas yang sama. Keuntungan mereka adalah mereka dapat digunakan tidak hanya pada konsol fisik lokal, tetapi juga pada sesi apa pun, baik lokal atau jarak jauh (misalnya telnet, ssh). Ketika digunakan pada konsol fisik, konsol virtual masih berguna karena fungsional dalam beberapa situasi di mana screen/ tmuxtidak bisa membantu, seperti jika X11 dibekukan, atau jika sebuah jendela telah menangkap fokus dan tidak melepaskannya.

Virtualisasi berbasis wadah seperti zona Solaris atau Linux LXC juga menyediakan metode untuk terhubung ke konsol wadah melalui zlogin -C zonedan lxc-console -t 0 -n containermasing - masing.

Jlliagre
sumber
4

Saya kira salah satu alasan bagus untuk memiliki emulator terminal tambahan adalah jika Anda melakukan sesuatu yang salah pada antarmuka grafis Anda dan itu menjadi tidak dapat digunakan, Anda dapat dengan cepat beralih ke emulator terminal dan memperbaiki semua masalah yang Anda hadapi dalam antarmuka grafis. Ini sebenarnya terjadi cukup sering ketika Anda membuat perubahan pada window manager Anda atau fitur lain dari antarmuka grafis. Saya kira itu juga akan berguna untuk memiliki beberapa terminal lagi, namun memiliki 6 antarmuka grafis utama tampaknya agak berlebihan.

Perbaiki juga saya jika saya salah, tetapi tidak bisakah menjalankan beberapa perintah sebagai pengguna yang berbeda dari satu emulator terminal tunggal?

pengguna166213
sumber
"jika Anda melakukan sesuatu yang salah" - yang menjelaskan mengapa ada sebuah konsol virtual, tidak mengapa ada beberapa (yaitu menjawab pertanyaan yang berbeda). "Tidak bisakah menjalankan beberapa perintah sebagai pengguna yang berbeda dari satu emulator terminal tunggal?" - ya, tetapi output mereka akan tercampur, dan menjalankan program kutukan akan sulit.
Radovan Garabík
4

Banyak pertanyaan lain yang sepertinya menjawab mengapa fitur itu diperkenalkan.

Namun, pertanyaan sebenarnya adalah:

Mengapa Unix / Linux menyediakan beberapa emulator terminal?

"Apakah", bukan "melakukan".

Jadi, dengan fokus pada waktu saat ini, berikut adalah beberapa alasan saat ini:

  • Mereka bisa berguna. Terkadang, alih-alih membuat jendela baru yang menutupi jendela-jendela lain di desktop, saya bisa langsung beralih ke terminal lain. Lalu, saya bisa mengubahnya kembali, jadi desktop adalah latar depan. Kadang-kadang (biasanya ketika ada beberapa jendela terbuka) ini mungkin lebih nyaman daripada menempatkan jendela terminal di latar belakang dan kemudian, kemudian, mencoba untuk membuat jendela yang sama datang ke latar depan (bukannya secara tidak sengaja memilih yang berbeda dari terminal windows yang ada di desktop grafis).

    Sebagai contoh, saya dapat mengingat bahwa Alt-Ctrl-F2 adalah editor teks yang melihat satu file teks (misalnya, dokumentasi), dan Alt-Ctrl-F3 digunakan untuk dengan cepat melihat file lain (misalnya, file konfigurasi), dan Alt-Ctrl-F4 digunakan untuk prompt perintah, sementara desktop grafis dapat dibagi antara penelusuran web, E-Mail, pemutar musik, dll.
  • Terminal windows dapat berguna untuk bekerja dengan komputer jika ada masalah dengan tampilan grafis. Bagi orang yang mungkin memiliki kebutuhan saat ini untuk menggunakan komputer (mungkin khusus) yang tidak memiliki kartu video grafis, fungsi ini mungkin penting. Ada juga kemungkinan kebutuhan masa depan (mungkin dengan sistem operasi penerus / keturunan) yang mungkin merupakan tambahan untuk apa pun kebutuhan saat ini mungkin ada.
    • Terminal teks ini cenderung menggunakan lebih sedikit sumber daya. Misalnya, mereka cenderung menggunakan lebih sedikit memori pada kartu grafis. Jadi, jika kartu grafis memiliki kerusakan fisik yang merusak fungsi memori video 3 dan 4 megabita, itu mungkin bahkan tidak mempengaruhi seseorang yang hanya menggunakan terminal teks klasik. Proses yang lebih sederhana, yang menggunakan lebih sedikit sumber daya, dapat membantu saat bekerja untuk melakukan pemulihan.
  • Kode sudah ada. Karena itu, mendukung mereka itu mudah.
  • Jumlah sumber daya untuk terminal yang tidak digunakan (sebelum masuk) sangat kecil. Bahkan sejumlah kecil memori dapat diklaim kembali dengan menyesuaikan / etc / ttys
  • Kode untuk mendukung beberapa terminal agak mirip dengan kode untuk mendukung I / O melalui koneksi serial. Pengembang sistem operasi cenderung menghargai itu banyak. Dengan kemajuan di mesin virtual, nilai menggunakan koneksi serial kurang kritis daripada dulu. Namun, beberapa pengembang kernel (sudah terbiasa dengan prosesnya) mungkin ingin menggunakan perangkat keras tersebut. Organisasi yang menggunakan perangkat keras lama juga dapat melihat manfaat karena tidak perlu mengubah perangkat keras.

Singkatnya, tidak ada banyak alasan untuk tidak mendukung ini. Ada beberapa manfaat yang dihargai beberapa orang, setidaknya beberapa kali, dan tidak banyak biaya.

Sebenarnya, menghapus dukungan untuk ini mungkin lebih banyak pekerjaan daripada hanya meninggalkan dukungan di sana. Meskipun menghapus dukungan mungkin sederhana, jika ada yang rusak, maka mengidentifikasi dan memperbaiki masalah mungkin sedikit menantang. Jadi, pengurangan jumlah upaya yang diperlukan (untuk mengembangkan versi berikutnya dari sistem operasi) adalah alasan lain untuk membiarkan begitu saja. Itu berarti fitur ini cenderung tetap tersedia.

TOOGAM
sumber
Memiliki perspektif sejarah seringkali bermanfaat. Anda memberi tahu Anda ingin fokus pada saat ini tetapi akhirnya menyimpulkan "Salah satu alasan mengapa Unix / Linux saat ini menyediakan beberapa emulator terminal adalah karena memang menyediakannya di tempat pertama ..."
jlliagre
Iya. Itu benar. Jika tidak, mungkin tidak hari ini. Tetapi karena Unix melakukannya, itu tetap menjadi alasan kuat mengapa hal itu terjadi. Sama sekali tidak maksud saya untuk meminimalkan kegunaan menjadi terbiasa dengan masa lalu. Kecenderungan alami saya adalah untuk fokus pada mengapa ditambahkan (dan dua draft pertama saya memiliki itu lebih detail), tetapi alasan utama saya untuk mencoba fokus pada saat ini adalah pertanyaan yang diajukan. Plus, jawaban lain menyebutkan masa lalu, dan saya mencoba membuat jawaban yang bermanfaat dengan menambahkan apa yang telah dinyatakan, alih-alih hanya menduplikasi apa yang sudah dikatakan di tempat lain di halaman.
TOOGAM
3

Yang pertama Anda tanyakan adalah fitur dari sebuah kernel bernama Linux. Bukan dari Unix secara umum, dan bukan Gnu.

Mengapa, Anda harus bertanya kepada penulis. Namun tebakan saya adalah bahwa hal itu memungkinkan admin perangkat yang tidak jaringan (di sini saya menyertakan RS232 sebagai jenis jaringan), untuk login dan melakukan beberapa pekerjaan admin, tanpa mengeluarkan pengguna lain.

ctrl-alt-delor
sumber
Ya kernel VT diatur oleh kode pengguna-tanah, dan ya ada beberapa Unix lain yang memilikinya. Namun itu bukan hal umum Unix.
ctrl-alt-delor