Blog (21)
Komentarze (359)
Recenzje (0)
@mati75Kernel eXt73 w testach developera Debiana

Kernel eXt73 w testach developera Debiana

29.12.2014 19:20

Zapowiadałem odpowiedź na artykuł Cała prawda o kernelach eXt73: sprawdzamy, co może dać płatna optymali.... O to i ona. Przy czym nie zajmuje się w żaden sposób jądrem Linux w systemie Debian. To nie moja działka ;)

539986

Na wstępnie chciałbym pogratulować autorom pomysłu na stworzenie modyfikacji.

W testach wykorzystuję darmową wersję dostępną dla wszystkich.

Używam źródeł jądra eXt73 w wersji k8 w oznaczeniu wersji v31.4_3.16.4:

Linux xubuntu 3.16.4-ext73-31.4-k8 #5 SMP PREEMPT Mon Oct 13 19:55:53 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux

z jądrem dostępnym w Debianie 8 Jessie w wersji 3.16.7-ckt2-1:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08) x86_64 GNU/Linux

Wersja Debiana usuwa niewolne według swojej konstytucji elementy jądra oraz dodatkowo nakłada patche do jądra pochodzące z Canonical Kernel Team.

Spójrzmy na konfigurację jądra

Konfiguracja jądra jest związana, z tym jakie elementy mają zostać skompilowane oraz tym co ma być zainstalowane. Dodatkowo można wprowadzić swoje zmienne jak nazwa wersji. Po więcej informacji o poszczególnych opcjach odsyłam do dokumentacji, bo tutaj można się naprawdę dużo rozpisać.

Pliki konfiguracji są dostępne w katalogu /boot, jeśli posiadasz oddzielną partycję o takiej samej nazwie to również je tam znajdziesz.

Porównuje za pomocą narzędzia diff konfigurację /boot/config-3.16.4-ext73-31.4-k8 i /boot/config-3.16.0-4-amd64:

http://wklej.org/id/1579114/

Pewnie znacznej części z was to nic nie mówi. Racja, tu nic ciekawego nie ma. Powinien zakończyć porównanie na pierwszych 60 liniach. Bo reszta to są włączenia sterowników do kompilacji, do tego w sposób stały, czyli przy każdym starcie systemu się ładuje mimo tego, że nasz komputer tego nie potrzebuje. A propos sterowników zastanawiam się po co przeciętnemu użytkownikowi np. "Marvell 88E6171 ethernet switch chip support" skoro urządzenia z tym układem były sprzedawane tylko z procesorami arm. Podobnie inne rzeczy, które były tylko z procesorami mips i arm produkowane. Najlepsze jest w tym to, że Ubuntu nawet nie wspiera tej pierwszej architektury. Chyba kogoś poniosła fantazja nie uważacie?

Ciąg dalszy analizy:

  • Do kompresji jądra używany jest algorytm LZ4, szybki, ale słaba kompresja. Jak dla mnie minus,
  • Jądro dostarcza własną nazwę. Duży plus,
  • Elementy Realtime Preemption zostały włączone i jądro zostało w taki sposób dostarczone. Przeciętny użytkownik tego nie jest w stanie wykorzystać, ale obsługa jest plusem,
  • BFQ I/O Scheduler został dodany, jest to jedyna modyfikacja przyspieszająca w jakikolwiek sposób jądro, które znalazłem w tym wydaniu. Za to zależy się wielki plus.
  • NETFILTER został włączony na stałę, tutaj zacząłem się zastanawiać czy ktoś konfiguracji z routera nie skopiował,
  • Usunięta została obsługa wimax, racja, kto tego używa?
  • Wyłączony został protokół ipv6. Osobiście używam i nie widzę sensu używania wyłączania, gdzie coraz więcej operatorów dostarczy np. Orange.

To by było na tyle.

Konfiguracja kompilatora

Autor chwali się:

