Ana içeriğe atla
Gemstone kartınızı aldığınız ve sisteminizi ilk kez başlattığınızda, karşınıza çıkan bu yeni dünya size biraz yabancı gelebilir. Bu rehber, Linux ve Ubuntu dünyasına ilk adım atan kullanıcıların T3 Gemstone OS’i etkin bir şekilde kullanabilmeleri için tasarlanmıştır. Orta-ileri seviye Linux bilgisine sahip kullanıcılar bu bölümü atlayabilir.

1. Linux Felsefesi

1.1. Açık Kaynak Yaklaşımı

T3 Gemstone OS, açık kaynak yazılım felsefesine dayanan Debian/Ubuntu’nun üzerine inşa edilmiştir. Bu, sistem üzerinde tam kontrol sahibi olduğunuz, kaynak kodlara erişebileceğiniz ve sisteminizi ihtiyaçlarınıza göre özelleştirebileceğiniz anlamına gelir.

1.2. “Her Şey Bir Dosyadır” Prensibi

Linux dünyasında en temel kavramlardan biri everything is a file (her şey bir dosyadır) prensibidir. Bu, donanım bileşenlerinden süreçlere kadar her şeyin dosya sistemi üzerinden erişilebilir olduğu anlamına gelir. Gemstone kartınızdaki I2C, SPI, UART ve GPIO gibi donanım bileşenleri de bu felsefe çerçevesinde dosya olarak temsil edilir.

1.3. Modüler Yapı

Linux sistemler modüler bir yapıya sahiptir. Her bileşen belirli bir görevi yerine getirir ve diğer bileşenlerle standart arayüzler üzerinden iletişim kurar. Bu yaklaşım, Gemstone kartınızda farklı uygulamaları ve servisleri bağımsız olarak çalıştırabilmenizi sağlar. Örneğin Desktop imajındaki dosya yöneticisini beğenmediyseniz bunu kolayca alternatif dosya yöneticilerinden biriyle değiştirebilirsiniz. Kullanıcıya sunduğu bu özgürlük Linux işletim sistemlerini rakiplerinden farklı kılar.

2. Linux Temelleri

2.1. Boot Süreci

Gemstone kartınız açıldığında, sistem belirli bir sırayla başlar. İlk olarak bootloader devreye girer, ardından Linux kernel yüklenir ve son olarak da systemd init sistemi çalışmaya başlar. Bu süreç boyunca sistem, donanımınızı tanır, gerekli sürücüleri yükler ve sistem servislerini başlatır.

2.2. Kernel Space ve User Space Ayrımı

Linux işletim sistemi, güvenlik ve kararlılık için Kernel Space (çekirdek alanı) ve User Space (kullanıcı alanı) olarak iki ana bölüme ayrılır. Bu ayrım, donanım kaynaklarına erişimi kontrol ederek sistemin güvenliğini sağlar.

2.2.1. Kernel Space

Kernel space, işletim sisteminin kalbinin attığı yerdir. Bu alan, doğrudan donanım kaynaklarına erişim sağlar ve sistemin temel işlevlerini yönetir. Örneğin, bir USB aygıtını bilgisayara taktığınızda, kernel space’de çalışan ilgili sürücü bu aygıtı tanır ve kullanıma hazır hale getirir. Benzer şekilde, bilgisayarınızın belleğini yöneten, dosya sistemine erişimi düzenleyen ve ağ trafiğini kontrol eden tüm işlemler kernel space’de gerçekleşir. Bu alanda çalışan kodlar yüksek yetkilere sahiptir ve bir hatanın tüm sistemi çökertme riski vardır. Bu nedenle kernel space’e erişim sıkı bir şekilde kontrol edilir.

2.2.2. User Space

User space ise kullanıcıların doğrudan etkileşimde bulunduğu alandır. Örneğin, T3 Gemstone OS’de bir terminal açıp komut yazdığınızda veya bir web tarayıcı kullandığınızda, bu uygulamalar user space’de çalışır. User space’deki programlar donanıma doğrudan erişemezler; bunun yerine kernel’e sistem çağrıları (system calls) göndererek işlemlerini gerçekleştirirler. Örneğin, bir metin dosyasını okumak isteyen bir program, kernel’in dosya sistemine erişim sağlaması için bir istekte bulunur. Bu sayede user space’deki bir uygulamanın hatası, sistemin geri kalanını etkilemez ve sadece o uygulamanın çökmesine neden olur.

