Eğitimler
Teknik eğitim programlarımız hakkında detaylı bilgi
Linux Başlangıç Eğitimi
Daha önce Linux ile hiç tanışmamış veya Linux'u sadece GUI'den tıklayarak kullananlar için planlanan bir eğitimdir. Bu eğitim, daha çok Linux altında çalışan uygulama geliştiricileri içindir. Hemen hemen hiç Bash veya C programlama yapmadan, sadece kavramlar üzerinde çalışma yapılacaktır. Her zamanki gibi, bütün çalışmalar terminal üzerinden, GUI ve mouse kullanılmadan yapılacaktır.
Eğitim takvimi ve fiyat teklifi için training@ucanlinux.com adresine yazılabilir.
Bazı Kavramlar
- login, mod, owner, consol, terminal, çekirdek, kök dosya sistemi
Hangi Dizin Hangi Amaç İçin Kullanılır
- /bin
- /etc
- /var
- /dev
- /proc
man Sayfaları
- man sayfaları nasıl kullanılır?
/etc Dosyaları
- Programlar otomatik nasıl başlatılır?
Shell Nedir?
- PATH
- ENV
- PS1
- .bash_profile, .bashrc
- $?
- Sinyalleri yakalamak
- nohup kullanımı
Bazı Komutlar ve Örnek Uygulamaları
- tree
- dmesg
- tail
- chmod
- chown
- ifconfig
- cpio
- strace
Baba Komutlar
- awk
- sed
- regular expression
dd
- Örnek kullanımı
- Kavramsal yaklaşım
- Dosya sistemi kurmak
- İmaj üretmek
- İmajı mount etmek
- Master imaj oluşturmak
mount
- Kavramsal yaklaşım
- C'de function pointer kavramı
- Disklerin adlandırılması
- Partition kavramı
- /dev/sda, /dev/mmcblk0 düğüm adları
Dosya Sistemleri
- Kavramsal yaklaşım
- Nedir, partition'dan farkı nedir?
- Partition içinde nasıl ve nerede otururlar?
İmaj Kavramı
- losetup komutu
- İmaj kurma
- Sıkıştırma
- Mount etmek
- İmaj içinde partition kurmak
Çapraz Derleyici Kuruluşu ve Test
- ARM derleyicisi nasıl kurulur
- Nasıl test edilir
- Statik derleme
- Dinamik derleme
- Boy kısaltma
- Prefix kavramı
SD/MMC/SSD ile Nasıl Çalışılır?
- Partition kurmak
- Dosya sistemi kurmak
- Mount etmek
Sözde Dosya Sistemleri
- /dev — cihaz düğümleri
- /sys — gpio vs kullanımı
- /proc — fd'lerin incelenmesi
- Sözde dosya sistemlerinin C ile kullanımı
tmpfs Kavramı
- tmpfs dosya sistemlerinin kuruluşu
- Mount edilmesi
- /dev/shm
- SD kartlarının ömürlerini uzatmak
Kütüphaneler
- libc, libdl ne işe yarar?
- Nasıl elde edilir?
- Static, dynamic ve plugin kütüphaneler
- Kütüphane içeriklerinin analizi
Çekirdek Modülleri
- modules/ dizini ve kavramları
- Mevcut modüllerin analizi
- modinfo, modprobe ve diğerleri
- firmware/ ne işe yarar?
Çekirdek Mesajları
- syslogd, klogd
- C ve bash içinden syslog kullanımı
tar.gz'den Derleme
- Paket yöneticisi olmadan paketler nasıl derlenir?
- Nasıl çapraz derlenir?
- Nasıl install edilir?
- libzip örneği üzerinde çalışma
VFS Kavramı
- Dosya sistemlerinin ve Unix'in temel kavramı
- fd nedir?
- Ayrılmış fd'ler
Özel Dosyalar
- /dev/null
- /dev/zero
- /dev/random
- /dev/urandom
- /dev/full
- C ile örnek kullanımı
pkg-config
- Niye vardır?
- Makefile ile nasıl kullanılır?
Proses Kavramı
- Process kavramı
- Thread ile process arasındaki farklar
- Joinable, detachable kavramları
- Zombi proseslerin tespiti ve engellenmesi
Dosya Sistemlerine Genel Bakış
- vfat
- ext2, ext4
- NFS
- cramfs
- squashfs
- ubifs
popen
- Ne işe yarar?
- Ne zaman kullanılır?
- Web scrapping nasıl yapılır?
POSIX
- Nedir, ne işe yarar?
- POSIX özellikleri nasıl elde edilir?
- Sistem çağrısı nedir?
- time ile analiz
IPC (Inter-Process Communication)
- POSIX'in desteklediği IPC sistemleri
- Memory map
- Shared memory
- Message queue
- Semafor ve mutex
- Pipes — isimli ve isimsiz borular
TCP/IP ve UDP/IP
- Soket kavramı
- Nasıl kurulur, nasıl kullanılır?
- Kavramsal yaklaşım
Netlink Soketleri
- Çekirdek olaylarını monitör etmek
- udevd nasıl çalışır?
- Bir cihaz takıldığında bir programın çalışması
Asenkron I/O Kavramı
- I/O multiplexing kavramı
- select çağrısı
- poll çağrısı
Sinyaller
- Kavramsal yaklaşım
- Kesmeler ile farkları
- Sinyallerin anlamı ve kaynağı
- Programlar sinyallere karşı nasıl tedbir almalıdır?
- Signal handler yazımı — eski ve çağdaş yaklaşım
Linux başlangıç eğitimine, her katılımcı kendi makinesi ile gelebilir. Ya da bizler notebook temin etmekteyiz.
Kendi makinesi ile gelenler, herhangi bir standard bir Linux dağıtımı ile gelebilirler. Ya da sanal makine üzerinde çalışabilirler.
Gömülü Linux Sistemleri Eğitimi
Gömülü Sistemler, genelde tek bir işi, çok iyi yapmak için, kısıtlı ortamlara kurulan sistemlerdir. Bizler, Linux işletim sistemi desteği olan, gömülü sistemlerin eğitimlerini vermekteyiz. Klasik bir eğitim programı uygulamaktayız. Bunun için, sistem kuruluşlarında, hemen hemen hiç bir yardımcı program ya da araç kullanılmamaktadır.
Eğitim takvimi ve fiyat teklifi için training@ucanlinux.com adresine yazılabilir.
Eğitimin Amacı
Eğitimin amacı power-on ile login arasındaki bütün adımları, farkında olarak yapmaktır. Eğitimin sonunda her katılımcı, sıfırdan kendi gömülü Linux dağıtımını kurabilecek ve güncelleyebilecek yeteneğe kavuşacaktır. Ya da mevcut bir dağıtımı analiz edebilecektir.
Gereçler
Eğitimin tamamı uygulamalı olarak yapılmaktadır. Eğitim cihazı olarak OrangePi Zero seçilmiştir. Eğitimde bahsedilen konuların neredeyse tamamı cihazdan bağımsızdır. Bu eğitimi alan bir katılımcı, çok az bir gayretle başka cihazlar üzerinde de çalışabilecektir. Her katılımcıya bir HP Notebook bilgisayar, bord ve gerekli eklentiler temin edilecektir.
Eğitimin Süresi
Eğitimin toplam süresi 3 gün ve en az 21 saattir. Eğitimler sabah 10:00 ile 18:00 arasında yapılır. 1 saat yemek molası mevcuttur. Talebe göre eğitim saatleri değiştirilebilir. Talep edildiği takdirde eğitimler hafta sonu da yapılabilir.
Eğitim Bedeli
Eğitim bedeli, kişi sayısı, ödeme yöntemi ve diğer etmenlere göre değişiklik gösterir. E-posta adresimizden eğitim broşürü, eğitimin bedeli ve ödeme bilgileri talep edilebilir. Eğitim bedeli faturalandırılır.
Eğitim Takvimi
Eğitimler genelde her ayın 1. ve 3. haftası, Pazartesi, Salı ve Çarşamba günleri açılır. Talep edildiği takdirde eğitim takvimi değiştirilebilir.
Eğitim Yerimiz
Eğitim için sabit yerimiz GTÜ Teknoparkıdır. Özel araç veya Marmaray ile ulaşım için iletişim sayfasına bakınız.
Eğitim Sınıfı ve Eğitmen
Eğitim sınıfımız en fazla 5 kişiden oluşacaktır. Eğitim en az 3 kişi ile açılacaktır. Beyaz tahta, TV, her katılımcı için bir bilgisayar ve çalışma bordu ve diğer gerekli donanımlar mevcut olacaktır. Eğitimin tamamı Dr Nazım KOÇ tarafından verilecektir.
Kimler Katılabilir
Eğitimlerimiz herkese açıktır. Katılmadan önce temel Linux bilgisine sahip olunması, eğitimin verimini çok artıracaktır. Bu eğitim katılımcıya çok zaman kazandıracaktır. Eğitimde, mümkün olduğu kadar açık kaynak kültürü vermeye, özellikle kavramlar üzerinde fazlaca durmaya ve tecrübelerimizi aktarmaya çalışmaktayız.
Ortamın kurulması, gömülü sistemlerin muhtaç olduğu temel kavramların üzerinden geçiş ve ilk gömülü sisteme ön hazırlık, SD karttan açılan sistemin kuruluşu ve test edilmesi.
İki adet initramfs destekli gömülü sistem ve NFS destekli gömülü sistemin kurulması ve test edilmesi.
Buildroot ile gömülü sistem kuruluşu ve NFS üzerinden test edilmesi.
- Toolchain kurma ve kullanma
- U-Boot derleme
- İskelet RootFS kurma
- Busybox destekli RootFS kuruluşu
- BR destekli RootFS kuruluşu
- Çekirdek derleme
- Açılış betiklerinin yazılması
- Bölümlendirme teknikleri
- initramfs teknikleri
- tftp ve NFS server kurulumu ve kullanımı
- Ağ üzerinden açılış teknikleri
Her katılımcı için bir HP notebook bilgisayar ve bir adet bord temin edilecektir. Eğitimden önce, katılımcının herhangi bir ön hazırlık yapmasına gerek yoktur.
Ama yine de "ben kendi bilgisayarımı kullanacağım" diyenler olursa, gelmeden önce aşağıdaki hazırlıkları yapmalıdır.
Bizler eğitimlerde Ubuntu 22.04 dağıtımını kullanmaktayız. Bu dağıtımın eğitimle doğrudan bir ilgisi yoktur. Bütün işlemlerimiz, terminalden yapılmakta, GUI kullanılmamaktadır. Paket yönetimi, ağ yapılandırması, bazı internet servislerinin kurulması ve yapılandırılması gibi işlemlere, Ubuntu'da aşina olduğumuz için, katılımcının da Ubuntu 22.04 ile eğitime gelmesi tavsiye edilir.
Ubuntu 22.04 için gerekli paketler:
Başka bir Linux dağıtımı veya Ubuntu'nun farklı bir sürümü ile eğitime katılanlar, yukarıda adları verilen paketleri veya muadillerini yüklemelidirler. tftp server ve nfs server gibi ağ servislerinin yüklenmesi ve yapılandırılması konusunda da tecrübeli olmalıdırlar.
Katılımcı, Linux emülatörleri ile de eğitime katılabilir. Fakat özellikle, host ve guest makine arasındaki ağ yapılandırması ve USB kanallarının kullanımı son derece problem çıkarmaktadır. Emülatör veya Docker kuruluşları ile eğitime gelinmesi tavsiye edilmez.
Eğitmen
Dr. Nazım KOÇ
Şişli, İstanbul, 23 Haziran 1965 doğumlu Nazım KOÇ, Üsküdar Haydarpaşa Lisesi mezunudur. İTÜ Matematik Müh. bölümünden mezun olduktan sonra, Sistem Analizi Master programı ve Uzay Bilimleri doktora programını tamamlamıştır. Uzun yıllar özel sektörde ve TÜBİTAK'ın çeşitli enstitülerinde çalışmıştır. Pek çok kurumda Linux, Bash Programlama, Gömülü Linux, Unix Sistem Çağrıları ve C programlama eğitimleri vermiştir. Gömülü Linux Sistemleri kitabının yazarıdır.
- İTÜ Matematik Mühendisliği mezunu
- Sistem Analizi Master, Uzay Bilimleri Doktora
- TÜBİTAK enstitülerinde uzun yıllar görev
- Gömülü Linux Sistemleri kitabının yazarı
- Linux, Bash, C, Unix Sistem Çağrıları eğitmeni

