分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)

分配粒度和内存页面大小

x86处理器平台的分配粒度是64K,32位CPU的内存页面大小是4K,64位是8K,保留内存地址空间总是要和分配粒度对齐。一个分配粒度里包含16个内存页面。

这是个概念,具体不用自己操心,比如用VirtualAllocEx等函数,给lpAddress参数NULL系统就会自动找一个地方分配你要的内存空间。如果需要自己管理这个就累了......

一个分配粒度是64K,这就是为什么Null指针区域和64K进入区域都是 64K的原因,刚好就是一个分配粒度。
一个内存页是4K,这就是为什么PE文件中的section都是0x1000对齐.
硬盘扇区大小是512字节,这就是为什么PE文件默认文件对齐是0x200.

这些数字绝对不是心血来潮设定出来的,而是综合了硬件结构和操作系统架构设定的。

http://blog.csdn.net/mysouling/article/details/8676198

时间: 2024-10-01 06:22:29

分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)的相关文章

华为拥抱开源 Alluxio:内存将成重要战略平台

华为公司近日宣布将利用自家FusionStorage产品与Alluxio开源软件实现大数据分析加速;此举相信能够为令人昏昏欲睡的缓慢数据分析流程带来一股新风. 华为拥抱开源Alluxio:内存将成重要战略平台 Alluxio此前曾名为Tachyon Nexus,是一家由Andreessen Horowitz资助的初创企业. FusionStorage 则属于华为公司旗下的分布式软件定义存储系统.其最新FusionStorage 6.0(基础教程qkxue.net)支持分布式块.文件与对象存储,同

shell学习之查找当前目录下文件以及文件夹大小-'du'命令和'df'命令

经过前几天的磁盘写满的事件之后,发现自己对du这个命令完全不知道,所以下决心要学习一番. 我就当一盘搬运工吧,外网找到一个教程 'du'就是查找文件夹的大小 du Typing the above at the prompt gives you a list of directories that exist in the current directory along with their sizes. The last line of the output gives you the tot

java _io_图片到内存(字节数组),字节数组到文件,练习文件流和字节数组流

//图片读取到字节数组中,字节数组写出到文件 public class test{ public static void main(String[]args) { String path="C:/Users/10853/eclipse-workspace/hell/linux学习路线.png"; byte[] data=toByteArray(path); //图片不能直接到字节数组中,is.read()返回的是int类型的大小,new String是解码 //需要写入字节数组(内存)

Jupyter修改默认文件保存路径

一.Jupyter安装 前提需要已经安装好python环境~ 接着,Python3x版本安装路径下执行pip命令安装 pip3 install Jupyter 看网速,安装完后会显示安装成功一段话即可. 二.启动jupyter notebook两种方法 1:命令行窗口输入jupyter notebook ,浏览器自动打开jupyter notebook 2:找到安装路径(例如:我是D:\Python36\Scripts )下的jupyter-notebook.exe文件双击直接运行,此时工作路径

【X86】---X86处理器大小端的数据存储验证

之前也关注过大小端的存储,可能时间久了,加之又之前的电脑抽象换成了当前的处理器寄存器的值判断,导致自己总是有点蒙圈.看Spec手册的时候,有时会无法与手册中某个Bit的值与RU/RW工具读出来的对应上.这就很尴尬了.专门花时间整理下该部分的内容: 1. 什么是大小端 先解释下什么是大小端(自行百度) 2. X86处理器用RU工具读取的值如何与Spec的描述进行Bit对应 2.1 如:下面是一个Spec中GP_LVL寄存器,另一个是RU工具读出来的.我想判断该寄存器的Bit3的值是多少,这下犯难了

查看文件和文件夹大小

df:显示磁盘空间使用情况.获取硬盘被占用了多少空间,目前还剩下多少空间等信息.可以查看一级文件夹大小.使用比例.档案系统及其挂入点. 常用命令参数:-h  h代表‘Human-readable’以KB.MB.GB为单位显示,方便阅读 第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点.Size.Used.Avail.及 Use% 分别是该分割区的容量.已使用的大小.剩下的大小.及使用的百分比. du:也是查看使用空间的,但是与df命令不同的是du命

question --> maven assembly plugin 修改文件默认权限

使用maven assembly plugin插件添加执行脚本时,发现默认权限为644,还需要手动添加执行权限.这很麻烦,于是查看文档 官方文档 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_fileSet fileMode String Similar to a UNIX permission, sets the file mode of the files included. THIS IS

文件与文件夹的默认权限与隐藏权限

除了基本r, w, x权限外,在Linux的Ext2/Ext3文件系统下,我们还能够配置其它的系统隐藏属性, 这部份可使用 chattr来配置,而以 lsattr 来查看. 文件默认权限:umask umask 就是指定眼下使用者在创建文件或文件夹时候的权限默认值. # umask 0022 <==与一般权限有关的是后面三个数字! # umask -S u=rwx,g=rx,o=rx 查阅的方式有两种.一种能够直接输入 umask ,就能够看到数字型态的权限配置分数,一种则是增加 -S (Sym

新浪微博客户端(62)-计算某个文件或文件夹的大小

NSString+Extension.m /** * 计算当前路径字符串指定的文件/文件夹大小 * 文件/文件夹大小,-1代表指定的文件或文件夹路径不存在,以字节为单位 */ - (NSInteger)fileSize { NSFileManager *mgr = [NSFileManager defaultManager]; BOOL dir = NO; BOOL exists = [mgr fileExistsAtPath:self isDirectory:&dir]; if (!exist