GNU/Linux >> Belajar Linux >  >> Linux

Kompatibilitas biner antara Mac OS X dan Linux

Anda melupakan satu hal penting, yaitu bahwa program Anda harus berinteraksi dengan sistem operasi untuk melakukan sesuatu yang menarik.

Konvensi berbeda antara Linux dan OS X sehingga biner yang sama tidak dapat berjalan apa adanya tanpa pada dasarnya memiliki potongan kode yang bergantung pada sistem operasi untuk dapat berinteraksi dengannya. Banyak dari hal ini disediakan melalui pustaka, yang kemudian harus Anda tautkan, dan itu berarti program Anda harus dapat ditautkan, dan penautan juga berbeda antara kedua sistem.

Dan begitu terus dan terus. Apa yang di permukaan terdengar seperti melakukan hal yang sama sangat berbeda dalam detail sebenarnya.


Ini bisa dilakukan jika seseorang ingin menghabiskan cukup waktu untuk mewujudkannya. Proyek Darling sedang mencoba ini, meskipun pada tulisan ini, itu dalam keadaan yang sangat primitif.

Ini telah berhasil dilakukan sebelumnya di platform lain:

  • Solaris dan UnixWare menyertakan program pembantu yang disebut lxrun yang berfungsi seperti sudo :Anda meneruskan nama dan parameter yang dapat dieksekusi ke helper dan itu memperbaiki semuanya secara dinamis sehingga yang dapat dieksekusi dapat berbicara dengan OS. Situs resmi (turun, tautan arsip) mengatakan itu bitrotted.

  • Kernel Linux pernah memiliki fitur yang disebut iBCS yang melakukan kebalikannya, kecuali bahwa itu tidak memerlukan bantuan karena kernel mengenali binari "asing" secara langsung. Itu menjadi rusak selama seri pengembangan kernel 2.3, kemungkinan besar karena pertempuran kecil server Unix pada dasarnya berakhir setelah 2.4 keluar.

  • Kernel FreeBSD dapat dikonfigurasi untuk mengenali binari Linux dan menjalankannya seolah-olah asli. Fitur ini tampaknya lebih baik daripada dua fitur di atas.

    OpenBSD dan NetBSD memiliki fitur serupa.

OS X memiliki banyak FreeBSD di dalamnya, jadi mem-porting dukungan Linux-nya mungkin mudah.


Saya cukup setuju dengan semua orang, tetapi saya ingin menambahkan bahwa, meskipun ini akan memakan banyak waktu dan upaya, itu tidak akan sebanyak yang dibutuhkan untuk mengembangkan Wine.

Sebagian besar kesulitan dalam pengembangan Wine adalah mereka mem-porting format biner dari sistem operasi sumber tertutup dan BANYAK panggilan sistem tidak terdokumentasi. Mereka pada dasarnya harus merekayasa balik sistem operasi.

Jika seseorang melakukan ini dari satu OS terbuka ke OS terbuka lainnya, mereka kemungkinan dapat menyelesaikannya dalam 1/10 waktu, karena lapisan kompatibilitas dapat dengan mudah disalin/ditempelkan dari OS lain jika panggilan sistem asli yang setara tidak ada. Tentu saja, dalam kebanyakan kasus di dunia POSIX, akan ada panggilan asli yang tersedia.

Proyek catatan lainnya adalah ReactOS, di mana mereka pada dasarnya membuat versi Windows yang kompatibel dengan biner sepenuhnya... tidak perlu Wine.


Linux
  1. Linux – Perbedaan Antara Ruang Pengguna dan Ruang Kernel?

  2. Cara mengatur koneksi Wifi-Direct antara Android dan Linux

  3. git memaksa menyegarkan indeks setelah beralih antara windows dan linux

  1. Pelajari Perbedaan Antara Perintah "su" dan "su -" di Linux

  2. Sistem file mana yang digunakan di antara OSX dan Linux

  3. Apa perbedaan antara panggilan Perpustakaan dan panggilan Sistem di Linux?

  1. Cara memeriksa Versi OS dan Linux

  2. Kompatibilitas biner distribusi Linux

  3. Apa perbedaan antara env dan set (di Mac OS X atau Linux)?