K

Kbuild compiling the kernel, 1154-1156 driver and subsystem Makefiles,

1158-1160 main Makefile, 1157-1158 structure of Makefiles, 1156 Kconfig attributes, 1151

configuration options, 1148-1150 configuration with, 1143 dependencies, 1151-1152 language elements, 1147 menu specification, 1147-1148 sample configuration file, 1143-1147 kernel, introduction to address spaces and privilege levels, 7-11 allocation of physical memory, 13-16 caching, 20 data types, 25-27

device drivers, block, and character devices,

17-18 filesystems, 18 list handling, 20-22 modules and hotplugging, 18-20 networks, 18

object management and reference counting, 22-25

ongoing evolution of, 27-28 overview of, 3-4

kernel, introduction to (continued)

page tables, 11-13 processes, task switching, and scheduling, 4 pros/cons of, 28-29 summary, 33 system calls, 17 tasks of, 2-3 timing, 16

Unix processes, 4-7 kernel daemons. See kernel threads kernel development process academia and, 1281-1282 coding styles, 1274-1276 command chain, 1269 community processes, 1284-1287 development cycle, 1269-1272 documenting code, 1276-1277 examples of improvements to Linux,

1282-1284 online resources and, 1272-1273 overview of, 1267-1268 patches and, 1273 portability, 1276

submission and review processes,

1277-1281 summary, 1287 technical issues and, 1273 tree structure and, 1268 kernel mode, 847-891 callingflow handler routines, 870-872 calling high-level ISR, 872-873 completions, 887-888 controller hardware settings, 860-861 data structures, 853-856 entry and exit tasks, 850-852 flow handling, 861-864 freeing IRQs, 865-866 handler function representation, 859-860 hardware IRQs, 849-850 implementing handler routines, 873-874 interrupt flow handling, 860

interrupt handlers, 852 interrupt types, 848-849 IRQ controller abstraction, 856-859 IRQ stacks, 869 overview of, 847

preemptive multitasking and, 40-41 privilege levels and, 8-10 processing interrupts, 850 registering interrupts, 866 registering IRQs, 864-865 servicing IRQs, 866-867 softlRQ daemon, 878-879 software interrupts (softIRQs), 875-877 starting softIRQ processing, 877-878 summary, 889-891

switching between user and kernel mode,

833, 867-869 tasklets, 879-882 wait queues, 882-887 work queues, 889-891 kernel page faults, 341-343 kernel preemption overview of, 41 scheduler, 127-131 kernel space copying data between userspace and,

344-345 defined, 11

divisions of virtual address space, 7-8

kernel threads, 77-79

address spaces and, 9-10 implementing, 78-79 tasks performed by, 77 types of, 77-78

kfree freeing memory, 259 freeing objects, 280 general caches and, 283 implementing, 285 KGDB,1172-1173 KiB, units of measurements, 7

kmalloc general caches and, 283 implementing, 283-285 overview of, 259 slab allocator and, 264 kmap, 251-255 kmod, 480-483, 507-508

kobjects generic kernel objects, 22-24 sets of objects, 24-25 sysfs filesystem and, 690 kswapd, 1053, 1087-1090 ktime, 910-911 kupdate, 996-997

Continue reading here: L

Was this article helpful?

0 0