4 ms·
Windows Portable Applications... copy them into a folder, and run them. No installation required. Because there isn't a stable system interface table in Linux
by mikewarot 3y ago
Windows Portable Applications... copy them into a folder, and run them. No installation required.
Because there isn't a stable system interface table in Linux (i.e. INT 21, AH=9 prints a $ delimited string in MS-DOS, and has since the 1980s), you can't just run an executable.
The closest you're likely to get is Justine's APE - Actually Portable Executable[1] to get something you can distribute and just run.
[1] https://justine.lol/ape.html https://justine.lol/ape.html
- turtlebits 3y agoThat's pretty much how most Mac apps are installed.
- archargelod 3y agoI have a gripe with Portable Windows Apps or more precisely with a way they are distributed. Web is filled with scams, malware, phishing or just insecure web pages.Even when a source code of a program is public and download page is genuine, how could I ever trust the binary? I can't, but I can verify the source code (or take a risk that someone already examined it) and trust transparent CI chain. So even if it comes from the respected developer I won't run a notavirus.exe, unless it was compiled automatically in a public docker container. P.S. Another option for more portable linux executables is musl C library + appimage.
- self_awareness 3y agoThere is AppImage[1], which packs a lot of stuff into a SquashFS filesystem, appends it to the executable, so everything is in one file. [1] https://appimage.org https://appimage.org
- pjc50 3y ago> you can't just run an executable. Yes you can! You can run unmodified Win32 executables from the late 90s on present-day Windows systems and they work just fine. Windows has a great reputation for continuity. There is a stable system interface, it's user32.dll and friends. You might experience a bit more pain relating to the Visual Studio runtime (vcredist) or use of COM components, but those are work-aroundable. APE is something rather different: it's portable across different operating systems with different executable formats! Quite the technological achievement.
- tomcam 3y agoGP meant Linux doesn’t just let you run an executable and was making the point that MS-DOS does
- colanderman 3y ago> there isn't a stable system interface table in Linux What do you mean by this? Linux is pretty good about maintaining a stable syscall ABI. Whereas my understanding is that Windows and BSDs define the compatibility boundary at the C library level.