ish-app / ish

Linux shell for iOS
https://ish.app
Other
16.34k stars 856 forks source link

# Support for another architecture #2287

Open krafcima opened 7 months ago

krafcima commented 7 months ago

Support for another architecture

Would it be possible to add support for these architectures ?

Thanks

saagarjha commented 7 months ago

We could, do you have a specific reason you need all of these architectures? Each one would be significant work and not all of them see much use…

Artim96 commented 7 months ago

Just for understanding, how big would the work be to support aarch64? After all, any iOS device runs on that architecture, shouldn't that be the easiest to support as there wouldn't really be any need for emulation, but only some translation similar to WINE? In theory that should reduce the work needed to get anything running, shouldn't it?

saagarjha commented 7 months ago

It would be equally hard as any other architecture, for reasons mostly outlined here: https://github.com/ish-app/ish/wiki/FAQ#q-why-does-ish-emulate-at-all-cant-it-use-a-jit-compiler-or-virtualization

Artim96 commented 7 months ago

Ok, but why is there even a need for hardware virtualisation for running aarch64 binaries on an aarch64 processor? I mean I can run aarch64 deb applications on Android through Termux, I can even run whole Linux distros through it, and I don't see any virtualisation being mentioned in the docs, other than it being a terminal emulator. So what's the big difference to how those would run on iOS? Sure, it's more based on BSD than Linux, but it's still UNIX running on an aarch64 processor.

krafcima commented 7 months ago

well, I want to install k3s on m2 iPad Pro and iSH currently supports i686 architecture only. If it would be possible than to add just arm64/aarch64 support ?

user18130814200115-2 commented 7 months ago

As far as I understand it, to run an aarch64 binary in an iOs app, it needs to:

  1. Be compiled for iOS, which is lacking certain syscalls
  2. Be stored in Resources/bin/, which is only writable at compile time

In other words: even if someone went through the Herculean effort to cross compile the entire alpine repo for iOS, patching out all the features which rely on missing syscalls, all applications would need to be included in the application with no ability to update them except for through the AppStore.

Artim96 commented 7 months ago

Jesus. Let's hope that's one of the ridiculous limitations that will be removed early next year. Even though it's unlikely.

smjxpro commented 3 months ago

I need support for aarch64 to run dotnet.

dacianpeng commented 1 month ago

I encountered the same issue to installing k3s on an M2 iPad Pro

rothgar commented 1 month ago

I would love arm64 support for software that builds arm binaries but not x86/i686 binaries.