Emil Ong writes:
> Hi,
>
> I'm interested in helping out with UML if it's needed or wanted. I've
> been looking at the website, the code, and mail list archives and maybe I
> could help out with SMP or the Windows port.
>
> What exactly is the status of SMP in UML now? I noticed that there was a
> patch from back in January, but also some recent mention that SMP is not
> supported/enabled. If SMP isn't in UML now, how should SMP be defined for
> it? Would it be some sort of pthread (or other thread library) thing
> where UML could actually be running on several CPU's or something else?
> Forgive me if these are stupid questions; I just started looking at this
> stuff.
>
> I doubt that I'm really in a good position to do the Windows port -- all I
> have is Windows 98 and from what I gather (I'm not really experienced with
> Windows programming), Windows NT is necessary to catch syscall interrupts
> (?). If I can do anything with Windows 98 that would help, please let me
> know.
I don't know if Win98 would be useable, I got crashes when using
"int $80" with a genuine Win98 (and more normal blue screen reporting
illegal operation when in vmware). I think these are some problems with
Windows port:
- Is interruption rerouting possible without the W98 Device Driver
Kit ? and with ?
- For 98, the equivalent of an mmap function is necessary. Is it
possible? (Cygnus mmap is limited because of limitations of W98/W95).
- On NT (W98?), the lower 64K of a process (0x00000000-0x00010000)
aren't useable. This is an issue if a Linux process or the kernel
expect to mmap something there. I have hacked an NT kernel module
from some book so that one can set IA32 code segments,
so there are work-arounds.
If the problems above are solved, then it might be possible to port
UML. Then the questions are:
- the design might be different, while UML currently doesn't use too
abstract operations (less than A386). It makes difficult to change
the design, and to port to Windows.
Design might be different, for instance if it is easy on NT to
change the memory mapping of one process: then one could use only
two processes: the tracer process and a "traced" process.
"Signal"-based scheduling might also be changed.
- there is also an issue for compiling the Linux kernel on Windows:
can it work ? The easier might well be to make a mini-A386 for Linux
based on UML functions, port the mini-A386 to Windows, and then
run the same UML-miniA386-Linux binary on both Linux and Windows.
-- Cedric
|