Mohu vzít linuxové jádro a používat ho, řekněme, s FreeBSD a naopak (kernel FreeBSD řekněme v Debianu)? Existuje univerzální odpověď? Jaká jsou omezení? Jaké jsou překážky?
Přijatá odpověď:
Ne, jádra z různých implementací operačních systémů unixového stylu nejsou zaměnitelná, zejména proto, že všechna představují různá rozhraní ke zbytku systému (uživatelský prostor) – jejich systémová volání (včetně ioctl
specifika), různé virtuální systémy souborů, které používají…
Co je na úrovni zdroje do určité míry zaměnitelné, je kombinace jádra a knihovny C, nebo spíše rozhraní API na uživatelské úrovni, které jádro a knihovny odhalují (v podstatě pohled na vrstvu popsaný POSIXem, bez s ohledem na to, zda je ve skutečnosti POSIX). Příklady tohoto zahrnují Debian GNU/kFreeBSD, který staví systém Debian nad jádrem FreeBSD, a Debian GNU/Hurd, který staví systém Debian nad Hurd.
To není úplně na úrovni zaměnitelnosti jádra, ale byly pokusy standardizovat společné binární rozhraní aplikací, aby bylo možné používat binární soubory na různých systémech bez nutnosti rekompilace. Jedním z příkladů je Intel Binary Compatibility Standard, který umožňuje binárním souborům, které mu vyhovují, běžet na jakémkoli unixovém systému, který jej implementuje, včetně starších verzí Linuxu s vrstvou iBCS 2. Použil jsem to na konci 90. let ke spuštění WordPerfect na Linuxu.