minix/lib/syslib
Cristiano Giuffrida f4574783dc Rewrite of boot process
KERNEL CHANGES:
- The kernel only knows about privileges of kernel tasks and the root system
process (now RS).
- Kernel tasks and the root system process are the only processes that are made
schedulable by the kernel at startup. All the other processes in the boot image
don't get their privileges set at startup and are inhibited from running by the
RTS_NO_PRIV flag.
- Removed the assumption on the ordering of processes in the boot image table.
System processes can now appear in any order in the boot image table.
- Privilege ids can now be assigned both statically or dynamically. The kernel
assigns static privilege ids to kernel tasks and the root system process. Each
id is directly derived from the process number.
- User processes now all share the static privilege id of the root user
process (now INIT).
- sys_privctl split: we have more calls now to let RS set privileges for system
processes. SYS_PRIV_ALLOW / SYS_PRIV_DISALLOW are only used to flip the
RTS_NO_PRIV flag and allow / disallow a process from running. SYS_PRIV_SET_SYS /
SYS_PRIV_SET_USER are used to set privileges for a system / user process.
- boot image table flags split: PROC_FULLVM is the only flag that has been
moved out of the privilege flags and is still maintained in the boot image
table. All the other privilege flags are out of the kernel now.

RS CHANGES:
- RS is the only user-space process who gets to run right after in-kernel
startup.
- RS uses the boot image table from the kernel and three additional boot image
info table (priv table, sys table, dev table) to complete the initialization
of the system.
- RS checks that the entries in the priv table match the entries in the boot
image table to make sure that every process in the boot image gets schedulable.
- RS only uses static privilege ids to set privileges for system services in
the boot image.
- RS includes basic memory management support to allocate the boot image buffer
dynamically during initialization. The buffer shall contain the executable
image of all the system services we would like to restart after a crash.
- First step towards decoupling between resource provisioning and resource
requirements in RS: RS must know what resources it needs to restart a process
and what resources it has currently available. This is useful to tradeoff
reliability and resource consumption. When required resources are missing, the
process cannot be restarted. In that case, in the future, a system flag will
tell RS what to do. For example, if CORE_PROC is set, RS should trigger a
system-wide panic because the system can no longer function correctly without
a core system process.

PM CHANGES:
- The process tree built at initialization time is changed to have INIT as root
with pid 0, RS child of INIT and all the system services children of RS. This
is required to make RS in control of all the system services.
- PM no longer registers labels for system services in the boot image. This is
now part of RS's initialization process.
2009-12-11 00:08:19 +00:00
..
alloc_util.c Allow servers to run with fewer privileges: 2009-12-02 10:06:58 +00:00
assert.c Added assert to syslib. Moved panic from sysutil to syslib for assert. 2006-03-15 12:06:18 +00:00
ds.c only assign value if request went ok. 2009-02-19 17:14:36 +00:00
Makefile.in Merge of David's ptrace branch. Summary: 2009-09-30 09:57:22 +00:00
panic.c Fix warning in panic 2009-08-17 17:56:34 +00:00
pci.h Moved PCI driver to the ramdisk. 2006-02-15 14:21:56 +00:00
pci_attr_r8.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_attr_r16.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_attr_r32.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_attr_w8.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_attr_w16.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_attr_w32.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_del_acl.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
pci_dev_name.c Add lspci command and SI_PCI_INFO getsysinfo call 2009-10-09 10:48:46 +00:00
pci_find_dev.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_first_dev.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_ids.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_init.c Added pci_init1.c, pci_attr_r16.c, pci_attr_w8.c, pci_attr_w16.c, 2006-01-12 14:37:37 +00:00
pci_init1.c Fixed some warnings 2009-08-17 18:48:27 +00:00
pci_next_dev.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_rescan_bus.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_reserve.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_set_acl.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
pci_slot_name.c . clarify panic messages in syslib about pci 2007-07-11 13:38:13 +00:00
safecopies.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
sys_abort.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_cprof.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_endsig.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_eniop.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_exec.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_exit.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_fork.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_getinfo.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
sys_getsig.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_in.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_int86.c bios_wini driver 2005-07-29 10:21:04 +00:00
sys_irqctl.c *** empty log message *** 2005-05-02 14:30:04 +00:00
sys_kill.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_mapdma.c adddma/deldma/getdma/sys_mapdma 2008-02-21 16:02:22 +00:00
sys_memset.c Updates system library calls: interface changes (removed unused parameters). 2005-07-29 15:01:59 +00:00
sys_newmap.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_nice.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_out.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_physcopy.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_privctl.c - enable remembering of device memory ranges set by PCI and 2009-11-03 11:12:23 +00:00
sys_profbuf.c cprofile always on 2009-01-09 21:42:36 +00:00
sys_readbios.c Added sys_readbios. 2006-07-10 12:17:16 +00:00
sys_runctl.c PM delay call infrastructure improvements 2009-10-01 10:36:09 +00:00
sys_safecopy.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_sdevio.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_segctl.c *** empty log message *** 2005-04-29 15:36:43 +00:00
sys_setalarm.c Updates system library calls: interface changes (removed unused parameters). 2005-07-29 15:01:59 +00:00
sys_setgrant.c Rename paramctl to setgrant. 2006-06-23 15:35:05 +00:00
sys_sigreturn.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_sigsend.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_sprof.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_stime.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_sysctl.c moved stacktrace to sysctl, as vmctl is very privileged so can't 2009-01-27 12:54:33 +00:00
sys_times.c Rewrite of boot process 2009-12-11 00:08:19 +00:00
sys_trace.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
sys_umap.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_vinb.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_vinl.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_vinw.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_vircopy.c endpoint_t in syslib 2009-09-22 21:42:02 +00:00
sys_vmctl.c allow kernel to tell VM extra physical addresses it wants mapped in. 2009-11-11 12:07:06 +00:00
sys_voutb.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_voutl.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_voutw.c . removed const from putenv() for g++ 2006-06-20 08:45:04 +00:00
sys_vsafecopy.c fix some compiler warnings. 2007-04-02 15:10:07 +00:00
sys_vtimer.c Support for setitimer(ITIMER_VIRTUAL/ITIMER_PROF). New test (41) for setitimer. 2009-08-15 21:37:26 +00:00
syslib.h Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
taskcall.c Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
vm_allocmem.c fix compiler warning 2009-10-05 16:40:21 +00:00
vm_brk.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
vm_ctl.c vm stubs; no more sys_vm_setbuf 2009-09-21 14:42:58 +00:00
vm_exec_newmem.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
vm_exit.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
vm_fork.c Merge of David's ptrace branch. Summary: 2009-09-30 09:57:22 +00:00
vm_map_phys.c Fixed some warnings 2009-08-17 18:48:27 +00:00
vm_notify_sig.c vm stubs; no more sys_vm_setbuf 2009-09-21 14:42:58 +00:00
vm_push_sig.c Basic VM and other minor improvements. 2008-11-19 12:26:10 +00:00
vm_umap.c fix compiler warnings using dubious casts. 2009-10-05 16:41:28 +00:00