Linux Dünyasına Giriş! Linux Kavramları
Linux Kavramları eğer Linux dünyasına giriş yapıcaksınız oldukça önemlidir. Bu yazımızda sizlere Linux dünyasında oldukça yaygın olarak karşılaşacağınız Linux Kavramlarından bahsediyor olacağım. Yazıya başlamadan önce Eğer Linux dünyasına yeni adım adıyorsanız Linux’a Nasıl Başlarım? başlıklı makalemi okuyabilirsiniz. Yazının sonunda yukarıdaki Linux Kavramları hakkında bir fikir sahibi olursunuz diye umuyorum. Hazırsak ilk maddemiz ile başlayalım.
GNU/Linux
Linux Kavramları içerisinde belkide en temel olan kavram GNU’dur. GNU, özgür yazılım olan bir işletim sistemidir –yani, kullanıcıların özgürlüğüne saygı duyar. GNU işletim sistemi özgür yazılım olarak yayınlanan üçüncü partı tarafından geliştirilen GNU paketlerinden (GNU projesi tarafından yayınlanan programlar) dan oluşmaktadır. GNU’nun gelişimi, özgürlüğünüze zarar verecek bir yazılım olmadan bilgisayar kullanılmasını mümkün kıldı. Bu konunun daha derinlerine inen bir yazı daha yazmayı planlıyorum. İlgili yazı eklendiğinde buraya ilgili linki ekleyeceğim.
GNU’nun özgün çekirdeği Hurd, günlük kullanım için hazırdır. Ayrıca GNU, günümüzde genel anlamda Linux Çekirdeği ile de kullanılmaktadır. Bu kombinasyon GNU/Linux olarak isimlendirilir. Pek çok kişi yanlış biçimde “Linux” diyor ama GNU/Linux milyonlarca insan tarafından kullanılan sistemin doğru adıdır.
Bu yazı kapsamında bu özet bilgi şimdilik yeterli olacaktır. Eğer daha detaylı bilgi almak istiyorsanız aşağıdaki linkte “GNU Araç Setleri (GNU Utilities)” isimli başlığı okuyabilirsiniz.
Link: https://teknopusula.com/linux-nedir-kernel-gnu-ve-masaustu-ortamlari-ne-ise-yarar-6295/
Kaynakça
Link: https://www.gnu.org/
Link: http://www.getgnu.org/gnulinux/gnulinux-ipuclari/gnu-nedir.html
Linux Shell
Shell’de aynı GNU gibi Linux Kavramları arasında önemli bir yere sahiptir. Öncelikle Shell (Kabuk) nedir bununla başlayalım.
Shell (Kabuk)
Basitçe söylemek gerekirse, kabuk, klavyeden komutları alan ve bunları gerçekleştirmek için işletim sistemine veren bir programdır. Eskiden Linux gibi Unix benzeri bir sistemde mevcut olan tek kullanıcı arabirimi bu kabuklardı. Günümüzde, kabuk olarak komut satırı arabirimlerine (CLI) ek olarak grafik kullanıcı arabirimleri (GUI) vardır.
GUI Hakkında detaylı bilgi: https://wmaraci.com/nedir/gui
Birçok Linux Kabuğu bir Linux sistemi üzerinde kullanılabilir ancak bu kabuklardan bitanesi neredeyse tüm Linux dağıtımlarında kullanılmaktadır. Bu kabuk “Bash” olarak adlandırılır.
Bash — (Bourne again shell)
Bash kabuğu Unix kabuğunun yerine geçecek şekilde GNU projesi kapsamında geliştirilmiştir.
Bash ile ilgili daha detaylı yazım eklendiği zaman ilgili linki buraya ekleyeceğim. Şimdilik bu kadar bilgi işin mantığını anlamanız için yeterli olacaktır
Uç Birim (Terminal)
Linux Kavramları hakkında temel bir konu daha. Esasen Komut Satırı olarak adlandırılan ancak sıkça konsol, terminal, kabuk gibi de adlandırılan, kullanıcının komutların bilgisayar ile iletişime geçmesini sağlayan ara yüze Uç Birim denir. Temelde bu Uç Birimler ikiye ayrılır.
Konsol Terminalleri
Linux işletim sistemini Text Modunda açtıktan sonra karşımıza gelen terminal arayüzüne denir.
Grafiksel Terminaller
Grafiksel Terminal açabilmek için çalıştırdığınız Linux tabanlı işletim sisteminde bir Masaüstü Ortamı (Desktop Environment) kurulu olması gerekmektedir. Örn: GNOME’da GNOME Terminal, KDE’de Konsol vs vs.
Not: Masaüstü Ortamlarına yazının ilerleyen kısımlarında değineceğim.
Kaynakça
Link: http://linuxcommand.org/lc3_lts0010.php
Link: https://teknopusula.com/linux-shell-nedir-linux-komut-satiri-nasil-kullanilir-6347/
Komutlar
Komutlar Linux dünyasının ayrılmaz bir parçasıdır. Hatta şöyle bir söz vardır.
Linux commands do a little of everything
Elbette GUI kullanarak’ta işlerinizi halledebilirsiniz. Ancak, komut satırına alıştığınız zaman aslında çoğu işlem için GUI ihtiyacı olmadığını anlayacaksınız.
İşin özü şu. Her ne kadar GUI olsada, eninde sonunda bu arka taraflarda bir takım komutlar siz butonlara bastığınızda tetikleniyor. Linux ortamında bu komutlar oldukça kullanışlı olabiliyor. Hatta bu komutları bir araya getirerek daha sonra yine kullanmak üzere bir dosyaya kaydedebilirsiniz. Bu komut setinin olduğu dosyaya script dosyası denir.
Temel Komutlar
Kullanılabilecek tonlarca fazla Linux komutu var. Elbette hepsini tek seferde öğrenemezsiniz. Kendim adıma konuşayım daha komutların bir çoğunu ezbere bilmiyorum ki bilmekte gerekmiyor. Ancak bazı temel komutlar standart olarak sıkça kullanılıyor. Bu komutları öğrenerek işe başlamanızın sizin adınıza yararlı olacağına inanıyorum. Bu temel komutları ele aldığım bir yazı yazacağım. İlgili yazımı tamamladığımda linkini buraya ekleyeceğim.
Root
root kelimesi Unix-benzeri işletim sistemlerinde birkaç farklı anlama gelmektedir. Bu yüzden Unix-benzeri işletim sistemlerine yeni giriş yapan insanlar root kavramını karıştırabiliyor.
root, varsayılan olarak bir Linux veya diğer Unix benzeri bir işletim sistemindeki tüm komutlara ve dosyalara erişime sahip olan kullanıcı adı veya hesaptır. Kök hesabı, kök kullanıcı ve süper kullanıcı olarak da anılır.
Bir diğer anlamı da sistemdeki en üst dizin olan root dizindir. Yani, alt dizinleri ve dosyaları da dahil olmak üzere tüm diğer dizinlerin bulunduğu dizindir. root dizini bir eğik çizgi (/) ile belirtilir.
Paket Yöneticisi
Modern Linux tabanlı işletim sistemleri yazılımları derlenmiş paketleri kullanarak kurar. Derlenmiş Paketler diyerek ilgili yazılımın Binary’leri, ayar dosyaları ve gerekli bağımlılık bilgilerini içeren dosyalar kastedilmektedir. İşin en kritik kısmı bağımlılıkların yönetiliyor olması. Eğer bir yazılımı paket yöneticisi olmadan kuracaksanız:
- kurulumu tamamlamak için gerekli tüm bağımlılıkların güncel sürümlerinin kurulduğundan emin olmamız gerekmektedir.
- Yazılımı kaynak kodundan çekip derlemelisiniz (bu vakit alan bir işlemdir)
- kurulan her bir yazılımın ayarlamalarının yapılması
Paket yönetim sistemleri bu ve buna benzer problemleri çözmek, Linux tabanlı bir işletim sisteminin genel kalitesini ve tutarlılığını artırmaya çalışın. için geliştirilen araçlara verilen isimdir.
Paket Yöneticisi konusunda Linux dağıtımları arasında ciddi bir ayrım söz konusudur. Çoğu dağıtımın kendine has paket yöneticisi vardır.
örn:
- Debian: APT, Aptitude, Synaptic,
- Arch: Pacman
- Redhat: YUM, DNF
Kaynakça
Link: https://www.linode.com/docs/tools-reference/linux-package-management/
Desktop Environment
Öncelikle şu soruya cevap verelim. Desktop Environment nedir?
Tüm eylemimiz, bir masaüstü ortamının ne olduğu bir grafik kullanıcı arayüzü ile gerçekleşir. Dosya yöneticiniz, pencereler, giriş ekranları, çeşitli menüler, fare işaretçisi, tüm bu işlemleri bizim için yöneten ve çekirdekle konuşmamızı sağlayan Desktop Environment’tir.
Linux tarafında masaüstü ortamı (Desktop Environment) konsepti çok güzel işlenmiştir çünkü tüm yapı modüler olarak tasarlanmıştır. Öyleki düzinelerce farklı, resmi olarak desteklenen masaüstü ortamı vardır.
- Bu masaüstü ortamlarını birleştirip kendi masaüstü ortamınızı oluşturabilirsiniz. Elbette bu iş biraz deneyim ve uzmanlık gerektiren bir iş ancak imkansız değil.
- Bir Linux dağıtımı kullanırken birden fazla masaüstü ortamı kurabilirsiniz. Ancak bunu yapmanızı pek tavsiye etmem. Şahsen ben denediğim zamanlar pek verim alamadım.
Elbette tüm bu dağıtımlar içerisinde öne çıkan bir kaç tane var. Bu masaüstü ortamları genellikle Linux Dağıtımları tarafından desteklenmektedir. Gerek resmi olarak gerekse topluluk tarafından. Bunlar:
- GNOME
- Xfce4
- KDE
Özellikle GNOME masaüstü ortamlarının atasıdır diyebiliriz. İsminin ilk harfi olan G, GNU Projesini temsil eder. Yani GNOME, GNU kapsamında geliştirilen projelerden bir tanesidir. Amacı Linux tabanlı işletim sistemlerinin son kullanıcıya daha çok hitap edilebilir hale getirmektir.
Linux Dağıtımları, Flavor
Flavor
Flavor yada genellikle “flavor of UNIX” olarak geçen bu kavram Unix tabanlı işletim sistemleri için kullanılır. İşin özeti Linux, Unix tabanlı bir işletim sistemidir, yani bir Unix Flavor’udur.
Linux Dağıtımı
Bir başka önemli Linux Kavramı daha. Türkçe adıyla Linux Dağıtımı ya da sıkça karşılaşabileceğiniz deyişle Linux Disto’ları nedir bu kavramın üzerinde duralım.
Öncelikle şunu belirtmek isterim ki Linux tek bir kuruluş tarafından üretilen bir ürün değildir. Farklı kuruluşlar farklı kısımlarını geliştirmektedir. Peki nedir bu farklı kısımlar. Linux Çekirdeği, GNU Shel Utilities, X server, Desktop Environment vb. Tüm bu parçaların hepsi tamamen açık-kaynak kodlu bir şekilde paylaşılmaktadır.
İsterseniz, Linux çekirdeği, GNU kabuk yardımcı programları, Xorg X server ve Linux sistemindeki diğer tüm programların kaynak kodlarını alabilir ve bunları kendiniz toplayabilirsiniz. Ancak, yazılımı derlemek çok zaman alacaktır — tüm farklı programların birlikte düzgün bir şekilde çalışmasını sağlamaktan bahsetmiyorum bile.
Linux dağıtımları sizin için zorlu bir iş yapar, yani açık kaynaklı projelerin tüm kodlarını alarak ve sizin için derleyip, önyükleyebileceğiniz ve kurabileceğiniz tek bir işletim sistemi olarak toparlar. Ayrıca, varsayılan masaüstü ortamı, tarayıcı ve diğer yazılımları seçmek gibi sizin için seçimler yaparlar. Çoğu dağıtım, temalar ve özel yazılımlar gibi kendi son rötuşlarını ortaya çıkan derlenmiş ürüne ekler. — örneğin Ubuntu’nun Unity masaüstü ortamı.
Ufak bir araştırma yaparsanız bir sürü farkı dağıtım olduğunu fark edeceksiniz. Dağıtımların arasında bir karar vermeniz tahmin ettiğinizden fazla zamanınızı alabilir. Bunun önüne geçmek için yazının devamını okumanızı tavsiye ederim.
Kendi Kullandığım Dağıtım
Eğer bana sorucak olursanız size henüz net bir cevap veremem. Ancak kullandığım dağıtımları şöyle sıralayabilirim:
- Ubuntu
- ArchLinux
- Manjaro
Arada denediğim başka dağıtımlar elbette oldu. Sunucular için Centos, masaüstü kullanım için Fedora, Mint vb. Burda listelenen dağıtımlar gerçekten belirli bir süre kullandığım dağıtımlar. En son aktif olarak kullandığım dağıtım Manjaro. Ancak dediğim gibi hala net değilim. Şimdilik, paket yöneticisinden (Pacman) ve sunduğu desktop environment’lardan biri olan KDE’den memnunun. İhtiyacımı karşıladığı müddetçe hiç bir sorun yok.
Belki farklı bir alana yönlenirim ve artık Manjaro benim isteklerimi karşılamaz. O zaman Fedora’ya geçerim. Tam bu noktada bir konuya değinmek istiyorum
Hangi Dağıtımı Seçmeliyim?
Hangi Dağıtım ile başlamalıyım? En iyi Dağıtım hangisidir? Bu tarz sorular ile boğuşmayın. Linkteki video’yu izlemenizi tavsiye ederim.
Link: Stop-Hopping-Distro
Sadece deneyin ve sonuçlarının gözlemleyin. Yukarıda bahsetmiş olduğum gibi, hangi dağıtım amacınıza hizmet ediyorsa o dağıtımı kullanın. Geri kalan detayları bir şekilde halledersiniz. Hangi dağıtımı seçerseniz seçin Linux tabanlı bir işletim sistemi kullanıyor olucaksınız. Komutlar açısından bir farklılık olmayacaktır. :)
Ayrıcı aşağıdaki linkten dağıtımların popülerliğini takip edebilirsiniz.
Link: https://distrowatch.com/
Kaynakça
Link: https://www.howtogeek.com/132624/htg-explains-whats-a-linux-distro-and-how-are-they-different/