From: Cedric A. <ced...@in...> - 2000-10-17 08:10:11
|
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 |