2022/10/21

Kenapa OS/2 sulit di-virtualisasi ?

Tulisan ini merupakan versi terjemahan dan ringkasan sederhana dalam bahasa Indonesia dari posting dalam situs "OS/2 Museum" berjudul Why OS/2 is Hard to Virtualize? oleh Michal Necasek.
Silahkan baca posting asli untuk informasi lebih lengkap.

Dengan banyak alasan, OS/2 ternyata sangat sulit di-virtualisasi, sangat sulit dibandingkan dengan DOS, Windows 3.x, Windows NT, Windows 95, atau banyak varian UNIX. Kebanyakan ini disebabkan oleh arsitektur dan sejarah OS/2.

Mulai dari, OS/2 versi lama (sebelum Warp 4) sangat sulit di install bahkan pada komputer fisik dengan prosesor Pentium III. Terdapat banyak kode program looping yang tidak dapat berjalan baik pada prosesor dengan clock cepat yang mengakibatkan error division overflows. Masalah ini terjadi pada hampir sebagian besar versi OS/2 1.x. Penggunaan disk IDE berukuran besar juga cenderung menambah masalah, walaupun tidak sepenuhnya kesalahan pada OS/2; spesifikasi interface IDE yang sering berubah pada masa itu juga menyumbang terjadinya masalah ini.

Lalu terdapat beberapa masalah yang timbul dari spesifikasi umum virtualisasi. IBM OS/2 1.0 dan 1.1 menggunakan metode khusus prosesor 286 untuk berpindah dari protected ke real mode. Metode ini me-reset prosesor dan tergantung pada kode POST BIOS khusus untuk dapat meneruskan operasi dengan cara melakukan triple faulting pada prosesor. Tidak satupun baik VMware, Virtual PC, atau VirtualBox yang bisa melakukan hal ini selain mendapatkan fatal error. Menariknya versi OS/2 dari Microsoft dapat mendeteksi prosesor 386 dan menggunakan metode lain yang jauh lebih efisien ketimbang memodifikasi control register CR0.

OS/2 versi 1.x juga memiliki driver floppy (disket) yang tidak umum yaitu mendeteksi kapasitas disket berdasarkan kecepatan transfer data dari kontroler disket. Disket ukuran 3½” 720 KB menggunakan kecepatan transfer data 250 KB/sec sementara disket ukuran 1.44 MB menggunakan 500 KB/sec. Produk virtualisasi biasanya tidak bermasalah dan mengijinkan OS/2 untuk membaca dari disket virtual 1.44 MB, tapi mengkonfigurasi kontroler disket dengan kecepatan transfer data 250 KB/sec. Ini mengacaukan OS/2 yang menganggap sedang membaca disket ukuran 720 KB, dan bisa ditebak mengakibatkan banyak pesan kesalahan dan tidak mampu melakukan boot dari disket. Sekali lagi, hal ini yang membuat OS/2 1.x sulit diinstall ke dalam VM.

Pada OS/2 2.x, keadaan sedikit berbeda. Driver disket sudah mulai sedikit mengganggu, switching dari protected ke real mode selalu menggunakan instruksi spesifik prosesor 386, tapi secara umum situasinya tidak menjadi lebih baik. OS/2 2.x masih bermasalah dengan timing dan bisa secara acak hang, seringkali saat di awal proses boot. Dikarenakan cara OS/2 2.x mengkombinasikan penggunaan protected mode 16-bit dan 32-bit (yaitu dengan metode emulasi), emulasi software yang ada memiliki bug tidak terlihat yang menghalangi fungsi OS/2.

Masalah lain adalah penanganan exception pada FPU yang masih menggunakan gaya DOS. Pada versi non-SMP, OS/2 menggunakan metode 8086 untuk menghasilkan sinyal FERR# dan meng-konversinya ke IRQ 13, dibanding menggunakan exception #MF seperti yang dilakukan OS modern saat ini.

Hanya versi terakhir OS/2 (Convenience Packs, MCP dan ACP 1 dan 2) yang didukung oleh beberapa produk hypervisor (Virtual PC dan VirtualBox). Saat pengembangan, IBM membersihkan masalah timing loop yang menyebabkan error pada prosesor yang dianggap terlalu cepat, dan menambahkan dukungan terhadap hardware yang diemulasikan oleh produk-produk hypervisor.

Khususnya untuk hypervisor yang menggunakan teknologi VT-x dan AMD-V, OS/2 MCP dan ACP dapat berjalan dengan baik. Virtual PC dan VirtualBox bahkan menambahkan software tambahan khusus (guest additions) untuk OS/2, sehingga OS/2 dapat digunakan dalam lingkungan virtual dengan lebih nyaman. Sekali lagi ini berkaitan dengan pertanyaan seberapa jumlah uang dan kerja keras yang harus dikeluarkan untuk menyelesaikan masalah: hampir semua dapat diselesaikan asalkan ada permintaan pasar yang sesuai dan cukup.

Tidak ada komentar:

Posting Komentar