„Linux“ branduolys

„Linux“ branduolio pamoka pradedantiesiems

„Linux“ branduolio pamoka pradedantiesiems

Pagrindinė informacija apie operacines sistemas

Operacinė sistema, sutrumpinta kaip OS, yra programinė įranga, valdanti sistemos aparatūros komponentus, ar tai būtų telefonas, nešiojamas kompiuteris ar darbalaukis. Jis yra atsakingas už ryšį tarp programinės įrangos ir aparatinės įrangos. „Windows XP“, „Windows 8“, „Linux“ ir „Mac OS X“ yra visi operacinių sistemų pavyzdžiai. Operacinę sistemą sudaro:

Branduolio erdvė ir „Userspace“

Branduolio erdvė: branduolys yra padidintos sistemos būsenoje, kuri apima saugomą atminties vietą ir visišką prieigą prie įrenginio aparatūros. Ši sistemos būsena ir atminties erdvė iš viso vadinama branduolio erdve. Branduolio erdvėje pagrindinė prieiga prie aparatūros ir sistemos paslaugų yra valdoma ir teikiama kaip paslauga likusiai sistemai.

Vartotojo erdvė: vartotojo programos vykdomos vartotojo erdvėje, kur branduolio sistemos iškvietimais jie gali pasiekti įrenginio turimų išteklių pogrupį. Naudojant pagrindines teikiamas branduolio paslaugas, galima sukurti vartotojo lygio programą, pavyzdžiui, žaidimų ar biuro produktyvumo programinę įrangą.

„Linux“

Metams bėgant „Linux“ populiarėja, nes yra atviro kodo, pagrįstas panašiu į UNIX dizainą, ir perkeltas į daugiau platformų, palyginti su kitomis konkuruojančiomis operacinėmis sistemomis. Kaip nurodyta, tai yra operacinė sistema, panaši į UNIX OS - stabilią daugelio vartotojų daugiafunkcinę operacinę sistemą, kuri buvo surinkta kaip nemokama ir atviro kodo programinė įranga, skirta kurti ir platinti. Tai reiškia, kad bet kuris asmuo ar įmonė turi leidimą naudoti, mėgdžioti, tirti ir keisti „Linux“ operacinę sistemą bet kokiu norimu būdu.

„Linux“ branduolys

Nuo pirmojo leidimo 1991 m. Rugsėjo 17 d. „Linux“ branduolys visus šansus paneigė „Linux“ apibrėžiančiuoju komponentu. Jį išleido Linusas Torvaldsas ir operacinei sistemai apibūdinti naudojasi GNU / Linux.  „Linux“ branduolio „Android OS“ išmaniuosiuose telefonuose privertė „Linux“ įveikti savo konkurenciją ir būti didžiausia įdiegta OS baze iš visų bendrosios paskirties operacinių sistemų.  „Linux“ branduolio istoriją galite rasti čia.

Branduolys gali būti monolitinis, mikrobranduolinis arba hibridinis (pvz., OS X ir Windows 7). „Linux“ branduolys yra monolitinis kompiuterio operacinės sistemos branduolys, panašus į UNIX sistemą. „Linux“ operacinių sistemų linija, paprastai vadinama „Linux“ paskirstymais, yra pagrįsta šiuo branduoliu.  Monolitinis branduolys, skirtingai nei mikrobrandelis, apima ne tik centrinį procesorių, atmintį ir IPC, bet ir įrenginių tvarkykles, sistemos serverio skambučius ir failų sistemos valdymą. Jie geriausiai bendrauja su aparatūra ir vienu metu atlieka kelias užduotis. Būtent dėl ​​šios priežasties procesai čia reaguoja greitai.

Tačiau keletas trūkumų yra didžiulis reikalingas įdiegimo ir atminties pėdsakas bei nepakankamas saugumas, nes viskas veikia prižiūrėtojo režimu. Priešingai, mikrokernelis gali lėtai reaguoti į programų skambučius, nes vartotojo paslaugos ir branduolys yra atskirti. Taigi jie yra mažesnio dydžio, palyginti su monolitiniu branduoliu.  Mikrobranduoliai yra lengvai išplečiami, tačiau norint parašyti mikroranduolius, reikia daugiau kodo. „Linux“ branduolys parašytas programavimo kalbomis C ir Assembly.

