【发布时间】:2012-05-06 12:21:59
【问题描述】:
因此,作为一项挑战,为了提高性能,我正在编写一个简单的汇编服务器。我知道的唯一方法是通过系统调用。 (通过int 0x80)显然,我需要比在组装或加载时分配的更多内存,所以我阅读并决定我想使用sbrk(),主要是因为我不理解mmap():p
无论如何,Linux 没有为 sbrk() 提供中断,只有 brk()。
那么...如何找到当前程序中断以使用 brk()?我考虑过使用 getrlimit(),但我不知道如何获取资源(我猜是进程 ID)传递给 getrlimit()。还是我应该找到其他方法来实现 sbrk()?
【问题讨论】:
-
欢迎来到 Stack Overflow! “我知道的唯一方法是通过系统调用。”。还有一些库调用,例如
sbrk。还是您的意思是“在没有 libc 的汇编中”? -
我不确定如何调用库。 (但仍然不知道如何)你认为库调用比系统调用快吗?
-
mmap很简单。不过,这对于小额分配并不好。
标签: linux assembly system-calls sbrk