DNS Çözümleme Süreci: Alan Adından IP Adresine Yolculuk

dns-cozumleme-sureci-93

Tarayıcıya example.com yazdığınızda bilgisayarınızın bu ismin hangi sunucuyu temsil ettiğini öğrenmesi gerekir. Çünkü ağ cihazları alan adlarıyla değil, 93.184.216.34 gibi IP adresleriyle iletişim kurar. DNS (Domain Name System), internetin telefon rehberi gibi çalışarak insanların hatırlayabildiği isimleri makinelerin kullandığı adreslere dönüştürür.

Devamı...

CDN Mimarisi: İçerik Neden En Yakın Sunucudan Gelir?

Bir web sitesini açtığınızda görsellerin, videoların ve JavaScript dosyalarının kıtalar arası uzun bir yolculuğa çıkmasını istemezsiniz. CDN, yani İçerik Dağıtım Ağı, popüler içerikleri dünyanın farklı bölgelerindeki sunuculara kopyalayarak kullanıcıya yakın bir noktadan teslim eder. Ancak buradaki “yakınlık” yalnızca kilometre hesabı değildir; ağ gecikmesi, yönlendirme kalitesi, sunucu yükü ve erişilebilirlik de seçimi etkiler.

cdn-mimarisi-icerik-74

Devamı...

Buffer Overflow’un Anatomisi: Bellek Sınırları Aşıldığında Ne Olur?

Bir programa “Şu kutuya en fazla 16 bayt koyabilirsin” dediğimizi, ardından 40 bayt veri gönderdiğimizi düşünelim. Güvenli bir dil taşan kısmı reddedebilir; C veya C++ gibi düşük seviyeli dillerdeyse veri komşu bellek alanlarına doğru ilerleyebilir. İşte buffer overflow, yani tampon taşması, ayrılan bellek sınırlarının dışına veri yazılmasıdır. Sonuç basit bir çökmeden program akışının değiştirilmesine kadar uzanabilir.

Devamı...

BGP Yönlendirme Mantığı: İnternetin Omurgasında Yollar Nasıl Seçilir?

bgp-yonlendirme-mantigi-35

Bir web sitesini açtığınızda paketleriniz hedefe dümdüz gitmez; farklı operatörlerin, veri merkezlerinin ve ülkelerin ağlarından geçebilir. Bu devasa trafik koreografisini yöneten temel protokollerden biri BGP’dir (Border Gateway Protocol). Ancak BGP, navigasyon uygulamaları gibi yalnızca en kısa yolu aramaz. Ekonomik anlaşmaları, ağ politikalarını ve operatör tercihlerini de hesaba katar. Kısacası internette yol seçmek biraz matematik, biraz diplomasi, biraz da “bu trafiği komşuma vermeyeyim” sanatıdır.

Devamı...

ASLR ve DEP: İşletim Sistemlerinin Exploit’lere Karşı Görünmez Zırhı

Bir programın belleğinde taşma hatası bulmak, saldırgan için eskiden kilidi açık bir kapı keşfetmeye benzeyebilirdi. Ancak modern işletim sistemleri artık bu kapının arkasına hareketli koridorlar ve yalnızca okunabilen odalar yerleştiriyor. ASLR adresleri tahmin edilemez hâle getirirken DEP veriyi kod olarak çalıştırmayı engelliyor. Bu mekanizmalar yazılım hatalarını ortadan kaldırmaz; hataların güvenilir biçimde istismar edilmesini zorlaştırır.

Devamı...

Tutarlı Hashleme: Sunucular Değişirken Veriyi Yerinde Tutma Sanatı

tutarli-hashleme-sunucular-46

Dağıtık bir sistemde yeni sunucu eklemek güzel haberdir; ta ki milyonlarca anahtarın başka sunuculara taşınması gerekene kadar! Tutarlı hashleme, yani consistent hashing, sunucu sayısı değiştiğinde verilerin yalnızca küçük bir bölümünü yeniden eşleyerek bu karmaşayı yönetir. Özellikle dağıtık önbellekler, veritabanları ve içerik dağıtım ağlarında sistemin büyümesini daha az sancılı hâle getirir.

