Kernel (Bosanski)

From ArchWiki

Prema Wikipedia-i:

Linux kernel je open source monilitski kernel operativnog sistema nalik na UNIX.

Arch Linux je baziran na Linux kernelu. Postoje razni alternativni Linux kerneli za Arch Linux pored zadnjeg stabilnog kernela. Ovaj članak opisuje opcije dostupne u repository-ima. Također, tu je i opis patcheva koji se mogu primijeniti na kernel. Članak se završava se pregledom kompilacije custom kernela sa linkovima za razne metode.

Kernel paketi se instaliraju na filesystem pod /boot/. Da se kernel može bootati, boot loader (Bosanski) mora biti ispravno konfigurisan.

Oficijalno podržani kerneli

  • Stable — Vanilla Linux kernel i moduli sa nekoliko patcheva primjenjenih.
https://www.kernel.org/ || linux
  • Hardened — Linux kernel sa fokusom na sigurnost sa setom patcheva da se mitigiraju kernel i userspace exploiti. Također, omogućava više upstream kernel hardening feature-a nego linux.
https://github.com/anthraxx/linux-hardened || linux-hardened
  • Longterm — Long-term support (LTS) (Podrška na dugo vrijeme) Linux kernel i moduli.
https://www.kernel.org/ || linux-lts
  • Zen Kernel — Rezultat kolaboracije kernel hakera da se pruži najbolji mogući Linux kernel za svakodnevnu upotrebu. Vidi više detalja na https://liquorix.net (koji ima kernel binary-e bazirane na Zen-u za Debianw).
https://github.com/zen-kernel/zen-kernel || linux-zen

Kompajliranje

Arch Linux pruža dvije metode kompajliranja kernela.

/Arch Build System
Iskorištava prednosti visoko kvalitetnog linux PKGBUILD-a i prednosti paket menadžmenta.
/Traditional compilation
Uključuje manuelno download-ovanje source tarball-a, kompajliranje u home folderu kao običan korisnik.

kernel.org kerneli

  • Git — Linux kernel i moduli buildani koristeći source iz Git repository-a Linus Torvaldsa
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git || linux-gitAUR
  • Mainline — Kernel gdje su svi novi feature-i uvedeni, release-an svako 2-3 mjeseca.
https://www.kernel.org/ || linux-mainlineAUR
  • Next — Bleeding edge kerneli sa feature-ima koji čekaju da se merge-aju u sljedeći mainline kernel.
https://www.kernel.org/doc/man-pages/linux-next.html || linux-next-gitAUR
  • Longterm 4.4 — Long-term support (LTS) Linux 4.4 kernel i moduli.
https://www.kernel.org/ || linux-lts44AUR
  • Longterm 4.9 — Long-term support (LTS) Linux 4.9 kernel i moduli.
https://www.kernel.org/ || linux-lts49AUR
  • Longterm 4.14 — Long-term support (LTS) Linux 4.14 kernel i moduli.
https://www.kernel.org/ || linux-lts414AUR

Patchevi i patchset-ovi

Postoji mnogo razloga za patchovanje kernela, glavni su performanse ili podrška za feature koji nisu u mainline, poput reiser4 file system podrške. Drugi razlozi mogu biti čisto radi zabave i da se vidi kako se to radi i šta su prednosti toga.

Važno je napomenuti da je najbolji način da se ubrza sistem jeste da se prvo kernel prilagodi sistemu, posebno arhitekturi i tipu procesora. Iz ovog razloga, korištenje pre-packaged verzija custom kernela sa generičkom arhitekturom nije preporučeno ili vrijedno toga. Drugi benefit jeste taj što se može smanjiti veličina kernela (ujedno i build time) isključivanjem podrške za stvari koje nemate ili ih ne koristite. Npr, možete početi sa stock kernel config-om kada je nova verzija release-ana i ukloniti podršku za stvari poput bluetooth, video4linux, 1000Mbit ethernet, itd; funkcionalnosti za koje znate da nisu potrebne za vašu mašinu. Iako ova stranica nije za customiziranje kernel configa, preporučena je kao prvi korak prije korištenja patchsetova kada su savladane osnove.

Config fajlovi za Arch Linux mogu biti korišteni kao početna tačka. Oni su Arch paket source fajlovima, npr. [1] linkovani iz linux. Config fajl vašeg trenutnog kernela može biti dostupan u file systemu na /proc/config.gz ako je CONFIG_IKCONFIG_PROC kernel opcija uključena.

