Linux n00b在这里。如何从用户模式切换到内核模式?我正在运行Linux Ubuntu 12.10。是否存在可以使用内联汇编代码调用的中断?如果没有,怎么办呢?
我问这个问题是因为我希望编写一个SCTP(网络)协议栈,它可以访问内核并在后台不断运行,尽管UI无法直接访问内核。从来没有做过这样的事情,所以专业人士的提示肯定会受到赞赏。
答案 0 :(得分:3)
所有切换到内核模式都是通过系统调用完成的。在网络协议的情况下,这些系统调用是socket,listen,accept,ioctl,read,write,recvmsg等。
您编写了一个Linux内核模块。虽然已经有Linux的SCTP协议栈。你可能最好修改它以做你想做的事。
编写完模块后,可以使用insmod和rmmod将其加载到内核中。根据我的经验,你很少有机会使用rmmod,因为如果你犯了一个错误,系统崩溃或冻结。因此,请使用虚拟机进行测试。重启速度更快,丢失的数据更少,并且更容易连接虚拟串行控制台进行调试。
我确信这个问题是重复的。你可以在这个主题上找到很多问题。