首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内核3中写入内核内存还是在内核2.4中写入?

在内核3中写入内核内存还是在内核2.4中写入?
EN

Stack Overflow用户
提问于 2014-02-08 22:27:25
回答 1查看 82关注 0票数 1

我已经编写了一个写入内核(poolinfo_table)的数据结构的LKM。如果我在kernel 2.4insmod这个LKM,我猜它会写到这个数据结构中,但是当我用kernel 3.10做同样的事情时,我的系统会像我预期的那样重新启动!kernel 2.4有什么问题?它的内核内存不受保护,或者我实际上没有向它写入数据?!我的意思是,当我试图写到它的内存时,我预计内核会崩溃,所以我怀疑我是否真的写到了我的内核2.4的内存中。实际上,我在我的主机系统(Fedora 18)的内核3.10和我的客户系统(Redhat 9)的内核2.4上尝试了相同的代码。(我有虚拟机管理程序Xen)

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 06:25:31

在userland中,如果您写入不应该写入的位置(例如,在您的地址空间中不可写的某个位置,可能没有映射,或者可能是写保护的),mmu可能会向您的进程发出总线错误或分段冲突。

对于内核空间中的线程来说,这不太可能,但也不是不可能-您可以很容易地导致内存损坏或弄乱内存映射设备,而不会触发即时崩溃。最有可能在内核空间中产生的崩溃是通过践踏其他人的内存指针,并让他们无意中进入未映射的空间。

userland和kernel之间的主要区别实际上只与您可以造成的损害的范围有关。显然,在内核中,你可能会搞得一团糟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21647215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档