Dosya sistemi türleri ve özellikleri. Bir ilerleme motoru olarak flash bellek. Dosya adı türleri

  • 22.06.2019

Merhaba sevgili kullanıcı, bu makale dosyalar gibi bir konuya odaklanacak. Yani, dikkate alacağız: Dosya yönetimi, dosya türleri, dosya yapısı, dosya öznitelikleri.

Dosya sistemi

İşletim sisteminin ana görevlerinden biri, disklerde depolanan verilerle çalışırken kullanıcıya kolaylık sağlamaktır. Bunu yapmak için işletim sistemi, saklanan verilerin fiziksel yapısını, Norton Commander, Far Manager veya Windows Explorer gibi yardımcı programlar tarafından ekranda görüntülenen bir dizin ağacı olarak uygulanan bazı kullanıcı dostu mantıksal modellerle değiştirir. Bu modelin temel unsuru dosya hangisiyle aynı dosya sistemi genel olarak, hem mantıksal hem de fiziksel yapı ile karakterize edilebilir.

Dosya yönetimi

Dosya- veri okumak ve yazmak için tasarlanmış adlandırılmış bir harici bellek alanı.

Dosyalar güçten bağımsız bellekte saklanır. OP'de bir dosya sistemini simüle etmek için bir yapı oluşturulduğunda, bir istisna ramdisktir.

Dosya sistemi(FS), adlandırılmış veri kümelerine - dosyalara oluşturma, depolama ve erişim organizasyonunu sağlayan bir işletim sistemi bileşenidir.

Dosya sistemi şunları içerir: Dosya sistemi şunları içerir:

  • Diskteki tüm dosyaların toplanması.
  • Dosyaları yönetmek için kullanılan veri yapıları kümeleri (dosya dizinleri, dosya tanımlayıcıları, boş ve kullanılmış disk alanı tahsis etmek için tablolar).
  • Dosyalar üzerinde çeşitli işlemleri uygulayan bir sistem yazılımı araçları kompleksi: oluşturma, yok etme, okuma, yazma, adlandırma, arama.

FS tarafından çözülen görevler, hesaplama sürecini bir bütün olarak düzenleme şekline bağlıdır. En basit tür, tek kullanıcılı ve tek programlı işletim sistemlerinde FS'dir. Böyle bir FS'deki ana işlevler, aşağıdaki görevleri çözmeyi amaçlar:

  • Dosya adlandırma.
  • Uygulamalar için programlama arayüzü.
  • FS mantıksal modelini veri ambarının fiziksel organizasyonuyla eşleştirme.
  • Elektrik kesintilerine, donanım ve yazılım hatalarına karşı FS esnekliği.

FS görevleri, tek kullanıcı için çalışmak üzere tasarlanmış, ancak aynı anda birkaç işlemi çalıştırmayı mümkün kılan tek kullanıcılı çok görevli işletim sistemlerinde daha karmaşık hale gelir. Yukarıda listelenen görevlere yeni bir görev eklenir - birden çok işlemden bir dosyanın paylaşılması.

Bu durumda, dosya paylaşılan bir kaynaktır; bu, FS'nin bu tür kaynaklarla ilişkili tüm karmaşık sorunları çözmesi gerektiği anlamına gelir. Özellikle: Dosyayı ve parçalarını bloke etme, kopyaları uzlaştırma, yarışları önleme, kilitlenmeleri ortadan kaldırma araçları sağlanmalıdır. Çok kullanıcılı sistemlerde başka bir görev belirir: Bir kullanıcının dosyalarını başka bir kullanıcının yetkisiz erişimine karşı korumak.

Bir ağ işletim sisteminin parçası olarak çalışan FS'nin işlevleri daha da karmaşık hale geliyor; korumayı organize etmesi gerekiyor Dosyalar bir kullanıcının başka bir kullanıcı tarafından yetkisiz erişimden korunması.

Ana amaç dosya sistemi ve karşılık gelen dosya yönetim sistemleri- dosyalar olarak organize edilmiş dosyaların uygun yönetiminin organizasyonu: İhtiyacımız olan kaydın belirli fiziksel adreslerini gösteren verilere düşük seviyeli erişim yerine, dosya adını ve içindeki kaydı belirten mantıksal erişim kullanıyoruz.

"Dosya sistemi" ve "dosya yönetim sistemi" terimleri ayırt edilmelidir: dosya sistemi, her şeyden önce, dosyalar olarak düzenlenen verilere erişim ilkelerini tanımlar. Ve "dosya yönetim sistemi" terimi, dosya sisteminin belirli bir uygulamasıyla ilgili olarak kullanılmalıdır, yani. belirli bir işletim sistemindeki dosyalarla çalışmayı sağlayan bir dizi yazılım modülüdür.

Örnek

FAT (dosya tahsis tablosu) dosya sistemi, bir dosya yönetim sistemi olarak birçok uygulamaya sahiptir.

  • İlk PC'ler için geliştirilen sisteme basitçe FAT adı verildi (şimdi sadece FAT-12 olarak adlandırılıyor). Disketlerle çalışmak üzere tasarlandı ve bir süre sabit disklerle çalışmak için kullanıldı.
  • Daha sonra daha büyük sabit disklerle çalışacak şekilde geliştirildi ve bu yeni uygulamaya FAT-16 adı verildi. bu ad, MS-DOS'un kendisinin SUF'si ile ilgili olarak da kullanılır.
  • FMS'nin OS / 2 uygulamasına süper FAT denir (ana fark, her dosya için genişletilmiş öznitelikleri destekleme yeteneğidir).
  • Windows 9x / NT, vb. için bir SUF sürümü de vardır. (FAT-32).

Dosya türleri

Normal dosyalar: kullanıcının girdiği veya sistem ve kullanıcı programlarının çalışması sonucunda oluşan keyfi nitelikteki bilgileri içerir. Normal bir dosyanın içeriği, onunla birlikte çalışan uygulama tarafından belirlenir.

Normal dosyalar iki tür olabilir:

  1. Yazılım(yürütülebilir) - işletim sisteminin komut dilinde yazılmış ve bazı sistem işlevlerini yerine getiren programlardır (..exe, .com, .bat uzantılarına sahiptir).
  2. Veri dosyaları- diğer tüm dosya türleri: metin ve grafik belgeleri, elektronik tablolar, veritabanları vb.

Kataloglar Bir yandan, herhangi bir nedenle kullanıcı tarafından birleştirilen bir dosya grubudur (örneğin, oyun programları içeren dosyalar veya bir yazılım paketini oluşturan dosyalar) ve diğer yandan, özel bir dosya türüdür. bazı resmi olmayan kriterlere (dosya türü, diskteki konum, erişim hakları, oluşturma ve değiştirme tarihi) göre kullanıcılar tarafından gruplandırılmış bir dizi dosya hakkında sistem yardım bilgilerini içerir.

Özel dosyalar Dosyalara ve harici cihazlara erişim mekanizmasını birleştirmek için kullanılan G / Ç cihazlarıyla ilişkili sahte dosyalardır. Özel dosyalar, kullanıcının dosyalardan olağan yazma veya dosyalardan okuma yoluyla G/Ç işlemlerini gerçekleştirmesini sağlar. Bu komutlar önce FS programları tarafından işlenir ve ardından, isteğin yürütülmesinin bir aşamasında, işletim sistemi, ilgili aygıtı (PRN, LPT1 - yazıcı bağlantı noktası için) kontrol etmek için komutlara dönüştürülür (sembolik adlar, işletim sistemi için - bunlar dosyalar), CON - klavye için).

Örnek... Con text1'i kopyalayın (klavye çalışması).

dosya yapısı

dosya yapısı- diskteki tüm dosyalar ve aralarındaki ilişkiler (dosyaların diskte depolanma sırası).

Dosya yapısı türleri:

  • basit, veya tek seviye: dizin, doğrusal bir dosya dizisidir.
  • hiyerarşik veya çok seviyeli: bir dizinin kendisi başka bir dizinin parçası olabilir ve içinde birçok dosya ve alt dizin içerebilir. Hiyerarşik yapı iki tipte olabilir: "Ağaç" ve "Ağ". Dosyanın yalnızca bir dizine (OS MS-DOS, Windows) ve "Ağ" girmesine izin veriliyorsa, dizinler bir "Ağaç" oluşturur - dosya aynı anda birkaç dizine girebiliyorsa (UNIX).
  • Dosya yapısı, dizinlerin ve dosyaların hiyerarşisini açıklayan bir grafik olarak gösterilebilir:



Dosya adı türleri

Dosyalar adlarıyla tanımlanır. Kullanıcılar dosya verir sembolik isimler, bu, hem kullanılan karakterler hem de adın uzunluğu üzerindeki işletim sistemi kısıtlamalarını hesaba katar. Erken dosya sistemlerinde bu sınırlar oldukça dardı. popüler olanda yani FAT dosya sistemi adların uzunluğu iyi bilinen 8.3 şemasıyla sınırlıdır (adın kendisi için 8 karakter, ad uzantısı için 3 karakter) ve UNIX System V'de bir ad 14 karakterden fazla olamaz.

Bununla birlikte, bir dosyaya gerçekten anımsatıcı bir ad vermenize izin verdiğinden, kullanıcının uzun adlarla çalışması çok daha uygundur, bu sayede yeterince uzun bir süre sonra bile dosyanın ne olduğunu hatırlamak mümkün olacaktır. içerir. Bu nedenle, modern dosya sistemleri genellikle uzun sembolik dosya adlarını destekler.

Örneğin, Windows NT, NTFS dosya sisteminde bir dosya adının sonlandırıcı boş karakter hariç 255 karaktere kadar olabileceğini belirtir.

Uzun adlara geçmek, kısa adlar kullanan önceden oluşturulmuş uygulamalarla uyumluluk sorununa yol açar. Uygulamaların önceki sözleşmelere uygun olarak dosyalara erişmesi için, dosya sisteminin uzun adlara sahip dosyalara eşdeğer kısa adlar (takma adlar) sağlayabilmesi gerekir. Bu nedenle, önemli görevlerden biri, karşılık gelen kısa isimlerin üretilmesi sorunudur.

Sembolik isimler üç tip olabilir: basit, bileşik ve göreceli:

  1. Basit isim aynı dizindeki bir dosyayı tanımlar, sembolün terminolojisi ve adın uzunluğu dikkate alınarak dosyalara atanır.
  2. Ad Soyad yolun kökten verilen dosyaya, disk adına, dosya adına geçtiği tüm dizinlerin basit sembolik adları zinciridir. yani tam adı bileşik, basit adların işletim sistemi sınırlayıcısı ile birbirinden ayrıldığı.
  3. Dosya da tanımlanabilir akraba adı... Göreceli dosya adı, "geçerli dizin" terimiyle tanımlanır. Her an, dizinlerden biri günceldir ve bu dizin, işletim sisteminin komutuyla kullanıcının kendisi tarafından seçilir. Dosya sistemi, tam nitelikli bir dosya adı oluşturmak için göreli adların tamamlayıcısı olarak kullanılabilmesi için geçerli dizinin adını yakalar.

Ağaç benzeri dosya yapısında, bir dosya ile tam adı - “bir dosya - bir tam ad” arasında bire bir yazışma vardır. Bir ağ dosya yapısında, bir dosya birkaç dizine dahil edilebilir, bu da birkaç tam ada sahip olabileceği anlamına gelir; burada yazışma doğrudur - "bir dosya - birçok tam ad".

2.doc dosyası için, geçerli dizinin 2008_year olduğunu varsayarak, üç tür adı da tanımlayın.

  • Basit ad: 2.doc
  • Tam ad: C: \ 2008_year \ Documents \ 2.doc
  • Göreceli ad: Belgeler \ 2.doc

Dosya öznitelikleri

Nitelikler bir dosyanın önemli bir özelliğidir. Öznitellikler Dosyaların özelliklerini açıklayan bilgidir. Olası dosya özniteliklerine örnekler:

  • Salt okunur bayrak;
  • "Gizli dosya" imzalayın (Gizli);
  • "Sistem dosyasını" (Sistem) imzalayın;
  • Arşiv dosyası özniteliği;
  • Dosya türü (normal dosya, dizin, özel dosya);
  • Dosyanın sahibi;
  • Dosya yaratıcısı;
  • Dosya erişim şifresi;
  • İzin verilen dosya erişim işlemleri hakkında bilgi;
  • Oluşturma zamanı, son erişim ve son değişiklik;
  • Geçerli dosya boyutu;
  • Maksimum dosya boyutu;
  • "Geçici (işlem tamamlandıktan sonra silin)" imzalayın;
  • Engelleme işareti.

Farklı türdeki dosya sistemlerinde, dosyaları karakterize etmek için farklı öznitelik kümeleri kullanılabilir (örneğin, tek kullanıcılı bir işletim sisteminde, öznitelikler kümesi, kullanıcı ve güvenlikle ilgili özelliklerden (dosya oluşturucu, dosya erişimi için parola, vb.) yoksun olacaktır. .).

Kullanıcı, dosya sistemi tarafından bu amaç için sağlanan araçları kullanarak özniteliklere erişebilir. Tipik olarak, herhangi bir özelliğin değerlerini okumanıza izin verilir, ancak yalnızca bazılarını değiştirmek için, örneğin dosyanın izinlerini değiştirebilirsiniz, ancak oluşturma tarihini veya mevcut dosya boyutunu değiştiremezsiniz.

Dosya izinleri

Bir dosyaya erişim haklarının belirlenmesi, her kullanıcı için belirli bir dosyaya uygulayabileceği bir dizi işlemin tanımlanması anlamına gelir. Farklı dosya sistemlerinin kendi farklılaştırılmış erişim işlemleri listesi olabilir. Bu liste aşağıdaki işlemleri içerebilir:

  • dosya oluşturma.
  • dosyanın imhası.
  • bir dosyaya yazma.
  • bir dosya açmak.
  • dosyayı kapatıyoruz.
  • bir dosyadan okuma.
  • dosya ekleme.
  • dosyada ara.
  • dosya özniteliklerini alma.
  • yeni öznitelik değerlerinin ayarlanması.
  • yeniden adlandırma.
  • dosya yürütme.
  • bir dizini okumak, vb.

En genel durumda erişim hakları sütunların sistemdeki tüm dosyalara, satırlar - tüm kullanıcılara karşılık geldiği ve izin verilen işlemlerin satır ve sütunların kesişiminde gösterildiği bir erişim hakları matrisi ile tanımlanabilir:

Bazı sistemlerde kullanıcılar ayrı kategorilere ayrılabilir. Aynı kategorideki tüm kullanıcılar için tek tip erişim hakları belirlenir, örneğin bir UNIX sisteminde tüm kullanıcılar üç kategoriye ayrılır: dosyanın sahibi, grubunun üyeleri ve diğer herkes.

FAT32: Küçük çıkarılabilir ortamlarda kullanılan eski bir Windows sistemi. Küçük depolama aygıtlarında veya dijital kameralar, oyun konsolları, set üstü kutular ve yalnızca FAT32'yi destekleyen diğer aygıtlarla uyumluluk için kullanılır.

NTFS: Windows'un Win XP'den başlayarak modern sürümleri - bölümleri için kullanın. Harici ortam FAT32 ile biçimlendirilir, büyük 1 TB harici sabit sürücüler NTFS ile biçimlendirilir.

HFS +: Macintosh bilgisayarlar, harici HFS + ortamını biçimlendirmenin yanı sıra dahili bölümleri için HFS + kullanır. Mac, dosyaları FAT32'ye okur ve yazar, ancak varsayılan olarak yalnızca NTFS'yi okur. NTFS biçiminde yazmak için Macintosh, üçüncü taraf yazılımı gerektirir.

Ext2 / Ext3 / Ext4: Linux'ta bulundu. Ext2- Bu daha eski bir dosya sistemidir ve günlük kaydı gibi önemli özelliklerden yoksundur - ext2 sürücüsüne yazarken güç kapatılırsa veya bilgisayar yeniden başlatılırsa, veriler kaybolabilir. Ext3 hız pahasına güvenilirlik özellikleri ekler. Uzm4çoğu Linux dağıtımı için daha modern, daha hızlı ve standart bir sistem olduğu ortaya çıktı ve daha hızlı. Win ve Mac, Ext2 / Ext3 / Ext4'ü desteklemez - dosyalara erişmek için ek bir araca ihtiyacınız vardır. Bu nedenle, Linux bölümlerini ext4 olarak biçimlendirmek ve diğer işletim sistemleriyle uyumluluk gerekiyorsa, FAT32 veya NTFS ile biçimlendirilmiş çıkarılabilir aygıtları bırakmak genellikle idealdir. Linux hem FAT32 hem de NTFS'ye okur ve yazar.

Btrf'ler: Geliştirme aşamasında, Linux için oluşturuldu. Şu anda çoğu Linux dağıtımında standart değil, ancak Btrfs yakında liderliği alacak. Amaç, Linux'un daha fazla depolama için ölçeğini genişletmesine olanak tanıyan ek işlevsellik sağlamaktır.

Takas: Linux "swap" bir dosya sistemine sahip değildir. "Takas" olarak biçimlendirilmiş bir bölüm, yalnızca işletim sistemi takas alanı olarak kullanılır - Windows'taki bir sayfa dosyasına benzer, ancak özel bir bölüm gerektirir.

Harici USB sürücüler için dosya sistemleri

Tüm harici sürücülerin ayrıca kendi dosya sistemleri vardır:

  • YAĞ- FS, Microsoft şirketi tarafından geliştirilmiştir, hafıza kartlarında ve usb flash sürücülerinde en yaygın olanıdır. Video kamera, TV, DVD oynatıcı, müzik merkezi gibi ev aletlerinde kullanılır. Sınırlama, maksimum 4 GB dosya boyutuna sahip olmasıdır.
  • exFAT- Microsoft tarafından oluşturulmuş, FAT'ın genişletilmiş versiyonu, flash cihazlar için kullanılır. Dosyaların boyutuna ve bölümlerin hacmine ilişkin kısıtlamalar kaldırıldı. Dezavantaj: Çoğu tüketici aygıtı ve Win XP'nin ilk sürümleri tarafından desteklenmez.
  • FFS2- 1990'da oluşturuldu ve Microsoft tarafından patentlendi. Flaş kartlar için en eski FS'lerden biri olan FFS1 sistemine devam edildi.
  • JFFS- NOR-usb-media için log-yapılandırılmış Linux sistemi.
  • JFFS2- flash bellek cihazlarında kullanılır. JFFS takipçisi. Nand cihazlarını, performans iyileştirmelerini destekler. Büyük flash sürücülerle çalışma zorluğu.
  • LogFS- geliştirme aşamasında, Linux için kullanılır, JFFS2'nin yerini alır. Büyük flash sürücülerin hızlı yerleşimi için geliştirildi.
  • YAFFS- NAND-flash için tasarlanmıştır, NOR-flash sürücülerde kullanılabilir.

Akıllı telefon neden programları hafıza kartından başlatamıyor? Ext4, ext3'ten temel olarak nasıl farklıdır? FAT yerine NTFS olarak biçimlendirilen bir flash sürücü neden daha uzun yaşar? F2FS ile ilgili temel sorun nedir? Cevaplar, dosya sistemlerinin yapısının özelliklerinde yatmaktadır. Onlar hakkında konuşacağız.

Tanıtım

Dosya sistemleri, verilerin nasıl depolanacağını belirler. Kullanıcının hangi kısıtlamalarla karşılaşacağını, okuma ve yazma işlemlerinin ne kadar hızlı olacağını ve sürücünün ne kadar süreyle hatasız çalışacağını belirlerler. Bu, özellikle bütçe SSD'leri ve küçük kardeşleri - flash sürücüler için geçerlidir. Bu özellikleri bilerek, herhangi bir sistemden maksimumu çıkarabilir ve belirli görevler için kullanımını optimize edebilirsiniz.

Önemsiz olmayan bir şey yapmanız gerektiğinde dosya sisteminin türünü ve parametrelerini seçmeniz gerekir. Örneğin, en sık yapılan dosya işlemlerini hızlandırmak istiyorsunuz. Dosya sistemi düzeyinde, bu birkaç yolla başarılabilir: indeksleme hızlı aramalar sağlar ve boş blokların önceden ayrılması, sık değişen dosyaların üzerine yazmayı kolaylaştıracaktır. RAM'deki verileri önceden optimize etmek, gerekli G/Ç miktarını azaltacaktır.

Tembel yazma, veri tekilleştirme ve diğer gelişmiş algoritmalar gibi modern dosya sistemlerinin özellikleri, çalışma süresinin artmasına yardımcı olur. TLC bellek yongaları, flash sürücüler ve bellek kartlarına sahip ucuz SSD'ler için özellikle uygundur.

