Berkas COM

Muhamad Andreyansyah

Berkas COM adalah format file biner murni yang dapat dijalankan dari Windows atau dieksekusi DOS. Berkas COM adalah salah satu nama domain tingkat atas yang dapat digunakan saat memilih nama domain. Ini biasanya mewakili entitas yang memiliki nama domain sebagai organisasi komersial. Berbeda dengan format berkas EXE, berkas COM relatif lebih kecil dan lebih cepat dibanding berkas EXE. Berbeda dengan file EXE yang sudah familiar bagi kebanyakan orang, yang memiliki header 32 bit di awal. Salah satu tujuan header adalah untuk menyimpan informasi relokasi untuk berpindah antar segmen 64 bit. Berkas COM tidak memiliki informasi ini, sehingga ukuran programnya dibatasi hingga 64 kilobit.[1]

Dalam sistem operasi VAX milik Digital Equipment Corporation (DEC) tahun 1970-an, berkas COM digunakan sebagai ekstensi nama untuk file teks yang berisi perintah untuk dikeluarkan ke sistem operasi (mirip dengan kumpulan file). Dengan diperkenalkannya CP/M (Sistem Operasi Komputer Mikro), jenis file yang umumnya dikaitkan dengan ekstensi COM diubah menjadi file yang dapat dieksekusi. Konvensi ini kemudian dibawa ke DOS. Bahkan dengan diperkenalkannya format berkas EXE yang lebih umum, berkas COM sih tersedia dan umum digunakan di DOS.[2]

Domain .COM adalah salah satu dari banyak ekstensi domain. Ekstensi domain .COM memiliki komersial untuk pebisnis. Domain ini merupakan domain pertama dan terpopuler yang pernah ada. Domain .COM bersifat internasional, jadi siapa saja bisa menjadi miliknya. Ekstensi domain ini  dikenal dan dipercaya oleh orang-orang di seluruh dunia, sehingga ruang domain Anda dapat diakses dari mana saja di dunia, sehingga memungkinkan Anda menarik lebih banyak pengunjung situs web. Selain itu, ekstensi domain ini murah.[3]

Format berkas COM

sunting

Format file COM adalah format biner yang dapat dieksekusi  yang digunakan oleh Microsoft Windows atau MS-DOS. Struktur ini hanyalah sekumpulan instruksi, hal ini tidak memiliki header dan tidak berisi metadata standar. Seluruh data dan kode yang disimpan hanya dalam satu segmen, dengan ukuran biner maksimal 64 kilobit. Format berkas ini tidak akan berubah saat dijalankan ulang. Oleh karena itu, sistem operasi memuatnya pada alamat yang telah ditentukan sebelumnya.[4]

Meskipun format file sama untuk DOS dan CP/M, berkas COM tidak kompatibel antara kedua sistem operasi tersebut. Berkas DOS COM berisi instruksi x86 dan kemungkinan panggilan sistem DOS, dan file CP/M COM berisi instruksi 8080 dan panggilan sistem CP/M. Berkas COM di DOS mengatur semua register segmen x86 ke nilai yang sama dan mengarahkan register SP (stack pointer) ke offset kata terakhir yang tersedia dalam segmen 64 kilobit pertama (biasanya FFFEh), atau yang dimuat setel ke memori maksimum  yang tersedia ukuran dalam blok program. Untuk program dan tumpukan minimal 256 bit, mana saja yang lebih kecil, tumpukan dimulai pada awal segmen memori yang sesuai dan bekerja ke bawah dari sana.[4]

Arsitektur CPU Intel 8080 hanya memungkinkan 65.536 bit memori untuk dialamatkan (rentang alamat 0000h hingga FFFFh). Dalam CP/M, 256 bit pertama memori ini dari 0000h hingga 00FFh dicadangkan untuk penggunaan sistem di halaman 0 dan harus dimuat tepat hingga 0100h agar setiap program pengguna  dapat dijalankan. File COM sangat cocok dengan model ini. Sebelum diperkenalkannya MP/M dan  CP/M secara bersamaan, tidak ada cara untuk menjalankan beberapa program atau perintah secara bersamaan. Program yang dimuat pada pukul 01:00 dieksekusi dan tidak ada lagi yang dieksekusi.

Contoh berkas COM

sunting

Nama domain (termasuk nama domain, zona yang di-hosting, dan data) terdiri dari serangkaian label yang dipisahkan oleh titik. Setiap label dapat berukuran hingga 63 bit. Panjang total nama domain tidak boleh melebihi 255 bit, termasuk titik.[5] Nama file boleh diakhiri dengan .COM, tetapi tidak boleh dalam format sederhana seperti yang ditunjukkan di atas. Hal ini ditunjukkan dengan angka ajaib di awal file. Misalnya, file DR DOS 6.0, COMMAND.COM sebenarnya adalah file DOS yang dapat dieksekusi, karena dua bit pertama adalah inisial MZ (4Dh 5Ah) Mark Zbikowski.

Saat Anda menjalankan file COM, instruksi dibaca dari byte pertama dan dieksekusi secara berurutan hingga instruksi terakhir tercapai. Berikut kode ASM: [4]

[BITS 16]           ;Set code generation to 16 bit mode
[ORG 0x0100]        ;Set code start address to 0100h

[SEGMEN .text]      ;Main code segment
    mov ah, 9 ; DOS print string function
    mov dx, hello
    int 21h
    ;Exit to DOS
    mov ah, 4ch
    int 21h
[SEGMENT .data]     ;Initialised data SEGMENT
hello:  db   'Hello, .COM progammer!',13,10,'$'

Meskipun format ini masih dapat berjalan di banyak platform modern berbasis Windows NT, format ini berjalan di NT Virtual DOS Machine, subsistem peniruan identitas MS-DOS  yang tidak ada pada versi 64-bit. File COM juga dapat dijalankan pada  platform  yang didukung oleh emulator DOS seperti DOSBox. Windows NT adalah sistem operasi Microsoft Windows berdasarkan kernel NT. NT Kernel merupakan singkatan dari Network atau jaringan dalam bahasa Indonesia.

Penggunaan ekstensi .com yang berbahaya

sunting

Beberapa penulis virus komputer mengakui bahwa pengguna komputer modern saat ini kurang memiliki pengetahuan tentang ekstensi file .com dan format biner terkait, dan mungkin familiar dengan nama domain Internet .com. Email telah dikirim dengan nama lampiran seperti "www.example.com". Pengguna Microsoft Windows yang secara tidak sengaja mengklik lampiran akan berasumsi bahwa dia sedang melihat situs web yang ditentukan, namun malah menjalankan file perintah biner tertentu yang terlampir untuk mengungkapkan identitas pembuatnya. Hal ini memberikan izin penuh pada komputer untuk melakukan apa pun yang diinginkan. Format file COM itu sendiri tidak berbahaya. Namun, ini termasuk mengeksploitasi benturan nama acak antara file perintah .com dan situs web .com komersial.

Referensi

sunting
  1. ^ "What is a .COM program?". www.mitsco.freeservers.com. Diakses tanggal 2024-02-20. 
  2. ^ "COM file". Wikipedia (dalam bahasa Inggris). 2024-01-06. 
  3. ^ Kominfo (2022-02-01). "Diskominfo". Diskominfo (dalam bahasa Inggris). Diakses tanggal 2024-02-21. 
  4. ^ a b c Umar, Muhammad (2021-06-29). "COM - Format File Perintah DOS". docs.fileformat.com. Diakses tanggal 2024-02-20. 
  5. ^ "Format nama domain DNS - Amazon Route 53". docs.aws.amazon.com. Diakses tanggal 2024-02-20.