2.2.3. Örnek Senaryo: Bir Dosyayı Açma İşlemi

  1. User Space: cat /etc/gemstone/config.txt komutu çalışır.
  2. Kernel Space:
    • Komut, sistem çağrısı (open() syscall) yapar.
    • Kernel, dosyanın izinlerini kontrol eder (chmod & chown kurallarına bakar).
    • Eğer yetki varsa, diske erişir ve veriyi okur.
  3. User Space: Kernel, okunan veriyi terminale gönderir.

2.3. Süreç (Process) Yapısı

Her çalışan program bir süreç (process) olarak adlandırılır. Linux’te bu süreçler hiyerarşik bir yapıda organize edilir ve her birinin kendine özgü kimlik numarası (PID) ve ebeveyn kimlik numarası (PPID) bulunur. İlk başlayan süreç diğer tüm süreçlerin ebeveyni olan /sbin/init programı yani T3 Gemstone OS’te systemd sürecidir.

2.4. Dosya Sistemi Hiyerarşisi

Linux’te dosya sistemi (rootfs), Unix standardına uygun olarak organize edilmiştir. Kök dizin (/) sistemin en üst noktasıdır ve tüm diğer dizinler buradan dallanır.
  • /bin ve /usr/bin dizinleri temel programları barındırır. Günlük olarak kullanacağınız ls, cp, mv gibi komutlar burada bulunur.
  • /etc dizini sistem yapılandırma dosyalarının ana merkezidir. Ağ ayarları, servis yapılandırmaları ve sistem çapında ayarlar bu dizin altında saklanır.
  • /home dizini kullanıcı klasörlerini içerir. Kişisel dosyalarınız ve ayarlarınız burada bulunur.
  • /var dizini değişken veri dosyalarını saklar. Log dosyaları, veri tabanları ve süreçler tarafından oluşturulan geçici dosyalar bu dizinde yer alır.
  • /dev dizini cihaz dosyalarını içerir. Gemstone kartınızdaki I2C, SPI, UART, GPIO ve diğer donanım bileşenleri bu dizin altında dosya olarak temsil edilir.
  • /sys dizini kernel tarafından sağlanan sistem bilgilerini sunar. Donanım durumu, sürücü parametreleri ve sistem istatistikleri burada bulunur.
  • /proc dizini çalışan süreçler ve kernel hakkında bilgi sağlar. Bu sanal dosya sistemi, sistem durumunu gerçek zamanlı olarak izlemenizi sağlar.

2.5. Kullanıcı Yetkileri

Linux dünyasında iki temel kullanıcı kategorisi bulunur: root kullanıcısı ve normal kullanıcılar.

2.5.1. Root Kullanıcısı

Root kullanıcısını, bir şirketin genel müdürü olarak düşünebilirsiniz. Tıpkı bir genel müdürün şirketteki tüm departmanlara erişimi olduğu gibi, root kullanıcısı da sistem üzerinde sınırsız yetkiye sahiptir. Root kullanıcısı sistemdeki her dosyayı okuyabilir, yazabilir ve silebilir. Herhangi bir programı çalıştırabilir, sistem ayarlarını değiştirebilir ve hatta tüm sistemi formatlamak da dahil olmak üzere geri döndürülemez değişiklikler yapabilir. Root kullanıcısı, “büyük güçle birlikte büyük sorumluluk gelir” ilkesini mükemmel şekilde örnekler.

2.5.2. Normal Kullanıcılar

