Go运行时如何用Go编写?

时间:2016-01-13 00:16:18

标签: go runtime bootstrapping

I read来自Go 1.4,Go运行时是用Go本身(而不是C语言)编写的。

这怎么可能?如果Go程序在运行时之上运行,并且运行时是Go程序,那么运行时是否在它自身之上运行?

1 个答案:

答案 0 :(得分:3)

简而言之:小心。

总之:不安全的包允许你做指针算术和任意转换,你需要实现go gc。您可以避免在gc go代码中使用gc,就像在正常的go代码中一样:使用堆栈或静态分配的数据。下面的链接提到主线go编译器通过未记录的选项在运行时强制执行此操作。一些汇编位允许您进行系统调用,这使您可以执行从生成过程到打开文件的所有操作。

越长越权威:请参阅Ian Lance Taylor (of the go team)'s post on golang-nuts