Linux Eğitimleri

Linux Sistem Programlama Eğitimi

Linux Sistem Programlama Eğitim programı, farklı platformlarda yazılım geliştirme tecrübesi olup özellikle Linux POSIX tabanlı yazılım geliştirme sürecini öğrenmek isteyenler için hazırlanmıştır.

Program 4 gün şeklinde gerçekleştirilmektedir. Aşağıda yer alan içeriğin tamamı yerine belirli konuların daha detaylı anlatılması veya programda yer almayan bir konu başlığının talep edilmesi de mümkündür.

Eğitim programımız şu an sadece kurumsal başvurulara açık olup eğitim ücreti kişi sayısından bağımsız olarak her bir grup için günlük olarak belirlenmektedir. Bir eğitim grubunda maksimum 16 kişi yer alabilir.

Sorularınız için egitim@yh.com.tr adresine e-posta gönderebilirsiniz.

Eğitim öncesi yardımcı kaynak olarak hazırlamış olduğumuz Linux Sistem Programlama kitabına aşağıdaki adresten erişebilirsiniz:

https://www.gitbook.com/book/demirten/linux-sistem-programlama

YHB-S-01

1. Periyot

  • Linux İşletim Sistemi'nde temel kavramlar
    • Genel Unix Felsefesi
    • Linux Kernel gelişim süreci
    • Kernel katmanları ve dizayn modeli
    • Kullanıcı Kipi ve Kernel Kipi ayrımı
    • Kullanıcı ve Gruplar
    • Sanal Dosya Sistemi Katmanı
    • Inode ve dirent yapıları
    • Proses Kavramı ve Proses Yönetim Araçları
    • Kabuk Kullanımı, Kabuk Seçenekleri ve Farkları
    • Ortam değişkenleri kullanımı ve aktarımı
    • Borulama (Pipe) mekanizmasının kabukta ve uygulama içerisinde kullanımları
    • Erişim Kontrol Sistemi ve Yetkilendirme
    • Dosya sistemine göre ek yetki kontrol olanakları
    • Yeni nesil Linux Capabilities API üzerinden detaylı kontrol mekanizmaları
    • SELinux (Security Enhanced) Mimarisi
    • Dosya işlemleri ve Buffered IO mekanizmaları
    • GNU Build Sistemi, make, cmake, scons ve autoconf kullanımları

2. Periyot

  • /proc dosya sistemi ve getirdiği imkanlar
  • Paylaşımlı Kütüphaneler ve Linux Loader: ld.so
  • Sorun çözme yöntemleri
    • strace kullanımı, örnek senaryolar
    • valgrind kullanımı
    • gprof gnu profiler kullanımı
    • Gdb kullanımı
  • Buffer Overflow: Örnek bir libc atak senaryosu
  • Çapraz Derleme
  • Proses limitleri ve bu limitlerin düzenlenmesi
  • Sistem çağrıları ve context switch mekanizması
  • Sinyaller ve sistem çağrılarına etkileri, “signal safe” kavramı

3. Periyot

  • Multithreaded uygulamalar
    • Linux işletim sisteminde proses ve thread konseptleri
    • POSIX threadleri ve pthread kütüphanesi
    • Thread join ve detach işlemleri, stack size belirleme
    • Thread cancel
    • pthread mutex kullanımı
    • pthread read-write lock kullanımı
    • pthread conditional wait kullanımı
  • POSIX semafor kullanımı
    • Semafor – pthread mutex karşılaştırması
    • Semafor tipleri
    • Semafor operasyonları
  • POSIX shared memory kullanımı
  • Memory Mapped IO Kullanımı

4. Periyot

  • Kaynak Kullanımı ve Önceliklendirme
    • Global ayarlar
    • Thread bazlı önceliklendirme politikaları
  • BSD Soket kütüphanesinin kullanımı
    • UDP client ve server örneği
    • TCP client ve server örneği
    • Raw soket örneği
  • Daemon Oluşturma
  • POSIX High Resolution Timers API
    • Kernel 2.6 ve sonrası ile aradaki farklar
  • Asenkron IO Operasyonları ve Event Loop kullanımı
    • select() mekanizması
    • poll() ve epoll() mekanizması
    • Yöntemlerin karşılaştırılması
    • Signal safety problemine karşılık çeşitli problemlerin event loop içerisinde çözümü
    • C10K problemi tanımı
    • libevent kütüphanesi kullanımı