64/32位Linux系统的差异(地址空间布局,系统调用)对比分析

Ubuntu从17.10开始不再官方支持32位(i386)架构(严格的说是从18.04开始的,因为17.10不支持32位的PC版,但是支持32位的SERVER版,但是偶数稳定版确实是从18.04开始的),只支持64位(amd64)架构,这是因为随着时间的推移,64位系统变得越来越普遍,并且可以更好的利用现代计算机的硬件性能和内存容量,此外,随着软件的发展和更新,许多应用程序都不再提供32位版本,而只提供64位版本,这也促使ubuntu停止更新32位架构。尽管如此,ubuntu18.04仍然提供了32位版本的软件包和库,以便支持老旧系统和应用程序。镜像下载链接:

Index of /releases

内核的架构是由内核自身决定的,和发行版无关,之所以提到UBUNTU是因为后面的实验是在UBUNTU环境下进行的。Linux内核在 32位和64位架构上有着不同的地址空间范围,在32位架构中,地址空间一共32位,从[0x00000000,0xFFFFFFFF],总共是4GB,这个地址空间被分成用户空间和内核空间两个部分,不同的架构划分方式有所不同,通常是按照3G用户1G内核的分法。

相比之下,在64位架构中,范围为[0x0000000000000000,0xFFFFFFFFFFFFFFFF],这个范围如此之大,以至于当前没有任何应用需要这么大的空间,所以实际上这个地址空间并不会被占满,而是用户空间和内核空间分别占用一部分,剩下的保留不用。当前的主流实现是,64位地址空间,Linux64位操作系

猜你喜欢

转载自blog.csdn.net/tugouxp/article/details/130586982
今日推荐