Farklı disk dizileri katmanları için ayrı optimizasyonlar mevcuttur: örneğin, dosya sistemi hafif birim yansıtmayı, anlık görüntüleri veya bir birimi çevrimdışına almadan dinamik ölçeklendirmeyi destekleyebilir.

Siyah kutu

Kullanıcılar çoğunlukla varsayılan olarak işletim sistemi tarafından sunulan dosya sistemiyle çalışır. Nadiren yeni disk bölümleri oluştururlar ve ayarları hakkında daha az düşünürler - sadece önerilen parametreleri kullanırlar ve hatta önceden biçimlendirilmiş medya satın alırlar.

Windows hayranları için her şey basittir: tüm disk bölümlerinde NTFS ve flash sürücülerde FAT32 (veya aynı NTFS). Bir NAS varsa ve içinde başka bir dosya sistemi kullanılıyorsa, çoğunluk için algının ötesinde kalır. Sadece ağ üzerinden ona bağlanırlar ve dosyaları bir kara kutudan indirirlermiş gibi indirirler.

Android'li mobil cihazlarda ext4 çoğunlukla dahili bellekte ve FAT32 microSD kartlarda bulunur. Apple için ne tür bir dosya sistemine sahip oldukları hiç önemli değil: HFS +, HFSX, APFS, WTFS ... onlar için sadece en iyi tasarımcılar tarafından çizilmiş güzel klasör ve dosya simgeleri var. Linuxoid'ler en zengin seçeneğe sahiptir, ancak hem Windows hem de macOS'ta işletim sistemine özgü olmayan dosya sistemleri için destek ekleyebilirsiniz - daha sonra daha fazlası.

Ortak kökler

Yüzden fazla farklı dosya sistemi oluşturuldu, ancak bir düzineden biraz fazlası ilgili olarak adlandırılabilir. Hepsi kendi özel uygulamaları için tasarlanmış olsa da, çoğu kavramsal olarak ilişkiliydi. Benzerdirler çünkü aynı türde sunum yapısı (meta) verilerini kullanırlar - B-ağaçları ("bi-ağaçlar").

Herhangi bir hiyerarşik sistemde olduğu gibi, B-ağacı kök kayıtta başlar ve daha sonra son öğelere, dosyalar ve öznitelikleri hakkındaki bireysel kayıtlara veya "yapraklara" kadar dallanır. Böyle bir mantıksal yapı oluşturmanın temel amacı, birkaç terabaytlık sabit diskler veya daha etkileyici RAID dizileri gibi büyük dinamik dizilerdeki dosya sistemi nesnelerinin aranmasını hızlandırmaktı.

B-ağaçları, aynı işlemleri gerçekleştirirken diğer B-ağaç türlerinden çok daha az disk erişimi gerektirir. Bu, B ağaçlarındaki son nesnelerin hiyerarşik olarak aynı yükseklikte yer alması ve tüm işlemlerin hızının ağacın yüksekliği ile orantılı olması nedeniyle elde edilir.

Diğer dengeli ağaçlar gibi, B ağaçları da kökten yaprağa kadar aynı yol uzunluğuna sahiptir. Büyümek yerine, daha fazla dallanırlar ve daha fazla genişlikte büyürler: B-ağacındaki tüm dal noktaları, alt nesnelere birçok referansı saklar, bu da onları daha az çağrıda bulmayı kolaylaştırır. Çok sayıda işaretçi, en uzun disk işlemlerinin sayısını azaltır - keyfi blokları okurken kafa konumlandırma.

B-ağaçları kavramı yetmişli yıllarda formüle edildi ve o zamandan beri çeşitli iyileştirmelerden geçti. NTFS, BFS, XFS, JFS, ReiserFS ve birçok DBMS'de şu veya bu şekilde uygulanmaktadır. Hepsi veri organizasyonunun temel ilkeleri açısından kuzenler. Farklılıklar, genellikle oldukça önemli olan ayrıntılarla ilgilidir. İlgili dosya sistemlerinin dezavantajı da yaygındır: hepsi SSD'lerin ortaya çıkmasından önce bile disklerle çalışmak üzere yaratılmıştır.

Bir ilerleme motoru olarak flash bellek

Katı hal sürücüler, yavaş yavaş disk sürücülerin yerini alıyor, ancak şimdiye kadar onlardan devralınan dosya sistemlerini kullanmak zorunda kaldılar. İlkeleri disk aygıtlarından farklı olan flash bellek dizileri üzerine kuruludurlar. Özellikle flash belleğin yazmadan önce silinmesi gerekir ve NAND çiplerinde bu işlem tek tek hücreler düzeyinde yapılamaz. Sadece bir bütün olarak büyük bloklar için mümkündür.

Bu sınırlama, NAND belleğinde tüm hücrelerin, her birinin kontrol veriyoluna yalnızca bir ortak bağlantısı olan bloklar halinde birleştirilmesi gerçeğinden kaynaklanmaktadır. Sayfa organizasyonunun ayrıntılarına girmeyeceğiz ve tüm hiyerarşiyi boyamayacağız. Önemli olan, hücrelerle grup işlemlerinin prensibi ve flash bellek bloklarının boyutlarının genellikle herhangi bir dosya sisteminde adreslenen bloklardan daha büyük olmasıdır. Bu nedenle, NAND flash'lı sürücüler için tüm adresler ve komutlar, FTL (Flash Çeviri Katmanı) soyutlama katmanı aracılığıyla çevrilmelidir.

Flash bellek denetleyicileri, disk aygıtlarının mantığıyla uyumluluk ve yerel arabirimlerinin komutları için destek sağlar. Genellikle FTL, bellenimlerinde uygulanır, ancak ana bilgisayarda (kısmen) çalışabilir - örneğin, Plextor, SSD'leri için yazmayı hızlandıran sürücüler yazar.

FTL olmadan yapamazsınız, çünkü belirli bir hücreye bir bit yazmak bile bir dizi işlemin başlatılmasına yol açar: denetleyici gerekli hücreyi içeren bir bloğu arar; blok tamamen okunur, önbelleğe veya boş alana yazılır, ardından tamamen silinir ve ardından gerekli değişikliklerle yeniden yazılır.

Bu yaklaşım ordudaki gündelik hayatı andırıyor: Bir askere emir vermek için çavuş genel bir düzen kuruyor, zavallıyı düzensizliğe çağırıyor ve geri kalanlara dağılmalarını emrediyor. Şimdi nadir bulunan NOR hafızasında, organizasyon spetsnazdı: her hücre bağımsız olarak kontrol edildi (her transistörün bireysel bir teması vardı).

Denetleyicilerin daha fazla görevi vardır, çünkü her nesil flash bellekle, yoğunluğunu artırmak ve veri depolama maliyetini azaltmak için üretiminin teknik süreci azalır. Teknolojik standartlarla birlikte çiplerin tahmini ömrü de azalmaktadır.

Tek seviyeli SLC hücrelerine sahip modüller, 100 bin veya daha fazla yeniden yazma döngüsü beyan edilmiş bir kaynağa sahipti. Birçoğu hala eski flash sürücülerde ve CF kartlarda çalışıyor. Kurumsal sınıf MLC (eMLC), kaynağı 10 ila 20 bin aralığında talep ederken, olağan tüketici sınıfı MLC'de 3-5 bin olduğu tahmin ediliyor. Bu tür bellek, kaynağı neredeyse bin döngüye ulaşan daha ucuz TLC tarafından aktif olarak doldurulur. Flash belleğin ömrünü kabul edilebilir bir seviyede tutmak, yazılım tweaks ile yapılmalı ve yeni dosya sistemleri de bunlardan biri haline geliyor.

Üreticiler başlangıçta dosya sisteminin önemsiz olduğunu varsaydılar. Denetleyicinin kendisi, yükü aralarında en uygun şekilde dağıtarak, herhangi bir türden kısa ömürlü bir bellek hücresi dizisini sağlamalıdır. Dosya sistemi sürücüsü için normal bir diski simüle eder ve kendisi herhangi bir erişimde düşük seviyeli optimizasyonlar gerçekleştirir. Bununla birlikte, pratikte optimizasyon, farklı cihazlar için büyülüden hayali olana kadar değişir.

Kurumsal SSD'lerde yerleşik denetleyici küçük bir bilgisayardır. Çok büyük bir arabelleğe sahiptir (yarım gig ve daha fazlası) ve verilerle çalışmanın verimliliğini artırmak için birçok yöntemi destekler, böylece gereksiz yeniden yazma döngülerinden kaçınır. Çip, önbellekteki tüm blokları düzenler, tembel yazma gerçekleştirir, anında tekilleştirme gerçekleştirir, bazı blokları rezerve eder ve arka planda diğerlerini temizler. Tüm bu sihir, işletim sistemi, programlar ve kullanıcı tarafından tamamen fark edilmeden gerçekleşir. Bunun gibi bir SSD ile, hangi dosya sisteminin kullanıldığı gerçekten önemli değil. Dahili optimizasyonların performans ve kaynak üzerinde harici optimizasyonlardan çok daha büyük etkisi vardır.

Bütçe SSD'leri (ve daha da fazlası - flash sürücüler) çok daha az akıllı denetleyiciyle donatılmıştır. İçlerindeki önbellek kesilmiş veya eksiktir ve gelişmiş sunucu teknolojileri hiç kullanılmamaktadır. Hafıza kartlarında, denetleyiciler o kadar ilkeldir ki, çoğu zaman orada olmadıkları iddia edilir. Bu nedenle, flash belleğe sahip ucuz cihazlar için, öncelikle özel dosya sistemleri kullanılarak harici yük dengeleme yöntemleri geçerliliğini korur.

JFFS'den F2FS'ye dönüştürücü

Flash belleğin organizasyon ilkelerini dikkate alacak bir dosya sistemi yazmaya yönelik ilk girişimlerden biri JFFS - Günlük Tutma Flash Dosya Sistemi idi. Başlangıçta, İsveçli Axis Communications şirketi tarafından yapılan bu geliştirme, Axis'in doksanlı yıllarda ürettiği ağ cihazlarının bellek verimliliğini artırmaya odaklandı. JFFS'nin ilk sürümü yalnızca NOR belleğini destekledi, ancak ikinci sürümde zaten NAND ile arkadaş oldu.

JFFS2 şu anda sınırlı kullanımda. Çoğunlukla hala gömülü sistemler için Linux dağıtımlarında kullanılmaktadır. Yönlendiricilerde, IP kameralarda, NAS'ta ve Nesnelerin İnterneti'ndeki diğer düzenli cihazlarda bulunabilir. Genel olarak, az miktarda güvenilir belleğin gerekli olduğu her yerde.

JFFS2 için bir başka geliştirme çabası, düğümleri ayrı bir dosyada depolayan LogFS idi. Bu fikrin yazarları, IBM Jörn Engel'in Alman bölümünün bir çalışanı ve Osnabruck Üniversitesi Robert Mertens'te öğretim görevlisidir. LogFS için kaynak kodu GitHub'da mevcuttur. Üzerindeki son değişikliğin dört yıl önce yapılmış olmasına bakılırsa LogFS popülerlik kazanmamış.

Ancak bu girişimler, başka bir özel dosya sisteminin ortaya çıkmasına neden oldu - F2FS. Dünyada üretilen flash belleğin büyük bir bölümünü oluşturan Samsung Corporation tarafından geliştirilmiştir. Samsung, kendi cihazları ve diğer şirketler için NAND Flash yongaları üretiyor ve aynı zamanda eski disk arayüzleri yerine temelde yeni arayüzlere sahip SSD'ler geliştiriyor. Flash bellek için optimize edilmiş özel bir dosya sisteminin oluşturulması, Samsung'un bakış açısına göre çoktan gecikmiş bir gereklilik olmuştur.

Dört yıl önce, 2012'de Samsung, F2FS'yi (Flash Dostu Dosya Sistemi) yarattı. Fikri iyi, ancak uygulamanın nemli olduğu ortaya çıktı. F2FS oluştururken temel görev basitti: hücre yeniden yazma işlemlerinin sayısını azaltmak ve üzerlerindeki yükü mümkün olduğunca eşit bir şekilde dağıtmak. Bu, aynı blok içindeki birkaç hücreyle aynı anda işlem yapmayı ve onlara tek tek tecavüz etmemeyi gerektirir. Bu, işletim sisteminin ilk isteğinde mevcut blokların anında yeniden yazılmasına değil, komutların ve verilerin önbelleğe alınmasına, boş alana yeni bloklar eklenmesine ve hücrelerin gecikmeli olarak silinmesine ihtiyacımız olduğu anlamına gelir.

Bugün, F2FS desteği halihazırda Linux'ta (ve dolayısıyla Android'de) resmi olarak uygulanmaktadır, ancak pratikte henüz herhangi bir özel avantaj sağlamamaktadır. Bu dosya sisteminin ana özelliği (ertelenmiş üzerine yazma), etkinliği hakkında erken sonuçlara yol açmıştır. Eski önbelleğe alma hilesi, F2FS'nin birkaç yüzde (beklendiği gibi) veya hatta birkaç kez değil, büyüklük sıralarında belirgin bir avantaj gösterdiği, kıyaslamaların erken sürümlerini bile kandırdı. Sadece F2FS sürücüsü, denetleyicinin yapmayı planladığı bir işlemin yürütüldüğünü bildirdi. Ancak, F2FS'deki gerçek performans kazancı küçükse, hücre aşınması kesinlikle aynı ext4'ü kullanırken olduğundan daha az olacaktır. Ucuz bir denetleyicinin yapamayacağı optimizasyonlar, dosya sisteminin kendi düzeyinde gerçekleştirilecektir.

Uzantılar ve bit eşlemler

F2FS, meraklılar için egzotik olarak algılanırken. Samsung'un kendi akıllı telefonları bile hala ext4 kullanıyor. Pek çok kişi bunu ext3'ün daha ileri bir gelişimi olarak görüyor, ancak bu tamamen doğru değil. Bu, dosya başına 2 TB sınırını aşmaktan ve diğer ölçümleri artırmaktan daha büyük bir devrimdir.

Bilgisayarlar büyük ve dosyalar küçükken adresleme kolaydı. Her dosyaya, adresleri yazışma tablosuna girilen belirli sayıda blok tahsis edildi. Bugün hala kullanımda olan ext3 dosya sistemi bu şekilde çalıştı. Ancak ext4'te temelde farklı bir adresleme yolu ortaya çıktı - kapsamlar.

Uzantılar, bütünlükleri içinde bitişik diziler olarak ele alınan ayrı blok kümeleri olarak düğüm uzantıları olarak düşünülebilir. Bir kapsam, orta boyutlu bir dosyanın tamamını içerebilir ve büyük dosyalar için bir düzine veya iki uzantı tahsis etmek yeterlidir. Bu, dört kilobaytlık yüz binlerce küçük bloğu ele almaktan çok daha verimlidir.

Yazma mekanizmasının kendisi ext4'te değişti. Artık blokların dağıtımı hemen bir istekte gerçekleşir. Ve önceden değil, ancak diske veri yazmadan hemen önce. Gecikmeli çoklu blok tahsisi, ext3'ün günah işlediği gereksiz işlemlerden kurtulmanızı sağlar: içinde, önbelleğe tamamen sığsa ve geçici olarak silinmesi planlanmış olsa bile, yeni bir dosya için bloklar hemen tahsis edildi.


YAĞ kısıtlı diyet

Dengeli ağaçlar ve bunların modifikasyonlarının yanı sıra, başka popüler mantıksal yapılar da vardır. Temelde farklı bir organizasyon türüne sahip dosya sistemleri vardır - örneğin doğrusal. Muhtemelen bunlardan en az birini çok kullanıyorsunuz.

Gizem

Bilmeceyi tahmin et: on iki yaşında kilo almaya başladı, on altı yaşında aptal şişman bir kadındı ve otuz iki yaşında şişman oldu ve bir budala olarak kaldı. O kim?

Bu doğru, bu FAT dosya sistemi hakkında bir hikaye. Uyumluluk gereksinimleri ona kötü bir miras bıraktı. Disketlerde 12-bit, sabit disklerde - ilk başta 16-bit idi ve bugüne kadar 32-bit olarak düştü. Sonraki her sürümde, adreslenebilir blokların sayısı arttı, ancak özünde hiçbir şey değişmedi.

Hala popüler olan FAT32 dosya sistemi yirmi yıl önce ortaya çıktı. Bugün hala ilkeldir ve ACL'leri, disk kotalarını, arka planda sıkıştırmayı veya diğer modern veri optimizasyon teknolojilerini desteklemez.

FAT32 neden bu günlerde gerekli? Hepsi yalnızca uyumluluk amacıyla aynıdır. Üreticiler haklı olarak herhangi bir işletim sisteminin bir FAT32 bölümünü okuyabileceğine inanıyor. Bu nedenle, harici sabit sürücüler, USB Flash ve hafıza kartlarında oluştururlar.

Akıllı telefonunuzdaki flash bellek nasıl boşaltılır

Akıllı telefonlarda kullanılan MicroSD (HC) kartlar varsayılan olarak FAT32 olarak biçimlendirilir. Bu, üzerlerine uygulama yüklemenin ve dahili bellekten veri aktarmanın önündeki ana engeldir. Bunu aşmak için kartta ext3 veya ext4 ile bir bölüm oluşturmanız gerekir. Tüm dosya öznitelikleri (sahip ve erişim hakları dahil) ona aktarılabilir, böylece herhangi bir uygulama dahili bellekten başlatılmış gibi çalışabilir.

Windows, flash sürücülerde birden fazla bölüm oluşturamaz, ancak bunun için Linux'u (en azından sanal bir makinede) veya mantıksal bölümleme ile çalışmak için gelişmiş bir yardımcı programı çalıştırabilirsiniz - örneğin, MiniTool Partition Wizard Free. Kartta ext3 / ext4 ile ek bir birincil bölüm bulmuş olan Link2SD uygulaması ve benzerleri, tek bir FAT32 bölümü durumunda olduğundan çok daha fazla seçenek sunacaktır.


FAT32'yi seçme lehine bir başka argüman, genellikle günlük kaydının olmaması, bu da NAND Flash bellek hücrelerinde daha hızlı yazma ve daha az aşınma anlamına gelir. Pratikte FAT32 kullanımı bunun tam tersine yol açar ve birçok başka soruna yol açar.

FAT32'deki herhangi bir değişiklik, iki dosya tablosu zincirinin bulunduğu aynı sektörlerin üzerine yazılmasına neden olduğundan, flash sürücüler ve bellek kartları hızla ölür. Tüm web sayfasını kaydettim ve yüzlerce kez yeniden yazıldı - her biri flash sürücüye başka bir küçük GIF ekleyerek. Taşınabilir yazılımı başlattınız mı? Geçici dosyalar oluşturdu ve çalışma sırasında bunları sürekli olarak değiştirdi. Bu nedenle, hataya dayanıklı $ MFT tablosu ile flash sürücülerde NTFS kullanmak çok daha iyidir. Küçük dosyalar doğrudan ana dosya tablosunda saklanabilir ve uzantıları ve kopyaları flash belleğin farklı alanlarına yazılır. Ayrıca, NTFS indeksleme, aramaları daha hızlı hale getirir.

BİLGİ

FAT32 ve NTFS için, yuvalama düzeyindeki teorik sınırlar belirtilmemiştir, ancak pratikte bunlar aynıdır: birinci düzey dizinde yalnızca 7707 alt dizin oluşturulabilir. Yuvalama bebeklerinin sevenler bunu takdir edeceklerdir.

Çoğu kullanıcının karşılaştığı bir diğer sorun, 4 GB'den büyük bir dosyayı FAT32 bölümüne yazmanın imkansız olmasıdır. Bunun nedeni, FAT32'de dosya boyutunun dosya ayırma tablosunda 32 bit ile açıklanması ve 2 ^ 32 (eksi bir, kesin olmak gerekirse) sadece dört konser vermesidir. Yeni satın alınan bir flash sürücüye ne normal kalitede bir film ne de bir DVD görüntüsü kaydedilemeyeceği ortaya çıktı.

Büyük dosyaları kopyalamak hala sorunun yarısıdır: Bunu yapmaya çalıştığınızda, hata en azından hemen görünür. Diğer durumlarda, FAT32 bir saatli bomba görevi görür. Örneğin, taşınabilir yazılımı bir USB flash sürücüye kopyaladınız ve ilk başta sorunsuz bir şekilde kullanabilirsiniz. Uzun bir süre sonra, programlardan birinin (örneğin, muhasebe veya posta) bir veritabanı şişmiş ve ... sadece güncellemeyi durduruyor. 4 GB sınırına ulaştığı için dosyanın üzerine yazılamıyor.

