Jądro CachyOS
Jądro CachyOS to spersonalizowane jądro, które wykorzystuje ulepszenia, konfiguracje i łatki z projektów nadrzędnych.
Funkcje
Dział zatytułowany „Funkcje”Optymalizacje wydajności
Dział zatytułowany „Optymalizacje wydajności”- Zaawansowana kompilacja: wysoce konfigurowalny plik PKGBUILD z obsługą kompilatorów GCC i Clang
- Optymalizacja w czasie konsolidacji (LTO): domyślnie włączone Thin LTO dla lepszej wydajności
- Optymalizacja sterowana profilem (PGO): profilowanie AutoFDO + Propeller dla optymalnego generowania kodu (Dowiedz się więcej)
- Integralność przepływu sterowania jądra (kCFI): dostępna przy użyciu LLVM dla zwiększonego bezpieczeństwa
- Opcje częstotliwości zegara: konfigurowalne między 300Hz, 500Hz, 600Hz, 750Hz i 1000Hz (domyślnie: 1000Hz)
- Optymalizacje architektury: wsparcie dla specyficznych kompilacji x86-64-v3, x86-64-v4 i AMD Zen4
- Optymalizacje kompilatora: zaawansowane flagi GCC, w tym
-fivoptsi-fmodulo-sched
Ulepszenia procesora
Dział zatytułowany „Ulepszenia procesora”- Wiele harmonogramów: harmonogramy BORE, EEVDF i BMQ do optymalizacji różnych obciążeń
- Ulepszenia AMD P-State: wsparcie dla Preferred Core i najnowsze ulepszenia amd-pstate z linux-next
- Wsparcie dla czasu rzeczywistego: dostępne kompilacje jądra RT z integracją harmonogramu BORE
- CachyOS Sauce: niestandardowa konfiguracja
CONFIG_CACHYz poprawkami harmonogramu i systemu - Optymalizacje niskiego opóźnienia: łatki poprawiające responsywność i redukujące jitter
System plików i pamięć
Dział zatytułowany „System plików i pamięć”- Wsparcie dla ZFS: wbudowane wsparcie dla systemu plików ZFS z prekompilowanymi modułami
- Integracja z NVIDIA:
- Moduły własnościowego sterownika NVIDIA z łatkami
- Wsparcie dla otwartego sterownika NVIDIA
- Gotowe do użycia moduły w repozytorium
- Ulepszenia harmonogramu I/O:
- Ulepszona wydajność BFQ i mq-deadline
- Wsparcie dla alternatywnego harmonogramu I/O ADIOS
- Zarządzanie pamięcią:
- Łatka le9uo zapobiegająca gwałtownemu stronicowaniu pamięci pod dużym obciążeniem
- Poprawki zarządzania pamięcią z Zen-kernel (kompaktowanie, optymalizacja watermark)
Dodatkowe funkcje
Dział zatytułowany „Dodatkowe funkcje”Wsparcie sprzętowe
Dział zatytułowany „Wsparcie sprzętowe”- Sprzęt do gier: łatki dla Steam Deck (dźwięk, dziwactwa sprzętowe, HID) i wsparcie dla ROG Ally
- Sprzęt Apple: wsparcie dla MacBooka T2 domyślnie zawarte
- Sprzęt ASUS: rozszerzone łatki kompatybilności dla sprzętu ASUS
- Grafika: włączone wsparcie dla HDR, nadpisanie min_powercap dla AMDGPU (
amdgpu_ignore_min_pcap)
Ulepszenia systemowe
Dział zatytułowany „Ulepszenia systemowe”- Multimedia: moduły v4l2loopback domyślnie zawarte
- Wirtualizacja: wsparcie dla ACS Override dla VFIO/przekazywania GPU
- Integracja z projektami nadrzędnymi: wybrane łatki z Clear Linux i linux-next
Jądro CachyOS ma również kilka innych godnych uwagi funkcji, które są subtelne, ale poprawiają wrażenia użytkownika:
- Zawiera wariant jądra do debugowania, który dostarcza nieskompresowany plik binarny jądra do celów debugowania. Ten pakiet jest potrzebny do profilowania jądra za pomocą AutoFDO.
- Binder, moduł potrzebny do działania Waydroid, jest domyślnie włączony w konfiguracji jądra i już skonfigurowany.
Warianty
Dział zatytułowany „Warianty”CachyOS oferuje zróżnicowany zakres opcji jądra. Wszystkie dostarczane przez nas jądra są dostarczane z podstawowym zestawem łatek CachyOS. Dla każdego jądra istnieje odpowiadający mu wariant -lto, który jest zbudowany przy użyciu clang zamiast GCC.
- linux-cachyos
- linux-cachyos-bore
- Używa harmonogramu BORE.
- linux-cachyos-bmq
- Używa harmonogramu BMQ z Project C autorstwa Alfreda Chen.
Nie obsługuje sched-ext.
- Używa harmonogramu BMQ z Project C autorstwa Alfreda Chen.
- linux-cachyos-deckify
- Domyślne jądro dla urządzeń przenośnych. Używanie jakiegokolwiek innego jądra na urządzeniach przenośnych jest niezalecane i niewspierane.
- Używa harmonogramu BORE.
- Dodatkowe łatki specyficzne dla urządzeń przenośnych, oprócz podstawowego zestawu łatek, w celu poprawy kompatybilności i ogólnych wrażeń z użytkowania na tych urządzeniach.
- linux-cachyos-eevdf
- Modyfikuje domyślny harmonogram jądra w celu poprawy responsywności.
- linux-cachyos-lts
- Oparte na najnowszym jądrze z długoterminowym wsparciem (LTS).
- Używa harmonogramu BORE.
- Minimalnie łatane w porównaniu do innych jąder, aby zapewnić maksymalną stabilność.
- linux-cachyos-hardened
- Używa harmonogramu BORE.
- Zawiera zestaw łatek linux-hardened.
- Konfiguracja jądra oparta na konfiguracji linux-hardened.
- Zawiera bardzo agresywne zabezpieczenia, które znacznie ograniczają wydajność i komfort użytkowania.
Nie obsługuje sched-ext.
- linux-cachyos-rc
- Oparte na najnowszym jądrze mainline z drzewa Linusa.
- Używa harmonogramu BORE.
- Główne jądro do wprowadzania nowych funkcji w naszym zestawie łatek.
- linux-cachyos-server
- Dostosowane do obciążeń serwerowych w porównaniu do użytku na komputerach stacjonarnych.
- Częstotliwość 300 Hz.
- Brak wywłaszczania.
- Standardowy EEVDF.
- Dostosowane do obciążeń serwerowych w porównaniu do użytku na komputerach stacjonarnych.
- linux-cachyos-rt-bore
- Wywłaszczanie w czasie rzeczywistym.
- Używa harmonogramu BORE.
Prosimy o zgłaszanie sugestii i ulepszeń, które można dodać do domyślnego jądra, otwierając zgłoszenie w GitHubie linux-cachyos.
Konwencja nazewnictwa pakietów
Dział zatytułowany „Konwencja nazewnictwa pakietów”linux-cachyos # Podstawowy pakiet jądra domyślnego. Skompilowany z Clang i ThinLTOlinux-cachyos-hardened # Podstawowy pakiet jądra hardened. Skompilowany z GCClinux-cachyos-hardened-lto # Odpowiednik linux-cachyos-hardened skompilowany z clanglinux-cachyos-hardened-{,lto-}headerslinux-cachyos-hardened-{,lto-}nvidialinux-cachyos-hardened-{,lto-}nvidia-openlinux-cachyos-hardened-{,lto-}zfslinux-cachyos-hardened-{,lto-}dbgPrekompilowane moduły jądra
Dział zatytułowany „Prekompilowane moduły jądra”Aby zaspokoić potrzeby szerszej bazy użytkowników, CachyOS dostarcza wraz z jądrem niektóre dobrze znane i często używane moduły jądra. Oznacza to, że użytkownicy nie będą już musieli
rekompilować tych modułów po każdej aktualizacji jądra lub przy każdej nowej instalacji jądra, a jedynie zainstalować je z repozytorium, ponieważ
są już prekompilowane. Skutecznie eliminuje to potrzebę posiadania jakichkolwiek pakietów -dkms, które dostarczają ten sam moduł co wersja prekompilowana.
ZFS to jeden z wielu systemów plików obsługiwanych w CachyOS. Ponieważ jest on licencjonowany na mocy CDDL, jest niekompatybilny z licencją jądra Linux i dlatego nie może zostać włączony do głównego drzewa kodu. Dostarczany moduł zawiera najnowsze funkcje i poprawki z nadrzędnego projektu, aby zapewnić kompatybilność z najnowszym jądrem.
CachyOS dostarcza prekompilowane wersje zarówno zamkniętych, jak i otwartoźródłowych modułów jądra. Ze względu na to, że rozwój modułu jądra NVIDIA odbywa się poza głównym drzewem kodu i tym samym nie podąża za cyklem wydawniczym jądra, standardowa konfiguracja może czasami być niekompatybilna z najnowszym jądrem. Jako obejście, CachyOS łata moduły za pomocą łat stworzonych przez społeczność lub udostępnionych bezpośrednio przez NVIDIA.
Dlaczego AutoFDO nie jest używane dla wszystkich innych wariantów jądra?
Dział zatytułowany „Dlaczego AutoFDO nie jest używane dla wszystkich innych wariantów jądra?”Ponieważ jest to kosztowne w budowie, gdyż w zasadzie wymaga dwukrotnego zbudowania jądra, co skutkuje większą ilością czasu i zasobów poświęconych na kompilację. Proces budowania jądra z AutoFDO obejmuje następujące kroki:
- Zbudowanie jądra z włączonym AutoFDO i możliwościami debugowania.
- Stworzenie profilu, co oznacza wykonanie obciążeń w celu zebrania danych profilowania dla możliwych optymalizacji.
- Ponowne zbudowanie jądra z profilem AutoFDO.
Dlatego na razie jest on obecny tylko w wariancie linux-cachyos.
Aby uzyskać więcej informacji na temat AutoFDO, kliknij tutaj.
Czy jądro czasu rzeczywistego poprawia wydajność w grach?
Dział zatytułowany „Czy jądro czasu rzeczywistego poprawia wydajność w grach?”Nie, nie poprawia. Jądro czasu rzeczywistego sprawia, że znacznie więcej kodu można wywłaszczać w porównaniu do normalnego jądra w pełni wywłaszczalnego. Oznacza to, że znacznie więcej zadań (w tym procesy gier) jest często wywłaszczanych i będzie zmuszonych do oddawania zasobów systemowych, co prowadzi do gorszej wydajności.