Donanımı tanıyacak sistem nasıl yazılır? Örneğin; klavye.
Windows bu işi nasıl yapıyor basitçe anlayalım. Bir bilgisayarda parçalara güç veren şey nedir?
güç kaynağı. O gücü 12v kanalından alıp parçalar için gerekli olan 3v, 5V gibi değerlere hassas biçimde düşüren iskelet parca nedir?
anakart. Peki anakart üzerinde bulunan parçalar tamamen rastgele biçimde mi çalışıyor? Tabii ki hayır. Birbirleriyle iletişime geçip uyumlu olarak çalışıyorlar. Bunu sağlayan nedir?
denetleyiciler (controller). Peki bu denetleyiciler hangi durumda ne kadar veri aktaracak (0v - 5V veya 0-1 binary olarak da bilinir) sorusunun cevabı nasıl anlaşılır?
sürücü yardımıyla. Tebrikler şu anda donanım seviyesinde ilk aşama tamamlandı.
Peki bu donanım sürücüleri, anakart üzerinde nasıl tanımlama yapıyor? Yazılımların en alt seviyesi olan
BIOS yardımıyla. Kullanıcı ve donanım arasında iletişimi sağlayacak işletim sistemine sıra geldi. BIOS ile doğrudan iletişim kuran bir şey gerekiyor. Bunun adı
çekirdek (kernel). Windows NT altyapısını kullanıyor güncel sistemlerinde. Peki tüm bu iletişimi sağlamak için bazı şeyleri kalıcı depolama (disk) üzerinde tutması gerekmez mi? Evet bunlar
DLL kütüphaneleri ve diğer binary dosyalar (Windows klasöründe bulunan şeyler).
Bilgisayara oyuncu klavyesi bağladın ve güç geldiğini gördün. Ancak tuşlar hiçbir şekilde tepki vermiyor. Neden? Çünkü; klavye için yazılmış olan sürücünün, ilgili OS (işletim sistemi) içerisindeki DLL kütüphanelerini düzgün bicimde kullanması gerekir. Bu örnekte, kullanıcı etkileşimini sağlayan kütüphaneler için
kernel32.dll veya user32.dll örnek verilebilir.
İş bitti mi? Hayır. Şimdiye kadar her şey yolunda olsa bile tanıtılmış olan donanımın sabit diske kaydedilmesi gerekir. Ve kayıtlı bilgi de her defasında kontrol edilip otomatik olarak Windows tarafından görülmeli. Tam da bu amaç için
registry (kayıt defteri) denilen yapı kullanılıyor. Hklm > System > currentcontrolset dizini altında donanım bilgilerini tutar. Windows her açılışında burada tanımlanmış olan donanımı görür ve her defasında sürücü yüklenmesi gibi gereksinimi ortadan kaldırmış olur.
Basitce bir klavye tanıtma bu şekilde