jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

System Call 專題討論, #1:什麼是System Call

.作者:jollen/
.日期:December 1, 2006 4:10 PM


System call 是 process 與作業系統之間的介面。System call 是由 Linux kernel 所實作並提供給使用者,user-space program 可透過 system call 與Linux kernel 溝通。以 C 語言來呼叫 system call 的話,則是透過 GLIBC(libc)來間接呼叫。

GLIBC 提供呼叫 system call 的介面稱為 wrapper routine,wrapper routine 會叫起 Linux 的 system call handler,最後再由 system call handler 找到service routine 的所在的位址,並交由 service routine 完成工作。整個流程如圖所示。

system_call_1.JPG

User program 與 wrapper routine 是 user-space 的 code,system call handler 與 service routine 則是屬於 kernel space。如圖,我們可以看到灰色的箭頭跨越一個鴻溝,代表著由 user space 進入 kernel space,在 i386 上這個動作是藉由中斷來達成。

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2006 www.jollen.org. All rights reserved.
Last update: 2026-07-22