0

Linux n00b 在这里。如何从用户模式切换到内核模式?我正在运行 Linux Ubuntu 12.10。是否有我可以使用内联汇编代码调用的中断来执行此操作?如果没有,怎么办?

我问这个问题是因为我希望编写一个 SCTP(网络)协议堆栈,它可以访问内核并在后台持续运行,尽管 UI 无法直接访问内核。以前从来没有做过这样的事情,所以专业人士的提示肯定会受到赞赏。

4

1 回答 1

3

所有到内核模式的切换都是通过系统调用进行的。在网络协议的情况下,这些系统调用是 socket、listen、accept、ioctl、read、write、recvmsg 等。

你编写了一个 Linux 内核模块。不过,Linux 已经有一个 SCTP 协议栈。你可能会更好地修改它来做你想做的事。

编写并编译模块后,您可以使用 insmod 和 rmmod 将其加载到内核中。根据我的经验,您很少有机会使用 rmmod,因为如果您犯了错误,系统会崩溃或死机。因此,请使用虚拟机进行测试。重新启动速度更快,丢失的数据更少,并且更容易连接虚拟串行控制台进行调试。

顺便说一句,我相信这个问题是重复的。你可以找到很多关于这个主题的问题。

于 2013-08-29T17:19:23.810 回答