From: Kenny McCormack on

About running Linux on Windows (See: old thread: LBW)

Note: The previous thread (Re: "LBW") has disappeared from my server,
hence the new thread.

I will comment on the two types (Of which I am sure there are more) of
setups that I am familiar with:

1) General purpose machine emulators: VMWare, Bochs, etc.
These work, and they work well, but are, obviously pretty
heavyweight solutions.

2) Two light(er)-weight solutions, that I've investigated recently:
a) coLinux. This seems to be a lightweight VMWare, by being
Linux-specific. Works well, but has the usual problems as
other VMWare/et.al type solutions. Note: the root file
system that I downloaded (Debian Etch) was very minimal. No
ssh, no X windows. I was a little surprised by that.
Couldn't see any obvious way to install new stuff (although
I concede I didn't try very hard).
b) LINE. This looked like what I really wanted - something to
run a Linux program (without source code) directly under
Windows as if it were a native app. However, I could not
get it to work (Win XP, SP2). Command line: line test/hello
generated unhandled exception errors and crashed.

Author says he developed it under W2K, gives no indication
if it should work under XP. Anyone else had any better luck
with it?

Note: AFAICT, LINE uses Cygwin to do the "heavy lifting"
(i.e., be the back end that executes the Linux syscalls), in
much the same way that "LBW" uses "Interix". However, this
is not stated anywhere in the documentation, nor is there
any indication about which libraries, etc, one needs to have
installed for it to work. FWIW, I did have the CYGWIN1.DLL
on my path. In any case, there was no indication which
*version* of the CYGWIN DLL one needed to have. I tried a
few different versions, without any luck.

--
(This discussion group is about C, ...)

Wrong. It is only OCCASIONALLY a discussion group
about C; mostly, like most "discussion" groups, it is
off-topic Rorsharch [sic] revelations of the childhood
traumas of the participants...

From: Kenny McCormack on
In article <hsc3uk$v7r$3(a)news.xmission.com>,
Kenny McCormack <gazelle(a)shell.xmission.com> wrote:
>
> About running Linux on Windows (See: old thread: LBW)
>
>Note: The previous thread (Re: "LBW") has disappeared from my server,
>hence the new thread.

I guess I should be more explicit about what the real goal is.

The goal is to do what the LBW guy (David Given) was trying to do - that
is, to be able to take a Linux binary and run it directly, from the CMD
command prompt, on a Windows system. The underlying reason for this not
necessarily a good one - but, as we know, in the real world, shi^H^Htuff
happens. So, really, I don't need any commentary about why this is a
bad idea and why I should just reformat my Windows partition and install
Linux, etc, etc.

LINE uses the following syntax: LINE <LinuxApp> [arg1] [arg2] ...

I.e., you just prefix the normal Linux command line with "line", which
runs LINE.EXE on the Windows machine.

--
> No, I haven't, that's why I'm asking questions. If you won't help me,
> why don't you just go find your lost manhood elsewhere.

CLC in a nutshell.

From: yirgster on
On May 11, 11:45 am, gaze...(a)shell.xmission.com (Kenny McCormack)
wrote:
> In article <hsc3uk$v7...(a)news.xmission.com>,
>
> Kenny McCormack <gaze...(a)shell.xmission.com> wrote:
>
> >    About running Linux on Windows (See: old thread: LBW)
>
> >Note: The previous thread (Re: "LBW") has disappeared from my server,
> >hence the new thread.
>
> I guess I should be more explicit about what the real goal is.
>
> The goal is to do what the LBW guy (David Given) was trying to do - that
> is, to be able to take a Linux binary and run it directly, from the CMD
> command prompt, on a Windows system.  The underlying reason for this not
> necessarily a good one - but, as we know, in the real world, shi^H^Htuff
> happens.  So, really, I don't need any commentary about why this is a
> bad idea and why I should just reformat my Windows partition and install
> Linux, etc, etc.
>
> LINE uses the following syntax: LINE <LinuxApp> [arg1] [arg2] ...
>
> I.e., you just prefix the normal Linux command line with "line", which
> runs LINE.EXE on the Windows machine.
>
> --
>
> > No, I haven't, that's why I'm asking questions. If you won't help me,
> > why don't you just go find your lost manhood elsewhere.
>
> CLC in a nutshell.

As another data point I use sun (I guess it's oracle now) virtual box.
I found it heavy duty on my old dell E510. The performance tab on task
manager shows the system at 50% and it subjectively seems slow. (Any
suggestions welcome here!) Btw, it's the last ubunto 8 release. 9
didn't work for my purpose. Another guy at work had the same problem
with ubunto 9.
From: David Given on
On 11/05/10 18:25, Kenny McCormack wrote:
>About running Linux on Windows (See: old thread: LBW)

Hurrah! Feedback!
[...]
> b) LINE. This looked like what I really wanted - something to
> run a Linux program (without source code) directly under
> Windows as if it were a native app. However, I could not
> get it to work (Win XP, SP2). Command line: line test/hello
> generated unhandled exception errors and crashed.

