手机版万能视频提取器,乐陵seo优化推广,郴州网站建设服务,西宁做网站君博推荐接上文#xff0c;为了描述清楚文件格式的本质#xff0c;咱们先从最基本的“段”说起。
程序中最重要的部分就是段#xff08;segment#xff09;和节#xff08;section#xff09;#xff0c;它们是真正的程序体#xff0c;是真真切切的程序资源#xff0c;所以下…接上文为了描述清楚文件格式的本质咱们先从最基本的“段”说起。
程序中最重要的部分就是段segment和节section它们是真正的程序体是真真切切的程序资源所以下面的说明咱们以它们为例。程序中有很多段如代码段和数据段等同样也有很多节段是由节来组成的多个节经过链接之后就被合并成一个段了之前咱们有通过实例解释过segment和section之间的关系。
段和节的信息也是用header来描述的程序头是program header节头是section header。
程序中段的大小和数量是不固定的节的大小和数量也不固定因此需要为它们专门找个数据结构来描述它们这个描述结构就是程序头表program header table和节头表section header table。既然程序头表和节头表都称为表这说明里面存储的是多个程序头program header和多个节头section header的信息故这两个表相当于数组数组元素分别是程序头program header和节头section header。再次强调这两个表是用来将汇总程序头和节头的表表中元素是头信息。也就是说程序头表program header table中的元素全是程序头program header而节头表section header table中的元素全是节头section header。虽然上面是将两个表一块说明的但表中的元素全是单一的不会在程序头表中存在节头信息。
在表中每个成员数组元素都统称为条目即entry一个条目代表一个段或一个节的头描述信息。对于程序头表它本质上就是用来描述段segment的所以您也可以称它为段头表。从名字上就能够看出段等同于程序所以将描述段信息的表说成program header table可见“段”才是程序本身的组成部分。
由于程序中段和节的数量不固定程序头表和节头表的大小自然也就不固定了而且各表在程序文件中的存储顺序自然也要有个先后故这两个表在文件中的位置也不会固定。因此必须要在一个固定的位置用一个固定大小的数据结构来描述程序头表和节头表的大小及位置信息这个数据结构便是ELF header它位于文件最开始的部分并具有固定大小一会咱们看elf header的数据结构就知道了。
ELF header是个用来描述各种“头”的“头”程序头表和节头表中的元素也是程序头和节头可见elf文件格式的核心思想就是头中嵌头是种层次化结构的格式。