Devamı...

Ters Kinematik: Robot Koluna Hedefi Göster, Açıları O Bulsun

Bir robot koluna “şu noktaya uzan” demek kolaydır; asıl mesele, motorların bunu gerçekleştirmek için kaç derece dönmesi gerektiğini bulmaktır. Ters kinematik, hedef konumdan yola çıkarak eklem açılarını hesaplayan yöntemlerin genel adıdır. Endüstriyel robotlardan oyun karakterlerine kadar uzanan bu konu, geometri ile programlamanın keyifli bir buluşmasıdır.

ters-kinematik-robot-91

Devamı...

Sürü Robotiği: Basit Kurallardan Kolektif Zekâya

Bir karınca tek başına yol planlama konusunda pek etkileyici görünmeyebilir; ancak binlerce karınca birlikte yiyeceğe giden verimli yollar oluşturabilir. Sürü robotiği de benzer bir fikirden beslenir: Çok sayıda görece basit robot, merkezi bir yönetici olmadan etkileşime girerek karmaşık görevleri tamamlar. İşin büyüsü, kolektif zekânın robotlara ayrı ayrı programlanmaması; yerel kuralların etkileşiminden kendiliğinden ortaya çıkmasıdır.

Devamı...

SLAM Temelleri: Robotlar Bilmedikleri Ortamların Haritasını Nasıl Çıkarır?

Bir robotu daha önce hiç görmediği bir odaya bıraktığımızı düşünelim. Elinde mimari plan, GPS veya duvarların nerede olduğunu söyleyen sihirli bir pusula yok. Buna rağmen hem nerede bulunduğunu anlaması hem de çevresinin haritasını çıkarması gerekiyor. İşte SLAM (Simultaneous Localization and Mapping), yani Eş Zamanlı Konumlandırma ve Haritalama, bu tavuk-yumurta problemini çözmeye çalışır.

slam-temelleri-robotlar-24

Devamı...

ROS Mimarisine Giriş: Düğümler, Konular ve Servislerle Robotları Konuşturmak

Bir robotun kamerası görüntü üretirken motorları hareket eder, sensörleri çevreyi ölçer ve karar mekanizması bütün bu verileri yorumlar. Tüm bileşenleri tek bir dev programda toplamak mümkün olsa da bakım yapmak kısa sürede kablo yumağı çözmeye dönüşür. ROS, yani Robot Operating System, robot yazılımını küçük ve bağımsız parçalara ayırarak bu karmaşayı yönetilebilir hâle getiren bir iletişim ve araçlar ekosistemidir.

Devamı...

Robotik Kolda Yörünge Planlama: Pürüzsüz Hareketin Matematiği

robotik-kolda-yorunge-60

Bir robot kolun kahveyi dökmeden fincanı taşıması, yalnızca başlangıç ve bitiş noktalarını bilmesiyle mümkün değildir. Motorların ne zaman hızlanacağı, nerede yavaşlayacağı ve eklemlerin birbiriyle nasıl uyum sağlayacağı da hesaplanmalıdır. İşte yörünge planlama, robotun A noktasından B noktasına giderken izleyeceği hareketi zamana bağlı ve pürüzsüz biçimde tasarlar.

Devamı...

Raft Konsensüs Algoritması: Dağıtık Sistemlerde Lider Nasıl Seçilir?

Bir dağıtık sistemde sunucuların aynı karar üzerinde anlaşmasını sağlamak, kalabalık bir arkadaş grubuyla nerede yemek yeneceğine karar vermeye benzer: herkes konuşursa gürültü çıkar, kimse konuşmazsa aç kalınır. Raft konsensüs algoritması bu sorunu anlaşılır bir liderlik modeliyle çözer. Sunuculardan biri lider olur, diğerleri onu takip eder ve lider ortadan kaybolursa sistem demokratik sayılabilecek yeni bir seçim başlatır.

Devamı...

Paxos’un Karmaşıklığı: Raft’tan Önce Konsensüsün Zor Yolu

