Terminal yetenekleri - Terminal capabilities

Bilgi işlem ve telekomünikasyonda, yetenekler bir terminal bir pure'da mevcut olanın üstünde ve ötesinde çeşitli terminal özellikleridir. tele-yazıcı, bu ana sistemler (ve bunlar üzerinde çalışan programlar) yararlanabilir. Bunlar (esas olarak) kontrol kodları ve kaçış kodları terminale gönderilebilir veya buradan alınabilir. Terminale gönderilen kaçış kodları, bir CRT terminal (ve yazılım terminal emülatörleri ) yapabilir, ancak bir teletypewriter bunu yapamaz; örneğin, terminalin imlecini ekrandaki konumlara hareket ettirmek, ekranın tamamını veya bir kısmını temizlemek ve kaydırmak, bağlı yazıcı cihazlarını açmak ve kapatmak, programlanabilir işlev tuşlarını programlamak, ekran renklerini ve özniteliklerini değiştirmek gibi (örn. ters video ) ve başlık dizelerini görüntüleme. Terminalden alınan kaçış kodları aşağıdaki gibi şeyleri ifade eder: fonksiyon tuşu, ok tuşu ve diğer özel anahtar (ev anahtarı, son anahtar, yardım anahtarı, PgUp tuşu, PgDn anahtarı, anahtar ekle, anahtarı sil ve benzeri) tuş vuruşları.[1][2]

Unix ve POSIX: termcap, terminfo, vd.

Unix ve diğerlerinde POSIX uyumlu sistemler POSIX terminal arayüzü Bu yetenekler, bir sistem yöneticisi tarafından yapılandırılan ve programlardan erişilen veritabanlarında kodlanmıştır. terminfo kütüphane (eski olanın yerini alan termcap kütüphane), bunun üzerine sırayla kütüphaneler inşa edilir. küfürler ve ncurses Uygulama programlarının sağlamak için terminal yeteneklerini kullandığı kitaplıklar metinsel kullanıcı arayüzleri pencereler, diyalog kutuları, düğmeler, etiketler, giriş alanları, menüler vb.[3][4] Amaç, bunun uygulama programlarının gerçek terminal özelliklerinden bağımsız olmasına izin vermesidir. Kodlarına herhangi bir kontrol kodu veya kaçış dizileri eklemelerine gerek yoktur ve bu nedenle çeşitli yeteneklere sahip bir dizi terminalde kullanımda sorun yaşamazlar.[5]

termcap

termcap (için "dönemInal şapkayetenekler ") kitaplığı BSD sistemleri için geliştirilmiştir. Dosyada depolanan bir veritabanını kullanır / etc / termcap. Bu veritabanı, her biri belirli bir terminalin yeteneklerini temsil eden bir dizi kayıttan oluşur (her biri dosyada bir veya daha fazla satırdan oluşur ve her satırın sonlarında ters eğik çizgi karakterleri ile birleştirilir) ve bunların her biri belirli bir terminalin yeteneklerini temsil eder. Kaydın alanları, iki nokta üst üste ile ayrılmış uçbirim türü adını veya adlarını ve ardından bir dizi yetenek içerir.[3][2] Yetenek alanlarının kendileri üç gruba ayrılır:

terminalin özellikleri
Bunlar, terminal ekranının sahip olduğu (nominal) satır ve sütun sayısı, çıktının bir satırın sonuna ulaştığında otomatik olarak sonraki satıra sarılıp sarılmaması vb. Gibi şeyleri içerir.[2]
terminale çıktı olarak gönderilen kontrol dizileri
Bunlar, bazı eylemleri gerçekleştirmesi için terminale gönderilen kontrol kodlarını ve kaçış dizilerini içerir (mutlaka bir görüntüleme eylemi olması gerekmez). En basitlerinden birine örnek, ekranı temizlemek için çıktı dizisidir; form besleme (ASCII FF) bazı uçbirim türlerindeki karakter, ancak örneğin kaçış dizisi olabilir ␛2J gerektiren bir terminalde ANSI kaçış dizileri.[6][2]
terminal tarafından girdi olarak gönderilen kontrol dizileri
Bunlar, terminalin ana bilgisayara çeşitli eylemleri ve olayları temsil etmek için gönderdiği kontrol kodlarını ve kaçış dizilerini içerir. fonksiyon tuşları ve ok tuşları basılmakta.[2]

terminfo

Terminfo ("dönemInal bilgirmation ") kitaplığı System V sistemleri için geliştirilmiştir. Bir dizinde birden çok dosyada saklanan ve çeşitli şekillerde (farklı Unices ve POSIX uyumlu sistemlerde) olabilen bir veritabanı kullanır. / usr / lib / terminfo, / usr / paylaş / terminfo, ya da / usr / paylaş / lib / terminfo.[5] (Konumu, farklı ülkelerde tek tip bile değil Linux dağıtımları.[7])

Termcap veritabanından farklı olarak, terminfo veritabanı, bir yardımcı program tarafından insan tarafından okunabilir bir kaynak dosya biçiminden oluşturulan makine tarafından okunabilir bir veritabanı olarak derlenir, tik. Başka bir yardımcı program tarafından makine tarafından okunabilir formdan tekrar insan tarafından okunabilir forma dönüştürülebilirler, infocmp.[8] Örneğin, "vt100" terminal tanımının insan tarafından okunabilir biçiminin çıktısını alma komutu şöyledir:[7]

