Biliyordum, haddim değildi!
Kernel.org'dan güncel sürüm numaralarına bakayım dedim. Sonra kendimi 3.4'ü ve 1994'deki ilk sürümü indirirken buldum. Son kararlı sürüm geliyorken bellek ile ilgili mm dizini ilgimi çekti. Sanırım açılımı "memory management" olmalı. Ancak yetmezdi içeriğine ve kodlarına bakmalıydım...:)
Alıntı (linux/kernel/3.4/mm/page_alloc.c):
>> static int page_outside_zone_boundaries(struct zone *zone, struct page *page)
> {
> int ret = 0;
> unsigned seq;
> unsigned long pfn = page_to_pfn(page);
>
> do {
> seq = zone_span_seqbegin(zone);
> if (pfn >= zone->zone_start_pfn + zone->spanned_pages)
> ret = 1;
> else if (pfn < zone->zone_start_pfn)
> ret = 1;
> } while (zone_span_seqretry(zone, seq));
>
> return ret;
> }
> ```
>
Şu kodun güzelliğine bakar mısınız! Öncelikle her yerde yapı (struct) dolu ve bir sürü işlev (function). Bunu yukarıda ilk dikkatimi çeken işlevden de anlayabilirsiniz. Tabi ilk sürümden bu yana assembly kodları da eksik değil hani.
Peki ya işlev isimlerinin uzunluğu dikkatinizi çekti mi? Belki de bu yüz binlerce işlevi açıklıyor olmalı! Peki son sürümdeki dosya sayını biliyor musunuz? Tam olarak **38 bin 568 **dosya ve yukarıda alıntıladığım **160 KB.** Ayrıca tüm kodun açılımı teorik olarak bir CD'ye sığsa da (450 MB.) dosya sayısının fazlalığından dolayı açık bir şekilde CD'ye kayıt etmek pratikte sıkıntı yapsa gerek...:)
Sevgiler, saygılar...
--
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]