2.1.6 模块的概念
整个内核并不需要同时转入内存,为了保证系统正常运行,一些特定的内核应该驻留在内存中,例如进程调度代码。而另外一些,则应该在内核需要的时候再装载,例如许多设备驱动程序。Linux为了在完成内核的可扩展同时不带来庞大的驻留内核,采用了一种可装载内核模块的概念。所谓模块,就是指在系统运行时可以增减的部分内核。需要是装载,不需要时卸载。
模块作为内核的一部分,具有内核的运行特征,即它是在内核模式下运行的,这一点,对于我们解决用户进程在内核模式的运行问题很重要。
2.2 几种解决方案
对于将用户进程放入核心模式运行,目前主要有以下三种方案。
2.2.1 动态加载模块的方案
从原理上说,用户进程的主要性能损失来自于用户模式和核心模式的切换开销,而用户模式和核心模式的切换则主要来自于系统调用(中断和例外同样导致核心模式和用户模式切换,但核心模式下也是常有的,故不考虑)。因此,为提高系统性能,希望系统调用运行到核心模式下,如Linux 2.4核心提供的khttpd一样。
文章来源于领测软件测试网 https://www.ltesting.net/