infocmp vt100

Makine tarafından okunabilir bir formatın kullanılması, termcap kütüphanesi gibi sistemleri kullanan uygulama programlarında, bir kaydın alanlarını okumak için veritabanı içeriğini tekrar tekrar ayrıştırmanın gereksiz ek yükünden kaçınmaktı. Birden fazla dosyanın kullanılması, hedef terminal tipi için veritabanı kaydını bulmak için veritabanı içeriğini ayrıştırmanın benzer ek yükünden kaçınmaktı. Uçbirim türü isim indeksi, etkili bir şekilde, Unix / POSIX dosya sisteminin sıradan dizin yapısıdır. Başlangıçta Unix, birçok dosya içeren büyük dizinlerde ciddi performans sorunları yaşadı ve bu nedenle terminfo, dizin girişlerini ilk harfle bir dizi alt dizine bölen iki seviyeli bir yapı kullanıyor. Unix sistemlerinde kullanılan daha yeni dosya sistemi biçimleri bu tür sorunlardan çok fazla etkilenmez (çünkü disk üzerindeki dizin yapıları artık basit girdi dizileri değildir, ağaç veya karma tablolar halinde düzenlenmiştir) ve dolayısıyla bu tasarım öğesi modern terminfo uygulamalarında hala var olan, o zamandan beri ortadan kalktı.[8]

Terminal yeteneklerini kullanmak için yardımcı programlar

Unix sistemlerinde, tput komutu, sistemin veritabanında belirli bir yeteneği aramak ve bunu komutun standart çıktı (ki bu, muhtemelen, yetenek tarafından belirtilen işlevin gerçekleştirileceği terminaldir).[1] En basit işlemlerden biri ekranı temizlemektir. Bunun için çıktı sırasını depolayan veritabanı alanının adı açık, dolayısıyla komut argümanları tput ekranı temizlemek için program [1]

temizle

Diğer bir işlem, uçbirimi bilinen bir varsayılan duruma (karakter öznitelikleri, yazı tipleri, renkler vb.) Başlatmak veya sıfırlamaktır. Bunun için komutlar:[9]

tput init

ve

tput sıfırlama

Normalde tput komutu, tarafından belirtilen terminal türünü kullanır SÜRE Çevre değişkeni, Biri POSIX terminal arayüzünün ortam değişkenlerini kontrol etme. Ancak bu, zorlamak için geçersiz kılınabilir tput komuta bir komut satırı seçeneğiyle veritabanında farklı bir terminal türü aramak için.[1] Bu nedenle, örneğin, veritabanındaki "vt100" adlı terminal türüne uygun sıfırlama sırasını yayınlamak için (genellikle ARALIK VT100 terminal), ortam değişkenlerinde belirtilen terminal türünden bağımsız olarak, komut şu şekildedir:

tput -T vt100 sıfırlama

Referanslar

Ne neyi destekler

  1. ^ a b c d Afzal 2008, s. 419.
  2. ^ a b c d e Frisch 2002, s. 770.
  3. ^ a b Coffin 1991, s. 115.
  4. ^ Coffin 1991, s. 372.
  5. ^ a b Frisch 2002, s. 769.
  6. ^ Kumar 2004, s. 417.
  7. ^ a b Blum 2008, s. 31.
  8. ^ a b Raymond 2004, s. 144–145.
  9. ^ Winsor 2001, s. 244–245.

Kullanılan kaynaklar

  • Afzal Amir (2008). Sınırsız UNIX: başlangıç ​​yaklaşımı (5. baskı). Prentice Hall. ISBN  978-0-13-119449-6.CS1 bakimi: ref = harv (bağlantı)
  • Blum Richard (2008). Linux Komut Satırı ve Kabuk Komut Dosyası İncil. İncil Serisi. John Wiley and Sons. ISBN  978-0-470-25128-7.CS1 bakimi: ref = harv (bağlantı)
  • Coffin, Stephen (1991). UNIX system V release 4: tam referans. Osborne McGraw-Hill. ISBN  978-0-07-881653-6.CS1 bakimi: ref = harv (bağlantı)
  • Frisch, Æleen (2002). Temel sistem yönetimi. Özetle bir el kitabı (3. baskı). O'Reilly Media, Inc. ISBN  978-0-596-00343-2.CS1 bakimi: ref = harv (bağlantı)
  • Kumar, Sudhir (2004). İşletim Sistemi Ansiklopedisi. Anmol Yayınları PVT. LTD. ISBN  978-81-261-1792-5.CS1 bakimi: ref = harv (bağlantı)
  • Raymond, Eric S. (2004). Unix programlama sanatı. Addison-Wesley profesyonel hesaplama serisi. Addison-Wesley. ISBN  978-0-13-142901-7.CS1 bakimi: ref = harv (bağlantı)
  • Winsor, Janice (2001). Solaris 8 Gelişmiş Sistem Yöneticisi Kılavuzu (3. baskı). Prentice Hall PTR. ISBN  978-0-13-027703-9.CS1 bakimi: ref = harv (bağlantı)

daha fazla okuma

  • Strang, John; Mui, Linda; O'Reilly, Tim (1991). Termcap ve terminfo. Nutshell el kitabı (3. baskı). O'Reilly Media, Inc. ISBN  978-0-937175-22-4.CS1 bakimi: ref = harv (bağlantı)