NetBSD/sys/uvm
elad 5f7169ccb1 First take at security model abstraction.
- Add a few scopes to the kernel: system, network, and machdep.

- Add a few more actions/sub-actions (requests), and start using them as
  opposed to the KAUTH_GENERIC_ISSUSER place-holders.

- Introduce a basic set of listeners that implement our "traditional"
  security model, called "bsd44". This is the default (and only) model we
  have at the moment.

- Update all relevant documentation.

- Add some code and docs to help folks who want to actually use this stuff:

  * There's a sample overlay model, sitting on-top of "bsd44", for
    fast experimenting with tweaking just a subset of an existing model.

    This is pretty cool because it's *really* straightforward to do stuff
    you had to use ugly hacks for until now...

  * And of course, documentation describing how to do the above for quick
    reference, including code samples.

All of these changes were tested for regressions using a Python-based
testsuite that will be (I hope) available soon via pkgsrc. Information
about the tests, and how to write new ones, can be found on:

	http://kauth.linbsd.org/kauthwiki

NOTE FOR DEVELOPERS: *PLEASE* don't add any code that does any of the
following:

  - Uses a KAUTH_GENERIC_ISSUSER kauth(9) request,
  - Checks 'securelevel' directly,
  - Checks a uid/gid directly.

(or if you feel you have to, contact me first)

This is still work in progress; It's far from being done, but now it'll
be a lot easier.

Relevant mailing list threads:

http://mail-index.netbsd.org/tech-security/2006/01/25/0011.html
http://mail-index.netbsd.org/tech-security/2006/03/24/0001.html
http://mail-index.netbsd.org/tech-security/2006/04/18/0000.html
http://mail-index.netbsd.org/tech-security/2006/05/15/0000.html
http://mail-index.netbsd.org/tech-security/2006/08/01/0000.html
http://mail-index.netbsd.org/tech-security/2006/08/25/0000.html

Many thanks to YAMAMOTO Takashi, Matt Thomas, and Christos Zoulas for help
stablizing kauth(9).

Full credit for the regression tests, making sure these changes didn't break
anything, goes to Matt Fleming and Jaime Fournier.

Happy birthday Randi! :)
2006-09-08 20:58:56 +00:00
..
files.uvm implement compat_linux mremap. 2006-01-21 13:34:15 +00:00
Makefile remove the following options. no objections on tech-kern@. 2006-02-11 12:45:07 +00:00
uvm_amap.c make amap use kmem_alloc, rather than malloc. 2006-06-25 08:03:46 +00:00
uvm_amap.h make amap use kmem_alloc, rather than malloc. 2006-06-25 08:03:46 +00:00
uvm_anon.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_anon.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_aobj.c bumps kernel aobj to 64 bit. \ 2006-09-01 20:39:05 +00:00
uvm_aobj.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_bio.c use c99 initializer. 2006-09-03 21:33:33 +00:00
uvm_ddb.h Add a "show all pages" command to DDB which prints one line per physical 2006-02-19 18:52:29 +00:00
uvm_device.c use c99 initializers 2006-09-03 21:37:22 +00:00
uvm_device.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_extern.h bumps kernel aobj to 64 bit. \ 2006-09-01 20:39:05 +00:00
uvm_fault_i.h Change "inline" back to "__inline" in .h files -- C99 is still too 2006-02-16 20:17:12 +00:00
uvm_fault.c add assertions. 2006-04-11 09:28:14 +00:00
uvm_fault.h -clean up the interface to uvm_fault: the "fault type" didn't serve 2006-03-15 18:09:25 +00:00
uvm_glue.c Make PTRACE and COREDUMP optional. Make the default (status quo) by putting 2006-08-29 23:34:48 +00:00
uvm_glue.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_init.c move wait points for kva from upper layers to vm_map. PR/33185 #1. 2006-05-25 14:27:28 +00:00
uvm_io.c Whitespace 2005-12-20 08:25:58 +00:00
uvm_km.c Introduce a UVM_KMF_EXEC flag for uvm_km_alloc() which enforces an 2006-07-05 14:26:42 +00:00
uvm_km.h move wait points for kva from upper layers to vm_map. PR/33185 #1. 2006-05-25 14:27:28 +00:00
uvm_loan.c from Christian Ehrhardt: 2006-04-18 09:56:16 +00:00
uvm_loan.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_map.c make amap use kmem_alloc, rather than malloc. 2006-06-25 08:03:46 +00:00
uvm_map.h move wait points for kva from upper layers to vm_map. PR/33185 #1. 2006-05-25 14:27:28 +00:00
uvm_meter.c merge FreeBSD timecounters from branch simonb-timecounters 2006-06-07 22:33:33 +00:00
uvm_mmap.c - Use the LWP cached credentials where sane. 2006-07-21 16:48:45 +00:00
uvm_mremap.c uvm_mremap: whitespace. 2006-01-31 14:03:53 +00:00
uvm_object.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_page.c uvm_page_own: more assertions. 2006-04-13 08:33:18 +00:00
uvm_page.h Update comment to match reality (vm_physmemseg -> vm_physseg). 2006-04-06 07:18:23 +00:00
uvm_pager.c Change previous to KASSERT per yamt's request. 2006-04-13 02:32:14 +00:00
uvm_pager.h kill the "fault_type" argument to pager's pgo_fault() methods 2006-02-22 22:28:18 +00:00
uvm_param.h Rearrange included headers and/or add include of <sys/types.h> and 2006-08-04 22:42:36 +00:00
uvm_pdaemon.c share some code between uvmpd_scan_inactive and uvmpd_scan. 2006-02-14 15:06:27 +00:00
uvm_pdaemon.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_pglist.c XXX: GCC uninitialized. 2006-05-14 05:30:31 +00:00
uvm_pglist.h
uvm_pmap.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_prot.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_readahead.c
uvm_readahead.h
uvm_stat.c
uvm_stat.h Change "inline" back to "__inline" in .h files -- C99 is still too 2006-02-16 20:17:12 +00:00
uvm_swap.c First take at security model abstraction. 2006-09-08 20:58:56 +00:00
uvm_swap.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_swapstub.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_unix.c Better implementation of PaX MPROTECT, after looking some more into the 2006-05-20 15:45:37 +00:00
uvm_user.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
uvm_vnode.c - in genfs_getpages, take g_glock earlier so that it can't be 2006-07-22 08:47:56 +00:00
uvm.h remove the following options. no objections on tech-kern@. 2006-02-11 12:45:07 +00:00