Dosya sistemleri vs bölümler vs dizinler


30

Linux'ta yeniyim, bu yüzden bu soruda karşılaşabileceğiniz olası karışıklıktan dolayı beni bağışlayın.

Anladığım kadarıyla, dosya sistemi bir bölümün ext2, ext3, reiserfs, xfs, vb. Standartlarla nasıl depolandığını / yönetildiğini belirtir. Bazen insanların " directory"

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

Neden bunlara atıfta bulunalım filesystems?

Bunların her biri bir bölümü ise, çünkü biliyorum kadarıyla olarak bu karıştırır beni /usrve /usr/binaynı bölüme olma eğilimi, ama insanlar gördüm hem belirtir /usr filesystemve /usr/bin filesystem.

Eğer filesystemPencere adlı eşdeğerdir burada directorygörünüşte dosya sistemi sadece dizinleri daha şeydir olarak, bana açık değil. Ayrıca, bildiğim kadarıyla, Linux directorykavramı yok; hepsi dosya.


"/ Kök dosya sistemi" nin bir örneğini hiç görmedim. Hangi dosya sistemi "/" ne monte edilirse "kök dosya sistemi" dir. Modern bir Linux dağıtımında olası bazı bağlantı noktaları, "xx" in çeşitli değerleri için "/ boot", "/ home" ve "/ mnt / xx" veya "/ media / xx" olacaktır. Çekirdek 2.x + (?) Dağıtımları "/ proc" ve "/ sys" değerlerine sahip olacaktır, Systemd çeşitli sayısal UID'ler için nnnn "/ var / run / nnnn" bağlantı noktalarına sahiptir. Eski Unix kurulumları "/ usr" NFS üzerinden bağlanabilir, ancak bu kişisel bir Linux dağıtımında pek mümkün değildir. "/ bin" ve "/ usr / bin" normalde ayrı bağlantı noktaları olmaz.
david

Bir kök var , değil mi? Nevers'in ayrı bir dosya sisteminde kaldığını mı kastediyorsunuz?
Kenny,

Sağ. "/ root", "root" kullanıcısının standart giriş dizinidir, ancak genellikle root dosya sistemindeki başka bir dizindir.
david

Bu konu , IMNSHO'nun saçma olduğu Ask Ubuntu'da geniş çapta tartışılmıştır , çünkü AFAIK'te, Ubuntu'da bu kavramların Unix veya Linux'ta başka bir formda olduklarından farklı değildir. Örneğin , "mount" nedir? sadece birkaç gün önce soruldu.
Scott

Sorulardan oldukça etkilendim. Şu anda çok şey anlayabileceğiniz çok az bilgiden ve “/ root dosya sistemi” nin o bölümün monte edilmiş olduğu dosya sistemine atıfta bulunabileceği sonucunu kaçırdığınızı /rootdüşünüyorum. durum.
erikbwork

Yanıtlar:


14

Https://superuser.com/a/293160/38062 de yazdığım gibi :

Buradaki sorun "dosya sistemi" kelimesidir. POSIX / Unix / Linux dünyalarında, birkaç farklı anlama gelmek için kullanılır.

  1. "Dosya sistemi" bazen /işletim sistemi çekirdeği tarafından uygulama yazılımlarına dayanan ve sunulan yazılımların tamamıdır. Bu anlamda, insanlar örneğin "tek bir dosya sistemi ağacına " sahip POSIX işletim sistemlerinden bahseder .
  2. Bir "dosya sistemi" bazen (veya birkaç) bir DASD (ler) in bir (veya daha fazla) dilimidir - belirli bir formata sahip tek bir birim olarak biçimlendirilmiş bitişik disk sektörlerinin bir veya daha fazla koleksiyonu - bazı disk bölümleri ile sınırlandırılmış düzeni. Bu anlamda insanlar " /usrdosya sistemimi biçimlendirmek " diyor. " /usr" burada birimin (beklenen) montaj noktası veya (bazı bölümleme şemalarında) tanımlayıcı etiketidir.
  3. Bir "dosya sistemi" bazen bir dosya sistemi sürücüsü tarafından (yani VFS katmanı) sistemin geri kalanına sunulan soyut bir birleştirilebilir dosya ve dizin ağacıdır. Bu anlamda, insanlar "montaj derler, söz proc dosya sistemine üzerinde /procya da" bir kullanma " tmpfs dosya sistemi için /tmp".