Jednakże w związku ze stosowaniem przeze mnie bardzo głębokich optymalizacji na poziomie kompilatora, zbudowane na ich podstawie kernele będą w 100 % odpowiadały udostępnianym przeze mnie pakietom kerneli pod względem funkcjonalności, jednakże nie będą odpowiadały im, pod względem wydajności i responsywności na architekturze dla jakiej zostały przeznaczone. Tu przede wszystkim tyczy się to kerneli z linii i7 oraz Brazos, które podlegają najgłębszym optymalizacjom w procesie ich budowania na poziomie kompilacji.

U doświadczonych użytkowników wywołuje to uśmiech na twarzy, a przeciętny użytkownik Gentoo musi nastawić wodę na kolejną kawę. Pozdrawiam Cię Łukasz ;)

Sprawdźmy co to za optymalizacja kompilatora. Czyżby -03?

Linux version 3.16.4-ext73-31.4-k8 (root@ext73-kernel) (gcc version 4.9.2 20141001 (prerelease) (GCC) ) #5 SMP PREEMPT Mon Oct 13 19:55:53 CEST 2014

Jak widzimy jądro zostało skompilowane za pomocą gcc version 4.9.2 20141001 (prerelease). Sprawdźmy więc co nam powiedzą pakiety dostarczające jądro:

This was produced by kernel-package version 13.013.

oh, spodziewałem się czegoś więcej. Szukajmy jednak dalej.

binutils-2.24-5ubuntu3
dpkg-1.17.5ubuntu5.3
dpkg-dev-1.17.5ubuntu5.3
gcc-4:4.8.2-1ubuntu6
gcc-4.8-4.8.2-19ubuntu1
gcc-4.8-base:amd64-4.8.2-19ubuntu1
gcc-4.8-base:i386-4.8.2-19ubuntu1
gcc-4.9-base:amd64-4.9.1-0ubuntu1
gcc-4.9-base:i386-4.9.1-0ubuntu1
gccgo-4:4.9-1ubuntu6
gccgo-4.9-4.9.1-0ubuntu1
libc6:amd64-2.19-0ubuntu6.3
libc6:i386-2.19-0ubuntu6.3
libc6-dbg:amd64-2.19-0ubuntu6.3
libc6-dev:amd64-2.19-0ubuntu6.3
make-3.81-8.2ubuntu3
perl-5.18.2-2ubuntu1
this was built on a machine with the kernel:
Linux ext73-kernel 3.17.0-ext73-32.1-brazos #2 SMP PREEMPT Sun Oct 12 23:25:33 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux
using the compiler:
gcc version 4.9.2 20141001 (prerelease) (GCC)

Wygląda mi to na elementy systemu Ubuntu 14.04. Nie poddając się szukam dalej.

Sprawdźmy co mówi nowsza wersja jądra:

this was built on a machine with the kernel:
Linux ext73-kernel 3.17.7-ext73-32.7-brazos #6 SMP PREEMPT Fri Dec 19 21:28:30 CET 2014 x86_64 x86_64 x86_64 GNU/Linux
using the compiler:
gcc version 4.9.3 20141210 (prerelease) (GCC)

Gdzieś już to widziałem...

O tak: https://launchpad.net/ubuntu/+source/gcc-snapshot/20141211-0ubuntu1

Czyżbym coś odkrył?

Czy zmiana jądra dla przeciętnego użytkownika Ubuntu przynosi jakieś korzyści?

Z doświadczenia mogę powiedzieć, że zmiana dystrybucyjnego jądra w większości przypadku, gdy użytkownik jest niedoświadczony przynosi więcej szkód niż pożytku.

Gdy mamy jakieś problem np. obecne jądro nie działa prawidłowo. Kernel eXt73 idealnie nadaje się na sprawdzenie czy zostało coś zmienione.

Osobiście nie używałbym go na co dzień.

Wybrane dla Ciebie
Komentarze (32)