Przejdź do głównej zawartości
Ta strona jest nieaktualna. Proszę zapoznać się z najnowszą dokumentacją dostępną pod adresem /features/kernel/

Jądro CachyOS

Jądro CachyOS to spersonalizowane jądro, które wykorzystuje ulepszenia, konfiguracje i łatki z projektów nadrzędnych.

  • 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 -fivopts i -fmodulo-sched
  • 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_CACHY z poprawkami harmonogramu i systemu
  • Optymalizacje niskiego opóźnienia: łatki poprawiające responsywność i redukujące jitter
  • 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)
  • 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)
  • 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.

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
    • Domyślne jądro. Jest to zalecane jądro, jeśli nie masz pewności, które wybrać.
    • Częstotliwość 1000 Hz dla poprawy responsywności.
    • Zbudowane przy użyciu Clang i ThinLTO.
    • Profilowane za pomocą naszego własnego profilu AutoFDO dla poprawy wydajności. Skrypt używany do profilowania jądra.
  • 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.
  • 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.
  • 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.

Terminal window
linux-cachyos # Podstawowy pakiet jądra domyślnego. Skompilowany z Clang i ThinLTO
linux-cachyos-hardened # Podstawowy pakiet jądra hardened. Skompilowany z GCC
linux-cachyos-hardened-lto # Odpowiednik linux-cachyos-hardened skompilowany z clang
linux-cachyos-hardened-{,lto-}headers
linux-cachyos-hardened-{,lto-}nvidia
linux-cachyos-hardened-{,lto-}nvidia-open
linux-cachyos-hardened-{,lto-}zfs
linux-cachyos-hardened-{,lto-}dbg

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:

  1. Zbudowanie jądra z włączonym AutoFDO i możliwościami debugowania.
  2. Stworzenie profilu, co oznacza wykonanie obciążeń w celu zebrania danych profilowania dla możliwych optymalizacji.
  3. 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.