Jednostavno programiranje Linuxa – Potpuni vodič s resursima za početnike

Objava: Vaša podrška pomaže održavanju web mjesta! Naplaćujemo naknadu za preporuku za neke usluge koje preporučamo na ovoj stranici.


Linux je operativni sustav, platforma, ekosustav i kultura. Dok stalna dominacija Windows-a i Mac OS-a u računalstvu na stolnim računalima uzrokuje da neupućeni potrošači pretpostavljaju da je Linux svojevrsna mogućnost za ekstremne štreberke i one koji ne žele platiti operativni sustav, stvarnost je u tome da Linux je najkorišteniji i najvažniji operativni sustav na planeti. To napaja web, napaja našu infrastrukturu, napaja najveća superračunala na svijetu.

Razvoj za Linux može biti malo izazov, ali može biti i izuzetno koristan. Ovaj kratki vodič će vam pružiti uvod u informacije i resurse koji su vam potrebni da biste započeli s programiranjem Linuxa. Obuhvaća četiri područja razvoja Linuxa: doprinos kernelu, izgradnja novih modula, razvoj aplikacija za Linux i skripti Shell-a.

Linux razvoj kernela

Linux kernel je možda najambiciozniji projekt razvoja softvera na planeti. Nova stabilna izdanja izlaze otprilike svaka tri mjeseca, a svako izdanje uključuje tisuće programera koji rade u desecima zemalja.

Uključiti se u razvoj kernela paradoksalno je kako lakše nego što bi trebalo biti, a također i smiješno teško. Lakše je nego što se čini kako bi trebalo biti, jer nema procesa zapošljavanja, nema intervjua i nema birokracije. Svi koji znaju što rade, mogu se razviti za jezgru i poslati zakrpe. S druge strane, također je izuzetno teško jer je kernel izuzetno kompliciran. Štoviše, zajednica za razvoj kernela, iako na neki način nije dobrodošla, ne podnosi amaterski shenaniganse. Iako pomaže da imate debelu kožu, ništa zapravo ne zamjenjuje to što zapravo znate što radite. Razvoj jezgre prilično je ozbiljan posao, koji uključuje prilično ozbiljne informatike. Ako tek započinjete s razvojem operativnog sustava, ovo zapravo nije mjesto za započinjanje.

Što trebaš znati

Razvojne vještine

Programiranje Linux kernela vrši se u C. Ne C ++, ne Objective-C, ne C #. Dakle, prvo što morate učiniti je izuzetno dobro naučiti programski jezik C.

Također morate duboko razumjeti teoriju operativnog sustava, posebno ako se odnosi na Linux sustav. Više o tome u sljedećem odjeljku.

  • Programski jezik C: definitivni vodič za jezik. Dostupno i kao besplatni PDF.
  • Koncepti operacijskog sustava: temeljit uvod u teoriju i praksu razvoja operacijskog sustava.

Razumijevanje Linuxa

Naravno, Linux trebate razumjeti i kao korisnik i kao programer. To uključuje prilično duboko razumijevanje kako je Linux kernel strukturiran i kako se različiti podprojekti međusobno uklapaju.

  • Linux sučelje za programiranje
  • Linux Kernel Newbies

Proces i kultura

Na kraju, morate shvatiti kako zapravo funkcionira proces razvoja Linuxa. To uključuje dobivanje osjećaja za zajednicu kao cjelinu, za njenu kulturu i kako se različiti članovi razvojne zajednice međusobno odnose. Također, podrazumijeva razumijevanje kontrole distribuirane verzije i ciklus izdanja razvoja.

  • Kako sudjelovati u Linux zajednici: obavezno čitanje. Započni ovdje.
  • Tri načina za početnike da doprinesu Linux kernelu: kratki, prijateljski vodič za uključivanje.
  • Službene stvari:
    • Linux Kernel Archives
    • Popis za slanje kernela Linuxa
    • Tragač o grešci
  • Biti Moron na Linux-kernelu: vodič o tome kako se ne ponašati na Linux Kernel (ili bilo kojoj drugoj) listi za slanje e-pošte. (Naša preporuka: vrebajte najmanje šest mjeseci prije nego što objavite bilo što.)

Razvijanje kernel modula

Prije skoka u razvoj jezgre na Linux kernelu, dobar način za povećanje znanja i stručnosti za Linux programiranje je rad na kernel modulu. To su neovisno razvijeni dijelovi softvera koji rade s kernelom kako bi funkcionirali kao cjeloviti operativni sustav. Kernel moduli uključuju stvari poput upravljačkih programa za razne hardverske periferije, kao i upravitelje datoteka i druge značajke operativnog sustava niske razine.

Zapreke pri ulasku u rad na modulu kernela općenito su znatno niže nego one za rad na Linux kernelu. Postoji stotine modula koje su razvili mnogi različiti timovi i pojedinci, tako da ne postoji niti jedan vratar koji bi postavio ton za razvoj. Uz to su ulozi malo manji kod razvoja modula.

Što trebaš znati

Kernel moduli, poput samog kernela, obično su napisani u C. (Postoji određena rasprava o razvoju modula jezgre u C ++, a postoje i neki izvan-zidni načini da se to postigne, ali to sigurno nije uobičajen način niti preporučuje se.)

