Selama bertahun-tahun (lama setelah pengenalan Windows XP) saya menjalankan koleksi PC desktop Windows 9x lama. Pada dasarnya, mesin-mesin ini terlalu rendah spesifikasi dalam perangkat kerasnya untuk diupgrade ke XP (dan menghabiskan banyak uang), jadi saya terus menggunakannya, dengan perangkat lunak asli mereka: berbagai instalasi Windows 98SE dan Windows ME (semua berjalan sebagai versi 32-bit).
Dalam acara tersebut, saya tidak pernah menggunakan XP. Mesin Win9x sangat andal sehingga mereka masih bekerja lama setelah XP dan Vista datang dan pergi. Tapi saya akhirnya harus bermigrasi, selama periode waktu tertentu, ke Windows 7 64-bit.
Saya tidak akan melakukan sesuatu yang benar-benar bodoh, seperti bertanya mengapa program ini-dan-itu tidak berjalan pada Win7 64bit! :-)
Tanpa terkecuali, semua perangkat lunak yang saya jalankan di 32bit Windows 98SE bekerja secara out-of-the-box (bisa dikatakan) pada arsitektur NT 64bit Win7. Saat ini, saya masih menggunakan beragam perangkat lunak ini, terutama program pengolah kata dan editor HTML yang saya gunakan secara rutin.
Apakah ada alasan teknis mengapa saya tidak pernah mengalami kesulitan yang saya harapkan dalam menjalankan program Windows 9x pada 64bit NT? Saya telah diberitahu tentang pengaturan 'kompatibilitas' pada Win7, tetapi tidak pernah menjalankan program dalam "mode kompatibilitas".
Saya menyadari Windows 7 menyimpan perangkat lunak 32-bit dan 64-bit di lokasi yang berbeda, dan menangani mereka secara berbeda: tetapi saya berharap ini terkait dengan program 32bit dan 64bit yang ditulis untuk Windows 7.
Saya terkejut bahwa program Windows 98 32bit tampaknya sepenuhnya kompatibel dengan program Windows XP / Vista / 7 32bit, dan ingin memahami mengapa demikian. Apakah benar-benar tidak ada perbedaan di antara mereka?
Juga, banyak dari program Windows 9x lama adalah portable. Saya sudah terbiasa meletakkannya di stik USB, atau di desktop Windows 7, dan hanya menjalankannya. Saya tidak mengalami masalah. Meskipun mereka tidak dijalankan dari folder Program Files. Sekali lagi, saya ingin memahami mengapa O / S tidak keberatan dengan ini, dari perspektif teknis?
Apakah saya melakukan sesuatu yang tidak aman? Windows 7 O / S tampaknya sangat stabil: tetapi saya ingin tahu apakah saya memintanya untuk melakukan hal-hal yang seharusnya tidak saya lakukan.
sumber
Anda mengajukan banyak pertanyaan di sini, beberapa agak rumit, tetapi jawaban dasarnya adalah "Microsoft berupaya keras untuk menjaga kompatibilitas ke belakang". Jujur, pertanyaan yang lebih baik mungkin adalah "mengapa itu tidak berhasil?", Karena Win9x dan NT (termasuk Win7) menggunakan Win32 API dan set instruksi x86 (ekstensi AMD 64-bit ke set instruksi x86 Intel kompatibel dengan backward; prosesor "x64" yang berjalan dalam mode 64-bit juga dapat menjalankan program 32-bit).
Alasan yang paling mungkin mengapa hal itu tidak berhasil adalah karena kontrol akses. Win9x sama sekali tidak mendukung kontrol akses apa pun; program apa pun dapat melakukan apa pun yang diinginkannya. Digunakan jahat, ini membuat penulisan malware sangat mudah. Digunakan secara tidak berbahaya tetapi dengan malas, ini berarti banyak pengembang menulis program mereka sehingga program menulis data ke folder instal mereka. Ini adalah ide yang buruk karena sejumlah alasan berbeda, yang paling tidak adalah keamanan; pada OS "asli", lokasi default tempat file diinstal tidak memungkinkan non-administrator menulis ke file, dan Anda seharusnya dijalankan sebagai non-administrator kecuali ketika menginstal / memperbarui perangkat lunak.
Tentu saja, seluruh "tulis ke direktori tempat Anda menjalankan" ini adalah hal yang mudah (saya memang mengatakan para devs sedang malas ...) dan ya, itu juga membuat perangkat lunak "portabel" dalam arti bahwa Anda dapat meletakkannya pada flashdrive (yang biasanya juga sama sekali tidak memiliki kontrol akses, karena mereka menggunakan varian sistem file FAT dan FAT tidak mendukung izin file). Menjalankan perangkat lunak dengan cara ini kurang aman daripada menginstalnya ke area yang dibatasi akses dan menjalankannya dari sana (sebagai pengguna non-admin), tetapi mungkin boleh saja selama Anda tidak membagikan komputer dengan orang lain.
Adapun mengapa OS tidak keberatan ... mengapa Anda mengharapkannya?
Program Files
bukan folder khusus dengan cara apa pun, itu hanya tempat di mana, secara konvensional, Anda menginstal program. (Ini sebenarnya sebuah konvensi benar-benar bodoh, karena beberapa istirahat software jika Anda menginstal ke lokasi dengan ruang di jalan, tapi mungkin MS ingin memastikan pengembang tidak menjadi cukup yang malas ...) Satu-satunya hal yang khusus tentangProgram Files
ini bahwa pada sistem 64-bit, ketika proses 32-bit meminta folder "Program Files" mereka sebenarnya diarahkan keProgram Files (x86)
folder tersebut. Di luar itu ... OS memungkinkan Anda menjalankan program dari mana saja yang dapat diakses oleh Anda, pengguna. Beberapa program sengaja memasang di profil pengguna Anda, atau di folder mereka sendiri di root drive (C:\Python27
adalah folder umum untuk dilihat pada mesin pengembang). Program-program itu bekerja dengan baik.sumber
%APPDATA%\ProgramName\Filename
daripada hanya untukFilename
! Kemalasan murni.