Linux, aynı adı taşıyan çekirdeğe dayalı bir işletim sistemleri (OS) ailesidir. Windows veya MacOS gibi tek bir Linux işletim sistemi yoktur. Belirli görevleri gerçekleştiren birçok dağıtım (yazılım yüklemek için gereken bir dizi dosya) vardır.
Linux’un kısa tarihi
Linus Torvalds, Linux’un ilk geliştiricisi ve yaratıcısıdır. İşletim sisteminin adlandırılması onun onuruna verilmiştir. 1991 yılında Linus kendi Unix işletim sistemi üzerinde çalışmaya başlamıştır. Üç yıl sonra ise, indirilmeye hazır ilk sürüm çıkmıştır. Ama sonrasında çok düşük bir talep olmuştur. O dönem de sadece birkaç kişi tarafından kullanılmıştır.
Ancak 10 yıl sonra Linux yaygınlaşmaya başlamıştır. Programlama topluluğu, özgür yazılım fikrini almıştır. Bu nedenle uzmanlar projenin geliştirilmesine yardımcı olmaya başlamıştır.
Logo
Linux logosu ve maskotu Tux, sarı pençeleri ve gagası olan bir penguendir. 1996’da Linux çekirdeğinin geliştiricileri bir maskot seçmeye karar verdiler. Torvalds, penguenleri gerçekten sevdiğini söyledi. Bu nedenle, işletim sisteminin logosu bir pengueni göstermektedir.
Linux’e nerelerde ihtiyaç vardır?
Web sunucuları
Linux dağıtımları, web sunucusu pazarını neredeyse tamamen ele geçirmiştir. Analitik ajans W3Techs’in derecelendirmesine göre, sitelerin %75,1’i Linux sunucularında konuşlandırılmaktadır.
Mobil cihazlar
Android işletim sistemi Linux çekirdeği üzerinde çalışmaktadır. Bu nedenle mobil cihazlarda da kullanılmaktadır.
Süper bilgisayarlar
Bunlar, teknik parametrelerinde ve hesaplama hızlarında birçok sıradan bilgisayarı geride bırakan özel bilgisayarlardır.
Benzersizdirler, birçoğu belirli sorunları çözebilecek özel bir işletim sistemi gerektirmektedir. Açık kaynak kodu sayesinde geliştiriciler, işletim sistemini bu tür makinelerde çalışacak şekilde değiştirebilmektedir.
Oyun konsolları
Linux kendisini oyun konsollarında bulmuştur. Ancak henüz bu işletim sistemine odaklanan çok fazla oyun yoktur. Steam, SteamOS işletim sistemini geliştirerek durumu düzeltmek için çalışmaktadır. Steam Machine oyun konsolu ile birlikte gönderilecektir.
IoT cihazları ve akıllı teknoloji
Birçoğu Linux tabanlıdır. Örneğin Samsung, Tize işletim sistemini geliştirmiştir. LG webOS’u geliştirdi ve Panasonic ve Philips, FirefoxOS kullanmaktadır.
Havacılık ve ulaşım
Tesla’nın gömülü bilgisayarları ve Google’ın sürücüsüz arabaları Linux işletim sistemini kullanmaktadır. ABD trafik izleme yazılımı benzer şekilde bu işletim sisteminde geliştirilmiştir. Ayrıca ABD Havacılık İdaresi 2006’da buna geri dönmüştür.
Linux dağıtımının bileşenleri nelerdir?
Acemi bir programcının onun nasıl çalıştığını anlaması için Linux’un yapısını bilmesi gerekmektedir.
Çekirdek
Nedir? Nasıl çalışmaktadır? Neden gereklidir? Bu işletim sisteminin ana kısmı olan sözde ana programdır. Çekirdek, PC aygıtları (ekran kartı, işlemci, RAM vb.) ile yazılımı arasında aracı görevi görmektedir. Bunun için kodda aygıt sürücüleri bulunmaktadır. Belleğe yüklenirler veya belirli bir cihazın kaynağı gerektiğinde bağlanırlar. Çekirdekler cihazları, süreçleri ve belleği yönetmekte ve sistem çağrılarını işlemektedir.
Bir bilgisayarda aynı anda birkaç program çalıştırılabilmektedir. Birincisi arka planda çalışmakta, ikincisi kullanıcıdan belirli eylemleri beklemekte ve üçüncüsü diğer çalışan programlardan bilgi almaktadır. Bilgisayar kaynaklarını tüm programlar arasında dağıtan ve birçok farklı işlemin paralel çalışmasını düzenleyen çekirdektir.
Çekirdek türleri nelerdir? Toplamda 3 tip vardır: mikro çekirdekler, monolitik ve hibrit.
Mikro çekirdek
Gerektiğinde belleğe yüklenen birkaç bağımsız modülden oluşmaktadır.
Artıları:
- Teorik olarak yüksek derecede güvenilirlik (diğer mimarilere kıyasla);
- Düşük bellek tüketimi;
- Çekirdeğin ek parçalarının kolay bağlantısı (modülerlik).
Eksileri:
- Bireysel parçalar arasında sürekli geçiş nedeniyle düşük hız;
- Donanımın yalnızca sürücüler aracılığıyla kullanılabilirliği.
Monolitik çekirdek
Mikro çekirdeğin tersidir. PC belleği her zaman tüm (veya hemen hemen tüm) çekirdek kodunu içermektedir. Bu nedenle, çalışma hızı mikro çekirdeğe kıyasla daha yüksektir.
Artıları:
- Donanıma doğrudan erişim;
- Süreçler arasında basit veri alışverişi;
- Süreçlerin daha yüksek reaksiyon hızı.
Eksileri:
- Büyük beden;
- Daha az güvenlik (mikro çekirdeğe kıyasla);
- Çok RAM kaplıyor.
Hibrit çekirdek
Daha önce açıklanan iki mimarinin öğelerinin birleşimidir. Çalışmayı hızlandırmak için işletim sistemi modüllerini çekirdek alanında çalıştırmaktadır.
Artıları:
- Çekirdek ve kullanıcı alanında neyin çalışacağını seçme yeteneği;
- Daha küçük fiziksel boyut (monolitik bir çekirdeğe kıyasla);
- Büyük esneklik derecesi.
Eksileri:
- Daha yavaş çalışma;
- Aygıt sürücülerinin yalnızca üreticiler tarafından serbest bırakılması.
Linux çekirdeği monolitiktir. Ancak mikro çekirdek mimarisinden bazı fikirler ödünç almıştır. Bu nedenle tüm işletim sisteminin çekirdek alanında çalıştığı ve işletim sistemi çalışırken aygıt sürücülerinin kolayca yüklenebileceği (veya kaldırılabileceği) anlamına gelmektedir.
- Donanım – Çevre birimleriyle birlikte bilgisayar donanımıdır.
- Çekirdek, işletim sisteminin ana bileşenidir. Donanımla etkileşime girmektedir. Düşük seviyeli donanım ile üst seviye bileşenler arasında aracı görevi görür.
- Bulut, işletim sistemi çekirdeği ve kullanıcılar arasındaki etkileşim için bir ara yüzüdür. Sistemin iç yapısını özetlemektedir. Kullanıcılardan komutlar almakta ve gerekli işlevleri başlatmaktadır.
- Yardımcı programlar, kullanıcıya System OS Linux’un işlevselliğinin çoğunu sağlayan yardımcı programlardır. Yardımcı program türleri: sed, cat, date, vi ve diğerleridir.
- Derleyiciler, program kodunu makine koduna dönüştüren teknik araçlardır.
Sistem Araçları
Yardımcı programlar, genel yazılımın bir parçası olan yardımcı bilgisayar programlarıdır. Donanım ve işletim sisteminin çalışmasıyla ilgili tipik görevleri yerine getirmeleri gerekmektedir. Linux bir dizi basit yardımcı programa sahiptir. Örneğin, verileri düzenlemeye, dosyaların konumunu değiştirmeye izin vermektedir.
Sistem Kitaplıkları
Sistem kitaplıkları, çekirdek işlevlerine erişim sağlayan özel programlardır. Bir görevi gerçekleştirmek için çekirdek önce uygulamalardan bir sistem çağrısı alır. Ancak her çekirdeğin kendi sistem çağrıları vardır. Bu nedenle bir görevin yürütme biçimini anlamaları gerekmektedir. Ayrıca programcılar belirli bir işletim sistemi için bir dizi sistem çağrısını tanımlayan standart bir prosedür kitaplığı geliştirmişlerdir.
Yazılım Geliştirme Yardımcı Programları
Yukarıdaki üç bileşenin yardımıyla işletim sistemi çalışmaya başlayacak ve çalışabilecektir. Ancak yeni programları güncellemek ve oluşturmak için ek kitaplıklara ve araçlara sahip olmanız gerekmektedir. Bu oluşuma araç zinciri denmektedir. Bu program, araç ve yardımcı program seti, kaynak kodlardan çalışan bir uygulama oluşturmanıza yardımcı olacaktır.
Kullanıcı Programları
Zorunlu işletim sistemi bileşenleri olarak kabul edilmezler. Genellikle kullanıcıların kendileri tarafından yazılırlar. Programlar belirli bir işi belirlemeye yardımcı olur. Bu yardımcı programlar arasında tarayıcılar, ofis paketleri, grafik tasarım araçları, oynatıcılar vb bulunmaktadır.
Linux’un Artıları
- Ücretsiz kullanım. Linux işletim sisteminin çoğunu ve buna dayalı programların çoğunu kullanmak tamamen ücretsizdir.
- Açık kaynak sistem/program. Kaynak koduna erişim ile lisansa uygun olarak inceleyebilir, değiştirebilir, dağıtabilir ve değişiklikleri yayınlayabilirsiniz.
- Alaka düzeyi ve performans. Windows ile karşılaştırıldığında, Linux zamanla eskimez. Yani, orijinal performansı geri yüklemek için işletim sistemini düzenli olarak temizlemeniz veya yeniden yüklemeniz, birleştirme çalıştırmanız gerekmeyecektir.
- Emniyet. Linux, virüslere, yavaşlamalara, kötü amaçlı yazılımlara ve çökmelere karşı koruma sağlayan çeşitli güvenlik seçeneklerini desteklemektedir. Bu, işletim sisteminin geliştiriciler arasında popülaritesinin ana nedenidir. Elbette Linux %100 güvenli bir işletim sistemi değildir. Ancak diğerlerinden daha az savunmasız degildir.
- Çok yönlülük. Linux neredeyse tüm popüler programlama dillerini desteklemektedir. Bunlar Java, C/C++, Python, Ruby, C# ve diğerleridir. Paket yöneticisi, yazılım bileşenlerinin tamamını ve tek tek parçalarını kurmanıza ve güncellemenize yardımcı olacaktır. SSH desteği sayesinde sunucuları hızlı bir şekilde yönetebilirsiniz.
- Dağıtımlar. Birçok kuruluş, kendi dağıtımlarını yayınlayarak Linux işletim sistemini değiştirmiştir. En popüler olanları listeliyoruz: Debian, Ubuntu, Linux Mint, Arch Linux, MX Linux, Fedora, Manjaro, CentOS. Linux Mint ve Ubuntu yeni başlayanlar için uygundur. Arch Linux, Fedora ve Debian ise deneyimli geliştiriciler için uygundur. Dağıtım kiti bağımsız olarak monte edilebilmektedir.
- Merkezi bir konumdan yazılım yükleme – havuz. Verilerin saklandığı yer burasıdır. Bu sayede tek bir tıklama ile birkaç program yükleyebilirsiniz. İnternette crack, seri anahtar ve program aramayı unutabilirsiniz. Linux ile buna kesinlikle gerek yoktur.
Linux’un Eksileri
- İşletim sisteminin geliştirilmesiyle ilgili zorluklar bulunmakadır. Linux’un çoğu sürümünün arayüzü, normal Windows ve MacOS’tan önemli ölçüde farklıdır.
- Konsol ve terminal. Konsol, işletim sistemini metin girişi yoluyla kontrol etmenizi sağlamaktadır. İşletim sistemi yanıtları da orada görüntülenmektedir. Terminal, konsolun modern bir analoğudur. Masaüstü arka planında bir pencere olarak görüntülenmektedir.
- Bazı programların çalışması için dosya erişim hakları gereklidir. Kullanıcı için bu, şifreyi günde birkaç kez girmeniz gerekeceği anlamına gelmektedir.
- Az sayıda uyumlu oyun ve program (Windows’a kıyasla)bulunmaktadır. Günümüzde bu nedenle kullanıcıların Linux’a geçmemesinin ana nedenlerinden biridir.