LBW works like this, but is much more finished. (In fact, LINE not being
useful was the impetus for me to write LBW.) LINE is strictly a
proof-of-concept only, supporting only a very tiny number of syscalls
and is missing huge chunks of functionality such as %gs. It's not
actually useful for anything other than to show that the principle is sound.

(Note that LBW is is not based on LINE --- it uses a different mechanism
for syscall hooking, and a complete reimplementation of the syscall
translation layer. I wrote every line.)

> Author says he developed it under W2K, gives no indication
> if it should work under XP. Anyone else had any better luck
> with it?

Actually I wrote it on XP. It probably won't work on W2K as Interix only
runs on XP and up (AFAIK).

> Note: AFAICT, LINE uses Cygwin to do the "heavy lifting"
> (i.e., be the back end that executes the Linux syscalls), in
> much the same way that "LBW" uses "Interix".

The main reason I chose Interix over Cygwin --- apart from the usual one
of Cygwin being an abomination from the uttermost depths of hell --- is
that Interix has a proper fork implementation. Cygwin is based on the
win32 APIs, which doesn't do fork. As a result, Cygwin's fork has to
cheat: when you ask it to fork the process, it will create a new empty
process, and then does a brute-force copy of the current process' entire
memory map. Lightweight it's not, and it's the primary reason why Cygwin
is so slow at running shell scripts. This basically isn't good enough
for Linux emulation.

Interix is based on the underlying NT kernel APIs, which are much more
flexible than the win32 ones, so it gets a proper, copy-on-write fork
implementation. Of course, there's lots of other weird stuff, but that
can be hacked around, and it fork doesn't work it pretty much can't.

--
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────

│ "There is no Fermi Paradox. Any time space faring aliens make it to
│ Earth, the cows get them." --- Sam Starfall
From: Kenny McCormack on
In article <2c7pb7-2l6.ln1(a)gate.cowlark.com>,
David Given <dg(a)cowlark.com> wrote:
>On 11/05/10 18:25, Kenny McCormack wrote:
>>About running Linux on Windows (See: old thread: LBW)
>
>Hurrah! Feedback!

Yes, indeed.

>> b) LINE. This looked like what I really wanted - something to
>> run a Linux program (without source code) directly under
>> Windows as if it were a native app. However, I could not
>> get it to work (Win XP, SP2). Command line: line test/hello
>> generated unhandled exception errors and crashed.
>
>LBW works like this, but is much more finished. (In fact, LINE not being
>useful was the impetus for me to write LBW.) LINE is strictly a
>proof-of-concept only, supporting only a very tiny number of syscalls
>and is missing huge chunks of functionality such as %gs. It's not
>actually useful for anything other than to show that the principle is sound.

But you would think it would at least work with the bundled demo app
(the hello program). That it doesn't even work with that is strange
indeed.

>> Author says he developed it under W2K, gives no indication
>> if it should work under XP. Anyone else had any better luck
>> with it?
>
>Actually I wrote it on XP. It probably won't work on W2K as Interix only
>runs on XP and up (AFAIK).

I was talking about LINE, not LBW. LINE author says he developed it on
W2K. Note: I have not gotten around to installing/testing LBW yet. I
was hoping that LINE, being older and more stable, would work. But
based on what you've written, I guess that ain't so.

>> Note: AFAICT, LINE uses Cygwin to do the "heavy lifting"
>> (i.e., be the back end that executes the Linux syscalls), in
>> much the same way that "LBW" uses "Interix".
>
>The main reason I chose Interix over Cygwin --- apart from the usual one
>of Cygwin being an abomination from the uttermost depths of hell --- is

Just curious: Why do you hate Cygwin so?

>that Interix has a proper fork implementation. Cygwin is based on the
>win32 APIs, which doesn't do fork. As a result, Cygwin's fork has to
>cheat: when you ask it to fork the process, it will create a new empty
>process, and then does a brute-force copy of the current process' entire
>memory map. Lightweight it's not, and it's the primary reason why Cygwin
>is so slow at running shell scripts. This basically isn't good enough
>for Linux emulation.

I wonder why they do it that way at all. Many authors have noted that
the whole Unix way of doing process creation - the idea of creating two
identical processes when such is wasted in 99% of cases - is a quirk.

>Interix is based on the underlying NT kernel APIs, which are much more
>flexible than the win32 ones, so it gets a proper, copy-on-write fork
>implementation. Of course, there's lots of other weird stuff, but that
>can be hacked around, and it fork doesn't work it pretty much can't.

Interesting. Thanks for sharing.

--
(This discussion group is about C, ...)

Wrong. It is only OCCASIONALLY a discussion group
about C; mostly, like most "discussion" groups, it is
off-topic Rorsharch [sic] revelations of the childhood
traumas of the participants...