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
- User Space:
cat /etc/gemstone/config.txt
komutu çalışır. - 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.
- Komut, sistem çağrısı (
- 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ızls
,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. Kendihome
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: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).
- 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.
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
: Sahipg
: Grupo
: Diğerleria
: 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)
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:^
ö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:
<
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: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: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ızsystemctl 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.