健壮互斥与内核健壮性接口(robust mutex/PREEMPT_RT/PSI)

共 55 题
#

1. PTHREAD_MUTEX_ROBUST 在锁持有进程死亡后 next-owner 恢复的工程价值?

A EOWNERDEAD 表示锁可无恢复直接使用
B 普通 mutex 也支持崩溃后所有权转移
C robust mutex 不需要内核支持
D robust mutex 通过内核 robust_list 在持锁进程死亡时把锁所有权转移给下一个等待者并返回 EOWNERDEAD,调用 consistent 恢复后才可正常使用,防止进程级死锁 ✓ 正确答案
#

2. robust mutex 在 Linux kernel 的 robust_list futex 工程价值?

A robust_list 只支持单进程内
B robust_list 由用户态信号处理器清理
C 内核不参与 robust mutex 处理
D robust_list futex 让内核在进程退出时遍历其登记的 robust mutex、唤醒等待者并标记 owner died,把崩溃安全的锁所有权转移落到内核退出路径 ✓ 正确答案
#

3. PREEMPT_RT 把大多数内核 spinlock 转为可抢占的 rt_mutex(睡眠锁),这在降低最坏延迟的同时为何会牺牲一部分吞吐?

A rt_mutex 无需优先级继承
B rt_mutex 比 spinlock 吞吐更高
C PREEMPT_RT 把 spinlock 换成可抢占的 rt_mutex,降低最坏延迟但引入睡眠/唤醒切换开销、优先级继承维护与临界区不确定,牺牲部分吞吐 ✓ 正确答案
D 睡眠锁可在任意中断上下文使用
#

4. io_uring restricted mode(IORING_SETUP_R_DISABLED)限制 IO 类型的工程价值?

A restricted mode 只能注册一次且可随时修改
B restricted mode 放开所有 io_uring 操作
C restricted mode 以禁用状态创建 io_uring 并注册允许的 opcode 白名单,其余操作被拒,收窄能力面、配合 seccomp 构成纵深防御 ✓ 正确答案
D restricted mode 与安全沙箱无关
#

5. PSI(Pressure Stall Information,/proc/pressure/cpu|memory|io)some/full avg10/avg60/avg300 字段?

A PSI 只有 CPU 指标
B PSI 通过 some/full 区分"部分/全部任务停滞",avg10/avg60/avg300 为不同时长的滑动平均比例,用于量化 CPU/内存/IO 资源压力 ✓ 正确答案
C some 表示资源完全饱和
D avg300 反映瞬时压力
#

6. Soft-iWARP(siw)作为 in-kernel TCP-based RDMA 的工程价值?

A siw 需要专用 RNIC 硬件
B siw 用内核 TCP 栈软件模拟 iWARP 协议,让无 RNIC 的环境可开发测试 RDMA 应用,但性能低于硬件 RDMA ✓ 正确答案
C siw 达到硬件 RDMA 的性能
D siw 不提供 verbs API
#

7. netdev_budget_usecs 在 softirq 处理时间预算的工程价值?

A softirq 无时间预算限制
B netdev_budget_usecs 只限制包数
C netdev_budget_usecs 限制网络 softirq 的处理时间(微秒),超时退出让出 CPU,防止网络处理垄断 CPU、保证公平与低延迟 ✓ 正确答案
D 增大时间预算一定降低延迟
#

8. kTLS(kernel TLS)将 TLS 卸载到内核(OpenSSL SPL_GCM_tls)+ sendfile/recvmsg 在 TLS 的工程价值?

A kTLS 仍需用户态逐段加解密
B kTLS 把 TLS 记录加解密下沉到内核,配合 sendfile/recvmsg 实现零拷贝加密发送与接收,减少用户态-内核拷贝与系统调用 ✓ 正确答案
C sendfile 无法与 kTLS 结合
D kTLS 增加系统调用次数
#

9. KASAN modes(generic、tag-based、SW-TAGS)的工程取舍?

