展开全部

主编推荐语

基于Linux内核源代码3.19.3版本,对常用的内核API作了系统归纳。

内容简介

本书编写了典型验证程序,使理论分析与实际编程做到了统一。分析的内核API模块包括:模块机制内核API、进程管理内核API、进程调度内核API、中断与异常机制内核API、时间与定时机制内核API、内存管理内核API、内核同步机制API、文件系统内核API和设备驱动与设备管理模块内核API。

目录

  • 版权信息
  • 前言
  • 第1章 Linux内核API分析必备知识
  • 1.1 Linux内核编程注意事项
  • 1.2 本书中模块编译Makefile模板
  • 1.3 内核调试函数printk
  • 1.4 内核编译与定制
  • 1.5 温馨提示
  • 本章参考文献
  • 第2章 内核模块机制API
  • 2.1 函数:__module_address()
  • 2.2 函数:__module_text_address()
  • 2.3 函数:__print_symbol()
  • 2.4 函数:__symbol_get()
  • 2.5 函数:__symbol_put()
  • 2.6 函数:find_module()
  • 2.7 函数:find_symbol()
  • 2.8 函数:module_is_live()
  • 2.9 函数:module_put()
  • 2.10 函数:module_refcount()
  • 2.11 函数:sprint_symbol()
  • 2.12 函数:symbol_put_addr()
  • 2.13 函数:try_module_get()
  • 本章参考文献
  • 第3章 Linux进程管理内核API
  • 3.1 函数:__task_pid_nr_ns()
  • 3.2 函数:find_get_pid()
  • 3.3 函数:find_pid_ns()
  • 3.4 函数:find_vpid()
  • 3.5 函数:get_pid()
  • 3.6 函数:get_task_mm()
  • 3.7 函数:mmput()
  • 3.8 函数:ns_of_pid()
  • 3.9 函数:pid_nr()
  • 3.10 函数:pid_task()
  • 3.11 函数:pid_vnr()
  • 3.12 函数:put_pid()
  • 3.13 函数:task_active_pid_ns()
  • 3.14 函数:task_tgid_nr_ns()
  • 本章参考文献
  • 第4章 Linux进程调度内核API
  • 4.1 函数:__wake_up()
  • 4.2 函数:__wake_up_sync()
  • 4.3 函数:__wake_up_sync_key()
  • 4.4 函数:abort_exclusive_wait()
  • 4.5 函数:add_wait_queue()
  • 4.6 函数:add_wait_queue_exclusive()
  • 4.7 函数:autoremove_wake_function()
  • 4.8 函数:complete()
  • 4.9 函数:complete_all()
  • 4.10 函数:completion_done()
  • 4.11 函数:current_thread_info()
  • 4.12 函数:default_wake_function()
  • 4.13 函数:do_exit()
  • 4.14 函数:finish_wait()
  • 4.15 函数:init_waitqueue_entry()
  • 4.16 函数:init_waitqueue_head()
  • 4.17 函数:kthread_create_on_node()
  • 4.18 函数:kthread_stop()
  • 4.19 函数:prepare_to_wait()
  • 4.20 函数:prepare_to_wait_exclusive()
  • 4.21 函数:remove_wait_queue()
  • 4.22 函数:sched_setscheduler()
  • 4.23 函数:set_cpus_allowed_ptr()
  • 4.24 函数:set_user_nice()
  • 4.25 函数:task_nice()
  • 4.26 函数:try_wait_for_completion()
  • 4.27 函数:wait_for_completion()
  • 4.28 函数:wait_for_completion_interruptible_timeout()
  • 4.29 函数:wait_for_completion_killable()
  • 4.30 函数:wait_for_completion_timeout()
  • 4.31 函数:wake_up_process()
  • 4.32 函数:yield()
  • 本章参考文献
  • 第5章 Linux中断机制内核API
  • 5.1 函数:__tasklet_hi_schedule()
  • 5.2 函数:__tasklet_schedule()
  • 5.3 函数:disable_irq()
  • 5.4 函数:disable_irq_nosync()
  • 5.5 函数:disable_irq_wake()
  • 5.6 函数:enable_irq()
  • 5.7 函数:enable_irq_wake()
  • 5.8 函数:free_irq()
  • 5.9 函数:irq_set_chip()
  • 5.10 函数:irq_set_chip_data()
  • 5.11 函数:irq_set_irq_type()
  • 5.12 函数:irq_set_irq_wake()
  • 5.13 函数:remove_irq()
  • 5.14 函数:request_irq()
  • 5.15 函数:request_threaded_irq()
  • 5.16 函数:setup_irq()
  • 5.17 函数:tasklet_disable()
  • 5.18 函数:tasklet_disable_nosync()
  • 5.19 函数:tasklet_enable()
  • 5.20 函数:tasklet_hi_schedule()
  • 5.21 函数:tasklet_init()
  • 5.22 函数:tasklet_kill()
  • 5.23 函数:tasklet_schedule()
  • 5.24 函数:tasklet_trylock()
  • 5.25 函数:tasklet_unlock()
  • 本章参考文献
  • 第6章 Linux内存管理内核API
  • 6.1 函数:__free_pages()
  • 6.2 函数:__get_free_pages()
  • 6.3 函数:__get_vm_area()
  • 6.4 函数:__krealloc()
  • 6.5 函数:alloc_pages()
  • 6.6 函数:alloc_pages_exact()
  • 6.7 函数:find_vma()
  • 6.8 函数:find_vma_intersection()
  • 6.9 函数:free_pages()
  • 6.10 函数:free_pages_exact()
  • 6.11 函数:get_unmapped_area()
  • 6.12 函数:get_zeroed_page()
  • 6.13 函数:kcalloc()
  • 6.14 函数:kfree()
  • 6.15 函数:kmalloc()
  • 6.16 函数:kmem_cache_alloc()
  • 6.17 函数:kmem_cache_create()
  • 6.18 函数:kmem_cache_destroy()
  • 6.19 函数:kmem_cache_free()
  • 6.20 函数:kmem_cache_zalloc()
  • 6.21 函数:kmemdup()
  • 6.22 函数:ksize()
  • 6.23 函数:kstrdup()
  • 6.24 函数:kstrndup()
  • 6.25 函数:kzalloc()
  • 6.26 函数:memdup_user()
  • 6.27 函数:mempool_alloc()
  • 6.28 函数:mempool_alloc_pages()
  • 6.29 函数:mempool_alloc_slab()
  • 6.30 函数:mempool_create()
  • 6.31 函数:mempool_destroy()
  • 6.32 函数:mempool_free()
  • 6.33 函数:mempool_free_pages()
  • 6.34 函数:mempool_free_slab()
  • 6.35 函数:mempool_kfree()
  • 6.36 函数:mempool_kmalloc()
  • 6.37 函数:mempool_resize()
  • 6.38 函数:nr_free_buffer_pages()
  • 6.39 宏:page_address()
  • 6.40 宏:page_cache_get()
  • 6.41 宏:page_cache_release()
  • 6.42 函数:page_zone()
  • 6.43 宏:probe_kernel_address()
  • 6.44 函数:probe_kernel_read()
  • 6.45 函数:vfree()
  • 6.46 函数:vma_pages()
  • 6.47 函数:vmalloc()
  • 6.48 函数:vmalloc_to_page()
  • 6.49 函数:vmalloc_to_pfn()
  • 6.50 函数:vmalloc_user()
  • 本章参考文献
  • 第7章 Linux内核定时机制API
  • 7.1 函数:__round_jiffies()
  • 7.2 函数:__round_jiffies_relative()
  • 7.3 函数:__round_jiffies_up()
  • 7.4 函数:__round_jiffies_up_relative()
  • 7.5 函数:add_timer()
  • 7.6 函数:current_kernel_time()
  • 7.7 函数:del_timer()
  • 7.8 函数:del_timer_sync()
  • 7.9 函数:do_gettimeofday()
  • 7.10 函数:do_settimeofday()
  • 7.11 函数:get_seconds()
  • 7.12 函数:getnstimeofday()
  • 7.13 函数:init_timer()
  • 7.14 函数:init_timer_deferrable()
  • 7.15 函数:init_timer_key()
  • 7.16 函数:init_timer_on_stack()
  • 7.17 函数:init_timer_on_stack_key()
  • 7.18 函数:mktime()
  • 7.19 函数:mod_timer()
  • 7.20 函数:mod_timer_pending()
  • 7.21 函数:ns_to_timespec()
  • 7.22 函数:ns_to_timeval()
  • 7.23 函数:round_jiffies()
  • 7.24 函数:round_jiffies_relative()
  • 7.25 函数:round_jiffies_up()
  • 7.26 函数:round_jiffies_up_relative()
  • 7.27 函数:set_normalized_timespec()
  • 7.28 函数:setup_timer()
  • 7.29 函数:setup_timer_on_stack()
  • 7.30 函数:timer_pending()
  • 7.31 函数:timespec_add_ns()
  • 7.32 函数:timespec_compare()
  • 7.33 函数:timespec_equal()
  • 7.34 函数:timespec_sub()
  • 7.35 函数:timespec_to_ns()
  • 7.36 函数:timeval_compare()
  • 7.37 函数:timeval_to_ns()
  • 7.38 函数:try_to_del_timer_sync()
  • 本章参考文献
  • 第8章 Linux内核同步机制API
  • 8.1 函数:atomic_add()
  • 8.2 函数:atomic_add_negative()
  • 8.3 函数:atomic_add_return()
  • 8.4 函数:atomic_add_unless()
  • 8.5 函数:atomic_cmpxchg()
  • 8.6 函数:atomic_dec()
  • 8.7 函数:atomic_dec_and_test()
  • 8.8 函数:atomic_inc()
  • 8.9 函数:atomic_inc_and_test()
  • 8.10 函数:atomic_read()
  • 8.11 函数:atomic_set()
  • 8.12 函数:atomic_sub()
  • 8.13 函数:atomic_sub_and_test()
  • 8.14 函数:atomic_sub_return()
  • 8.15 函数:down()
  • 8.16 函数:down_interruptible()
  • 8.17 函数:down_killable()
  • 8.18 函数:down_read()
  • 8.19 函数:down_read_trylock()
  • 8.20 函数:down_timeout()
  • 8.21 函数:down_trylock()
  • 8.22 函数:down_write()
  • 8.23 函数:down_write_trylock()
  • 8.24 函数:downgrade_write()
  • 8.25 宏:init_rwsem()
  • 8.26 函数:read_seqbegin()
  • 8.27 函数:read_seqretry()
  • 8.28 函数:sema_init()
  • 8.29 宏:seqlock_init()
  • 8.30 函数:up()
  • 8.31 函数:up_read()
  • 8.32 函数:up_write()
  • 8.33 函数:write_seqlock()
  • 8.34 函数:write_sequnlock()
  • 本章参考文献
  • 第9章 Linux文件系统内核API
  • 9.1 函数:__mnt_is_readonly()
  • 9.2 函数:current_umask()
  • 9.3 函数:d_alloc()
  • 9.4 函数:d_find_alias()
  • 9.5 函数:dput()
  • 9.6 函数:fget()
  • 9.7 函数:generic_fillattr()
  • 9.8 函数:get_fs_type()
  • 9.9 函数:get_max_files()
  • 9.10 函数:get_super()
  • 9.11 函数:have_submounts()
  • 9.12 函数:I_BDEV()
  • 9.13 函数:inode_add_bytes()
  • 9.14 函数:inode_get_bytes()
  • 9.15 函数:inode_set_bytes()
  • 9.16 函数:inode_sub_bytes()
  • 9.17 函数:is_bad_inode()
  • 9.18 函数:make_bad_inode()
  • 9.19 函数:may_umount()
  • 9.20 函数:may_umount_tree()
  • 9.21 函数:mnt_want_write()
  • 9.22 函数:notify_change()
  • 9.23 函数:put_unused_fd()
  • 9.24 函数:unshare_fs_struct()
  • 9.25 函数:vfs_fstat()
  • 9.26 函数:vfs_getattr()
  • 9.27 函数:vfs_statfs()
  • 本章参考文献
  • 第10章 Linux设备驱动及设备管理API
  • 10.1 函数:__class_create()
  • 10.2 函数:__class_register()
  • 10.3 函数:cdev_add()
  • 10.4 函数:cdev_alloc()
  • 10.5 函数:cdev_del()
  • 10.6 函数:cdev_init()
  • 10.7 宏:class_create()
  • 10.8 函数:class_destroy()
  • 10.9 宏:class_register()
  • 10.10 函数:class_unregister()
  • 10.11 函数:device_add()
  • 10.12 函数:device_create()
  • 10.13 函数:device_del()
  • 10.14 函数:device_destroy()
  • 10.15 函数:device_initialize()
  • 10.16 函数:device_register()
  • 10.17 函数:device_rename()
  • 10.18 函数:device_unregister()
  • 10.19 函数:get_device()
  • 10.20 函数:put_device()
  • 10.21 函数:register_chrdev()
  • 10.22 函数:unregister_chrdev()
  • 10.23 部分相关函数说明
  • 本章参考文献
  • 附录 Linux内核API快速检索表
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    进入 21 世纪以来,IT 技术以前所未有的速度向前发展。Linux 作为源码开放的操作系统,在众多的爱好者和网络黑客的共同努力下,不断成长并趋于完善。由于 GNU 计划所开发的各种组件和系统发行版所必备的软件可以运行于 Linux 内核之上,整个内核符合 GNU 通用公共许可证(GNU General Public License),使得 Linux PC、服务器以及嵌入式系统开发等领域得到了广泛的应用。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。