I'm trying to understand the system call interface and implementation in the Linux kernel. I know about entry.S
and the relationship between libc
headers and implementation. What I want to know is where in the kernel is the int 80h
received for the first time i.e. the place that decides that it's actually the 80h interrupt. Can anyone point me to the LXR link for this please?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
CONFIG_X86_32
- arch/x86/kernel/entry_32.S:system_call (INT $0x80)
- arch/x86/kernel/entry_32.S:ia32_sysenter_target (SYSENTER)
CONFIG_X86_64
- arch/x86/kernel/entry_64.S:system_call (SYSCALL, 64bit)
CONFIG_X86_64 and CONFIG_IA32_EMULATION
- arch/x86/ia32/ia32entry.S:ia32_sysenter_target (SYSENTER)
- arch/x86/ia32/ia32entry.S:ia32_cstar_target (SYSCALL, 32bit)
- arch/x86/ia32/ia32entry.S:ia32_syscall (INT $0x80)