在x86-64中,有3个TLS条目,其中两个可通过FS和GS访问,FS由glibc内部使用(在IA32中,FS由Wine和GS由glibc使用)。
Glibc使其TLS入口指向,
structpthread其中包含一些用于线程的内部结构。Glibc通常将
structpthread变量引用
pd为 pthread描述符 。
在x86-64上,
structpthread以a开头
tcbhead_t(这取决于体系结构,请参见宏
TLS_DTV_AT_TP和
TLS_TCB_AT_TP)。即使只有一个线程,此线程控制块头AFAIU仍包含一些必填字段。DTV是动态线程向量,并且包含指向通过加载的DSO的TLS块的指针
dlopen()。在TCB之前或之后,在(程序)加载时链接了可执行文件和DSO的静态TLS块。Ulrich
Drepper的TLS文档中对TCB和DTV进行了很好的解释(请参阅第3章中的图)。



