Chinaunix首页 | 论坛 | 博客
  • 博客访问: 563236
  • 博文数量: 287
  • 博客积分: 27
  • 博客等级: 民兵
  • 技术积分: 547
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-01 20:20
文章分类

全部博文(287)

文章存档

2015年(1)

2014年(95)

2013年(90)

2012年(101)

分类:

2012-08-07 21:11:18

原文地址:将内核API编译为man手册 作者:zhe_wang

      一般我们都知道用man手册去查看libc库的API的用法,例如man 
strcpy、man stat ...其实内核里的一些API也可以编译到man手册中,
这样对于学习内核的,也无疑是一种很好的资料。
----------------------------------------------------------------------------------
1,编译内核API到man手册。下载一个内核版本,然后在顶层目录执行如下
命令:make installmandocs 执行该命令,人家会提示你缺少一个依赖xmlto,
接下来就安装依赖,ubuntu下面:sudo apt-get install xmlto 把依赖安
装好了然后再次执行上次的命令。make installmandocs。
----------------------------------------------------------------------------------
2,上面的命令执行完后,将会把一些内核API的信息安装到 /usr/local
/man/man9下面。那目录下就有内核API的查阅信息。内核的哪些函数可
以查得到,可以先到那个目录下去看。
----------------------------------------------------------------------------------
3,实例:(man copy_to_user)

  1. COPY_TO_USER(9) Memory Management in Linux COPY_TO_USER(9)



  2. NAME
  3.        copy_to_user - Copy a block of data into user space.

  4. SYNOPSIS
  5.        unsigned long copy_to_user(void __user * to, const void * from, unsigned long n);

  6. ARGUMENTS
  7.        to
  8.            Destination address, in user space.

  9.        from
  10.            Source address, in kernel space.

  11.        n
  12.            Number of bytes to copy.

  13. CONTEXT
  14.        User context only. This function may sleep.

  15. DESCRIPTION
  16.        Copy data from kernel space to user space.

  17.        Returns number of bytes that could not be copied. On success, this will be zero.

  18. COPYRIGHT
  19. Kernel Hackers Manual 2.6. August 2012 COPY_TO_USER(9)
---------------------------------------------------------------------------------------
4,个人感觉。
    缺点:1,显示的API信息比较“简陋”,没有像libc的解释那么详细。
          2,有些内核API查不到,还需去查源码。
    优点:1,很权威。我觉得这些东西很可能是这些函数的作者编写的解释。
          2,相对于看源码,这还是方便点。

----------------------------------------------------------------------------------------



阅读(326) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~