„Linux“ branduolio ryšys su aparatine įranga

Branduolys gali valdyti sistemos aparatūrą per vadinamuosius pertraukimus. Kai aparatinė įranga nori sąsajos su sistema, išduodamas pertraukimas, kuris nutraukia procesorių, kuris savo ruožtu daro tą patį su branduoliu. Norėdami užtikrinti sinchronizavimą, branduolys gali išjungti pertraukimus, nesvarbu, ar tai vienas, ar visi. Tačiau sistemoje „Linux“ pertraukimo tvarkytuvai neveikia proceso kontekste, jie veikia pertraukimo kontekste, nesusijusiame su jokiu procesu.Šis konkretus pertraukimo kontekstas egzistuoja tik tam, kad pertraukimo tvarkytojas galėtų greitai reaguoti į atskirą pertraukimą ir galiausiai išeiti.

Kuo „Linux“ branduolys skiriasi nuo kitų „Classic Unix“ branduolių?

Yra reikšmingų skirtumų tarp „Linux“ ir „Classic Unix“ branduolių; kaip nurodyta toliau:

  1. „Linux“ palaiko dinaminį branduolio modulių įkėlimą.
  2. „Linux“ branduolys yra prevencinis.
  3. „Linux“ turi simetrišką daugiaprocesorinį palaikymą.
  4. „Linux“ yra nemokama dėl atviros programinės įrangos pobūdžio.
  5. „Linux“ nepaiso kai kurių standartinių „Unix“ funkcijų, kurias branduolio kūrėjai vadina „blogai suprojektuotomis.“
  6. „Linux“ pateikia į objektą orientuoto įrenginio modelį su įrenginių klasėmis, greitai įjungiamais įvykiais ir vartotojo erdvės įrenginio failų sistema
  7. „Linux“ branduolys nesugeba atskirti gijų nuo įprastų procesų.

Architektūra

„Linux“ branduolio komponentai

Branduolys yra tiesiog išteklių valdytojas; valdomas išteklius gali būti procesas, atmintis ar aparatūros įrenginys. Jis valdo ir sprendžia prieigą prie išteklių tarp kelių konkuruojančių vartotojų. „Linux“ branduolys yra branduolio erdvėje, žemiau vartotojų srities, kurioje vykdomos vartotojo programos. Kad vartotojo erdvė galėtų bendrauti su branduolio erdve, yra įtraukta GNU C biblioteka, kuri suteikia sistemos skambučių sąsajai forumą prisijungti prie branduolio vietos ir leisti pereiti atgal į vartotojo erdvę.

„Linux“ branduolį galima suskirstyti į tris pagrindinius lygius:

  1. Sistemos skambučio sąsaja; tai yra aukščiausia ir atlieka pagrindinius veiksmus, pavyzdžiui, skaityti ir rašyti.
  2. Branduolio kodas; yra žemiau sistemos skambučio sąsajos, tai yra įprasta visoms procesoriaus architektūroms, kurias palaiko Linux, kartais jis apibrėžiamas kaip nepriklausomas nuo architektūros branduolio kodas.
  3. Nuo architektūros priklausantis kodas; jis yra pagal nepriklausomą architektūrą kodą, kuris paprastai vadinamas „Board Support Package“ (BSP) - jame yra nedidelė programa, vadinama įkrovos įkrovikliu, kuri įdeda operacinės sistemos ir įrenginio tvarkykles į atmintį.

