Memory Ubuntu 32位最大地址空间

Memory Ubuntu 32位最大地址空间,memory,ubuntu,operating-system,Memory,Ubuntu,Operating System,Jeff不久前在32位Vista中谈到了这一点 32位Vista中的32位4GB内存上限是否也适用于32位Ubuntu?有没有32位操作系统创造性地解决了这个问题?理论上,所有32位操作系统都有这个问题。您有32位要进行寻址 2^32 bits / 2^10 (bits per kb) / 2^10 (kb per mb) / 2^10 (mb per gb) = 2^2 = 4gb. 尽管有一些方法可以解决这个问题。(查看从16位计算到32位计算的跳跃。他们遇到了相同的问题。)Linux支持

Jeff不久前在32位Vista中谈到了这一点


32位Vista中的32位4GB内存上限是否也适用于32位Ubuntu?有没有32位操作系统创造性地解决了这个问题?

理论上,所有32位操作系统都有这个问题。您有32位要进行寻址

2^32 bits / 2^10 (bits per kb) / 2^10 (kb per mb) / 2^10 (mb per gb) = 2^2 = 4gb.

尽管有一些方法可以解决这个问题。(查看从16位计算到32位计算的跳跃。他们遇到了相同的问题。)

Linux支持一种称为PAE的技术,它允许您使用超过4GB的内存,但我不知道Ubuntu是否默认启用了它。您可能需要编译一个新内核


编辑:Ubuntu论坛上的一些帖子建议默认情况下服务器内核已打开PAE,您可以尝试安装它。

是的,32位Ubuntu具有相同的内存限制

4GB限制也有例外,但它们是特定于应用程序的。。。与中一样,Microsoft Sql Server可以使用16 GB,并配置和支持“物理地址扩展”[PAE],以及。。。啊

此外,ubuntu和windows中的驱动程序都通过将4GB地址空间中的内存映射到设备来减少4GB地址空间中可用的内存量。图形卡在这方面尤其糟糕,您的256MB图形卡占用了至少256MB的地址空间


如果您[您的驱动程序支持它,而且cpu足够新],请安装64位操作系统。您的32位应用程序和游戏将运行良好

在windows中,有一个叫做的东西,这意味着你可以在windows机器上访问高达64 GB的内存。缺点是大多数应用程序不支持实际使用超过4GB的RAM。只有少数应用程序(如SQL Server)被编程为实际利用所有额外内存。

Ubuntu Server在内核中启用了PAE,桌面版默认情况下没有启用此功能


顺便说一句,这解释了为什么Ubuntu服务器不能在某些硬件模拟器中工作,而桌面版却可以

PAE似乎有些混乱。PAE是“页面地址扩展”,绝不是Windows功能。这是英特尔在奔腾II(及更新版本)芯片中加入的一种黑客手段,允许计算机访问64GB内存。在Windows上,应用程序需要明确支持PAE,但在开源世界中,可以根据您的喜好编译和优化包。Ubuntu(和其他Linux发行版)上可能使用超过4GB内存的软件包是使用PAE支持编译的。这包括所有特定于服务器的软件。

PAE是操作系统访问4Gb以上物理内存的方式。Linux也支持这一点。它不允许应用程序使用超过3Gb的地址空间。Windows为像SQL server这样的应用程序提供了一种令人讨厌的方式,使其占用的内存比这还要多;我不知道linux有什么类似的功能。确实存在一些混乱,而且您并没有让它变得更好。PAE不允许应用程序透明地访问它。事实上,这怎么可能呢?由于地址寄存器中只有32位访问超过4GB,因此需要应用程序支持。事实并非如此。从理论上讲,32位应用程序和游戏大多运行良好。实际上这是一个巨大的麻烦,这是不正确的。运行支持PAE_的内核之一的32位Ubuntu支持超过4GB的物理RAM。但仍存在每个进程的限制。是的,在32位模式下使用超过4 GB的RAM需要在/dev/shm或其他一些RAMF或tmpfs中映射和取消映射文件。解决此问题的标准方法是使用PAE提供36位进行寻址。无需编译,只需安装包即可。