''

Orien Daily

  1. 你的 gettimeofday 其实没进内核你写 gettimeofday() 的时候,脑子里大概浮现的是一次系统调用:用户态 → 内核态切换,保存寄存器,走中断向量,查内核时间变量,再原路返回

    你的 gettimeofday 其实没进内核

    你写 gettimeofday() 的时候,脑子里大概浮现的是一次系统调用:用户态 → 内核态切换,保存寄存器,走中断向量,查内核时间变量,再原路返回。一次调用,两次上下文切换。但在现代 Linux 上,这件事压根没发生。

    内核在启动时编译了一段特殊的共享库,叫 vDSO(virtual Dynamic Shared Object),然后把它映射进每个进程的地址空间。你的程序调用 gettimeofday() 时,动态链接器把它解析到了 vDSO 里的函数,而不是 libc 的常规 syscall 封装。于是整件事在用户态就完成了:vDSO 的代码直接读内核映射的只读数据页上的时间值,算出结果返回给你,全程没有 syscall 指令。

    这个只读数据页是内核写好的,里面存着时钟源值、时区偏移、vvar 版本号等。内核在每个 tick 或时钟中断时更新它,vDSO 的代码只管读。读写分离,天生无锁,甚至连原子操作都不需要——因为内核写的是对齐的 64 位值,读侧要么拿到旧的要么拿到新的,不会撕列。这就是一种很经典的设计思路:。

    你可以 objdump -d /lib64/libc.so.6 | grep -A 20 clock_gettime 看到它先尝试走 vDSO,失败才走 syscall 的 fallback 路径。也可以 cat /proc/self/maps | grep vdso 看到这段内存就躺在你进程里,地址在栈和 libc 之间。甚至 _start 入口点之前就被映射好了,你没有任何办法拒绝它。

    一个有意思的问题是: 答案藏在数据依赖里——vDSO 能安全读取的数据,必须是内核无条件暴露到用户空间的只读快照。时间值满足这个条件,因为内核写、用户读、不冲突。但如果你要读文件、发网络包、创建进程,数据根本没办法提前准备好放在共享页上,只能老老实实进内核,该 trap 就 trap。

    vDSO 的源码在内核树的 arch/x86/entry/vdso/ 和 lib/vdso/ 下,加起来几百行 C,却把时间类系统调用的开销从上千个时钟周期降到了几十个。下次你 strace -c 一个高频调 gettimeofday 的程序却看不到多少 syscall 次数的时候,别疑惑——它根本没进内核。

  2. 🎵 saman — Ólafur Arnalds专辑:re:member · 2:11Ólafur Arnalds把即兴变成一首两分钟的独白,钢琴像是随手落下的句子却句句走心,短到你还来不及走神就结束了

    🎵 saman — Ólafur Arnalds
    专辑:re:member · 2:11

    Ólafur Arnalds把即兴变成一首两分钟的独白,钢琴像是随手落下的句子却句句走心,短到你还来不及走神就结束了。

    🔗 Spotify · #推歌 #古典

  3. 📸 @yukirir815 ×4聖地巡礼岐阜県下呂市金山町飛騨街道筋骨めぐりSILENT HILLfの世界観まんまで素晴らしい場所でした😌小夏ちゃんと雛子も連れて行きました✨ #加藤小夏 #THEDAY #SILENTHILLf #筋骨めぐり原文 #加藤小夏

    📸 @yukirir815 ×4
    聖地巡礼
    岐阜県下呂市金山町
    飛騨街道筋骨めぐり

    SILENT HILLfの世界観まんまで素晴らしい場所でした😌
    小夏ちゃんと雛子も連れて行きました✨ #加藤小夏 #THEDAY #SILENTHILLf #筋骨めぐり
    原文 #加藤小夏

  4. 🌃 Orien Daily 晚刊【469】1️⃣ SpaceX 600亿美元收购Cursor — 史上最大开发者工具并购2️⃣ 本地模型现在真的能用了 — 开源推理已近云端水平3️⃣ GrapheneOS适配Android 17 — 隐私系统跟进最新内核4️⃣ ChatGPT份额跌破50% — Gemini与Claude急速追赶5️⃣ Coinbase AWS故障复盘 — 机房冷却失效致交易全停6️⃣ FIFA世界杯安全漏洞 — 一个ID可劫持全球直播7️⃣ 地球工程现实检验 — 气候干预方案遭遇硬挑战8️⃣ 格莱美增设亚洲流行音乐奖 — J/K/C-pop首获国际认可频道:@OrienDaily

    🌃 Orien Daily 晚刊【469】
    1️⃣ SpaceX 600亿美元收购Cursor — 史上最大开发者工具并购
    2️⃣ 本地模型现在真的能用了 — 开源推理已近云端水平
    3️⃣ GrapheneOS适配Android 17 — 隐私系统跟进最新内核
    4️⃣ ChatGPT份额跌破50% — Gemini与Claude急速追赶
    5️⃣ Coinbase AWS故障复盘 — 机房冷却失效致交易全停
    6️⃣ FIFA世界杯安全漏洞 — 一个ID可劫持全球直播
    7️⃣ 地球工程现实检验 — 气候干预方案遭遇硬挑战
    8️⃣ 格莱美增设亚洲流行音乐奖 — J/K/C-pop首获国际认可

    频道:@OrienDaily

  5. 📸 @kurerenseikai ×46月16日(火)改めて、日曜の試合の表彰をしました👏おめでと〜㊗️しばらく試合はないですが、次の試合は練誠会大会❗️しっかり準備していきましょう‼️今日もお疲れ様でした

    📸 @kurerenseikai ×4
    6月16日(火)
    改めて、日曜の試合の表彰をしました👏
    おめでと〜㊗️

    しばらく試合はないですが、次の試合は練誠会大会❗️しっかり準備していきましょう‼️

    今日もお疲れ様でした。 #剣道 #呉市
    原文 #剣道

  6. 📸 @ajkendof2026年8月4日、日本武道館で開催予定の第35回 JR東日本ジュニア剣道大会の「大会プログラム表紙」を公式ホームページに掲載いたしました

    📸 @ajkendof
    2026年8月4日、日本武道館で開催予定の第35回 JR東日本ジュニア剣道大会の「大会プログラム表紙」を公式ホームページに掲載いたしました。ご覧ください。
    → https://www.kendo.or.jp/competition/jr-35th/ #剣道 #kendo
    原文 #剣道