19 Eylül 2012 Çarşamba

Linux Yazılım Geliştirme Araçları Eğitimi


  Gömülü sistemler üzerinde çalışabilmek için önkoşul olarak pek çok uygulamayı tanımak zorundayız. Adeta işe başlamadan önce gerekli bütün alet-edevatı çantamıza koyup gerektiğinde hemen kullanabilmek üzere hazır tutmak gibi bir durumdur bu. O nedenle gömülü sistemlerde iyi ve disiplinli yazılım geliştirebilmek, geliştirdiğimiz uygulamayı analiz edebilmek ve performans testlerini yapabilmek için tanımamız gereken pek çok faydalı uygulamaya bu eğitimde yer vermekteyiz.

  Bu eğitim aynı zamanda "Embedded Linux Eğitimi" için giriş mahiyetindedir.

  • Linux İşletim Sistemine Genel Bakış
  • Geliştirme Ortamının Hazırlanması:
      autoconf, libtool, make, cmake,
      git, netbeans, meld ..
  • Dökümantasyon ve Manual Dosyaları:
      manpages, manpages-posix, manpages-posix-dev
      libstdc++6-4.4-doc
  • Derleyici ve Bağlayıcılar:
      derleme ve bağlama işlemleri   makefile ve CMakeList örnekleri
       make ve cmake kullanımı
  • Kütüphaneler:
      statik ve dinamik kütüphaneler
      kütüphane oluşturma ve kullanma
      addr2line, ar, nm, readelf, strip araçları
  • Karşılaştırma Araçları:
      cmp, diff, meld
  • IDE'ler: Eclipse, Netbeans
  • Kaynak Kod Takibi (source controllers):
      cvs, svn, perforce
      git, gitk, gitg, tig
      github, gitorious, bitbucket
  • C/C++ Kod Optimizasyonu:
      derleme ve çalışma zamanı optimizasyonları
      derleyici uyarı ve optimizasyon seçenekleri
      debug ve release modda derleme
  • Statik Kod Analizi:
      lint, cppcheck
  • Uygulama Profili Çıkarma ve Performans Analizi:
      valgrind, cachegrind, helgrind,
      perf, oprofile
  • Hata Ayıklama (debugging):
      gdb, gdbtui, gdbserver, remote debugging

9 Eylül 2012 Pazar

Embedded Linux Eğitimi


    Bu eğitim uygulama ağırlıklıdır. Birinci eğitimde elde edilen bilgiler üzerine yeni bilgiler eklenerek arm tabanlı BeagleBoard üzerinde kendi derleyeceğimiz kernel ve oluşturacağımız rootfs ile sıfırdan bir linux sistem nasıl ayağa kaldırılır gösterilmektedir. Öte yandan sanal ortamda kolayca çalışmaya imkan veren emülatörlerden Qemu da örnek kullanımla işlenmektedir.


  • Linux İşletim Sistemine Genel Bakış
  • Gömülü Sistemlerin Özellikleri ve Kullanım Alanları
  • BeagleBoard İncelenmesi
  • Derleme ve Bağlama İşlemleri (compiling and linking)
  • autotools, make, cmake
  • Kütüphaneler: glibc, uclibc, uclibc++
  • Çapraz Derleme (cross-compilation)
  • Toolchain İncelenmesi
  • Buildsystem Nedir ve Nasıl Kullanılır
  • Buildsystem İncelenmesi: BuildRoot, OpenEmbedded
  • Kernel Kaynak Kod Dizin/Modül Hiyerarşisi incelenmesi
  • Kernel Derleme
  • Root Filesystem Oluşturma
  • Linux Boot Sequence
  • Sanal Ortamda Kernel ve Rootfs Çalıştırma
  • BeagleBoard ile Kernel ve Rootfs Çalıştırma


Linux İşletim Sistemi



  Yazılım dünyasında "duvar"lardan kurtulmanın yolu açık kaynak kodlu işletim sistemleri kullanmayı gerektirir. Sınırsız bir dünyada kabiliyetlerinize göre kendi dünyanızı yaratmak mümkündür. Dünya genelinde yazılımcılar bu nedenden dolayı en çok linux işletim sistemini kullanmaktadırlar. Gerçekten de Linux'un sunduğu yüz binlerce uygulama sayesinde asıl amacınıza yönelirken çevresel gereksinimlerinizi elinizin altında hazır bulacaksınız.

  On yıla yakın bir süredir geliştirme ortamı olarak Linux kullanan ekibimiz sizi Linux dünyasına davet etmektedir.

  • İşletim Sistemlerine Genel Bakış
  • Linux Tarihçesi ve UNIX
  • Linux Dağıtımları ve Rolleri
  • Linux Masaüstü Ortamları
  • Linux Sistem Mimarisine Bakış
  • Debian Dağıtımına Genel Bakış
  • Dökümantasyon ve Yardım Dosyaları
  • Linux'ta Kullanılabilir Editörler
  • Dosya ve Dizin Yapısı, Yönetimi
  • Kullanıcı ve Grup Yönetimi
  • Kullanıcı Dizinleri ve Çevresel Değişkenler
  • Dosya Sistemi ve Erişim Hakları
  • Linux Kabukları ve Komut Satırı
  • Linux Kabuk Programlama Örnekleri
  • Paket Yönetimi Sistemi
  • Program Kurma, Silme ve Güncelleme
  • Kaynak Kod Derleme ve Kurma
  • Disk Bölümleme ve Dosya Sistemleri
  • Sistem Boot Süreci
  • Servisler ve Yönetimi
  • Sistem Kaynakları Monitor Etme
  • Loglama ve Log Dosyaları
  • Kullanılabilecek Çeşitli Programların Tanıtımı
  • Linux Altında Uygulama Geliştirme Örnekleri: C,C++,Java
  • Linux'ta Derleyiciler
  • Derleme ve Bağlama İşlemleri, Kütüphaneler
  • Linux Kernel Derleme ve Güncelleme