" /usr/binDosya sistemi" gördüğünüzde anlam 1'i görüyorsunuz . Dizine köklü bir dosya sistemi ağacı /usr/bin. Evet, Linux çok yapar dizinleri kavram var.

2 numaralı anlam ve 3 numaralı anlam yanlış okuduğunuz şeydir. İnsanlar vardır değil bahsediyoruz /usr/bindisk dilimleme / bölünmesi ile sınırlanan bir on-disk veri seti olarak. Ayrıca /usr/binbelirli bir dosya sistemi sürücüsü türü veya belirli bir disk birimi biçimi hakkında konuşmuyorlar .

daha fazla okuma

  • Ramesh Bangia (2010). "dosya sistemi". Bilgi Teknolojileri Sözlüğü . Laxmi Yayınları, Ltd. ISBN 9789380298153. s. 224.
  • Dosya Sistemi . "Temel Tanımlar". Açık Grup Baz Özellikleri . Sayı 7 IEEE 1003.1. Açık Grup. 2013.
  • Binh Nguyen (2004-08-16). "dosya sistemi". Linux Sözlüğü . Sürüm 0.16. s. 616.

8

Tabii ki Linux dizin kavramını kullanır. Dizinler kavramı, Windows ile aynıdır.

Dosya sistemleri kavramı, Windows'ta kullanılanlara da çok benzer. Windows genellikle NTFS veya FAT kullanır - Linux genellikle ext2, ext3, ext4 vb. Kullanır, hepsi bu.

Farklı olan, Linux'ta mevcut tüm bölümlerin dosyalarının / dizinlerinin tek bir ağaçta düzenlenmiş olmasıdır. Windows'ta bir harf kullanarak farklı bölümlere atıfta bulunuyorsunuz, fe "a:", "c:", Linux'ta mevcut herhangi bir dosyanın tam yolu "/" ile başlar - kök dizini. Örneğin, hdd'de sistemi önyüklemek için alınan dosyalar ile ayrı bir bölüm var: uygun bir argümanla 'mount' komutunu çalıştırıyorsunuz ve bu bölümün içeriği "/ boot /" yolunda mevcut oluyor. Dolayısıyla, "/ boot" ve "/ home" yolları farklı bölümlerdeki verilere atıfta bulunabilir, bu bölümlerin farklı dosya sistemleri olabilir. Muhtemelen yanlış anlamana sebep oldu.

Fiziksel olarak aynı bölümde bulunan dizinler her zaman "aynı dosya sistemine sahip" olacaktır. Birisi bir dizinin dosya sistemi hakkında konuştuğunda, aslında bu dizinin bulunduğu bölümün dosya sistemi ile ilgilidir.

(Küçük ve büyük olasılıkla önemli olmayan bir düzeltme: bazen dosya sistemi sanaldır ve karşılık gelen herhangi bir bölüm yoktur. Örneğin, "/ proc", dosyalara çok benzeyen bir şey içerir, ancak bu "dosyalar" sanaldır, üzerinde durmazlar. herhangi bir sabit disk ve çalışan işlemler hakkında bilgi içerir ve bu verilere her zamanki dosya benzeri arabirim sağlayan özel bir "procfs" dosya sistemi vardır)


"Bir dizinin dosya sisteminden" bahsettiniz, tüm alt dizinlerine basamaklı geliyor. Bir dizinin ve alt dizinlerinin farklı dosya sistemine sahip olması mümkün mü? Örneğin / a ve / a / b ile / b kendi dosya sistemi F2 ile başka bölüm monte olan bir sahip dosya sistemi F1?
Kenny,

