小编der*_*ann的帖子

为什么没有文件插入系统调用

据我了解,对于操作文件,Linux 中只有 sys_write 系统调用,它会覆盖文件内容(或扩展它,如果在最后)。

为什么在 Linux 中没有用于在文件中插入或删除内容的系统调用?

由于所有当前的文件系统都不需要将文件存储在连续的内存块中,因此应该有可能实现高效的实现。(文件会碎片化。)

由于文件系统具有“写入时复制”或“透明文件压缩”等特性,当前插入内容的方式似乎非常低效。

system-calls file-copy files

11
推荐指数
2
解决办法
1784
查看次数

为什么没有实现复合系统调用之类的东西?

由于内核和用户空间之间的隔离,系统调用(system\xc2\xa0calls)会导致一些性能损失。\xc2\xa0因此,减少系统调用听起来是个好主意。

\n

所以我的想法是,我们可以将系统调用打包成一个。因此,我们的想法是将系统调用和\xc2\xa0参数\放在内存中的一个简单数据结构中。\xc2\xa0然后我们可以引入一个新的系统调用,我们给出这个数据结构。\xc2\xa0The\xc2\xa0kernel可以然后并行触发所有功能,并在一个(或所有)系统调用完成时恢复线程。

\n

我认为这种方法将成为并发编程(异步 I/O)的良好基础,并且通过允许任何系统调用上的并发并减少总体上下文切换来改进现有的 select/poll/epoll 解决方案。

\n

为什么没有这样做?

\n

system-calls

11
推荐指数
3
解决办法
2369
查看次数

标签 统计

system-calls ×2

file-copy ×1

files ×1