Takas alanının dosya sistemi var mı?


26

Depolama aygıtlarıyla çalışmak için bir dosya sistemine ihtiyacımız var, takas alanı ne olacak?

Eğer bir dosya sistemine sahip değilse, işletim sistemi onunla nasıl çalışır? Veriler (RAM'den) diske nasıl yazılır ve tekrar erişilir mi?


6
Swap dosya sistemine ihtiyaç duymaz. Dosyaları saklamaz.
Pilot6

3
RAM sayfalarını saklar.
Pilot6

2
Lütfen ne yapmaya çalıştığınızı tam olarak açıklayabilir misiniz? İhtiyacınız olan tek şey geçici olarak veri depolayabileceğiniz bir yer mi diyorsunuz?
Jake

6
"Dosya sistemi olmayan bir depolama alanına nasıl yazılabileceğini bilmek istiyorum?" - Sadece depolama alanına yazarsın. Bunu düşünün: bir dosya sisteminin bir depolama alanına yazması gerekiyorsa, o zaman dosya sistemleri mevcut değildi, çünkü dosya sistemlerinin bir dosya sistemi olmadan bir depolama birimine yazabilmesi gerekiyordu. "Cevabınıza göre RAM'in küçük bir dosya sistemine sahip olduğunu ve takas dosyasının bu dosya sistemini sayfalarla çalışmak için kullandığını söyleyebilir miyim?" - Hayır. Bir dosya sistemi dosyaları depolamak içindir. Yer değişimi, dosya saklamaz.
Jörg W Mittag,

4
Biçimlendirilmemiş depolamaya tek bir dosya (ala tar ve dd) yazmak oldukça yaygındır ve yuvalanmış dosya sistemlerine (sanal diskler, .iso, squashfs) sahip olmak daha yaygındır. Disketteki oyunlar bazen mutlak (sabit) bir yere yüksek puanlar yazardı ve bazı uygulamalar Silindir, Baş, Sektör bazlı. Takas bölümleri hala bölümlerdir, ancak hayır, ofset ve run dışında başka bir dosya sistemi veya "haritalama" yoktur.
mckenzm

Yanıtlar:


28

Teknik olarak değiştirmek belirli bir dosya sistemine sahip değildir. Dosya sisteminin tüm amacı, verileri belirli bir şekilde yapılandırmaktır. Özellikle takas bölümünün yapısı yoktur, ancak mkswapprogram tarafından oluşturulan belirli bir başlığa sahiptir . Özellikle, bu ( kernel.org sitesinden alınmıştır. ):

 25 union swap_header {
 26     struct 
 27     {
 28         char reserved[PAGE_SIZE - 10];
 29         char magic[10];
 30     } magic;
 31     struct 
 32     {
 33         char     bootbits[1024];
 34         unsigned int version;
 35         unsigned int last_page;
 36         unsigned int nr_badpages;
 37         unsigned int padding[125];
 38         unsigned int badpages[1];
 39     } info;
 40 };

Her bölüm, kendisiyle ilişkilendirilmiş ve TLDP'ye :

ext2 kodu 0x83 ve linux takas değeri 0x82

Ne zaman takas dosyası katılır, yani biraz farklı bir hikaye. Çekirdek, dosya sisteminin kendi yapılandırma yöntemine sahip olabileceği gerçeğine saygı göstermelidir. Aynı kernel.org linkinden:

Dosya sistemlerinin kendi dosyalarını ve disklerini saklama yöntemleri olabileceğini ve bilgilerin doğrudan diske yazılabileceği takas bölümleri kadar basit olmadığını unutmayın. Yedek depolama bir bölümse, yalnızca bir sayfa boyutlu blok GÇ gerektirir ve dahil olan bir dosya sistemi olmadığından, bmap () gerekli değildir.

Sonuç olarak, teknik olarak takas alanını kendi türünde bir dosya sistemi olarak adlandırabilirsiniz, ancak NTFS veya ext4 gibi dosya sistemleriyle tam olarak karşılaştırılamaz.

Ayrıca sordun

Dosya sistemi olmadan bir depolama alanına nasıl yazılabileceğini bilmek istiyorum

Açıkçası, RAM'in yapılandırılmasına gerek yok. Ancak, RAM bölümleri Unix benzeri işletim sistemleri altında tmpfs olarak yapılandırılabilir . Ayrıca önyükleme işlemi sırasında yüklenen ramfs ve initramfs var. Ancak, RAM verilerinin teknik olarak sadece ham 1s ve 0s olması gerekiyordu, bu yüzden onları zaten yapılandırmaya gerek yok.


1
İyi bir işaret, bir dosya sistemine sahip olmamasına rağmen, onun ne olduğunu tanımayı sağlayan temel bir yapıya sahip olduğunu belirtmek. Yanlışlıkla başka bir bölümün üzerine yazılmasını önler.
spektrumlar

Sanırım burada RAM yerine "dosya sistemi olmayan bir depoda yazmanın nasıl mümkün olduğunu bilmek istiyorum" anlamına geliyor.
Anwar

@Anwar, Evet ama anladım
Sinoosh

tar, flash sürücü gibi biçimlendirilmemiş bir aygıta RAW akışı olarak birden fazla dosya yazmak için kullanılabilir. Aksi takdirde, tek bir dosya yazılabilir (ancak adlandırılmamıştır) ve geri yazmak için işlemi tersine çevirmeniz gerekir. Bu, ISO’lar için optik medyaya yaygın olarak yapılır, ancak sonuç yerinde bir dosya sistemidir.
mckenzm

1
Kabul. Temelde o zaman haritalanmış bir alan olarak tanımlanabilir. Gerçek hafızanın bir uzantısı değildir, ancak talep üzerine geri yüklenebilecek parçaları depolamak için bir çalışma alanıdır.
mckenzm

14

Yer değiştirme alanı çekirdek tarafından, sistem belleği sayfalarını (RAM) doldukça geçici olarak depolamak için kullanılır. Çekirdek, takas diskinin tam olarak sayfayı koyduğu yeri "hatırlamak" için kendi iç tablolarını kullanır. Sonuç olarak, takas diskleri uygun bir dosya sistemi içermez ve genellikle diskteki boş bölümlerdir.

İlginizi çekebilecek şey, sistemin belleğinde depolanan küçük bir dosya sistemi olan bir RAM disktir. Daha fazla belleğe ihtiyaç duyulursa, çekirdek onu (ve diğer içerikleri) takas alanına doğru iter. Birini ayarlamak için talimatlar için buraya bakınız .


13

Yer değiştirme alanı, bellek sayfalarıyla aynı boyutta bloklara (genellikle 4kB) bölünür ve bu sayfaların uygulama belleğine eşleştirilmesi kaydı, CPU ve İşletim Sistemindeki sanal bellek alt sisteminin bir uzantısını oluşturur.

Yani, uygulama belleği alanları ile gerçek fiziksel bellek adresi arasında zaten bir eşleme sistemi var. Bir uygulamaya, kullanabildikleri kadar veya az kullanabilecekleri geniş bir bellek adres alanı verilir. Bu hafıza adres alanının daha fazlası gerçekte kullanıldığından, fiziksel bellek, bu uygulama ile depolama ortamı olarak kullanılmak üzere eşlenir.

Bellek diske değiştirildiğinde, ilgili bir sistem bir uygulamanın bellek alanının diskteki bloğa eşlenmesini sağlar.

Eşleştirme tablosunun kendisi diskte depolanmaz ve diskte kalan veriler yeniden başlatmanın ardından yararsızdır.

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