Tag Archives: TODO

Beagleboard için Kernel Derlemek (Cross-Compile)

www.kernel.org’dan 3.7.2’yi indirdim ve aşağıdaki adımları takip ettim.

http://gumstix.org/basic-cross-compilation.html

http://mtyndalluf.wordpress.com/2011/07/24/cross-compiling-the-linux-kernel-for-the-beagleboard/

Tagged

Online Elektronik Malzeme Siparişi

resistor

Benim sıklıkla alışveriş ettiğim siteler:

http://www.robotistan.com/
http://www.direnc.net/

Tagged

Beagleboard’u Elektronik Devreye Bağlamak

Beagleboard’u üzerindeki GPIO (General Purpose Input Output) portları sayesinde elektronik cihazlarınıza bağlayabilirsiniz. Ancak dikkat etmek gereken çok önemli bir nokta var. Beagleboard’un giriş-çıkışları 1,8V’tur.

Standart 3,3V veya 5V’luk bir devre elemanına bağlamadan önce seviye çevirici bir devre kullanmalısınız. Bunu yapmak için hazır devreler olsa da Türkiye’de bulmak çok kolay değil. Örneğin Beagleboard Trainer çok güzel bir karta benziyor. Ama şimdilik işimi görecek bir devreyi kendim yapmaya karar verdim.

Şunlardan yararlanacağım:
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
http://husstechlabs.com/support/tutorials/bi-directional-level-shifter

Tagged

Beagleboard’a Ubuntu 12.10 Yüklemek

http://www.brianhensley.net/2013/01/beagleboard-xm-how-to-install-ubuntu.html

Kernel modülü derleyebilmek için kernel’ın tüm kaynak kodlarına olmasa da header’larına ihtiyacım var: http://www.cyberciti.biz/tips/build-linux-kernel-module-against-installed-kernel-source-tree.html

Tagged

C’de Hafıza Yönetimi: Heap-Stack Konusu

heap-stack

Hafıza yönetimi bir işletim sisteminin temel işlevlerinden birisidir. Multi-tasking çalışan bütün işletim sistemlerinde her process kendisine ait bir hafıza alanında çalışır. Böylece (normal şartlarda) programların hafıza adresleri birbirine karışmaz. Yani, iki program … koduyla bir hafıza alanına erişmek istediğinde, gerçekte ikisi RAM üzerinde farklı alanlara erişir.

Bir program çalıştırılmak üzere hafızaya yüklendiğinde temel olarak üç hafıza bölgesi (segment) içinde organize edilir: text segmenti, stack segmenti ve heap segmenti.

  • Text segmenti: Derlenmiş programın kendisi tutulur. Programcının yazdığı kodlar derleyici tarafından işlemcinin anlayacağı şekilde makine koduna çevrilir ve binary olarak text segmentinde tutulur.
  • Heap segmenti: program çalışma esnasında malloc() veya calloc() gibi fonksiyonlarla hafızadan yer aldığında, heap segmentinden bir alan tahsis edilir. Heap’ten daha fazla alan alındıkça, heap yukarı doğru büyür.
  • Stack segment: Lokal değişkenleri tutmak ve fonksiyonlara argüman vererek çağırmak için kullanılır. Stack aşağı doğru büyür.
Tagged

Ubuntu’da Çekirdek Derlemek

İlk önce hangi çekirdeğe sahip olduğumuza bakarak başlayalım:

[email protected]:~$ cat /proc/version
Linux version 3.5.0-17-generic ([email protected]) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ) #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012

Veya:

[email protected]:~$ uname -a
Linux mustafa-VirtualBox 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Şimdi www.kernel.org’dan derlemek istediğimiz çekirdeğin kaynak kodlarını ve yamasını indirelim. Ben ilk aşamada başka uyum sorunları çıkmaması için şu an sahip olduğum versiyonu ve yamasını ndiriyorum.

Sıkıştırılmış dosyayı çalışacağım kolasöre kopyaladıktan sonra taşıdıktan açıyorum:

mkdir ~/Desktop/kernel
cd ~/Desktop/kernel
cp ~/Downloads/patch-3.5.7.bz2 ./
tar -xxvf linux-3.5.7.tar.bz2

İhtiyacım olacak paketleri kuruyorum:

