# 缩写
"brk"是"break"的缩写,它是一个系统调用,用于改变程序的堆空间大小。在编程中,通过调用brk系统调用,程序可以请求操作系统增加或减少它的堆空间,以动态地管理内存。所以,"brk"这个缩写实际上表示"break"。
# 历史
“brk”这个术语并不是用于表示"break"的意思,而是来自早期的计算机系统和汇编语言的历史。在早期的计算机系统中,堆空间的位置由一个特定的内存地址来控制,通常称为"break point"(断点)。通过修改这个"break point"地址,程序可以增加或减少堆空间的大小。
因此,"brk"这个术语实际上是来自于"break point"的缩写,并非来自英语单词"break"(打破)的意思。虽然从英语的角度来看可能会引起混淆,但它在计算机系统和编程领域中成为了一个历史上的约定用语。随着时间的推移,这种术语逐渐被其他更易理解的名称所取代,如现代编程语言中的"malloc"和"free"等函数来管理动态内存分配。
# 进程地址空间
## 进程地址空间大概如下:
---
内核空间 256T
----
非规范区
----
用户空间
----
## 用户空间布局
---
用户栈
--- start_stack
用户栈↓
mmap vma↑
--- mmap_base
--- brk
堆VMA↑
--- start_brk
数据段vma
--- start_data
代码段vma
--- start_code
其他
--- 0x0
# 综述:
brk是break 是修改堆大小的特定术语 沿用历史上断点添加修改堆
brk作用是修改堆空间的上限,途中brk地址位置