From: Cedric A. <ad...@in...> - 2000-02-28 07:49:43
|
Jeff Dike writes: > It's at http://user-mode-linux.sourceforge.net/tour.php and it contains > write-ups of the system call mechanism and the network driver. > > I'd appreciate you looking at it and letting me know what you think > about it. > > I'd also appreciate any and all contributions to it. If you're > interested in > grokking a hunk of the code and writing it up, let me know, and > I'll fill you > in on the php and the hacked-up lxr in the background. The text is quite helpful. It is exactly what I tried to figure out. The problem with UML is that the tracing thread is started in a clone() call, and is difficult to debug: do you have a special gdb with clone() support ? Or do you simply attach the process later ? I tried to run the input thread in a clone() [instead of signals()] and to "mov <signals() info>,%ecx ; mov <new tracing thread stack>,%eax; mov %eax,%esp ; push %ecx ; call <signals>". But for some reason the process crashes much _before_ reaching this modification (because argv/argc become invalid, because of the remaps???) What stays also unclear is whether the linux kernel is actually run as the "tracing thread", and how memory manipulations are performed, when a process calls "brk()" for instance. I guess gdb the tracing thread is necessary for figuring out. Cheers, -- Cedric |