Bir dosya sistemi depolama aygıtını (çok büyük) bir bayt dizisi olarak "görür" mü?


12

Bir dosya sisteminin bir depolama aygıtına nasıl yazdığını ve bir aygıttan nasıl okuduğunu bilmek istiyorum.

Bence şu şekilde çalışır:

Bir dosya sistemi depolama aygıtına doğrudan erişmez, bunun yerine depolama aygıtı (depolama aygıtının aygıt sürücüsü tarafından) dosya sistemine (çok büyük) bir bayt dizisi olarak sunulur.

Örneğin, dosya sistemi bir sabit diske erişmek istiyorsa, sabit diski temsil eden bayt dizisine erişecektir.

Bu şekilde bir dosya sistemi her türlü depolama aygıtıyla (geleneksel sabit disk, SSD, USB flash sürücü, vb.) Çalışabilir ve yalnızca depolama aygıtının aygıt sürücüsü değiştirilir.

Bu görüntü az önce açıkladığım şeyi gösteriyor:

resim açıklamasını buraya girin

Anladığım kadarıyla doğru muyum?

Yanıtlar:


15

Linux (ve 1980'lerde dönemi Unix), bir depolama aygıtı (oldukça sık üzerinde disk bölümü bazı sabit disk ya da bazı SSD ) bir blok cihaz (bakınız bu ), böylece bir [alt] dizisi olan blok (ki temel fiziksel G / Ç birimi ). Fiziksel blok boyutunun donanımına bağlıdır (eski IDE diskler 512 bayt blok boyutu vardı, yeni büyük SATA diskleri 4Kbytes bir blok boyutu, okumak zorunda Gelişmiş Biçim wikipage) ve örneğin (a dosya sistemini yaparken mkfs, bkz mke2fs (8)), fiziksel blok boyutunun katı (genellikle 1 dahil iki küçük güç) olan bir mantıksal blok boyutu belirtebilirsiniz. Mantıksal blok adresleme hakkında da okuyun .

Geçmişte (1990'ların Sun3 iş istasyonlarını düşünün) disk, sektörlerde ( CHS wikipage'i okuyun ) organize edilmiş , blok içeren bir sektöre sahip silindirlerden yapılmıştı . Bugün, bunlar hala kalmaktadır, ancak sabit disk denetleyicisi (diskin üzerindeki devre) tarafından sağlanan yapay bir artefakttır. Bazı işletim sistemlerinde, blok aygıt sürücüsü disk kafası hareketini ve dönme gecikmesini en aza indirmek için IO isteklerini yeniden planladı ve yeniden sıraladı .

Bu şekilde bir dosya sistemi her türlü depolama aygıtıyla (geleneksel sabit disk, SSD, USB flash sürücü, vb.) Çalışabilir ve yalnızca depolama aygıtının aygıt sürücüsü değiştirilir.

Evet, ancak şeytan ayrıntılarda gizlidir (örn . SSD'lere özgü TRIM ve Write Amplification hakkında bilgi edinin ). Ve detaylar önemlidir, bu yüzden gerçek uygulama rakamınızdan daha az basittir. Dosya sistemleri hakkında daha fazla bilgi edinin (ve SMB & NFS dahil olmak üzere kümelenmiş ve uzak dosya sistemlerini düşünün ; Mantıksal Birim Yöneticisi hakkında da okuyun ).

İşletim Sistemlerini Okuyun : Üç Kolay Parça (ve kalıcılık kısmı).

Blok cihazların FreeBSD'de gittiğine dikkat edin (aslında karakter ve blok cihazlar için ortak bir soyutlama sağlar). Windows'ta bile işletim sisteminin bölümleri, blok boyutunu vb. Bildiğinden şüpheleniyorum (ancak kontrol etmelisiniz).


Windows ayrıca disklerdeki bölümleri de işler ve her bölüm farklı bir dosya sistemi kullanabilir (belki birinde FAT-32 ve diğerinde NTFS). Dosya sistemi bölümlere blok düzeyinde erişebilir veya bloklar "kümeler" halinde birleştirilebilir. Herhangi bir bölümde, küme boyutu sabitlenir.
Simon B

Bunu biliyordum, çünkü MSDOS daha çok yaptı.
Basile Starynkevitch

Aslında, FreeBSD hala "blok cihazları" dediğiniz şeyi kullanıyor. Bir sabit diske büyük bir blok dizisi dışında erişmenin bir yolu yoktur. Bunlara sadece FreeBSD'de karakter / ham cihazlar denir. Yine de cihaza geniş bir blok dizisi olarak erişiyorlar. FreeBSD'de eksik olan tek şey, dosya sistemi zaten önbellekleme sağladığı için gerekli olmayan cihaz düzeyinde önbelleklemedir.
juhist

3

Basile Starynkevitch'in söylediği her şey doğru. Biraz daha ekleyeceğim. Aslında disk sürücüleri "blok" sürücülerdir, ancak blok cihazlar (ve diğer birçok cihaz) "ham" ve "pişmiş" olmak üzere iki biçimde sunulmuştur. Ham aygıtlar yalnızca yerel depolama yığın boyutlarının katları olan yığınlarda ele alınabilir. Böylece bir ham disk cihazı, sadece bir bayt veya iki değil, aynı anda yalnızca bir veya daha fazla blok okunabilir veya yazılabilir. Pişmiş cihazlar, bu tür daha küçük operasyonlara ve diğer çeşitli özelliklere izin verecek bir katman ekledi.

Dosya sistemleri ham cihazlarla çalıştı ve BS'nin açıkladığı gibi onları büyük bir bayt dizisi olarak değil, büyük bir blok dizisi olarak gördü.

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.