Aynı bölümde bulunan dizinlerin aslında aynı dosya sisteminin bir parçası olup olmadığına gelince, ZFS veya btrfs gibi çok modern dosya sistemleri için biraz bulanık olabilir; Tamamen farklı mountpoint'leri ile paylaşan birkaç dosya sistemi ile bir ZFS birimine sahip olabilirsiniz.
Charles Duffy,

@Kenny Evet, haklısın. Canlı örnek: CD sürücüsüne bir CD yerleştirin. Linux'um CD'yi "/ mount / cdrom" konumunda bağlar. "/ mount" dizini (ve içinde oluşturduğum tüm dosyalar) sabit sürücümde bulunuyor. Ancak "/ mount / cdrom" içeriği zaten CD'de.
lesnik

6

Bir disk bir veya daha fazla bölüme ayrılmıştır . Windows için, genellikle sadece bir tane var, belki bir yerde bir kurtarma bölümü gizleniyor. Bir bölüm diskin mantıksal olarak bitişik bir alanıdır, örneğin "1 ila 10,000,000 arası sektörler".

Bir bölüme bir dosya sistemi kurulabilir. Windows için bu NTFS veya FAT'dir; Linux için bu, extsürümlerden veya diğer çeşitli seçeneklerden biridir.

Bir dosya sisteminin içinde dosyalar ve dizinler bulunur. Linux'un dizinleri var, anlamadığınız fikre nasıl ulaştığınızı bilmiyorum.

Bir işletim sistemi kullanıcıya birden fazla diskte nasıl birden fazla bölüm sunar? Windows'ta, bu ile yapılır sürücü harfleri : C:, D:vb On Linux, hiçbir sürücü harfleri ve her şey ile yapılır montaj noktaları : Belirli bir dizine, farklı bir dosya sistemine yeniden yönlendirme erişimi de (+) Genellikle eğer bir CD insert. veya USB çubuğu /mediaveya altında bir yerde görünecektir /mnt.

/usrve /usr/bingenellikle aynı dosya sisteminde olacaktır ancak olmaları gerekmez. İnsanlar, /usr/binbu ifadeyi kullandıklarında "dizini içeren dosya sistemi" anlamına gelebilir .

(+) Bunu NTFS birleşim noktalarıyla da yapabilirsiniz, ancak insanlar nadiren yapar. Sürücü harfleri tükenene kadar.


Hatalıysam beni düzeltin: Linux'ta, her biri kendi dosya sistemine sahip olan 1 fiziksel disk birden fazla bölüme ayrılabilir mi? Windows'ta bir harddisk'in birkaç bölüm içerme şekline benzer, biri FAT, diğeri NTFS olabilir?
Kenny,

1
Evet, haklısınız: ama benzer değil, tamamen aynı temel mekanizma. Çift önyükleme makinelerinde aynı disk üzerinde NTFS ve ext3 bölümleri bulunabilir ve her işletim sisteminin disk yöneticisi aynı bölüm kümesini görür. Sadece Windows dosyaları görmek için ext3 bölümlerini bağlayamıyor.
pjc50

3

Tüm Linux sistemlerini tek bir bölümde tutmak mümkündür, tüm alt dizinler tek bir dosya sistemindedir.

Bazı dizin alt ağaçlarının farklı dosya sistemlerinde yer alması ile onu birkaç bölüme yaymak da mümkündür. Örneğin, koymak yaygındır /home, /tmp, /usrve /varayrı dosya sistemlerinde. Sorularınızdan birini ele almak için, bazen /usr/binde kendi dosya sistemi üzerinde olacaktır.

Bu planın avantajları var. Örneğin, /varçok sayıda e-posta ile doldurulursa, sistemin geri kalanı etkilenmez. Aynı şekilde, bir dosya sistemi çökme veya başka bir şey nedeniyle bozulmuşsa, diğer dosya sistemleri hala iyidir ve sistemi kurtarmak daha kolaydır.

