Windows, Linux, FreeBSD, Solaris - niezwykłe porównanie jąder

W trakcie 30. Międzynarodowej Konferencji dotyczącej Inżynierii Oprogramowania grecki badacz Diomidis Spinellis zaprezentował fascynujące wyniki powstałe podczas badania jąder Linuksa, FreeBSD, (Open)Solarisa i Windows. Okazało się, że nie istnieje obecnie kernel idealny, a każdy system ma swoje wady i zalety.

Spinellis porównywał głównie jądra przeznaczone dla procesorów 64-bitowych. Choć Microsoft nie udostępnia systemu Windows na licencji open source, z większością kodu wykorzystywanego do zbudowania jego kernela można zapoznać się w celach badawczych (Windows Research Kernel 1.2).

Opisywane w raporcie jądro Windows było najmniejsze, nie znalazły się w nim bowiem sterowniki do urządzeń, fragmenty odpowiedzialne za obsługę PnP czy zarządzanie energią. I tak:

-- jądro FreeBSD miało 2 599 000 linii i składało się z 4 479 plików

-- jądro Linuksa miało 4 150 000 linii i składało się z 8 372 plików

-- jądro Solarisa miało 3 000 000 linii i składało się z 3 851 plików

-- jądro WRK 1.2 miało 829 000 linii i składało się z 653 plików.

Jednocześnie Windows (WRK 1.2) miał najdłuższe pliki nagłówkowe, co utrudnia zarządzanie kodem. Podano nawet przykład pliku winerror.h zawierającego 27 tysięcy (!) linii, w którym umieszczono komunikaty o błędach - większość z nich w ogóle nie dotyczyła jądra Windows.

Kod Microsoftu ma również najwyższy poziom złożoności (badany za pomocą metod Halsteada), ale jego dużą zaletą jest niewielki rozrzut wśród styli kodowania (wcięcia, nazewnictwo itp.)

Warto zajrzeć: "A Tale of Four Kernels" (w języku angielskim)


Zobacz również