apt-get install build-essential bin86 kernel-package libncurses5-dev links

Yamayı uyguluyorum:

cd linux-3.5.7/
cp ~/Downloads/linux-3.5.7.tar.bz2 ./
bzcat patch-3.5.7.bz2 | patch -p1

Derlemeye başlamadan önce konfigüre ediyorum. Konfigüre etmek için birden fazla seçenek var, benim favorim menuconfig. Açılacak ekranda çekirdeğe ilişkin tüm ayarlar yapılabiliyor. Kendi donanımınıza göre tercih yapabilirsiniz. İhtiyacınız olmayan donanım sürücülerini çıkarıp daha küçük bir çekirdek elde edebilirsiniz.

make menuconfig

Bilgisayarınızdaki cihazları öğrenmek için:

lspci
lsusb

Şimdi yapılan ayarları temizleyelim:

make-kpkg clean

Ve derlemeyi başlatalım:

make-kpkg kernel-image kernel_headers --initrd

 

Not: Derleme bilgisayarınızın hızına bağlı olarak birkaç saat alabilir, endişeye gerek yok!
Kaynak:

Tagged

Yüksek Ziyaretçi Sayısı için Sunucu ve WordPress Optimizasyonu

Gözbebeğimiz sitemizi 6 yıl kendi yazdığım PHP kodlarıyla çalıştıktan sonra WordPress’e geçirmemizle ve sosyal medyanın kullanımının artmasıyla birlikte sitede ziyaretçi sayısı patlamaları yaşıyoruz. Yıllardır işimizi gören sunucu ve ayarları artık yetmiyor. Site performansını artırmak için kullanacağım kaynakları burada topluyorum.

Apache

  1. http://wp.smashingmagazine.com/2012/09/12/secrets-high-traffic-wordpress-blogs/
  2. CDN
  3. http://www.taylankaraoglu.com/webde-yuksek-verim-ve-cache
  4. http://www.hopelessgeek.com/2006/03/21/optimizing-a-vps-for-getting-dugg/
  5. http://www.garron.me/go2linux/how-benchmark-stress-your-apache-nginx-or-iis-server.html

Burada Apache ve ngnix‘in birlikte kullanımı anlatılmış. ngnix ön tarafta istemciye cevap verirken, Apache arka tarafta PHP vs dosyalarını işliyor. ngnix 80, Apache 8080 portunu kullanıyor. ngnix Apache’ye proxy olarak hizmet ediyor. Yüksek hızıyla bilinen nginx, yüksek gücüle bilinen Apache’yle birleştirilmiş oluyor. Güzel, ama çok baş ağrıtır mı acaba? https://www.digitalocean.com/community/articles/how-to-configure-nginx-as-a-front-end-proxy-for-apache

 

PHP

  1. http://blog.mustafakirimli.com/alternative-php-cache-apc-kurulum-ve-kullanimi/1600
  2. http://www.if-not-true-then-false.com/2012/php-apc-configuration-and-usage-tips-and-tricks/4/

 

MySQL

  1. http://www.webdevstuff.com/100/optimizing-mysql-configuration-directives.html
  2. http://www.mysqlperformanceblog.com/2006/09/06/slow-query-log-analyzes-tools/

WordPress

  1. http://codex.wordpress.org/WordPress_Optimization/WordPress_Performance
  2. http://codex.wordpress.org/High_Traffic_Tips_For_WordPress
  3. http://www.themeskingdom.com/20-tips-for-wordpress-optimization/
  4. http://wp.smashingmagazine.com/2011/12/07/10-tips-optimize-wordpress-theme/
  5. http://wordpress.org/extend/plugins/wp-dbmanager/
  6. http://wordpress.org/extend/plugins/debug-queries/

 

Sonuç

Şu ayarlar en mükemmel seçenek olmayabilir ama sayfanın performansı beni memnun edecek kadar iyi:

  • APC
  • W3TC (Page Cache: DiskEnhanced, DB Cache: DiskEnhanced, Object Cache: disabled, Browser Cache: disabled, Feed Cache: disabled)
Tagged

Vim Komutları

Bi türlü ezberleyemediğim vim komutlarını burada toplayacağım.

Hatırlamak için şimdiden bu sayfayı kaydedeyim.

Tagged