Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

请问一个关于 m 和主线程绑定的问题。(顺便提个 typo) #54

Open
dingshinn opened this issue Jul 26, 2022 · 0 comments

Comments

@dingshinn
Copy link

dingshinn commented Jul 26, 2022

问题描述

作者你好,想请问下,关于书中第 201 页以及其他一些函数中会用到一个 get_tls 方法。我能理解汇编可以通过 fs 段找到 m.tls,但是想问下这里为啥不能直接在 m 这个结构体上获取 g 呀?比如在这个 schedinit 函数中,m0 就是和他同一个包的全局变量,直接从它身上把 m0.tls 捞出来再去拿 g,这样会有什么问题么?
另外还想请问下,所谓的把 m 和主线程绑定,我理解本质上就是通过系统调用把 m.tls[1] 的地址存到 fs 段指向的内存,这个的目的除了是可以直接通过汇编的方式以 fs 寄存器找到当前的 m.tls(比如 get_tls)之外,还有其他的什么作用么?
另外有个 typo,在图片中的 “BX 存器里面现在放的是当前 g 结构体对象的地址”中的 BX 后边少了个寄存器的 “寄”。
WechatIMG33

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant