From: Werner Almesberger <werner@al...> - 2003-04-08 19:08:26
Almost one year has passed, and umlsim is now slowly maturing
(okay, to be honest, I only started working on it again a few
The project's home page is at http://umlsim.sourceforge.net/
The kernel side hasn't changed all that much since last year,
but I've written a script-driven control system that manages
simulation time, and that also acts like a debugger with
respect to the UML processes.
My main focus is on the network side, but it should be
equally useful for other areas.
There's still more work to do, e.g. performance is very poor,
network device behaviour isn't very realistic, and - last but
not least - some scripts should hide the low-level details
Anyway, the kernel-side changes look reasonably stable, and
I'd like to know how to proceed with them. Would they be
suitable for integration into UML soon, e.g. in 2.5 ? Or, if
not, later ?
The umlsim-specific changes are in:
In addition, this patch also needs the reliable markers from
(the latter patch also provides the config option). If I can go
ahead with the umlsim changes, I'll see if I can get the
reliable markers into the mainstream kernel. In case there's
strong opposition, I can always extract the part relevant for
The basic concept of the kernel code is quite simple: it
intercepts all functions that do things related to time. When
the kernel is idle, it reports this to the control system,
which may then advance the simulation time. Along with an idle
report, the kernel also indicates if it did any work since the
last time it was idle (i.e. if it may have kicked off some new
activity), and when the next timer will expire.
The communication between kernel and controller is through the
function umlsim_idle. The controller simply puts a breakpoint
there, reads/writes the function's arguments and local
variables, and eventually resumes the process.
/ Werner Almesberger, Buenos Aires, Argentina werner@... /