Założenia
W pierwszej kolejności pragnę wyjaśnić, co przyświecało mi w procesie budowy zoptymalizowanych kerneli. Otóż, użytkując kernele generic, a zatem standardowo dostępne w każdej dystrybucji i budowane przez jej Developerów stwierdziłem, że nie satysfakcjonują mnie przyjęte rozwiązania. Były on bowiem wynikiem – moim zdaniem, zbyt daleko idących kompromisów, a w pewnych aspektach nawet bym to określił „błędnych” założeń. Zatem przyjąłem, że przyświecają mi 4 cele, w procesie budowy kerneli - w wyniku czego mają one zapewniać:
Podkreślenia wymaga fakt, iż w przypadku korzystania z zamkniętych sterowników graficznych, konieczne będą ich najnowsze udostępniane w ramach NeteXt'73 wersje dla układów Nvidii, bądź AMD/ATi.
Przyjęte rozwiązania
Kernele zostały zbudowane w oparciu o źródła Vanilla ("czyste" źródła) kernela. Odnosząc się do ich konfiguracji, zastosowałem auto-grupowanie (Automatic process group scheduling). Jako defaultowego schedulera procesów/obciążenia CPU używam CFS, natomiast w odniesieniu procesów wyjścia/wejścia [dyski] schedulera I/O CFQ. Jednakże od APM w wersji 2.2 aktywowane są jednocześnie 2 schedulery I/O - w zależności od rodzaju dysku działają, dla:
Licencja
Powszechna Licencja Publiczna GNU w wersji trzeciej [GPL 2.0] - wersja oryginalna - obowiązująca
Powszechna Licencja Publiczna GNU w wersji trzeciej [GPL 2.0] - wersja polskojęzyczna (nieoficjalne tłumaczenie)
Przygotowane przeze mnie kernele udostępniane są zgodnie z postanowieniami powołanej powyżej Powszechnej Licencji Publicznej GNU w wersji drugiej [GPL 2.0]. Zgodnie z jej postanawianiami udostępniam źródła na podstawie których budowane są poszczególne pakiety deb.
Zgodnie z postanowieniami licencji GPL na udostępniane źródła (kod źródłowy) oraz pakiety (kod wynikowy) nie udziela się gwarancji. Jedynie w przypadku pakietów (kod wynikowy) oznaczonych jako i7, i7-pro oraz Brazos i Brazos-pro gwarantuje, iż pakiety te są zbudowane prawidłowo i są zgodne z GNU/Linux Ubuntu oraz Kubuntu [i pochodnych]. W związku z powyższym oraz postanowieniami powołanej licencji nie ponoszę odpowiedzialności za skutki ewentualnych błędów wynikających z funkcjonowania udostępnionych pakietów.
Wskazane źródła zostają przeze mnie poddane modyfikacji (o czym mowa powyżej) i prawo do korzystania z nich udostępniam na zasadach opisanych w powołanym akcie normatywnym. Kod źródłowy jest odpowiedni dla wszystkich wydań (K8, atom, i7, i7-pro, Brazos, Brazos-pro) z danej serii (np. v28.x) i dystrybuowany jest zgodnie z wszelkimi postanowieniami Licencji GPL w wersji 2.
Pakiety binarne (kod wynikowy) zawierające kernele oznaczone, jako K8 oraz atom udostępniam w pełni nieodpłatnie, bez ograniczenia ilości stanowisk na których użytkownik je instaluje oraz bez ograniczenia swobody ich rozpowszechniania.
Odpłatna subskrypcja
W przypadku pakietów binarnych (kod wynikowy) oznaczonych, jako i7, i7-pro oraz Brazos, Brazos-pro, ich dystrybucja ma charakter odpłatny i realizowana jest na podstawie indywidualnej umowy wykonania dzieła - budowy kodu wynikowego zoptymalizowanego dla architektury 64 bitowych, w tym architektury Intel Sandy Bridge i Ivy Bridge – i3, i5 oraz i7 (pakiety oznaczone, jako i7), dla architektury Haswell – i3, i5 oraz i7 (pakiety oznaczone, jako i7-pro) oraz dla architektury procesorów Firmy AMD od wersji K10.5 – w tym Athlon II, Phenom II, Brazos, Fusion (Llano, Trinity) oraz FX (Zambezi, Bulldozer) – pakiety oznaczone, jako Brazos, a także dla najnowszych procesorów AMD opartych o architekturę Piledriver i Steamroller, np. procesory z rodziny Vishera, czy Kaveri – pakiety oznaczone, jako Brazos-pro.
Umowa zawierana jest pomiędzy moją osobą, jako przyjmującym zamówienie, a ich użytkownikiem (zamawiającym) otrzymującym prawo do korzystania z tego dzieła (danej kompilacji, np. wersja v28.3), który w ramach jednorazowej zapłaty opiewającej na kwotę 50 zł, uzyskuje prawo do otrzymania najnowszej - na danych dzień - wersji dzieła oraz jej kolejnych ulepszonych wersji (następne kompilacje, np. v28.5, etc.) w okresie roku od dnia zawarcia umowy (dnia zapłaty).
Użytkownik w ramach wskazanej jednorazowej opłaty uzyskuje prawo do korzystania w powołanym okresie z dzieła oznaczonego jako pakiety i7, i7-pro bądź też Brazos, Brazos-pro.
Źródła
Zgodnie z powołaną powyżej licencją pod wsianym poniżej linkiem udostępniał będę źródła kerneli wraz z konfiguracją dla poszczególnych architektur. pragnę jednak poinformować, że kernele zbudowane w oparciu o udostępnione źródła nie będą odpowiadały kernelom budowanym przeze mnie [responsywność, wydajność i energooszczędność], co wynika z przyjętych założeń kompilacji na poziomie kompilatora, o czym szerzej w poniższym linku:
źródła kerneli oraz pliki konfiguracyjne
W pierwszej kolejności pragnę wyjaśnić, co przyświecało mi w procesie budowy zoptymalizowanych kerneli. Otóż, użytkując kernele generic, a zatem standardowo dostępne w każdej dystrybucji i budowane przez jej Developerów stwierdziłem, że nie satysfakcjonują mnie przyjęte rozwiązania. Były on bowiem wynikiem – moim zdaniem, zbyt daleko idących kompromisów, a w pewnych aspektach nawet bym to określił „błędnych” założeń. Zatem przyjąłem, że przyświecają mi 4 cele, w procesie budowy kerneli - w wyniku czego mają one zapewniać:
- Maksymalną responsywność,
- Maksymalną wydajność,
- Najniższe możliwe zużycie energii i najniższą możliwą do osiągnięcia temperaturę pracy – w każdym trybie,
- Zapewnienie maksymalnego poziomu bezpieczeństwa.
Podkreślenia wymaga fakt, iż w przypadku korzystania z zamkniętych sterowników graficznych, konieczne będą ich najnowsze udostępniane w ramach NeteXt'73 wersje dla układów Nvidii, bądź AMD/ATi.
Przyjęte rozwiązania
Kernele zostały zbudowane w oparciu o źródła Vanilla ("czyste" źródła) kernela. Odnosząc się do ich konfiguracji, zastosowałem auto-grupowanie (Automatic process group scheduling). Jako defaultowego schedulera procesów/obciążenia CPU używam CFS, natomiast w odniesieniu procesów wyjścia/wejścia [dyski] schedulera I/O CFQ. Jednakże od APM w wersji 2.2 aktywowane są jednocześnie 2 schedulery I/O - w zależności od rodzaju dysku działają, dla:
- Dysków SSD [Solid State Drive - dyski pamięci "nieulotnych"] - Noop, a dla
- Dysków HDD [dyski mechaniczne] - CFQ.
Licencja
Powszechna Licencja Publiczna GNU w wersji trzeciej [GPL 2.0] - wersja oryginalna - obowiązująca
Powszechna Licencja Publiczna GNU w wersji trzeciej [GPL 2.0] - wersja polskojęzyczna (nieoficjalne tłumaczenie)
Przygotowane przeze mnie kernele udostępniane są zgodnie z postanowieniami powołanej powyżej Powszechnej Licencji Publicznej GNU w wersji drugiej [GPL 2.0]. Zgodnie z jej postanawianiami udostępniam źródła na podstawie których budowane są poszczególne pakiety deb.
Zgodnie z postanowieniami licencji GPL na udostępniane źródła (kod źródłowy) oraz pakiety (kod wynikowy) nie udziela się gwarancji. Jedynie w przypadku pakietów (kod wynikowy) oznaczonych jako i7, i7-pro oraz Brazos i Brazos-pro gwarantuje, iż pakiety te są zbudowane prawidłowo i są zgodne z GNU/Linux Ubuntu oraz Kubuntu [i pochodnych]. W związku z powyższym oraz postanowieniami powołanej licencji nie ponoszę odpowiedzialności za skutki ewentualnych błędów wynikających z funkcjonowania udostępnionych pakietów.
Wskazane źródła zostają przeze mnie poddane modyfikacji (o czym mowa powyżej) i prawo do korzystania z nich udostępniam na zasadach opisanych w powołanym akcie normatywnym. Kod źródłowy jest odpowiedni dla wszystkich wydań (K8, atom, i7, i7-pro, Brazos, Brazos-pro) z danej serii (np. v28.x) i dystrybuowany jest zgodnie z wszelkimi postanowieniami Licencji GPL w wersji 2.
Pakiety binarne (kod wynikowy) zawierające kernele oznaczone, jako K8 oraz atom udostępniam w pełni nieodpłatnie, bez ograniczenia ilości stanowisk na których użytkownik je instaluje oraz bez ograniczenia swobody ich rozpowszechniania.
Odpłatna subskrypcja
W przypadku pakietów binarnych (kod wynikowy) oznaczonych, jako i7, i7-pro oraz Brazos, Brazos-pro, ich dystrybucja ma charakter odpłatny i realizowana jest na podstawie indywidualnej umowy wykonania dzieła - budowy kodu wynikowego zoptymalizowanego dla architektury 64 bitowych, w tym architektury Intel Sandy Bridge i Ivy Bridge – i3, i5 oraz i7 (pakiety oznaczone, jako i7), dla architektury Haswell – i3, i5 oraz i7 (pakiety oznaczone, jako i7-pro) oraz dla architektury procesorów Firmy AMD od wersji K10.5 – w tym Athlon II, Phenom II, Brazos, Fusion (Llano, Trinity) oraz FX (Zambezi, Bulldozer) – pakiety oznaczone, jako Brazos, a także dla najnowszych procesorów AMD opartych o architekturę Piledriver i Steamroller, np. procesory z rodziny Vishera, czy Kaveri – pakiety oznaczone, jako Brazos-pro.
Umowa zawierana jest pomiędzy moją osobą, jako przyjmującym zamówienie, a ich użytkownikiem (zamawiającym) otrzymującym prawo do korzystania z tego dzieła (danej kompilacji, np. wersja v28.3), który w ramach jednorazowej zapłaty opiewającej na kwotę 50 zł, uzyskuje prawo do otrzymania najnowszej - na danych dzień - wersji dzieła oraz jej kolejnych ulepszonych wersji (następne kompilacje, np. v28.5, etc.) w okresie roku od dnia zawarcia umowy (dnia zapłaty).
Użytkownik w ramach wskazanej jednorazowej opłaty uzyskuje prawo do korzystania w powołanym okresie z dzieła oznaczonego jako pakiety i7, i7-pro bądź też Brazos, Brazos-pro.
Źródła
Zgodnie z powołaną powyżej licencją pod wsianym poniżej linkiem udostępniał będę źródła kerneli wraz z konfiguracją dla poszczególnych architektur. pragnę jednak poinformować, że kernele zbudowane w oparciu o udostępnione źródła nie będą odpowiadały kernelom budowanym przeze mnie [responsywność, wydajność i energooszczędność], co wynika z przyjętych założeń kompilacji na poziomie kompilatora, o czym szerzej w poniższym linku:
źródła kerneli oraz pliki konfiguracyjne