Očito, ako pišete upravljački program uređaja za komad hardvera, morat ćete znati prilično malo o vrsti hardvera i ugrađenom firmveru u njega. Također vam treba pristojno razumijevanje kernela temeljenog na Linuxu i načina na koji on djeluje s modulima kernel-a. Konačno, ako doprinosite postojećem modulu jezgre, morat ćete naučiti o njihovim postupcima i razvojnom ciklusu.

  • Vodič za programiranje modula Linux kernel: izuzetno temeljit vodič.
  • Kako napisati vlastiti Linux kernel modul sa jednostavnim primjerom: lijep vodič kroz šetnju.
  • Pisanje datotečnog sustava u Linux Kernel-u: još jedan relativno jednostavan za slijediti korak po korak vodič.

Također pogledajte gornji popis resursa u odjeljku razvoj kernela.

Razvoj aplikacija za Linux operativni sustav

Jednom kad se izvučemo iz korova razvoja operativnog sustava i počnemo razgovarati o razvoju stvarnih aplikacija za Linux operativni sustav, posao postaje malo lakši i imamo puno više mogućnosti kako postupiti. Kompilatori i tumači za gotovo svaki programski jezik dostupni su za Linux platformu, često više od jednog za određeni jezik.

Što trebaš znati

Ako ste navikli razvijati se za Windows ili Mac OS, najveći šok kod razvoja za Linux vjerojatno je velika raznolikost Linux okruženja. Postoji nekoliko desetaka Linux distribucija i svaki Linux korisnik ima mogućnost prilično promijeniti način na koji funkcionira njihovo određeno okruženje. To između ostalog znači da morate voditi računa o upravljanju ovisnostima puno više nego što bi inače moglo biti potrebno.

Još jedna razlika, posebno u usporedbi sa Windows sustavom, je ta što mnogi korisnici Linuxa radije sastavljaju svoje aplikacije iz izvornog koda. To se događa i na Mac OS-u, ali s manjom učestalošću. U svijetu Linuxa, velik broj korisnika uvijek će radije sastaviti aplikacije iz izvora, nego koristiti instalacijski paket. To bi moglo utjecati na to kako razmišljate o razvoju i distribuciji softvera.

Većina razvoja usmjerenih na Linux odvija se na C, C ++, Perl ili Python-u. Dobro učenje tih jezika i ronjenje u gore spomenutim resursima (Kernel i Modules) i ispod (skriptiranje) puno će vam pomoći..

  • C Programiranje u Linuxu: temeljit uvod i vodič o programiranju Linux aplikacija na C jeziku.
  • Obuka za razvojne programere za Linux: plaćeni tečajevi za razvoj Linuxa od Linux Foundation.

Skriptiranje u Linuxu

Možda je “najniža razina” programiranja u Linuxu skriptiranje granata. Međutim, ovo nije ništa manje “programiranje” nego bilo što drugo. Pisanje školjki u Linuxu izvrstan je način za automatizaciju rutinskih zadataka i izvršavanje više posla za manje vremena. Pored toga, kopanje u naprednim skriptama za školjke pružit će vam dublje znanje i razumijevanje Linux operativnog sustava. Skripta školjki je ono što razdvaja početnike Linuxa od naprednih Linux korisnika.

Što trebaš znati

Iako postoje i druge mogućnosti, najčešći je skriptni jezik Bash. Čak i ako planirate prijeći na naprednije skriptne jezike, pokretanje Bash-a pokrenut će vas na desnoj nozi za sve vrste skripti operativnog sustava. Većina ljudi koji se stvarno upišu u scenarije kao način za povećanje produktivnosti, za većinu svog rada koriste bilo Python ili Perl. Jednom kada udarite u zid onim što lako možete postići u Bashu, vjerojatno ćete se htjeti prebaciti na jedan od tih jezika.

Bash resursi

  • Vodič za Bash za početnike
  • Napredni Bash-skriptni vodič
  • Vodič za skripte skripti za Linux

Resursi Python

  • Naučite Python na teži način: jedan od najpopularnijih uvoda u Python razvoj.
  • Automatizirajte dosadne stvari pomoću Pythona: Praktično programiranje za početnike: izvrstan uvod u scenariju (za razliku od “razvoja”) u Pythonu. Dostupno i besplatno na mreži kao video tečaj.

Perl resursi

  • Uvod u početnike za Perl
  • Kako napisati skripte školjki na Perlu
  • UNIX, skripti na školjke i uvođenje Perl-a

Opći resursi Linuxa

Zaklada Linux

Linux.org: središnji forum za sve stvari Linux.

Linux Documentation Project: velika biblioteka Linuxa vodiča o svim gore navedenim temama, kao i hrpa drugih stvari. Ovo je jedno od najvažnijih mjesta za dubinske Linux informacije.

Sažetak

Bila je to divlja vožnja! Od programiranja jezgre Linuxa pa sve do skriptiranja školjki. Postoji bezbroj načina za programiranje Linux operativnog sustava. Uz ovaj vodič, trebali biste biti na dobrom putu.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me