註:1、linux系統包括linux kernel、glibc庫等。
2、因為應用程序調用系統調用是通過匯編指令完成的,所以才有了glibc的封裝,簡化了應用開發的難度。
kernel中提供的系統調用處理函數
sys_socket、sys_open、sys_close、sys_read、sys_write等
glibc中對應的是
socket、open、close、read、write等
glibc中的socket函數就是調用了int $0x80這條匯編指令,從而使cpu切換到內核態,執行sys_socket這個函數的。
函數調用流程:
socket->int $0x80->sys_socket。
現在2.6版本的內核提供了300多個系統調用:
glibc的下載地址:
http://ftp.gnu.org/gnu/glibc/
linux kernel的下載地址:
http://www.kernel.org/pub/linux/kernel/