Normal kullanıcılar ise sistemin belirli alanlarında faaliyet gösteren departman çalışanları gibidir. Kendi home dizinlerinde tam yetkiye sahip olmalarına rağmen, sistem dosyalarını değiştiremez, kritik servisleri durdurup başlatamazlar veya sistem çapında ayarlar yapamazlar. Bu kısıtlama, sistemi hem güvenli hem de stabil tutar. Gemstone kartınızda normal kullanıcı olarak çalışırken, kendi projelerinizi geliştirebilir, kişisel dosyalarınızı yönetebilir ve çoğu programı çalıştırabilirsiniz. Ancak yeni yazılım yükleme, sistem servislerini yönetme veya sistem yapılandırma dosyalarını değiştirme gibi işlemler için ek yetkiye ihtiyacınız olacaktır.

2.5.3. Sudo ile Root Yetkisi Kazanma

Sudo (superuser do) komutu, normal kullanıcıların belirli komutları root yetkisi ile çalıştırmasını sağlayan güvenli bir köprü görevi görür. Bunu, bir çalışanın belirli durumlar için genel müdürden imzalı bir yetki belgesi alması gibi düşünebilirsiniz. Sudo’nun en büyük avantajı, sürekli root kullanıcısı olarak çalışmanın risklerini ortadan kaldırmasıdır. Root olarak çalışırken yaptığınız her hata, sistem için potansiyel bir tehdit oluşturur. Sudo ile sadece gerekli olduğu anlarda yetki yükseltme yaparak, hem güvenliği hem de sistem bütünlüğünü korursunuz.

3. Terminal Kullanımı

Terminal, Linux sistemlerinin kalbidir. Grafiksel arayüzde yapabileceğiniz hemen her işlemi terminal üzerinden daha hızlı ve verimli şekilde gerçekleştirebilirsiniz. Bu bölümde Linux terminalini aktif bir şekilde kullanabilmek için bilmeniz gereken ana komutlara yer verilmiştir. Bu buz dağının görünen kısmıdır. Yaşadığınız sorunları araştırdıkça her geçen gün yeni komutlar ve yöntemler öğrenmeye başlayacaksınız. Tekrar eden işleri “Nasıl daha efektik şekilde yapabilirim?” sorusunu sorup terminal komutlarıyla otomatize etmeye başlayınca Power User (Usta Kullanıcı) olarak adlandırılan seviyeye erişeceksiniz. Komutlarda < > karakterleri içinde gösterilenler dummy (örnek) girdiler olup ihtiyaca göre gerçek girdilerle değiştirilmelidir.

3.1. man Sayfaları ile Yardım Alma

Linux’un en güçlü özelliklerinden biri, kapsamlı dokümantasyon sistemidir. Her komut için detaylı açıklama almak istediğinizde man (manual) komutunu kullanabilirsiniz:
man sayfalarında gezinmek için yukarı/aşağı ok tuşlarını kullanabilir, çıkmak için q tuşuna basabilirsiniz.

3.2. APT ile Paket Yönetimi

T3 Gemstone OS, Debian/Ubuntu tabanlı olduğu için APT (Advanced Package Tool) paket yöneticisini kullanır. Yeni yazılım kurmanız veya mevcut yazılımları güncellemeniz gerektiğinde APT aracını kullanabilirsiniz:

3.3. Dosya Operasyonları

Dosya ve dizinlerle çalışmak için temel komutlar:

3.4. chown ile Dosya ve Dizin Sahipliğini Değiştirme

Linux’te her dosya ve dizinin bir sahibi (owner) ve bir grubu (group) vardır. chown (change owner) komutu, dosya veya dizinlerin sahibini ve/veya grubunu değiştirmek için kullanılır. Bu, özellikle birden fazla kullanıcının bulunduğu sistemlerde veya belirli dosyaların erişim kontrolü için önemlidir.
  • Sistem dosyalarının ya da farklı kullanıcıya ait dosyaların sahipliğini değiştirmek için root yetkisi gerekir.
  • Sistem dosyalarının sahipliğini değiştirirken dikkatli olun, bazı uygulamaların çalışmamasına neden olabilir.
Kullanıcıları gruplara atayarak dosya paylaşımını kolaylaştırabilirsiniz. Örneğin dialout grubuna dahil olan kullanıcılar seri portlara root yetkisi olmadan erişebilir.

3.5. chmod ile Dosya ve Dizin İzinlerini Yönetme

