Saya membuat arsip SFX> 4GB (arsip self extracting) di 7-Zip, tanpa peringatan. Ketika penerima mencoba mengekstraknya, ia mendapatkan pita kesalahan ini:
Saya menemukan itu karena .exe
lebih besar dari 4GB. Setelah menginstal 7-Zip ia dapat mengekstrak arsip, tetapi saya bertanya-tanya mengapa Windows tidak dapat menjalankan executable seperti itu? Dan apakah mungkin untuk melalui beberapa penggantian?
windows
computer-architecture
Louis Waweru
sumber
sumber
Jawaban:
Windows tidak akan mendukung executable yang berukuran lebih dari 4GB menurut utas ini:
http://sourceforge.net/p/sevenzip/discussion/45798/thread/337fc13e/
Komentator "Igor Pavlov" adalah pencipta dan pemelihara 7-Zip. Sementara komentar itu agak singkat, ada utas lain di forum sourceforge yang mengulangi saran yang sama. Saya tidak percaya menjalankan executable pada OS 64-bit akan membuat perbedaan karena ini mungkin menjadi batasan ukuran file executable windows, yaitu keterbatasan format Windows PE itu sendiri.
Ini artikel tentang Menulis program 64-bit menunjukkan bahwa:
Agaknya Igor telah datang dengan cara menggunakan ± 2GB untuk mencapai 4GB.
sumber
4GiB - 1B = 2^32 - 1 bytes = 4,294,967,295 bytes
. Saya dapat memverifikasinya pada Windows 10 64-bit dengan membuat arsip self-extracting dengan WinRAR dalam bentuk file .EXE. Sebuah executable dengan ukuran4GiB
tidak akan diluncurkan, tetapi4GiB - 1B
berfungsi dengan baik.Memiliki self extracting executable lebih besar dari 4GB berada di sisi yang ekstrim, karena ada batas 4gb pada file yang dapat dieksekusi Windows seperti * .exe, * .dll dll untuk PE32 dan versi 64-bit PE32 + (berlaku untuk 32-bit dan 64 -bit versi).
Kedua, file yang dapat dieksekusi dimuat sepenuhnya ke dalam RAM sebelum dieksekusi dan bahkan jika Anda tidak dibatasi oleh Windows (tetapi Anda), Anda dapat dengan mudah dibatasi oleh perangkat keras, yang merupakan jumlah fisik RAM dalam kasus seperti itu.
sumber