К сожалению, большинство программ заботиться о ядре как непосредственно, так и нет.
Различные операционные системы имеют существенные различия даже в самых распространенных функциях (epoll против inotify против kqueue, клон против vfork против rfork ...).
Даже если программа придерживается минимальных функций, которые выглядят одинаково для пользовательского пространства (например, stdio, базовый доступ к файлам), ей (или, скорее, libc) все равно нужно знать, как вызывать эти функции в ядре, что в Linux совершенно отличается (простые старые системные вызовы) и OS X (смесь системных вызовов и Mach IPC).
И это при условии, что вы можете заставить ядро начать выполнение программы в первую очередь - ядро OS X не понимает формат ELF, только Mach-O (плюс все виды устаревших Mac OS).
Существуют различные эмуляторы - например, FreeBSD имеет эмуляцию Linux, а Wine запускает программы Windows в Unixes, и, похоже, существует эмулятор OS X для Linux - но я не смог найти ни одного, который бы запускал программы Linux в OS X.
Вот описание того, как основные функции Linux эмулируются во FreeBSD.