Linux-programmering gøres nemt – En komplet guide med ressourcer til begyndere

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


Linux er et operativsystem, platform, økosystem og kultur. Mens den fortsatte dominans af Windows og Mac OS for desktop computing får den uindviede forbruger til at antage, at Linux er en slags frynsemulighed for ekstreme nørder, og dem, der ikke ønsker at betale for et operativsystem, er sandheden at Linux er det mest anvendte og vigtigste operativsystem på planeten. Det driver internettet, det driver vores infrastruktur, det driver de største supercomputere i verden.

At udvikle til Linux kan være en smule udfordring, men det kan også være ekstremt givende. Denne korte guide giver dig en introduktion til de oplysninger og ressourcer, du har brug for for at komme i gang med Linux-programmering. Det dækker fire områder af Linux-udvikling: at bidrage til kernen, bygge nye moduler, udvikle applikationer til Linux og Shell-scripting.

Linux-kerneudvikling

Linux-kernen er måske det mest ambitiøse softwareudviklingsprojekt på planeten. Nye stabile udgivelser kommer cirka hver tredje måned, og hver udgivelse involverer tusinder af udviklere, der arbejder i snesevis af lande.

At blive involveret i kerneudvikling er paradoksalt nok både lettere, end det ser ud til at være, og også latterligt vanskeligt. Det er lettere, end det ser ud som om det skulle være, fordi der ikke er nogen ansættelsesproces, intet interview, ingen bureaukrati. Enhver, der ved, hvad de laver, er velkommen til at udvikle sig til kernen og indsende programrettelser. På den anden side er det også ekstremt vanskeligt, fordi kernen er ekstremt kompliceret. Desuden tolererer kerneudviklingssamfundet, selv om det er ganske indbydende på nogle måder, ikke amatør shenanigans meget godt. Selvom det hjælper med at have tyk hud, erstatter intet rigtig noget ved faktisk at vide, hvad du laver. At udvikle kernen er temmelig seriøs forretning, der involverer temmelig seriøs datalogi. Hvis du lige er kommet i gang med udviklingen af ​​operativsystemet, er dette ikke rigtig stedet at starte.

Hvad du har brug for at vide

Udviklingsfærdigheder

Programmering af Linux-kernen udføres i C. Ikke C ++, ikke Objekt-C, ikke C #. Så den første ting, du skal gøre, er at lære C-programmeringssprog ekstremt godt.

Du skal også have en dyb forståelse af operativsystemteori, især når det drejer sig om Linux-systemet. Mere om det i det næste afsnit.

  • C-programmeringssprog: den definitive guide til sproget. Også tilgængelig som en gratis PDF.
  • Operativsystemkoncepter: en grundig introduktion til teori og praksis i forbindelse med udvikling af operativsystemer.

Forståelse af Linux

Naturligvis skal du forstå Linux både som bruger og som udvikler. Dette inkluderer at have en temmelig dyb forståelse af, hvordan Linux-kernen er struktureret, og hvordan de forskellige delprojekter passer sammen.

  • Linux-programmeringsgrænsefladen
  • Linux Kernel Newbies

Process og kultur

Endelig skal du forstå, hvordan Linux-udviklingsprocessen rent faktisk fungerer. Dette inkluderer at få en fornemmelse for samfundet som helhed, for dens kultur, og hvordan de forskellige medlemmer af udviklingssamfundet forholder sig til hinanden. Det betyder også forståelse af distribueret versionskontrol og udviklingsudgivelsescyklus.

  • Sådan deltager du i Linux-samfundet: krævet læsning. Start her.
  • Tre måder for begyndere at bidrage til Linux-kernen: en kort, venlig guide til at blive involveret.
  • Officielle ting:
    • Linux Kernel-arkivet
    • Linux Kernel-postlisten
    • The Kernel Bug Tracker
  • At være en Moron på linux-kernel: en guide til, hvordan man ikke opfører sig på Linux Kernel (eller nogen anden) postliste. (Vores anbefaling: lurer i mindst seks måneder, før du poster noget.)

Udvikling af kernemoduler

Inden du springer ind i kerneudvikling på Linux-kernen, er en god måde at øge din viden og ekspertise med Linux-programmering at arbejde på et kernemodul. Dette er uafhængigt udviklede stykker software, der fungerer med kernen for at fungere som et komplet operativsystem. Kernemoduler inkluderer ting som enhedsdrivere til forskellige hardware periferier samt filadministratorer og andre operativsystemfunktioner på lavt niveau.

Barrierer for adgang til at arbejde på et kernemodul er generelt set meget lavere end for at arbejde på Linux-kernen. Der er hundreder af moduler, der er udviklet af mange forskellige teams og enkeltpersoner, så der er ikke et sæt portvogtere, der sætter tonen for udvikling. Derudover er indsatsen lidt lavere med moduludvikling.

Hvad du har brug for at vide

Kernemoduler, ligesom selve kernen, er normalt skrevet i C. (Der er en vis kredsdebat om at udvikle kernemoduler i C ++, og der er nogle off-the-wall-måder til at opnå dette, men det er bestemt ikke den normale måde anbefales det.)