Linux’te her dosya ve dizinin belirli izinleri (permissions) vardır. Bu izinler, dosyalarınızı kimlerin okuyabileceğini, düzenleyebileceğini veya çalıştırabileceğini belirler. chmod (change mode) komutu, bu izinleri değiştirmek için kullanılır. Linux’te üç tür izin vardır:
  • Okuma (r - read): Dosyanın içeriğini görüntüleme izni.
  • Yazma (w - write): Dosyayı değiştirme veya silme izni.
  • Çalıştırma (x - execute): Dosyayı bir program olarak çalıştırma izni (scriptler veya uygulamalar için).
Bu izinler, üç farklı kullanıcı grubuna atanır:
  • Sahip (Owner): Dosyanın sahibi olan kullanıcı.
  • Grup (Group): Dosyanın ait olduğu grup.
  • Diğerleri (Others): Diğer tüm kullanıcılar.
Dizinler için de benzer kurallar geçerlidir, ancak çalıştırma (x) izni, dizine cd ile girebilme anlamına gelir. chmod komutunu iki farklı şekilde kullanabilirsiniz: sembolik (harflerle) ve sayısal (rakamlarla).

3.5.1. Sembolik Yöntem

İzin eklemek veya kaldırmak için + ve - işaretlerini, kullanıcı gruplarını belirtmek için aşağıdaki sembolleri kullanabilirsiniz:
  • u: Sahip
  • g: Grup
  • o: Diğerleri
  • a: Hepsi

3.5.2. Sayısal Yöntem

Her izin, ikilik sistemdeki sayı karşılığı ile temsil edilir:
  • 4: Okuma (r)
  • 2: Yazma (w)
  • 1: Çalıştırma (x)
Bu sayıları toplayarak izinleri belirleyebilirsiniz. Örneğin chmod 755 script.sh komutu aşağıdaki anlama gelir:
  • 7: 4 + 2 + 1 = rwx (sahip)
  • 5: 4 + 1 = r-x (grup)
  • 5: 4 + 1 = r-x (diğerleri)
  • chmod 777 kullanmayın! Bu, dosyayı herkese açık (rwxrwxrwx) hale getirir ve güvenlik riski oluşturur.
  • Sistem dosyalarının izinlerini değiştirirken dikkatli olun, bazı uygulamaların çalışmamasına neden olabilir.

3.6. nano Metin Editörü

nano, yeni başlayanlar için ideal bir terminal metin editörüdür. Basit ve sezgisel arayüzü sayesinde yapılandırma dosyalarını terminalden ayrılmadan düzenleyebilirsiniz:
nano arayüzünün alt panelinde yaygın kullanılan klavye kısayolları yer almaktadır. Burada ^ ön eki Ctrl tuşunu, M ön eki ise Alt tuşunu temsil eder. Örneğin dosyayı kaydetmek için ^O (Ctrl+O), çıkmak için ^X (Ctrl+X), kopyalamak için M-6 (Alt+6) kısayollarını kullanabilirsiniz.

3.7. Pipe ve Çıktı Yönlendirme

Linux’un en güçlü özelliklerinden biri, komutları birbirine bağlayabilme yeteneğidir. Pipe (|) işareti bir komutun çıktısını diğer komutun girdisi olarak kullanmanızı sağlar:
Çıktı yönlendirme ile komut sonuçlarını dosyalara kaydedebilirsiniz ve komutlara girdi olarak dosyaları verebilirsiniz:
< ve > karakterleri yönlendirme için kullanılmıştır, dummy değildir.

3.8. htop ile Süreç Yönetimi

htop, sistem kaynaklarını ve çalışan süreçleri görsel olarak izlemenizi sağlar:
htop içinde süreçleri sonlandırmak için F9 tuşunu, arama yapmak için F3 tuşunu, filtrelemek için F4 tuşunu kullanabilirsiniz. Örneğin F4 ile filtrelemeyi başlatıp “htop” yazıp F9 tuşuna basıp 15 SIGTERM sinyalini Enter ile seçerseniz “htop” sürecine yani kullanmakta olduğunuz programa kapatma sinyali gönderirsiniz ve program sonlandırılır.