Daha az belirgin bir sorun, FAT32'de bir dosya veya dizinin oluşturulma tarihinin iki saniyelik bir doğrulukla belirtilebilmesidir. Bu, zaman damgalarını kullanan birçok şifreleme uygulaması için yeterli değildir. Tarih özniteliğinin düşük kesinliği, FAT32'nin güvenlik açısından eksiksiz bir dosya sistemi olarak görülmemesinin bir başka nedenidir. Ancak, zayıf yönleri kendi amaçlarınız için kullanılabilir. Örneğin, bir NTFS bölümünden bir FAT32 birimine herhangi bir dosya kopyalarsanız, bunlar tüm meta verilerden ve devralınan ve özel olarak ayarlanmış izinlerden temizlenir. FAT sadece onları desteklemiyor.

exFAT

FAT12 / 16/32'den farklı olarak exFAT, özellikle USB Flash ve büyük (≥ 32 GB) hafıza kartları için tasarlanmıştır. Genişletilmiş FAT, FAT32'nin yukarıda bahsedilen dezavantajını ortadan kaldırır - herhangi bir değişiklikte aynı sektörlerin üzerine yazma. 64 bitlik bir sistem olarak, tek bir dosyanın boyutu üzerinde pratik olarak hiçbir anlamlı sınırı yoktur. Teorik olarak, 2 ^ 64 bayt uzunluğunda (16 Ebyte) olabilir ve bu boyuttaki kartlar yakında görünmeyecektir.

exFAT'deki bir diğer önemli fark, Erişim Kontrol Listelerini (ACL'ler) desteklemesidir. Bu artık doksanlardan kalma basit bir şey değil, ancak kapalı format exFAT'in uygulanmasını engelliyor. ExFAT desteği, yalnızca Windows (XP SP2'den başlayarak) ve OS X'te (10.6.5'ten başlayarak) tamamen ve yasal olarak uygulanır. Linux ve * BSD'de ya kısıtlamalarla ya da tamamen yasal olarak desteklenmemektedir. Microsoft, exFAT kullanmak için lisans gerektirir ve bu alanda birçok yasal anlaşmazlık vardır.

Btrf'ler

B-ağacı dosya sistemlerinin bir başka öne çıkan örneğine Btrfs adı verilir. Bu FS 2007'de ortaya çıktı ve orijinal olarak Oracle'da SSD ve RAID ile çalışmak amacıyla oluşturuldu. Örneğin, canlı sistemde yeni düğümler oluşturarak veya bir birimi, bunlara boş alan ayırmadan alt birimlere bölerek dinamik olarak ölçeklenebilir.

Btrfs'de uygulanan yazma üzerine kopyalama mekanizması ve Cihaz eşleyici çekirdek modülüyle tam entegrasyon, sanal blok cihazları aracılığıyla neredeyse anında anlık görüntüler oluşturmanıza olanak tanır. Veri ön sıkıştırması (zlib veya lzo) ve veri tekilleştirme, flash belleğin ömrünü uzatırken temel işlemleri hızlandırır. Bu, özellikle veritabanları (sıkıştırma 2–4 ​​faktörü ile elde edilir) ve küçük dosyalar (sırasıyla büyük bloklar halinde yazılır ve doğrudan "yapraklarda" saklanabilir) ile çalışırken fark edilir.

Btrfs ayrıca tam günlük kaydı (veri ve meta veriler), bağlantı kesmeden ses denetimi ve diğer birçok modern özelliği destekler. Btrfs kodu GPL lisansı altında yayınlanır. Bu dosya sistemi, çekirdek 4.3.1'den beri Linux'ta kararlı olarak korunmuştur.

Uçuş günlükleri

Hemen hemen tüm modern dosya sistemleri (ext3 / ext4, NTFS, HFSX, Btrfs ve diğerleri), yapılan değişikliklerin kayıtlarını ayrı bir günlükte (günlük) tuttukları ve kontrol ettikleri için günlük tutulanların genel grubuna aittir. disk işlemleri sırasında arıza ... Ancak bu dosya sistemlerinin ayrıntı düzeyi ve hata toleransı farklıdır.

Ext3 üç günlük modunu destekler: geri döngü, sıralı ve tam günlük. İlk mod, yalnızca verilerin kendisindeki değişikliklere göre eşzamansız olarak gerçekleştirilen genel değişikliklerin (meta veriler) kaydedilmesini gerektirir. İkinci modda, aynı meta veri kaydı gerçekleştirilir, ancak kesinlikle herhangi bir değişiklik yapılmadan önce. Üçüncü mod, tam günlüğe kaydetmeye eşdeğerdir (hem meta verilerdeki hem de dosyaların kendisindeki değişiklikler).

Yalnızca ikinci seçenek veri bütünlüğünü sağlar. Diğer ikisi, yalnızca kontrol sırasında hataların tanımlanmasını hızlandırır ve dosyaların içeriğini değil, dosya sisteminin bütünlüğünün geri yüklenmesini garanti eder.

NTFS günlüğe kaydetme, ext3'ün ikinci günlüğe kaydetme moduna benzer. Günlüğe yalnızca meta verilerde yapılan değişiklikler kaydedilir ve bir arıza durumunda verilerin kendisi kaybolabilir. Bu NTFS günlük kaydı yöntemi, maksimum güvenilirlik elde etmenin bir yolu olarak değil, yalnızca performans ve hata toleransı arasında bir ödünleşim olarak tasarlandı. Bu nedenle, tam günlük kaydı sistemleriyle çalışmaya alışmış kişiler, NTFS'yi sözde günlük olarak kabul eder.

NTFS yaklaşımı, ext3'teki varsayılandan biraz daha iyidir. NTFS'de, önceden bekleyen tüm disk işlemlerinin tamamlandığından emin olmak için ek olarak düzenli aralıklarla denetim noktaları oluşturulur. Denetim noktalarının \ System Volume Infromation \ içindeki geri yükleme noktalarıyla hiçbir ilgisi yoktur. Bunlar yalnızca günlükteki genel girişlerdir.

Uygulama, çoğu durumda bu tür kısmi NTFS günlük kaydının sorunsuz çalışma için yeterli olduğunu göstermektedir. Sonuçta, keskin bir elektrik kesintisi olsa bile, disk cihazlarının enerjisi anında kesilmez. Sürücülerdeki güç kaynağı ünitesi ve çok sayıda kapasitör, mevcut yazma işlemini tamamlamak için yeterli olan minimum enerji rezervini sağlar. Modern SSD'ler, hızları ve ekonomileri ile bekleyen işlemleri gerçekleştirmek için genellikle aynı miktarda enerji yeterlidir. Tam günlüğe geçme girişimi, çoğu işlemin hızını birkaç kat azaltır.

Windows'ta üçüncü taraf dosya sistemlerini bağlarız

Dosya sistemlerinin kullanımı, işletim sistemi düzeyindeki destekleriyle sınırlıdır. Örneğin Windows, ext2 / 3/4 ve HFS + 'yı anlamaz, ancak bazen bunları kullanmanız gerekir. Bu, uygun sürücü eklenerek yapılabilir.

UYARI

Üçüncü taraf dosya sistemlerini destekleyen çoğu sürücü ve eklentinin sınırlamaları vardır ve her zaman kararlı şekilde çalışmaz. Diğer sürücülere, antivirüs ve sanallaştırma programlarına müdahale edebilirler.

Kısmi ext4 desteği ile ext2 / 3 bölümleri okumak ve yazmak için sürücüyü açın. En son sürüm, 16 TB'a kadar uzantıları ve bölümleri destekler. LVM, ACL'ler ve genişletilmiş öznitelikler desteklenmez.


Total Commander için ücretsiz bir eklenti var. Ext2 / 3/4 bölümlerinin okunmasını destekler.


coLinux, Linux çekirdeğinin açık kaynaklı ve ücretsiz bir bağlantı noktasıdır. 32 bit sürücü ile birlikte, sanallaştırma teknolojilerini kullanmadan Windows 2000'den 7'ye kadar Linux çalıştırmanıza olanak tanır. Yalnızca 32 bit sürümleri destekler. 64-bit modifikasyonun geliştirilmesi iptal edildi. coLinux, diğer şeylerin yanı sıra, Windows'tan ext2 / 3/4 bölümlerine erişimi düzenlemeye izin verir. Proje desteği 2014 yılında durdurulmuştur.

Windows 10, Linux'a özgü dosya sistemleri için zaten yerel desteğe sahip olabilir, yalnızca gizlidir. Bu düşünceler, çekirdek düzeyindeki sürücü Lxcore.sys ve Svchost.exe işlemi tarafından kitaplık olarak yüklenen LxssManager hizmeti tarafından önerilmektedir. Bununla ilgili daha fazla bilgi için, Alex Ionescu'nun Black Hat 2016'da verdiği "Windows 10 İçinde Gizli Linux Çekirdeği" başlıklı konuşmasına bakın.


Windows için ExtFS, Paragon tarafından yayınlanan ücretli bir sürücüdür. Windows 7'den 10'a kadar çalışır, ext2/3/4 birimlerine okuma/yazma erişimini destekler. Windows'ta neredeyse eksiksiz ext4 desteği sağlar.

Windows 10 için HFS +, Paragon Software'in başka bir tescilli sürücüsüdür. Adına rağmen, XP'den başlayarak tüm Windows sürümlerinde çalışır. Herhangi bir bölümü (MBR / GPT) olan disklerde HFS + / HFSX dosya sistemlerine tam erişim sağlar.

WinBtrfs, Windows için Btrfs sürücüsünün erken bir geliştirmesidir. Zaten 0.6 sürümünde, Btrfs birimlerine hem okuma hem de yazma erişimini destekler. Sabit ve sembolik bağlantıları işleyebilir, alternatif veri akışlarını, ACL'yi, iki tür sıkıştırmayı ve asenkron okuma/yazma modunu destekler. Şimdiye kadar WinBtrfs, bu dosya sistemini korumak için mkfs.btrfs, btrfs-balance ve diğer yardımcı programları kullanamaz.

Dosya Sistemi Yetenekleri ve Sınırlamaları: Özet Tablo

Dosya sistemi Mac-si-mal-ny birim boyutu Bir dosyanın ön del-boyutu Kendi dosya adına göre uzunluk Tam dosya adının uzunluğu (kökten gelen yol dahil) Dosya ve/veya katalogların ön-del sayısı Dosya/katalog tarihini belirtmenin doğruluğu Haklar dos-tu-pa Sabit bağlantılar Sim içermeyen bağlantılar Anlık görüntüler Arka planda verileri sıkıştırma Arka planda verilerin şifrelenmesi Büyükbaba-pli-ka-tion veri
FAT16 512 bayt sektörlerde 2 GB veya 64 KB kümelerde 4 GB 2 GB LFN ile 255 bayt
FAT32 2 KB sektörlerde 8 TB 4 GB (2 ^ 32 - 1 bayt) LFN ile 255 bayt CDS ile 32 alt dizine kadar 65460 10ms (oluştur) / 2s (değiştir) Numara Numara Numara Numara Numara Numara Numara
exFAT ≈ 128 PB (2 ^ 32-1 küme 2 ^ 25-1 bayt) teorik olarak / üçüncü taraf sınırlamaları nedeniyle 512 TB 16 EB (2 ^ 64 - 1 bayt) 2796202 katalogda 10 ms EKL Numara Numara Numara Numara Numara Numara
NTFS 64 KB kümelerde 256 TB veya 4 KB kümelerde 16 TB 16 TB (Kazan 7) / 256 TB (Kazan 8) 255 Unicode karakter (UTF-16) 32.760 Unicode karakter, ancak öğe başına en fazla 255 karakter 2^32-1 100 ns EKL Evet Evet Evet Evet Evet Evet
HFS + 8 EB (2 ^ 63 bayt) 8 EB 255 Unicode karakter (UTF-16) ayrı ayrı sınırlı değil 2^32-1 1 sn Unix, ACL Evet Evet Numara Evet Evet Numara
APFS 8 EB (2 ^ 63 bayt) 8 EB 255 Unicode karakter (UTF-16) ayrı ayrı sınırlı değil 2^63 1 ns Unix, ACL Evet Evet Evet Evet Evet Evet
Ext3 4K kümelerde 32 TB (teorik) / 16 TB (e2fs programlarının sınırlamaları nedeniyle) Daha eski programlar için 2 TB (teorik) / 16 GB 255 Unicode karakter (UTF-16) ayrı ayrı sınırlı değil 1 sn Unix, ACL Evet Evet Numara Numara Numara Numara
Uzm4 4K kümelerde 1 EB (teorik) / 16 TB (e2fs programlarının sınırlamaları nedeniyle) 16 TB 255 Unicode karakter (UTF-16) ayrı ayrı sınırlı değil 4 milyar 1 ns POSIX Evet Evet Numara Numara Evet Numara
F2FS 16 TB 3,94 TB 255 bayt ayrı ayrı sınırlı değil 1 ns POSIX EKL Evet Evet Numara Numara Evet Numara
BTRFS 16 EB (2 ^ 64 - 1 bayt) 16 EB 255 ASCII karakter 2 ^ 17 bayt 1 ns POSIX EKL Evet Evet Evet Evet Evet Evet

Genel. Bilgisayar bilimi teorisinde, aşağıdaki üç ana veri yapısı türü tanımlanmıştır - doğrusal, tablosal, hiyerarşik. Örnek kitap: sayfa dizisi - doğrusal yapı. Parçalar, bölümler, bölümler, paragraflar - hiyerarşi. İçindekiler - tablo - bağlantılar - doğrusal ile hiyerarşik. Yapılandırılmış verilerin yeni bir özelliği var - Adres. Yani:

      Doğrusal yapılar (listeler, vektörler). Düzenli listeler. Her öğenin adresi, numarasıyla benzersiz bir şekilde tanımlanır. Listenin tüm öğeleri eşit uzunluktaysa, veri vektörleri.

      Tablo yapıları (tablolar, matrisler). Tablo ve liste arasındaki fark, her öğenin bir değil birkaç parametreden oluşan bir adres tarafından belirlenmesidir. En yaygın örnek matris - adres - iki parametre - satır numarası ve sütun numarasıdır. Çok boyutlu tablolar.

      Hiyerarşik yapılar. Düzensiz verileri temsil etmek için kullanılır. Adres - rota tarafından belirlenir - ağacın tepesinden. Dosya sistemi - bilgisayar. (Rota aşabilir - veri miktarı, ikilik her zaman iki çataldır - sol ve sağ).

Veri yapılarının sıralanması. Ana yol sıralamadır. ! Sıralı yapıya yeni bir eleman eklerken, mevcut olanların adresini değiştirmek mümkündür. Hiyerarşik yapılar için - indeksleme - her öğenin benzersiz bir numarası vardır - bu daha sonra sıralama ve aramada kullanılır.

    Dosya sisteminin ana unsurları

Veri depolama ve yönetimindeki tarihi ilk adım, dosya yönetim sistemlerinin kullanılmasıydı.

Dosya, verilerin yazılabileceği ve buradan okunabileceği adlandırılmış bir harici bellek alanıdır. Üç parametre:

    keyfi sayıda bayt dizisi,

    benzersiz bir özel ad (aslında - bir adres).

    aynı türden veriler - dosya türü.

Dosyalar için adlandırma kuralları, dosyada depolanan verilere nasıl erişildiği ve bu verilerin yapısı, belirli dosya yönetim sistemine ve muhtemelen dosya türüne bağlıdır.

Birincisi, modern anlamda, IBM tarafından 360 serisi (1965-1966) için gelişmiş bir dosya sistemi geliştirildi. Ancak mevcut sistemlerde pratikte kullanılmamaktadır. Kullanılan liste veri yapıları (EC-cilt, bölüm, dosya).

Çoğunuz modern işletim sistemlerinin dosya sistemlerine aşinasınız. Bu, öncelikle MS DOS, Windows ve bazıları çeşitli UNIX türevleri için dosya sisteminin yapısına sahiptir.

Dosya yapısı. Dosya, harici bir ortamda bulunan veri bloklarının bir koleksiyonudur. Donanım seviyesinde bir manyetik disk ile değişim gerçekleştirmek için silindir numarasını, yüzey numarasını, ilgili iz üzerinde blok numarasını ve bu bloğun başından itibaren yazılması veya okunması gereken bayt sayısını belirtmeniz gerekir. Bu nedenle, tüm dosya sistemlerinde, doğrudan veya dolaylı olarak, adres alanında doğrudan adreslenebilir bloklar kümesi olan dosyalarla çalışmayı sağlayan belirli bir temel seviye tahsis edilir.

Dosya adlandırma. Tüm modern dosya sistemleri, özel bir yapı - dizinlerle harici bellekte ek dosyalar tutarak çok düzeyli dosya adlandırmalarını destekler. Her dizin, o dizinde bulunan dizinlerin ve/veya dosyaların adlarını içerir. Bu nedenle, tam nitelikli dosya adı, bir dizin adları listesi ile doğrudan dosyayı içeren dizindeki dosya adından oluşur. Dosyaların farklı dosya sistemlerinde adlandırılma biçimleri arasındaki fark, ad zincirinin başladığı yerdir. (Unix, DOS-Windows)

Dosya koruması. Dosya yönetim sistemleri, dosyalara erişim için yetki sağlamalıdır. Genel olarak yaklaşım, belirli bir bilgisayar sisteminin her kayıtlı kullanıcısı ile ilgili olarak, mevcut her dosya için, bu kullanıcı için izin verilen veya yasaklanan eylemlerin belirtilmesidir. Bu yaklaşımı tam olarak uygulamak için girişimlerde bulunulmuştur. Ancak bu, hem gereksiz bilgileri depolamak hem de bu bilgileri erişim uygunluğunu kontrol etmek için kullanmak için çok fazla ek yüke neden oldu. Bu nedenle, çoğu modern dosya yönetim sistemi, UNIX'in (1974) öncülük ettiği dosya koruma yaklaşımını kullanır. Bu sistemde, kayıtlı her kullanıcı bir çift tamsayı tanımlayıcıya karşılık gelir: bu kullanıcının ait olduğu grubun tanımlayıcısı ve gruptaki kendi tanımlayıcısı. Buna göre, her dosya ile, bu dosyayı oluşturan kullanıcının tam tanımlayıcısı saklanır ve dosyanın kendisi ile hangi eylemleri gerçekleştirebileceği, dosya ile aynı gruptaki diğer kullanıcılar için hangi eylemlerin mevcut olduğu ve hangi eylemlerin mevcut olduğu not edilir. diğer grupların kullanıcıları dosyayla yapabilir. Bu bilgi çok kompakttır, doğrulamak için birkaç adım gerektirir ve bu erişim kontrolü yöntemi çoğu durumda tatmin edicidir.

Çok kullanıcılı erişim modu.İşletim sistemi çoklu kullanıcı modunu destekliyorsa, iki veya daha fazla kullanıcının aynı anda aynı dosyayla çalışmayı denemesi çok gerçek bir durumdur. Tüm bu kullanıcılar sadece dosyayı okuyacaklarsa, kötü bir şey olmayacak. Ancak bunlardan en az biri dosyayı değiştirirse, bu grubun doğru çalışması için karşılıklı senkronizasyon gerekir. Tarihsel olarak, dosya sistemleri aşağıdaki yaklaşımı benimsemiştir. Bir dosya açma işleminde (bir dosya ile çalışma oturumunun başlaması gereken ilk ve zorunlu işlem), diğer parametrelerin yanı sıra çalışma modu (okuma veya değiştirme) belirtildi. + kullanıcı eylemlerini senkronize etmek için özel prosedürler vardır. Kayıtlara göre imkansız!

    Dosya sistemlerine günlük kaydı. Genel İlkeler.

Büyük dosya sistemlerinde bir sistem denetimi (fsck) çalıştırmak uzun zaman alabilir, bu da günümüzün yüksek hızlı sistemleri göz önüne alındığında çok kötüdür. Dosya sisteminde bütünlük olmamasının nedeni, örneğin diskin kapatıldığı sırada diske yazılması gibi yanlış bağlantı kesme olabilir. Uygulamalar, dosyalarda bulunan verileri güncelleyebilir ve sistem, "dosya sistemi verileri" olan dosya sistemi meta verilerini, başka bir deyişle, hangi blokların hangi dosyalarla ilişkili olduğu, hangi dosyaların hangi dizinlerde bulunduğu vb. bilgileri güncelleyebilir. ... Veri dosyalarındaki hatalar (bütünlük eksikliği) kötüdür, ancak dosya sisteminin meta verilerinde dosya kaybına ve diğer ciddi sorunlara yol açabilen hatalar çok daha kötüdür.

