Dapatkah saya mengambil kernel Linux dan menggunakannya dengan, katakanlah, FreeBSD dan sebaliknya (kernel FreeBSD di, katakanlah, Debian)? Apakah ada jawaban universal? Apa batasannya? Apa hambatannya?
Jawaban yang Diterima:
Tidak, kernel dari implementasi yang berbeda dari sistem operasi gaya Unix tidak dapat dipertukarkan, terutama karena mereka semua menyajikan antarmuka yang berbeda ke seluruh sistem (ruang pengguna) — panggilan sistem mereka (termasuk ioctl
spesifik), berbagai sistem file virtual yang mereka gunakan…
Apa yang dapat dipertukarkan sampai batas tertentu, pada tingkat sumber, adalah kombinasi kernel dan pustaka C, atau lebih tepatnya, API tingkat pengguna yang diekspos oleh kernel dan pustaka (pada dasarnya, tampilan pada lapisan yang dijelaskan oleh POSIX, tanpa mempertimbangkan apakah itu adalah sebenarnya POSIX). Contohnya termasuk Debian GNU/kFreeBSD, yang membangun sistem Debian di atas kernel FreeBSD, dan Debian GNU/Hurd, yang membangun sistem Debian di atas Hurd.
Ini tidak cukup pada tingkat pertukaran kernel, tetapi ada upaya untuk menstandarisasi antarmuka biner aplikasi umum, untuk memungkinkan biner digunakan pada berbagai sistem tanpa perlu kompilasi ulang. Salah satu contohnya adalah Intel Binary Compatibility Standard, yang memungkinkan binari yang sesuai dengannya untuk berjalan pada sistem Unix yang mengimplementasikannya, termasuk versi Linux yang lebih lama dengan lapisan iBCS 2. Saya menggunakan ini di akhir 90-an untuk menjalankan WordPerfect di Linux.