Hampir tidak ada yang pernah mendengar tentang sistem operasi DOS-777. Dan ini benar-benar ada. Benar, pada kenyataannya itu adalah MS DOS yang paling umum dengan perubahan kecil, dirancang untuk berjalan di satu komputer dan menjalankan satu program. Klon ini muncul dalam beberapa hal karena masalah kompatibilitas ke belakang. Tapi hal pertama yang pertama.
Sebuah program baru dan penting tiba-tiba berperilaku dengan cara yang sangat misterius. Ini membuat pembuatnya sangat marah sehingga diputuskan untuk membongkar MS DOS, untuk memahami nuansa kerjanya dan menemukan penyebab kesalahan aneh. Sekarang, bahkan dalam gairah, hampir tidak ada yang berani membongkar, misalnya, Windows-10 dan memahami semua fiturnya. Tapi kemudian, di awal tahun 90-an, ketika sistem operasi terdiri dari tiga file yang relatif kecil, pembongkaran dan analisisnya memakan waktu dua minggu.
Banyak fitur kecil ditemukan yang sepertinya tidak menarik bagi siapa pun sekarang. Tetapi pada masa itu, menurut hasil analisis ini, bahkan dimungkinkan untuk mengisi nama yang hilang dari bidang tabel MS DOS internal, yang dalam salah satu buku seri Perpustakaan Programmer Sistem yang diedit oleh Frolovs (penerbit Dialog MEPhI) ditetapkan sebagai "dicadangkan".
Saya ulangi, tidak mungkin semua kehalusan ini menarik bagi siapa pun sekarang, tetapi tiga nuansa yang ditemukan, dengan satu atau lain cara terkait dengan masalah kompatibilitas ke belakang, mungkin layak disebutkan.
Nuansa dulu. Program "TSR" paling awal, misalnya, "SideKick", mencari alamat flag internal OS "busy" langsung dari konteks perintah di dalam MS DOS. Dalam versi berikutnya, konteks ini berubah, dan fungsi terdokumentasi untuk meminta sebuah bendera muncul, tetapi beberapa perintah "lama" secara khusus dipindahkan ke segmen data (mereka tidak mendapatkan kendali), sehingga program kuno masih menemukan konteks yang tepat. Sebuah analogi muncul di benak Anda dengan peluncuran kapal baru yang dinamai sesuai dengan pendahulunya yang legendaris. Kemudian, menurut tradisi, lambung kapal lama dipotong lempengan dan dipasang sebagai plakat peringatan pada kapal baru tersebut. Jadi, semua versi MS DOS menggunakan sebagian kecil dari versi pertama tahun 1981.
Nuansa selanjutnya lebih membuat penasaran. Ternyata sebelum menjalankan file EXE apa pun, MS DOS memeriksa konteks tertentu di lokasi tertentu di antara perintahnya. Jika ada, OS sedikit "mendorong" perintah tetangga dan menambahkan perintah PUSH CX dan POP CX.
LOOP, , - MicroSoft, , . : « MS DOS !» . , MicroSoft , , . , CX. MS DOS POP CX, , MicroSoft . ( , ) , .
, , , , , . . , , , , , . 8086 . : .. (16 20) .. (16 20). , , , ( ). . 19- ( ) 64 .
1986 32- , 30 ( 32, ). , «» .
«». , - . , , 20- , ! : .
, , , «640 » . «expanded», - 64- «» , MicroSoft MS DOS, , , 640 .
MS DOS . DOS , , , . DOS … , ? ? ? . , DOS , (.. PSP) . ( DOS) . , .
: DOS, , , .
DOS, , . , DOS , . DOS-777 , .
, , . MMX, FPU. : , , FPU. MMX, .
-, : , MMX, ( ) , , Windows. , - MMX . - MMX FPU . - - Windows , MMX, .
Dengan demikian, masalah kompatibilitas ke belakang secara obyektif ada, dan terkadang perlu untuk menyelesaikannya. Tetapi jika dalam dua contoh pertama yang diberikan solusinya cerdik, dan yang paling penting, disembunyikan untuk pengguna yang tidak membutuhkan kompatibilitas ini, maka dalam dua contoh terakhir upaya kompatibilitas (menurut pendapat saya, tidak masuk akal!) Membawa solusi perangkat keras yang megah dan menimbulkan masalah. Selain itu, kompatibilitas jauh lebih baik dan lebih mudah untuk dipastikan dengan mode virtual 8086 yang dirancang khusus.
Masalah utama dengan kompatibilitas mundur adalah bahwa setiap tahun semakin sedikit pengguna yang membutuhkannya. Dan setiap orang harus memperhitungkannya.