[comp.os.minix] minix manual, exec from init

leo@krabat.marco.de (Matthias Pfaller) (11/12/90)

I have two questions:

1. Will the minix manuals supplied with 1.5 be availiable seperate?
2. Why can I not do an
	exec(/etc/init)
  from the init in the minix-image?

	Matthias Pfaller (leo@marco.de)

archer%segin4.segin.fr@relay.prime.com (Vincent Archer) (11/13/90)

In message of 12 Nov 90 10:58:42 GMT, Matthias Pfaller (leo@marco.de) said :
> 2. Why can I not do an
> 	exec(/etc/init)
>   from the init in the minix-image?

The INIT (pid=1) in the Minix kernel is not just like an ordinary process. It
is put in a special way, with a special binding, in a special location. As an
example, your RAM disk is located just AFTER init's image (on ST, at least),
but BEFORE any other running program. Another example is that CTRL-ALT-F9
kills all processes, but leaves INIT untouched. So exec-ing is strictly
forbidden when you're not a user-level process (try exec in FS :-> ).

That's why Fred van Kempen, in its INIT, forks() and then exec("/etc/init")
A more flexible

_________
 |\___/|	Vincent Archer
 | \ / |	Email: archer%segin4.segin.fr@relay.prime.com
 | /|\ |
 |// \\|
-+-----+-	"Time is running fast..."

evans@syd.dit.CSIRO.AU (Bruce.Evans) (11/16/90)

In article <36227@nigel.ee.udel.edu> archer%segin4.segin.fr@relay.prime.com (Vincent Archer) writes:
>The INIT (pid=1) in the Minix kernel is not just like an ordinary process. It
>is put in a special way, with a special binding, in a special location. As an

It's true that INIT has special properties. However, an exec()ed version of
it will inherit all the relevant ones, with the possible exception of the
location. The location should not matter, since INIT has no trouble forking.
There is probably some small detail being messed up that stops it from
execing.

>but BEFORE any other running program. Another example is that CTRL-ALT-F9
>kills all processes, but leaves INIT untouched. So exec-ing is strictly
>forbidden when you're not a user-level process (try exec in FS :-> ).
>
>That's why Fred van Kempen, in its INIT, forks() and then exec("/etc/init")

You just explained why a fork+exec'ed version won't work so well :-). It
will not have all the necessary special properties such as immunity from
kernel signals.
-- 
Bruce Evans		evans@syd.dit.csiro.au