Perché Android non può eseguire file eseguibili (.exe/.bat/.sh), a differenza di Linux e Windows?
Grazie per l'A2A.
Eric Davies ha sostanzialmente ragione.
Android è basato su un kernel Linux e come tale gestisce i binari. Anche se lo sviluppo mobile si basa pesantemente su altre tecnologie per lo sviluppo di applicazioni. Tecnologie come Java o Javascript, che mirano principalmente a rendere lo sviluppo più facile ma che funzionano anche a livello utente.
Windows e Linux desktop sono basati su chipset Intel e AMD. Android è basato principalmente sul chipset ARM. Ecco perché usano binari diversi. Perché i set di istruzioni sottostanti sono diversi. Lo stesso è il motivo per cui non si usa una versione desktop di Linux su un Raspberry Pi o viceversa. È letteralmente la stessa cosa. I Raspberry usano la tecnologia degli smartphone! Si possono eseguire eseguibili sui Raspberry? Sì, è possibile!
Quindi, anche Android usa ed esegue gli eseguibili.
Un altro presupposto sbagliato che nessuno sembra correggere è che .bat e .sh NON sono binari o eseguibili. Un eseguibile è un file binario che non si può leggere. Basta provare. Aprite un file .exe in un editor di testo. Ma puoi leggere un file .bat. L'estensione sta letteralmente per "BATCH". Come in attività di BATCHING. O comandi ed eseguibili.
Significa che un file batch non è un eseguibile in sé. Ma di solito contiene comandi che si riferiscono direttamente alla shell o eseguono un eseguibile dopo l'altro. I file batch sono per compiti di BATCHING. Anche i comandi della shell sono eseguiti dalla shell, non dal file .sh stesso.
E vi consiglio di installare semplicemente un'applicazione terminale (come per esempio Termius) su Android e vedere cosa succede. Si può effettivamente usare qualcosa del genere su Android.
E i file .exe sono eseguibili WINDOWS. Quindi, grande sorpresa che non funzionino su Linux.
Android è un sistema operativo creato specificamente per i dispositivi. Non è pensato per darti la libertà di scelta. È pensato per servire uno scopo specifico e per fornire le opzioni necessarie per questo scopo specifico. E su un telefono, non avete bisogno di una shell o di script di shell. Non è questa l'idea.
La ragione per cui voi come utente non potete fare certe cose su Android è che non è questa l'idea. Non sei l'utente root su Android. E non hai bisogno di esserlo, per usarlo per lo scopo previsto. In effetti, per l'uso quotidiano non hai bisogno di essere utente root neanche sul tuo desktop Linux.
Questo è il motivo per cui termini come "jail-breaking" e "rooting" sono in giro o perché le applicazioni devono chiedere i permessi al momento dell'installazione. Rooting significa che si diventa utente root. Jail breaking significa che si esce dalla prigione/contenitore.
Su Android l'utente medio opera all'interno di una "prigione" o contenitore per ragioni di sicurezza e stabilità. L'utente non dovrebbe eseguire compiti amministrativi. Immaginatelo un po' come una macchina virtuale, se volete. Come utente medio, si opera entro i limiti di questo contenitore. Come utente medio, non vi è permesso o supposto di eseguire certi compiti. Ecco perché non potete farlo.
Articoli simili
- Come aprire e leggere file eseguibili da un file .so in Linux
- Ogni volta che apro un qualsiasi file .exe su Windows 7, appare un errore che dice 'Windows non riesce a trovare D:\System volume information.exe?
- Qual è il tipo di file delle applicazioni eseguite sul sistema operativo Linux dal momento che '.APK' è per Android OS e '.exe' è per Windows OS?
- Ci sono sistemi operativi liberi e leggeri che possono eseguire file .exe e che non siano Windows?