Sistem önyüklendiğinde, ilk başta yalnızca kök dosya sistemi kullanılabilir. Orada tutulan programlar önyükleme işlemi sırasında çalıştırılır. Bu programlardan biri mount, dosya /etc/fstabsistemindeki dosyadan elde edilen verileri kullanarak birkaç kez çalıştırılır . Bir örnek almak gerekirse: başlangıçta /homekök dosya sistemindeki sıradan bir dizindir. Sonra bu komutu root olarak çalıştırırız:

mount /dev/sda7 /home

Bu, sisteme bölümdeki dosya sisteminin dizine monte/dev/sda7 edilmesi gerektiğini söyler . Şimdi, bu dosya sistemindeki her şeyin altında olduğu düşünülüyor ./home/home

Şu anda neyin monte edildiğini görebilirsiniz df.


3

Bazen bunlara atıfta bulunuruz filesystems, çünkü bazen bu dizinler bağlama noktalarıdır. İstediğin tek soru için çok fazla ...

filesystem iki farklı şeye atıfta bulunabilir ... ya da aslında aynı şeyin iki farklı yönüne bakabilir:

  1. Bir depolama ortamında veri düzenlemek için kullanılan mantıksal yapı.
  2. İşletim sistemi tarafından verilere birleştirilmiş erişim sunmak için kullanılan metodoloji.

Dosya ve dizin kavramı bir mecazdır. Bir bilgisayarda sadece veri var ve tüm medya veri tutabilecek cihazlardan başka bir şey değil. Bazı cihazlar veri okuma ve yazma (örn. HDD), diğer cihazlar sadece okuma verisine izin verir (örn. CD-ROM) ve sadece veri yazmaya izin veren cihazlar (örn. Yazıcı) bile vardır. Verileri yapılandırmak için dosya ve dizin metaforunu kullanırız, böylece aynı anda her şeyden ziyade küçük veri parçalarına erişebiliriz.

Depolama ortamına koyduğumuz dosya sistemleri, örneğin ext4, xfs, yapılandırma kısmını oluşturur. Bunları, veri yığınlarına (dosyalar) etiket koymak ve tüm etiketlerin (dizinlerin) tutarlı bir yapılandırılmış listesine sahip olmak için kullanıyoruz. Yapılandırılmış liste aslında bir ağaç. En önemli yönü bir ağacın tam olarak bir başlangıcı, kökü olmasıdır. Bu yapıyı sürdürmek ve verilerin erişilebilir ve erişilebilir olmasını sağlamak oldukça zor bir iştir, bu yüzden dosya sisteminin sadece bir tadı yoktur.

Dosya sistemlerinin diğer bir yönü de, depolama aygıtlarında depolanan verileri tüm programlara erişilebilir kılmak OS'nin işidir. Bu iki şey tarafından gerçekleştirilir:

  1. İşletim sistemi, dosyalara ve dizinlere erişmek ve bunlarla etkileşim kurmak için tam olarak bir (programlama) arayüz sunar. Programlar / işlemler için, depolama cihazındaki dosya sisteminin ext2, xfs, fat veya her neyse farketmez. Progamlar / süreçler dosyalara ve dizinlere tek tip bir şekilde erişir.

  2. İşletim sistemi tüm depolama ortamlarını, yani dosya sistemlerini tek bir süper yapı içinde düzenler . Programlar, bu üst düzey yapı aracılığıyla dosyalara ve dizinlere erişir ve doğrudan depolama aygıtlarıyla etkileşime girmeleri gerekmez. Bu şekilde programların verinin gerçekte hangi cihazda bulunduğuna dikkat etmesi gerekmez. Bu süper yapı, sıklıkla çekirdeğin "sanal dosya sistemi" olarak adlandırılır.