A 硬件 MTE 不需要硬件支持
B 三种模式开销相同
C tag-based 比 generic 检测更精确
D generic 模式用影子内存+红区检测最全但开销大,tag-based 用地址标签降低开销但检测粒度下降,硬件 MTE 最轻量但需 ARMv8.5+ 硬件 ✓ 正确答案
#

10. Landlock(Linux 5.13+)LSM 沙箱的文件系统访问控制?

A Landlock 允许无特权进程通过规则集限制自身及子孙的文件系统访问,restrict_self 单向收紧,与 seccomp 互补构成沙箱纵深防御 ✓ 正确答案
B Landlock 需要 root 权限
C Landlock 规则集可随时撤销
D Landlock 只能限制系统调用
#

11. POSIX 1003.1-2017 的 XBD(Base Definitions)、XSH(System Headers)、XCU(Shell & Utilities)三大卷结构?

A XCU 定义系统调用函数
B XSH 只定义 shell 命令
C POSIX.1-2017 分 XBD(基础定义)、XSH(系统接口与头文件)、XCU(shell 与工具)三卷,分别规范公共概念、C 接口与命令行工具 ✓ 正确答案
D 三卷内容互相重叠
#

12. netdev budget(netdev_max_backlog)在 NAPI poll 的 packet 处理上限?

A netdev_max_backlog 限制单次 poll 包数
B netdev budget 是接收队列长度
C netdev budget 限制单次 NAPI poll 处理的包数防止 CPU 垄断,netdev_max_backlog 限制接收队列深度、满则丢包,二者控制不同层面 ✓ 正确答案
D 两个参数作用完全相同
#

13. Landlock 在容器与 sandbox(Chromium、V8 sandbox)的工程价值?

A Landlock 以无特权方式限制进程文件系统路径,容器与 Chromium/V8 沙箱用它收窄能力面,与 seccomp 互补构成纵深防御 ✓ 正确答案
B Landlock 需要 root 才能使用
C Landlock 不适用于浏览器沙箱
D Landlock 只限制系统调用
#

14. seccomp notify(SECCOMP_RET_NOTIFY)在 supervisor sandbox 通过 pollable fd 接管 syscall 决策的工程价值?

A NOTIFY 由内核静态决定放行
B SECCOMP_RET_NOTIFY 把触发 syscall 经 pollable fd 通知 supervisor,supervisor 可查看参数并动态决定允许/拒绝,实现比静态 BPF 更细的审核 ✓ 正确答案
C notify fd 不可被 poll
D supervisor 无法查看 syscall 参数
#

15. PREEMPT_RT(Linux 6.x)的 CONFIG_PREEMPT_RT 在 spinlock→rt_mutex 转换的工程价值?

A 实时系统不关心内核可抢占性
B CONFIG_PREEMPT_RT 不改变内核锁行为
C rt_mutex 不支持优先级继承
D CONFIG_PREEMPT_RT 把内核 spinlock 转为可抢占的 rt_mutex 并支持优先级继承,使内核路径可抢占、降低最坏延迟,满足实时系统要求 ✓ 正确答案
#

16. PREEMPT_RT 在 Linux 6.x 完全 merged(替代 PREEMPT_LAZY)的状态?

A PREEMPT_RT 取代了 PREEMPT_LAZY
B PREEMPT_RT 仍是独立补丁集
C Linux 6.x 中 PREEMPT_RT 已完全合入主线、取代 PREEMPT_LAZY,主线内核开箱即可构建实时系统,无需外部补丁 ✓ 正确答案
D 主线内核不支持实时抢占
#

17. BPF LSM(Linux 6.x)将 LSM hook 暴露给 BPF 程序实现 custom security policy 的工程价值?

A BPF LSM 需要编写内核模块
B BPF LSM 把 LSM hook 暴露给 BPF 程序,使安全策略可编程、动态加载、无需内核模块,可与 SELinux/AppArmor 协同叠加 ✓ 正确答案
C BPF LSM 策略不可动态修改
D BPF LSM 与 SELinux 互斥
#

18. cgroup v2 的 RDMA subsystem(rdma.max)在 RDMA 资源隔离的工程价值?

