A

abstraction address space and, 956 architecture and, 1117 clock sources and, 895 kernel and, 28 memory mappings and, 13 virtual address space and, 289 virtual filesystem and, 519-520, 708

academia, role in kernel development, 1281-1282 access control lists. See ACLs (access control lists) access vector cache, SELinux,

1114-1115 accessing devices. See device access ACLs (access control lists), 722-732 data structures (Ext3), 726-727 data structures (generic), 722-724 implementing (Ext2), 731-732 implementing (Ext3), 726 implementing (generic), 722 inode initialization (Ext3), 727-729 modifying (Ext3), 730-731 overview of, 722

permission-checking (Ext3), 731-732 permission-checking (generic), 724-726 retrieving (Ext3), 729-730 switching between on-disk and in-memory representation (Ext3), 726-727 active connections, TCP, 793-794 active memory regions, registering, 186-188

active pages determining page activity, 1057-1062 selecting pages to be swapped out, 1029 shrinking list of, 1068-1072 address resolution protocol (ARP), 778 address space, 955-966 AMD64 systems, 188-191 caching and, 955-966 data structures, 956-958 division of, 176-181 Ex2 operations, 610-611, 637 I/O, 395

maximum size of, 7-8 operations on, 961-966 page trees and, 958-961 PCI bus and, 455 privilege levels and, 8-10 addresses, netlink, 811 advanced programmable interrupt controllers (APICs) broadcast mode and, 943 overview of, 895 alarm system calls, timer-related, 945 algorithms page-swapping, 1026-1027 scheduler and, 37 aliases, module names, 495 alignment, C programming, 1202-1203 generic, 1203 natural, 1119, 1202-1203 overview of, 1202 _alloc_pages, buddy system, 223 allocation control, page selection, 225-231

allocation macros, buddy system, 220-222 allocation masks, buddy system, 205, 216-220 allocation of physical memory, 13-16

allocation order, 135

alternatives to slab allocator, 258-259

boot process and, 195-197

bootmem allocator, 191-193

buddy system, 14-15, 204-205, 215-216

disabling bootmem allocator, 197

discontiguous pages in the kernel and,

244-245 initialization and, 195-197 macros, 220-222 masks, 216-220 memory areas, 248-250 overview of, 113 page selection and, 225-231 slab allocator. See slab allocator slab cache, 15 slub allocator, 150 swapping and page reclaim, 15-16 types of allocators, 191 Alpha systems, 1129-1131 already_uses, testing module relationships,

489-490 AMD64 systems address space setup, 188-191 architecture of, 1134-1135 clock sources, 912 initialization of memory management, 169

initializing of, 194 interrupt flow handling, 870 memory management, 134 registering active memory regions,

187-188 system calls and, 834 timers for, 897 anonymous pages page faults, 339 reverse mapping and, 324-325

APICs (advanced programmable interrupt controllers)

broadcast mode and, 943 overview of, 895 application layer, 799-808

creating sockets, 805-807 data structures for sockets,

799-803 in network reference models, 736 overview of, 799 receiving data, 807-808 sending data, 808 socketcaiisystem call, 804-805 sockets and files, 803-804 architecture alignment of data and, 1119 Alpha systems, 1129-1131 AMD64 systems, 1134-1135 architecture-specific setup,

1226-1227 ARM systems, 1126-1127 bit chain manipulation, 1135-1136 checksums, 1137 context switches, 1137-1138 conversion to/from byte orders (little endian orbigendian), 1136-1137 current macro, for finding current process,

1138-1139 data types, 1118-1119 ELF supported, 1253 IA-32 systems, 1122-1124 IA-64 systems, 1124-1126 memory pages, 1119-1120 Mips systems, 1131-1132 overview of, 1117-1118 page tables, 1137 PowerPC systems, 1132-1133 Sparc64 systems, 1128-1129 string processing, 1120-1121 summary, 1139 system calls, 1120 thread representation, 1122

architecture, for initialization of memory management address space division, 176-181 address space setup, 188-191 hot-n-cold cache, 183-186 initialization steps, 172-175 kernel setup, 169-172 overview of, 169 paging, 175-176 registering active memory regions, 186-188

virtual address space division, 181-183 architecture-independence/dependence CPUs and, 13,150 datatypes, 853,1250 high-level initialization and, 1225 kbuild system and, 1154 kernel and, 1043-1044,1117 memory management and, 160 page flags, 151 page tables, 154 swapping and, 1042 system calls, 65, 838 arithmetic bit operations, 1203-1206 pointers (ptr), 1200 ARM systems, 1126-1127 ARP (address resolution protocol), 778 array cache, 262 assembly, in C programming inline assembler, 1194-1198 overview of, 1180 asynchronous interrupts, 848 asynchronous reading, VFS, 574 atomic operations on integers, 352-353 overview of, 351 atomic_t data types, 352-353 atomicity, locks ensuring, 359 attributes C programming, 1192-1194 Kconfig configuration, 1151

attributes, sysfs filesystem, 693-695

data structures, 693-694 declaring new, 694-695 audit rules, 1099 audit trails, 1098

auditctltool, 1098 auditing, 1097-1116

access vector cache, 1114-1115 audit rules, 1099 closing audit logs, 1110 context allocation and, 1110-1111 data structures, 1100 implementing, 1100 initializing, 1106-1107 logging events, 1108-1109 overview of, 1097-1098 processing requests, 1107-1108 records, rules, and filtering,

1104-1106 standard hooks, 1115-1116 starting, 1109 summary, 1116

system call events, 1112-1114 system calls for, 1110 task_struct data structure, 1100-1104 writing log messages, 1109 author information, modules and, 495

automatic expirations, of mounts, 563 automatic loading, modules benefits of, 506-507 kmod for, 480-483, 507-508 auxiliary functions, fragmentation of memory and, 205-207

Continue reading here: B

Was this article helpful?

0 0