Por que o Android não pode executar arquivos executáveis (.exe/.bat/.sh), ao contrário do Linux e do Windows?
Observações para o A2A.
Eric Davies está basicamente certo.
Android é baseado em um kernel Linux e como tal lida de acordo com os binários. Apesar do desenvolvimento móvel depender muito de outra tecnologia para o desenvolvimento de aplicações. Tecnologia como Java ou Javascript, que visa principalmente facilitar o desenvolvimento, mas também roda no nível do usuário.
Windows e desktop Linux são baseados em chipsets Intel e AMD. O Android é baseado principalmente no chipset ARM. É por isso que eles usam binários diferentes. Porque os conjuntos de instruções subjacentes são diferentes. A mesma é a razão pela qual você não usa uma versão desktop do Linux em um Raspberry Pi ou vice versa. É literalmente a mesma coisa. O Raspberries usa tecnologia de smartphone! Você pode rodar executáveis no Raspberries? Sim, você pode!
Então, o Android também usa e executa executáveis.
Outra suposição errada que ninguém parece corrigir é, que .bat e .sh NÃO são binários ou executáveis. Um executável é um arquivo binário que você não consegue ler. Basta tentar. Abra um arquivo .exe em um editor de texto. Mas você pode ler um arquivo .bat. A extensão literalmente significa "BATCH" (BATCH). Como em tarefas BATCHING. Ou comandos e executáveis.
Meaning, um arquivo .bat não é um executável em si. Mas normalmente é mantido de acordo com comandos que ou se referem directamente à shell ou executam um executável a seguir ao outro. Arquivos em lote são para tarefas de BATCHING. Mesmo comandos shell são executados pelo shell, não pelo próprio arquivo .sh.
E eu recomendo apenas instalar um aplicativo terminal (como por exemplo Termius) no Android e ver o que acontece. Você pode realmente usar algo assim no Android.
E os arquivos .exe são executáveis WINDOWS. Então, grande surpresa eles não rodam em Linux.
Android é um sistema operacional criado especificamente para dispositivos de acordo. Não é para lhe dar liberdade de acordo. Destina-se a servir um propósito específico e a fornecer as opções de acordo com este propósito específico. E em um telefone, você não precisa de um shell ou shell scripts. Não é essa a ideia.
A razão pela qual você como utilizador não pode fazer certas coisas no Android é, porque não é essa a ideia. Você não é o usuário root no Android. E você não precisa ser, para usá-lo para o propósito de acordo. Na verdade, para uso diário você não precisa ser usuário root no seu desktop Linux ou.
Por isso é que termos como "jail-breaking" e "rooting" estão por aí ou porque os aplicativos precisam pedir permissões na instalação. Rootar significa que você se torna um usuário root. Quebrar a cadeia significa, você quebra da cadeia/contentor.
No Android o usuário médio opera dentro de uma "cadeia" ou contêiner por razões de segurança e estabilidade. O usuário não é suposto executar tarefas administrativas. Imagine que é como uma máquina virtual, se você quiser. Como um usuário comum, você opera dentro dos limites deste contêiner. Como um usuário comum, você não tem permissão ou não deve executar certas tarefas. É por isso que você não pode fazer isso.
Artigos semelhantes
- Como abrir e ler arquivos executáveis a partir de um arquivo .so no Linux
- Sempre que eu abro qualquer arquivo .exe no Windows 7 , um erro aparece dizendo 'Windows não consegue encontrar o D:\System volume information.exe?
- Como mover arquivos do Windows 10 para outro drive (arquivos progam e arquivos de programas x86 especificamente)
- Existe algum sistema operacional portátil que possa executar arquivos EXE?