Merhaba sevgili e-bergi okurları. İki yazıdan oluşması planlanan "Linux'da Problem Çözme" isimli yazı serisinin ilk yazısına hoşgeldiniz. Yalnız çözümleri anlatmaya başlamadan hemen önce problemlerin nereden kaynaklandığını anlatmakta fayda var. Serinin bu yazısının konusu işte tam da bu yüzden temel kavramlar. Öncelikle Linux işletim sistemli bilgisayarların bileşenlerinden bahsedecek, kernelin içine biraz giriş yapacak, bilgisayarın açma tuşuna bastığımızda arkada neler oluyor onları inceleyeceğiz. Display server, display manager, desktop environment gibi birbiri ile çok karışan konulardan bahsedecek, aynı zamanda da kernel modül ve sürücülerine değineceğiz.

Boot işlemi

Herhangi bir bilgisayarı ilk açtığımızda POST (Power on self-test) denilen, ilk kontrollerden sorumlu olan bir yazılım başlatılır. Bu yazılımı bizler, eski bilgisayarımız ilk başladığında gözüken, anakartın markasının logosuyla siyah beyaz yazıların olduğu kısım olarak tanıyoruz. POST çalıştıktan sonra bootloaderı başlatmaktan sorumlu olan bir yazılım çalıştırılır, BIOS. BIOS'un görevi gerekli donanım parçalarını kontrol ederek boot işlemini başlatmaktır. Bu işlemi de bootloader aracılığıyla yapar. Günümüzde BIOS'un işini, UEFI (Unified Extensible Firmware Interface) denilen bir yazılım yapmaktadır. Genellikle 2013 öncesi bilgisayarlar BIOS boot seçeneği ile gelirken, sonraki bilgisayarlar UEFI boot seçeneği ile gelmektedir. UEFI ve BIOS aynı işi yapsalar da, yapma biçimleri farklıdır. Herhangi bir işletim sistemi için boot diski/usb'si hazırlanırken bilgisayarın BIOS veya UEFI boot işleminden hangisine sahip olduğunun bilinmesi işte bu nedenle önemlidir. BIOS boot aynı zamanda Legacy boot olarak da adlandırılır.

Bootloader

Bootlader, BIOS veya UEFI tarafından başlatılan, istenilen kernel parametreleri ile kerneli başlatmaktan sorumlu olan yazılımdır. Günümüzde birçok yaygın Linux dağıtımında popüler bir bootloader olan GRUB (GRand Unified Bootloader) kullanılmaktadır. Bootloader aynı zamanda birden fazla işletim sistemi yüklü olan bilgisayarlarda işletim sistemini seçmemizi sağlar. Genelde ekran kartı veya ekran parlaklığı problemlerini çözme işi de kernel parametreleri ile grub üstünden yapılmaktadır.

Kernel - Linux

Bildiğiniz üzere Ubuntu, Mint, Arch vb. işletim sistemleri aslında Linux kernelini içeren birer Linux dağıtımıdır. Aslında Linux ismi de Linux kernelini içeren tüm dağıtımlara verilen ortak isimdir. Kernel ise genelde bootloaderdan sonra bilgisayarın ilk yüklenen programı olan, bilgisayarın temel bileşenlerinden sorumlu olup giriş cihazlarıyla iletişim kurmasını sağlayan yazılıma verilen isimdir.

Bootloader, kernel, BIOS ve UEFI hakkında daha fazla bilgi almak için bu adresi ziyaret edebilirsiniz.

Init

Init, bilgisayar başladığında başlatılan ilk işleme verilen isimdir. Bilgisayar kapanıncaya kadar çalışmaya devam eder. Günümüzdeki Linux dağıtımlarında genellikle systemd kullanılmaktadır.

Getty

Getty init çalıştıktan sonra başlatılan sanal terminallere verilen genel isimdir. Genellikle birden fazla başlatılır. Linux bilgisayalarda Ctrl+Alt ve fonksiyon tuşlarıyla başlatılan diğer getty işlemleri arasında geçiş yapabiliriz. Getty, aynı zamanda kullanıcıya kullanıcı isim ve şifre sormaktan sorumludur. Ancak günümüzde bu işi grafiksel olarak başka yazılımlar aracılığıyla yapmaktayız.

