pmap module: the machine dependent layer of virtual memory
management code. Page tables are hardware dependent: single-, two-,
and three-level page tables and inverted page tables.
I/O. Character and block devices. cdevsw is the
character device switch. See src/sys/sys/conf.h for its
definition. I mentioned in class the bdevsw block device
switch -- this is true for 4.3 BSD but is not true for FreeBSD (I
don't remember whether 4.4 BSD had a bdevsw or not); in
FreeBSD, cdevsw and bdevsw are unified into
dynamically managed tables, and devices are added to the system
dynamically rather than at kernel-compile time. Using dynamically
managed tables allows dynamically loaded kernel modules to insert a
new device driver into a running kernel. See
src/sys/kern/kern_conf.c for the routines
makebdev, cdevsw_add, and the variable
bmaj2cmaj; src/sys/kern/subr_disk.c for
disk_create. What does bmaj2cmaj do?
See the entry points list for character and block devices in
chapter 6.