Hvordan se og bla gjennom Linux -kjernekilden?

Hvordan se og bla gjennom Linux -kjernekilden?

Denne artikkelen forklarer kort Linux -kjernen er og hvordan du blar gjennom kildekoden.

Denne opplæringen er optimalisert for uerfarne Linux -brukere og programmerere som vil lese Kernel -kildekoden eller bli Linux -kjerneutviklere. Linux -kjernen er universell; Derfor er det nåværende dokumentet nyttig for alle Linux -distribusjoner.

Ved å lese denne artikkelen, vil du forstå hva kjernen er, hvordan den er strukturert og hvordan du blar gjennom komponentene. Denne artikkelen ble opprinnelig skrevet i 2019 og oppdatert i 2022.

Hva er Linux -kjernen og hvordan du blar over den

Linux -kjernen er hovedkomponenten som tillater interaksjon mellom programvaren og maskinvaren ved hjelp av enhetsdrivere. Du kan tenke på Linux -kjernen som en oversetter som tillater kommunikasjon mellom programmer, maskinvaren og brukergrensesnittet.

Å lære å bla gjennom Linux -kjernen er det første trinnet for enhver programmerer som vil bli en kjerneutvikler. Det er også nyttig for programmerere eller brukere som vil lese kildekoden eller endre den.

Linux -kjernestrukturen

Linux -kjernen er strukturert med kataloger og underkataloger kjent som “Kerneltre”, brukere kan bla gjennom for å få tilgang til spesifikke seksjoner i hele koden. Dette lar brukere og utviklere fokusere på spesifikke deler av koden.

Bortsett fra Slackware Linux -distribusjonen, hvis kjerne opprettholdes av en enkelt person, resten av Linux -distribusjonenes enorme utviklers samfunnsdelingsoppgaver basert på kjernetreet. Derimot fokuserer flere utviklere på sjåfører, andre fokuserer på sikkerhet og andre på virtualisering.

Kjernen Tree Tree er følgende struktur beskrevet som brukere kan bla gjennom kildekoden:

Visning og surfing av Linux -kjernekoden

Vanligvis, når vi installerer Linux, inkluderer vi ikke kildekoden. Vi kan installere Linux og oppbevare kildekoden i systemet vårt. Men de fleste brukere kasser det for å laste ned et mindre ISO -bilde. Tross alt kan du laste ned kildekoden senere hvis du trenger den.

Hvis kjernekildekoden er til stede i systemet ditt, kan du finne den under/USR/SRC/Linux-katalogen, hvor må erstattes med kildekodekjernen du har å gjøre med.

Du kan også finne den siste kjernekildekoden på https: // github.com/torvalds/linux.