Bir depolama cihazının dosya sistemini sanal dosya sistemine eklemek, bir dosya sistemini "montaj" olarak adlandırılır. Linux'unuz başlatıldığında, çekirdek sanal dosya sistemini (VFS) oluşturur. Oluşturulduktan hemen sonra boştur ve sadece giriş noktasından, yani kökünden, kopyalanır /. Daha sonra çekirdek, VFS'nin köküne bir dosya sistemi bağlar. Bu bir ramdisk veya hemen bir sabit diskteki bölümdeki bir dosya sistemidir. VFS'nin köküne eklendiğinden, bu bölüm genellikle kök dosya sistemi olarak adlandırılır.

Şimdi satırların bulanıklaştığı kısım geliyor ve depolama aygıtlarındaki ve çekirdek VFS'deki dosya sistemlerinin aslında aynı işletim sistemi görevinin iki yönü olduğunu görüyoruz: Bir kök dosya sisteminin montajı ile VFS, hepsi de çok sayıda dosya ve dizin içeriyor kök bölümünde var. Ancak, her dizin bir "bağlama noktası" olabilir. Bağlantı noktası, VFS'nin giriş noktasını bir depolama aygıtındaki dosya sistemine koyduğu yerdir. Bu, ne zaman bir dizine bir dosya sistemi kurduğumuzda, VFS'ye bu dizinde depolanan verilere erişmek yerine, farklı bir depolama cihazındaki verilere erişeceğimizi söyleriz. Bağlantı noktaları genellikle boş dizinlerdir; bu nedenle, diğer dosya sistemlerini üste takarak verileri erişilemez yapmaz.

İşletim sisteminizi kurduğunuzda, tüm verileri tek bir dosya sistemine koymak isteyip istemediğiniz size kalır, bu da kök dosya sisteminize dönüşür veya verilerinizi birden fazla dosya sistemine bölmek istersiniz. İkincisi, tüm verilerinizi erişilebilir hale getirmek için işletim sisteminizden tüm dosya sistemlerini monte etmesini gerektirir. İşleri nasıl böldüğünüz, sisteminizi nasıl tasarladığınızla ilgili bir sorudur. Bu nedenle, bazen kurulumunuzdan tanıdığınız dizinlere dosya sistemleri denir.

Genelde sahip olduğumuz bilgisayarlar için kurulumunuzu birden fazla dosya sistemine bölmek artık gerekli değildir. Yine de bunu yapmak için iyi nedenler olabilir, ancak bu kayıtın kapsamı dışında.

Bu yazının geri kalan kısmını kısa tutmak için: Bölmeler, depolama aygıtlarında veri yapılandırmanın başka bir yoludur. Bölmeler ile, bir fiziksel depolama aygıtından bitişik depolama alanı açılır ve bunları işletim sistemine ayrı depolama aygıtları olarak sunar (bunlara VFS'ye monte etmek için dosya sistemlerini yerleştirebilir). Bunu yapmanın bir nedeni, tek bir sabit diske sahip olmak, ancak birçok farklı dosya sistemi kullanmak istiyor olabilir. Kök dosya sisteminin üzerinde yaşadığı bölüme genellikle kök bölüm denir.


1

Biraz kafa karışıklığı yapıyorsun. Filesystemdosyaların bir sabit disk veya CD-ROM gibi bir depolama aygıtında veya toplu bellekte ve bazı durumlarda da RAM'de bulunduğu ve düzenlendiği bir mekanizmayı belirtir.

Windows bile, NTFSveya daha önceki gibi dosya sistemlerini kullanır FAT.

Örnekte linux ve unix sistemleri için ortak bir uygulama gösterilmiş olup, kendi sistemlerine mount point adındaki dizinlere monte edilmiş farklı dosya sistemlerinden oluşur. Bu, sorun olması durumunda, hasarı bir veya daha fazla ile sınırlar, ancak tüm dosya sistemlerinde sınırlamaz.

Öyleyse, FS dizine eşdeğer değildir ve ayrıca Linux'ta dizinler vardır, bunlar özel bir dosya türüdür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.