系統(tǒng)調(diào)用(system call)是操作系統(tǒng)內(nèi)核提供的函數(shù),在內(nèi)核態(tài)運(yùn)行(kernel mode),屬于函數(shù)中的低等下人,終身代號9527,雖然低等,但是誰也離不開他們,因?yàn)殡x開他們就沒辦法和內(nèi)核打交道了,沒辦法和內(nèi)核打交道就什么都歇菜了。。。 linux3.0.0-14的系統(tǒng)調(diào)用有346個(gè),可以在源碼的 linux-3.0/arch/x86/kernel/syscall_table_32.S文件中找到所有的系統(tǒng)調(diào)用編號,如果以匯編的方法調(diào)用這些系統(tǒng)函數(shù),那么放在EAX寄存器里面的值就是想要調(diào)用的函數(shù)的號碼,把前20個(gè)貼在下面了,很多貌似很熟悉的吧:)ENTRY(sys_call_table) .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ .long sys_exit .long ptregs_fork .long sys_read .long sys_write .long sys_open /* 5 */ .long sys_close .long sys_waitpid .long sys_creat .long sys_link .long sys_unlink /* 10 */ .long ptregs_execve .long sys_chdir .long sys_time .long sys_mknod .long sys_chmod /* 15 */ .long sys_lchown16 .long sys_ni_syscall /* old break syscall holder */ .long sys_stat .long sys_lseek .long sys_getpid /* 20 */ 庫函數(shù)是在系統(tǒng)調(diào)用上的一層包裝,運(yùn)行在用戶態(tài)(user mode),打個(gè)比方吧,庫函數(shù)相當(dāng)于包工頭,系統(tǒng)調(diào)用是工人,我們可以自己找工人分任務(wù),但一般是把任務(wù)攤給包工頭,包工頭再去給工人分任務(wù)。 所以雖然最終所有的工作都是系統(tǒng)調(diào)用做的,但是我們更通常的做法是調(diào)用庫函數(shù),有以下幾個(gè)原因:
|
只有注冊用戶登錄后才能發(fā)表評論。 | ||
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
![]() |
||
相關(guān)文章:
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 31 | 1 | 2 | 3 | 4 |
常用鏈接
留言簿
隨筆分類
隨筆檔案
搜索
最新評論

閱讀排行榜
- 1.?gdb調(diào)試打印數(shù)組的一段內(nèi)存(1579)
- 2.?error: expected specifier-qualifier-list before 'PQ'(suse上源碼安裝graphviz)(930)
- 3.?數(shù)字三角形(記憶化搜索和遞歸)(857)
- 4.?(TODO)ACE讀取ini配置文件(646)
- 5.?slice2cpp: error while loading shared libraries: libSlice.so.34: cannot open shared object file: No such file or directory(581)