Belgeler
Gömülü Linux Sistemleri Eğitimi
Halen vermekte olduğumuz eğitimin, güncel belgeleri buradan incelenebilir.
Basit Bir Gömülü Sistemin Kuruluşu
Daha önceki eğitimlerimiz Beagle Bone Black cihazı ile vermekteydi. Bu yazıda basit bir gömülü Linux sisteminin beagleboard'a kuruluşundan bahsedilecektir. Her ne kadar örnek sistem olarak beagleboard seçilmiş olsa da, burada anlatılan hemen hemen bütün konular diğer bordlara da çok az değişiklikle uygulanabilir. Prensipler değişmemektedir.
Beaglebone İle Çalışmak
Daha önce verdiğimiz, gömülü Linux sistemleri eğitiminin yardımcı belgeleri ve sunumları.
Loop Cihazlar İle İmaj Analizi
Bu yazıda herhangi bir disk imajının, diske kurulum yapılmadan analiz edilmesinden bahsedilecektir. Disk imajının ARM veya x86 veya belirli bir makineye ait olmasının bir önemi yoktur. Analiz tekniği tamamen aynıdır.
Arm Tabanlı Bir Sistemin Kuruluşu ve Emülatör İle Testi
Bu yazıda ARM tabanlı bir sistem baştan sona kurulacak ve emülatör ortamında test edilecektir. Gömülü sistemler kurulurken genelde MMC kart veya flash disk gibi ortamlara kurulur ve geliştirme bordları üzerinde test edilirler. Bu hem maliyetli hem de yavaş işleyen bir süreçtir. Öncelikle elimizde fiziksel olarak bir bordun bulunması gerekir. Elimizde bord yokken gömülü sistemin kuruluşu ve testi nasıl yapılabilir?
RiscV Altında Linux
Her ne kadar, yazılımda açık kaynak kavramı bilinse de, bu kavramın donanımdaki karşılığı pek yaygın değildir. ARM'ın şu anki en büyük alternatifi ve rakibi RiscV sistemleridir. Bu yazımızda toolchain, bbl, linux kernel, loop device, root file system ve qemu ile baştan sona bir RiscV sisteminin kuruluşu ve testinden bahsedilecek ve testler emülatör altında gerçeklenecektir.
OrangePi Zero İle Gömülü Sistemlere Başlangıç
Çok az bir bord maliyetiyle, gömülü Linux sistemlerine başlangıç yapılabilir. Bu belge, özellikle kendi başına çalışmak isteyenler için yazılmıştır.
Referanslar
Savunma sanayii, telekomünikasyon ve finans sektöründen kurumsal müşterilerimiz. 500+ profesyonele eğitim verilmiştir.

