A RDMA 资源无需限制
B rdma.max 限制 CPU 使用
C cgroup v2 不支持 RDMA 隔离
D cgroup v2 RDMA 子系统通过 rdma.max 限制每组 RDMA 队列与内存对象数量,实现多租户隔离与资源预算,防止超用 ✓ 正确答案
#

19. KMSAN 在 KMSAN_ORIGIN_MASK tracking 的工程价值?

A KMSAN 检测未初始化内存使用,KMSAN_ORIGIN_MASK 记录未初始化数据的来源堆栈,使报告能追溯到污染根因而非只报使用点 ✓ 正确答案
B KMSAN 只报使用点不追踪来源
C KMSAN 检测越界访问
D KMSAN_ORIGIN_MASK 与来源无关
#

20. Landlock ruleset 的 hierarchical flag in inheritance 的工程价值?

A Landlock 规则集应用后沿进程树继承且不可撤销,子进程继承父进程限制,防止通过 fork/exec 逃逸沙箱,构成层级一致约束 ✓ 正确答案
B 子进程可解除父进程的 Landlock 限制
C Landlock 规则只作用于当前进程
D 规则集可随时放宽
#

21. userfaultfd 在 QEMU、PostgreSQL、gc ordering pause 的工程应用?

A userfaultfd 让用户态接管缺页处理,QEMU 用它实现 postcopy 按需拉取迁移,PostgreSQL/GC 用它实现用户态可控的内存管理与访问暂停 ✓ 正确答案
B userfaultfd 由内核自动处理缺页
C userfaultfd 只能用于文件映射
D userfaultfd 与用户态无关
#

22. IORING_SETUP_IOPOLL 让用户态轮询完成而非等待 IRQ,它在降低 I/O 延迟的同时为何增加 CPU 占用与功耗?

A 轮询不增加功耗
B IOPOLL 比中断驱动更省 CPU
C IOPOLL 依赖设备中断通知
D IOPOLL 让用户态持续轮询完成队列,消除中断与唤醒延迟而降低 I/O 延迟,但忙轮询占用 CPU、增加功耗,适合低延迟专用核场景 ✓ 正确答案
#

23. POSIX 1003.1-2017 在 realtime、threads、advanced realtime extensions、corrections 的版本演进?

A POSIX.1-2017 整合了 realtime、threads、advanced realtime extensions 并累积 corrections,是当前综合权威版本 ✓ 正确答案
B 各扩展卷至今仍是独立标准
C 1003.1-2017 不含线程接口
D corrections 只修文档拼写
#

24. POSIX 1003.1-2017 vs IEEE Std 1003.1-2017 的等同?

A POSIX 1003.1-2017 与 IEEE Std 1003.1-2017 是同一份标准的不同发布组织编号,技术内容等同 ✓ 正确答案
B 两者是不同标准
C 只有 IEEE 发布该标准
D 两者内容完全不同
#

25. PREEMPT_RT 在 audio、低延迟交易、工业控制的延迟保证工程价值?

A 实时场景不需要确定性延迟
B PREEMPT_RT 只适合高吞吐场景
C PREEMPT_RT 提供确定性、有界的最坏延迟,满足 audio 防卡顿、低延迟交易微秒响应与工业控制周期有界响应的实时要求 ✓ 正确答案
D PREEMPT_RT 不保证优先级继承
#

26. rt_mutex 的优先级继承如何缓解优先级反转?

A 优先级反转无法缓解
B 优先级继承能根除所有死锁
C 持锁任务优先级不会提升
D rt_mutex 的优先级继承把持锁任务提升到阻塞它的最高优先级,消除中优先级抢占造成的无限期反转,缩短高优先级任务的阻塞时间 ✓ 正确答案
#

27. BPF LSM 与 crane、Kubernetes 在 合规性 上的取舍与适用场景?

A 两者不可同时使用
B BPF LSM 是声明式策略
C K8s 安全策略精确到内核 hook
D BPF LSM 提供可编程细粒度内核策略但审计弱,K8s 提供声明式可审计的平台级策略但粒度粗,前者适合应用加固、后者适合平台治理,可叠加 ✓ 正确答案
#