Bütünlük sorunlarını en aza indirmek ve sistem yeniden başlatma sürelerini en aza indirmek için günlük kaydı dosya sistemi, değişiklikleri fiilen yazmadan önce dosya sisteminde yapacağı değişikliklerin bir listesini tutar. Bu kayıtlar, dosya sisteminin "log" veya "log" adı verilen ayrı bir bölümünde saklanır. Bu günlük girişleri güvenli bir şekilde yazıldıktan sonra, günlük kaydı dosya sistemi bu değişiklikleri dosya sisteminde yapar ve ardından bu girişleri "günlük"ten (günlük) kaldırır. Günlük girişleri, bir veritabanına eklenen değişikliklerin işlemlerde düzenlenmesine çok benzer şekilde, ilgili dosya sistemi değişiklikleri kümeleri halinde düzenlenir.

Günlüklü bir dosya sistemi, günlük dosyası dosya sisteminde değişiklik yapılmadan önce dosya sistemine yazdığından ve dosya sistemi bu kayıtları dosya sistemine tamamen ve güvenli bir şekilde uygulanana kadar sakladığından, bütünlük olasılığını artırır. Günlük kaydı dosya sistemi kullanan bir bilgisayarı yeniden başlattığınızda, bağlama programı, günlük dosyasını beklenen ancak yapılmamış değişiklikler için kontrol ederek ve bunları dosya sistemine yazarak dosya sisteminin bütünlüğünü garanti edebilir. Çoğu durumda, sistemin dosya sisteminin bütünlüğünü kontrol etmesi gerekmez; bu, günlük kaydı dosya sistemini kullanan bilgisayarın yeniden başlatıldıktan hemen sonra çalışmaya hazır olacağı anlamına gelir. Sonuç olarak, dosya sistemindeki sorunlardan dolayı veri kaybı olasılığı önemli ölçüde azalır.

Günlük kaydı dosya sisteminin klasik biçimi, dosya sistemi meta verilerindeki değişiklikleri günlükte (günlük) depolamak ve dosyaların kendisinde yapılan değişiklikler de dahil olmak üzere dosya sistemindeki tüm verilerdeki değişiklikleri depolamaktır.

    MS-DOS Dosya Sistemi (FAT)

MS-DOS dosya sistemi, küçük diskler ve basit dizin yapıları için ağaç benzeri bir dosya sistemidir; kök dizini kökte ve yapraklarda ve diğer dizinler, muhtemelen yapraklar olarak boştur. Bu dosya sisteminin kontrolü altındaki dosyalar, bitişik disk belleği tahsisinde karışık bir şekilde kullanılmadan, 4'ün katları halinde 4 KB ile 64 KB arasında değişebilen kümeler halinde yerleştirilir. Örneğin, şekil üç dosyayı göstermektedir. File1.txt, art arda üç blok kullanmak için yeterince büyüktür. Küçük File3.txt dosyası, yalnızca bir ayrılabilir bloğun alanını kullanır. Üçüncü dosya File2.txt dosyasıdır. büyük bir parçalanmış dosyadır. Her durumda, giriş noktası dosyanın sahip olduğu ilk tahsis bloğuna işaret eder. Dosya birden çok ayırma bloğu kullanıyorsa, önceki blok zincirdeki bir sonrakine işaret eder. FFF değeri, dizinin sonu ile tanımlanır.

FAT disk bölümü

Verimli dosya erişimi için şunu kullanın: dosya ayırma tablosu- Bir bölümün (veya mantıksal diskin) başında bulunan Dosya Ayırma Tablosu. Bu dosya sisteminin adı - FAT - tahsis tablosunun adından gelir. Bölmeyi korumak için, birinin hasar görmesi durumunda, FAT'nin iki kopyası üzerinde saklanır. Ayrıca, sistemi başlatmak için gerekli dosyaların doğru konumlandırılması için dosya tahsis tablolarının kesinlikle sabit adreslerde bulunması gerekir.

Dosya ayırma tablosu 16 bitlik girişlerden oluşur ve her bir mantıksal disk kümesi hakkında aşağıdaki bilgileri içerir:

    küme kullanılmaz;

    küme dosya tarafından kullanılır;

    kötü küme;

    dosyanın son kümesi

Her kümeye benzersiz bir 16 bitlik sayı atanması gerektiğinden, bu nedenle, FAT bir mantıksal diskte maksimum 216 veya 65.536 kümeyi destekler (ve hatta kümelerin bazılarını kendi ihtiyaçları için ayırır). Bu nedenle, MS-DOS tarafından hizmet verilen bir diskin maksimum boyutu 4 GB'dir. Küme boyutu, diskin boyutuna bağlı olarak artırılabilir veya azaltılabilir. Ancak, disk boyutu belirli bir miktarı aştığında, kümeler çok büyür ve bu da dahili disk birleştirmeye yol açar. Dosyalar hakkındaki bilgilere ek olarak, dizinler hakkındaki bilgiler de dosya tahsis tablosuna yerleştirilebilir. Bu, dizinleri, o dizinde bulunan her dosya için 32 baytlık girişleri olan özel dosyalar olarak ele alır. Kök dizinin sabit disk için 512 girişlik sabit bir boyutu vardır ve disketler için bu boyut disketin boyutuna göre belirlenir. Ayrıca, kök dizin, MS-DOS önyükleyici tarafından ihtiyaç duyulan dosyaları içerdiğinden, FAT'nin ikinci kopyasından hemen sonra bulunur.

Diskte bir dosya ararken, MS-DOS onu bulmak için dizin yapısına bakmak zorundadır. Örneğin, yürütülebilir dosyayı çalıştırmak için C: \ Program \ NC4 \ nc.exe aşağıdakileri yaparak yürütülebilir dosyayı bulur:

    C: sürücüsünün kök dizinini okur ve içindeki Program dizinini arar;

    ilk küme Programını okur ve bu dizinde NC4 alt dizini için bir giriş arar;

    NC4 alt dizininin ilk kümesini okur ve içindeki nc.exe dosyası hakkında bir girdi arar;

    nc.exe dosyasının tüm kümelerini okur.

Bu arama yöntemi, mevcut dosya sistemleri arasında en hızlısı değildir. Ayrıca, dizinlerin derinliği ne kadar büyük olursa, arama o kadar yavaş olur. Arama işlemini hızlandırmak için dengeli bir dosya yapısına bağlı kalmalısınız.

YAĞ avantajları

    Küçük mantıksal sürücüler için en iyi seçimdir. minimum ek yük ile başlar. Boyutu 500 MB'den küçük olan sürücülerde kabul edilebilir özelliklerle çalışır.

FAT'nin Dezavantajları

    Bir dosya kaydının boyutu 32 bayt ile sınırlı olduğundan ve bilgilerin hem dosya boyutunu hem de tarihi ve öznitelikleri vb. içermesi gerektiğinden, dosya adının boyutu da sınırlıdır ve her biri için 8 + 3 karakteri aşamaz. dosya. Sözde kısa dosya adlarının kullanılması, FAT'yi diğer dosya sistemlerine göre daha az çekici hale getirir.

    500 MB'den büyük disklerde FAT kullanmak, disk birleştirme nedeniyle verimsizdir.

    FAT dosya sistemi herhangi bir güvenlik özelliğine sahip değildir ve minimum bilgi güvenliği özelliklerini korur.

    FAT'deki işlemlerin hızı, dizin iç içe yerleştirme derinliği ve disk boyutu ile ters orantılıdır.

    UNIX dosya sistemi - sistemler (ext3)

Modern, güçlü ve ücretsiz Linux işletim sistemi, modern sistemlerin ve özel yazılımların geliştirilmesi için geniş bir alan sağlar. Son Linux çekirdeklerindeki daha ilginç gelişmelerden bazıları, diskteki verilerin depolanması, yerleştirilmesi ve güncellenmesi için yeni, yüksek performanslı teknolojilerdir. Daha ilginç mekanizmalardan biri, 2.4.16 sürümünden beri Linux çekirdeğine entegre edilen ve Red Hat ve SuSE'den Linux dağıtımlarında varsayılan olarak bulunan ext3 dosya sistemidir.

Ext3 dosya sistemi, son birkaç yıldır Linux sistemlerinde kullanılan ext2 dosya sistemini oluşturmak, yönetmek ve değiştirmek için tasarlanmış tüm yardımcı programlarla %100 uyumlu bir günlük kaydı dosya sistemidir. ext2 ve ext3 dosya sistemleri arasındaki farkları ayrıntılı olarak açıklamadan önce, dosya sistemleri ve dosya depolama terminolojisini netleştirelim.

Sistem düzeyinde, bir bilgisayardaki tüm veriler, bazı depolama aygıtlarında özel veri yapıları kullanılarak bölümlere (bir depolama aygıtındaki mantıksal kümeler) düzenlenen ve bunlar da dosyalar, dizinler ve kullanılmayanlar (ücretsiz) olarak düzenlenen veri blokları olarak bulunur. ) Uzay.

Dosya sistemleri, verileri dosya ve dizinler biçiminde depolamayı ve düzenlemeyi kolaylaştırmak için disk bölümlerinde oluşturulur. Linux, bir Unix sistemi gibi, sırasıyla dosya veya dizinleri içeren dosya ve dizinlerden oluşan hiyerarşik bir dosya sistemi kullanır. Linux dosya sistemindeki dosyalar ve dizinler, genellikle sistem önyükleme işleminin bir parçası olan monte edilerek ("mount" komutu) kullanıcıya sunulur. Kullanılabilir dosya sistemlerinin listesi / etc / fstab dosyasında (Dosya Sistemi TABLOSU) saklanır. Şu anda sistem tarafından bağlanmamış dosya sistemlerinin listesi / etc / mtab (Tablo Dağı) dosyasında saklanır.

Dosya sistemi önyükleme sırasında bağlandığında, başlık biti ("temiz bit") silinir, bu da dosya sisteminin kullanımda olduğu ve bu dosyadaki dosya ve dizinlerin yerleşimini ve organizasyonunu kontrol etmek için kullanılan veri yapılarının olduğu anlamına gelir. sistem değiştirilebilir.

Bir dosya sistemi, içindeki tüm veri blokları kullanılmış veya ücretsiz ise tamamlanmış olarak kabul edilir; tahsis edilen her veri bloğu bir ve yalnızca bir dosya veya dizin tarafından işgal edilir; tüm dosyalara ve dizinlere, dosya sistemindeki bir dizi başka dizin işlendikten sonra erişilebilir. Bir Linux sistemi operatör komutları kullanılarak kasıtlı olarak kapatıldığında, tüm dosya sistemleri kaldırılır. Kapatma sırasında bir dosya sisteminin bağlantısını kesmek, dosya sistemi başlığında dosya sisteminin düzgün bir şekilde ayrıldığını ve bu nedenle eksiksiz bir dosya sistemi olarak kabul edilebileceğini belirten bir "temiz bit" ayarlar.

Dosya sisteminde yıllarca hata ayıklama ve yeniden çalışma ve diske veri yazmak için geliştirilmiş algoritmalar kullanma, uygulamaların veya Linux çekirdeğinin kendisinin neden olduğu verilerin bozulmasını büyük ölçüde azalttı, ancak elektrik kesintileri ve diğer sistem sorunlarından kaynaklanan bozulma ve veri kaybını düzeltmek hala bir sorundur. zor bir görev. Standart kapatma prosedürleri kullanılmadan Linux sisteminin acil olarak durdurulması veya basit bir şekilde kapatılması durumunda, dosya sistemi başlığındaki "temiz bit" ayarlanmaz. Sistemin bir sonraki açılışında, bağlama işlemi sistemin "temiz" olarak işaretlenmediğini algılar ve Linux / Unix dosya sistemi denetleyicisi "fsck" (Dosya Sistemi Kontrolü) kullanarak bütünlüğünü fiziksel olarak kontrol eder.

Linux için kullanılabilen birkaç günlük kaydı dosya sistemi vardır. Bunların en ünlüsü: Silicon Graphics tarafından geliştirilen ancak şimdi açık kaynak kodlu bir günlük kaydı dosya sistemi olan XFS; Özellikle Linux için tasarlanmış bir günlük kaydı dosya sistemi olan RaiserFS; JFS, orijinal olarak IBM tarafından geliştirilen ancak şimdi açık kaynak olarak yayınlanan bir günlük kaydı dosya sistemi; ext3, Red Hat ve diğer birkaç sistemde Dr. Stephan Tweedie tarafından geliştirilen bir dosya sistemidir.

Ext3 dosya sistemi, ext2 dosya sisteminin Linux günlüklü sürümüdür. Ext3 dosya sisteminin diğer günlüklü dosya sistemlerine göre önemli bir avantajı vardır - ext2 dosya sistemiyle tamamen uyumludur. Bu, ext2 dosya sistemini işlemek ve özelleştirmek için geliştirilmiş tüm mevcut uygulamaları kullanmayı mümkün kılar.

Ext3 dosya sistemi, Linux çekirdekleri 2.4.16 ve sonraki sürümleri tarafından desteklenir ve çekirdek oluşturulurken Dosya Sistemleri Yapılandırması iletişim kutusu kullanılarak etkinleştirilmelidir. Red Hat 7.2 ve SuSE 7.3 gibi Linux dağıtımları zaten ext3 dosya sistemi için yerel destek içeriyor. Ext3 dosya sistemini yalnızca, çekirdeğinizde yerleşik ext3 desteği varsa ve en son "mount" ve "e2fsprogs" yardımcı programlarına sahipseniz kullanabilirsiniz.

Çoğu durumda, dosya sistemlerini bir biçimden diğerine dönüştürmek, içerdiği tüm verilerin yedeklenmesini, dosya sistemini içeren bölümlerin veya mantıksal birimlerin yeniden biçimlendirilmesini ve ardından tüm verilerin bu dosya sistemine geri yüklenmesini gerektirir. ext2 ve ext3 dosya sistemlerinin uyumluluğu nedeniyle, tüm bu eylemler atlanabilir ve çeviri tek bir komutla yapılabilir (kök ayrıcalıklarıyla başlatılır):

# / sbin / tune2fs -j<имя-раздела >

Örneğin / dev / hda5 bölümünde bulunan ext2 dosya sistemini ext3 dosya sistemine dönüştürmek aşağıdaki komutla yapılabilir:

# / sbin / tune2fs -j / dev / hda5

"tune2fs" komutunun "-j" seçeneği, mevcut bir ext2 dosya sisteminde bir ext3 günlüğü oluşturur. Ext2 dosya sistemini ext3'e dönüştürdükten sonra, bölümün artık bir "ext3" dosya sistemi olduğunu belirtmek için / etc / fstab dosyasındaki girişleri de değiştirmelisiniz. Otomatik bölüm türü algılamayı da ("otomatik" seçeneği) kullanabilirsiniz, ancak yine de dosya sistemi türünü açıkça belirtmeniz önerilir. Aşağıdaki örnek / etc / fstab dosyası, / dev / hda5 bölümü için dosya sistemi çevirisinden önceki ve sonraki değişiklikleri gösterir:

/ dev / hda5 / opt ext2 varsayılanları 1 2

/ dev / hda5 / opt ext3 varsayılanları 1 0

/ etc / fstab içindeki son alan, "fsck" yardımcı programı kullanılarak dosya sisteminin bütünlüğünün kontrol edilmesi gereken önyüklemedeki aşamayı gösterir. Ext3 dosya sistemini kullanırken, önceki örnekte gösterildiği gibi bu değeri "0" olarak ayarlayabilirsiniz. Bu, fsck'in dosya sisteminin bütünlüğünü hiçbir zaman kontrol etmeyeceği anlamına gelir, çünkü dosya sisteminin bütünlüğü bir günlük geri alma ile garanti edilir.

Kök dosya sistemini ext3'e dönüştürmek özel bir yaklaşım gerektirir ve bu en iyi şekilde ext3 dosya sistemini destekleyen bir RAM diski oluşturulduktan sonra tek kullanıcı modunda yapılır.

ext2 dosya sistemi yardımcı programlarıyla uyumlu olmanın ve ext2 dosya sistemini ext3'e dönüştürmenin yanı sıra, ext3 dosya sistemi ayrıca birkaç farklı türde günlük kaydı sunar.

Ext3 dosya sistemi, / etc / fstab dosyasından etkinleştirilebilen üç farklı günlük kaydı modunu destekler. Bu günlük modları aşağıdaki gibidir:

    Günlük / günlük - dosya sistemi verilerindeki ve meta verilerdeki tüm değişikliklerin kaydı. Üç günlük kaydı modunun en yavaşı. Bu mod, dosya sisteminde yaptığınız dosya değişikliklerini kaybetme olasılığını en aza indirir.

    Seri / sıralı - Yalnızca dosya sistemi meta veri değişikliklerini yazar, ancak dosya verisi güncellemelerini ilişkili dosya sistemi meta verileri değişmeden önce diske yazar. Bu ext3 günlük kaydı modu varsayılan olarak ayarlanmıştır.

    Geri Yazma - Değişikliklerin dosya verilerine yazılmasına ilişkin standart işleme dayalı olarak yalnızca dosya sistemi meta verilerinde yapılan değişiklikler yazılır. Bu en hızlı günlük kaydı yöntemidir.

Bu günlük modları arasındaki farklar hem ince hem de derindir. Günlük modunu kullanmak, ext3 dosya sisteminin dosya sistemindeki her değişikliği iki kez yazmasını gerektirir - bir kez günlüğe ve ardından dosya sisteminin kendisine. Bu, dosya sisteminizin genel performansını azaltabilir, ancak hem meta veri değişiklikleri hem de bu dosyadaki değişiklikler ext3 günlüğüne yazıldığından ve tekrarlanabildiğinden, dosyalarınızdaki veri değişikliklerinin kaybolma olasılığını en aza indirdiği için bu mod kullanıcılar tarafından en çok sevilir. sistem yeniden başlatıldığında.

"Sıralı" mod kullanılarak, yalnızca dosya sistemi meta verilerindeki değişiklikler kaydedilir, bu da dosya sistemine yazma ile günlüğe yazma arasındaki fazlalığı azaltır, bu nedenle bu yöntem daha hızlıdır. Dosya verilerindeki değişiklikler günlüğe kaydedilmese de, bunlar, sisteminizin performansını biraz yavaşlatabilecek ext3 günlük kaydı arka plan programı tarafından ilişkili dosya sistemi meta verileri değişikliklerinden önce yapılmalıdır. Bu günlük kaydı yönteminin kullanılması, dosya sistemindeki dosyaların, ilişkili dosya sistemi meta verileriyle hiçbir zaman eşitlenmemesini sağlar.

Geri yazma yöntemi, yalnızca dosya sistemi meta veri değişiklikleri depolandığından ve yazma sırasında (dosya boyutu ve dizin bilgileri gibi şeyleri güncellemeden önce) ilişkili dosya verilerinin değişmesi için herhangi bir bekleme olmadığından, diğer iki günlük kaydı yönteminden daha hızlıdır. Dosya verileri, dosya sistemi meta verilerinde günlüğe kaydedilen değişikliklere göre eşzamansız olarak güncellendiğinden, dosya sistemindeki dosyalar meta verilerde hatalar gösterebilir, örneğin, veri bloklarının sahibini belirtirken bir hata (güncellemesi yapılmadı). sistem yeniden başlatıldığında tamamlandı). Bu ölümcül değildir, ancak kullanıcıyı etkileyebilir.

Ext3 dosya sisteminde kullanılan günlükleme modunun gösterimi bu dosya sistemi için /etc/fstab dosyasında yapılır. "Seri" mod varsayılandır, ancak / etc / fstab dosyasında gerekli bölüm için seçenekleri değiştirerek farklı günlük modları belirleyebilirsiniz. Örneğin, / etc / fstab içinde "geri yazma" günlüğünün kullanıldığını gösteren bir giriş şöyle görünür:

/ dev / hda5 / opt ext3 verileri = geri yazma 1 0

    Windows NT Dosya Sistemi (NTFS)

      NTFS'nin fiziksel yapısı

Genel gerçeklerle başlayalım. Bir NTFS bölümü, teorik olarak, neredeyse istediğiniz herhangi bir boyutta olabilir. Elbette bir sınır var, ama bunu belirtmeyeceğim bile, çünkü önümüzdeki yüz yıllık bilgisayar teknolojisi gelişimi için - herhangi bir büyüme hızında - fazlasıyla yeterli olacaktır. Bu konuda pratikte durum nedir? Hemen hemen aynı. Bir NTFS bölümünün maksimum boyutu şu anda yalnızca sabit sürücülerin boyutuyla sınırlıdır. Ancak NT4, herhangi bir bölümü fiziksel disk başlangıcından 8 GB'den daha uzaktaysa, bir bölüme yüklemeye çalışırken sorunlarla karşılaşacaktır, ancak bu sorun yalnızca önyükleme bölümünü etkiler.

