进入 21 世纪以来,IT 技术以前所未有的速度向前发展。Linux 作为源码开放的操作系统,在众多的爱好者和网络黑客的共同努力下,不断成长并趋于完善。由于 GNU 计划所开发的各种组件和系统发行版所必备的软件可以运行于 Linux 内核之上,整个内核符合 GNU 通用公共许可证(GNU General Public License),使得 Linux 在 PC、服务器以及嵌入式系统开发等领域得到了广泛的应用。
目录
- 前言
- 第 1 章 Linux 内核 API 分析必备知识
- 第 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
- 第 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 快速检索表
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论