Selvfølgelig, hvis du skriver en enhedsdriver til et stykke hardware, bliver du nødt til at vide noget om typen af ​​hardware og firmwaren, der er indlejret i den. Du har også brug for en anstændig forståelse af den Linux-baserede kerne, og den måde, den interagerer med kernemoduler. Endelig, hvis du bidrager til et eksisterende kernemodul, bliver du nødt til at lære om deres procedurer og udviklingscyklus.

  • Linux Kernel Module Programmeringsvejledning: en ekstremt grundig guide.
  • Sådan skriver du dit eget Linux-kernemodul med et simpelt eksempel: en dejlig gennemgangsvejledning.
  • Skrivning af et filsystem i Linux Kernel: en anden relativt let at følge trin-for-trin tutorial.

Se også listen over ressourcer ovenfor i afsnittet Kerneludvikling.

Udvikling af applikationer til Linux-operativsystemet

Når vi er kommet ud af ukrudtet i udviklingen af ​​operativsystemet og begynder at tale om at udvikle faktiske applikationer til Linux-operativsystemet, bliver jobbet lidt lettere, og vi har meget flere muligheder for, hvordan vi skal gå videre. Kompilatorer og tolke til næsten hvert programmeringssprog er tilgængelige for Linux-platformen, ofte mere end et for et bestemt sprog.

Hvad du har brug for at vide

Hvis du er vant til at udvikle til Windows eller Mac OS, er det største chok, når du udvikler til Linux, sandsynligvis den store række Linux-miljøer. Der er snesevis af Linux-distros, og enhver Linux-bruger har evnen til at ændre en hel del om, hvordan deres særlige miljø fungerer. Dette betyder blandt andet, at du er nødt til at være opmærksom på afhængighedsstyring meget mere, end du ellers måske har brug for.

En anden forskel, især sammenlignet med et Windows-system, er, at mange Linux-brugere foretrækker at kompilere deres applikationer fra kildekoden. Dette sker også på Mac OS, men med mindre hyppighed. I Linux-verdenen foretrækker et stort antal brugere altid at samle applikationer fra kilden i stedet for at bruge en installationspakke. Dette kan have indflydelse på, hvordan du tænker på udvikling og distribution af din software.

Mest Linux-centreret udvikling finder sted i C, C ++, Perl eller Python. At lære disse sprog godt, og dykke ned i de ovenfor nævnte ressourcer (Kernel og moduler) og nedenfor (scripting) vil hjælpe meget.

  • C-programmering i Linux: en grundig introduktion og tutorial om programmering af Linux-applikationer på C-sproget.
  • Linux Developer Training: betalte kurser om Linux-udvikling fra Linux Foundation.

Scripting i Linux

Måske er “laveste niveau” for programmering i Linux shell scripting. Dette er dog ikke mindre “programmering” end noget andet. Shell-scripting i Linux er en fantastisk måde at automatisere rutineopgaver og udføre mere arbejde på kortere tid. Derudover vil grave i avanceret shell-scripting give dig en dybere viden og forståelse af Linux-operativsystemet. Shell-scripting er virkelig det, der adskiller nybegynderne Linux-forbrugere fra avancerede Linux-brugere.

Hvad du har brug for at vide

Mens der er andre muligheder, er det mest almindelige scriptingssprog Bash. Selv hvis du planlægger at gå videre til mere avancerede scripting-sprog, får du et greb på Bash, du starter på højre fod for alle typer af operativsystem scripting. De fleste mennesker, der virkelig kommer ind i scripting som en måde at øge produktiviteten, bruger enten Python eller Perl til det meste af deres arbejde. Når du først har ramt en væg med det, du let kan udrette i Bash, vil du sandsynligvis flytte til et af disse sprog.

Bash Ressourcer

  • Bash Guide til begyndere
  • Avanceret Bash-scripting guide
  • Linux Shell-scriptingvejledning

Python Resources

  • Lær Python den hårde måde: en af ​​de mest populære introduktioner til Python-udvikling.
  • Automatiser de kedelige ting med Python: praktisk programmering for totalbegyndere: en god introduktion til scripting (i modsætning til “udvikling”) i Python. Også tilgængelig gratis online som videokursus.

Perl Ressourcer

  • Begynders introduktion til Perl
  • Sådan skrives shell-scripts i Perl
  • UNIX, Shell Scripting og Perl Introduktion

Generelle Linux-ressourcer

Linux Foundation

Linux.org: et centralt forum for alle ting Linux.

Linux-dokumentationsprojektet: et kæmpe bibliotek med Linux-guider om alle ovenstående emner plus en masse andre ting. Dette er et af de vigtigste steder at gå til grundig Linux-information.

Resumé

Det var en vild tur! Fra Linux-kerneprogrammering helt ned til shell-scripting. Der er utallige måder at programmere Linux-operativsystemet. Med denne vejledning skal du være godt på vej.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map