H

handler functions extended attributes (xattrs), 713-714 system calls, 830-832 handles (atomic), Ex3, 639 hard disks adding to system, 425 generic, 417-420 hard links, 522

hard real-time processes, process priorities, 36

hardware interrupts

IRQs, 849-850 overview of, 847 hardware IRQs, 849-850 hash lists, C programming, 1214 header, ELF data structure for, 1251 elements of, 1243-1244 heap binaryformat handlers, 82 managing, 327-329 heavy-weight processes. See Unix processes helper functions for page selection, 223-225 _rmqueue helper function, 234-240 High Precision Event Timer (HPET), 897 high-level initialization, system startup,

1225 high-level ISRs, 854

highmem capacity, memory mappings, 256 highmem pages, 134, 430 high-resolution timers, 920-933

data structures, 921-925 dynamic ticks and, 938-939 implementing in high-resolution mode,

926-929 implementing in low-resolution mode,

929-931 kernel, 16

high-resolution timers (continued)

overview of, 920-921 periodic tick emulation, 931-932 setting, 925-926 switching to, 932-933 types of timers, 894 high-speed interfaces, for packet reception,

763-765 hooks, auditing, 1115-1116 hooks, netfilter activating, 783 functions, 779-781 table of, 781-783 host adapters, USB and, 465 host-to-network layer, in network reference models, 735 hot-n-cold pages initialization of cache for, 183-186 overview of, 146-148 refilling cache, 277-279 hotplugging modules and, 19, 508-511 overview of, 18-20 hotspots, locks and, 366 HPET (High Precision Event Timer), 897 hypertext, LXR cross-referencing tool,

1161-1163 HZ frequencies, timers and, 897

IA-32 systems architecture of, 1122-1124 clock sources, 912

initialization of memory management and, 169

initializing, 193-194 interrupt flow handling, 871-872 memory management, 134 registering active memory regions, 187 setting up architecture, 172-175 system calls and, 833

system startup, 1224-1225 timers for, 897 IA-64 systems, 1124-1126 identifier search, LXR cross-referencing tool, 1162 identifiers, process. See PID (process identification) IEEE (International Organization of Electrical Engineers) Ethernet standards, 746 IEEE1394 (Firewire), 392, 393 implementation strategies, OSs (operating systems), 3 inactive pages determining page activity, 1057-1062 reclaiming, 1072-1074 selecting pages to be swapped out, 1029 independent buffers, 982 indirection block allocation and, 619-621 double indirection, 589-590 Ex2, 588-591

finding data blocks, 615-616 reading/generating indirection blocks, 615 requesting new data blocks, 616-619 simple indirection, 588-590 triple indirection, 590-591 Industrial Standard Architecture (ISA), 393 init initialization process, 4-5 system startup, 1233-1234 initialization

AMD64 systems, 194 auditing, 1106-1107 boot process, 192-194 high-level, 1225 IA-32 systems, 193-194 inodes, 727-729 mobility-based grouping, 207-208 modules, 492-493, 496 nodes, 163-169 page tables, 175-176

proc filesystem, 655-657 releasing Initialization data during boot process, 197-199 removing initialization data, 1237-1238 slab allocator, 270-271 subsystem, 1225-1226 threads, 994-995 userspace, 1238-1239 zones, 163-169 initialization of memory management, 161-199 address space division, 176-181 address space setup on AMD64,188-191 architecture overview, 169 boot process, 191-194 data structure set up, 162 data structures, 191-192 disabling bootmem allocator, 197 hot-n-cold cache, 183-186 interface to kernel, 195-197 kernel setup, 169-172 nodes and zones, 163-169 overview of, 161-162 paging, 175-176 prerequisites, 162 registering active memory regions, 186-188 releasing initialization data, 197-199 setting up architecture, 172-175 system start, 162-163 virtual address space division, 181-183 inline assembler, C programming,

1194-1198 inline functions, C programming, 1192 in-memory representation (Ext3), ACLs,

726-727 inode bitmaps, 588

inode initialization (Ext3), ACLs, 727-729 inode tables, 588 inode writeback single inodes, 1006-1009 superblock inodes, 1003-1006

inodes block devices, 416 data synchronization, 1003 defined, 521

device file elements in, 406-407 file representation and, 525-526 full synchronization, 1018-1019 lists, 531-532