Temel C++ Programlama



    C++ programlama dili, C diline göre büyük bir dildir ve derleyicileri memnun etmek için pek çok kurala sıkı uyumluluk gerektirir. Öğrenme ve uygulamasının zorluğunu kabul etmekle beraber dile yeterince hakim olunduğunda bütün ihtiyaçlarınızı güçlü bir şekilde yerine getirebilme kabiliyetindedir. C++ dilindeki OOP özellikleriyle hızlı geliştirmeler yapabilir ve binlerce açık kaynak kodlu C++ kütüphanesinden faydalanıp istediğiniz programları geliştirebilirsiniz.

    Eğitimimizde C++ dilini büyük projeler için nasıl kullanabileceğinizi ve açık kaynak kodlu bir projeyi inceleyerek C++ kodlama tekniklerini de öğreniyor olacaksınız.

    C++ dili Google'da kabul edilen ve aktif olarak kullanılan üç dilden biridir.

  • ANSI C++ Temel Özellikleri
  • Veri Tipi, Statik/Otomatik Ömürlülük
  • Sınıflar ve Bilinirlik Alanı (Scope)
  • Operatörler
  • Koşul İşleçleri
  • Döngüler ve Switch Deyimi
  • Göstericiler (Pointers)
  • İşlevler I (Functions I)
  • C'den C++'a Geçiş
  • Veri Tipleri ve Kullanımı (Handling Data)
  • İşlevler II (Functions II)
  • Obje Yaratma ve Kullanımı
  • Dinamik Bellek Yönetimi
  • Kopyalama ve Atama Constructor Fonksiyonları
  • Türetme (Inheritance)
  • Streaming I/O
  • OOP Konsepti
  • Şablonlar (Templates)
  • C Dilinde kullanılan String'ler
  • C++ String Sınıfı ve Özellikleri
  • İstisnalar (Exceptions)
  • C++ Program Yapısı
  • C/C++ Kodlarını Birlikte Kullanma
  • C++ Kodlama Hatalarını Azaltma Yöntemleri
  • Çokbiçimlilik (Polymorphism)
  • Çoklu Türetme (Multiple Inheritance)
  • Operatör Yüklemesi (Operator Overloading)
  • Standart Şablon Kütüphanesi (STL)


Temel C Programlama Dili


    Dünyada en çok kullanlan programlama dili olan C'i alanında uzman bir ekipten öğrenmek ister miniz?  Sadece dili anlatmıyoruz, C dilini öğretirken programlama mantığını da vermeyi hedefliyoruz. Bunu yaparken de gerçek dünyadan açık kaynak kodlu uygulama ve kütüphanelerin incelenmesiyle C dilini yakından tanımanızı sağlıyoruz. Amacımız C'yi sadece öğretmek değil, C ile ihtiyaçlarınızı belirleyip programlayabilmenize yardımcı olmaktır.

  • Genel Kavramlar ve Terimler
  • C Dilinin Kullanım Alanları
  • Derleyiciler ve Derleme İşlemi
  • Temel Veri Türleri
  • Bildirim ve Tanımlama
  • Fonksiyonlar
  • Bilinirlik Alanı (scopes)
  • Operatörler
  • Koşul İşleçleri
  • Döngüler ve Switch Deyimi
  • Tür Dönüşümleri
  • Önişlemciler (preprocessor)
  • Diziler (arrays)
  • Göstericiler (pointers)
  • Dizi ve Gösterici Uygulamaları
  • Dinamik Bellek Yönetimi
  • Yapılar ve Birlikler (structures, unions)
  • Numaralandırma Tipi (enum)
  • Dosya Uygulamaları
  • Makrolar
  • Çok Boyutlu Diziler
  • Gösterici Göstericileri (pointer to pointers)
  • Fonksiyon Göstericileri
  • Makefile Örnek Uygulamaları