Linux内核API完全参考手册

副标题:无

作   者:邱铁,周玉,邓莹莹编著

分类号:

ISBN:9787111323570

微信扫一扫,移动浏览光盘

简介

   Linux作为源码开放的操作系统已经广泛应用于计算机与嵌入式设备,   因此学会Linux内核开发与编程显得越来越重要。本书以最新的Linux内核版   本2.6.30为依据,对常用的内核API作了系统分析和归纳,设计了典型实例   并对开发场景进行了详细讲解。本书中分析的内核API模块包括:内核模块   机制API、进程管理内核API、进程调度内核API、中断机制内核API、内存管   理内核API、内核定时机制API、内核同步机制API、文件系统内核API和设备   驱动及设备管理API。    本书立足Linux内核API分析,深入实践,内容翔实,读者可以从低起点   进行高效的内核分析与编程实践。本书可作为高等院校计算机、电子、信息   类大学生及研究生进行Linux操作系统学习和编程的教材或参考书,也可作   为Linux开发人员和广大Linux编程开发爱好者的参考用书。   

目录

前言
本书使用方法
第1章 linux内核api分析必备知识 1

linux内核编程注意事项 1

本书中模块编译makefile模板 1

内核调试函数printk 2

内核编译与定制 4

温馨提示 10

参考文献 11

第2章 linux内核模块机制api 12

函数:__module_address ( ) 12

函数:__module_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 ( ) 34

函数:sprint_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

函数:find_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


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Linux内核API完全参考手册
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon