Mengapa emulator terminal Linux tidak mendukung warna penuh?

12

Saya baru saja memperbarui terminal gnome saya untuk menggunakan 256 warna, namun saya agak bingung dengan alasan mengapa terminal emulator tidak dapat mendukung palet penuh yang disediakan oleh lingkungan desktop modern. Saya kira ada alasan teknis untuk ini, tetapi saya tidak menyadarinya.

Stefano Borini
sumber
2
"Terminal" agak ambigu ... Apakah Anda berbicara tentang " terminal virtual " ("VT") yang ditemukan di F1 hingga F6 pada banyak sistem Linux / Unix, "terminal emulator " seperti yang Anda gunakan di bawah X sehingga Anda tidak perlu harus menggunakan VT, atau maksud Anda "terminal" yang sebenarnya - kombo layar keyboard sederhana (tanpa atau hanya dengan daya pemrosesan minimal) yang terhubung ke komputer aktual melalui kabel?
Baard Kopperud
17
Baik terminal virtual dan terminal emulator meniru terminal mode lama dengan kemampuan standar (mis. Vt100). Ketika terminal-terminal ini ada, ingatan jauh lebih merupakan masalah; sehingga Anda dapat memilih antara piksel besar / huruf besar dan banyak warna, atau piksel kecil / huruf kecil dan beberapa warna - kombo akan mengambil sedikit memori yang disisihkan untuk mewakili titik-titik pada layar. Mereka dimaksudkan untuk program hanya teks, dan lebih penting untuk menyesuaikan banyak teks (banyak garis panjang) daripada banyak warna. Anda tidak perlu banyak warna untuk "kode" berbagai jenis teks (misalnya tebal / miring).
Baard Kopperud
3
@ BaardKopperud Itu seharusnya menjadi jawaban.
CVn
2
Ya saya sarankan Baard memposting komentar itu sebagai jawaban karena pada dasarnya itulah yang diminta OP. Namun pada akhirnya, seseorang dapat mengembangkan vt100 + (atau apa pun) dan mendukung apa pun yang mereka inginkan. Saya kira tidak ada yang melakukan itu karena jika Anda ingin grafik yang mengesankan Anda mungkin akan lebih tertarik menjalankannya di bawah X daripada di bawah terminal.
Bratchley
3
Seperti pertanyaan, bertanya "bagaimana saya ...?" bukannya "kenapa tidak ...?" lebih masuk akal bagi saya. Jawaban untuk "mengapa tidak?" bisa jadi "Anda gagal membuatnya melakukan itu."

Jawaban:

7

Tidak ada alasan teknis untuk itu tidak mungkin. Namun tidak banyak alasan mengapa ini tidak praktis. Dengan jumlah real-estate layar terbatas yang ditampilkan karakter di layar, Anda akan kesulitan menemukan lebih dari 256 warna simultan di layar.

Sejauh yang saya tahu klien terminal menggunakan ruang warna yang diindeks. Salah satu alasan untuk itu adalah bahwa dalam bentuknya yang paling sederhana, 256 warna yang diindeks dapat digambarkan dengan satu byte. Sementara ruang warna RGB membutuhkan dua atau tiga byte. Mengingat bagaimana warna dikodekan dalam aliran terminal, setiap warna setidaknya akan menjadi dua byte + markup pintar. Ini mungkin bukan masalah besar memori vise, tetapi ketika pada aliran jaringan waktu nyata itu mungkin bertambah pada latensi, terutama (koreksi saya jika saya salah) setiap karakter dikirim dalam paket itu sendiri.

Fredrik Andersson
sumber
2

Sebenarnya tidak ada alasan saat ini . Selain, mungkin, kode pelarian ditambahkan hanya beberapa tahun yang lalu untuk mendukung warna asli. Banyak terminal memiliki dukungan warna 24-bit sekarang, lihat https://gist.github.com/XVilka/8346728

Kevin Tindall
sumber