Klavyede bir tuşa bastığımızda, bastığımız harfin ekranda neredeyse anında belirdiğini görürüz. Bu kadar hızlı gerçekleştiği için sürecin tek bir işlemden ibaret olduğunu düşünebiliriz.

Oysa fiziksel olarak bir tuşa basmamızdan ekranda karakteri görmemize kadar geçen sürede, donanım ve yazılım arasında ilerleyen bir veri zinciri çalışır.

Klavyenin içindeki mikrodenetleyici tuşu algılar, bilgisayar bu bilgiyi USB üzerinden alır, Windows girdiyi işler, klavye düzenini ve modifier tuşlarının durumunu değerlendirir ve sonunda karakter aktif uygulamaya ulaştırılır.

Peki bütün bunlar nasıl gerçekleşiyor?

1. Klavye Önce Hangi Tuşa Basıldığını Algılıyor

Modern klavyelerin içinde bir mikrodenetleyici bulunur. Bu mikrodenetleyici, klavyedeki tuşları doğrudan tek tek kontrol etmek yerine satır ve sütunlardan oluşan bir matris devresini sürekli olarak tarar.

Bir tuşa bastığınızda ilgili satır ile sütun arasındaki elektriksel bağlantı tamamlanır.

Mikrodenetleyici bu değişikliği algılar ve hangi fiziksel tuşun tetiklendiğini belirler.

Ancak burada önemli bir ayrıntı vardır:

Klavye henüz hangi harfin yazılacağını belirlemez.

Klavyenin temel görevi, fiziksel olarak hangi tuşun basıldığını bilgisayara bildirmektir.

2. Klavye Bilgisayara Harfi Değil, Tuş Bilgisini Gönderiyor

Tuş algılandıktan sonra klavye bu bilgiyi standart bir HID (Human Interface Device) raporu içerisinde bilgisayara gönderir.

Bu rapor, basılan fiziksel tuşla ilgili bilgiyi taşır.

Dolayısıyla klavyenin bilgisayara gönderdiği bilgi doğrudan:

“E harfi yaz.”

şeklinde değildir.

Daha temel seviyede:

“Şu fiziksel tuş tetiklendi.”

bilgisini iletir.

Bu ayrım önemlidir. Çünkü aynı fiziksel tuş, kullanılan klavye düzenine veya modifier tuşlarının durumuna bağlı olarak farklı karakterlerin oluşmasına neden olabilir.

3. Veri USB Üzerinden Bilgisayara Ulaşıyor

Oluşturulan HID raporu USB bağlantısı üzerinden bilgisayara aktarılır.

Bu iletişim belirli bir sorgulama sıklığıyla gerçekleşir. Modern klavyeler sistemle çok yüksek sıklıkta haberleşebildiği için bastığımız tuştan kaynaklanan bilgi çok kısa sürede bilgisayara ulaşır.

Kullanıcı açısından baktığımızda burada yalnızca bir tuşa basılmıştır.

Bilgisayar açısından ise artık işin ikinci aşaması başlamıştır:

Fiziksel hareket, dijital bir giriş verisine dönüştürülmüştür.

4. Windows Bu Veriyi İşliyor

Sinyal bilgisayara ulaştığında Windows’un giriş sistemi ve ilgili HID sürücüleri devreye girer.

Bu katmanlar klavyeden gelen veriyi işletim sisteminin anlayabileceği sistem olaylarına dönüştürür.

Böylece fiziksel olarak yaptığımız bir hareket, yazılım dünyasında işlenebilir bir mesaja dönüşür.

Windows artık hangi tuşun basıldığını biliyordur.

Ancak henüz ekranda hangi karakterin gösterileceğine karar verilmiş değildir.

5. WM_KEYDOWN: Windows Tuşa Basıldığını Bildiriyor

Windows, tuşa basılmasıyla birlikte WM_KEYDOWN mesajını oluşturur.

Bu mesaj sanal tuş kodunu taşır ve işletim sisteminin fiziksel klavye bilgisini standart bir tuş tanımına dönüştürmesini sağlar.

Böylece uygulamanın klavyenin markasını veya fiziksel yapısını bilmesine gerek kalmaz.

İşletim sistemi, klavyeden gelen fiziksel girdiyi daha genel ve standart bir yapıya dönüştürerek uygulamaların kullanımına sunar.

Bu noktada zincir artık donanımdan işletim sistemi katmanına geçmiştir.

6. Peki “A” mı, “a” mı Yazılacağına Kim Karar Veriyor?

Şimdi kritik aşamalardan biri geliyor.

