Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Loaderis

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Loaderis - tai tokia programa, o paprastai - tiesiog kernelio funkcija, kuri paima iš kur nors programos kodą, nuskaito, pakelia į operacinę atmintį, o tada tenai perduoda vykdymą.

Paprastai apie loaderį niekas nesusimąsto, bet visada loaderis suveikia, kai tik yra paleidžiama kokia nors programa. Visokiose UNIX sistemose loaderis nėra labai normalus, nes naudojamas keistas, nors ir savo logiką turintis fork-exec mechanizmas, kurio dėka naujai paleista programa gauna visišką ją paleidusios programos aplinkos kloną. Kitose OS tasai programų pakėlimas yra paprastesnis.

Normalesės šiuolaikinės OS pakelia programas, tuo pačiu dar ir apjungdamos jas su visokiomis programinėmis bibliotekomis ir pertransliuodami simbolines nuorodas į tiesioginius adresus, taigi, čia būna linkinantys loaderiai. Įprastais šiuolaikiniais atvejais visi loaderiai būna linkinantys, tai aprastai niekas papildomai žodžio apie linkinimą ir nemini.


Loaderiai sistemų programavime

Klasikinis sunkus loaderio klausimas - ką daryti, kai yra plikas hardwaras, t.y., tiesiog geležis be jokio softo, o reikia kažkokią programą pakelt. O tai kaip gi pakelt programą, jei nėra jokios programos? Ir kaip išvis pakelti visą operacinę sistemą?

Tai reiškia, kad kažkokiu būdu kompiuteryje turi būti kraštutinai paprasta programėlė, kuri iš kažkokio įrenginio nuskaitytų kažkokį loaderį, kuris pakeltų operacinę sistemą, turinčią jau normalų ir padorų loaderį. Bet ta programėlė gi irgi yra ne kas kita, kaip loaderis.

Taigi, kadaise kažkas iš priešistorinių programuotojų sugalvojo, kad čia analogija, kaip su Baronu Miunhauzenu, kuris kartą įstrigęs pelkėje, save ėmė traukti už batų raištelių, tie raišteliai ėmė traukti batus, o batai jau ištraukė ir patį Miunhauzeną ir pakėlė jį į orą, o tada jis nuskrido šitaip į kažkur.

Taigi, nuo Miunhauzeno ir atsirado OS pakėlimo terminija:

  • Bootstrap loaderis - tai tas kur nors BIOS esantis gabaliukas kodo, paprastai atmintyje esantis nuo adreso 00h, kuris moka perskaityti boot loaderį iš kokio nors disko
  • Boot loaderis - tai tasai primityvus loaderis, kuris jau moka perskaityti kokią tai esminę operacinės sistemos kernelio dalį, kad ji atsirastų atmintyje ir pradėtų veikti
  • Tiesiog loaderis - tai jau būna tiesiog kokia tai kerelio funkcija ar modulis, kuris moka paprastas programas į atmintį pakraudinėti ir paleidinėti