Objective-C компилируется в собственный код с помощью GCC или LLVM [*]. Вы можете скомпилировать программы ObjC для Linux (универсальный GCC с радостью поддержит ObjC, хотя он использует библиотеку времени выполнения, отличную от любой из библиотек Apple). Для кросс-платформенного API, похожего на Cocoa (то есть производного от Cocoa), который будет успешно работать в Linux и позволит вам портировать некоторый код между OS X и Linux, посмотрите GNUstep: http://www.gnustep.org
[*] Фактически, LLVM внутренне компилирует Objective-C во внутреннее представление битового кода, а затем в код для целевой машины, поэтому, возможно, ответ «оба»…