摘要: 今天有人问我linux kernel里的high memory是怎么回事,说的比较乱,现在整理下。high memory只存在于32位kernel下,以下文字都针对32位kernel。1)什么是high memory,为什么要有high memoryLinux人为的把4G虚拟地址空间(32位地址最多寻址4G)分为3G+1G,其中0~3G为用户程序地址空间,3G~4G为kernel地址空间(为什么要这么分?为什么用户程序和kernel不能各自独享4G虚拟地址空间?这两个问题下次再说吧,这里不表),这就是说kernel最多寻址1G的虚拟地址空间。当CPU启用MMU的paging机制后,CPU访问的 阅读全文