CT Solutions

Eğitimler

Teknik eğitim programlarımız hakkında detaylı bilgi

Linux Başlangıç Eğitimi

3 Gün / 18 SaatBaşlangıç

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

3 Gün / 21+ Saatİleri Seviye

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.

1. Gün

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.

2. Gün

İki adet initramfs destekli gömülü sistem ve NFS destekli gömülü sistemin kurulması ve test edilmesi.

3. Gün

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:

$ sudo apt install -y gcc g++ tree make libncurses-dev
$ sudo apt install -y net-tools nfs-kernel-server
$ sudo apt install -y minicom tftpd tftp xinetd unzip vim
$ sudo apt install -y file bison flex swig python3-dev
$ sudo apt install -y libssl-dev gnutls-dev man-db

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
Dr. Nazım KOÇ

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.

500+
Eğitim Alan Profesyonel
20+
Kurumsal Müşteri
25+
Yıl Deneyim
Aselsan
Siemens
BMC
Accenture
Savronik
Asis Guard
Günsel
Belbim
PayCore
C2 Tech
Hugin
Makel
Zebra
Surtex
Smarte
OXI
Sensplorer
Altay
Marine Solutions'ı Ziyaret Edin