28. seccomp 与 io_uring sandbox 协同限制 opcode 的工程价值?

A 两层防御不必要
B seccomp 就能限制 io_uring 内部 opcode
C restricted mode 限制系统调用
D seccomp 在系统调用层过滤 io_uring 使用,restricted mode 在 opcode 层限制操作类型,两层协同收窄能力面、构成纵深防御 ✓ 正确答案
#

29. libcap 的 CAP_IO_URING 实现 restricted mode 兼容性?

A libcap 不能管理 CAP_IO_URING
B 所有进程都需 CAP_IO_URING 才能用 io_uring
C restricted mode 与能力无关
D 无 CAP_IO_URING 默认创建受限 io_uring,有该能力才可执行完整/特权操作;libcap 管理该能力,实现默认受限、按需授权的安全模型 ✓ 正确答案
#

30. eBPF psi.tracepoint 在 custom monitoring 的工程价值?

A eBPF 挂载 PSI tracepoint 可实时采集每次停滞事件并关联进程上下文,实现自定义细粒度监控,比 /proc/pressure 汇总更及时也可编程 ✓ 正确答案
B PSI tracepoint 只能读文件
C eBPF 无法挂载 tracepoint
D tracepoint 与 /proc/pressure 完全重复
#

31. HWCSAN(Hardware Control-flow Sanitizer)如何利用 ARM BTI / Intel IBT 硬件指令实现控制流完整性检查,与纯软件 CFI 相比的开销差异?

A HWCSAN 需要逐跳转插桩检查
B HWCSAN 用 ARM BTI/Intel IBT 硬件指令标记合法跳转目标,间接跳转时硬件校验目标、几乎零开销,比纯软件 CFI 的插桩检查开销低得多但粒度较粗 ✓ 正确答案
C 硬件 CFI 开销比软件 CFI 高
D BTI/IBT 不校验跳转目标
#

32. io_uring io_poll 在 kernel-side poll 避免 epoll 回环的工程价值?

A io_poll 增加系统调用次数
B io_poll 仍需 epoll 等就绪
C io_poll 与 epoll 完全等价
D io_poll 把 fd 就绪等待下沉到 io_uring 内核侧,完成直接进 CQ,避免与 epoll 叠成的回环,统一事件与 IO 完成模型并减少系统调用 ✓ 正确答案
#

33. 为什么 IORING_SETUP_IOPOLL 要求文件以 O_DIRECT 打开?缓冲 I/O 为何无法被轮询完成?

A O_DIRECT 与 IOPOLL 无关
B 缓冲 I/O 也能被设备轮询
C IOPOLL 需轮询设备完成队列,O_DIRECT 让 IO 直达设备、完成可被轮询感知;缓冲 I/O 完成在页缓存层且异步刷盘,无法被设备轮询,故强制要求 O_DIRECT ✓ 正确答案
D IOPOLL 不需要硬件支持
#

34. iopoll 适合低队列深度、低延迟的 NVMe 负载,高并发大吞吐场景为何可能不如中断驱动?

A 轮询不占用 CPU
B 高并发大吞吐下轮询更高效
C 中断驱动延迟总比轮询高
D iopoll 用 CPU 轮询换低延迟,适合低队列深度;高并发大吞吐下轮询占用 CPU 而中断驱动可一次合并处理多个完成且 CPU 更高效,故轮询不如中断 ✓ 正确答案
#

35. io_poll 在 high-rate network IO 的 latency 工程边界?

A io_poll 内核侧等就绪、直接进 CQ 降低延迟,但 high-rate 下 CQ 消费与提交开销成为延迟边界,需 multishot、批量提交与合理队列深度配合 ✓ 正确答案
B io_poll 在极高事件率下无延迟边界
C io_poll 只能单次提交一个 fd
D CQ 消费速度不影响延迟
#

36. io_poll 在无 syscall 上下文切换的高 IOPS 价值?

