Berkas objek (komputer)

Berkas objek (komputer) adalah berkas komputer yang berisi kode objek, yaitu kode mesin keluaran dari assembler atau compiler. Kode objek dapat dipindahkan dan tidak dapat digunakan secara langsung. Terdapat beberapa format untuk berkas objek, dan kode mesin yang sama dapat diatur dalam format berkas objek yang berbeda. Berkas objek dapat berfungsi sebagai pustaka bersama. Berkas objek berisi metadata yang berguna meyambungkan dan memperbaiki kesalahan program. Misalnya, informasi menambahkan referensi silang simbolis antara modul yang berbeda, pemindahan informasi, informasi rilis tumpukan, komentar, simbol program, informasi memperbaiki kesalahan program atau profil.Metadata lainnya mencakup tanggal, waktu, nama, versi, dan informasi pengenal lainnya. Istilah "program objek" ada di tahun 1950-an yaitu pemrograman otomatis untuk program bahasa mesin yang dibuat oleh mesin yang menerjemahkan program sumber yang ditulis oleh pemrogram ke dalam bahasa yang mengikuti notasi aljabar.[1]

Pemrogram komputer membuat kode objek menggunakan kompiler atau assembler. Misalnya, GNU Compiler Collection di Linux membuat file ekstensi yang menggunakan format ELF (Executable Linkable Format). Kompilkasi pada Windows membuat file COFF (The Common Object File Format) dengan ekstensi . OBJ yang menggunakan COFF (The Common Object File Format). Linker menggabungkan kode objek ke satu program atau pustaka yang proses dengan menghubungi pustaka sistem yang dikompilasi sesuai kebutuhan.[2]

Format berkas objek sunting

Setiap jenis komputer memiliki format tersendiri, dengan munculnya sistem mirip Unix dan sistem operasi lainnya, berbagai format seperti ELF(Executable Linkable Format) dan COFF (Executable and Linkable Format) telah ditentukan dan digunakan oleh banyak sistem. Format yang sama dapat digunakan untuk link input, output dan pustaka yang dapat dieksekusi.[3]

File absolut sunting

Mikrokomputer kecil hanya mendukung format objek absolut. Program tersebut tidak dapat ditransfer, untuk menjalankannya ke alamat tertentu harus dirakit atau dikompilasi terlebih dahulu. File tidak berisi informasi atau tautan lainnya. File-file ini dapat dimuat ke memori baca/tulis atau disimpan dalam memori hanya-baca. Misalnya, monitor Motorola 6800 MIKBUG mencakup rutinitas untuk membaca file objek absolut (dalam format SREC) dari pita kertas.[4]

Segmentasi sunting

Format file objek disusun sebagian menjadi data terpisah, format file objek berisi tipe data spesifik yang disebut "segmen", istilah sebelumnya "segmen memori" menjadi bentuk umum manajemen memori. Saat pengunduh mengunduh program ke dalam memori, pengunduh menyimpan beberapa lokasi memori untuk program tersebut. Beberapa sesuai dengan bagian dari file objek dan dikenal dengan nama yang sama. Dalam beberapa kasus, loader (atau linker) melakukan transfer untuk menentukan alamat memori yang sebenarnya. Namun, di banyak program atau arsitektur, relokasi tidak diperlukan karena ditangani oleh unit manajemen memori atau oleh kode yang tidak tergantung lokasi. Dalam beberapa sistem, segmen file objek kemudian dapat disalin (ditukar) ke dalam memori dan dieksekusi tanpa pemrosesan lebih lanjut. Pada sistem ini dapat ditunda, yaitu hanya jika segmen direferensikan saat runtime, misalnya oleh peta memori yang disimpan oleh file objek.[5]

Penghubung dapat menggabungkan segmen dari file objek yang berbeda sesuai dengan aturan definisi segmen. Konvensi untuk segmen yang dibagikan di antara file objek; Misalnya, DOS (disk operating system) memiliki model memori berbeda yang menentukan nama segmen tertentu dan apakah segmen tersebut dapat digabungkan atau tidak.[6]

Referensi sunting

  1. ^ Wrubel, Marshal H (1959). A primer of programming for digital computers. New York: McGraw-Hill. 
  2. ^ "Google Cendekia". scholar.google.com. Diakses tanggal 2022-12-05. 
  3. ^ IBM Corporation (1973). IBM OS Linkage Editor and Loader https://www.bitsavers.org/pdf/ibm/360/os.R21.7_Apr73/GC28-653810_Linkage_Editor_Rel_21_Apr73.pdf[pranala nonaktif permanen]. Retrieved 2022-12-04
  4. ^ Wiles, Mike; Felix, Andre. http://bitsavers.org/components/motoola/6800/Engineering_Note_100_MCM6830L7_MIKBUG_MINBUG_ROM_Jul77.pdf (PDF). Motorola Semiconductor Products, Inc. Retrieved Desember 04, 2022
  5. ^ Mauerer, Wolfgang (2010-03-11). Professional Linux Kernel Architecture (dalam bahasa Inggris). John Wiley & Sons. ISBN 978-1-118-07991-1. 
  6. ^ Irvine, Kip R. (1993). Assembly language for the IBM-PC. Internet Archive. New York : Macmillan ; Toronto : Maxwell Macmillan Canada ; New York : Maxwell Macmillan International. ISBN 978-0-02-359651-3.