Som du kan se i forrige skjermbilde eller på den medfølgende URL -en, i kildekodetreet, kan vi finne følgende hovedkataloger og filer:

  • Arch: Denne katalogen inneholder kildekoder for forskjellige systemarkitekturer støttet av Linux -kjernen.
  • blokkere: Block I/O -lagkatalogen inneholder kode for styring av blokkeringsenheter (for eksempel harddisker, DVDer, disketter, etc.) og deres forespørsler.
  • sertifikater: Certs -katalogen inneholder sertifikater og signeringsfiler for å tillate modulsignaturer for kjernen å laste inn signerte moduler. Dette kan være nyttig for å forhindre at ondsinnet kode kjører innenfor kjernemoduler som rootkits.
  • Kopiering: Denne filen har informasjon om lisenser for kildekoden
  • Studiepoeng: En delvis liste over mennesker som har bidratt til Linux -kjernen Kildekode
  • Krypto: Denne katalogen inneholder kryptografiske chiffer, som håndterer kryptografiske og kompresjonsoppgaver.
  • Dokumentasjon: Som navnet antyder, inkluderer denne katalogen all dokumentasjon om alle kjernekomponenter.
  • drivere: Driverkatalogen inneholder kildekode for enhetsdrivere for å støtte maskinvare. Inne i denne katalogen finner du underkataloger for hver maskinvare, for eksempel video, Bluetooth, etc. (all støttet maskinvare).
  • Fs: Denne katalogen inneholder kilder for filsystemer, inkludert virtuelle filsystemer, pluss lese og skrive filsystemer.
  • inkludere: Denne katalogen inneholder C -overskrifter for kjernefiler, for eksempel funksjoner for å kompilere kode.
  • i det: INIT -katalogen inneholder kildekode relatert til oppstartsprosessen og initialiseringen av Linux -kjernen. Kildekoden er lagret i en fil som heter Mainc.c Innenfor /init -katalogen. Koden initialiserer kjernen og noen innledende prosesser.
  • IPC: Kommunikasjon mellom prosesser, for eksempel signaler og rør.
  • Kbuild: Kbuild -filen indikerer objektfiler for VMLinuz.
  • Kconfig: Kconfig -filen brukes til å deaktivere eller aktivere kjernefunksjoner. Brukere tar for seg å kjøre kommandoen “Make Menuconfig”.
  • kjerne: Kernelkatalogen inkluderer kjernedelvis, for eksempel planleggingskode for planlegging av signalhåndtering.
  • lib: Denne katalogen inkluderer bibliotekrutiner, vanlige strengoperasjoner, maskinvareavhengige operasjoner, feilsøkingsrutiner og kommandolinjekode.
  • Lisenser: Den inneholder lisensene som skal brukes på kjernekilden og individuelle kildefiler, som kan ha forskjellige lisenser. Inne.
  • Mantainers: Filen vedlikeholdere viser kjerneopprettholderlisten og instruksjonene for å sende inn kjerneendringer.
  • Makefile: Denne filen leser .konfigurasjonsfil og bygger moduler og vmlinux.
  • mm: Linux -kjernen administrerer maskinvare og virtuell minne (SWAP). Dette er katalogen der kildekoden for minnestyring er lagret.
  • nett: Nettkatalogen inneholder nettverksstabelen. Her kan du finne kode relatert til kommunikasjonsprotokoller, for eksempel IP, TCP og UP.
  • Readme: Readme -filen refererer til guider for kjerneutviklere i dokumentasjonskatalogen som tidligere er beskrevet.
  • Prøver: Prøvekatalogen inkluderer kjerne- og konfigurasjonsfiler Eksempelkode.
  • skript: Her er lagret de nødvendige skriptene for å bygge Linux -kjernen.
  • sikkerhet: Sikkerhetsunderkatalogen inneholder sikkerhetsforbedrede Linux (Selinux) sikkerhetsrammeverk.
  • lyd: Her kan du finne lydsystemet, inkludert lyddrivere, driverarkitekturer og kode relatert til lyd, for eksempel ALSA.
  • verktøy: Her er verktøy for komprimert kjerneutvikling, for eksempel ACPI, CGroup, USB -testverktøy, VHOST -testmodul, GPIO, IIO og SPI -verktøy, og Inter Energy Policy Tool.
  • usr: Her lagrer USR initramfs, som røtter filsystemet og init i kjernehukommelsesbufferen. Kode inkludert lar deg utføre kode i brukerområdet i oppstartsprosessen når kjernen ikke er fullbelastet.
  • virt: Virtualiseringskatalogen inneholder KVM (Kernel Virtual Machine) -modulen for hypervisorer, inkludert arkitekturer.

Dette er alle toppfiler og kataloger som er inkludert i hovedkjernen Kildekatalog. Du kan bla gjennom hver seksjon avhengig av dine behov. Når du har forstått formålet med alle filer og kataloger som er oppført ovenfor, er underkataloger ganske intuitive.

Konklusjon

Som du kan se, ble denne artikkelen skrevet for nye og mellomstore brukere for å forstå det grunnleggende i Linux -kjernen. Likevel er noe kunnskap om utvikling under Linux, maskinvare og operativsystemegenskaper nødvendig for praktisk bruk. Det forrige foredraget er utmerket som en introduksjon til Linux -kjernestrukturen og Linux -distribusjonen. Husk at Linux -kjernen utvikler seg med jevne mellomrom. Derfor holder vi det tidligere beskrevne innholdet oppdatert.

Vi håper du fant denne artikkelen nyttig. Fortsett å lese Linuxhint for mer Linux -profesjonelle artikler.