Architektūrinę „Linux“ branduolio perspektyvą sudaro: sistemos iškvietimo sąsaja, procesų valdymas, virtuali failų sistema, atminties valdymas, tinklo kaupimas, architektūra ir įrenginių tvarkyklės.

  1. Sistemos skambučio sąsaja; yra plonas sluoksnis, naudojamas funkcijoms iškviesti iš vartotojo vietos į branduolį. Ši sąsaja gali priklausyti nuo architektūros
  2. Procesų valdymas; daugiausia yra procesams vykdyti. Tai vadinama gija branduolyje ir atspindi individualią konkretaus procesoriaus virtualizaciją
  3. Atminties valdymas; atmintis yra valdoma vadinamuosiuose puslapiuose, siekiant efektyvumo. „Linux“ apima metodus, kuriais valdoma laisva atmintis, taip pat aparatinės įrangos mechanizmus fiziniams ir virtualiems susiejimams.  Taip pat numatyta vieta apsikeitimui
  4. Virtuali failų sistema; ji suteikia standartinę sąsajos abstrakciją failų sistemoms. Tai suteikia perjungimo sluoksnį tarp sistemos skambučio sąsajos ir failo sistemų, palaikomų branduolio.
  5. Tinklo kaminas; yra sukurta kaip sluoksniuota architektūra, sukurta pagal tam tikrus protokolus.
  6. Įrenginių tvarkyklės; reikšminga šaltinio kodo dalis „Linux“ branduolyje yra įrenginių tvarkyklėse, dėl kurių konkretus aparatinis įrenginys gali būti naudojamas.  Įrenginio tvarkyklės pamoka
  7. Nuo architektūros priklausantis kodas; tie elementai, kurie priklauso nuo architektūros, kuria jie veikia, todėl turi atsižvelgti į architektūrinį projektą, kad jis veiktų normaliai ir būtų efektyvus.

Sąsajos

Sisteminiai skambučiai ir pertraukimai

Programos perduoda informaciją branduoliui per sistemos skambučius. Bibliotekoje yra funkcijos, su kuriomis programos dirba. Tada bibliotekos per sistemos skambučių sąsają nurodo branduoliui atlikti programos norimą užduotį.  Kas yra „Linux“ sistemos iškvietimas?

Pertraukimai siūlo būdą, kuriuo „Linux“ branduolys valdo sistemų aparatinę įrangą. Jei aparatūra turi bendrauti su sistema, procesoriaus pertraukimas daro triuką ir tai perduodama „Linux“ branduoliui.

„Linux“ branduolio sąsajos

„Linux“ branduolys siūlo įvairias vartotojo erdvės programų sąsajas, kurios atlieka įvairias užduotis ir turi skirtingas savybes. Yra dvi skirtingos programų programavimo sąsajos (API); branduolio ir vartotojo erdvė ir branduolio vidinis.  „Linux“ API yra branduolio-userpace API; tai suteikia prieigą prie vartotojo erdvėje esančių programų į branduolio sistemos išteklius ir paslaugas. Jį sudaro „System Call Interface“ ir GNU C bibliotekos paprogramės.

„Linux ABI“

Tai reiškia branduolio ir vartotojo erdvę ABI („Application Binary Interface“). Tai paaiškinama kaip sąsaja, egzistuojanti tarp programos modulių. Lyginant API ir ABI, skirtumas yra tas, kad ABI naudojami norint pasiekti išorinius kodus, kurie jau yra sukompiliuoti, o API yra programinės įrangos valdymo struktūros.  Svarbios ABI apibrėžimas iš esmės yra „Linux“ paskirstymo darbas, o ne „Linux“ branduolio. Kiekvienam komandų rinkiniui turėtų būti apibrėžtas konkretus ABI, pavyzdžiui, x86-64. Galutinius „Linux“ produktų vartotojus domina ABI, o ne API.

Sistemos skambučio sąsaja

Kaip jau buvo aptarta anksčiau, tai vaidina svarbesnį vaidmenį branduolyje. Tai visos esamos sistemos iškvietos dalies pavadinimas.

C standartinė biblioteka

Visi branduolio sistemos iškvietimai yra GNU C bibliotekoje, o „Linux“ API sudaro sistemos skambučių sąsaja ir GNU C biblioteka, dar vadinama „glibc“.

Nešiojamos operacinės sistemos sąsaja (POSIX)

POSIX yra bendras standartų terminas, palaikantis suderinamumą tarp operacinių sistemų. Jis deklaruoja API kartu su naudingomis sąsajomis ir komandų eilutės apvalkalais. „Linux“ API turi ne tik POSIX apibrėžtas naudingas funkcijas, bet ir savo branduolyje turi papildomų funkcijų:

  1. Grupės posistemį.
  2. Skambina tiesioginio atvaizdavimo tvarkytuvo sistema.
  3. A perskaityti funkcija.
  4. Getrandom skambutis, esantis V 3.17.
  5. Sistemos skambučiai, pvz futex, epoll, sandūra, dnotify, fanatizuoti ir inotify.

