[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: User mode linux for Mac OS X with qemu
From: |
Ivan Levashew |
Subject: |
[Qemu-devel] Re: User mode linux for Mac OS X with qemu |
Date: |
Sun, 07 Jun 2009 10:19:26 +0700 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ru; rv:1.8.1.21) Gecko/20090302 Thunderbird/2.0.0.21 ThunderBrowse/3.2.4 Mnenhy/0.7.6.666 |
Paul Brook wrote:
Doing cross emulation is in theory possible, however in practice it gets
extremely messy for anything other than the trivial case and it's unclear
whether it's worth the effort, or whether qemu is the appropriate place to do
this (c.f. WINE).
One application of it is using Linux/Q instead of wine and java.
Another application (my dream) is deterministic build system. Community
yell loudly when OpenOffice fails to render 1:1 document from Microsoft
Office.
However, it is often unnoticed that it's insanely hard to do 1:1 build
of any randomly picked "open source" build.
Pain starts from the very beginning: configure. It requires a prefix as
part of its operation. Strange enough that it doesn't ask for command
line parameters or program launch date or whatever else parameter
unknown prior to the moment of execution.
Compilers also like putting filenames (including pathes) into binaries.
Autoconf, m4, pkg-config, lots of tools that make build result dependent
on host configuration.
Every factor commits to denying the fourth freedom, freedom to improve.
Anybody willing to fix the problem feels like an elephant in a crockery
shop. One can never be sure that he hasn't forgot some essential
compiler flag if he can't verify it. Ability to build 1:1 is the
ultimate verify. If I can build original program 1:1, I can be pretty
sure that my fix will be the only change I've maid to the compiled program.
It is often the case when I know how to fix something but not doing it
because building something is never gonna be a short journey.
A virtual machine (kinda Cygwin) might cure some of the diseases. Cygwin
is a good example here. There are no symlinks on PreVista Windows, but
Cygwin provides an illusion that they exist.
A virtual machine of my dream have a tweakable namespace (kinda Plan 9)
because it aids very much in creating a deterministic build environment.
Full-blown VM is
a) way too big gun for precise shooting
b) doesn't provide a tweakable namespace
Nix package manager is deterministic, but it takes some time to port
something into Nix. Nix puts every compiled package into dedicated
directory. Every directory needs to be mentioned in include,lib,path
lists. I think that tweaked namespace is a simpler solution.
--
If you want to get to the top, you have to start at the bottom