this post was submitted on 22 Feb 2024
70 points (81.2% liked)
Linux
48186 readers
1327 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Sure, when linux loads are process it follows a standard procedure to see how to run the file. If the file has ELF markers it runs the process via the ELF loader. If the file has #! as the first then it uses a different process to run that script. (I doubt a.out executable format is supported anymore, but that at least used to be an option). There is no reason you cannot hack this process to detect windows executable and then use wine to load/run the application. I'm not sure why nobody has done this, but the basic things have been supported in linux for decades.
You don't need to hack anything, you can use Binfmt_misc to tell the kernel how to load windows binaries
is that why when i compile c programs the default name is a.out?
Sorta, the file might not be in the a.out format anymore but the name has stuck around.
No shit, DOS box works well enough on Linux it was ported to Windows for older programs, just do the same with power shell.
You can use the magic bytes to detect it. Pretty sure windows executables have MZ as their magic bytes
https://en.m.wikipedia.org/wiki/List_of_file_signatures
Are you un-ironically suggesting that this person should write a kernel plugin to support pe formated binaries? Especially considering that wine-binfmt is a thing?
i last looked into this about 20 years ago. I concluded I could make it work but I don't use wine enough to bother.