Watchdog Nedir ve Nasıl Çalışır?
Öncelikle, çevrimiçi ansiklopediye başvuralım:
Bazen bilgisayarın düzgün çalışması zamanlayıcısı (COP zamanlayıcısı) olarak da adlandırılan bir watchdog zamanlayıcısı (WDT veya kısaca watchdog), bilgisayar arızalarını tespit etmek ve bunlardan kurtarmak için kullanılan elektronik veya yazılımsal bir zamanlayıcıdır.[1] Watchdog zamanlayıcıları, geçici donanım arızalarının otomatik olarak düzeltilmesini kolaylaştırmak ve hatalı veya kötü amaçlı yazılımların sistem çalışmasını bozmasını önlemek için bilgisayarlarda yaygın olarak kullanılır.
[...]
Mikrodenetleyiciler genellikle entegre, çip üzerinde bir watchdog içerir. Diğer bilgisayarlarda watchdog, doğrudan CPU'ya bağlanan yakındaki bir çipte bulunabilir veya bilgisayarın kasasındaki harici bir genişletme kartına yerleştirilebilir.Benzer zamanlayıcılar, aralarında Keenetic Router'ların da bulunduğu gömülü elektroniklerin büyük çoğunluğunun elektronik devrelerinde bulunur. Amaçları, yalnızca cihaza fiziksel erişimle kurtarmanın mümkün olacağı bir kilitlenmeyi önlemektir. Bu, Router'ın herhangi bir anda kapatıp açmak için kolayca erişemeyeceğiniz bir yere kurulabileceği varsayımına dayanmaktadır.
Özünde bir watchdog zamanlayıcısı, uyuyup uyumadığınızdan emin olmak için periyodik olarak sorular soran, sınıfta yanınızda oturan bir sıra arkadaşı gibi düşünülebilir. Sıra arkadaşınız bir süre yanıt alamazsa, sizi uyandırmak için yandan dürtmeye başlar.
Uyanık kalmaya çalışarak zihninizde kendinize sorular sorabilirsiniz. O zaman bu bir 'yazılım' watchdog zamanlayıcısı olurdu. Ancak kendinize başka bir soru sorduktan sonra cevap vermeden uykuya dalarsanız, son anda kendinizi de uyandıramayacağınıza inanmak için ciddi nedenler vardır. Bu nedenle, bir watchdog zamanlayıcısı, kural olarak, sıra arkadaşı örneğinde olduğu gibi, kontrol edilen sisteme harici, ayrı bir bileşendir. Ve eğer dersteki bir sıra arkadaşı kendisi de uyuyakalabileceği için güvenilmez bir watchdog zamanlayıcısı ise, o zaman bu tür zamanlayıcıların donanım uygulamaları (basitlikleri nedeniyle) kontrol edilen sistemden çok daha güvenilir hale getirilir.
Keenetic konusuna dönecek olursak, içlerindeki watchdog zamanlayıcısı SoC (işlemci) mikroçipinin bir parçasıdır. Kullandığımız tüm MediaTek yonga setlerinde mevcuttur ve özellikle çekirdek düzeyinde çalışması için geliştiricilerimiz tarafından kapsamlı bir şekilde yamalanmıştır (çip üreticisinin referans watchdog'ları kullanıcı alanında olabilir ve yüksek yük altında düşük öncelik nedeniyle yanlış pozitifler verebilir). Sürekli olarak belirli bir sayıdan sıfıra doğru geri sayım yapar. Sıfıra ulaştığı anda, işlemciyi donanımsal olarak hemen yeniden başlatır. Router'ın aygıt yazılımı, periyodik olarak yeni bir referans noktası vererek zamanlayıcının sıfıra geri saymasını engellemeye çalışır. Bu nedenle, bazı varsayımlarla, aygıt yazılımı donarsa, zamanlayıcıya yeni bir referans noktası sağlamayı durdurduğu, sıfıra ulaştığı ve tüm sistemin yeniden başlatıldığı iddia edilebilir.
Varsayımlar gereklidir çünkü Router'ın yazılımı, bir derste otururkenki iç dünyanız gibi, birçok bileşenden oluşan çok karmaşık bir sistemdir. Ve eğer, örneğin, öğretmenden not almayı bırakır ama sıra arkadaşınıza cevap vermeye devam ederseniz, sıra arkadaşınız sizin uyuduğunuzu düşünmez. Benzer şekilde, watchdog zamanlayıcısı, örneğin DHCP istemcisi donmuş durumdaysa, Router'ın donmuş olduğunu düşünmez. Bu son derece düşük bir ihtimaldir, ancak yine de olabilir. Zamanlayıcıyla yalnızca sistemin temel işlevlerinden sorumlu olan aygıt yazılımı çekirdeği etkileşime girer. Bunlara trafik yönlendirme ve Wi-Fi dahildir.
Dolayısıyla, bir mucize eseri, Router'ı çekirdeğin watchdog zamanlayıcı sayacını sıfırlayamadığı bir duruma sokmayı başarırsanız (bu aynı zamanda Router'ın birincil görevlerini yerine getiremediği anlamına da gelir), yeniden başlatılarak bu durumdan çıkacağını güvenle söyleyebiliriz (donmadan yeniden başlatmaya kadar geçen süre 15 saniyeden fazla değildir). Ve eğer Router'ın tamamen donduğunu ve gücü kapatmak dışında hiçbir şeye yanıt vermediğini fark ederseniz, o zaman ne yazık ki, donanımın bozuk olduğundan şüphelenmeye daha meyilliyiz.
Diğer tüm durumlarda, diğer üreticilerin bazı Router'larında olduğu gibi, Keenetic Router'ları yeniden başlatmayı gereksiz görüyoruz. Bunun nedeni, kodumuza (ve test kapsamına) o kadar güveniyoruz ki kesin olarak şunu söyleyebiliriz: İnternet bağlantınızı kaybettiyseniz, bu tüm aygıt yazılımı bileşenlerinin bir kağıttan ev gibi çöktüğü anlamına gelmez. Bu sadece ISS'nizle bağlantınızı yeniden kurmanız gerektiği anlamına gelir. Aşırı durumlarda, İnternet'e eriştiğiniz USB modemi yeniden başlatmanız gerekebilir. Tüm bunlardan Ping Denetleyicisi bileşeni sorumludur.