Terminal yetenekleri - Terminal capabilities

Hesaplamada ve telekomünikasyonda, bir terminalin yetenekleri , ana sistemlerin (ve bunlar üzerinde çalışan programların) yararlanabileceği, salt bir teletip yazıcının sunduğu özelliklerin ötesinde ve ötesinde çeşitli terminal özellikleridir . Bunlar (esas olarak) terminale gönderilebilen veya terminalden alınabilen kontrol kodları ve kaçış kodlarından oluşur . Terminale gönderilen kaçış kodları, bir CRT terminalinin (ve yazılım terminal emülatörlerinin ) yapabildiği, ancak bir teletip yazıcının yapamadığı çeşitli işlevleri yerine getirir ; ö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 ( ters video gibi ) ve ekranı ayarlamak gibi başlık dizeleri. Terminalden alınan kaçış kodları, işlev tuşu , ok tuşu ve diğer özel tuşlar ( giriş tuşu , sonlandırma tuşu , yardım tuşu , PgUp tuşu , PgDn tuşu , ekleme tuşu , silme tuşu vb.) Tuş vuruşlarını belirtir .

Unix ve POSIX: termcap, terminfo, vd.

Unix ve POSIX terminal arabirimini destekleyen diğer POSIX uyumlu sistemlerde , bu yetenekler, bir sistem yöneticisi tarafından yapılandırılan ve programlardan terminfo kitaplığı aracılığıyla erişilen (eski termcap kitaplığının yerini alan ) veritabanlarında kodlanır ve bunlar da bunlar uygulama programlarının pencereler, diyalog kutuları, düğmeler, etiketler, giriş alanları, menüler ve benzeri ile metinsel kullanıcı arayüzleri sağlamak için terminal yeteneklerini kullandığı curses ve ncurses kütüphaneleri gibi yerleşik kütüphaneler . 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.

termcap

Termcap ( "için terim inal kap kütüphane yetenekleri") BSD sistemler için geliştirilmiştir. / Etc / termcap dosyasında saklanan bir veritabanı kullanır . 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, her satırın sonlarında ters eğik çizgi karakterleri ile birleştirilir ve bir sonraki satırda devam 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. Yetenek alanlarının kendileri üç gruba ayrılır:

terminalin özellikleri
Bunlar, terminalin 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ılmayacağı gibi şeyleri içerir.
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 birinin bir örneği, ekranı temizlemek için çıktı dizisidir; bu , bazı uçbirim türlerinde form besleme (ASCII FF ) karakteri olabilir, ancak ANSI kaçış dizileri␛2J gerektiren bir uçbirimdeki kaçış dizisi olabilir .
terminal tarafından girdi olarak gönderilen kontrol dizileri
Bunlar, işlev tuşları ve basılan ok tuşları gibi çeşitli eylemleri ve olayları temsil etmek için terminalin ana bilgisayara gönderdiği kontrol kodlarını ve kaçış dizilerini içerir .

terminfo

Terminfo'ya ( " terimi inal bilgi ım") kütüphane Sistem V sistemler için geliştirilmiştir. Bir dizindeki birden çok dosyada depolanan ve çeşitli şekillerde (farklı Unices ve POSIX uyumlu sistemlerde) / usr / lib / terminfo , / usr / share / terminfo veya hatta / usr / share / lib / terminfo olabilen bir veritabanı kullanır. . (Konumu, farklı Linux dağıtımlarında tek tip bile değildir .)

Termcap veritabanından farklı olarak, terminfo veritabanı, bir yardımcı program olan tic tarafından insan tarafından okunabilir bir kaynak dosya biçiminden oluşturulan makine tarafından okunabilir bir veritabanı olarak derlenir . Başka bir yardımcı program olan infocmp tarafından makine tarafından okunabilir biçimden tekrar insan tarafından okunabilir biçime dönüştürülebilirler . Örneğin, "vt100" terminal tanımının insan tarafından okunabilir biçimini çıkarma komutu şöyledir:

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 türü 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şıyordu ve bu nedenle terminfo, dizin girişlerini ilk harfle bir dizi alt dizine bölen iki seviyeli bir yapı kullanıyordu. 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 bu nedenle bu tasarım öğesinin gerekliliği , modern terminfo uygulamalarında hala var olan, o zamandan beri ortadan kalktı.

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ısına (muhtemelen, yetenek tarafından belirtilen işlevin gerçekleştirileceği uçbirime) çıkarmak için kullanılır. En basit işlemlerden biri ekranı temizlemektir. Bunun için çıktı sırasını depolayan veritabanı alanının adı açıktır , bu nedenle ekranı temizlemek için tput programına komut argümanları

tput clear

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:

tput init

ve

tput reset

Normalde tput komutu , POSIX uçbirim arayüzünün denetleyici ortam değişkenlerinden biri olan TERM ortam değişkeni tarafından belirtilen uçbirim tipini kullanır . Bununla birlikte, komuta bir komut satırı seçeneği ile tput'u veritabanında farklı bir terminal tipi aramaya zorlamak için bu geçersiz kılınabilir . Bu nedenle, örneğin, ortam değişkenlerinde belirtilen uçbirim türünden bağımsız olarak , veritabanında "vt100" adlı uçbirim türüne uygun sıfırlama sırasını (genellikle bir DEC VT100 uçbirimi) yayınlamak için komut şu şekildedir:

tput -T vt100 reset

Referanslar

Ne neyi destekler

Kullanılan kaynaklar

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

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 .