How does Linux run a Windows executable file via wine in terms of processes?












0















When running a python script from bash, there is only one process created, which actually runs the python interpreter which then interprets the script.



When running a Windows executable file by wine from bash, how many processes are created and involved?
Is wine run as a server process, and the Windows executable file is run as its client process? (note that my question is not asking how Linux finds wine to run a Windows executable file, which I know is by binfmt_misc. My question is about how Linux run a Windows executable file via wine in terms of processes.)



From ps -f, I see that in the full command line that runs a Windows executable file, the command name is the Windows executable filename, not wine, unlike running a python script, where /usr/bin/python3 is the command name and the script is its argument.
But without wine, a windows executable file can't be run on Linux.
So how shall I understand the "contradiction"? Is it because the python interpreter process modify argv[0] to be the shebang /usr/bin/python3, while the process running the windows executable file doesn't modify argv[0]? (see https://unix.stackexchange.com/a/492314/674)



$ PDFXCview.exe test.pdf &
$ ./sleep.py &

$ ps -f
UID PID PPID C STIME TTY TIME CMD
t 3159 3150 0 22:10 pts/4 00:00:09 /home/t/program_files/PDFXCview.exe test.pdf
t 3991 8511 0 22:39 pts/4 00:00:00 /usr/bin/python3 ./sleep.py
t 4003 8511 0 22:39 pts/4 00:00:00 ps -f
t 8511 2229 0 Jan20 pts/4 00:00:03 bash


Thanks.










share|improve this question

























  • "binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

    – Michael Homer
    9 mins ago


















0















When running a python script from bash, there is only one process created, which actually runs the python interpreter which then interprets the script.



When running a Windows executable file by wine from bash, how many processes are created and involved?
Is wine run as a server process, and the Windows executable file is run as its client process? (note that my question is not asking how Linux finds wine to run a Windows executable file, which I know is by binfmt_misc. My question is about how Linux run a Windows executable file via wine in terms of processes.)



From ps -f, I see that in the full command line that runs a Windows executable file, the command name is the Windows executable filename, not wine, unlike running a python script, where /usr/bin/python3 is the command name and the script is its argument.
But without wine, a windows executable file can't be run on Linux.
So how shall I understand the "contradiction"? Is it because the python interpreter process modify argv[0] to be the shebang /usr/bin/python3, while the process running the windows executable file doesn't modify argv[0]? (see https://unix.stackexchange.com/a/492314/674)



$ PDFXCview.exe test.pdf &
$ ./sleep.py &

$ ps -f
UID PID PPID C STIME TTY TIME CMD
t 3159 3150 0 22:10 pts/4 00:00:09 /home/t/program_files/PDFXCview.exe test.pdf
t 3991 8511 0 22:39 pts/4 00:00:00 /usr/bin/python3 ./sleep.py
t 4003 8511 0 22:39 pts/4 00:00:00 ps -f
t 8511 2229 0 Jan20 pts/4 00:00:03 bash


Thanks.










share|improve this question

























  • "binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

    – Michael Homer
    9 mins ago
















0












0








0








When running a python script from bash, there is only one process created, which actually runs the python interpreter which then interprets the script.



When running a Windows executable file by wine from bash, how many processes are created and involved?
Is wine run as a server process, and the Windows executable file is run as its client process? (note that my question is not asking how Linux finds wine to run a Windows executable file, which I know is by binfmt_misc. My question is about how Linux run a Windows executable file via wine in terms of processes.)



From ps -f, I see that in the full command line that runs a Windows executable file, the command name is the Windows executable filename, not wine, unlike running a python script, where /usr/bin/python3 is the command name and the script is its argument.
But without wine, a windows executable file can't be run on Linux.
So how shall I understand the "contradiction"? Is it because the python interpreter process modify argv[0] to be the shebang /usr/bin/python3, while the process running the windows executable file doesn't modify argv[0]? (see https://unix.stackexchange.com/a/492314/674)



$ PDFXCview.exe test.pdf &
$ ./sleep.py &

$ ps -f
UID PID PPID C STIME TTY TIME CMD
t 3159 3150 0 22:10 pts/4 00:00:09 /home/t/program_files/PDFXCview.exe test.pdf
t 3991 8511 0 22:39 pts/4 00:00:00 /usr/bin/python3 ./sleep.py
t 4003 8511 0 22:39 pts/4 00:00:00 ps -f
t 8511 2229 0 Jan20 pts/4 00:00:03 bash


Thanks.










share|improve this question
















When running a python script from bash, there is only one process created, which actually runs the python interpreter which then interprets the script.



When running a Windows executable file by wine from bash, how many processes are created and involved?
Is wine run as a server process, and the Windows executable file is run as its client process? (note that my question is not asking how Linux finds wine to run a Windows executable file, which I know is by binfmt_misc. My question is about how Linux run a Windows executable file via wine in terms of processes.)



From ps -f, I see that in the full command line that runs a Windows executable file, the command name is the Windows executable filename, not wine, unlike running a python script, where /usr/bin/python3 is the command name and the script is its argument.
But without wine, a windows executable file can't be run on Linux.
So how shall I understand the "contradiction"? Is it because the python interpreter process modify argv[0] to be the shebang /usr/bin/python3, while the process running the windows executable file doesn't modify argv[0]? (see https://unix.stackexchange.com/a/492314/674)



$ PDFXCview.exe test.pdf &
$ ./sleep.py &

$ ps -f
UID PID PPID C STIME TTY TIME CMD
t 3159 3150 0 22:10 pts/4 00:00:09 /home/t/program_files/PDFXCview.exe test.pdf
t 3991 8511 0 22:39 pts/4 00:00:00 /usr/bin/python3 ./sleep.py
t 4003 8511 0 22:39 pts/4 00:00:00 ps -f
t 8511 2229 0 Jan20 pts/4 00:00:03 bash


Thanks.







linux virtual-machine ps wine emulation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 3 mins ago







Tim

















asked 42 mins ago









TimTim

26.5k77254464




26.5k77254464













  • "binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

    – Michael Homer
    9 mins ago





















  • "binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

    – Michael Homer
    9 mins ago



















"binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

– Michael Homer
9 mins ago







"binfmt_misc" may be an interesting term to look up here, but not an answer to your actual question.

– Michael Homer
9 mins ago












0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f498244%2fhow-does-linux-run-a-windows-executable-file-via-wine-in-terms-of-processes%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f498244%2fhow-does-linux-run-a-windows-executable-file-via-wine-in-terms-of-processes%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

CARDNET

Boot-repair Failure: Unable to locate package grub-common:i386

濃尾地震