为什么 Go 中的堆是可执行的?
Why is the heap in Go executable?
我最近看了这篇文章http://codearcana.com/posts/2012/05/06/securing-and-exploiting-go-binaries.html
它在 Go 中声称堆是可执行的。这对我提出了几个关于运行时和操作系统之间交互的不同问题。
在 C 语言中,当程序需要 space 在堆上时,它会调用 malloc,然后调用 sbrk 为其提供内存。据我所知,在 C 中,堆是只读的。
为什么Go中的堆是可执行的?应用程序有什么不同 - OS Go 中的交互与 C 中的交互?
谢谢
Why is the heap in Go executable?
Go 堆自 2013 年以来不可执行。
代码是在运行时为 Go 1.1 之前的函数文字生成的,因此需要一个可执行堆。函数调用 revamped in Go 1.1 消除了对可执行堆的需求并提供其他好处。
我最近看了这篇文章http://codearcana.com/posts/2012/05/06/securing-and-exploiting-go-binaries.html 它在 Go 中声称堆是可执行的。这对我提出了几个关于运行时和操作系统之间交互的不同问题。
在 C 语言中,当程序需要 space 在堆上时,它会调用 malloc,然后调用 sbrk 为其提供内存。据我所知,在 C 中,堆是只读的。
为什么Go中的堆是可执行的?应用程序有什么不同 - OS Go 中的交互与 C 中的交互?
谢谢
Why is the heap in Go executable?
Go 堆自 2013 年以来不可执行。
代码是在运行时为 Go 1.1 之前的函数文字生成的,因此需要一个可执行堆。函数调用 revamped in Go 1.1 消除了对可执行堆的需求并提供其他好处。