$ time foo
real 0m0.003s
user 0m0.000s
sys 0m0.004s
$
Run Code Online (Sandbox Code Playgroud)
"真实","用户"和"系统"在时间输出中意味着什么?
在对我的应用进行基准测试时哪一个有意义?
我研究了一些文章,其中我得到的信息是像 open() 这样的系统调用调用 glibc 中的包装函数,然后引发一个陷阱,将上下文从用户空间切换到内核空间,然后使用 cpu 寄存器来调用系统调用内核空间中的参数/参数。
但我仍然想我缺少系统调用调用的分步过程或详细序列。如果人们能够提供考虑 ARM arch 作为参考的步骤,那就太好了。提前致谢。
我正试图建立一个关于Linux内核和用户空间如何工作的"大图",我很困惑.我知道用户空间利用系统调用与内核"交谈",但我不知道如何.我试图阅读C库和内核源代码,但它们很复杂且不易理解.我还阅读了几本关于操作系统概念事实的书籍,比如管理进程,内存,设备,但它们没有明确"转换"(用户空间 - >内核).那么,用户空间和内核空间之间的转换到底发生了什么?C库如何运行在机器中运行的Linux内核中的代码?
打个比方:假设有一所房子.房子被锁了.打开房子的关键在于房子内部.屋内只有一个人,内核.用户空间是有人试图进入房子.我的问题是:内核如何知道房子外面有人想要密钥,哪个机制允许用该密钥打开房子?