Daugiau informacijos apie „POSIX Standard“ rasite čia.

Modulinis branduolys

Ankstesnės „Linux“ branduolio versijos buvo tokios, kad visos jų dalys buvo statiškai įtvirtintos į vieną, monolitinę. Tačiau šiuolaikiniai „Linux“ branduoliai turi daugumą funkcijų moduliuose, kurie dinamiškai įdedami į branduolį. Tai, priešingai nei monolitiniai tipai, vadinami moduliniais branduoliais. Tokia sąranka leidžia vartotojui įkelti arba pakeisti modulius veikiančiame branduolyje, nereikia iš naujo paleisti.

„Linux“ kraunamo branduolio modulis (LKM)

Pagrindinis būdas pridėti kodą į „Linux“ branduolį yra įvedant šaltinio failus į branduolio šaltinio medį. Tačiau galbūt norėsite pridėti kodą, kol veikia branduolys. Tokiu būdu pridėtas kodas vadinamas įkeliamu branduolio moduliu. Šie konkretūs moduliai atlieka įvairias užduotis, tačiau yra suskirstyti į tris: įrenginių tvarkykles, failų sistemos tvarkykles ir sistemos skambučius.

Įkeliamą branduolio modulį galima palyginti su branduolio plėtiniais kitose operacinėse sistemose. Modulį galite įdėti į branduolį įkeldami jį kaip LKM arba įrišdami į pagrindinį branduolį.

LKM privalumai, palyginti su prisijungimu prie pagrindinio branduolio:

LKM naudojimas

  1. Įrenginių tvarkyklės; branduolys per tai keičiasi informacija su aparatūra. Prieš jį naudodami branduolys turi turėti įrenginio tvarkyklę.
  2. Failų sistemos tvarkyklės; tai verčia failų sistemos turinį
  3. Sisteminiai skambučiai; Vartotojo erdvėje esančios programos naudoja sistemos skambučius, kad gautų paslaugas iš branduolio.
  4. Tinklo tvarkyklės; interpretuoja tinklo protokolą
  5. Vykdomi vertėjai žodžiu; įkelia ir valdo vykdomąjį failą.

„Linux“ branduolio sudarymas

Skirtingai nuo to, ką sako dauguma žmonių, „Linux“ branduolio sukūrimas yra paprasta užduotis. Toliau pateikiama nuosekli proceso iliustracija naudojant vieną iš „Linux“ paskirstymų: „Fedora 13 KDE“. (Patartina padaryti atsarginę duomenų kopiją ir grubą.konf. tik tuo atveju, jei kažkas negerai)

  1. Iš http: // branduolio.org svetainėje atsisiųskite šaltinį.
  2. Atsisiųsdami katalogą, išimkite branduolio šaltinį iš archyvo, įvesdami šią komandą terminale:
    derva xvjf Linux-2.6.37.degutas.bz2
  3. Prieš atlikdami kompiliavimą, naudokite komandą make mrproper, kad išvalytumėte kūrimo sritį.
  4. Naudokite konfigūraciją sakydami „xconfig“. Šios konfigūracijos sukurtos tam, kad būtų lengviau paleisti bet kurią „Linux“ programą.
  5. Nurodykite modulius ir funkcijas, kurias norite turėti savo branduolyje.
  6. Įsigijęs .konfigūruoti failą, kitas žingsnis yra eiti į „Makefile“
  7. Paleiskite komandą make ir palaukite, kol kompiliacija bus baigta.
  8. Įdiekite modulius naudodami komandą make modules_install
  9. Nukopijuokite savo branduolį ir sistemos žemėlapį į / boot.
  10. Paleiskite „new-kernel-pkg“, kad sukurtumėte modulių priklausomybių ir panašių dalykų sąrašą grub.konf

Branduolio atnaujinimas

