问:系统调用的原理,一个C函数的系统调用是怎样进入到系统的?
最近学习操作系统,了解到操作系统很大一部分可以说是由其提供的系统调用组成。
以前学微机原理时只知道Dos下系统调用int 21h等中断进入到系统的代码,这样系统通过中断向用户程序开放了功能调用。
而到了现代这个时代,不管是Linux还是Windows,系统调用好像都是通过一系列的C库函数提供的。依据我对C语言的理解,编写好的程序总要链接成一个可执行文件。最近我又了解到Linux内核编译后,所有提供系统调用功能的函数应该都是链接到一个内核映像文件里,然后由引导器加载然后执行的。然后由引导器加载然后执行的。
那么,通过 C 函数来调用的系统功能,是如何进入到系统的?我的程序显然不是和内核链接在一起的。好像这也不像通常那样的动态链接呀?动态链接又是怎么实现的?
谢谢各位老大!