Lirik araştırma. NT4.0'ı boş bir diske kurma yöntemi oldukça orijinaldir ve NTFS'nin yetenekleri hakkında yanlış anlamalara yol açabilir. Yükleyiciye sürücüyü NTFS olarak biçimlendirmek istediğinizi söylerseniz, size sunacağı maksimum boyut yalnızca 4 GB'dir. Bir NTFS bölümünün boyutu aslında pratikte sınırsız olduğunda neden bu kadar küçüktür? Gerçek şu ki, yükleme bölümü bu dosya sistemini bilmiyor :) Yükleyici bu diski, maksimum boyutu NT'de 4 GB olan (oldukça standart olmayan büyük bir 64 KB kümesi kullanarak) normal bir FAT'a biçimlendirir ve yükler Bu FAT üzerinde NT ... Ancak zaten işletim sisteminin ilk önyüklemesi sırasında (kurulum aşamasında bile), bölüm hızla NTFS'ye dönüştürülür; böylece kullanıcı kurulum sırasında NTFS boyutundaki garip "sınırlama" dışında bir şey fark etmez. :)

      Kesit yapısı - genel görünüm

Diğer herhangi bir sistem gibi, NTFS de tüm faydalı alanı kümelere - bir seferde kullanılan veri bloklarına - böler. NTFS, 512 bayttan 64 KB'ye kadar neredeyse tüm küme boyutlarını desteklerken, 4 KB'lık bir küme belirli bir standart olarak kabul edilir. NTFS'nin küme yapısında herhangi bir anormallik yoktur, bu nedenle bu konuda genel olarak oldukça yaygın bir konu hakkında söylenecek özel bir şey yoktur.

Bir NTFS diski geleneksel olarak iki bölüme ayrılmıştır. Diskin ilk %12'si sözde MFT bölgesi için ayrılmıştır - MFT meta dosyasının büyüdüğü alan (aşağıda daha fazlası). Bu alana herhangi bir veri yazılamaz. MFT bölgesi her zaman boş tutulur - bu, en önemli hizmet dosyasının (MFT) büyüdükçe parçalanmaması için yapılır. Sürücünün kalan %88'i geleneksel dosya depolama alanıdır.

Bununla birlikte, boş disk alanı, fiziksel olarak tüm boş alanı içerir - MFT bölgesinin boş parçaları da orada bulunur. MFT bölgesini kullanma mekanizması şu şekildedir: dosyalar artık normal alana yazılamadığında, MFT bölgesi basitçe azaltılır (işletim sistemlerinin mevcut sürümlerinde, tam olarak iki kez), böylece dosya yazmak için alan boşaltılır. Normal MFT alanında boş alan varsa, alan tekrar genişleyebilir. Aynı zamanda, sıradan dosyalar bu bölgede kaldığında bir durum dışlanmaz: burada bir anormallik yoktur. Sistem onu ​​özgür tutmaya çalıştı ama hiçbir şey işe yaramadı. Hayat devam ediyor ... İstenmese de MFT meta dosyası yine de parçalanabilir.

      MFT ve yapısı

NTFS dosya sistemi, yapılandırmada olağanüstü bir başarıdır: sistemin her öğesi bir dosyadır - hatta hizmet bilgisi. NTFS'deki en önemli dosyaya MFT veya Ana Dosya Tablosu denir - genel bir dosya tablosu. MFT bölgesinde bulunan ve diskteki diğer tüm dosyaların merkezi bir dizini ve paradoksal olarak kendisidir. MFT, sabit boyutlu (genellikle 1 KB) kayıtlara bölünmüştür ve her kayıt bir dosyaya (kelimenin genel anlamıyla) karşılık gelir. İlk 16 dosya hizmet niteliğindedir ve işletim sistemi tarafından erişilemez - bunlara meta dosyalar denir ve ilk meta dosya MFT'nin kendisidir. MFT'nin bu ilk 16 öğesi, diskin sabit bir konuma sahip olan tek parçasıdır. İlk üç kaydın ikinci kopyasının güvenilirlik için (çok önemlidir) tam olarak diskin ortasında saklanması ilginçtir. MFT dosyasının geri kalanı, diğer herhangi bir dosya gibi, diskteki isteğe bağlı yerlere yerleştirilebilir - konumunu, ilk MFT öğesinde, kendi başına "bağlı" olarak geri yükleyebilirsiniz.

        meta dosyaları

İlk 16 NTFS dosyası (meta dosyaları) hizmet niteliğindedir. Her biri sistemin bazı yönlerinden sorumludur. Böyle bir modüler yaklaşımın avantajı inanılmaz esnekliktir - örneğin, FAT'ta, FAT alanındaki fiziksel hasar, tüm diskin çalışması için ölümcüldür ve NTFS, tüm hizmet alanlarını diskte parçalayabilir, hatta parçalayabilir , herhangi bir yüzey hatasını atlayarak - ilk 16 MFT öğesi hariç.

Meta dosyaları, bir NTFS diskinin kök dizininde bulunur - "$" ad simgesiyle başlarlar, ancak standart yollarla onlar hakkında herhangi bir bilgi edinmek zor olsa da. Bu dosyalar için çok gerçek bir boyutun belirtilmesi ilginçtir - örneğin, $ MFT dosyasının boyutuna bakarak işletim sisteminin tüm diskinizi kataloglamak için ne kadar harcadığını öğrenebilirsiniz. Aşağıdaki tablo, şu anda kullanılan meta dosyaları ve amaçlarını listeler.

diskin ortasında bulunan ilk 16 MFT kaydının bir kopyası

günlük destek dosyası (aşağıya bakın)

hizmet bilgileri - birim etiketi, dosya sistemi sürümü vb.

birimdeki standart dosya özniteliklerinin listesi

kök dizini

hacim boş alan haritası

önyükleme sektörü (bölüm önyüklenebilirse)

kullanıcıların disk alanını kullanma haklarının kaydedildiği bir dosya (yalnızca NT5'te çalışmaya başladı)

dosya - geçerli ciltteki dosya adlarındaki büyük ve küçük harfler arasındaki yazışma tablosu. Esas olarak, NTFS'de dosya adları 65 bin farklı karakterden oluşan Unicode ile yazıldığından, büyük ve küçük eşdeğerlerini arayan çok önemsizdir.

        Dosyalar ve akışlar

Yani sistemde dosyalar var - ve dosyalardan başka bir şey yok. Bu kavram NTFS'de neleri içerir?

    Her şeyden önce, zorunlu bir öğe MFT'de bir giriştir, çünkü daha önce belirtildiği gibi, MFT'de tüm disk dosyalarından bahsedilmiştir. Bu yer, gerçek veriler dışında dosyayla ilgili tüm bilgileri depolar. Dosya adı, boyutu, bireysel parçaların diskteki konumu vb. Bilgi için bir MFT kaydı eksikse, o zaman birkaçı kullanılır ve mutlaka arka arkaya olması gerekmez.

    İsteğe bağlı öğe - dosya veri akışları. "İsteğe bağlı" terimini tanımlamak garip görünebilir, ancak yine de burada garip bir şey yok. İlk olarak, dosyada veri olmayabilir - bu durumda, diskin kendisinde boş alan tüketmez. İkincisi, dosya çok büyük olmayabilir. O zaman oldukça iyi bir çözüm devreye giriyor: dosya verileri, bir MFT kaydı içindeki ana verilerden kalan yerde doğrudan MFT'de depolanıyor. Yüzlerce bayt kaplayan dosyalar genellikle ana dosya alanında "fiziksel" düzenlemelerine sahip değildir - böyle bir dosyanın tüm verileri tek bir yerde saklanır - MFT'de.

Dosya verileriyle ilgili durum da oldukça ilginç. NTFS'deki her dosya genel olarak biraz soyut bir yapıya sahiptir - bu tür verilere sahip değildir, ancak akışlar vardır. Akışlardan birinin genel anlamı vardır - dosya verileri. Ancak dosya özniteliklerinin çoğu da akışlardır! Böylece, dosyanın yalnızca bir temel varlığı olduğu ortaya çıktı - MFT'deki sayı ve diğer her şey isteğe bağlı. Bu soyutlama, oldukça uygun şeyler oluşturmak için kullanılabilir - örneğin, herhangi bir veriyi yazarak bir dosyaya başka bir akışı "yapıştırabilirsiniz" - örneğin, Windows 2000'de yapıldığı gibi, dosyanın yazarı ve içeriği hakkında bilgi (Dosya özelliklerinde Explorer'dan görüntülenen en sağdaki sekme). İlginç bir şekilde, bu ek akışlar standart yollarla görünür değildir: gözlemlenen dosya boyutu, yalnızca geleneksel verileri içeren ana akışın boyutudur. Örneğin, sıfır uzunlukta bir dosyaya sahip olabilirsiniz, silme 1 GB boş alan boşaltacaktır - çünkü bazı kurnaz program veya teknolojiler, içinde gigabayt boyutunda ek bir akış (alternatif veri) sıkışmıştır. Ama aslında, şu anda, akışlar pratik olarak kullanılmamaktadır, bu nedenle, varsayımsal olarak mümkün olmalarına rağmen, bu tür durumlardan korkmamak gerekir. Bir NTFS dosyasının sadece disk dizinlerine bakarak hayal edebileceğinizden daha derin ve daha genel bir kavram olduğunu unutmayın. Ve son olarak: veriler, 65535 farklı karakter veren 16 bitlik bir temsil olan Unicode'da temsil edildiğinden, dosya adı, ulusal alfabelerin tamamı da dahil olmak üzere herhangi bir karakteri içerebilir. Bir dosya adı için maksimum uzunluk 255 karakterdir.

      Kataloglar

Bir NTFS dizini, diğer dosya ve dizinlere bağlantıları saklayan ve diskte hiyerarşik bir veri yapısı oluşturan belirli bir dosyadır. Katalog dosyası, her biri dosya adını, temel nitelikleri ve katalog öğesi hakkında tam bilgi sağlayan MFT öğesine bir bağlantı içeren bloklara bölünmüştür. Dizinin iç yapısı bir ikili ağaçtır. Bunun anlamı şudur: FAT gibi doğrusal bir dizinde belirli bir ada sahip bir dosyayı bulmak için işletim sistemi, ihtiyaç duyduğunu bulana kadar tüm dizin girişlerini gözden geçirmelidir. İkili ağaç, dosya adlarını, dosya aramasının daha hızlı gerçekleştirileceği şekilde düzenler - dosyanın konumuyla ilgili sorulara iki basamaklı yanıtlar alarak. İkili bir ağacın cevaplayabileceği soru şudur: bu öğeye göre istenen ad hangi grupta bulunur - daha yüksek veya daha düşük? Ortadaki madde için buna benzer bir soruyla başlıyoruz ve her cevap arama alanını ortalama olarak yarı yarıya daraltıyor. Dosyalar, örneğin, basitçe alfabetik olarak sıralanır ve sorunun cevabı, ilk harfleri karşılaştırarak açık bir şekilde gerçekleştirilir. Yarıya daraltılan arama alanı, yine orta elemandan başlayarak benzer şekilde keşfedilmeye başlanır.

Sonuç - örneğin 1000 dosya arasından birini aramak için FAT'nin ortalama 500 karşılaştırma yapması gerekecek (büyük olasılıkla dosya aramanın ortasında bulunacak) ve ağaç tabanlı bir sistem yalnızca yaklaşık 10 (2 ^ 10 = 1024). Arama süresi tasarrufu açıktır. Bununla birlikte, geleneksel sistemlerde (FAT) her şeyin böyle çalıştığını düşünmemelisiniz: ilk olarak, ikili ağaç biçiminde bir dosya listesinin tutulması oldukça zahmetlidir ve ikincisi, modern bir sistemin yürütülmesinde FAT bile ( Windows2000 veya Windows98) benzer optimizasyon aramasını kullanır. Bu, bilgi kutunuzdaki başka bir gerçek. Ayrıca, bir dizine ağaç biçiminde bir dosya eklemenin doğrusal bir dizine göre daha zor olduğu yolundaki yaygın yanılgıyı (ki ben de oldukça yakın zamanda paylaştım) ortadan kaldırmak istiyorum: bunlar zaman açısından oldukça karşılaştırılabilir işlemlerdir - önemli olan şu ki, dizine bir dosya eklemek için, önce o ada sahip dosyanın henüz orada olmadığından emin olmalısınız :) - ve burada lineer sistemde yukarıda açıklanan dosyayı bulmakta zorlanacağız, bu daha fazla dizine bir dosya eklemenin basitliğini telafi etmektense.

Sadece katalog dosyasını okuyarak hangi bilgiler elde edilebilir? Tam olarak dir komutunun ürettiği şey. Disk üzerinde en basit gezinmeyi gerçekleştirmek için, her dosya için MFT'ye tırmanmanız gerekmez, dizin dosyalarından dosyalar hakkında en genel bilgileri okumanız yeterlidir. Diskin ana dizini - kök - MFT meta dosyasının başlangıcından özel bir bağlantı dışında, sıradan dizinlerden farklı değildir.

      günlük kaydı

NTFS, neredeyse herhangi bir gerçek arıza durumunda kendisini doğru duruma getirebilen, hataya dayanıklı bir sistemdir. Herhangi bir modern dosya sistemi, işlem gibi bir konsepte dayanır - tamamen ve doğru bir şekilde gerçekleştirilen veya hiç gerçekleştirilmeyen bir eylem. NTFS'nin ara (hatalı veya yanlış) durumları yoktur - veri değişikliği kuantumu arızadan önce ve sonra bölünemez, yıkıma ve karışıklığa neden olur - ya mükemmeldir ya da iptal edilir.

Örnek 1: veriler diske yazılıyor. Aniden, bir sonraki veri parçasını yazmaya karar verdiğimiz yere yazamadığımız ortaya çıktı - yüzeye fiziksel hasar. Bu durumda NTFS'nin davranışı oldukça mantıklıdır: tüm yazma işlemi geri alınır - sistem yazmanın yapılmadığını anlar. Konum bozuk olarak işaretlenir ve veriler başka bir konuma yazılır - yeni bir işlem başlar.

Örnek 2: daha karmaşık bir durum - veriler diske yazılıyor. Aniden, bang - güç kapatılır ve sistem yeniden başlatılır. Kayıt hangi aşamada durdu, veriler nerede ve saçmalık nerede? Başka bir sistem mekanizması kurtarmaya gelir - işlem günlüğü. Gerçek şu ki, diske yazma arzusunu fark eden sistem, durumunu $ LogFile meta dosyasında işaretledi. Yeniden başlatırken, bu dosya bir kaza sonucu kesintiye uğrayan ve sonucu tahmin edilemeyen eksik işlemlerin varlığı açısından incelenir - tüm bu işlemler iptal edilir: yazmanın yapıldığı yer tekrar serbest, dizinler ve MFT olarak işaretlenir. elemanlar arızadan önceki duruma getirilir ve sistem bir bütün olarak sabit kalır. Ama ya günlüğe yazarken bir hata meydana gelirse? Ayrıca sorun değil: işlem ya henüz başlamadı (yalnızca bunu yapma niyetlerini kaydetme girişimi var) ya da zaten sona erdi - yani, işlemin gerçekten tamamlanmış olduğunu kaydetme girişimi var. İkinci durumda, bir sonraki önyüklemede, sistem aslında her şeyin zaten doğru yazıldığını tam olarak anlayacak ve "tamamlanmamış" işleme dikkat etmeyecektir.

Ancak, günlük kaydının her derde deva olmadığını, hata ve sistem çökmelerini önemli ölçüde azaltmanın bir yolu olduğunu unutmayın. Sıradan bir NTFS kullanıcısının bir sistem hatası fark etmesi veya chkdsk'yi çalıştırmaya zorlanması pek olası değildir - deneyimler, disk etkinliği ile çok yüklü zamanlarda arızalar olması durumunda bile NTFS'nin tamamen doğru duruma geri yüklendiğini göstermektedir. Hatta bu işlemin ortasında diski optimize edebilir ve sıfırlamaya basabilirsiniz - bu durumda bile veri kaybı olasılığı çok düşük olacaktır. Ancak, NTFS kurtarma işleminin verilerinizin değil dosya sisteminin doğruluğunu garanti ettiğini anlamak önemlidir. Diske yazarken bir kilitlenme yaşadıysanız, verileriniz yazılamayabilir. Mucizeler yoktur.

NTFS dosyalarının oldukça kullanışlı bir özelliği vardır - "sıkıştırılmış". Gerçek şu ki, NTFS diskleri sıkıştırmak için yerleşik bir desteğe sahiptir - daha önce Stacker veya DoubleSpace ile kullanılması gereken bir şey. Herhangi bir dosya veya dizin diskte tek tek sıkıştırılmış biçimde saklanabilir - bu işlem uygulamalar için tamamen şeffaftır. Dosya sıkıştırma çok yüksek bir hıza sahiptir ve yalnızca bir büyük olumsuz özellik, sıkıştırılmış dosyaların büyük bir sanal parçalanmasıdır, ancak bu gerçekten kimseyi rahatsız etmez. Sıkıştırma, 16 kümelik bloklar halinde gerçekleştirilir ve "sanal kümeler" olarak adlandırılanları kullanır - yine, ilginç efektler elde etmenizi sağlayan son derece esnek bir çözüm - örneğin, dosyanın yarısı sıkıştırılabilir ve yarısı sıkıştırılamaz. Bu, belirli parçaların sıkıştırılmasına ilişkin bilgilerin depolanmasının normal dosya parçalanmasına çok benzer olması nedeniyle elde edilir: örneğin, gerçek, sıkıştırılmamış bir dosya için tipik bir fiziksel yerleşim kaydı:

1'den 43'e kadar olan dosya kümeleri, 400'den başlayan disk kümelerinde depolanır 44'ten 52'ye kadar olan dosya kümeleri, 8530'dan başlayan disk kümelerinde saklanır ...

Tipik bir sıkıştırılmış dosyanın fiziksel düzeni:

1'den 9'a kadar olan dosya kümeleri, 10'dan 16'ya kadar olan dosya kümelerinde 400'den disk kümelerinde depolanır, depolanmaz 17'den 18'e kadar olan dosya kümeleri, 409 dosya kümesinden 19'dan 36'ya kadar olan disk kümelerinde saklanır ...

Sıkıştırılmış dosyanın, içinde gerçek bir bilgi bulunmayan "sanal" kümelere sahip olduğu görülebilir. Sistem bu tür sanal kümeleri görür görmez, 16'nın katı olan önceki bloğun verilerinin sıkıştırılması gerektiğini hemen anlar ve sonuçta ortaya çıkan veriler sanal kümeleri doldurur - bu aslında, tüm algoritma.

      Güvenlik

NTFS, nesnelerin haklarını ayırt etmenin birçok yolunu içerir - bunun, mevcut olanların en mükemmel dosya sistemi olduğuna inanılır. Teoride, bu kuşkusuz doğrudur, ancak mevcut uygulamalarda, ne yazık ki, haklar sistemi ideal olmaktan uzaktır ve katı da olsa, her zaman mantıklı olmayan bir dizi özelliği temsil eder. Herhangi bir nesneye atanan ve sistem tarafından açık bir şekilde gözlemlenen haklar gelişiyor - haklara yapılan büyük değişiklikler ve eklemeler zaten birkaç kez gerçekleştirildi ve Windows 2000 tarafından hala oldukça makul bir kümeye geldiler.

NTFS dosya sistemi hakları, sistemin kendisiyle ayrılmaz bir şekilde bağlantılıdır - yani, genel olarak konuşursak, diske fiziksel erişim verilirse, başka bir sistem tarafından gözlemlenmeleri gerekmez. Fiziksel erişimi engellemek için Windows2000'de (NT5) standart bir özellik sunulmuştur - bununla ilgili daha fazla bilgi için aşağıya bakın. Mevcut haliyle haklar sistemi oldukça karmaşıktır ve günlük yaşamda genel okuyucu için ilginç ve yararlı bir şey söyleyebileceğimden şüpheliyim. Bu konuyla ilgileniyorsanız, NT ağ mimarisi hakkında bunu daha ayrıntılı olarak açıklayan birçok kitap bulacaksınız.

Dosya sisteminin yapısının tanımının tamamlanabileceği yer burasıdır, sadece birkaç basit pratik veya orijinal şeyi açıklamak için kalır.

