系统调用
TODO
此处需要补充一些关于系统调用的额外说明。
X86 架构特有的系统调用
通过分析 Linux 6.1 版本的内核源码筛选系统调用实现情况可知, 下列 4 个系统调用是仅在 X86 架构下具有的:
- epoll_ctl_old
- epoll_wait_old
- old_getpagesize
- timerfd
上述 4 个系统调用在最新版本的 Linux 内核中均已被弃用。 若软件项目版本过老仍然在使用这些系统调用,请考虑修改为对应新版本的系统调用:
- epoll_ctl_old:使用
epoll_ctl
替代 - epoll_wait_old:使用
epoll_wait
替代 - old_getpagesize;使用
getpagesize
替代 - timerfd:使用
timerfd_create
替代
RISC-V 架构特有的系统调用
通过分析 Linux 6.1 版本的内核源码筛选系统调用实现情况可知, 下列 2 个 RISC-V 架构内核的系统调用在 ARM 和 X86 两种架构中的至少一种上没有出现。
RISC-V 系统调用名称 | ARM 架构是否包含 | X86 架构是否包含 |
---|---|---|
fadvise64_64 | × | √ |
riscv_flush_icache | × | × |
上述 2 个系统调用,在将软件适配至 RISC-V 架构时,需留意检查是否需要使用。