Я был всегда озабочен этим так, я сделал:
(sleep 5; rm /path/to/shell/script) &
exit 0
Поочередно можно объединить в цепочку к временному сценарию:
echo >/tmp/rmme rm /path/to/shell/script
. /tmp/rmme
"Linux", строго говоря, является ядром операционной системы, используемым и Android и подобной Unix операционной системой, упомянутой в разговорной речи как Linux, и иногда более официально как GNU/Linux, который мы знаем через дистрибутивы, такие как человечность и debian. Linux, ядро операционной системы, записан в C и должен быть скомпилирован в собственный машинный код.
Я думаю, что jordanm сделал хорошее задание ответа на вопрос № 2 относительно различий в пространстве пользователя между GNU/Linux и Android. Вот стек Android:
Linux (native machine code, instantiated by bootloader)
Dalvik (native machine code, instantiated by linux)
Application (java bytecode instantiated by dalvik)
Дальвик является "виртуальной машиной", какое время выполнения интерпретирует байт-код, и байт-код предварительно компилируется от Java. Другими словами, это - приложение пространства пользователя, которое работает все время как сервер, и это обрабатывает запросы для обработки байт-кода. Приложения Android записаны в Java, предварительно скомпилировали в байт-код и работали в виртуальной машине Дальвика.
Это очень похоже на то, что делают интерпретаторы во время выполнения, такие как оболочка, Python, жемчуг, рубин и JavaScript в том смысле, что это означает, что код, написанный для тех интерпретаторов, будет работать, если интерпретатор сделает. У них все нет той же стратегии относительно этапов между кодом и выполнением, но это - другая тема.
Те интерпретаторы все выполняются ядром операционной системы, которое также выполняет компьютер. И ядро и интерпретатор существуют на диске как машинный код; ядро является начальной загрузкой, загруженной в поршень, и впредь фундаментальный поток команд, пробегающий процессор, является ядром; ядро может также передать инструкции потоком от других артефактов машинного кода, которые оно загружает в поршень (такой как виртуальная машина Дальвика, или init демон, или оболочка или X-сервер), и это - объединенная логика системы, которая чередуется, инструкции в процессоре передают потоком таким образом, что ядро поддерживает свою роль и не может быть перемещено. Это - привратник всех аппаратных средств, таким образом, много дорог возвращается к нему, и это управляет часами.
Мобильность для приложений пространства пользователя упрощена для андроида/Дальвика, как это упрощено для жемчуга или Python. Это компилируется из кода как форма оптимизации для удовлетворения потребностей любой определенной архитектуры. Интерпретатор - то, что, как ядро, должен быть настроен и скомпилирован архитектурно-зависимым способом.
Теперь вот стек GNU/Linux:
Linux (native machine code, instantiated by bootloader)
Application (native machine code, instantiated by linux)
Приложения здесь включают оболочку и init демона. Сценарии оболочки не являются приложениями в этом смысле, поскольку они интерпретируются оболочкой, и ни один не Java, Python, жемчуг, и т.д. программы, но приложения, запущенные от оболочки или init демоном, - то, если они существуют на диске как собственный машинный код, потому что init и оболочка на самом деле просят, чтобы ядро сделало это для них - они не могут сделать этого сами.
Все те приложения - оболочка, init демон, X-сервер, Ваш веб-браузер, главным образом записанный в C или C++ - должны быть индивидуально скомпилированы в архитектурно-зависимую форму.
Надежда, которая проливает некоторый свет. Относительно Linux на ARM существует два основных потока, один для armv6 системы команд, используемой на Raspberry Pi - они специализированы - и еще один общий пар для armv7, которому я верю, включает наиболее мобильные устройства. Мягкая фетровая шляпа, debian, человечность, и т.д. дистрибутивы ARM являются последним, тогда как pidora, Raspbian, и т.д. являются первым.
Я рассмотрю второй вопрос, так как находится больше по теме с сайтом. Приложения для Android выполняют виртуальную машину процесса, известную как Dalvik
. Это очень похоже на JVM Java. Вся эта мысль позади этого является "записью однажды, выполненный где угодно". Код Java не компилируется в собственный машинный код, он компилируется в байт-код, который может быть выполнен VM. С языком, таким как C, код компилируется в машинный код, который варьируется в зависимости от архитектуры.