I just started taking a shot at getting UML running on Win2000. I have
noticed a few mails earlier on this topic and would greatly appreciate
any advice, suggestions etc.
Also I would like to hear from other who have tried this, how far they
Broadly I can think of two approaches.
1. Build uml-linux binary for target windows (maybe using cygwin?)
To load all other binaries we could use LINE approach. Not sure if this
would work, since my attempt to build kernel on windows/cygwin was
disheartening to say the least! (I am not even sure if this approach
makes sense. I am giving up on this approach for now)
2. More promising approach is to load the uml-linux kernel binary under
LINE and load all other binaries under this environment. This seems
promising and hence I am continuing with this approach for now.
So far I managed to surpass a few hurdles. Initially UML refused to load
up since the binary is built to be loaded at 0xA0000000 and Windows lets
the applications us only the lower 2GB of the address space. Changing this
to 0x08000000 made it possible to load UML.
Next was the temporary memory mapped files. Cygwin doesnt like unlinking
files with open handles. This needs fixing.
Next I faced problems doing the remap_data() of the text and data segment.
As far as I can gather this code is mmapping another segment, copying
data, and then it unmaps the original segment and remaps it. It then
unmaps the new segment. The kernel kept crashing after the unmaps.
Could someone please tell me what the purpose of thi switcheroo is ?
I naively stubbed these out and now I reach the point in linux_main()
where setup_memory() gets called. Looks like uml_physmem is set to
0x800000 and Windows doesnt like to mmap fixed pages at this address.
I am debugging this right now.
It would be great if others can point out if I am headed in the right
direction and any other information related to this.
Thanks in advance,