【问题标题】:Who adds interrupt vector table to process virtual address space?谁添加中断向量表来处理虚拟地址空间?
【发布时间】:2017-10-29 14:10:15
【问题描述】:

是在虚拟地址空间程序集、链接器或加载器作业中加载 IV 表吗? 操作系统的哪一部分通常为堆栈和堆保留空间?

【问题讨论】:

  • 您到底在说什么?在 x86 上,中断向量表 (IVT) 包含在实模式下使用的所有 256 个中断处理程序的地址。它由 ROM BIOS 加载,通常位于0000:0000h。可以通过使用LIDT 指令移动表来更改此位置,但很少这样做。这就是你在说的吗?这不是按进程维护的。您能否为您的问题提供更多背景信息?
  • 你在说什么架构?
  • 好吧,汇编与它无关,它只是一种语言。它还取决于系统设计(在这种情况下主要是软件/操作系统设计),因此对于一个非常具体的平台、操作系统和版本以及一套工具。

标签: assembly linker operating-system emulation loader


【解决方案1】:

中断向量是系统范围的,驻留在系统中,属于所有进程共享的地址空间。通常由系统加载程序设置。但是,PeeCee bios 有一个内置的中断向量,通常由操作系统替换。

操作系统的哪一部分通常为堆栈和堆保留空间?

堆栈和堆只是内存。系统空间中存在内核模式堆和堆栈。堆由应用程序创建。初始堆栈通常由链接器定义。

【讨论】:

    【解决方案2】:

    BIOS 也不会正常加载 IVT,因此它可以处理实模式中断。

    【讨论】:

      猜你喜欢
      • 2021-03-18
      • 2020-04-16
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2018-01-14
      • 1970-01-01
      • 2014-05-23
      相关资源
      最近更新 更多