相关疑难解决方法(0)

x86分页如何工作?

这个问题旨在填补关于该主题的良好免费信息的真空.

我相信一个好的答案将适合一个大的答案或至少在几个答案.

主要目标是为完整的初学者提供足够的信息,以便他们可以自己学习手册,并能够理解与分页相关的基本操作系统概念.

建议的指导方针:

  • 答案应该是初学者友好的:
    • 具体但可能简化的例子非常重要
    • 欢迎使用所示概念的应用
  • 引用有用的资源是好的
  • 我们欢迎操作系统如何使用分页功能
  • PAE和PSE的解释是受欢迎的
  • 我们欢迎对x86_64进行小规模的讨论

相关问题以及为什么我认为它们不是愚蠢的:

paging x86 virtual-memory

78
推荐指数
2
解决办法
3万
查看次数

Linux中的分段:分段和分页是多余的?

我正在读"理解Linux内核".这是解释Linux如何使用我不理解的分段的片段.

分段已包含在80 x 86微处理器中,以鼓励程序员将其应用程序拆分为逻辑相关的实体,例如子程序或全局和本地数据区域.但是,Linux以非常有限的方式使用分段.事实上,分段和分页有点多余,因为两者都可以用来分离进程的物理地址空间:分段可以为每个进程分配不同的线性地址空间,而分页可以将相同的线性地址空间映射到不同的物理地址空间.由于以下原因,Linux更喜欢分页分段:

当所有进程使用相同的段寄存器值时,即当它们共享同一组线性地址时,内存管理会更简单.

Linux的设计目标之一是可移植到各种架构; 特别是RISC架构对分段的支持有限.

在用户模式下运行的所有Linux进程都使用相同的段对来处理指令和数据.这些段分别称为用户代码段和用户数据段.类似地,在内核模式下运行的所有Linux进程都使用相同的段对来处理指令和数据:它们分别称为内核代码段和内核数据段.表2-3显示了这四个关键段的段描述符字段的值.

我无法理解第一段和最后一段.

paging operating-system linux-kernel

5
推荐指数
2
解决办法
1万
查看次数

什么是计算机科学中的分段和分页?

我用Google搜索了很长时间,但我仍然不明白它是如何工作的,因为大多数解释都是非常技术性的,没有任何插图可以让它更清晰.我的主要困惑是它与虚拟内存有什么不同?

我希望这个问题在这里有一个非常好的解释,以便其他提出相同问题的人可以在谷歌时找到它.

memory paging operating-system memory-segmentation

3
推荐指数
1
解决办法
1万
查看次数