Shell

Shell, giriş yapıldıktan sonra ekrana gelen, bizim komutlar girerek bilgisayarın içine erişebileceğimiz araçlardır. Bir Linux bilgisayar açıkken, terminal açtığımızda yüklenen şeydir. Bash, fish, zsh örnek olarak verilebilir. Her kullanıcı için sistemde ayrı birer shell tanımlanabilir. Shell aynı zamanda giriş yapıldıktan sonra xinit veya startx aracılığıyla da grafiksel arayüzün yüklenmesinden sorumludur.

Şimdiye kadar bahsettiklerimiz genel olarak bilgisayarın açıldığında neler olduğuyla alakalıydı. Şimdi ise grafiksel kısımlara geçebiliriz.

Display Server

Bilgisayarların ekrana şekil, renk vb. şeyleri göstermesine yardımcı olan yazılımlara verilen isimdir. Xorg ve de Wayland akla gelen iki örnek olarak verilebilir. Her ne kadar Wayland daha yeni olsa da, destek açısından Xorg daha avantajlıdır. Ubuntu 17 sürümünde Wayland'e geçiş yapmayı denemiş, kullanıcılardan gelen geri bildirimlerden sonra 18 versiyonunda Xorg'a geri dönüş yapmıştır.

Display Manager

Display Manager'lar bilgisayar açıldığında getty'nin bize sunduğu kullanıcı adı/şifre ekranını grafiksel arayüz halinde sunan araçlardır. Bizlere desktop environment da seçme imkanı sunarlar. Aynı zamanda Login Manager olarak da adlandırılırlar. LightDM, GDM, LXDM gibi yazılımlar örnek verilebilir.

Desktop Environment

Desktop environment'lar bilgisayara giriş yaptıktan sonra bilgisayardaki uygulamaları yönetebilmemiz, bilgisayar ayarlarını değiştirebilmemiz gibi grafiksel araçları sunan yazılımlardır. Gnome, Cinnamon, KDE, Xfce gibi yazılımlar örnek verilebilir.

Not: Herhangi bir Linux dağıtımının kilit ekranını genelde ilk giriş yapılan ekrandan farklıdır. Bunun sebebi giriş yapılan ekranın display manager'ın parçası olması, kilit ekranının ise desktop environment'ın parçası olmasıdır.

Window Manager

Window manager'lar ekrandaki pencerelerin yönetilmesinden sorumlu olan araçlardır. Bir desktop environment'ın parçası olabilecekleri gibi, desktop environment olmadan da kullanılabilirler.Örnek olarak Xfwm Xfce'nin window manager'ı olup, i3 ise tek başına kullanılması için yaratılmış bir window manager'dır.

Yukarıda bahsettiğim kavramlar bizlere Linux'ta karşılaşılan problemlerin çözümünde oldukça yardımcı olacaklar. Bilgisayar açılırken veya kapanırken sorunu yaşadığınız yerin hangi yazılımın parçası olduğunu bularak sorunu daha hızlı çözebilirsiniz. Muhtemelen yüklediğiniz Linux dağıtımında yukarıdaki yazılımların hepsi kurulmuş olacak ve sorun çıkmayacaktır.

Son olarak daha fazla bilgi edinmek isterseniz wiki.archlinux.org'u ziyaret edebilirsiniz. Arch Linux, diğer Linux dağıtımlarının aksine içinde grafiksel arayüz paketlerini barındırmayan bir dağıtımdır. Bu nedenle de wiki'si içerisinde bir Linux dağıtımının ilk kurulumundan itibaren neler yapılması gerektiği açıklayıcı bir biçimde yazılmıştır.

Bir sonraki yazımızda Linux'ta karşılaşılan bazı problemlerin çözümlerine göz atacağız. Görüşmek üzere.

Kaynakça