Ana içeriğe geç
Kültür & Tarih

Unix'in ilk sürümleri bellek yönetiminin evrimini ortaya koydu

Öne çıkanlar

  • Unix V4 sürümündeki ilk malloc ve mfree, açık bölge haritalarını ve nesne boyutunu parametre olarak kullandı.
  • Unix V6'daki derleyici araçları, belleği serbest bırakmayan doğrusal bellek ayırıcılarıyla çalıştı.
  • Unix V7 sürümü galloc fonksiyonu ile C dili içinde otomatik çöp toplama denemelerine yer verdi.

İlk dönem Unix kaynak kodları üzerinde yapılan inceleme, C dilindeki bellek yönetiminin modern standart kütüphane arayüzlerine ulaşmadan önce farklı tasarım yollarından geçtiğini gösterdi. Kasım 1973'te yayımlanan Unix V4 ve sonraki sürümlerin kaynakları, günümüzün tekil malloc ve free ikilisinden önce açık bellek bölgelerini temel alan mimarilerin kullanıldığını belgeledi. Dennis Ritchie dizininde yer alan ilk malloc sürümünün, bellek havuzunu temsil eden özel bir harita yapısını doğrudan parametre olarak aldığı kaydedildi.

Unix V4 ve V6 sürümlerinde çekirdek, sistem kaynaklarını ana bellek ve takas alanı olarak iki ayrı bölge haritasında yönetti. İlk malloc ve mfree fonksiyonları, geliştiricilerin hangi bölge üzerinde çalıştığını açıkça bildirmesini zorunlu kılarak nesne boyutunu da parametre olarak istedi. C derleyicisinin erken sürümlerinde ise program ömrü boyunca serbest bırakma gerektirmeyen doğrusal bellek ayırıcılarının kullanıldığı, sbrk çağrısıyla büyütülen alanların çökme anında doğrudan süreci sonlandırdığı görüldü.

Unix V7 ve V8 sürümlerinde ise boyut hesaplamalarını soyutlayan makroların ve çöp toplayıcı denemelerinin sisteme girdiği belgelendi. V7 sürümünde yer alan galloc ve gfree rutinleri, geliştiricilerin C üzerine çöp toplama mekanizması eklemeyi denediğini doğruladı. C++ içindeki new işlecinin Simula dilinden uyarlandığı bilinmekle birlikte, Unix kaynaklarında bu işlece benzer makro yapılarının o dönemde geliştiriciler tarafından fiilen yazıldığı tespit edildi.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.