1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
|
Tue Jul 16 11:55:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (process_signal): Set WUNTRACED in call to waitpid.
Sun Jul 7 21:18:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (init_stdarrays): Don't use unsafe MOVE_SEND in call to
interruptible proc_setexecdata.
(open_console): Likewise, for file_set_translator.
Wed Jul 3 14:46:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* Makefile (init): Add libports (because libfshelp.so requires it,
lose lose lose).
* init.c (process_signal) [case SIGCHLD]: Correctly place `break'
*outside* of for loop.
Mon Jul 1 18:07:56 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (process_signal): On SIGCHLD, keep reaping children until
we get an error; tolerate all errors silently.
Mon Jun 24 16:29:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (kill_multi_user): Kill user tasks before doing
notify_shutdown.
Fri Jun 21 16:17:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
* init.c (open_console): Pass correct length of argument vector
when setting active translators.
<maptime.h>: New include.
(open_console): Print error messages for /dev/console failures.
Reduce the scope of some variables.
Thu Jun 20 14:51:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (mapped_time): New variable.
(launch_multi_user): Initialize mapped_time.
* init.c (_PATH_RUNCOM): Move to /libexec/rc.
Wed Jun 19 14:49:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (run_for_real): Doc fix.
(startup_terminal): Deal properly if one of the run_for_real's
fails.
(launch_single_user): If the shell can't be started, crash the
system.
(process_rc_script): Return non-zero if run_for_real fails.
(process_signal) [SIGCHLD]: If process_rc_script fails, go back to
single-user.
(S_startup_essential_task): Likewise.
(init_ttys): Return non-zero if we fail.
(startup_terminal): Return non-zero if we don't actually start
anything.
(startup_ttys): Return non-zero if we fail.
(launch_multi_user): If init_ttys fails, go back to single. If we
go multi, actually set system_state accordingly. If startup_ttys
fails, go back to single.
(init_ttys, reread_ttys): Test return value of setttyent
correctly.
Mon Jun 17 14:05:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* Makefile (libutil-libsubst): Define (as -lutil); and link
against -lutil.
* init.c: Include <ttyent.h>, <argz.h>, and <utmp.h>.
(add_terminal, init_ttys, free_ttys, startup_terminal,
startup_ttys, find_line, reread_ttys, restart_terminal): New functions.
(launch_multi_user): Use new functions to do things right.
(session_pid): Delete variable.
(kill_multi_user): Call free_ttys.
(process_signal) [SIGHUP]: Call reread_ttys.
[SIGCHLD/MULTI]: Call restart_terminal.
* init.c (run_for_real): New arg `setsid'; only do setsid if it's
set. All callers changed. Return the pid of the new program,
not the task port. All callers changed.
* Makefile (dir): Now init.
* init.c: Include "mung_msg_S.h" instead of "msg_S.h".
(S_msg_sig_post, S_msg_sig_post_untraced): Include SIGCODE parm.
* Makefile (mung_msg_S.h): New rule.
Mon Jun 17 00:17:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
* init.c (run_for_real, open_console, process_signal, reboot_mach,
run_for_real, run, reboot_system): Use error instead of fprintf.
(notify_shutdown): Always emit terminating newline.
Fri Jun 14 11:07:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c: Include <paths.h>, <error.h>, <sys/wait.h>, and
<hurd/msg_reply.h>.
(S_startup_essential_task): When all core servers have
showed up, call launch_single_user only if RB_SINGLE; otherwise
call process_rc_script. Call init_stdarrays here.
(open_console): New function; massaged guts taken from
launch_single_user. Be more verbose if we do something unusual.
(launch_single_user): Call open_console. Don't call
init_stdarrays here.
(system_state, default_ints): New variables.
(main): Initialize SYSTEM_STATE and DEFAULT_INTS.
(run_for_real): Pass default_ints.
(run): Likewise.
(S_startup_essential_task): Delete var INITDONE; use SYSTEM_STATE
instead.
(launch_single_user): Set SYSTEM_STATE to SINGLE.
(process_rc_script): New function.
(launch_multi_user): New function.
(kill_everyone): New function.
(kill_multi_user): New function.
(do_fastboot, rc_pid, session_pid): New variables.
(process_signal): New function; guts from S_msg_sig_post_untraced.
Handle state transitions here when programs exit. Process
SIGTERM, and SIGHUP appropriately.
(_PATH_RUNCOM, _PATH_LOGIN): New macros.
(S_msg_sig_post_untraced): Only validate signal here; use
process_signal to do the work, but reply first.
(S_msg_sig_post): Likewise.
(notify_shutdown): New function.
(reboot_system): Use notify_shutdown.
Wed Jun 12 16:01:17 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (S_startup_request_notification): Fill NT->name properly.
Mon May 27 11:33:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
* init.c (launch_single_user): Open TERM RDWR.
Use openport to get FD from TERM.
Print errno on assertion failure for FD.
Fri May 24 12:29:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (reboot_mach): Insert a brief pause before actually
rebooting the kernel so that the user has a chance to see any
messages that may be displayed.
Tue May 14 11:26:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (S_msg_get_exec_flags, S_msg_set_all_exec_flags,
S_msg_set_some_exec_flags, S_msg_clear_some_exec_flags): Delete
functions.
(S_msg_describe_ports): New function.
* init.c (reboot_system): Print prettier messages for shutdown
notifications.
Fri May 10 09:25:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c: <hurd/startup_notify.h> -> "startup_notify_U.h".
* Makefile (OBJS): Add startup_notifyUser.o.
Thu May 9 19:03:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (struct ntfy_task): New member `name'.
(S_startup_request_notification): Expect and record name.
(S_msg_startup_dosync): Delete function.
Include <hurd/startup_notify.h>.
(reboot_system): Use new startup_dosync interface.
* init.c (init_stdarrays): Use new authentication interface.
Mon May 6 14:25:02 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (init_version): Upgrade to 0.0.
Mon Apr 29 16:49:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (reboot_system): Not quite yet, though.
Sun Apr 28 19:15:30 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* init.c (reboot_system): Use 1 minute timeout on reply to
msg_startup_dosync.
Wed Apr 17 17:06:30 1996 Miles Bader <miles@gnu.ai.mit.edu>
* init.c (launch_single_user): Set an active, not passive,
translator on /tmp/console, so it works with / read-only.
* Makefile (init): Depend on libfshelp.
Mon Mar 25 16:55:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* Makefile (init): Add explicit dependency so that
libshouldbeinlibc is included.
* init.c: Include <wire.h>.
(main): Delete declarations of _etext _edata, and __data_start.
(main): Use new wire_task_self function instead of doing it ourselves.
Tue Dec 19 18:29:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (launch_core_servers, run_for_real): Call proc_mark_exec
on child proc ports.
Tue Dec 5 15:22:25 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* init.c (launch_single_user): Change initialization of TERMINAL
to match new term driver arg syntax. Start terminal as ordinary
passive translator instead of special weird kludge. Deleted
variables foobiebletchcount, foobiebletch, and termtask.
Sun Nov 5 02:03:33 1995 Miles Bader <miles@gnu.ai.mit.edu>
* init.c (reboot_system): Add flags, noise, & noise_len params to
proc_getprocinfo. Deallocate NOISE if necessary.
(S_msg_report_wait): New function.
Tue Oct 24 16:49:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c: Undo last change of 9Oct95.
Mon Oct 9 04:29:39 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c: Pass dealloc args in file_exec calls.
Thu Jul 6 15:34:23 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
* init.c (S_msg_sig_post, S_msg_sig_post_untraced): Reverse order
of these definitions.
* init.c: Include <hurd/msg_server.h>.
(reboot_mach): Insert extra parens around assignment inside while
test.
(launch_core_servers): Remove assignment from inside if test.
* Makefile: Removed dependencies that are now automatically
generated.
Thu Feb 9 17:18:21 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (S_msg_sig_post_untraced): Omit obnoxious "random child
died" messages.
Sat Jan 28 15:00:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c: Include "msg_S.h". Prepend `msg_' to msg.defs server
functions. Add stubs for new msg.defs functions.
Thu Jan 19 01:59:30 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c: Prepend `msg_' to names of msg.defs RPCs.
Mon Nov 28 15:00:42 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (run_for_real): Print error msg if file_exec fails.
(shell_pid): New variable.
(demuxer): Also try msg_server.
(launch_single_user): Open terminal O_RDWR and dup to 0, 1, 2.
Set shell_pid after starting shell.
(S_sig_post): New function; grok SIGCHLD and restart shell if
shell_pid dies.
* Makefile (OBJS): Add msgServer.o.
(init.o): Depend on msg_S.h.
Fri Nov 11 14:06:43 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
* init.c (fakeboot): New variable.
(STANDALONE): Deleted macro.
(main): Set FAKEBOOT if -f was passed.
(reboot_mach): Use FAKEBOOT flag instead of STANDALONE macro.
(launch_core_servers): Likewise.
(reboot_system): Likewise. Also don't exit here; let
reboot_mach exit.
Tue Nov 1 04:13:49 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (main): Use &_start for start of text to wire.
(main): Use assert_perror in place of `assert (!err)'.
(launch_single_user): Use _PATH_CONSOLE and _PATH_BSHELL instead
of hardcoded strings.
Check for error from io_stat on console, print message.
Add #if 0'd code to prompt for shell name.
Tue Sep 6 13:09:40 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
* init.c (launch_single_user): Don't run device or pipes
servers by default. Run terminal server inside /tmp if
/dev/console isn't set up properly.
Wed Aug 31 01:03:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (launch_single_user): Test TERMTASK as port, not boolean;
if null, properly initialize TERM to MACH_PORT_NULL as well.
Tue Aug 30 17:07:07 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c: Include <hurd/term.h>.
* init.c (run): Use file_name_lookup instead of path_lookup.
(launch_single_user): Likewise.
(run_for_real): Likewise.
* init.c (init_stdarrays): Use new authentication protocol.
Mon Aug 22 16:44:11 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (run_for_real): If CTTY is set, then also put the process
in its own login collection.
Fri Aug 19 12:16:47 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (run_for_real): New arg `ctty'. All callers changed.
If it's set, then set the new process's INIT_PORT_CTTYID
accordingly, and change CTTY's owner to be the new process pgrp.
(launch_single_user): Don't free TERM right away, only do it
after we've passed it to run_for_real on the shell.
Thu Aug 18 16:48:08 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (main): Print informative bootstrap messages.
(launch_core_servers): Likewise.
(launch_single_user): Likewise.
(run): Don't print meaningless bootstrap clutter.
* init.c (launch_single_user): Use task_info; it's less intrusive
than task_suspend/task_resume.
* init.c (launch_single_user): Run pipes before shell.
* init.c (launch_single_user): Pause a bit to give term a chance
to startup.
* init.c (bootstrap_args): New variable.
(main): Set `bootstrap_args' appropriately from argv[1].
(prompt_for_servers): Deleted variable.
(run): Use RB_INITNAME instead of prompt_for_servers.
Only do `pausing' hack if RB_KDB is set.
(run_for_real): Likewise.
* init.c (main): Wire text and data segment soon after starting.
Wed Aug 17 19:20:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (run_for_real): Call proc_setsid on new proc.
Wed Aug 17 14:04:18 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (init_stdarrays): New function.
(launch_single_user): Call init_stdarrays.
Tue Aug 16 00:44:20 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (launch_single_user): Prompt whether to run term or dev.
* init.c (main): Set default_ports[INIT_PORT_BOOTSTRAP] to STARTUP
while running proc and auth, and then reset it to null.
Mon Aug 15 23:16:24 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* init.c (launch_single_user): Use a volatile var to choose dev or
term, so you can set it in gdb.
(main): Set bootstrap port to MACH_PORT_NULL after fetching it.
Don't set default_ports[INIT_PORT_BOOTSTRAP]; it should be nil.
Mon Aug 15 11:40:34 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (launch_core_servers): Renamed from launch_system.
Don't start dev, term, pipes, or shell here.
(S_startup_procinit): Call launch_core_servers instead of
launch_system.
(S_startup_authinit): Likewise.
(launch_single_user): New function.
(S_startup_essential_task): Call launch_single_user once
all the core servers have registered themselves here.
Fri Aug 12 14:05:07 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (launch_system): Comment out use of dev for now.
Thu Aug 11 12:25:32 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* init.c (launch_system): Run dev instead of term.
Thu Jul 21 17:45:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* Makefile: Rewritten in accord with new scheme.
* init.c: Include "startup_reply_U.h instead of "startup_reply.h".
(demuxer): Remove S_ from references to startup_server.
Tue Jul 19 20:36:30 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
* init.c (run_for_real): Moved unused var BUF inside #if 0 where used.
(launch_system): Call proc_set_arg_locations, not proc_setprocargs.
Tue Jul 19 12:44:56 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* Makefile (init): Don't use variable $(link) anymore.
Tue Jul 5 14:21:34 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (launch_system): After terminal driver is running,
reopen stdin so that we always read through it. Don't do
output, because that (for reliability) shouldn't depend
on the terminal driver.
(main): Open stdin separately from stdout/stderr.
* Makefile (SRCS): New variable.
Fri Jul 1 11:19:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (run_for_real): Return the task we created. All callers
changed.
Tue Jun 21 14:08:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Correct first arg to pipes.
Mon Jun 20 15:06:19 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Look for pipes in /hurd/pipes, not
/bin/pipes.
* init.c (run_for_real): Comment out old code that prompts user;
abandon attempt if we can't run something.
* Makefile (install): Use $(INSTALL_BIN) instead of cp.
Fri Jun 17 00:13:50 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
* init.c (demuxer): Use S_startup_server instead of startup_server.
Wed Jun 15 18:14:59 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
* init.c (launch_system): Start pipes server after starting shell.
* init.c (run_for_real): New parms ARGS and ARGLEN. All callers
changed.
Tue May 24 02:20:55 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Start the shell before doing proc_setmsgport.
Tue May 24 00:05:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Call proc_setmsgport before fsys_init.
Mon May 16 14:43:47 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (reboot_system): Restore bits commented out on May 12;
the proc bug responsible has been fixed.
Fri May 13 14:59:12 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Make sure the auth server's proc state
is correct *before* calling startup_authinit_reply.
Thu May 12 15:13:10 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
* init.c (reboot_system): Comment out bits checking to see
if the procserver has died; they aren't quite right.
* init.c (S_startup_essential_task): Don't take over the exception
port of the task right now; this interferes with things too much.
Thu May 12 02:22:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
* init.c (launch_system): Don't call _hurd_proc_init; just call
proc_setprocargs ourselves.
(launch_system): Do proc_setmsgport last.
(run, run_for_real): Pass argv[0] with name of program.
Mon May 9 14:30:11 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
* init.c (init_version): New variable.
(launch_system): Call proc_register_version; don't call
proc_setprocargs (which is done by _hurd_proc_init). Give
correct argument to _hurd_proc_init.
* init.c (S_startup_register_version, S_startup_uname): Deleted.
Fri May 6 13:01:04 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
* init.c (S_startup_register_version, S_startup_uname):
New functions (temporary only).
Thu May 5 19:15:39 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
* init.c: Include <hurd/msg.h> for prototype of startup_dosync.
Change return types of MiG stubs to be kern_return_t.
(S_startup_essential_task): Expect new arg CREDENTIAL and
validate it.
Thu May 5 07:44:21 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
* Makefile: Change uses of $(headers) to $(includedir).
|