İşletim sistemi, gelen tuş bilgisini doğrudan bir karakter olarak kabul etmez. Öncelikle mevcut klavye düzenini ve Shift veya Caps Lock gibi tuşların durumunu değerlendirir.

Örneğin aynı fiziksel tuşun büyük veya küçük karakter üretmesi bu aşamadaki değerlendirmelere bağlıdır.

Ayrıca seçili klavye dili ve düzeni de hangi karakterin üretileceğini etkiler.

Yani klavyenin fiziksel olarak gönderdiği bilgi ile ekranda gördüğümüz karakter arasında işletim sisteminin gerçekleştirdiği önemli bir dönüşüm vardır.

Basitçe zinciri şöyle düşünebiliriz:

Fiziksel tuş → Tuş kodu → İşletim sistemi olayı → Klavye düzeni + Shift/Caps Lock → Karakter

7. Karakter Nereye Gönderiliyor?

Windows karakter bilgisini oluşturduktan sonra bu mesaj doğrudan bütün açık uygulamalara gönderilmez.

Burada aktif pencere kavramı devreye girer.

O anda klavye odağına sahip olan uygulamanın mesaj kuyruğu hedeflenir.

Örneğin bir metin editöründe yazı yazıyorsanız, klavyeden gelen karakter mesajları o uygulamaya ulaşır.

Arka planda çalışan diğer pencereler aynı karakteri alıp ekrana yazmaz.

Bu sayede klavyeden gelen giriş, kullanıcının o anda etkileşimde olduğu uygulamaya yönlendirilmiş olur.

8. Son Durak: Karakter Ekranda Görünüyor

Aktif uygulama kendisine gelen karakter mesajını işler.

Windows’un grafik altyapısından yararlanarak metni kendi penceresinin görüntüsüne dahil eder.

Ve sonunda bizim gördüğümüz şey ortaya çıkar:

İmlecin yanında yeni bir karakter.

Kullanıcı açısından bakıldığında bütün süreç tek bir anda gerçekleşmiş gibi görünür.

Oysa fiziksel tuşa dokunduğumuz andan karakterin ekranda görünmesine kadar:

  1. Klavye tuşu algıladı.
  2. Mikrodenetleyici matris üzerinden tuşu doğruladı.
  3. HID raporu oluşturuldu.
  4. Veri bilgisayara iletildi.
  5. Windows giriş sistemi veriyi işledi.
  6. Tuş basma olayı oluşturuldu.
  7. Klavye düzeni ve modifier durumları değerlendirildi.
  8. Karakter mesajı aktif uygulamaya gönderildi.
  9. Uygulama karakteri kendi görüntüsüne dahil etti.

Bütün bu zincir milisaniyeler içerisinde tamamlanır.

Bir Harfin Arkasında Birden Fazla Katman Var

Klavyede bir tuşa basmak günlük hayatımızda yapabileceğimiz en basit bilgisayar işlemlerinden biri gibi görünür.

Fakat aslında fiziksel bir hareketin ekranda anlamlı bir karaktere dönüşmesi için birden fazla donanım ve yazılım katmanının birlikte çalışması gerekir.

Üstelik bu zincirin her katmanının farklı bir görevi vardır.

Klavye, fiziksel tuşun tetiklendiğini algılar.

HID iletişimi, bu bilgiyi bilgisayara taşır.

Windows giriş sistemi, donanımdan gelen veriyi işletim sistemi seviyesinde anlamlandırır.

Klavye düzeni ve modifier durumları, hangi karakterin ortaya çıkacağını belirler.

Aktif uygulama ise kendisine ulaşan karakteri işleyerek ekranda görüntüler.

Sonuç olarak ekranda yalnızca tek bir harf görürüz. Ancak o harfin arkasında, donanımdan yazılıma uzanan kısa fakat oldukça düzenli bir veri yolculuğu vardır.

Bir Sonraki Adım: İşlemci Bu Kadar İşi Nasıl Yönetiyor?

Klavyeden gelen bir girdinin uygulamaya nasıl ulaştığını artık biliyoruz.

Fakat bu kez daha büyük bir soru ortaya çıkıyor:

İşletim sistemi, klavyeden gelen girdilerle birlikte açık uygulamaları ve arka planda çalışan onlarca işlemi işlemcinin çekirdekleri üzerinde nasıl yönetiyor?

Çünkü bilgisayar aynı anda yalnızca klavyeden gelen tek bir girdiyi işlemekle kalmıyor.

Arka planda çok sayıda süreç ve iş parçacığı çalışmaya devam ediyor.

Bir sonraki aşamada işlemci, süreçler, iş parçacıkları ve zamanlayıcının bu karmaşık trafiği nasıl yönettiğine bakacağız.

By mgm

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir