您的位置:首页 > 百科 > 正文

Linux内核API完全参考手册

《L注岩导亮inux内核API完全参考手册》是第一本全面介绍Linux内核API开发与编程的书籍; 基于最新的Linux内核版本2.都鱼留动州因景当6.30,设计内来自核API典型实例,360百科并对开发场景进行详细讲解; 对Linux内鱼练即哪听传很核系统知识进行精心策划,以内核模块方式对内核API进行系统分析; 在系统功能模块内部,内核API以函数名称排序,河志之求能够快速检索; 立足于基础,高效率的学习理论配合内核API经典实例,深入Linux编程实践; 为Linux内核开发与编程提供高效的指导与参考。

  • 书名 Linux内核API完全参考手册
  • 作者 邱铁、周玉、邓莹莹
  • 出版社 机械工业出版社
  • 页数 684 页
  • 开本 16 开

煤思制资肥片身容简介

  linux作为源码开放的操作系统已经广泛应用于计算机与嵌入式设备,因此学会linux内核开发与编程显得越来越重要。本书以最新的linux内核版本2.6.30为依据,对常用的内核api作了系统分析和归纳,设计了典型实例并对开发场景进行了感看个扬章早浓鲁详细讲解。本书中分析的内核api模块包括:内核模久握容备径罪灯素早准块机制api、进程管理内核api、进程调度内核ap倍击思很乐技叶身速文i、中断机制内核api、内存滑排期乱远其圆迅强天管理内核api、内核定时机制a来自pi、内核同步机制api、文件系统内核api和设备驱动及设备管理api。

  本书立足linux内核api分析,深入实践,内容翔实,读者可以从低起点进行高效的内核分析与编程实践。本书可作为高等院校计算机、电子、信息类大教双力色界谈是学生及研究生进行linux操作系统学习和编程的教材或参考书,也可作为linux开发人员和广大linux编程开发爱好者的参考用书。

目录

  前言 本书使用方法

  第1章 Linux内核API分析必备知识 1

  Linux内核编程注意事项 1

  本书中模块编译Mak夜别般冲突维压酸efile模板 1

  内核调试函数prin足群tk 2

  内核编译与定制 360百科4

  温馨提示 10

  参考文献 11

  第2章 Linux内核模块机制API 12

  函数:__module_address ( ) 12

  函数:__mo贵最调土液酸费dule_ref_addr ( ) 14

  函数:__module_text_address ( ) 16

  函数:__print_symbol ( ) 18

  函数:__养续字环居南备企子家symbol_get ( ) 20

  函数:__symbol乱按周广场得粒验_put ( ) 22

  函数:find_module ( ) 24

  函数:find_symbol ( ) 27

  函数:module_is_live ( ) 30

  函数:module_put ( ) 32

  函数:module_refcount ( ) 3苗美含营磁4

  函数:spr判山搞鱼故发官察够互些int_symbol 演消( ) 36

  函数:symbol_put_addr ( ) 38

  函数:try_module_get ( ) 40

  函数:use_module ( ) 42

  参考文献 44

 充异山互既卷 第3章 Linux进程管理内核API 45

  函数:__task_pid_nr_ns( ) 45

  函数:find_get_pid( ) 47

  函数:f厚端促例善析大争ind_pid _ns( ) 49

  函数:find_task_by_pid_ns( ) 51

  函数:find_task_by_pid_type _ns( ) 53

  函数:find_task_by_vpid( ) 55

  函数:find_vpid( ) 57

  函数:get_pid( ) 59

  函数:get_task_mm( ) 60

  函数:is_container_init( ) 63

  函数:kernel_thread( ) 65

  函数:mmput( ) 67

  函数:ns_of_pid( ) 69

  函数:pid_nr( ) 71

  函数:pid_task( ) 73

  函数:pid_vnr( ) 75

  函数:put_pid( ) 77

  函数:task_active_pid_ns( ) 79

  函数:task_tgid_nr_ns( ) 81

  参考文献 83

  第4章 Linux进程调度内核API 84

  函数:__wake_up( ) 84

  函数:__wake_up_sync( ) 87

  函数:__wake_up_sync_key( ) 89

  函数:abort_exclusive_wait( ) 91

  函数:add_preempt_count( ) 95

  函数:add_wait_queue( ) 97

  函数:add_wait_queue_exclusive( ) 100

  函数:autoremove_wake_function( ) 102

  函数:complete( ) 106

  函数:complete_all( ) 108

  函数:complete_done( ) 111

  函数:current_thread_info( ) 113

  函数:default_wake_function( ) 115

  函数:do_exit( ) 118

  函数:finish_wait( ) 120

  函数:init_waitqueue_entry( ) 123

  函数:init_waitqueue_head( ) 125

  函数:interruptible_sleep_on( ) 127

  函数:interruptible_sleep_on_timeout( ) 130

  函数:preempt_notifier_register ( ) 133

  函数:preempt_notifier_unregister ( ) 136

  函数:prepare_to_wait( ) 139

  函数:prepare_to_wait_exclusive( ) 142

  函数:remove_wait_queue( ) 146

  函数:sched_setscheduler( ) 149

  函数:set_cpus_allowed_ptr( ) 152

  函数:set_user_nice( ) 155

  函数:sleep_on( ) 158

  函数:sleep_on_timeout( ) 160

  函数:sub_preempt_count( ) 162

  函数:task_nice( ) 164

  函数:try_wait_for_completion( ) 166

  函数:wait_for_completion( ) 169

  函数:wait_for_completion_interruptible( ) 172

  函数:wait_for_completion_interruptible_ timeout( ) 175

  函数:wait_for_completion_killable( ) 179

  函数:wait_for_completion_timeout( ) 182

  函数:wake_up_process( ) 184

  函数:yield( ) 187

  参考文献 188

  第5章 Linux中断机制内核API 189

  函数:__set_irq_handler( ) 189

  函数:__tasklet_hi_schedule( ) 191

  函数:__tasklet_schedule( ) 194

  函数:disable_irq( ) 196

  函数:disable_irq_nosync( ) 196

  函数:disable_irq_wake( ) 198

  函数:enable_irq( ) 201

  函数:enable_irq_wake( ) 203

  函数:free_irq( ) 205

  函数:kstat_irqs_cpu( ) 207

  函数:remove_irq( ) 209

  函数:request_irq( ) 213

  函数:request_threaded_irq( ) 216

  函数:set_irq_chained_handler( ) 219

  函数:set_irq_chip( ) 221

  函数:set_irq_chip_data( ) 225

  函数:set_irq_data( ) 227

  函数:set_irq_handler( ) 229

  函数:set_irq_type( ) 232

  函数:set_irq_wake( ) 234

  函数:setup_irq( ) 237

  函数:tasklet_disable( ) 239

  函数:tasklet_disable_nosync( ) 241

  函数:tasklet_enable( ) 243

  函数:tasklet_hi_enable( ) 244

  函数:tasklet_hi_schedule( ) 246

  函数:tasklet_init( ) 248

  函数:tasklet_kill( ) 250

  函数:tasklet_shedule( ) 252

  函数:tasklet_trylock( ) 254

  函数:tasklet_unlock( ) 255

  参考文献 257

  第6章 Linux内存管理内核API 258

  函数:__free_pages( ) 258

  函数:__get_free_pages( ) 258

  函数:__get_vm_area( ) 260

  函数:__krealloc( ) 262

  函数:alloc_pages( ) 265

  函数:alloc_pages_exact( ) 268

  函数:alloc_vm_area( ) 270

  函数:do_brk( ) 272

  函数:do_mmap( ) 273

  函数:do_mmap_pgoff( ) 276

  函数:do_munmap( ) 279

  函数:find_vma( ) 281

  函数:find_vma_intersection( ) 284

  函数:free_pages( ) 286

  函数:free_pages_exact( ) 287

  函数:free_vm_area( ) 288

  函数:get_unmapped_area( ) 288

  函数:get_user_pages( ) 290

  函数:get_user_pages_fast( ) 292

  函数:get_vm_area_size( ) 294

  函数:get_zeroed_page( ) 295

  函数:kcalloc( ) 297

  函数:kfree( ) 299

  函数:kmalloc( ) 299

  函数:kmap_high( ) 301

  函数:kmem_cache_alloc( ) 303

  函数:kmem_cache_create( ) 305

  函数:kmem_cache_destroy( ) 308

  函数:kmem_cache_free( ) 308

  函数:kmem_cache_zalloc( ) 309

  函数:kmemdup( ) 311

  函数:krealloc( ) 313

  函数:ksize( ) 315

  函数:kstrdup( ) 318

  函数:kstrndup( ) 319

  函数:kunmap_high( ) 321

  函数:kzalloc( ) 321

  函数:memdup_user( ) 323

  函数:mempool_alloc( ) 325

  函数:mempool_alloc_pages( ) 327

  函数:mempool_alloc_slab( ) 329

  函数:mempool_create( ) 331

  函数:mempool_create_kzalloc_pool ( ) 333

  函数:mempool_destroy( ) 334

  函数:mempool_free( ) 335

  函数:mempool_free_pages( ) 335

  函数:mempool_free_slab( ) 336

  函数:mempool_kfree( ) 336

  函数:mempool_kmalloc( ) 337

  函数:mempool_kzalloc( ) 339

  函数:mempool_resize( ) 341

  函数:nr_free_buffer_pages( ) 343

  宏:page_address( ) 345

  宏:page_cache_get( ) 346

  宏:page_cache_release( ) 348

  函数:page_zone( ) 349

  宏:probe_kernel_address( ) 352

  函数:probe_kernel_read( ) 354

  函数:probe_kernel_write( ) 355

  函数:vfree( ) 357

  函数:vma_pages( ) 358

  函数:vmalloc( ) 359

  函数:vmalloc_to_page( ) 361

  函数:vmalloc_to_pfn( ) 363

  函数:vmalloc_user( ) 365

  参考文献 366

  第7章 Linux内核定时机制API 368

  函数:__round_jiffies( ) 368

  函数:__round_jiffies_relative( ) 369

  函数:__round_jiffies_up( ) 371

  函数:__round_jiffies_up_relative( ) 373

  函数:__timecompare_update( ) 375

  函数:add_timer( ) 377

  函数:current_kernel_time( ) 378

  函数:del_timer( ) 380

  函数:del_timer_sync( ) 382

  函数:do_gettimeofday( ) 384

  函数:do_settimeofday( ) 386

  函数:get_seconds( ) 388

  函数:getnstimeofday( ) 390

  函数:init_timer( ) 391

  函数:init_timer_deferrable( ) 393

  函数:init_timer_deferrable_key( ) 395

  函数:init_timer_key( ) 398

  函数:init_timer_on_stack( ) 400

  函数:init_timer_on_stack_key( ) 402

  函数:mktime( ) 404

  函数:mod_timer( ) 406

  函数:mod_timer_pending( ) 408

  函数:ns_to_timespec( ) 410

  函数:ns_to_timeval( ) 412

  函数:round_jiffies( ) 414

  函数:round_jiffies_relative( ) 416

  函数:round_jiffies_up( ) 418

  函数:round_jiffies_up_relative( ) 420

  函数:set_normalized_timespec( ) 422

  函数:setup_timer( ) 424

  函数:setup_timer_key( ) 426

  函数:setup_timer_on_stack( ) 428

  函数:setup_timer_on_stack_key( ) 430

  函数:timecompare_offset( ) 432

  函数:timecompare_transform( ) 435

  函数:timecompare_update( ) 436

  函数:timer_pending( ) 439

  函数:timespec_add_ns( ) 441

  函数:timespec_compare( ) 442

  函数:timespec_equal( ) 444

  函数:timespec_sub( ) 446

  函数:timespec_to_ns( ) 448

  函数:timeval_compare( ) 450

  函数:timeval_to_ns( ) 452

  函数:try_to_del_timer_sync( ) 453

  参考文献 456

  第8章 Linux内核同步机制API 457

  函数:atomic_add( ) 457

  函数:atomic_add_negative( ) 458

  函数:atomic_add_return( ) 460

  函数:atomic_add_unless( ) 461

  宏:atomic_cmpxchg( ) 463

  函数:atomic_dec( ) 464

  函数:atomic_dec_and_test( ) 466

  函数:atomic_inc( ) 467

  函数:atomic_inc_and_test( ) 469

  宏:atomic_read( ) 470

  宏:atomic_set( ) 471

  函数:atomic_sub( ) 472

  函数:atomic_sub_and_test( ) 474

  函数:atomic_sub_return( ) 475

  函数:down( ) 477

  函数:down_interruptible( ) 479

  函数:down_killable( ) 481

  函数:down_read( ) 483

  函数:down_read_trylock( ) 485

  函数:down_timeout( ) 487

  函数:down_trylock( ) 489

  函数:down_write( ) 491

  函数:down_write_trylock( ) 492

  函数:downgrade_write( ) 494

  宏:init_rwsem( ) 496

  宏:read_lock( ) 498

  函数:read_seqbegin( ) 499

  函数:read_seqretry( ) 500

  宏:read_trylock( ) 503

  宏:read_unlock( ) 504

  宏:rwlock_init( ) 505

  函数:sema_init( ) 508

  宏:seqlock_init( ) 509

  宏:spin_can_lock( ) 511

  宏:spin_lock( ) 513

  宏:spin_lock_bh( ) 514

  宏:spin_lock_init ( ) 516

  宏:spin_lock_irq( ) 518

  宏:spin_lock_irqsave( ) 520

  宏:spin_trylock( ) 522

  宏:spin_unlock( ) 525

  宏:spin_unlock_bh( ) 526

  宏:spin_unlock_irq( ) 526

  宏:spin_unlock_irqrestore( ) 527

  宏:spin_unlock_wait( ) 527

  函数:up( ) 529

  函数:up_read( ) 531

  函数:up_write( ) 532

  宏:write_lock( ) 532

  函数:write_seqlock( ) 534

  函数:write_sequnlock( ) 534

  宏:write_trylock( ) 535

  宏:write_unlock( ) 537

  参考文献 537

  第9章 Linux文件系统内核API 539

  函数:__mnt_is_readonly( ) 539

  函数:current_umask( ) 541

  函数:d_alloc( ) 542

  函数:d_alloc_root( ) 544

  函数:d_delete( ) 547

  函数:d_find_alias( ) 547

  函数:d_invalidate( ) 549

  函数:d_move( ) 550

  函数:d_validate( ) 551

  函数:dput( ) 553

  函数:fget( ) 554

  函数:find_inode_number( ) 557

  函数:generic_fillattr( ) 559

  函数:get_empty_filp( ) 561

  函数:get_fs_type( ) 563

  函数:get_max_files( ) 565

  函数:get_super( ) 566

  函数:get_unused_fd( ) 569

  函数:have_submounts( ) 570

  函数:I_BDEV( ) 572

  函数:iget_locked( ) 573

  函数:inode_add_bytes( ) 575

  函数:inode_get_bytes( ) 576

  函数:inode_needs_sync( ) 578

  函数:inode_set_bytes( ) 580

  函数:inode_setattr( ) 581

  函数:inode_sub_bytes( ) 584

  函数:invalidate_inodes( ) 586

  函数:is_bad_inode( ) 587

  函数:make_bad_inode( ) 588

  函数:may_umount( ) 590

  函数:may_umount_tree( ) 591

  函数:mnt_pin( ) 593

  函数:mnt_unpin( ) 594

  函数:mnt_want_write( ) 596

  函数:new_inode( ) 596

  函数:notify_change( ) 598

  函数:put_unused_fd( ) 600

  函数:register_filesystem( ) 602

  函数:unregister_filesystem( ) 604

  函数:unshare_fs_struct( ) 604

  函数:vfs_fstat( ) 606

  函数:vfs_getattr( ) 608

  函数:vfs_statfs( ) 610

  参考文献 613

  第10章 Linux设备驱动及设备管理API 614

  函数:__class_create( ) 614

  函数:__class_register( ) 615

  函数:cdev_add( ) 616

  函数:cdev_alloc( ) 617

  函数:cdev_del( ) 619

  函数:cdev_init( ) 624

  宏:class_create( ) 628

  函数:class_destroy( ) 629

  宏:class_register( ) 631

  函数:class_unregister( ) 632

  函数:device_add( ) 637

  函数:device_create( ) 638

  函数: device_del( ) 640

  函数:device_destroy( ) 640

  函数:device_initialize( ) 646

  函数:device_register( ) 652

  函数:device_rename( ) 652

  函数:device_unregister( ) 657

  函数:get_device( ) 663

  函数:put_device( ) 663

  函数:register_chrdev( ) 667

  函数:register_keyboard_notifier( ) 668

  函数:unregister_chrdev( ) 669

  函数:unregister_keyboard_notifier( ) 675

  部分相关函数说明 679

  参考文献 679

  附录 Linux内核API快速检索表 680

发表评论

评论列表