Dağıtık sistemlerde birkaç sunucunun aynı gerçek üzerinde anlaşmasını sağlamak, dışarıdan bakıldığında basit bir oylama problemi gibi görünür. Fakat mesajlar gecikebilir, makineler çökebilir ve ağ ikiye bölünebilir. Paxos, bu kaos içinde güvenli biçimde karar vermeyi sağlayan en önemli konsensüs algoritmalarından biridir; aynı zamanda ünü kadar korkutucu notasyonuyla da geliştiricilerin rüyalarına girer.

Devamı...

MapReduce Mimarisi: Büyük Veriyi Böl, Paralel İşle ve Birleştir

Tek bir bilgisayarın günlerce uğraşacağı bir veri kümesini yüzlerce makineye paylaştırıp kısa sürede işlemek kulağa sihir gibi gelebilir. MapReduce, bu sihri iki temel adıma indirgeyen klasik bir programlama modelidir: Veriyi bağımsız parçalara ayır, parçaları paralel işle ve sonuçları anlamlı bir bütün hâline getir.

Devamı...

Kamera Robotun Gözü Olduğunda: Bilgisayarlı Görüyle Nesne Takibi

Bir robotun hareket eden topu izlemesi, raftaki kutuya yönelmesi veya sahibini takip etmesi dışarıdan sihirli görünebilir. Oysa perde arkasında kamera görüntülerini sayılara dönüştüren bilgisayarlı görü, hedefin konumunu tahmin eden algoritmalar ve motorlara komut veren kontrol mekanizmaları birlikte çalışır. Kamera robotun gözü ise nesne takip sistemi de dikkatini nereye yönelteceğine karar veren beynidir.

kamera-robotun-gozu-18

Devamı...

Kalman Filtresiyle Sensör Füzyonu: Gürültüden Güvenilir Konuma

Bir robotun GPS verisi bir sağa bir sola sıçrarken ivmeölçeri en küçük titreşimi bile hareket sanabilir. Peki telefonlar, dronlar ve otonom araçlar bu karmaşadan nasıl düzgün bir konum çıkarır? Cevap çoğu zaman Kalman filtresidir: Ölçümlere körü körüne inanmak yerine model ile sensörler arasında matematiksel bir güven pazarlığı yapan akıllı bir tahmin mekanizması.

Devamı...

İki Aşamalı Taahhüt (2PC): Dağıtık İşlemlerde Hep Birlikte, Ya Da Hiç

Bir para transferinin iki farklı veritabanına dokunduğunu düşünün: İlk sistem bakiyeyi azaltırken ikinci sistem alıcının hesabını artırıyor. Sistemlerden biri işlemi tamamlayıp diğeri çökerse para dijital boşlukta kaybolabilir! İki Aşamalı Taahhüt, yani Two-Phase Commit (2PC), dağıtık bir işlemin tüm katılımcılarda birlikte onaylanmasını veya tamamen geri alınmasını sağlayarak bu tehlikeyi azaltan klasik bir koordinasyon protokolüdür.

Devamı...

Encoder ve Step Motorlarla Hassas Hareket Kontrolü

Step motorlar komutları adım adım uygulayan disiplinli çalışanlara benzer; encoderlar ise işin gerçekten yapılıp yapılmadığını denetleyen dikkatli yöneticilerdir. Bu ikili doğru bir kontrol algoritmasıyla birleştirildiğinde CNC tezgâhlarından robot kollarına kadar pek çok sistemde hassas, tekrarlanabilir ve güvenilir hareket elde edilir. Gelin açık çevrim rahatlığından kapalı çevrim hassasiyetine uzanan bu mekanik yolculuğa çıkalım.

Devamı...

Drone Uçuş Kontrolcüsü Mantığı: PID’den Otonom Rotaya

drone-ucus-kontrolcusu-11

Bir drone’u havada tutmak, dört motoru çalıştırıp şans dilemekten çok daha fazlasıdır. Uçuş kontrolcüsü; sensörleri okuyan, aracın mevcut durumunu tahmin eden ve motorlara saniyede yüzlerce kez düzeltme komutu gönderen gerçek zamanlı bir bilgisayardır. Manuel dengeden GPS destekli otonom rotaya kadar bütün uçuş yetenekleri, iç içe çalışan kontrol döngülerine dayanır.

Devamı...