Windows Konsolu

Microsoft Windows'taki konsol uygulamalarına yönelik altyapı
(Windows Console sayfasından yönlendirildi)

Windows Konsolu, Microsoft Windows'daki konsol uygulamaları için altyapıdır. Bir Windows Konsolu örneğinin bir ekran arabelleği ve bir giriş arabelleği vardır. Konsol uygulamalarının bir pencere içinde veya donanım metin modunda (tüm ekranı kaplayacak şekilde) çalışmasına olanak tanır. Kullanıcı, Şablon:Keypress tuş kombinasyonunu kullanarak ikisi arasında geçiş yapabilir. Metin modu Windows Vista ve sonraki sürümlerde kullanılamaz. Ancak Windows 10'dan başlayarak yerel tam ekran modu kullanılabilir.

Windows Console
Geliştirici(ler)Microsoft
Programlama diliC++
İşletim sistemiMicrosoft Windows
PlatformIA-32, x86-64, ARM64
TürTerminal emulator
LisansMIT License
Resmî sitesidocs.microsoft.com/en-us/windows/console/
Kod deposugithub.com/microsoft/terminal/tree/main/src/host

Windows Konsolu örnekleri genellikle resim görüntülemesi gerekmeyen ancak renk kullanabilen uygulamalar için kullanılır. Örnekler arasında cmd.exe, Windows PowerShell, Far Manager ve Midnight Commander bulunur.

2019'da konsol ana bilgisayarı, Windows Terminal ile birlikte MIT Lisansı altında açık kaynaklı hale getirildi.[1]

Pencere ve tam ekran modları

değiştir
 
Windows PowerShell on Windows Vista
 
Midnight Commander using box-drawing characters

Windows'da bir konsol uygulaması iki modda çalışabilir.

Bir mod metni bir pencereye yerleştirir ve bir işletim sisteminin yazı tipi oluşturmasını kullanır. Bu modda, bir uygulamanın kullanıcıyla etkileşimi pencereleme sistemi tarafından kontrol edilir. Bu, xterm gibi X Pencere Sistemi uygulamalarına benzerdir.

İkincisi tam ekran modudur. Windows XP ve önceki sürümlerde, tam ekran konsolu bir donanım metin modu kullanır ve video bağdaştırıcısına bir raster yazı tipi yükler. Bu, bir metin sistemi konsoluna benzerdir. Bu erken tam ekran modu yalnızca VGA uyumlu metin modlarını destekler ve ona 80 sütun ve 28 satırlık maksimum karakter çözünürlüğü sağlar.[1] Bu mod Windows Vista'da kullanımdan kaldırıldı.[2] Bir Windows XP ekran sürücüsü yükleyerek bu sorunu aşmak mümkündü;[2] ancak Windows 8 ve sonraki sürümler bunları kabul etmiyor.[3] Windows 10 bir kez daha tam ekran moduna sahip ancak bu uygulama metin modu yerine yerel Windows oluşturma alt sistemini kullanıyor. Ekrana sığacak kadar çok sütun ve satıra sahip olabilir.[4]

Uygulamalar, Şablon:Keypress tuş kombinasyonu kullanılarak iki mod arasında geçiş yapacak şekilde yapılabilir.

Detaylar

değiştir

Giriş arabelleği, olayların (klavye, fare vb.) depolandığı bir kuyruktur. Çıkış arabelleği, karakterlerin nitelikleriyle birlikte depolandığı dikdörtgen bir ızgaradır. Bir konsol penceresinde, yalnızca biri belirli bir an için etkin (yani görüntülenen) olan birkaç çıkış arabelleği olabilir. Uygulamalar, hem üst düzey işlevleri (ReadConsole ve WriteConsole gibi) hem de alt düzey işlevleri (örneğin ReadConsoleInput ve WriteConsoleOutput) ortaya çıkaran Windows API aracılığıyla Windows Konsolu ile programatik olarak etkileşime girebilir.[1]

Kullanıcılar, renk paletini veya yazı tipini sistem genelinde veya uygulama düzeyinde değiştirebilir. Ancak, bir konsol uygulamasının her örneği, renk paletini veya yazı tipini anında değiştiremez.

Windows Konsolu uygulamaları, Windows'ta (özellikle Windows 9x'te) farklı görünmeseler bile MS-DOS uygulamalarından farklıdır. Windows Konsolu uygulamaları, tüm Windows API'sine erişebilir ve MS-DOS veya uyumlu işletim sistemlerinde çalışmaz. Ancak DOS uygulamaları Windows API'sine erişemez ve yalnızca Sanal DOS Makinesi (VDM) yardımıyla Windows'un 32 bit sürümlerinde çalışabilir.

