最近两天因为工作的关系,在了解配置和密钥,看到 环境变量 时忽然想探究一下它究竟是从哪里来。
这里总结一下:
- 环境变量常常继承
- OS(特指 Linux,其他未查)的环境变量从 cmdline 来[1],也内建了两个,HOME 和 TERM[2]
- 它们存储在程序的调用栈上,是一个**char的数组
- 部分程序例如 Bash Shell,有自己的管理系统[2],我想这大概也就是 export 的存在的原因
参考资料:究竟环境变量从哪里来(English)
注:
- unknown_bootoption 🔗
- envp_init 🔗
- variables.c