最简单Linux内核和驱动考试题

原创 Linuxer Linux阅码场 2017-07-02


填空题

  1. Linux的设备驱动分为 _____三类,串口是什么类型设备__?
    2.下面的程序,在Ubuntu PC的terminal运行,打印几个hello__
    main()
    {
       fork();
       printf("hello\n");
       fork();    
       printf("hello\n");
       while(1);
    }

3 . 用>=,>, =, <, <= 连接进程的如下4个内存描述形式,分析它们之间的大小关系:
VSS__ RSS
PSSRSS
USS
PSS

4 . 下面这个程序,三次打印的data分别是, , __。

int data = 10;

int child_process()
{
        printf("Child process %d, data%d\n",getpid(),data);
        data = 20;
        printf("Child process %d, data%d\n",getpid(),data);
        _exit(0);
}

int main(int argc,char* argv[])
{
        if(vfork()==0) {
                child_process();    
        }
        else{
                sleep(1);
                printf("Parent process %d,data %d\n",getpid(), data);
        }
}

5 . 请描述内核代码如下三种编译方式的含义
[]____
[*] __
[M] ___
6 . gdb设置断点的指令是__,单步n和s的区别是____
7 . 下面一段python程序:

hello.py
print "Hello World! Love, Python"

echo 3 > /proc/sys/vm/dropcaches后,第2次运行比第一次运行快的原因是 ____

8 . 请用公式描述下图free命令中数字的关系
最简单Linux内核和驱动考试题

a = _ + __
g = b - ____ - _

h = c + ____ + _____

问答题

  1. 描述内核atomic, spinlock, mutex这三个锁分别的实用场景和主要区别

  2. 论述Linux设备驱动模型里面,总线、设备和驱动三者各自的作用及关系。

猜你喜欢

转载自blog.51cto.com/15015138/2557578