详情介绍
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
下载地址
人气书籍
UNIX网络编程 卷1:套接字联网API(第3版) 中文 PDF版 [85M]
深入理解Linux内核(第三版) 带完整书签 PDF扫描版[56MB]
Ubuntu Linux从入门到精通 PDF 扫描版[59M]
unix环境高级编程(第3版) 中文版 pdf扫描版[21MB]
KVM虚拟化技术:实战与原理解析 PDF扫描版[108MB]
鸟哥的Linux私房菜 Linux基础学习篇(第三版)
Linux/UNIX系统编程手册 PDF扫描版[262MB]
Linux内核设计与实现(原书第3版)pdf扫描版[36.7MB]
Linux命令行大全 ((美)William E.shotts,Jr) 中文PDF高清扫描版
linux命令大全(15部最全面的CHM文档) linux命令手册集合
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的linux内核api完全参考手册 (邱铁,周玉,邓莹莹) pdf扫描版资源来源互联网,版权归该下载资源的合法拥有者所有。