Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。以下是小編整理的Linux核心和驅動考試題,希望大家認真閱讀!
填空題
1. Linux的裝置驅動分為 _________________三類,串列埠是什麼型別裝置______?
2.下面的程式,在Ubuntu PC的'terminal執行,列印幾個hello__________
main()
{
fork();
printf("hello");
fork();
printf("hello");
while(1);
}
3. 用>=,>, =, <, <= 連線程序的如下4個記憶體描述形式,分析它們之間的大小關係:
VSS______________ RSS
PSS_______________RSS
USS_______________PSS
4. 下面這個程式,三次列印的data分別是__, __, __。
int data = 10;
int child_process()
{
printf("Child process %d, data%d",getpid(),data);
data = 20;
printf("Child process %d, data%d",getpid(),data);
_exit(0);
}
int main(int argc,char* argv[])
{
if(vfork()==0) {
child_process();
}
else{
sleep(1);
printf("Parent process %d,data %d",getpid(), data);
}
}
5. 請描述核心程式碼如下三種編譯方式的含義
[] ____________________
[*] __________________
[M] ___________________
6. gdb設定斷點的指令是______,單步n和s的區別是____________________________________
7. 下面一段python程式:
print "Hello World! Love, Python"
echo 3 > /proc/sys/vm/drop_caches後,第2次執行比第一次執行快的原因是?
______________________________________________________________
______________________________________________________________
8. 請用公式描述下圖free命令中數字的關係
a = ___________ + ________
g = b - ________ - _________
h = c + ________ + _________
問答題
1. 描述核心atomic, spinlock, mutex這三個鎖分別的實用場景和主要區別
2. 論述Linux裝置驅動模型裡面,匯流排、裝置和驅動三者各自的作用及關係。