Linux dosya sistemi yapısı nasıl oluşturulmuştur?

Linux eğitim yazılarımıza dördüncüsü ile devam ediyoruz. Şimdiye kadar, Linux’un nasıl ortaya çıktığından, bir Linux sistemini oluşturan ana bölümlerden, dağıtım kavramından bahsederek; Linux shell ve Linux komut satırına terminaller üzerinden nasıl erişildiğini anlatmaya çalıştık. Bu yazımızda Linux dosya sistemi konusuna göz atacağız.

İlk üç yazımıza göz atmadıysanız, öncelikle bu yazılara bakmanızı tavsiye ediyoruz. Bağlantılarını verelim:

Linux Nedir? Kernel, GNU ve Masaüstü Ortamları Ne İşe Yarar?

En İyi Linux Dağıtımları

Linux Shell Nedir? Linux Komut Satırı Nasıl Kullanılır?

Kabuk Komut İstemcisini (Shell Command Promt) kullanmak

Bir terminal öykünücüsünü (grafiksel terminal) başlattıktan veya bir Linux sanal konsolunda oturum açtıktan sonra, kabuğun komut satırı arayüzüne erişirsiniz. Bu komut satırı arayüzü bizi kabuğa ulaştıran bir geçit gibidir. Kabuk komutlarını girdiğimiz yer burasıdır. Bir önceki yazımızda, bu konudan bahsetmiş ve kullanacağımız varsayılan kabuğun bash olduğunu söylemiştik.

Bir çok Linux dağıtımında varsayılan kabuk bash’tir.

Bash kabuğunun varsayılan istem simgesi dolar işaretidir ($). Bu sembol, kabuğun komut girmenizi beklediğini gösterir. Ubuntu ya da Debian tabanlı sistemler için aşağıdaki şekilde bir görüntüyle karşılaşırsınız:

Buradan kullanıcı adının “taylan” sistemin de “ubuntu” olduğunu anlıyoruz. Sistem ismi “server1” gibi bir isim de olabilirdi, ilk yapılandırma ile alakalı bir isim.

