微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RAM内存中的段

我对RAM内存中的段感到困惑,请澄清下面的疑惑

RAM已经被用作用户空间和内核空间;这个内存部分是由O / S完成还是由H / W(cpu)完成。

内核空间的内容是什么,据我了解只有内核映像,如果我错了,请纠正我。

这个代码,数据,堆栈和堆段在哪里存在?

Java Comm API包下载

两种情况下哪个更快?

Clang,LLVM和g ++

如果命令失败,不要中断脚本,而是收集退出代码

删除一个断开的链接Unix

a)用户和内核空间是否有单独的代码,数据,堆栈和堆段?

b)这个段是由H / W还是(O / S)创build的。

我能find内核空间和用户空间占用的内存量吗?

a)是否有任何Linux命令(或)系统调用来find这个?

为什么RAM被分成用户空间和内核空间?

a)我为了保持内核安全而不是应用程序,是否这样做?这是唯一的原因。

我是初学者,所以请给我build议一些好书,链接方法来处理这些概念。

像Python中的其他用户一样运行一个进程

我可以在LXC客户操作系统上重复使用主机操作系统上的软件包

节点JS:执行命令行并asynchronous获取输出

不同的Valgrind输出在不同的机器上

为什么我设置xlib窗口背景透明失败?

我接受了挑战,并尝试了相当短的答案:

执行发生在用户和内核空间。 BIOS和cpu支持OS检测和分离主存储器和设备( – > 相关问题 )等资源/地址范围,以建立保护模式。 在保护模式下,内存通过虚拟地址空间分隔,这些虚拟地址空间通过MMU(内存管理单元)映射到页面(通常是4096字节的块)到物理内存的实际地址。

用户空间不能直接访问内存(实模式),必须通过MMU访问内存,这就像具有访问保护的透明代理一样。 访问错误被称为分段错误,访问冲突,分段违规(SIGSEGV) ,它们在高级编程语言(如Java)中被抽象为NullPointerException(NPE)。

阅读有关保护模式 , 实模式和“戒指” 。

注意:如嵌入式系统中的特殊cpu不一定具有MMU,因此可能仅限于μClinux或FreeRTOS等特殊操作系统。

内核也分配缓冲区,驱动程序也是如此(例如磁盘,网络接口和GPU的IO缓冲区)。

通常,每个空间和进程/线程都存在资源

a)内核将自己的受保护堆栈放在用户空间栈(每个线程)之上,并且还有单独的代码(也称为“文本”),数据和堆段。 另外,每个流程都有自己的资源。

b) cpu体系结构有一定的要求(取决于它提供的支持程度),但是最后是用来创建这些结构的软件(用于接口的内核和用户空间库)。

每个合理的操作系统都至少提供了一种方法

一)尝试sudo cat /proc/slabinfo或简单地sudo slabtop

阅读1。

a)首先,是的,就像用户空间进程彼此隔离,除了特殊的技术,例如用于在新内核中快速直接访问的CMA(跨内存附加) 。

搜索推荐书籍的堆栈网站

什么会导致C ++中的分段错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