„Linux“ branduolį galima atnaujinti iš senesnės į naujesnę, išlaikant visas ankstesnės versijos konfigūracijos parinktis. Norėdami tai pasiekti, pirmiausia turite sukurti atsarginę .konfigūruoti failas branduolio šaltinio kataloge; taip yra tuo atveju, jei bandant atnaujinti branduolį kažkas ne taip. Veiksmai yra šie:

  1. Gaukite naujausią šaltinio kodą iš pagrindinio branduolio.org svetainėje
  2. Taikykite variantus senam šaltinio medžiui, kad jis būtų atnaujintas.
  3. Pertvarkykite branduolį, atsižvelgdami į ankstesnį branduolio konfigūracijos failą, kurį sukūrėte.
  4. Sukurkite naują branduolį.
  5. Dabar galite įdiegti naujos versijos branduolį.

Naujo šaltinio atsisiuntimas; „Linux“ branduolio kūrėjai supranta, kad kai kurie vartotojai gali nenorėti atsisiųsti viso branduolio atnaujinimo šaltinio kodo, nes tai sugaištų laiką ir pralaidumą. Todėl yra pleistras, kuris gali atnaujinti senesnio branduolio versiją. Vartotojai turi žinoti tik, kuris pleistras taikomas konkrečiai versijai, nes branduolio pataisos failas atnaujins tik vieno konkretaus leidimo šaltinio kodą. Skirtingus pleistro failus galima pritaikyti šiais būdais;

  1. Stabilūs branduolio pataisymai, taikomi pagrindinio branduolio versijai.
  2. Pagrindinio branduolio išleidimo pataisos taikomos tik ankstesnei pagrindinio branduolio versijai
  3. Prieauginis pleistro atnaujinimas iš konkretaus leidimo į kitą. Tai leidžia kūrėjams išvengti grėsmės atnaujinti savo branduolį. Vietoj to, jie gali pereiti nuo dabartinio stabilaus leidimo prie kito stabilaus leidimo.

Čia pateikiami išsamesni žingsniai, kaip atnaujinti branduolį iš šaltinio „Debian“ ir iš anksto sukurtų dvejetainių programų „CentOS“ ir „Ubuntu“.

Išvada

„Linux“ branduolys daugiausia veikia kaip išteklių valdytojas, veikiantis kaip abstraktus programų sluoksnis. Programos turi ryšį su branduoliu, kuris savo ruožtu sąveikauja su aparatine įranga ir aptarnauja programas. „Linux“ yra daugiafunkcinė sistema, leidžianti vienu metu vykdyti kelis procesus. „Linux“ branduolys yra populiarus dėl savo atvirojo kodo pobūdžio, leidžiančio vartotojams pakeisti branduolį į tai, kas tinka jiems ir jų aparatinei įrangai. Todėl, kitaip nei kitose operacinėse sistemose, jis gali būti naudojamas įvairiuose įrenginiuose.

Modulinė „Linux“ branduolio savybė suteikia vartotojams daugiau jaudulio. Taip yra dėl daugybės modifikacijų, kurias čia galima atlikti neperkraunant sistemos. Lankstumas suteikia vartotojams daug erdvės savo vaizduotei įgyvendinti.

Be to, monolitinis branduolio pobūdis yra didelis privalumas, nes jis turi aukštą apdorojimo galimybę nei mikrobrandelis. Pagrindinis „Linux“ tipo branduolio trūkumas yra tas, kad jei kuri nors iš jo paslaugų nepavyksta, tada visa sistema kartu su ja. Naujausios versijos buvo sukurtos taip, kad jei bus pridėta nauja paslauga, nereikės keisti visos operacinės sistemos. Tai yra patobulinimas, palyginti su ankstesnėmis versijomis.

Šaltiniai

  1. „Wikipedia Linux“ branduolys
  2. „Wikipedia Linux“ branduolio sąsajos
  3. „Linux“ įkeliamo branduolio modulis
  4. linux.com pradedančiųjų vadovas
  5. https: // www.kvoros.com / Kas yra geros pamokos, kurias reikia išmokti „Linux“ branduoliui
  6. https: // unix.kamino mainai.com / questions / 1003 / „Linux-kernel-good-beginners-tutorial“
  7. http: // www.„Linux-tutorial-tutorial“.informacija / moduliai.php?name = MCTurinys & pageid = 82
  8. https: // www.howtogeek.com / howto / 31632 // kas yra „Linux“ branduolys ir ką jis daro /
5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...