Bir takas dosyası çekirdek ile özel bir bağı olmayan sıradan bir
dosyadır. Çekirdeği ilgilendiren tek şey, o dosya içinde oyukların
(hole) olmadığı ve mkswap'ın kullanımı için
hazırlanmış olduğudur. Ayrıca yerel bir disk üzerinde bulunması
zorunludur. Bir NFS sistemi üzerinde bulunması uygulama
şartlarından dolayı mümkün değildir.
Oyuklar hakkındaki ayrıntı
önemlidir. Bir takas dosyası belli bir disk yüzeyini ayırır ve böylece
çekirdek hızlı bir şekilde sayfa değiş tokuşunu sağlar. Bunu yaparken
normal zamanlarda, bir disk yüzeyinin bir dosya için ayrılması işlemi
için gerekli olan bütün işlemleri yerine getirmek zorunda kalmaz.
Çekirdek sadece dosyaya ayrılmış sektörleri kullanır. Çünkü bir dosya
içindeki oyuklar, ayrılmış bir sektör olmadığı anlamına gelir ve
bunları kullanmaya çalışmak çekirdek için hiç de iyi bir fikir değildir.
Aşağıdaki komutla içinde oyuklar olmayan bir takas dosyası
oluşturabilirsiniz:
# dd if=/dev/zero of=/ek-takas bs=1024 count=1024
1024+0 records in
1024+0 records out
#
/ek-takas takas dosyasının adıdır ve boyutu
count='dan sonra belirtilmektedir. 4kB'ın
katlarından oluşan bir alan ayırmak daha uygundur çünkü çekirdek
bu alana 4 Kb lık boyutlar ile yazma yapar. Şayet 4kB'ın katları
şeklinde bir alan ayırmazsanız, son bölüm kullanılamayan bir alan
haline gelebilir.
Aslında bir takas bölümü özel bir bölüm değildir. Onu da diğer
bölümleri yaratır gibi yaratırız, tek fark onun içinde işlenememiş
bir alan bulunması ve bir dosya sistemi ihtiva etmemesidir. Aslında
çekirdek için gerekli olmasa da takas alanını tür 82 (linux takas)
olarak işaretlemek iyi olur. Bu, bölüm listesinin daha temiz ve kolay
anlaşılır olmasını sağlayacaktır.
Bir swap dosyası veya bölümü oluşturulduktan sonra onun başlangıç
bölümüne, çekirdek tarafından kullanılan ve bazı yönetim bilgilerini
içeren, bir imza/iz koymalısınız. Bunun için mkswap
komutu kullanılır:
# mkswap /ek-takas 1024
Takas alanı sürüm 1, uzunluk = 1044480 bayt olarak ayarlanıyor
#
Takas dosyası var olmasına rağmen henüz kullanımda değildir.
Çekirdek bu bölümü sanal bellek sağlaması için kullanmamaktadır.
| Uyarı |
---|
mkswap komutunu kullanırken çok dikkatli olun,
çünkü bu komut işlem yapacağı bölüm veya dosyanın herhangi bir
şey içermesine önem vermez. Kolaylıkla son derece önemli bilgiler
bulunan bir dosya veya bölüm üzerine yazabilirsiniz. Şans eseri,
mkswap komutuna sadece işletim sistemini
kurarken ihtiyaç duyabilirsiniz.
|
Linux bellek yönetimi çeşitli teknik sebeplerden dolayı takas
alanı boyutunu 127 MB [( 4096-10) * 8*4096= 139890048 byte] ile
sınırlar. Bununla beraber toplam 8 adet takas alanı kullanabilirsiniz.
Aslında bu, şu an için doğru değildir. Yeni çıkan çekirdeklerin ve
mkswap komutunun yeni sürümlerinin mimarilerine
göre değişiklik göstermektedir. i386 ve üzeri için bu sınır 2GB dır.
Takas alanları ile ilgili ayrıntılı bilgi
mkswap(8) kılavuz sayfasında bulunabilir.