I know that Android is based on the linux kernel. Since an OS is kernel + programs, I understand that it should be possible to execute binaries in the Android system. Is this how terminal emulators work? If so, how exactly they're able to do it? I imagine that it's from the Java-C interface, right? Because inside the java machine there's no kernel, but when we're in C, we can do system calls and so. I presume that's how it's done. Could somebody tell me what's really going?