Bilgisayar Mühendisi Perspektifinden PC Boot Detayları

WARNING! READER DISCRETION IS ADVISED.. :)

Nasıl başlasam, nereden başlasam bilemedim. Öylece balıklama dalıyorum konuya:

Bilgisayarınızın güç düğmesine bastığınız andan itibaren ne gibi işlemler sonucunda Windows’unuzu ya da Linux dağıtımınızın kullanabilir olduğunuzu hiç düşündünüz mü? Bu konudaki bilgilerimiz genelde hep şu şekildedir: BIOS devreye girer, Power-On-Self-Test (POST) gerçekleştirilir, açılış cihazı (Boot Device) üzerinden işletim sistemi yüklenmeye başlar ve yükleme sonrasında bilgisayarınız artık kullanılabilir durumdadır. Peki bir bilgisayar mühendisi ya da sistem programcısı perspektifinden bakarsak bu olayların detayları nelerdir? Özellikle POST adımları tamamlandıktan sonra BIOS nasıl oluyor da işletim sistemini yüklemeye başlıyor? İşlemci üzerinde gerçekleşen şeyler neler?.. Adım adım PC Boot işlemini mercek altına alalım:
Continue reading

Bir Şehirler Arası Bisiklet Yolculuğu

Dün akşam nereden estiyse Trabzon’dan Beşikdüzü’ne bisikletle dönmeye karar verdim. Bir arkadaşımın bisikletini aldım, sırt çantamı ona bıraktım ve yola koyuldum. Bu yazıda, yolculuk sırasında karşılaştığım şeyleri ve edindiğim tecrüberlerimi anlatacağım; zira bu yolculuk benim ilk şehirler arası bisiklet yolculuğum oldu…
Continue reading

Motorola 680x Emülatörü

Mikroişlemciler ve Mikroişlemciler Laboratuarı derslerini aldığım senelerde, saygıdeğer Prof. Dr. Rıfat YAZICI hocamın (kendisi uzun yıllar sonra Karadeniz Teknik Üniversitesi’nden emekli olmuştur, şu an İstanbul Ticaret Üniversitesi’nde görev almaktadır) referans aldığı mikroişlemci Motorola’nın 6802 modeliydi. Gerek Mikroişlemciler dersi olsun gerek laboratuar olsun, bu işlemciyi kullanarak yazdığımız programları test etmek pek mümkün değildi. Programları ezbere yazıyor, kağıt üzerinde adım adım işleyişi takip ediyoduk. Laboratuarda durum birazcık farklıydı, ama, nihayetinde günümüz debuggerlarında çalışabildiğimiz gibi çalışamıyorduk, hem program üzerinde hem deney seti üzerinde. İnternette bir miktar araştırdıktan sonra bu 6800 işlemcisi için bir emülatör buldum. Program konsol üzerinde çalışıyordu ve parametrik yapısı gereği kullanması biraz zordu. Kullanmalarını tavsiye ettiğim arkadaşlardan da olumlu geri dönüşler alamıyordum, çünkü emülatörün işleyişi, kullanımı pek de anlaşılır şekilde açık değildi. Ben, her iki dersi de bir takılma takılma yaşamadan geçtim fakat kafamda soru işareti oluşmasını engelleyemedim :) Arkamızdan gelecek olan her arkadaşımız bu sıkıntıları yaşayacak ve doğru düzgün kullanabileceği bir program bulamayacaktı. Ve beklenen florasan yandı: Hasan; bu emülatörü VCL ortamında sen neden yazmıyorsun?
Continue reading

String İçindeki Bir Alt String’i Kırpmak

Stackoverflow sitesinde rastladığım bir soru var. Kişi bir string verisi içindeki herhangi bir karakteri ya da alt string i nasıl kırpabileceğini sormuş. Topluluktaki bazı kişilerle ufak-tefek çatışmalar, tartışmalar olsa da istenilen işlemi genelleştirilmiş bir şekilde şu şekilde gerçekleştirebilirsiniz:
Continue reading

Sleep() API Hakkında Doğru Bilinen Yanlışlar ve Yanlış Bilinen Doğrular

Yapacak tonlarca işim, tamamlamam gereken o kadar yazı serisi varken nedense böyle bir konuyu yazıya dökmek aklıma geldi. Aslında biraz da geçen gün karşılaştığım bir blog yazısı etkili oldu bu konuda. Direkt olarak Sleep API ile ilgili değildi ama kullanılan kod içerisinde hatalara sebep olabilecek bir Sleep API kullanımı gördüğümden “Sleep ile ilgili bir şeyler yazmalıyım!..” fikri uyandı birden bire…

Continue reading

TThreadPool Günlükleri – Vol I : TParallelizableProperties

Son iki yazımda bahsettiğim üzere bir süredir YSA konusu üzerinde bazı çalışmalar yapıyorum. Hatta dün yayınladığım yazıda, üzerinde çalıştığım ağ ile ilgili bazı kısımların paralelleştirilebileceği hakkında birkaç kelam etmiştim. Bugün bu paralelleştirme çalışmaları üzerine mantığını oturtmaya ve işleyişini geliştirmeye yavaş yavaş başladım. İşte ilk meyveler:

Continue reading

İleri Beslemeli Yapay Sinir Ağları ve Geri Yayılım Algoritması – TNeuron , TLayer , TNeuralNetwork

Bir önceki yazıda İleri Beslemeli Yapay Sinir Ağları ve Geri Yayılım Algoritması konusundan bahsetmiştim. Şimdi ise bu sinir ağının kodlarını yayınlayalım. Elimden geldiğince açık ve anlaşılır bir şekilde kodlama yapmaya çalıştım. Gerek işleyiş, gerek isimlendirmeler olsun anlaşılmayan ya da kafanıza takılan herhangi bir soru işareti hakkında benimle rahatlıkla iletişime geçebilirsiniz…

Here we go!!

Continue reading

İleri Beslemeli Yapay Sinir Ağları ve Geri Yayılım Algoritması – İnceleme

Geçtiğimiz senelerde karşı karşıya olduğum kredi sınırlaması sorunlarım nedeniyle bu sene ilk defa alabildiğim Yapay Zekâ dersinde üzerinde çalıştığımız proje ile ilgili yazmayı planladığım bazı şeyler vardı. Uzunca bir süre taslak olarak kalan bu yazıyı tamamlayıp yayınlamak bugüne nasipmiş…

Projemiz, yapay sinir ağları ve morfleme tekniklerinden faydalanarak insan yüzü fotoğraflarından cinsiyet ve yaş grubu belirlenmesiydi. Bu yazıda, proje için mercek altına aldığım, en basit mimari yaklaşımla İleri Beslemeli Yapay Sinir Ağları’ndan ve bu ağın eğitiminde kullanılan Geri Yayılım Algoritması’ndan bahsedeceğim. Vakit bulduğum en yakın zamanda da bu iki konunun kodlarını yayınlayacağım.

Genel olarak “Yapay Sinir Ağları’ndan detaylı olarak bahsetmeyi planlamıyorum. Girişler, ağırlıklar, aktivasyon hesaplama, aktivasyon eşik fonksiyonları ve eğitim gibi konulara bir çok YSA  makalesinde rastlanılabilir. Bazı terimlerden yeri geldiğince kısaca bahsedeceğim elbette. Continue reading