gs_fs0文件是什么_“ FS” /“ GS”寄存器的用途是什么?

它们的目的是什么,以及Windows和Linux的用途是什么。

段寄存器的最初目的是允许程序访问许多不同的(大)内存段,这些段旨在独立并且是持久性虚拟存储的一部分。这个想法来自1966年的Multics操作系统,该操作系统将文件视为简单的可寻址内存段。没有BS“打开文件,写记录,关闭文件”,而只是“将这个值存储到该虚拟数据段中”并带有脏页刷新。

我们当前的2010年操作系统向后退了一大步,这就是为什么它们被称为“太监”。你只能解决您的进程空间的单段,给人一种所谓的“平(恕我直言沉闷)地址空间”。x86-32机器上的段寄存器仍然可以用于实际的段寄存器,但是没有人打扰(前英特尔总裁安迪·格罗夫(Andy Grove)上世纪颇有名气,当时他发现所有这些英特尔工程师都花了很多精力和精力。他的钱去实现这个功能,没有人会使用它。安迪!

AMD决定采用64位时,他们决定不在乎是否将Multics作为选择(这是一种慈善的解释;不慈善的是他们对Multics毫无头绪),因此禁用了64位模式下段寄存器的一般功能。仍然需要线程访问线程本地存储,并且每个线程都需要一个指针……处于立即可访问的线程状态(例如在寄存器中)的某个地方……以访问线程本地存储。由于Windows和Linux在32位版本中都为此目的使用了FS和GS(感谢Nick的澄清),AMD决定让64位段寄存器(GS和FS)基本上仅用于此目的(我想您可以使它们指向您处理空间中的任何位置;如果应用程序代码可以加载它们,则不知道)。

在架构上更漂亮的恕我直言,使每个线程的内存映射具有一个绝对虚拟地址(例如0-FFF),这是它的线程本地存储空间(不需要[segment]寄存器指针!);我是在1970年代使用8位操作系统完成此操作的,它非常方便,就像可以使用另一堆寄存器一样。

因此,段寄存器现在有点像您的附录。它们起着残余作用。给我们集体造成损失。

那些不了解历史的人注定要重蹈覆辙。他们注定要做些愚蠢的事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值