Apa itu file COM 64-bit?

3

Saya melihat beberapa file COM di folder Windows \ System32 64-bit saya:

chcp.com
diskcomp.com
diskcopy.com
format.com
mode.com
more.com
tree.com

Adakah yang tahu:

  • Mengapa ini memiliki ekstensi COM? (Yaitu apakah mereka benar-benar file COM?)
  • Apakah format file mereka didokumentasikan? (Apakah mereka sama dengan file PE EXE 64-bit kebetulan?)
Mehrdad
sumber

Jawaban:

5

File COM adalah peninggalan dari hari-hari MS-DOS. Mereka memiliki makna saat itu, namun sekarang mereka sudah usang. Saat ini file COM sebenarnya EXEs, tetapi simpan ekstensi COM untuk kompatibilitas dengan DOS dan program Windows yang lebih lama.

Keltari
sumber
+1 ... Sementara saya tahu apa .Com di mana, saya tidak tahu bahwa itu hanya file .exe sekarang (Harus menguji sendiri dengan mengubah nama .com menjadi .exe ... dan saya juga mengambil salinan kemudian mengganti nama notepad.exe ke notepad.com!) ... Itu keren! Saya berharap saya bisa lebih banyak memberi Anda dukungan.
William Hilsum
+1 menyampaikan apa yang dikatakan @William. :) Ngomong-ngomong (ini agak tidak terkait) Anda kebetulan tahu bagaimana cara menggaungkan byte acak menggunakan file batch pada Windows 64-bit? Sepertinya trik COM lama tidak berfungsi lagi ...
Mehrdad
1
Menjaga ekstensi .COM saat .EXE tidak masuk akal. File .COM adalah (adalah) binari biasa sementara .EXE memiliki header dan informasi tambahan (seperti semua format yang dapat dieksekusi modern). Jadi MS-DOS tidak akan pernah bisa mengeksekusi file .COM baru itu.
m0skit0
3
ekstensi .COM yang disimpan jadi jika program yang lama memanggil command.com, itu masih akan berfungsi.
Keltari
Dan untuk menambah apa yang dikatakan Keltari, m0skit0: MS-DOS cannnot mengeksekusi .exefile baik , jadi apakah MS-DOS dapat mengeksekusi hal-hal yang benar-benar tidak ada hubungannya dengan nama file. MS-DOS tidak dapat menjalankan semua program Win32 ini . Anda menggunakan sistem operasi yang bukan DOS dan belum pernah ada. Selain itu, gagasan Anda tentang bagaimana hal-hal ini dibagi tidak bahkan untuk DOS sekitar dua puluh tahun yang lalu, apalagi sekarang.
JdeBP
1

Menguji executable menggunakan alat File GNU mengungkapkan bahwa mereka sebenarnya hanya executable 32-bit.

file.exe C: \ Windows \ System32 \ format.com
C: \ Windows \ System32 \ format.com; PE32 dapat dieksekusi untuk MS Windows (konsol) Intel 80386 32-bit

Mokubai
sumber
Yap, dan sebenarnya tidak perlu untuk menguji mereka karena semua yang ada di System32 harus 32-bit ... :-)
Brian Knoblauch
1
Untuk instalasi Windows 64bit, semua yang ada di System32 adalah 64bit, barang 32bit ada di SYSWOW64. Namun program 32bit yang berjalan melihat konten SYSWOW64 di bawah System32 karena bagian Redirector Sistem File dari WOW64 (Windows pada Windows 64bit).
Brian
1

Ekstensi nama file tidak ada hubungannya dengan format file gambar program yang dapat dieksekusi, dan bahkan tidak melakukannya pada zaman MS-DOS.

Jangan bingung tentang ekstensi nama file. Ada format file gambar program "COM" , yang merupakan format gambar program yang cukup mendasar. Itu digantikan oleh format file gambar program "MZ" kembali pada 1980-an (yang pada gilirannya telah digantikan oleh format file gambar program "PE" dan beberapa lainnya). Tetapi tidak ada hubungannya dengan ekstensi nama file.

File gambar program untuk MS-DOS / PC-DOS / DR-DOS dapat memiliki ekstensi .COMatau ekstensi .EXE, tetapi format file gambar yang sebenarnya tidak ditentukan oleh ini. Ini berlaku untuk Windows NT 6.1 64-bit sekarang juga untuk MS-DOS versi 3.3 pada 1980-an. Ekstensi nama file sekarang tidak menentukan, dan ( secara efektif , mengingat seberapa awal dalam sejarah MS-DOS ini berubah) tidak pernah didikte, format file gambar program untuk executable.

Saya menyebutkan DR-DOS. Dalam DR-DOS versi 6 (jika memori berfungsi dengan benar) praktis semua file gambar program, bahkan yang bernama .COM, sebenarnya executable format "MZ", dan yang dikompres pada saat itu. (Pada saat versi DR-DOS dirilis, di MS-DOS beberapa file gambar program masih menggunakan format "COM" yang sebenarnya.) Ini persis sama dengan apa yang Anda lihat di sini. Nama-nama MODE.COM, FORMAT.COM, MORE.COM, dan sebagainya, adalah nama-nama yang program selalu memiliki, dipertahankan untuk kompatibilitas. Tetapi format gambar program bukan format "COM". Ini format "PE".

Ini seharusnya tidak datang sebagai kejutan atau kejutan. Lagipula, program yang nama filenya diakhiri dengan ".EXE" - seperti ATTRIB.EXEdan COMP.EXE- bukan yang dapat dieksekusi format "MZ" seperti dulu di MS-DOS, tetapi (juga) executable format "PE"; dan situasi ini telah terjadi pada Windows NT untuk apa yang mendekati dua dekade. Setelah semua, hanya format "PE" (dari yang disebutkan) secara native dieksekusi pada Windows NT. Format "MZ" dan "COM" hanya dapat dijalankan dengan mesin Virtual DOS. Semua program ini, pada Windows NT, telah menjadi program Win32, menggunakan format "PE" untuk waktu yang lama.

JdeBP
sumber