Eğer dolar işareti ($) yerine diyez (#) işareti görüyorsanız, oturumunuz “root” olarak açılmış demektir.

Terminal ekranı komut bekliyor. $ işareti normal bir kullanıcı olduğunu gösteriyor.
Terminaldeki # işareti, kullanıcının “root” yetkisi ile işlem yapacağını gösterir.

Sistem yöneticisi değilseniz ve sisteme müdahale etmeniz gerekmiyorsa, root oturumuyla pek bir işlem yapmanızı tavsiye etmiyoruz. İmkânınız varsa, normal bir kullanıcı oluşturup işlemleri bu kullanıcı üzerinden yürütün. Normal bir sistem kullanıcısı olduğunuzu dolar ($) işaretinden anlayabilirsiniz.

Linux dosya sistemi

Eğer Linux sistemini yeni kullanan ya da tecrübesi olmayan bir kullanıcı iseniz, dosyaların ve klasörlerin neye göre ilişkilendirildiği konusunda kafanız karışabilir.

Öncelikle şunu söyleyelim, Linux sürücü (disk) yollarını harflerle adlandırmaz. Windows’daki gibi fiziksel sürücülerin adı C:\ ya da D:\ değildir.

Mesela, Windows ortamında “teknopusula.txt” adlı dosyanın bulunduğu yolu,

olarak görebilirsiniz. Aynı dosyayı bir taşınabilir belleğin kök dizinine kopyalarsanız yol;

olarak görünür. Windows taşınabilir belleği J:\ harfiyle adlandırmıştır.

Linux dosya sistemi dosyaları “sanal dizin” adı verilen tek bir dizin yapısında saklar. Sanal dizinde, bilgisayarda yüklü olan tüm depolama aygıtlarının dosya yolları bulunur ve tek bir dizin yapısında birleştirilir.

Bu sanal dizin yapısının birleştirildiği dizin “root” (kök dizin) olarak adlandırılır. Windows’takine benzer bir şekilde kök dizinin altında diğer tüm dosya ve klasörler listelenir.

Kök dizini “/” (ileri slaş) ile gösterilir. Klasörler dizin yapısında listelenirken yine ileri slaş simgesi kullanılır. Windows’taki simgenin “\” (geri slaş) olduğuna dikkat edin.

Linux’un gparted programıyla diskleri nasıl gördüğü

Şimdi az önceki teknopusula.txt dosyasının Linux’ta nasıl görüntülendiğine bakalım:

Aynı dosya Linux’e bağlı bir taşınabilir bellekte ise doyanın yolu;

şeklinde görünür.

Dosya yollarını incelediyseniz, dosyaların hangi fiziksel diskte olduğuna dair Windows’taki gibi bir bilgi göremezsiniz.

Linux diskleri nasıl isimlendirir?

Bu konuya hızlıca değinip geçelim. Disklerin “mount” edilmesi konusunu başka bir yazıda ayrıntılı işlemeye çalışacağız.

Önce Windows mantığını kısaca anlatalım:

Diyelim ki bir tane 100 GB boyutlu fiziksel diskiniz var. Eğer tek parça olarak bunu biçimlendirip kurulum yaptıysanız diskiniz tek bir sürücü adıyla C:\ şeklinde adlandırılır. Eğer diskinizi iki parçaya böldüyseniz, C:\ ve D:\ şeklinde iki farklı adla görürsünüz. Ya da 100 GB ve 250 GB boyutlu iki fiziksel disk olduğunu varsayalım. Bölümleme yapmadıysanız C:\ ve D:\ adını alacaklardır. Bunun yanında bir harici disk bağlarsanız bu da sonraki harflerden birini, mesela F:\ adını alabilir.

Windows diskleri harflendirir

Linux için aynı durumlara bakalım.

Tek bir disk bölümlendirilmediyse disk adı : sda

Tek bir disk iki parçaya bölümlendirildiyse : sda1, sda2

İki fiziksel disk bölümlenmediyse : sda, sdb

İki fiziksel disk ve her ikisi iki parçaya bölümlü ise : sda1, sda2, sdb1, sdb2

Tek bir fiziksel disk (sda) varken bir taşınabilir disk adı : sdb ya da sdb1

Yukarıdaki örneklerde SCSI ya da SATA disklerin bağlı olduğunu varsaydık. Baştaki “s” SCSI veya SATA’yı temsil ediyor. IDE diskler için hda gibi bir isimlendirme ile karşılaşabilirsiniz. Detayı şimdilik önemli değil. Sondaki harf ve sayılardan isimlendirme olayı anlaşılmıştır herhalde.

Linux’un isimlendirdiği diskler

İşte bu isimlendirilen diskler kök dizinde bir klasöre bağlanır. Genellikle bu klasör /dev klasörüdür. Farklı bağlanma yöntemleri de mevcut, bunun detayına dediğimiz gibi şimdi girmek istemiyoruz.

Klasöre bağlanmış teknopusula.txt dosyasının yolu harici diskte iken;

yolu ile görünmüştü.

Peki normal diskte neden /dev/sda/home/… şeklinde değil de /home/taylan/Documents klasöründe göründü?

Çünkü Linux, sistem kurulurken birincil diski kök dizinine direkt bağladı. Yani “/” aslında ilk diski temsil ediyor.

Hatta ikincil bir fiziksel ya da mantıksal diski kurulum esnasında “home” dizini için kullanmak istediğinizi belirtirseniz, sdb ya da sda2 diski direkt olarak /home klasörüne bağlanır. “home” klasörü kullanıcı dosyaları için kullanılır.

Temel Linux Klasör Yapısı

Bir Windows işletim sisteminde C:\ diskine girdiğinizde Program Files, Windows, ProgramData, Users gibi klasörlerle karşılaşırsınız. Bunların hangi amaçlarla oluşturulduğunu bir Windows kullanıcısı az çok bilir.

Linux sisteminde ise kök dizine girdiğinizde karşılaşacağınız temel klasörler ve özet amaçlarını aşağıda listeledik.

Klasör Kullanım amacı
/ Sanal dizinin köküdür. Normalde direkt dosya barındırmaz.
/bin Binary klasörüdür. Kullanıcı düzeyindeki GNU araçlarını barındırır.
/boot Boot klasörü. Boot için gerekli dosyaları saklar
/dev Device (cihaz) klasörü. Cihaz bağlantıları için kullanılır.
/etc Sistem konfigürasyon dosyalarını barındırır.
/home Kullanıcı dosyalarını saklar. Her kullanıcı için alt klasör açılır.
/lib Library (kütüphane) klasörüdür. Sistem ve uygulama kütüphane dosyalarını barındırır.
/media Çoğunlukla çıkarılabilir diskler için bağlama noktası olarak kullanılır.
/mnt Mount (bağlama) klasörüdür. Çıkarılabilir diskler için kullanılabilen bir başka bağlama noktası.
/opt Opsiyonel bir klasör. Üçüncü parti uygulamalar ve veriler için kullanılabilir.
/proc Process (işlem) klasörü, varsayılan donanım ve işlem bilgilerinin saklandığı alandır.
/root Root’un (sistem yöneticisi) home dizinidir.
/sbin Sistem binary klasörü, yönetici seviyesindeki GNU araçları içindir.
/run Runtime verileri ve sistem çalışması sırasında oluşan verileri saklar.
/srv Servis klasörü, yerel servis dosyalarını saklar.
/sys Sistem klasörü, sistemsel donanım bilgilerini depolar.
/tmp Geçici (temporary) dosyaların saklandığı ve yok edildiği alandır.
/usr “User binary” klasörü, GNU araç ve verilerinin çoğunun saklandığı yerdir.
/var Variable (değişken) klasörü, günlük dosyaları gibi değişken verilerin tutulduğu alandır.

Bu dizin yapısı Filesystem Hierarchy Standard’a (FHS) göredir. Standart bir müddet önce değişmişti. Hala eski standarda göre dizin yapısını koruyan dağıtımlar da olabilir.

Linux dosya sistemi içindeki Linux kök dizinindeki klasörler

Linux’u grafik arabiriminde kullanıyorsanız bu klasörlere farenizi kullanarak tıklayıp dilediğiniz gibi gezinebilirsiniz ve dosyaları açabilirsiniz.

Ancak Linux’u bir terminal ekranından ya da uzak bir sistemden yine terminal kullanarak yönetiyorsanız, Linux dosya sistemi içindeki klasör ve dosyalar arasında gezinmek için bash komutları kullanmak zorundasınız.

Putty adlı yazılımla uzaktan Linux oturumuna girilebiliyor

Bununla birlikte, Linux sistemlerinin vazgeçilmesi olan bash kodlama ile uğraşacaksanız da dizin yapısında komutlarla nasıl hareket edeceğinizi bilmelisiniz.

Bir sonraki yazımızda Linux dizin yapısında komut istemiyle nasıl gezineceğimizi ve kopyalama, yeniden adlandırma, dosya oluşturma, silme gibi temel işlemleri komut istemiyle nasıl yapacağımızı anlatacağız.

BİR CEVAP BIRAK