A 上下文切换不影响 IOPS
B io_poll 每次完成仍需系统调用
C 无 syscall 模式不占用 CPU
D io_poll 配合用户态轮询 CQ 可无 syscall 完成感知,消除系统调用与上下文切换,提升高 IOPS 场景吞吐与延迟,代价是 CPU 占用 ✓ 正确答案
#

37. io_uring multishot accept 的 multishot mode 一次性提交多 accept 的工程价值?

A multishot 减少完成事件
B multishot 每连接需重新提交
C multishot accept 一次提交后请求保持有效、自动为每个新连接产生完成事件,减少重复提交与系统调用,适合高并发连接处理 ✓ 正确答案
D multishot 不适合网关场景
#

38. pthread_barrier_wait 在 master/slave worker 同步的工程应用?

A pthread_barrier_wait 让 N 个线程在屏障会合、全部到达后一起通过,master 与 worker 在阶段边界同步,适合阶段并行与批量任务分发 ✓ 正确答案
B barrier 只需一个线程到达即可通过
C barrier 返回没有特殊线程角色
D barrier 只能用于两个线程
#

39. barrier 在 CUDA/HIP/SYCL host-device 协同的工程价值?

A 内存屏障不保证可见性
B barrier 只用于 host 端
C barrier 在异构计算中提供块内线程同步(__syncthreads)、跨块/全局同步与 host-device 事件时序同步,保证并行正确性与数据一致性 ✓ 正确答案
D host 无需等待 device 完成
#

40. sched_setattr(SCHED_DEADLINE) 的 runtime、deadline、period 参数工程价值?

A SCHED_DEADLINE 不保证带宽
B deadline 参数无关紧要
C 总利用率可超过 1
D SCHED_DEADLINE 用 runtime/deadline/period 定义每周期带宽预算与截止时间,以 EDF 调度,提供可审计的确定性实时保证与准入控制 ✓ 正确答案
#

41. PREEMPT_RT 与 sched_setattr SCHED_DEADLINE 跨 edge、虚拟机、FreeBSD 多平台部署的 ABI/接口兼容性挑战?

A FreeBSD 支持 CONFIG_PREEMPT_RT
B sched_setattr 是 POSIX 通用接口
C 跨 edge/VM/FreeBSD 部署 PREEMPT_RT 与 SCHED_DEADLINE 面临内核配置缺失、虚拟时钟干扰与非 Linux ABI/接口差异,需抽象层与逐平台适配 ✓ 正确答案
D 虚拟机不影响 deadline 精度
#

42. BPF LSM bpf_task_free / bpf_bpf_prog 在 BPF LSM program type 的工程价值?

A bpf_bpf_prog 与 BPF 程序无关
B BPF LSM 无法监控任务生命周期
C bpf_task_free 在任务释放时触发、bpf_bpf_prog 在 BPF 程序管理时触发,BPF LSM 让生命周期事件可被干预与观测,支持资源管理审计 ✓ 正确答案
D BPF LSM hook 只能只读
#

43. BPF LSM 与传统 SELinux/AppArmor 协同的工程边界?

A BPF LSM 负责主体/客体的完整策略模型
B BPF LSM 完全替代 SELinux
C 传统 LSM 与 BPF LSM 不能叠加
D BPF LSM 在 LSM hook 链上作为可编程增量层与传统 LSM 协同,补充细粒度自定义逻辑而不替代 SELinux/AppArmor 的主体策略 ✓ 正确答案
#

44. PSI some 在至少一任务等待的精度 vs full 在所有任务等待的工程差异?

A some 与 full 语义相同
B some 比 full 更严重
C some 表示至少一任务等待(部分竞争、易波动),full 表示所有任务等待(完全饱和、全局瓶颈),告警与扩容通常以 full 为严重信号 ✓ 正确答案
D full 反映局部竞争
#

45. PSI 在 Android LMKD 内存压力检测的工程价值?

A LMKD 不用 PSI 指标
B LMKD 用 PSI memory 的 some/full 停滞指标检测内存压力,提前且精准地触发低内存杀进程,比传统水位阈值更及时、避免系统卡死 ✓ 正确答案
C PSI 无法反映内存压力
D LMKD 只根据水位阈值判断
#

