TY - BOOK AU - Beck,Michael AU - Böhme,Harald AU - Dziadzka,Mirko AU - Kunitz,Ulrich AU - Magnus,Robert AU - Verworner,Dirk TI - Linux kernel internals / SN - 0201331438 PY - 1998/// CY - Harlow PB - Addison-Wesley KW - SISTEMAS OPERATIVOS KW - LINUX KW - KERNEL KW - OPERATING SYSTEM N1 - Incluye CD-ROM, Nº inv. RE0061; CONTENIDO Foreword vii Preface ix 1. LINUX - the operating system 1 Main characteristics 3 Linux distributions 5 2. Compiling the kernel 6 Where is everything? 6 Compiling 9 Additional configuration facilities 11 3. Introduction to the kernel 15 Important data structures 20 The task structure 20 The process table 29 Files and inodes 31 Dynamic memory management 33 Queues and semaphores 34 System time and timers 36 Main algorithms 37 Signals 37 Interrupts 39 Booting the system 41 Timer interrupt 44 The scheduler 47 Implementing system calls 51 How do system calls actually work? 51 Examples of simple system calls 53 Examples of more complex system calls 55 Implementing a new system call 65 4. Memory management 70 The architecture-independent memory model in LINUX72 Pages of memory 72 Virtual address space 72 Converting the linear address 73 The page directory 74 The page middle directory 75 The page table 76 The virtual address space for a process 79 The user segment 79 Virtual memory areas 81 The system call brk 85 Mapping functions 86 The kernel segment 86 Static memory allocation in the kernel segment 88 Dynamic memory allocation in the kernel segment 88 Block device caching 92 Block buffering 92 The update and bdflush processes 94 List structures for the buffer cache 95 Using the buffer cache 96 Paging under LINUX 98 Page cache and management 100 Finding a free page 101 Page errors and reloading a page 106 5. Inter-process communication 108 Synchronization in the kernel 110 Communication via files 114 Locking entire files 115 Locking file areas 116 Pipes 119 Debugging using ptrace 121 System V IPC 125 Access permissions, numbers and keys 125 Semaphores 126 Message queues 130 Shared memory 133 The ipcs and ipcrm commands 137 IPC with sockets 138 A simple example 139 The implementation of UNTX domain sockets 143 6. The LINUX file system 148 Basic principles 149 The representation of file systems in the kernel 152 Mounting 153 Superblock operations 155 The inode 158 Inode operations 161 The file structure 165 File operations 165 Opening a file 169 The directory cache 172 The Proc file system 173 The Ext2 file system 179 The structure of the Ext2 file system 180 Directories in the Ext2 file system 182 Block allocation in the Ext2 file system 183 Extensions of the Ext2 file system 184 7. Device drivers under LINUX 186 Character and block devices 188 Polling and interrupts 190 Polling mode 190 Interrupt mode 191 Interrupt sharing 193 Bottom halves 194 Task queues 196 DMA mode 198 The hardware 200 Hardware detection 203 Automatic interrupt detection 205 Implementing a driver 207 The setup function 209 init 210 open and release 212 read and write 221 IOCTL 219 lseek 220 mmap 220 readdir, fsync and fasync 221 check_media_change and revalidate 221 An example of DMA operation 221 8. Network implementation 227 Introductory summary 228 The layer model of the network implementation 229 Getting the data from A to B 230 Important structures 234 The socket structure 234 The sk_buff structure-bufler management in the network 235 The INET socket- a special part of a socket 239 Protocol operations in the proto structure 243 The general structure of a socket address 246 Network devices under LINUX 247 Ethernet 254 SLIP and PLIP 255 The loopback device 255 The dummy device 255 ARP - the Address Resolution Protocol 256 IP 259 IP - general introduction 259 IP functions 260 Routing 263 IP multicasting and IGPM 265 IP packet filters 267 IP accounting and IP firewall 268 UDP 269 Functions of UDP 269 Other functions 271 TCP 271 General notes on TCP 271 The TCP communication end-point-a finite state machine 272 Functions of TCP 273 The packet interface - an alternative? 277 9. Modules and debugging 279 What are modules? 279 Implementation in the kernel 280 Signatures of symbols 283 What can be implemented as a module? 283 Parameter passing 285 The kernel daemon 285 An example module 287 Debugging 289 Changes are the beginning of the end 289 The best debugger- printk() 290 Debugging with gdb 291 10. Multi-processing 293 The Intel multi-processor specification 293 Problems with multi-processor systems 295 Changes to the kernel 296 Kernel initialization 296 Scheduling 297 Message exchange between processors 298 Entering kernelmode 298 Interrupt handling 299 Compiling LINUX SMP 300 APPENDIX A - System calls 301 Process management 302 The file system 339 Communication 370 Memory management 373 Initialization 378 All that remains 379 APPENDIX B - Kernel-related commands 380 free - synopsis of the system memory 380 ps - display of process statistics 381 Additional kernel configuration 386 top - the CPU charts 387 i nit - primus inter pares 389 shutdown - shutting down the system 395 strace - monitoring a process 396 Configuring the network interface 400 traceroute - Ariadne's thread in the Internet 400 Configuring a serial interface 403 Configuring a parallel interface 405 mount 407 APPENDIX C - The Pros file system 415 The /proc/ directory 415 The net/ directory 421 The serf/ directory 422 The sys/ directory 426 APPENDIX D - The boot process 428 Carrying out the boot process 428 LILO - the Linux loader 431 LILO started by MS-DOS MBR 431 LILO started by a boot manager 431 LILO in the master boot record 432 LILO files 432 LILO boot parameters 437 LILO start-up messages 439 Error messages 439 APPENDIX E - Useful kernel functions 441 References 457 Index 461 ER -