Bu şey çok eski zamanlardan beri NTFS'deydi, ancak çok nadiren kullanıldı - ve yine de: Sabit Bağlantı, aynı dosyanın iki ada sahip olduğu zamandır (bir dosya dizinine veya farklı dizinlere yönelik birkaç işaretçi aynı MFT kaydını işaret eder) ... Diyelim ki aynı dosya 1.txt ve 2.txt isimlerine sahip: kullanıcı 1. dosyayı silerse 2. dosya kalır, 2. dosyayı silerse 1. dosya yani her iki isim de oluşturulduğu andan itibaren kalır, kesinlikle eşittirler. Dosya, yalnızca soyadı kaldırıldığında fiziksel olarak silinir.

      Sembolik Bağlantılar (NT5)

Sanal dizinler oluşturmanıza izin veren çok daha pratik bir özellik - tıpkı DOS'ta subst komutuyla sanal diskler gibi. Uygulamalar oldukça çeşitlidir: ilk olarak, dizin sistemini basitleştirmek. Belgeler ve ayarlar \ Yönetici \ Belgeler dizinini beğenmediyseniz, onu kök dizine bağlayabilirsiniz - sistem yine de dizinle yoğun bir yolla iletişim kurar ve siz - buna tamamen eşdeğer çok daha kısa bir adla . Bu tür bağlantılar oluşturmak için ünlü uzman Mark Russinovich (http://www.sysinternals.com) tarafından yazılmış bağlantı programını (junction.zip (15 Kb), 36 kb) kullanabilirsiniz. Program, özelliğin kendisi gibi yalnızca NT5'te (Windows 2000) çalışır. Bir bağlantıyı kaldırmak için standart rd komutunu kullanabilirsiniz. DİKKAT: Dizinin sanal yapısını (örneğin, FAR) anlamayan Explorer veya diğer dosya yöneticilerini kullanarak bir bağlantıyı silme girişimi, bağlantı tarafından başvurulan verileri siler! Dikkat olmak.

      Şifreleme (NT5)

Sırları hakkında endişelenen insanlar için faydalı bir özellik - her dosya veya dizin şifrelenebilir, bu da başka bir NT kurulumunun onu okumasını imkansız hale getirir. Sistemin kendisi için standart ve neredeyse kırılmaz bir önyükleme parolası ile birlikte bu özellik, önemli verilerinizin çoğu uygulama için yeterince güvenli olmasını sağlar.

33 numaralı genel bakış dersi için materyal

uzmanlık öğrencileri için

"Bilgi teknolojisi yazılımı"

BİT Anabilim Dalı Doçenti, Ph.D. Livak E.N.

DOSYA YÖNETİM SİSTEMLERİ

Temel kavramlar, gerçekler

Randevu. Dosya sistemlerinin özellikleriYAĞ,VFAT,yağ 32,HPFS,NTFS. Dosya sistemleri UNIX OS (s5, ufs), Linux Ext2FS Diskin sistem alanları (bölümler, birimler). Dosyaları yerleştirme ve dosyaların konumu hakkında bilgi depolama ilkeleri. Dizinlerin organizasyonu. Dosyalara ve dizinlere erişimi kısıtlama.

Yetenekler

Bilgisayar bilgilerini (dosyalar ve dizinler) korumak ve geri yüklemek için dosya sisteminin yapısı hakkındaki bilgileri kullanma. Dosyalara erişim denetimi organizasyonu.

Dosya sistemleri. dosya sistemi yapısı

Diskteki veriler dosya olarak saklanır. Dosya, diskin adlandırılmış bir bölümüdür.

Dosya yönetim sistemleri dosyaları yönetmek için tasarlanmıştır.

Dosya sistemi, dosyalarda depolanan verilerle mantıksal düzeyde ilgilenme yeteneği sağlar. Verilerin herhangi bir depolama ortamında düzenlenme şeklini belirleyen dosya sistemidir.

Böylece, dosya sistemi Dosya bilgilerini oluşturmak, yok etmek, düzenlemek, okumak, yazmak, değiştirmek ve taşımaktan ve ayrıca dosyalara erişimi kontrol etmekten ve dosyalar tarafından kullanılan kaynakları yönetmekten sorumlu olan bir dizi belirtim ve bunlarla ilişkili yazılımdır.

Dosya yönetim sistemi, modern işletim sistemlerinin büyük çoğunluğundaki ana alt sistemdir.

Dosya yönetim sistemini kullanma

· Tüm sistem işleme programları verilere göre bağlantılıdır;

· Disk alanının merkezi dağıtımı ve veri yönetimi sorununu çözer;

· Kullanıcıya dosyalar üzerinde işlem yapma (oluşturma vb.), dosyalar ve çeşitli cihazlar arasında veri alışverişi yapma, dosyaları yetkisiz erişime karşı koruma yeteneği sağlanır.

Bazı işletim sistemlerinde birden çok dosya yönetim sistemi bulunabilir ve bu da birden çok dosya sistemiyle çalışmasına olanak tanır.

Dosya sistemi ile dosya yönetim sistemi arasında ayrım yapmaya çalışalım.

"Dosya sistemi" terimi, dosyalarda düzenlenen verilere erişim ilkelerini tanımlar.

Terim "Dosya yönetim sistemi" dosya sisteminin özel uygulamasını ifade eder, yani. belirli bir işletim sistemindeki dosyalarla çalışmayı sağlayan bir dizi yazılım modülüdür.

Bu nedenle, belirli bir dosya sistemine göre düzenlenmiş dosyalarla çalışmak için, her işletim sistemi için karşılık gelen bir dosya yönetim sistemi geliştirilmelidir. Bu UV sistemi yalnızca tasarlandığı işletim sisteminde çalışacaktır.

Windows işletim sistemi ailesi için temel olarak dosya sistemleri kullanılır: VFAT, FAT 32, NTFS.

Şimdi bu dosya sistemlerinin yapısına bir göz atalım.

dosya sisteminde YAĞ herhangi bir mantıksal diskin disk alanı iki alana ayrılır:

Sistem alanı ve

· Veri alanı.

Sistem alanı biçimlendirildikten sonra oluşturulur ve başlatılır ve ardından dosya yapısı işlenirken güncellenir.

Sistem alanı aşağıdaki bileşenlerden oluşur:

· Önyükleme kaydını içeren önyükleme sektörü;

· Ayrılmış sektörler (bunlar olmayabilir);

Dosya ayırma tabloları (FAT, Dosya Ayırma Tablosu);

Kök dizin (KÖK).

Bu bileşenler birbiri ardına diskte bulunur.

Veri alanı köke bağlı dosya ve dizinleri içerir.

Veri alanı sözde kümelere bölünmüştür. Bir küme, bir veri alanının bir veya daha fazla bitişik sektörüdür. Öte yandan, bir küme, bir dosyaya tahsis edilen en küçük adreslenebilir disk alanı birimidir. Onlar. dosya veya dizin tam sayıda kümeyi kaplar. Diske yeni bir dosya oluşturmak ve yazmak için, işletim sistemi bunun için birkaç boş disk kümesi tahsis eder. Bu kümelerin birbirini takip etmesi gerekmez. Her dosya için, o dosyaya sağlanan tüm küme numaralarının bir listesi tutulur.

Veri alanını sektörler kullanmak yerine kümelere bölmek şunları yapmanızı sağlar:

· FAT boyutunu küçültün;

· Dosya parçalanmasını azaltın;

Dosya zincirlerinin uzunluğunun kısaltılması Þ dosya erişimi hızlandırılır.

Bununla birlikte, çok büyük bir küme boyutu, özellikle çok sayıda küçük dosya olması durumunda veri alanının verimsiz kullanımına yol açar (sonuçta, dosya başına ortalama olarak yarım küme kaybolur).

Modern dosya sistemlerinde (FAT 32, HPFS, NTFS) bu sorun, küme boyutunu (maksimum 4 KB) sınırlayarak çözülür.

Veri alanı haritası T dosya ayırma tablosu (Dosya Ayırma Tablosu - FAT) FAT tablosunun her öğesi (12, 16 veya 32 bit) bir disk kümesine karşılık gelir ve durumunu karakterize eder: boş, meşgul veya bozuk küme.

· Küme bir dosyaya atanmışsa (yani meşgul), o zaman ilgili FAT öğesi dosyanın bir sonraki kümesinin numarasını içerir;

· Dosyanın son kümesi FF8h - FFFh (FFF8h - FFFFh) aralığında bir sayı ile işaretlenmiştir;

· Küme boşsa, 000h (0000h) sıfır değerini içerir;

· Kullanılamaz (kötü) bir küme, FF7h (FFF7h) numarasıyla işaretlenmiştir.

Böylece FAT tablosunda aynı dosyaya ait olan kümeler birbirine zincirlenir.

Dosya tahsis tablosu, mantıksal diskin önyükleme kaydından hemen sonra depolanır, tam konumu, önyükleme sektöründeki özel bir alanda tanımlanır.

Birbirini takip eden iki özdeş nüsha halinde tutulur. Tablonun ilk kopyası yok edildiğinde, ikincisi kullanılır.

FAT'ın diske erişimde çok yaygın olarak kullanılması nedeniyle, genellikle RAM'e (G/Ç arabelleğinde veya önbelleğinde) yüklenir ve mümkün olduğu kadar uzun süre orada kalır.

FAT'nin ana dezavantajı, yavaş dosya işlemesidir. Bir dosya oluştururken kural çalışır - ilk boş küme tahsis edilir. Bu, disk parçalanmasına ve karmaşık dosya zincirlerine yol açar. Bu nedenle dosyalarla çalışmadaki yavaşlama.

FAT tablosunu görüntülemek ve düzenlemek için şunları kullanabilirsiniz: YararDiskEditör.

Dosyanın ayrıntıları, kök dizin adı verilen başka bir yapıda saklanır. Her mantıksal sürücünün kendi kök dizini (ROOT) vardır.

Kök dizini dosyaları ve diğer dizinleri açıklar. Bir dizin girişi, bir dosya tanıtıcıdır (tanımlayıcı).

Her dosya ve dizin tanımlayıcı onu içerir

· isim

· uzantı

Oluşturma veya son değişiklik tarihi

Oluşturma veya son değişiklik zamanı

Nitelikler (arşiv, dizin niteliği, birim niteliği, sistem, gizli, salt okunur)

Dosya uzunluğu (bir dizin için - 0)

Kullanılmayan ayrılmış bir alan

· Bir dosyaya veya dizine atanan kümeler zincirindeki ilk kümenin numarası; Bu numarayı alan işletim sistemi, FAT tablosuna bakarak dosyanın diğer tüm küme numaralarını bulur.

Böylece, kullanıcı dosyayı yürütme için başlatır. İşletim sistemi, geçerli dizindeki dosya açıklamalarına bakarak doğru ada sahip dosyayı arar. Geçerli dizinde gerekli öğe bulunduğunda, işletim sistemi bu dosyadaki ilk kümenin numarasını okur ve ardından FAT tablosundan kalan küme numaralarını belirler. Bu kümelerden gelen veriler, tek bir sürekli bölümde birleştirilerek RAM'e okunur. İşletim sistemi kontrolü dosyaya aktarır ve program çalışmaya başlar.

KÖK kök dizinini görüntülemek ve düzenlemek için ayrıca şunu da kullanabilirsiniz. YararDiskEditör.

Dosya sistemi VFAT

VFAT (sanal FAT) dosya sistemi ilk olarak Windows for Workgroups 3.11'de ortaya çıktı ve korumalı modda dosya G/Ç için tasarlandı.

Bu dosya sistemi Windows 95'te kullanılmaktadır.

Windows NT 4'te de desteklenir.

VFAT, yerel Windows 95 32 bit dosya sistemidir ve VFAT .VXD sürücüsü tarafından kontrol edilir.

VFAT, tüm dosya işlemleri için 32 bit kod kullanır, 32 bit korumalı mod sürücüleri kullanabilir.

ANCAK, dosya ayırma tablosu girişleri 12 veya 16 bit kalır, bu nedenle diskte aynı veri yapısı (FAT) kullanılır. Onlar. F tablo formatıVFAT aynı FAT formatı gibi.

