<div class="gmail_quote">On Wed, Feb 25, 2009 at 7:37 PM, Ben Klein <span dir="ltr">&lt;<a href="mailto:shacklein@gmail.com">shacklein@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="Wj3C7c">2009/2/26 King InuYasha &lt;<a href="mailto:ngompa13@gmail.com">ngompa13@gmail.com</a>&gt;:<br>
&gt; On Wed, Feb 25, 2009 at 6:50 PM, Ben Klein &lt;<a href="mailto:shacklein@gmail.com">shacklein@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2009/2/26 King InuYasha &lt;<a href="mailto:ngompa13@gmail.com">ngompa13@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; Now that Nautilus has the desktop file requiring execute bit, I have a<br>
&gt;&gt; &gt; question for all of you to consider. Do JAR files require the +x bit to<br>
&gt;&gt; &gt; load<br>
&gt;&gt; &gt; them, or are they treated like associated files and run through the<br>
&gt;&gt; &gt; interpreter? Really, Windows apps on Linux is basically the same<br>
&gt;&gt; &gt; situation<br>
&gt;&gt; &gt; as Java applications run through the bytecode interpreter.<br>
&gt;&gt;<br>
&gt;&gt; You just answered your own question. Java is interpreted and has to be<br>
&gt;&gt; passed through a compatible byte-code interpreter. Wine does not<br>
&gt;&gt; interpret PE files in this fashion, and cannot because it is not and<br>
&gt;&gt; does not have a CPU emulator. So a JAR file should run if passed as an<br>
&gt;&gt; argument to the interpreter, just like what happens with the scripting<br>
&gt;&gt; languages that open the file for reading instead of trying to fork and<br>
&gt;&gt; execute.<br>
&gt;&gt;<br>
&gt;<br>
&gt; But, doesn&#39;t Wine translate Win32 calls into its equivalent calls for Linux?<br>
&gt; GDI to X11, D3D to OpenGL, etc.?<br>
&gt; That sounds like an interpreter to me. It may not necessarily a bytecode<br>
&gt; interpreter, but it still interprets the Win32 API and translates it to the<br>
&gt; appropriate UNIX APIs. Isn&#39;t this what makes Wine not an emulator?<br>
<br>
</div></div>It&#39;s a compatibility layer. It doesn&#39;t actually interpret individual<br>
instructions. As described earlier, Wine sets up an environment<br>
suitable for the Windows apps to run in (which is primarily<br>
*implementations* of win32 calls that &quot;translate&quot; in one way or<br>
another into *nix/X11 calls) and then just lets it do its thing.<br>
Unlike in Java, scripting languages etc, Wine does not read in the<br>
application one instruction at a time and do a mapping/translation<br>
into executable functionality. The assembly components (such as<br>
mathematical operations) run as if it was a native application.<br>
</blockquote></div><br><div>So, in theory, Wine could simply run itself on top of Linux (basically a ReactOS desktop on top of Linux instead of the NT kernel) and work just like Windows because it operates in a native app style? Granted, that probably would require quite a bit of tweaking to get it done, and the devs probably wouldn&#39;t want to do it, but because of its design, that would be possible?</div>