Uygulamalar

değiştir

Windows 3.1 ve önceki sürümlerde konsollar için yerel destek yoktur. Çünkü bu sürümler yalnızca MS-DOS için grafiksel bir arayüzdür, daha önceki Windows sürümlerinde çalışan çoğu metin programı aslında bir pencerede çalışan MS-DOS programlarıydı. Uygulamaları Windows'a taşıma görevini basitleştirmek için, Visual C++'ın erken sürümlerine normal bir pencere içinde temel konsol işlevselliğini uygulayan bir kitaplık olan QuickWin sağlanır. Borland C++ için benzer bir kitaplık EasyWin olarak adlandırıldı.

Windows 9x

değiştir
 
Command.com running in a Windows console on Windows 95

Windows 9x desteği, Windows NT ile karşılaştırıldığında nispeten zayıftır çünkü konsol penceresi sistem sanal DOS makinesinde çalışır ve bu nedenle Win32 konsol uygulamasına klavye girişi, klavye kesintisini kancalayarak gerçek DOS uygulamaları için de kullanılan bir DOS VM'de çalışan conagent.exe tarafından ona yönlendirilmelidir. conagent.exe daha sonra Vcond'u (bir VxD'dir) çağırır. Vcond daha sonra klavye girişini Sistem VM'sine ve son olarak Win32 konsol uygulamasına iletmek zorundaydı. Performansın yanı sıra, bu uygulamadaki bir diğer sorun da DOS VM'sine yerel olan sürücülerin bir Win32 konsol uygulaması tarafından görülememesidir. Bu, kafa karışıklığına neden olabilir.

Windows 9x altında, ekran arabelleği, karakter hücresi başına iki baytla VGA metin arabelleğinin yapısını yansıtır: karakter kodu için bir bayt, öznitelikler için bir bayt (karakter OEM karakter kümesinde olmalı, öznitelik yüksek yoğunluklu arka plana sahip olmalı/yanıp sönmemelidir). Gerçek VGA metin modu kullanılırsa bu, işlemi önemli ölçüde hızlandırır.

Windows NT and Windows CE

değiştir
 
The Windows Subsystem for Linux running Bash on Windows 10
 
Cmd.exe running on Windows CE 3.0

Geleneksel olarak, İstemci/Sunucu Çalışma Zamanı Alt Sistemi (CSRSS), Windows NT işletim sistemi ailesinde konsol pencerelerini yönetmekten sorumluydu.[1] Windows 7'de CSRSS, yönetmek için her konsol penceresi için bir conhost.exe oluşturur. Windows 8 ve sonrasında, konsol uygulamaları conhost.exe işlemlerini doğrudan oluşturur. Bu değişikliğin hem güvenlik hem de kullanılabilirlik etkileri vardır. CSRSS son derece ayrıcalıklı bir güvenlik bağlamında çalışırken, her conhost.exe konsol uygulamasıyla aynı güvenlik bağlamında çalışır. Ayrıca, Windows 7'de bu değişiklik konsol pencerelerinin Aero Glass temasının özelliklerine sahip olmasını sağladı.[2]

Windows NT ve Windows CE'de, ekran arabelleği karakter hücresi başına dört bayt kullanır: karakter kodu için iki bayt, öznitelikler için iki bayt. Daha sonra karakter, Unicode'un (UCS-2) 16 bitlik bir alt kümesinde kodlanır.[3] Geriye dönük uyumluluk için, konsol API'leri iki sürümde mevcuttur: Unicode ve Unicode olmayan. API'lerin Unicode olmayan sürümleri, görüntülenen karakterlerin aralığını genişletmek için kod sayfası anahtarlamasını kullanabilir (ancak yalnızca konsol penceresi için TrueType yazı tipleri kullanılıyorsa, böylece kullanılabilir kod aralığı genişletilir). Hatta UTF-8 bile "kod sayfası 65001" olarak kullanılabilir[4] (yalnızca tam Unicode'un UCS-2 alt kümesinden görüntülenir [kaynak belirtilmeli]).

Windows 10 Ekim 2018 güncelleştirmesi itibarıyla, Windows Konsolu tam Unicode desteğine sahiptir.[5]

See also

değiştir

Şablon:Portal

Kaynakça

değiştir
değiştir

Şablon:Microsoft APIs Şablon:Microsoft FOSS Şablon:Terminal emulator Şablon:Windows Components