Ukoliko niste prije patchovali ili customizirali kernel ranije, nije teško i postoje razni PKGBUILD-ovi na forumu za individualne patchsetova. Preporučeno je da se počne ispočetka sa malo istraživanja o prednostima svakog patchseta umjesto da se samo naslijepo odabere patchset. Na ovaj način, naučit ćete više o tome šta radite umjesto da samo odaberete kernel na startup-u i onda se pitate šta u stvari radi.

Warning: Patchsetovi su razvijani od raznih vrsta ljudi. Neki od tih ljudih su uključeni u produkciju linux kernel i drugi iz hobija, koje može da se odrazi na nivo pouzdanosti i stabilnosti samog patchseta.

Major patchsetovi

  • Linux-ck — Sadrži patchove od strane Con Kolivasa dezijnirane da se poboljšava responsiveness sa naglaskom na desktop, ali odgovarajući za bilo koji workload.
http://ck.kolivas.org/ || linux-ckAUR
  • pf-kernel — Pruža razne super feature koji nisu merge-ani u mainline. Baziran nije na vec postojećem Linux forku niti patchset, iako neko neoficijalni portovi mogu biti korišteni ukoliko potrebni patchsetovi nisu release-ani oficijalno. Najistaknutiji patchovi iz linux-pf su PDS CPU scheduler i UKSM.
https://gitlab.com/post-factum/pf-kernel/wikis/README || Paketi:
  • Realtime kernel — Održavano od male grupe core developera, koje vodi Ingo Molnar. Ovaj patch omogućava skoro svakom kernelu da bude preempted(naći odgovarajući prevod), sa izuzetkom malih regiona koda ("raw_spinlock critical regions"). Ovo je urađeno sa zamjenjivanjem većine kernel spinlocka sa mutex-ima koji podržavaju nasljeđivanje prioriteta, kao i prebacivanje svih interrupt-a i software interrupt-a u kernel thread.
https://wiki.linuxfoundation.org/realtime/start || linux-rtAUR, linux-rt-ltsAUR

Drugi patchsets

Neki od izlistanih paketa mogu biti dostupni kao binary paketi preko Neoficijalnih korisničkih repository-a.

  • Aufs — aufs kompatibilni linux kernel i moduli, korisno kada se koristi docker.
http://aufs.sourceforge.net/ || linux-aufsAUR
  • Clear — Patchevi iz Intelovog Clear Linux projekta. Pruža optimizacije za performanse i sigurnost. WireGuard modul.
https://github.com/clearlinux-pkgs/linux || linux-clearAUR
  • Libre — Linux kernel bez "binary blobova".
https://www.fsfla.org/ikiwiki/selibre/linux-libre/ || linux-libreAUR
  • Liquorix — Kernel zamjena napravljena koristeći konfiguraciju ciljanu za Debian i Zen kernel source-ove. Dezijaniran za desktop, multimediju i gaming workloade, često je korišten kao Debian Linux zamjena za performanse. Danebtz, maintainer Liquorix patchseta je ujedno i developer za Zen patchset.
https://liquorix.net || linux-lqxAUR
  • MultiPath TCP — Linux Kernel i moduli sa Multipath TCP podrškom.
https://multipath-tcp.org/ || linux-mptcpAUR
  • Reiser4 — Nasljednik file systema za ReiserFS, razvijen od početka od strane Namesysa i Hans Reisera.
https://sourceforge.net/projects/reiser4/files/ ||
  • VFIO — Linux kernel i nekoliko patchec pisani od strane Alex Williamsona (acs override i i915) da se enable mogućnost za rad PCI Passthrough as KVM-om na nekim mašinama.
https://lwn.net/Articles/499240/ || linux-vfioAUR, linux-vfio-ltsAUR
  • XanMod — Ciljano da se u potpunosti iskoristi prednost workstationa sa viskom performansama, gaming desktopima, media centrima i drugima je napravljena da pruži više čvrsto, responsive i smooth desktop iskustvo. Ovaj kernel koristi scheduler, BFQ I/O scheduler, UKSM realtime memory data deduplication, YeAH TCP kontrola zagušenja, x86_64 podršku za napredni set instrukcija i druge defaultne promjene.
https://xanmod.org/ || linux-xanmodAUR

Vidi i