《Linux内核API完全参考手册》实例源代码

《Linux内核API完全参考手册》实例源代码

  • 大小:23 MB
  • 类型:Linux内核
  • 格式:PDF
  • 热度:603
  • 作者:邱铁、周玉、邓莹莹
  • 更新:2022-09-07 08:31:41
vip 立即下载( 23 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 仰雨安 投稿)

本站精选了一篇Linux内核类书籍配套资源,介绍了关于Linux内核、API参考手册、实例源代码、Linux内核方面的内容,本书是由机械工业出版社出版,已被323人关注,由巢绣文测试纠错,目前本书在Linux内核类综合评分为:8.7分。

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
  • 内核调试函数printk2
  • 内核编译与定制4
  • 温馨提示10
  • 参考文献11
  • 第2章 Linux内核模块机制API12
  • 函数:__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进程管理内核API45
  • 函数:__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进程调度内核API84
  • 函数:__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中断机制内核API189
  • 函数:__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内存管理内核API258
  • 函数:__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内核定时机制API368
  • 函数:__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内核同步机制API457
  • 函数: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文件系统内核API539
  • 函数:__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设备驱动及设备管理API614
  • 函数:__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

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

相关资源

  • 数值分析

    数值分析 课后答案

    本书是为工科硕士研究生和非数学专业本科生的数值分析课程编写的教材。主要介绍计算机常用的数值计算方法。内容包括线性方程组数值解法,非线性方程(组)求根,矩阵特征值和特征向量的计算,函数的插值与逼近,数值积分,求解常微分方程和偏微分方程的差分方法等。书中着重阐明了各种数值方法的基本思想和基本原理,注重基本方法的掌握和运用,同时在理论上也作了必要的分析和论证。书中各章均附有习题及参考答案。 目录 第1章 绪论

    大小:15.3 MB数值分析课后答案

  • 《Creo Parametric 5.0动力学与有限元分析从入门到精通》动画演示,源文件

    《Creo Parametric 5.0动力学与有限元分析从入门到精通》动画演示,源文件

    编辑推荐 1.视频教学?82段同步指导视频n 扫码看全书视频,边看边操作n 高效学习法帮助读者快速上手 n 2.赠送?352个案例源文件和结果文n 实践出真知,直接上手操作n 动手会才是真学会n 3.内容全面清晰的学习路线n 机构动力学分析、结构分析、热力学分析、动画制作等功能逐个击破n 助力工作效率的提高 内容简介 本书共3篇11章。第1篇(第1~5章)为机构动力学分析,讲述了Creo Parametric 5.0软件关于动力学和有限元分析的3种模式、动力学分析、建立运动模型

    大小:2.1 GBCreo配套资源

  • 图论(第2版)

    图论(第2版) 课后答案

    《图论(第2版)》系统阐述图论与算法图论的基本概念、理论、算法及其应用,建立图的重要矩阵与线性空间,论述计算复杂度理论中的NP完全性理论和著名的一些NPC问题等。 《图论(第2版)》概念明确,立论严谨,语言流畅生动,注重算法分析及其有效性;内容全面深入,可读与可教性强,是一部理想的图论基础性著作。 《图论(第2版)》者对象为高等院校数学、计算机科学、信息与网络等专业的大学生与研究生,以及科研工作者与图论爱好者。

    大小:723 KB图论课后答案

  • 阿里巴巴泰山版java开发手册

    《阿里巴巴 Java 开发手册》主要提炼了阿里巴巴集团技术团队的集体编程经验和软件设计智慧,可全面、立体地帮助开发者的成长和团队代码文化形成。嵩山版首次新增前后端规约等内容,可帮助开发者码出规范,码出质量。

    大小:1.5 MBjava

  • TypeScript v4.2 使用手册

    ✔️ TypeScript语言用于大规模应用的JavaScript开发。 ✔️ TypeScript支持类型,是JavaScript的超集且可以编译成纯JavaScript代码。 ✔️ TypeScript兼容所有浏览器,所有宿主环境,所有操作系统。 ✔️ TypeScript是开源的。 目录 TypeScript 快速上手 手册 手册(进阶) 手册(v2) 如何书写声明文件 JavaScript 工程配置 Wiki 新增功能 Breaking Changes 归档

    大小:8.5 MBTypeScript

  • 《MATLAB基础与应用实例集粹》源代码

    《MATLAB基础与应用实例集粹》源代码

    内容介绍 MATLAB作为一套高性能的数值计算和可视化数学软件,已经广泛地应用于自动控制、数值和符号计算、工程与科学绘图、数字图像处理、数字信号处理、通信系统设计与仿真以及财务与金融工程等各个领域。本书系统介绍了MATLAB 7的基础知识和基本命令,包括程序设计环境、数值运算、基本绘图处理、与其他程序的接口设计、Simulink仿真基础、电路分析、信号处理等内容;并以工程和实际应用为背景,通过大量的实例详细地介绍了MATLAB控制系统仿

    大小:375.41 KBMATLAB配套资源

  • 《Cocos2D-X游戏开发技术精解(第2版)》配套文件

    《Cocos2D-X游戏开发技术精解(第2版)》配套文件

    编辑推荐 Cocos2D-X引擎作者王哲鼎力推荐。 本书结合笔者多年的工作和学习的经验,通过对Cocos2d-x的体系结构以及编程细节的讲解,为读者提供了完整的参考。 本书是学习Cocos2D-X游戏开发指南,本书得到了Cocos2D-X引擎开发者的建议和指导。 内容简介 近几个世纪以来,电子科技成为了推动人类文明发展的主动力。它的每一次变革都会改变人们生活的方式,电子游戏作为其中的一个分支。本书的内容就是为读者介绍Cocos2D-X游戏引擎。 本书共15章,主要内容

    大小:115.04 MBCocos2D-X配套资源

  • 微机原理与接口技术(第2版)

    微机原理与接口技术(第2版) 课后答案

    本书是为贯彻国家教育部面向21世纪教学内容改革的精神,适应微型计算机迅速发展的需要,参考了国内外同类优秀教材和最新资料,结合多年讲授《微机原理与接口技术》课程的教学实践而编写的。全书以Intel 80x86系列微处理器为背景,介绍微处理器的结构、指令系统、汇编语言程序设计、存储器、中断、常用IO接口、数模(DA)和模数(AD)转换接口,微机总线和人机交互接口。 全书共分10章。第1章介绍计算机的基础知识;第2章介绍微处理器的结构,

    大小:18.3 MB微机原理课后答案

下载地址

相关声明:

学习笔记