"8.3" adlarıyla birlikte VFAT uzun dosya adlarını destekler... (Genellikle VFAT'nin uzun adları destekleyen FAT olduğu söylenir).

VFAT'nin ana dezavantajı, büyük mantıksal disk boyutları için yüksek kümeleme kayıpları ve mantıksal diskin boyutu üzerindeki kısıtlamalardır.

Dosya sistemi YAĞ 32

Bu, FAT tablosunu kullanma fikrinin yeni bir uygulamasıdır.

FAT 32, tamamen bağımsız bir 32 bit dosya sistemidir.

İlk olarak Windows OSR 2'de (OEM Service Release 2) kullanıldı.

FAT 32 şu anda Windows 98 ve Windows ME'de kullanılmaktadır.

Önceki FAT uygulamalarına göre çok sayıda iyileştirme ve ekleme içerir.

1. Daha küçük kümeler (4 KB) kullandığı için disk alanının çok daha verimli kullanımı - %15'e varan tasarruf sağladığı tahmin edilmektedir.

2. Kritik veri yapılarının kopyalarını oluşturmanıza olanak tanıyan genişletilmiş bir önyükleme kaydına sahiptir Þ diskin yapılarının ihlaline karşı diskin direncini arttırır

3. Standart yerine FAT yedeği kullanabilir.

4. Kök dizini taşıyabilir, başka bir deyişle kök dizini herhangi bir yerde olabilir Þ kök dizinin boyutundaki kısıtlamayı kaldırır (ROOT'un bir kümeyi işgal etmesi gerektiği için 512 öğe).

5. Kök dizinin yapısı iyileştirildi

Oluşturma zamanı, oluşturma tarihi, son erişim tarihi, sağlama toplamı gibi ek alanlar eklendi

Uzun dosya adı için hala birden çok tanımlayıcı kullanılmaktadır.

Dosya sistemi HPFS

HPFS (Yüksek Performanslı Dosya Sistemi), yüksek performanslı bir dosya sistemidir.

HPFS ilk olarak OS / 2 1.2 ve LAN Manager'da ortaya çıktı.

listeliyoruz HPFS'nin ana özellikleri.

· Temel fark, dosyaları diske yerleştirmenin temel ilkeleri ve dosyaların konumu hakkında bilgi depolama ilkeleridir. Bu ilkeler sayesinde HPFS, yüksek performans ve hata toleransı, güvenilirdir dosya sistemi.

HPFS'deki disk alanı, kümeler tarafından tahsis edilmez (FAT'de olduğu gibi), ancak bloklar. Modern uygulamada, blok boyutu bir sektöre eşit alınır, ancak prensipte farklı bir boyutta olabilir. (Aslında, bir blok bir kümedir, sadece bir küme her zaman bir sektöre eşittir). Dosyaları bu kadar küçük bloklara yerleştirmek disk alanının daha verimli kullanımı, boş alanın ek yükü dosya başına ortalama olarak yalnızca (yarım sektör) 256 bayt olduğundan. Küme boyutu ne kadar büyük olursa, o kadar fazla disk alanı boşa harcandığını hatırlayın.

HPFS, dosyayı bitişik bloklar halinde düzenlemeyi veya bu mümkün değilse, diske şu şekilde yerleştirmeyi amaçlamaktadır: kapsamlar(parçaları) dosya fiziksel olarak mümkün olduğunca birbirine yakındı. Bu yaklaşım önemli okuma / yazma kafalarını konumlandırma süresini azaltır sabit disk ve gecikme (okuma / yazma kafasının istenen parçaya kurulumu arasındaki gecikme). Bir FAT dosyasında ilk boş kümenin basitçe tahsis edildiğini hatırlayın.

Kapsamlar(kapsam) - diskin bitişik sektörlerinde bulunan dosya parçaları. Dosya, parçalanmamışsa en az bir uzantıya ve aksi takdirde birden çok uzantıya sahiptir.

· Kullanılmış yöntem dosyaların konumu hakkında bilgi depolamak ve aramak için dengeli ikili ağaçlar (dizinler diskin merkezinde saklanır, ayrıca otomatik dizin sıralama sağlanır), bu çok önemlidir üretkenliği artırır HPFS (FAT'a karşı).

HPFS, izin veren özel genişletilmiş dosya özniteliklerine sahiptir. dosyalara ve dizinlere erişimi kontrol edin.

Genişletilmiş özellikler (genişletilmiş özellikler, EA'lar ) dosya hakkında ek bilgileri saklamanıza izin verir. Örneğin, her dosya benzersiz grafiği (simgesi), dosya açıklaması, yorumu, dosyanın sahibiyle ilgili bilgiler vb. ile ilişkilendirilebilir.

HPFS bölümünün C yapısı


HPFS'nin kurulu olduğu bölümün başında üç tane vardır. kontrol blokları:

Önyükleme bloğu,

Ek bir blok (süper blok) ve

Yedek blok.

18 sektör işgal ediyorlar.

HPFS'deki geri kalan tüm disk alanı, bitişik sektörlerden bölümlere ayrılmıştır - çizgili(bant - şerit, bant). Her şerit 8 MB disk alanı kaplar.

Her şerit ve kendi sektör tahsisi bit eşlemi Bitmap, belirli bir bandın hangi sektörlerinin işgal edildiğini ve hangilerinin serbest olduğunu gösterir. Bir veri şeridinin her sektörü, bitmap'inde bir bit içerir. Bit = 1 ise, sektör meşgul, 0 ise - boş.

İki şeridin bit eşlemleri diskte yan yana bulunur ve şeritlerin kendileri de bulunur. Yani, şeritlerin ve kartların sırası, Şek.

İle karşılaştırmakYAĞ... Tüm disk (FAT tablosu) için yalnızca bir "bitmap" vardır. Ve onunla çalışmak için, okuma / yazma kafalarını ortalama olarak diskin yarısı boyunca hareket ettirmeniz gerekir.

Sabit diskin okuma / yazma kafalarını konumlandırma süresini azaltmak için, HPFS'de disk şeritlere ayrılmıştır.

Düşünmek kontrol blokları.

Önyükleme bloğu (botengellemek)

Birim adını, seri numarasını, BIOS ayarları bloğunu ve önyükleme programını içerir.

Bootstrap programı dosyayı bulur. OS 2 LDR , belleğe okur ve kontrolü bu işletim sistemi önyükleme programına aktarır, bu da OS / 2 çekirdeğini diskten belleğe yükler - OS 2 KRNL. Ve zaten OS 2 KRIML dosyadaki bilgileri kullanma YAPILANDIRMA SYS gerekli tüm diğer program modüllerini ve veri bloklarını belleğe yükler.

Önyükleme bloğu, 0 ila 15 sektörlerinde bulunur.

SüperEngellemek(süper blok)

içerir

Bir bitmap blok listesine işaretçi. Bu liste, serbest sektörleri algılamak için kullanılan bit eşlemleri içeren diskteki tüm blokları listeler;

· Bozuk blok listesine işaretçi. Sistem hasarlı bir blok tespit ettiğinde bu listeye eklenir ve artık bilgi depolamak için kullanılmaz;

Bir dizin bandına işaretçi,

Kök dizinin dosya düğümüne (F -düğüm) bir işaretçi,

· CHKDSK programı tarafından son bölüm kontrolünün tarihi;

· Şerit boyutu hakkında bilgi (şu anki HPFS uygulamasında - 8 MB).

Süper blok, sektör 16'da yer almaktadır.

Kıyamamakengellemek(yedek blok)

içerir

Acil durum değiştirme haritasına işaretçi (düzeltme haritası veya düzeltme -alanlar);

Dizin acil ücretsiz engelleme listesine işaretçi

· Bir dizi sistem bayrağı ve tanımlayıcısı.

Bu blok diskin 17. sektöründe bulunur.

Yedek blok, HPFS dosya sisteminin yüksek hata toleransı sağlar ve diskteki hasarlı verileri kurtarmanıza olanak tanır.

Dosya Ayırma İlkesi

Kapsamlar(kapsam) - diskin bitişik sektörlerinde bulunan dosya parçaları. Dosya, parçalanmamışsa en az bir uzantıya ve aksi takdirde birden çok uzantıya sahiptir.

HPFS, sabit sürücünün okuma/yazma kafalarının konumlandırma süresini azaltmak için

1) dosyayı bitişik bloklara yerleştirin;

2) bu mümkün değilse, parçalanmış dosyanın uzantılarını mümkün olduğunca birbirine yakın yerleştirin,

Bunu yapmak için HPFS istatistikleri kullanır ve ayrıca büyüyen dosyaların sonunda koşullu olarak en az 4 kilobaytlık alan ayırmaya çalışır.

Dosyaların konumu hakkında bilgi saklama ilkeleri

Diskin her dosya ve dizini kendi dosya düğümü F-Düğümü... Bir dosyanın konumu ve genişletilmiş öznitelikleri hakkında bilgi içeren bir yapıdır.

Her F Düğümü bir sektör ve her zaman dosya veya dizinin yakınında bulunur (genellikle dosya veya dizinden hemen önce). F-Düğümü nesnesi şunları içerir:

Uzunluk,

Dosya adının ilk 15 karakteri,

Özel servis bilgileri,

Dosya erişim istatistikleri,

Genişletilmiş dosya öznitelikleri,

· Erişim hakları listesi (veya çok büyükse bu listenin yalnızca bir kısmı); genişletilmiş öznitelikler dosya düğümü için çok büyükse, onlara bir işaretçi yazılır.

Dosyanın konumu ve bağlılığı hakkında ilişkisel bilgiler, vb.

Dosya bitişikse, diskteki konumu iki 32 bitlik sayı ile tanımlanır. İlk sayı, dosyanın ilk bloğuna bir işaretçidir ve ikincisi, kapsam uzunluğudur (dosyaya ait ardışık blokların sayısı).

Bir dosya parçalanmışsa, uzantılarının tahsisi, dosya düğümünde ek 32 bitlik sayı çiftleriyle açıklanır.

Bir dosya düğümü, en fazla sekiz dosya uzantısı için bilgi barındırabilir. Dosyanın daha fazla uzantısı varsa, dosya düğümüne, uzantılara veya bir dizin ağacı bloğuna benzer şekilde diğer tahsis bloklarına en fazla 40 işaretçi içerebilen bir tahsis bloğuna bir işaretçi yazılır.

Dizin yapısı ve yerleşimi

Dizinleri depolamak için şunu kullanın: orta bant.

Bu şerit denir dizingrup.

Doluysa, HPFS diğer şeritlerdeki dosya dizinlerini düzenlemeye başlar.

Bu bilgi yapısının diskin ortasındaki konumu, okuma/yazma kafalarının ortalama konumlandırma süresini önemli ölçüde azaltır.

Ancak, kullanımı yöntem dosya konumu bilgilerini depolamak ve almak için dengeli ikili ağaçlar.

Dosya sisteminde bunu hatırlayın YAĞ dizin, özel olarak sıralanmamış doğrusal bir yapıya sahiptir, bu nedenle, bir dosya ararken, en baştan sırayla bakmanız gerekir.

HPFS'de dizin yapısı şu şekildedir: alfabetik sırayla girişleri olan dengeli ağaç.

Ağaçtaki her giriş şunları içerir:

Dosya öznitelikleri,

İlgili dosya düğümüne bir işaretçi,

Dosyanın oluşturulma saat ve tarihi, son güncelleme ve itiraz saat ve tarihi hakkında bilgi,

Genişletilmiş öznitelikleri içeren verilerin uzunluğu,

Bir dosya erişim sayacı,

Dosya adının uzunluğu

Adın kendisi,

· Ve diğer bilgiler.

HPFS dosya sistemi, yalnızca bir dizindeki dosyayı bulmak için gereken ikili ağacın dallarını arar. Bu yöntem, FAT sisteminde olduğu gibi, dizindeki tüm girişlerin sıralı olarak okunmasından birçok kez daha verimlidir.

Mevcut HPFS uygulamasında hangi dizinlerin tahsis edildiğine göre blokların her birinin boyutu 2 KB'dir. Dosyayı açıklayan kaydın boyutu, dosya adının boyutuna bağlıdır. Ad 13 bayt ise (8.3 formatı için), 2 KB'lık bir blok 40 adede kadar dosya tanımlayıcı içerebilir. Bloklar bir liste aracılığıyla birbirine bağlanır.

sorunlar

Dosyaları yeniden adlandırırken, sözde bir ağaç yeniden dengeleme meydana gelebilir. Dosya oluşturma, yeniden adlandırma veya silme, basamaklı dizin blokları... Aslında, dosyanın boyutu büyümemiş olsa bile, yetersiz disk alanı nedeniyle yeniden adlandırma başarısız olabilir. Bu "felaketten" kaçınmak için, HPFS, bir "çökme" durumunda kullanılabilecek küçük bir serbest blok havuzu bulundurur. Bu işlem, tam diskte ek blokların tahsis edilmesini gerektirebilir. Bu boş blok havuzuna bir işaretçi SpareBlock'ta saklanır,

Dosyaları ve dizinleri diske yerleştirme ilkeleriHPFS:

· Dosyaların konumuyla ilgili bilgiler disk boyunca dağıtılırken, her bir belirli dosyanın kayıtları (mümkünse) bitişik sektörlere ve konum verilerinin yakınına yerleştirilir;

· Dizinler disk alanının ortasında bulunur;

· Dizinler, girişleri alfabetik sıraya göre olan ikili dengeli bir ağaç olarak saklanır.

HPFS'de veri depolamanın güvenilirliği

Herhangi bir dosya sistemi, diske bilgi yazarken meydana gelen hataları düzeltmek için bir araca sahip olmalıdır. HPFS kullanır acil değiştirme mekanizması ( düzeltme).

HPFS dosya sistemi diske veri yazarken bir sorunla karşılaşırsa, ekranda uygun bir hata mesajı görüntüler. HPFS daha sonra arızalı sektöre yazılması gereken bilgileri bu durum için önceden ayrılmış yedek sektörlerden birinde saklar. Yedek yedek blok listesi, HPFS yedek bloğunda saklanır. Normal bir bloğa veri yazarken bir hata tespit edilirse, HPFS boş yedek bloklardan birini seçer ve verileri bu blokta saklar. Ardından dosya sistemi güncellemeleri yedekleme ünitesinde acil durum değiştirme kartı.

Bu harita, her biri 32-bit sektör numarası olan bir çift çift sözcükten ibarettir.

İlk sayı arızalı sektörü, ikincisi ise mevcut yedek sektörler arasından onun yerini almak üzere seçilen sektörü gösterir.

Arızalı sektör yedek ile değiştirildikten sonra, acil durum değiştirme kartı diske yazılır ve ekranda kullanıcıyı diske yazma hatası hakkında bilgilendiren bir açılır pencere belirir. Sistem diskin bir sektörünü her yazdığında veya okuduğunda, acil durum değiştirme kartına bakar ve tüm bozuk sektör numaralarını yedek sektör numaralarıyla karşılık gelen verilerle değiştirir.

Bu sayı çevirisinin sistem performansını önemli ölçüde etkilemediğine dikkat edilmelidir, çünkü yalnızca fiziksel olarak diske erişirken yapılır, ancak disk önbelleğinden veri okunurken yapılmaz.

Dosya sistemi NTFS

NTFS (Yeni Teknoloji Dosya Sistemi) dosya sistemi, onu diğer dosya sistemlerinden önemli ölçüde ayıran bir dizi önemli iyileştirme ve değişiklik içerir.

Nadir istisnalar dışında şunu unutmayın: NTFS bölümlerine yalnızca doğrudan şuradan erişilebilir:pencerelerNT, NTFS birimlerinden dosyaları okumak için bir dizi işletim sistemi için dosya yönetim sistemlerinin karşılık gelen uygulamaları olmasına rağmen.

Ancak, henüz Windows NT sistemi dışında NTFS ile çalışmak için tam teşekküllü uygulamalar bulunmamaktadır.

NTFS, genel Windows 98 ve Windows Millennium Edition işletim sistemlerinde desteklenmez.

Ana ÖzelliklerNT FS

· Büyük diskler üzerinde çalışmak verimlidir (FAT'den çok daha verimli);

Dosyalara ve dizinlere erişimi kısıtlamak için araçlar var Þ NTFS bölümleri, hem dosyalar hem de dizinler için yerel güvenlik sağlar;

olan bir işlem mekanizması getirilmiştir. Kerestecilik dosya işlemleri Þ güvenilirlikte önemli artış;

· Maksimum disk sektörü ve/veya küme sayısıyla ilgili birçok kısıtlamayı kaldırdı;

· NTFS'deki dosya adı, FAT ve HPFS dosya sistemlerinden farklı olarak, veriler Unicode'da ( 65535 farklı karakter veren 16 bitlik bir temsil) temsil edildiğinden, ulusal alfabelerin tamamı da dahil olmak üzere herhangi bir karakteri içerebilir. NTFS'de bir dosya adının maksimum uzunluğu 255 karakterdir.

· NTFS'de ayrıca tek tek dosyalara, tüm dizinlere ve hatta birimlere uygulanabilen (ve ardından iptal edilen veya uygun gördüğünüz şekilde atanan) yerleşik sıkıştırma araçları vardır.

NTFS dosya sistemi ile birim yapısı

Bir NTFS bölümüne birim denir. Mümkün olan maksimum birim boyutları (ve dosya boyutları) 16 EB'dir (eksabayt 2 ** 64).

Diğer sistemler gibi, NTFS de bir birimdeki disk alanını kümelere - veri birimleri olarak adreslenen veri bloklarına - böler. NTFS, 512 bayttan 64 KB'ye kadar olan küme boyutlarını destekler; standart, 2 veya 4 KB'lik bir küme olarak kabul edilir.

NTFS'deki tüm disk alanı iki eşit olmayan parçaya bölünmüştür.


Diskin ilk %12'si sözde MFT bölgesi için ayrılmıştır - boyutu artabilen alan, ana hizmet meta dosyası MFT.

Bu alana herhangi bir veri yazılamaz. MFT bölgesi her zaman boş tutulur - bu, MFT dosyasının büyüdükçe mümkün olduğunca parçalanmaması için yapılır.

Birimin kalan %88'i normal dosya depolama alanıdır.

MFT (ustadosyatablo - ortak dosya tablosu) aslında kendisi de dahil olmak üzere diskteki diğer tüm dosyaların bir dizinidir. Dosyaların konumunu belirlemek için tasarlanmıştır.

MFT, sabit boyutlu kayıtlardan oluşur. MFT kayıt boyutu (minimum 1 KB ve maksimum 4 KB), birim biçimlendirme sırasında belirlenir.

Her giriş bir dosyaya karşılık gelir.

İlk 16 giriş hizmet niteliğindedir ve işletim sistemi tarafından kullanılamaz - bunlara denir meta dosyaları, ve ilk meta dosyası MFT'nin kendisidir.

MFT'nin bu ilk 16 öğesi, diskin kesinlikle sabit bir konuma sahip olan tek parçasıdır. Güvenilirlik için bu 16 kaydın bir kopyası cildin ortasında tutulmuştur.

MFT dosyasının geri kalanı, diğer herhangi bir dosya gibi, diskte rastgele yerlere yerleştirilebilir.

Meta dosyaları hizmet niteliğindedir - her biri sistem çalışmasının bazı yönlerinden sorumludur. Meta dosyaları, NTFS biriminin kök dizininde bulunur. Standart yollarla onlar hakkında herhangi bir bilgi edinmek zor olsa da hepsi "$" karakteriyle başlar. Tablo ana meta dosyaları ve amaçlarını gösterir.

Meta dosyası adı

Meta dosyası amacı

$ MFT

Ana Dosya Tablosunun kendisi

$ MFTmirr

Birimin ortasında yer alan ilk 16 MFT kaydının bir kopyası

$ GünlükDosyası

Günlük destek dosyası

$ Hacim

Hizmet bilgileri - birim etiketi, dosya sistemi sürümü vb.

$ AttrDef

Bir birimdeki standart dosya özniteliklerinin listesi

Kök dizini

$ Bit eşlem

Hacim boş alan haritası

$ Önyükleme

Önyükleme sektörü (bölüm önyüklenebilirse)

$ Kota

Kullanıcıların disk alanını kullanma haklarının kaydedildiği dosya (bu dosya yalnızca NTFS 5.0 ile Windows 2000)

$ Büyük Harf

Dosya - dosya adlarındaki büyük ve küçük harfler arasındaki yazışma tablosu. NTFS'de dosya adları tek kod (65 bin farklı karakter) ve bu durumda büyük ve küçük eşdeğerleri aramak önemsiz bir iş değil

Dosyayla ilgili tüm bilgiler ilgili MFT kaydında saklanır:

· Dosya adı,

· boyut;

· Dosya öznitelikleri;

Tek tek parçaların, vb. diski üzerine yerleştirin.

Bilgi için bir MFT kaydı eksikse, ardışık olanlar değil, birkaç kayıt kullanılır.

Dosya çok büyük değilse, dosya verileri doğrudan MFT'de, bir MFT kaydı içindeki ana verilerden kalan alanda depolanır.

NTFS birimindeki dosya, sözde tarafından tanımlanır. dosya bağlantısı(Dosya Referansı), 64 bitlik bir sayı olarak temsil edilir.

MFT'deki kayıt numarasına karşılık gelen dosya numarası,

· Ve sıra numaraları. Bu sayı, NTFS dosya sisteminin dahili tutarlılık kontrolleri yapmasına izin veren MFT'de verilen numara her yeniden kullanıldığında artırılır.

NTFS'deki her dosya ile temsil edilir Canlı Yayınlar(akışlar), yani "sadece verilere" sahip değildir, ancak akışlar vardır.

Akışlardan biri dosya verileridir.

Dosya özniteliklerinin çoğu da akışlardır.

Böylece, dosyanın yalnızca bir temel varlığı olduğu ortaya çıktı - MFT'deki sayı ve akışları da dahil olmak üzere diğer her şey isteğe bağlıdır.

Bu yaklaşım etkili bir şekilde kullanılabilir - örneğin, bir dosyaya herhangi bir veri yazarak başka bir akışı "yapıştırabilirsiniz".

Bir NTFS birimindeki dosyalar ve dizinler için standart öznitelikler, sabit adlara ve tür kodlarına sahiptir.

Katalog NTFS'de, diğer dosya ve dizinlere bağlantıları saklayan özel bir dosyadır.

Katalog dosyası, her biri aşağıdakileri içeren bloklara bölünmüştür:

· Dosya adı,

Temel nitelikler ve

Diskin kök dizini, MFT meta dosyasının başlangıcından ona özel bir bağlantı dışında, sıradan dizinlerden farklı değildir.

Dizinin iç yapısı, HPFS'deki gibi bir ikili ağaçtır.

Kök ve kök olmayan dizinlerdeki dosya sayısı sınırlı değildir.

NTFS dosya sistemi, NT güvenlik nesne modelini destekler: NTFS, dizinleri ve dosyaları heterojen nesneler olarak ele alır ve her tür için ayrı (çakışan da olsa) erişim listeleri tutar.

NTFS, dosya düzeyinde güvenlik sağlar; bu, birimlere, dizinlere ve dosyalara erişim haklarının kullanıcı hesabına ve ait olduğu gruplara bağlı olabileceği anlamına gelir. Bir kullanıcı dosya sistemindeki bir nesneye her eriştiğinde, erişim hakları bu nesnenin izinler listesine göre kontrol edilir. Kullanıcının yeterli düzeyde hakları varsa, talebi karşılanır; aksi takdirde istek reddedilir. Bu güvenlik modeli, hem NT bilgisayarlarında yerel kullanıcı oturum açması hem de uzak ağ istekleri için geçerlidir.

NTFS ayrıca bazı kendi kendini iyileştirme özelliklerine de sahiptir. NTFS, dosya yazma işlemlerini özel bir sistem günlüğüne karşı yeniden yürütmenize izin veren işlem günlüğü de dahil olmak üzere sistemin bütünlüğünü kontrol etmek için çeşitli mekanizmaları destekler.

NS Kerestecilik dosya işlemleri, dosya yönetim sistemi değişiklikleri özel bir hizmet dosyasına kaydeder. Dosya yapısını değiştirme ile ilgili bir işlemin başında ilgili bir not alınır. Dosyalar üzerinde yapılan işlemler sırasında herhangi bir hata oluşursa, işlemin başladığına dair belirtilen işaret eksik olarak gösterilir. Makineyi yeniden başlattıktan sonra dosya sisteminin bütünlüğünün kontrol edilmesi, bu tamamlanmamış işlemleri geri alacak ve dosyaları orijinal durumlarına geri yükleyecektir. Dosyalardaki verileri değiştirme işlemi normal bir şekilde tamamlanırsa, bu çok günlük tutan destek hizmeti dosyasında işlem tamamlandı olarak işaretlenir.

Dosya sisteminin ana dezavantajıNTFS- hizmet verileri çok yer kaplar (örneğin, kataloğun her bir öğesi 2 KB alır) - küçük bölümler için hizmet verileri medya hacminin %25'ini kaplayabilir.

Þ NTFS, disketleri biçimlendirmek için kullanılamaz. 100 MB'den küçük bölümleri biçimlendirmek için kullanmayın.

işletim sistemi dosya sistemi UNIX

UNIX dünyasında, kendi harici bellek yapısına sahip birkaç farklı dosya sistemi vardır. En ünlüsü, geleneksel UNIX System V (s5) dosya sistemi ve BSD UNIX dosya ailesidir (ufs).

5'i düşünün.

UNIX'teki bir dosya, bir dizi rastgele erişim karakteridir.

Dosya öyle bir yapıya sahiptir ki, kullanıcı ona empoze eder.

Unix dosya sistemi, hiyerarşik, çok kullanıcılı bir dosya sistemidir.

Dosya sistemi bir ağaç yapısına sahiptir. Ağacın üst kısımları (ara düğümler), diğer dizinlere veya dosyalara bağlantı içeren dizinlerdir. Ağacın yaprakları dosyalara veya boş dizinlere karşılık gelir.

Yorum Yap. Aslında, Unix dosya sistemi ağaç benzeri değildir. Gerçek şu ki, ilişkilendirmek mümkün olduğundan, sistemin bir ağaç şeklinde hiyerarşiyi kırma olasılığı vardır. aynı dosya içeriğine sahip birden çok ad.

disk yapısı

Disk bloklara ayrılmıştır. Veri bloğunun boyutu, dosya sistemi mkfs komutu ile biçimlendirilirken belirlenir ve 512, 1024, 2048, 4096 veya 8192 bayt olarak ayarlanabilir.

512 bayt sayıyoruz (sektör boyutu).

Disk alanı aşağıdaki alanlara bölünmüştür (şekle bakın):

· Önyükleme bloğu;

· Kontrol süper bloğu;

· i -düğümler dizisi;

· Dosyaların içeriğini (verilerini) depolamak için bir alan;

· Bir dizi ücretsiz blok (bir listeye bağlı);

Önyükleme bloğu

süper blok

dosya numarası

. . .

dosya numarası

Yorum Yap. UFS dosya sistemi için - tüm bunlar silindir grubu için tekrarlanır (Önyükleme bloğu hariç) + silindir grubunu tanımlamak için özel bir alan tahsis edilmiştir

Önyükleme bloğu

Blok # 0 numaralı blokta yer almaktadır. (Donanım önyükleyicisi her zaman sistem aygıtı bloğu sıfırına atıfta bulunduğundan, bu bloğun sistem cihaz bloğu sıfırına yerleştirilmesinin donanım tarafından belirlendiğini hatırlayın. Bu, donanıma bağlı olan son dosya sistemi bileşenidir.)

Önyükleme bloğu, UNIX OS'yi ilk kez başlatmak için kullanılan bir hızlandırma programı içerir. 5 dosya sistemlerinde, aslında yalnızca kök dosya sisteminin önyükleme bloğu kullanılır. Ek dosya sistemlerinde bu alan bulunur, ancak kullanılmaz.

süper blok

Dosya sisteminin durumu hakkında operasyonel bilgilerin yanı sıra dosya sistemi ayarları hakkında bilgiler içerir.

Özellikle, süper blok aşağıdaki bilgileri içerir:

· i -düğümlerin (düğümlerin) sayısı;

· Bölümün boyutu ???;

· Ücretsiz blokların listesi;

· Ücretsiz i -düğümlerin listesi;

· ve diğeri.

Dikkat etmek! Boş disk alanı formları ücretsiz blokların bağlantılı listesi... Bu liste bir süper blokta saklanır.

Listenin elemanları 50 elemanlı dizilerdir (blok = 512 bayt ise, eleman = 16 bit):

· 1'den 48'e kadar olan dizinin elemanlarında, 2'den 49'a kadar dosya blokları uzayının serbest bloklarının sayıları yazılır.

Öğe # 0, listenin devamı için bir işaretçi içerir ve

· Son eleman (no. 49) dizideki boş bir eleman için bir işaretçi içerir.

Bazı işlemlerin dosyayı genişletmek için boş bir bloğa ihtiyacı varsa, sistem bir dizi öğesini işaretçi (boş bir öğeye) seçer ve bu öğede saklanan numaraya sahip blok dosyaya verilir. Dosya kısaltılırsa, serbest bırakılan sayılar serbest blok dizisine eklenir ve boş bir öğenin işaretçisi ayarlanır.

Dizinin boyutu 50 eleman olduğundan, iki kritik durum mümkündür:

1. Dosya bloklarını serbest bıraktığımızda ve bu diziye sığamazlar. Bu durumda, dosya sisteminden bir boş blok seçilir ve tamamen doldurulmuş serbest blok dizisi bu bloğa kopyalanır, ardından serbest elemana işaretçinin değeri sıfırlanır ve süper blokta bulunan dizinin sıfır elemanında, sistemin dizinin içeriğini kopyalamak için seçtiği bloğun numarası yazılır.... Bu noktada, ücretsiz listenin yeni bir öğesi oluşturulur (her biri 50 öğe).

2. Serbest blok dizisinin öğelerinin içeriği tükendiğinde (bu durumda, dizinin sıfır öğesi sıfıra eşittir) Bu öğe sıfıra eşit değilse, bu, bir uzantısı olduğu anlamına gelir. dizi. Bu devam, RAM'deki süper bloğun bir kopyasına okunur.

ücretsiz listesiben - düğümler... Bu, 100 elementten oluşan bir tampondur. Şu anda ücretsiz olan 100 i-düğüm numarası hakkında bilgi içerir.

Süper blok her zaman RAM'dedir

Þ tüm işlemler (blokların ve i-düğümlerin serbest bırakılması ve ele geçirilmesi RAM'de gerçekleşir) Þ disk ile değiş tokuşların en aza indirilmesi.

Fakat! Süper bloğun içeriği diske yazılmazsa ve güç kapatılırsa, sorunlar ortaya çıkacaktır (dosya sisteminin gerçek durumu ile süper bloğun içeriği arasında bir tutarsızlık). Ancak bu, sistem donanımının güvenilirliği için zaten bir gerekliliktir.

Yorum Yap... Esnekliği artırmak için süper bloğun birden çok kopyası UFS dosya sistemlerinde desteklenir (silindir grubu başına bir kopya)

düğüm alanı

Bu, adı verilen bir dosya açıklamaları dizisidir. ben -düğümler (i -düğüm)(64 bayt?)

Dosyanın her düğüm tanımlayıcısı (i -düğüm) şunları içerir:

Dosya türü (dosya/dizin/özel dosya/fifo/soket)

Nitelikler (erişim hakları) - 10

Dosya sahibi kimliği

Dosyanın sahibinin grup kimliği

Dosya oluşturma zamanı

Dosya değiştirme zamanı

Dosyaya son erişim zamanı

dosya uzunluğu

Çeşitli dizinlerden belirli bir i düğümüne bağlantı sayısı

Dosya blok adresleri

!Not... Burada dosya adı yok

Nasıl organize edildiğine daha yakından bakalım blok adresleme dosyanın bulunduğu yer. Bu nedenle, adresli alanda dosyanın ilk 10 bloğunun numaraları bulunur.

Dosya on bloğu aşarsa, aşağıdaki mekanizma çalışmaya başlar: alanın 11. öğesi, bu dosyanın bloklarına 128 (256) bağlantı içeren blok numarasını içerir. Dosyanın daha da büyük olması durumunda, alanın 12. öğesi kullanılır - 128 (256) blok numarasını içeren blok numarasını içerir, burada her blok dosya sisteminin 128 (256) blok numarasını içerir. Ve dosya daha da büyükse, o zaman eleman 13 kullanılır - burada listenin yuvalama derinliği bir kat daha artar.

Böylece (10 + 128 + 128 2 + 128 3) * 512 boyutunda bir dosya elde edebiliriz.

Bu, aşağıdaki gibi temsil edilebilir:

Dosyanın 1. bloğunun adresi

Dosyanın 2. bloğunun adresi

Dosyanın 10. bloğunun adresi

Dolaylı blok adresi (256 blok adresli blok)

2. dolaylı adreslemenin blok adresi (256 adresli blok adresli blok)

3. dolaylı adreslemenin blok adresi (blok adresli blok, adresli blok adresli blok)

Dosya koruması

Şimdi sahip ve grup kimliklerine ve güvenlik bitlerine dikkat edelim.

Unix işletim sistemi kullanır üç seviyeli kullanıcı hiyerarşisi:

İlk seviye tüm kullanıcılardır.

İkinci seviye kullanıcı gruplarıdır. (Tüm kullanıcılar gruplara ayrılmıştır.

Üçüncü seviye belirli bir kullanıcıdır (Gruplar gerçek kullanıcılardan oluşur). Bu üç katmanlı kullanıcı organizasyonu nedeniyle, her dosyanın üç özelliği vardır:

1) Dosyanın sahibi. Bu öznitelik, sistem tarafından otomatik olarak dosyanın sahibi olarak atanan belirli bir kullanıcıyla ilişkilendirilir. Bir dosya oluşturarak varsayılan olarak sahip olabilirsiniz ve ayrıca bir dosyanın sahibini değiştirmenize izin veren bir komut da vardır.

2) Dosyaya erişimin korunması. Her dosyaya erişim üç kategoriyle sınırlıdır:

· Sahibin hakları (genel olarak sahibin bu dosyayla yapabilecekleri - herhangi bir şey olması gerekmez);

· Dosya sahibinin ait olduğu grubun hakları. Sahip burada yer almaz (örneğin, dosya sahibi için okuma için kapatılabilir ve grubun diğer tüm üyeleri bu dosyadan özgürce okuyabilir;

· Sistemin diğer tüm kullanıcıları;

Üç eylem bu üç kategori tarafından düzenlenir: bir dosyadan okuma, bir dosyaya yazma ve bir dosya yürütme (sırasıyla sistem anımsatıcılarında R, W, X). Her dosyada, bu üç kategori tanımlanır - hangi kullanıcı okuyabilir, hangi yazabilir ve bir süreç olarak kim çalıştırabilir.

dizinleri düzenleme

İşletim sistemi açısından bir dizin, dizine ait tüm dosyalar hakkında bilgi içeren normal bir dosyadır.

Katalog öğesi iki alandan oluşur:

1) i -düğüm sayısı (i -düğümler dizisindeki sıra sayısı) ve

2) dosya adı:

Her dizin iki özel ad içerir: '.' Dizinin kendisidir; '..' üst dizindir.

(Kök dizin için ebeveyn kendisine başvurur.)

Genel olarak, dizin aynı i-node'a atıfta bulunan birden fazla girdi içerebilir, ancak dizin aynı ada sahip girdiler içermeyebilir. Yani, dosyanın içeriğiyle isteğe bağlı sayıda ad ilişkilendirilebilir. denir bağlayıcı... Bir dosyaya atıfta bulunan bir dizin öğesi çağrılır iletişim.

Dosyalar, dizin girişlerinden bağımsız olarak bulunur ve dizin bağlantıları aslında fiziksel dosyalara işaret eder. Dosya, kendisine işaret eden son bağlantı kaldırıldığında "kaybolur".

Yani, bir dosyaya adıyla erişmek için, işletim sistemi

1.Dosyanın bulunduğu dizinde bu ismi bulur,

2. dosyanın i-node numarasını alır,

3. sayıdan i-düğüm bölgesindeki i-düğümü bulur,

4. i-node'dan dosya verilerinin bulunduğu blokların adreslerini alır,

5. blok adresleri ile veri alanından blokları okur.

Disk bölüm yapısı HARİCİ2 FS

Tüm bölüm alanı bloklara ayrılmıştır. Bir bloğun boyutu 1, 2 veya 4 kilobayt olabilir. Blok, adreslenebilir bir disk alanı birimidir.

Alanlarındaki bloklar, blok grupları halinde birleştirilir. Dosya sistemindeki blok grupları ve bir grup içindeki bloklar, 1'den başlayarak sırayla numaralandırılır. Diskteki ilk blok 1 olarak numaralandırılır ve 1 numaralı gruba aittir. Diskteki toplam blok sayısı (bir disk bölümünde) sektörler olarak ifade edilen disk boyutunun bir bölenidir. Ve blok sayısını bölmek için blok gruplarının sayısı gerekli değildir, çünkü son blok grubu tamamlanmayabilir. Her blok grubunun başlangıcı, ((grup numarası - 1) * (gruptaki blok sayısı) olarak elde edilebilecek bir adrese sahiptir.

Her blok grubu aynı yapıya sahiptir. Yapısı tabloda gösterilmiştir.

Bu yapının ilk öğesi (süper blok) tüm gruplar için aynıdır ve geri kalan her şey her grup için bireyseldir. Süper blok, her blok grubunun ilk bloğunda saklanır (ilk blokta önyükleme kaydını içeren grup 1 hariç). süper blok dosya sisteminin başlangıç ​​noktasıdır. 1024 bayt boyutundadır ve her zaman dosya sisteminin başlangıcından itibaren 1024 baytta bulunur. Süper bloğun birden fazla kopyasının bulunması, dosya sisteminin bu öğesinin aşırı öneminden kaynaklanmaktadır. Dosya sistemi çökmesini kurtarmak için yinelenen süper bloklar kullanılır.

Süper blokta depolanan bilgiler, diskteki geri kalan verilere erişimi düzenlemek için kullanılır. Süper blok, dosya sisteminin boyutunu, bölümdeki maksimum dosya sayısını, boş alan miktarını belirler ve ayrılmamış alanların nerede aranacağı hakkında bilgi içerir. İşletim sistemi başlatıldığında, süper blok belleğe okunur ve dosya sistemindeki tüm değişiklikler önce süper bloğun işletim sistemindeki kopyasına yansıtılır ve diske yalnızca periyodik olarak yazılır. Bu, birçok kullanıcı ve işlem dosyaları sürekli olarak güncellediğinden sistem performansını artırır. Öte yandan, sistem kapatılırken, süper blok diske yazılmalıdır, bu da bilgisayarın sadece gücü kapatarak kapatılmasına izin vermez. Aksi takdirde, bir sonraki açılışta, süper blokta yazılan bilgiler dosya sisteminin gerçek durumuna karşılık gelmeyecektir.

Süper bloğun ardından Grup Tanımlayıcıları gelir. Bu açıklama şunları içerir:

Verilen grubun blok bit eşlemini içeren bloğun adresi;

Grup için düğüm bit eşlemini içeren bloğun adresi;

Grubun inode tablosunu içeren bloğun adresi;

Bu gruptaki serbest blok sayısının sayacı;

Bu gruptaki serbest düğüm sayısı;

Bu gruptaki dizin olan düğüm sayısı

ve diğer veriler.

Grup açıklamasında saklanan bilgiler, blok ve düğüm bit eşlemlerini ve düğüm tablosunu bulmak için kullanılır.

Dosya sistemi Dahili 2 ile karakterize edilir:

  • hiyerarşik yapı,
  • veri dizilerinin tutarlı işlenmesi,
  • dinamik dosya uzantısı,
  • Dosyalardaki bilgilerin korunması,
  • çevresel aygıtları (terminaller ve teyp aygıtları gibi) dosyalar olarak ele almak.

Dosyaların dahili temsili

Ext 2'deki her dosyanın benzersiz bir indeksi vardır. Dizin, herhangi bir işlemin dosyaya erişmek için ihtiyaç duyduğu bilgileri içerir. İyi tanımlanmış bir dizi sistem çağrısı kullanarak ve ayırt edici dosya adı olarak işlev gören bir dizi karakterle dosyayı tanımlayan erişim dosyalarını işler. Her ayırt edici ad bir dosyayı benzersiz olarak tanımlar, böylece çekirdek bu adı dosya için bir dizine çevirir.Dizin, dosyanın diskteki bilgilerinin konumu için bir adres tablosu içerir. Diskteki her blok kendi numarasıyla adreslendiğinden, bu tablo disk blok numaralarının bir koleksiyonunu saklar. Esneklik için, çekirdek bir seferde bir dosyaya parçalar ekleyerek dosyanın bilgilerinin dosya sistemi boyunca dağılmasına izin verir. Ancak bu düzen, veri bulma görevini karmaşıklaştırır. Adres tablosu, dosyaya ait bilgileri içeren blok numaralarının bir listesini içerir.

Dosya düğümleri

Diskteki her dosyanın, sıra numarası olan dosya dizini ile tanımlanan karşılık gelen bir dosya düğümü vardır. Bu, bir dosya sisteminde oluşturulabilecek dosya sayısının, dosya sistemi oluşturulduğunda açıkça belirtilen veya disk bölümünün fiziksel boyutuna göre hesaplanan düğüm sayısı ile sınırlı olduğu anlamına gelir. Düğümler diskte statik biçimde bulunur ve çekirdek onlarla çalışmaya başlamadan önce bunları belleğe okur.

Dosyanın düğümü aşağıdaki bilgileri içerir:

- Bu dosyanın türü ve erişim hakları.

Sahibi Uid.

Bayt cinsinden dosya boyutu.

Dosyaya son erişim zamanı (Erişim zamanı).

Dosyanın oluşturulduğu saat.

Dosyanın en son değiştirildiği zaman.

Dosya silme zamanı.

Grup tanımlayıcısı (GID).

Bağlantılar sayılır.

Dosya tarafından işgal edilen blok sayısı.

Dosya bayrakları

OS için ayrılmıştır

Dosya verilerinin yazıldığı bloklara işaretçiler (Şekil 1'de doğrudan ve dolaylı adresleme örneği)

Dosya sürümü (NFS için)

ACL dosyası

Dizin EKL

parça adresi

parça numarası

Parça boyutu

Kataloglar

Dizinler dosyalardır.

Çekirdek, bir dizin yapısı ve ileri ve dolaylı adresleme seviyelerine sahip bloklar kullanarak, normal bir dosyada olduğu gibi verileri bir dizinde depolar. İşlemler dizinlerdeki verileri normal dosyaları okudukları gibi okuyabilir, ancak dizine özel yazma erişimi, dizin yapısının doğru olduğundan emin olmak için çekirdek tarafından ayrılmıştır.).

Bir işlem bir dosya yolu kullandığında, çekirdek dizinlerde uygun inode numarasını arar. Bir dosya adı bir düğüm numarasına dönüştürüldükten sonra, bu tanımlayıcı belleğe yerleştirilir ve ardından sonraki isteklerde kullanılır.

EXT2'nin ek özellikleri FS

Standart Unix özelliklerine ek olarak, EXT2fs, genellikle Unix dosya sistemleri tarafından desteklenmeyen bazı ek özellikler sağlar.

Dosya öznitelikleri, dosya kümeleriyle çalışırken çekirdeğin yanıtını değiştirmenize olanak tanır. Öznitelikleri bir dosyaya veya dizine ayarlayabilirsiniz. İkinci durumda, bu dizinde oluşturulan dosyalar bu öznitelikleri devralır.

Sistem montajı sırasında, dosya öznitelikleriyle ilgili bazı özellikler yüklenebilir. Bağlama seçeneği, yöneticinin dosyaların nasıl oluşturulacağını seçmesine izin verir. BSD'ye özgü bir dosya sisteminde dosyalar, ana dizinle aynı grup kimliğiyle oluşturulur. System V'in özellikleri biraz daha karmaşıktır. Bir dizinde setgid bit seti varsa, oluşturulan dosyalar o dizinin grup kimliğini etkiler ve alt dizinler grup kimliğini ve setgid bitini devralır. Aksi takdirde, çağrı sürecinin birincil grup kimliğiyle dosyalar ve dizinler oluşturulur.

EXT2fs sistemi, BSD sistemine benzer senkron veri modifikasyonunu kullanabilir. Bağlama seçeneği, yöneticinin tüm verilerin (inode'lar, bit blokları, dolaylı bloklar ve dizin blokları) değiştirildiğinde diske senkronize olarak yazılacağını belirtmesine izin verir. Bu, yüksek veri yazma verimi elde etmek için kullanılabilir, ancak performansı da düşürür. Aslında, bu işlev genellikle kullanılmaz, çünkü performansı düşürmenin yanı sıra dosya sistemi kontrol edilirken işaretlenmemiş kullanıcı verilerinin kaybolmasına neden olabilir.

EXT2fs, bir dosya sistemi oluştururken mantıksal bloğun boyutunu seçmenize olanak tanır. 1024, 2048 veya 4096 bayt boyutunda olabilir. Büyük blokların kullanılması daha hızlı G/Ç işlemlerine (diske gelen istek sayısı azaldığından) ve sonuç olarak daha az kafa hareketine yol açar. Öte yandan, büyük blokların kullanılması disk alanı kaybına neden olur. Genellikle, bir dosyanın son bloğu bilgi depolamak için tam olarak kullanılmaz, bu nedenle, bir bloğun boyutundaki artışla, boşa harcanan disk alanı miktarı artar.

EXT2fs, hızlandırılmış sembolik bağlantıları kullanmanıza izin verir. Bu tür bağlantıları kullanırken, dosya sistemi veri blokları kullanılmaz. Hedef dosya adı veri bloğunda değil, düğümün kendisinde saklanır. Bu yapı, disk alanından tasarruf etmenize ve sembolik bağlantıların işlenmesini hızlandırmanıza olanak tanır. Elbette tanımlayıcı için ayrılan alan sınırlıdır, bu nedenle her bağlantı hızlandırılmış olarak sunulamaz. Hızlandırılmış bir bağlantıdaki bir dosya adının maksimum uzunluğu 60 karakterdir. Yakın gelecekte, bu şemanın küçük dosyalar için genişletilmesi planlanmaktadır.

EXT2fs, dosya sisteminin durumunu izler. Çekirdek, dosya sisteminin durumunu belirtmek için süper blokta ayrı bir alan kullanır. Dosya sistemi okuma / yazma modunda takılıysa durumu "Temiz Değil" olarak ayarlanır. Salt okunur modda sökülür veya yeniden kurulursa durumu "Temiz" olarak ayarlanır. Sistem önyüklemesi ve dosya sisteminin durumu kontrol edilirken, bu bilgi dosya sisteminin kontrol edilmesi gerekip gerekmediğini belirlemek için kullanılır. Çekirdek de bu alana bazı hatalar koyar. Çekirdek bir uyumsuzluk tespit ettiğinde, dosya sistemi "Hatalı" olarak işaretlenir. Dosya sistemi denetleyicisi, durumu gerçekten "Temiz" olsa bile sistemi kontrol etmek için bu bilgileri test eder.

Dosya sistemi testinin uzun süreli göz ardı edilmesi bazen bazı zorluklara yol açabilir, bu nedenle EXT2fs, sistemi düzenli olarak kontrol etmek için iki yöntem içerir. Süper blok, sistem bağlama sayacını içerir. Bu sayaç, sistem okuma/yazma modunda her kurulduğunda bir artırılır. Değeri maksimum değerine ulaşırsa (aynı zamanda süper blokta saklanır), durumu "Temiz" olsa bile dosya sistemi test programı onu kontrol etmeye başlar. Son kontrol zamanı ve kontroller arasındaki maksimum aralık da süper blokta saklanır. Kontroller arasındaki maksimum aralığa ulaşıldığında, dosya sisteminin durumu yok sayılır ve kontrolü başlatılır.

Performansı optimize etme

EXT2fs sistemi, performansını optimize eden ve dosyaları okurken ve yazarken bilgi alışverişi hızında bir artışa yol açan birçok işlev içerir.

EXT2fs, disk arabelleğini aktif olarak kullanıyor. Bir blok okunacağı zaman, çekirdek, yakındaki birkaç blok için bir G/Ç isteği gönderir. Böylece çekirdek, okunacak bir sonraki bloğun zaten disk arabelleğine yüklendiğinden emin olmaya çalışır. Bu tür işlemler genellikle dosyaların sıralı olarak okunmasıyla gerçekleştirilir.

EXT2fs sistemi ayrıca çok sayıda bilgi yerleştirme optimizasyonu içerir. Blok grupları, karşılık gelen düğümleri ve veri bloklarını birleştirmek için kullanılır. Çekirdek her zaman bir dosyanın veri bloklarını ve tanımlayıcısını aynı gruba yerleştirmeye çalışır. Bunun amacı, tanımlayıcıyı ve ilgili veri bloklarını okurken sürücü kafalarının hareketini azaltmaktır.

Bir dosyaya veri yazarken, EXT2fs yeni bir blok tahsis ederken 8 adede kadar bitişik bloğu önceden tahsis eder. Bu yöntem, sistem ağır yüklendiğinde yüksek performans elde etmenizi sağlar. Ayrıca, sonraki okumaları daha hızlı hale getiren bitişik dosya bloklarının ayrılmasına izin verir.