Да, 16-битный код поддерживается в пользовательских процессах в Linux.Системный вызов для этого называется vm86()
(есть страница руководства, но в ней немногое).Естественно, он работает только на платформах x86 (и только 32-разрядных).
Если вам нужен пример, проект ELKS имеет полный инструмент для запуска двоичных файлов ELKS 8086 в Linux, который использует его:1004 *
https://github.com/lkundrak/dev86/tree/master/elksemu
Найдите функцию run_elks()
.Это довольно просто.