46. io_uring 的 multishot recv 与 poll 如何减少系统调用次数,在连接数固定的网关场景下相比逐次提交的收益是什么?

A multishot recv/poll 一次提交后请求持久、自动产生完成事件,固定连接数网关可减少大量重复提交与系统调用,提升吞吐与降低延迟 ✓ 正确答案
B multishot 每数据单元需重新提交
C multishot 增加系统调用
D 网关场景 multishot 无收益
#

47. cgroup v2 freezer 在 cgroup stop / thaw 的工程价值?

A freezer 只能冻结单个进程
B cgroup v2 freezer 原子冻结/解冻整个 cgroup 内所有进程,比逐进程 SIGSTOP 更统一,适合容器暂停恢复、快照与批量挂起 ✓ 正确答案
C SIGSTOP 能原子冻结整组
D freezer 与容器无关
#

48. cgroup v2 unified hierarchy 的子树控制(subtree_control)的工程价值?

A 所有节点必须启用全部控制器
B cgroup v2 控制器只能全局挂载一次
C subtree_control 与控制器无关
D subtree_control 让父节点决定子树可用的控制器集合,实现控制器委托与层次化职责划分,避免控制器冲突,灵活分配 ✓ 正确答案
#

49. Soft-iWARP 在不需要 RNIC 的 RDMA 演示与测试工程价值?

A siw 无需 RNIC 即可跑通 RDMA 应用,适合演示、测试、教学与 CI,验证逻辑语义但性能低于硬件 RDMA ✓ 正确答案
B siw 需要专用 RNIC 硬件
C siw 可验证硬件性能
D siw 不适合 CI 测试
#

50. kTLS 在 NIC 硬件 offload(TLS HW offload)的工程价值?

A kTLS 与硬件 offload 无关
B 硬件 offload 不需要 NIC 支持
C kTLS 可把 TLS 数据面加解密卸载到支持 TLS offload 的 NIC,降低 CPU 占用、提升加密吞吐,但需硬件支持与配置 ✓ 正确答案
D 硬件 offload 降低吞吐
#

51. ktls-utils 工具在 debug 的工程价值?

A ktls-utils 不提供诊断功能
B ktls-utils 与 kTLS 无关
C ktls-utils 只能加密数据
D ktls-utils 提供 kTLS 的配置验证、密钥管理与诊断工具,帮助排查 kTLS 未生效、数据面错误与 offload 问题 ✓ 正确答案
#

52. GWP-ASan 在 random sampling 减少 KASAN overhead 的 production 价值?

A GWP-ASan 不能捕获 UAF
B GWP-ASan 检查所有分配
C GWP-ASan 开销与 KASAN 相同
D GWP-ASan 用随机采样只检查部分分配,大幅降低开销使内存错误检测可在生产运行,但以漏检换低开销 ✓ 正确答案
#

53. HWCSAN 的 SCS(Shadow Call Stack)协同的工程价值?

A HWCSAN 用 BTI/IBT 校验间接跳转(前向),SCS 用影子栈校验返回地址(后向),两者互补构成纵深控制流完整性保护 ✓ 正确答案
B SCS 与 HWCSAN 覆盖相同方向
C SCS 不校验返回地址
D 两者不能同时使用
#

54. userfaultfd 通过用户态处理缺页(page fault)的工程价值?

A userfaultfd 让用户态接管缺页处理,支持按需加载、自定义内存管理、迁移快照与可控暂停,比内核默认缺页更灵活 ✓ 正确答案
B userfaultfd 由内核自动填充缺页
C userfaultfd 只能用于文件映射
D userfaultfd 不能控制暂停
#

55. multishot recv / read 在 single-submit multi-completion 的工程价值?

A multishot 增加系统调用
B multishot 每次数据需重新提交
C multishot recv/read 一次提交后请求保持有效、自动产生多次完成事件,减少重复提交与系统调用,适合持续数据流的高吞吐场景 ✓ 正确答案
D multishot 只支持单次完成