So I start UML with the cmdline

./linux rootfstype=hostfs rw mem=1G init=/bin/bash


When the bash shell comes up, I run my prog : ./my_prog


6173 pts/8    00:00:00 linux

6180 pts/8    00:00:00 linux

6181 pts/8    00:00:00 linux

6182 pts/8    00:00:00 linux

6183 pts/8    00:00:00 linux

6188 pts/8    00:00:13 linux



The last item in the list with PID is 6188 is my program.

I can tell because my_prog increments a counter in an infinite loop

And consumes CPU cycles. It shows up on “top” as the dominant process.


My question:

1.       /proc/6188/exe is invalid. Why ??

I mean, it doesn’t point to anything.

Shouldn’t it point to my_prog or something ?


2.       What do the 4 UML processes 6173, 6180, 6181, 6182 do ? (6183 is /bin/bash whos “exe” symlink is also doesn’t point to anything !!)

3.       When a UML process, say my_prog (PID 6188) makes a system call, where is the system call executed – is it within the addr space of 6173 (the UML kernel process) or 6188 (my_prog running in UML ??)