lookup mechanism for finding, 565-568 operations, 529-531 overview of, 522 proc filesystem, 654-655, 668 VFS filesystem, 527-529 inodes, Ex2 allocating, 634

classic directory allocation, 634 creating/deleting, 628-630 deleting, 634-636 operations, 610-611 Orlov allocation, 630-634 overview of, 599-601 registering, 630 input/output. See I/O (input/output) inserting regions, 309-310 instruction patterns, C programming, 1179 integers atomic operations on, 352-353 data types, 1118 interface functions, LRU buffer cache, 984 interface index, network devices, 760 interfaces debugfs programming interface, 687-688 files as a universal interface, 524-525 high-speed interfaces for packet reception,

763-765 iotci (input output control interface),

400-401, 441-442 kernel, 195-197 netlink programming, 814-816 parallel, 394

POSIX. See POSIX (Portable Operating System Interface for Unix)

interfaces (continued)

SCSI, 392, 393 sequential files, 680 serial, 394 USB, 464

VFS programming interface, 523-524 VFS xattrs, 708 International Organization for

Standardization (ISO), 734-735 International Organization of Electrical Engineers (IEEE) Ethernet standards, 746 IEEE1394 (Firewire), 392, 393 Internet layer, 735. See also network layer Internet Protocol. See IP (Internet Protocol) inter-process communication. See IPC

(inter-process communication) inter-process interrupt (IPIs), 943 interrupt context, 9 interrupt controllers, 849 interrupt handlers calling high-level ISR, 872-873 entry and exit paths, 850 flow handling, 860-864 function representation, 859-860 illustration of handling an interrupt, 851 implementing handler routines, 873-874 requirements of, 852 types of, 854 interrupt requests. See IRQs (interrupt requests)

interrupt service routine (ISR). See interrupt handlers interrupts, 848-875

callingflow handler routines, 870-872 calling high-level ISR, 872-873 controller hardware settings, 860-861 data structures, 853-856 entry and exit tasks, 850-852 flow handling, 860-864 freeing IRQs, 865-866 handlerfunctions, 859-860

hardware, 847

hardware IRQs, 849-850

implementing handler routines, 873-874

interacting with peripherals, 396

interrupt handlers, 852

IRQ controller abstraction, 856-859

IRQ stacks, 869

masking, 852

PCI supported, 457

proc filesystem, 650

processing, 850

registering, 866

registering IRQs, 864-865

servicing IRQs, 866-867

sharing, 849

switching between user and kernel mode and,40-41 types, 848-849 USB interrupt transfers, 466 I/O (input/output) architecture, 391-396 bus systems, 392-394 device control via buses, 396 expansion hardware and, 392 interaction with peripherals, 394-396 overview of, 391-392 I/O (input/output) memory functions for accessing I/O memory areas, 447

managing, 445-446 resource reservation management, 442

I/O (input/output) ports functions for accessing, 448 resource reservations, 442, 446-448 I/O (input/output) schedulers, 438-441 data structure for, 438-439 managing request queues, 439-440 properties, 440-441 iotcl (input output control interface) system device addressing and, 400-401 implementation of, 441-442

IP (Internet Protocol)

address format, 736 IPv4, 769-771 IPv6, 783-785

packets. See packets, network layer versions of, 736 IPC (inter-process communication)

critical sections and, 349-350 locking mechanisms. See locking mechanisms namespace for, 50 overview of, 347 pipes and sockets, 389-390 race conditions and, 348-349 semaphores for resolving, 350 signals. See signals summary, 390

system calls for managing, 375, 829 System V. See System V ipc system call, 375 IPIs (inter-process interrupt), 943 iptables, 779

IPv4, network layer and, 769-771 IPv6, network layer and, 783-785 IRQs (interrupt requests)

defined, 850 freeing, 865-866

handlers in packet reception, 765-767 hardware IRQs, 849-850 high-speed interfaces and, 763-764 IRQ controller abstraction, 856-859 IRQ stacks, 869 registering, 864-865 servicing, 866-867 softIRQ handler, 767-768 status values, 855-856 ISA (Industrial Standard Architecture), 393 ISO (International Organization for

Standardization), 734-735 isochronous transfers, USB, 466 ISR (interrupt service routine). See interrupt handlers

Continue reading here: K

Was this article helpful?

0 0