深入探索Linux内核系统调用的奥秘
在Linux内核编程的世界里,系统调用是连接用户空间和内核空间的重要桥梁。本文将深入探讨系统调用的相关知识,包括为何使用特定输出字符串进行测试、系统调用表的相关操作、添加新系统调用以及隐藏系统调用处理程序等内容。
1. 输出字符串测试的意义
在编程内核时,使用复杂的俄文输出字符串看似不符合常规,但实际上具有重要意义。因为从内核传递消息的过程中,涉及到众多连续的层和组件,如 printk() 的实现、日志守护进程、日志文件、UNIX终端系统、终端、 dmesg 可视化工具等。这样的输出可以很好地“检验”所有这些组件的一致性和透明度。
在进行测试前,需要进行一些准备工作:
$ echo $LANG
ru_RU.UTF-8
# cat /proc/sys/kernel/printk
3
4
1
7
# echo 8 > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
8
4
1
7
# sudo insmod mod_wrc.ko
执行上述操作后,会在控制台看到一些有趣的现象:
- write() 的输出会显示预期的字符串“адрес …”。
- dmesg 和 cat /var/log/messages 的输出也会显示“адрес …”。
- hello_world <
深入解析Linux系统调用机制
超级会员免费看
订阅专栏 解锁全文
1810

被折叠的 条评论
为什么被折叠?



