在linux中,要在内核中实现一些东西,为什么我们还需要更改用户空间头文件?

时间:2012-06-21 15:45:45

标签: linux kernel space

我正在尝试实现某种新的Linux任务调度程序,所以我发现了这篇文章http://www.eetimes.com/design/embedded/4204929/Real-Time-Linux-Scheduling-Part-1 真的很有帮助。但是,它说我们不仅需要在/kernel-source-code/include/linux/sched.h中定义新的调度宏,还需要在/usr/include/bits/sched.h中定义相同的东西。

那么为什么我们需要更改用户空间头文件,因为调度程序在内核中工作。我不知道为什么我们有用户空间头文件?无论如何,用户空间程序不能直接使用内核中定义的函数(除非通过系统调用),对吧?如果我们还需要更改用户空间文件以实现新的调度程序,那么调度程序如何可移植,因为用户不仅需要使用新的内核映像而且还需要更改其用户空间文件?

1 个答案:

答案 0 :(得分:3)

本文讨论了添加新的的调度或新的调度策略,而不是替换内核调度算法批发。您需要用户空间进程能够选择具有sched_setscheduler(2)的策略,因此需要userland-visible头文件。

查看here了解更多详情。