freebsd-dev/sys/conf
Jonathan Anderson cfb5f76865 Add experimental support for process descriptors
A "process descriptor" file descriptor is used to manage processes
without using the PID namespace. This is required for Capsicum's
Capability Mode, where the PID namespace is unavailable.

New system calls pdfork(2) and pdkill(2) offer the functional equivalents
of fork(2) and kill(2). pdgetpid(2) allows querying the PID of the remote
process for debugging purposes. The currently-unimplemented pdwait(2) will,
in the future, allow querying rusage/exit status. In the interim, poll(2)
may be used to check (and wait for) process termination.

When a process is referenced by a process descriptor, it does not issue
SIGCHLD to the parent, making it suitable for use in libraries---a common
scenario when using library compartmentalisation from within large
applications (such as web browsers). Some observers may note a similarity
to Mach task ports; process descriptors provide a subset of this behaviour,
but in a UNIX style.

This feature is enabled by "options PROCDESC", but as with several other
Capsicum kernel features, is not enabled by default in GENERIC 9.0.

Reviewed by: jhb, kib
Approved by: re (kib), mentor (rwatson)
Sponsored by: Google Inc
2011-08-18 22:51:30 +00:00
..
defines
files Add experimental support for process descriptors 2011-08-18 22:51:30 +00:00
files.amd64 Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to 2011-06-22 21:04:13 +00:00
files.arm Compile in in_cksum* implementations for both IPv6 and IPv6. 2011-04-20 12:58:30 +00:00
files.i386 Don't include mptable_pci.c in Xen kernels. It is only meant for systems 2011-07-17 01:23:50 +00:00
files.ia64 Switch to the event timers infrastructure. This includes: 2011-06-25 02:15:14 +00:00
files.mips Support of Ralink Ethernet MAC, used in RT3050F/RT3052F and I belive in other Ralink SoCs. 2011-07-11 08:23:59 +00:00
files.pc98 Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to 2011-06-22 21:04:13 +00:00
files.powerpc Add support for the Blu-Ray drive found in the Sony Playstation 3 and fix 2011-08-14 00:20:37 +00:00
files.sparc64 Compile in in_cksum* implementations for both IPv6 and IPv6. 2011-04-20 12:58:30 +00:00
kern.mk Remove an outdated comment as requested by Bruce Evans in a private email to 2011-05-24 09:01:56 +00:00
kern.post.mk Test against "no" rather than "yes" for MK_KERNEL_SYMBOLS 2011-05-23 21:32:45 +00:00
kern.pre.mk Use a maximum of -O on PowerPC kernels instead of -O2 to prevent a rare 2011-08-15 13:33:14 +00:00
kmod_syms.awk
kmod.mk Test against "no" rather than "yes" for MK_KERNEL_SYMBOLS 2011-05-23 21:32:45 +00:00
ldscript.amd64 The new binutils has correctly redefined MAXPAGESIZE on amd64 as 0x200000 2011-03-28 06:35:17 +00:00
ldscript.arm
ldscript.i386 Step 2: sync sys/conf/ldscript.i386 with the binutils 2.17.50 version, 2010-11-05 19:40:27 +00:00
ldscript.ia64 Stop linking against a direct-mapped virtual address and instead 2011-04-30 20:49:00 +00:00
ldscript.mips Let the linker pick the right output format automatically 2010-11-13 18:38:35 +00:00
ldscript.mips.cfe Remove commented out _DYNAMIC sections. 2011-01-20 19:20:23 +00:00
ldscript.mips.mips64 Remove commented out _DYNAMIC sections. 2011-01-20 19:20:23 +00:00
ldscript.mips.octeon1 In fact, we don't need any of these __DYNAMIC. it is a.out leftover and commented out. 2011-01-20 19:24:50 +00:00
ldscript.powerpc In fact, we don't need any of these __DYNAMIC. it is a.out leftover and commented out. 2011-01-20 19:24:50 +00:00
ldscript.powerpc64 In fact, we don't need any of these __DYNAMIC. it is a.out leftover and commented out. 2011-01-20 19:24:50 +00:00
ldscript.sparc64 Merge binutils 2.17.50 to head. This brings a number of improvements to 2011-02-18 20:54:12 +00:00
Makefile.amd64 Upgrade our copy of llvm/clang to r126079, from upstream's trunk. 2011-02-20 19:33:47 +00:00
Makefile.arm Add -ffreestanding to the command line, so taht inflate.c compiles and link 2011-06-15 19:15:50 +00:00
Makefile.i386 Upgrade our copy of llvm/clang to r126079, from upstream's trunk. 2011-02-20 19:33:47 +00:00
Makefile.ia64 Remove definition of the GCC3 variable. It was introduced in rev. 2007-06-02 21:30:39 +00:00
Makefile.mips Support compiling MIPS elf trampoline with a different ABI. 2011-07-16 17:22:01 +00:00
Makefile.pc98 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.powerpc Add -Wa,-many to CFLAGS on PowerPC. This aids in building a kernel using 2011-06-09 19:47:30 +00:00
Makefile.sparc64 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
makeLINT.mk Add LINT-NOINET6 which we have inofficially supported for years 2011-05-02 22:54:24 +00:00
makeLINT.sed
newvers.sh Looks like we're ready for 9.0-BETA1 builds. 2011-07-26 04:00:00 +00:00
NOTES Add experimental support for process descriptors 2011-08-18 22:51:30 +00:00
options Add experimental support for process descriptors 2011-08-18 22:51:30 +00:00
options.amd64 Merging mptable under x86 left this option undefined for amd64 case. 2010-10-29 18:38:36 +00:00
options.arm Add options I missed in the additionnal AT91 support commits. 2010-10-07 09:30:35 +00:00
options.i386 Make "options XENHVM" compile for i386, not just amd64 -- a largely 2011-01-04 14:49:54 +00:00
options.ia64 Provide groundwork for 32-bit binary compatibility on non-x86 platforms, 2010-03-11 14:49:06 +00:00
options.mips MIPS changes for Netlogic XLP support. 2011-07-16 20:31:29 +00:00
options.pc98 Unbreak the build for pc98. Specify the newly introduced, for ia32, 2010-01-16 12:24:12 +00:00
options.powerpc Import support for the Sony Playstation 3 using the OtherOS feature 2011-01-06 04:12:29 +00:00
options.sparc64 Add a driver for the `Fire' JBus to PCIe bridges found in at least 2009-12-27 16:55:44 +00:00
systags.sh