问题标签 [brk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - sbrk/brk 在 Linux 中是如何实现的?
我在考虑 Linux 内核是如何实现系统调用的,我想知道是否有人可以给我一个关于 sbrk/brk 工作原理的高级视图?
我已经查看了内核代码,但是其中有很多,我不明白。我希望有人提供摘要?
memory-management - 当 brk 减少然后再次增加时,Linux 内核是否清除了内存?
我只是想知道用户程序通过 brk 系统调用释放的内存会发生什么,然后又回来了。内核是否将其清除或内容未定义?
我相信内核在通过 brk 新分配页面时会清除它们,但是如果返回该页面,然后再次请求返回,我无法确定是否将它们全部归零。我正在浏览 lxr.linux.no 试图找出答案。我也会看看这篇文章中建议的书。
感谢您的回复。
蒂姆
c - 什么是程序中断?它从哪里开始,0x00?
以 0 为增量调用 sbrk() 可用于查找程序中断的当前位置。
什么是程序中断?它从哪里开始,0x00?
c - brk 和 sbrk 代表什么?
虽然我知道 Unix 系统调用brk
和函数的作用sbrk
,但我不知道它们代表什么。任何人都可以启发我吗?
linux - 内核源——在哪个文件中定义了 brk()
我想知道在内核源代码版本 >= 2.6 中brk
定义的位置。那是哪个c文件包含它的定义?grep
没有透露太多。也在sbrk
glibc中实现正确吗?
c - 关于我首先拟合 malloc 函数的方法的意见和建议
我正在为大学作业编写 malloc 函数。这是我的想法的基本布局:
1)定义一个节点结构,其中包含指向前一个节点、下一个节点的指针,以及一个用于大小和空缺的字符。堆中的每个区域都将包含一个带有此信息的隐藏节点。
2)malloc函数。从第一个节点循环开始,通过每个节点检查空缺。如果一个节点是空的并且足够大,则将一个 ptr 返回到不包括该节点的区域的开头。如果没有可用空间,请使用 sbrk 为节点分配请求的空间 PLUS 空间。
3)自由功能。转到作为参数sizeof(结构节点)传递的指针并将空缺设置为空缺。然后从列表的开头开始,遍历列表合并相邻的空闲空间。
这种方法听起来如何?我主要关心的是实际启动链表。例如,在开始进行任何分配并将 ptr 作为全局变量存储到它之前,是否应该使用 sbrk 创建一个节点?如果是这样,在允许驱动程序调用 malloc 函数之前如何初始化第一个节点?
提前致谢。我不是要求有人编写我的代码,只是为了提供一些关于我的想法的见解和建议。
segmentation-fault - brk 调用后的 x86_64 printf 段错误
当我尝试使用 brk (int 0x80 with 45 in %rax) 在汇编中实现一个简单的内存管理器程序并按顺序打印块时,我一直遇到段错误。过了一会儿,我只能重现错误,但不知道为什么会这样:
在此处的示例中,如果注释行未注释,则我有段错误,但某些命令(如 de movq $0, %rax)工作正常。在我的另一个程序中,前几个 printf 工作,但第三个崩溃...寻找其他问题,我听说 printf 有时会分配一些内存,并且不应该使用 brk,因为在这种情况下它会破坏堆或者什么...我很困惑,有人知道吗?
编辑:我刚刚发现要让 printf 工作,你需要 %rax=0。
posix - 使用 brk 获取 brk_start
int brk(void *end_data_segment) 手册;说:“brk() 将数据段的结尾设置为 end_data_segment 指定的值”
成功时返回 0,否则返回 -1。
但是如何获得我的中断的初始值(如 sbrk(0))?
此致,
linux - 汇编 x86 brk() 调用使用
我正在尝试将内存动态分配到堆中,然后在这些内存地址中分配值。我了解如何分配内存,但是我如何将例如寄存器中的值分配给第一个动态内存地址?这是我到目前为止所拥有的:
mov
例如,我rax
会怎么做brk_firstLocation