Objektimoduuli

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 29. maaliskuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

Objektimoduuli (myös - objektitiedosto , englanniksi  objektitiedosto ) - tiedosto, jossa on erillisen ohjelmamoduulin väliesitys, joka saadaan kääntäjän lähdekoodin käsittelyn tuloksena . Objektitiedosto sisältää erityisesti valmistetun koodin (kutsutaan usein binääriksi tai binääriksi ), joka voidaan yhdistää muihin objektitiedostoihin linkkerillä ( linker ) valmiin suoritettavan moduulin tai kirjaston saamiseksi .

Objektitiedostot ovat konekoodin ja datan lohkoja, joissa on määrittelemättömät osoitteet viittauksille muiden objektimoduulien tietoihin ja proseduureihin sekä luettelo niiden proseduureista ja tiedoista. Linkkeri kokoaa jokaisen objektimoduulin koodin ja tiedot lopulliseksi ohjelmaksi ja laskee ja täyttää moduulien väliset ristiviittausosoitteet. Linkityksen staattisiin kirjastoihin tekee linkkijä tai linkki (joka voi olla itsenäinen ohjelma tai osa kääntäjää), kun taas linkitys käyttöjärjestelmään ja dynaamisiin kirjastoihin tehdään ajon aikana, sen jälkeen, kun ohjelma on ladattu muistiin.

Ohjelmoija luo objektikoodin kääntäjän tai kokoajan avulla. Esimerkiksi Linuxissa GNU Compiler Collection -kääntäjä luo .o-tiedostoja, jotka käyttävät ELF-muotoa. Kääntäminen Windowsissa tuottaa .obj-tiedostoja käyttäen COFF-muotoa. Linkkeriä käytetään sitten yhdistämään objektikoodi yhdeksi suoritettavaksi ohjelmaksi tai kirjastoksi, joka purkaa esikäännetyt järjestelmäkirjastot tarpeen mukaan.

On olemassa monia erilaisia ​​objektitiedostomuotoja; alun perin jokaisella tietokonetyypillä oli oma ainutlaatuinen muotonsa, mutta Unixin ja muiden kannettavien käyttöjärjestelmien tultua käyttöön jotkin tiedostomuodot, kuten ELF ja COFF, määriteltiin ja niitä käytettiin eri tyyppisissä järjestelmissä. Samaa muotoa voidaan käyttää sekä linkkerin sisään- että ulostuloon ja siten kirjaston ja suoritettavan tiedoston muotoon. Jotkin muodot voivat sisältää konekoodia eri prosessoreille, ja käyttöjärjestelmä valitsee oikean muunnelman ohjelmaa ladattaessa [1] .

Katso myös

Muistiinpanot

  1. DB2 Universal Database -ohjelmiston version 6.1 asentaminen Red Hat Linuxiin  // DBA-opas Linuxin tietokantoihin. - Elsevier, 2000. - S. 237-282 .