3.9. nmtui ile Ağ Yönetimi

Gemstone kartınızın ağ bağlantısını yönetmek için nmtui programını kullanabilirsiniz:
Bu araç sayesinde Wi-Fi ağlarına bağlanabilir, ethernet IP ayarlarını yapabilir ve ağ profillerini yönetebilirsiniz. Basit ve sezgisel arayüzüyle ağ bağlantısı yönetimini kolaylaştırır ve ağ ayarlarını profillere kaydederek kalıcı hale getirir.

3.10. Sisteme Bağlı Harici Donanımları Öğrenme

3.11. Donanım Sürücülerinin Yönetimi

Linux’te sürücüler genellikle kernel modülleri olarak implemente edilir. Gemstone kartınızdaki özel donanım bileşenleri için sürücüler sistem açılışında kernel’e otomatik olarak yüklenir.

3.12. Güvenlik Duvarı Yönetimi

3.13. Kullanıcı Yönetimi

3.14. Systemd ve Servis Yönetimi

Systemd, T3 Gemstone OS’de varsayılan init sistemidir. Sistem başlangıcını yönetir, servisleri kontrol eder ve sistem durumunu izler. Aşağıdaki örnekler nginx isimli servis üzerinden anlatılmıştır. nginx yerine yapılandırmak istediğiniz servisin ismini kullanınız. Servisin ismini bilmiyorsanız systemctl list-units komutundan öğrenebilirsiniz.

3.14.1. Servis Durumunu Kontrol Etme

3.14.2. Servis Başlatma ve Durdurma

3.14.3. Otomatik Başlatma Ayarları

3.14.4. Özel Servis Oluşturma

Kendi uygulamanız için systemd servis dosyası oluşturmak istediğinizde, /etc/systemd/system/ dizininde .service uzantılı dosya oluşturabilirsiniz.

3.15. Hata Teşhisi

3.15.1. dmesg ile Kernel Mesajları

Sistem seviyesinde donanımsal ya da yazılımsal problemler yaşadığınızda ilk kontrol etmeniz gereken dmesg (diagnostic messsages) komutunun çıktısı yani kernel mesajlarıdır:
Örneğin ağ kartınız normalde sorunsuz çalışıyorken kernel sürümünü güncelledikten sonra çalışmamaya başladıysa dmesg çıktısında muhtemelen ağ kartının sürücüsünün bastığı hata mesajları yer alacaktır. Kernel mesajlarını gerçek zamanlı olarak izlemek için:

3.15.2. journalctl ile Sistem Logları

journalctl, systemd’nin log yönetim aracıdır ve sistem genelindeki tüm logları merkezi bir yerden görüntülemenizi sağlar:

3.15.3. Yaygın Hataların Teşhisi

Disk kullanımını kontrol etmek için:
Bellek kullanımını kontrol etmek için:
Benzer şekilde htop programı yardımıyla, bellek kullanımı, CPU çekirdeklerinin kullanım yüzdeleri, çalışan process sayısı ve I/O sekmesinden süreçlerin disk okuma/yazma yüzdeleri kontrol edilebiilr.
Ağ bağlantısı problemlerinde:

4. Sonuç ve İleri Adımlar

Bu rehber, Gemstone kartınızla Linux dünyasında ilk adımlarınızı atmanız için temel bilgileri içermektedir. Zamanla daha karmaşık konulara geçebilir, Bash shell scripting öğrenebilir ve sistemin derinliklerine inebilirsiniz. Unutmayın ki Linux öğrenmek sürekli bir süreçtir. Her gün yeni şeyler keşfedecek ve sisteminizi daha verimli kullanmanın yollarını bulacaksınız. Gemstone kartınızın tüm potansiyelinden yararlanmak için bu temelleri sağlam bir şekilde oturtmanız önemlidir. Herhangi bir sorunla karşılaştığınızda, man sayfalarını, sistem loglarını ve Linux topluluğunun geniş bilgi birikimini kullanmaktan çekinmeyin. Linux dünyasında her soruna bir çözüm vardır ve bu çözümü bulmak da öğrenme sürecinin keyifli bir parçasıdır.