Orien Daily

🌅 Orien Daily 朝刊【6.20】
1️⃣ Git忽略文件不止.gitignore — 另有更灵活的方式
2️⃣ Valhalla十年磨一剑入JDK28 — 值类型终于落地
3️⃣ 现代全资收购波士顿动力 — 软银3.25亿退出
4️⃣ Subquadratic称突破LLM数学瓶颈 — 社区仍有质疑
5️⃣ 谷歌AMIE医疗AI登Nature — 复杂病管匹配全科医生
6️⃣ MosaicLeaks测试AI研究agent保密性 — 多数模型泄露敏感数据
7️⃣ Block合并450个JVM库到单体仓 — 消除依赖漂移
8️⃣ 台風7号25日接近冲绳 — 暴风圈将来袭
频道:@OrienDaily
🌃 Orien Daily 晚刊【6.19】
1️⃣ GitHub万个仓库暗藏木马 — 研究发现1万多个公开仓库 distributing 恶意软件
2️⃣ ASML顶级光刻机或在华争议 — 美方声称设备已入华,ASML否认
3️⃣ 印度封禁Telegram引发VPN热潮 — 数百万用户涌向替代平台
4️⃣ 东京北区小学火灾11人送医 — 3名儿童骨折重伤
5️⃣ 东海道新干线全线停运 — 滨松站有人闯入轨道
6️⃣ 微软发现新型轻量加密货币后门 — 自动传播窃取钱包
7️⃣ Elastic8500万美元收购DeductiveAI — AI查缺陷创业仅三年
8️⃣ MosaicLeaks:研究Agent能否守住秘密 — 测试AI助手的数据泄漏风险
频道:@OrienDaily
📸 @shinji_marosan
皆様こんにちは😊
母親のグループホーム入所も無事終了
8月2日の三段昇段審査申し込みを
済ませ、一休み😮💨
にしても、今日は湿度が高くて蒸し暑い
夜の 稽古は空調設備がある武道場なので、ヤレヤレ
でも、汗いっぱいかくんだろうなぁ
左足の様子を見つつ稽古したいと思います #剣道
原文 #剣道




被迫也好,无奈也罢——「余儀なくされる」的正式感
读论文的时候,看到这样一句:「研究計画の変更を余儀なくされた」。第一反应可能是"被迫更改了计划",意思没错,但这表达里藏着一种很日式的克制感。「余儀なく」不是简单的「強制された」,它强调的是"除此之外别无他法"的无奈,主体并不想这样,但情势所迫只能接受。这个区别在学术写作里特别要紧——你写「強制された」暗示有某个外力在压你,而「余儀なくされた」只是说客观条件不允许,语气中立得多。搭配的助词也要注意,被剥夺或被迫接受某事用「~を余儀なくされる」,比如「撤退を余儀なくされた」(被迫撤退),「休止を余儀なくされた」(被迫暂停)。一个小陷阱: 以后在论文的 limitation 部分或者 news 报道里留意一下,这个词出现频率高到你会怀疑是不是日本学者人手一份。
Kerberos 黄金票据:偷一根钥匙,坐拥整个王国
想象你在一个严格的门禁系统里——进门要刷卡,进房间要验指纹,开保险柜还要输密码。但有一天,有人发现只要搞到保险柜里那张"万能通行证",上面写着你是谁、你能去哪儿,自己给自己签一张新的,所有门禁系统都会乖乖放行。这就是 Kerberos 黄金票据攻击的核心逻辑。
在 Windows 域环境中,Kerberos 是认证的基础协议。域控(KDC)用 krbtgt 账户的密码哈希来签发 TGT(Ticket Granting Ticket),这张票据就是你在域里的"身份证"。一旦攻击者拿到了 krbtgt 的哈希——通常通过域控上的 Mimikatz 或者 DCsync 攻击——就可以伪造任意用户的 TGT,指定任意权限组,甚至设定任意过期时间。域控不会质疑这张票据,因为签名验证完全通过, krbtgt 的哈希本身就是签发自家的根信任。
更狠的是,即使你后来改了所有用户的密码、删了可疑账户,黄金票据依然有效——。攻击者甚至可以伪造一个域里根本不存在的用户,只要 TGT 签名合法,域控就认为这个人合法存在。
防御的关键其实不难猜:。黄金票据本质上是信任链被从根部切断的问题——根信任被劫持,整棵认证树就都不可信了。
读数据居然不需要加锁?Linux RCU 的魔法
想象你在一间图书馆里,读者可以自由取书阅读,管理员想换掉某本书时,不会直接抢走读者手里的旧版——而是放一本新版到书架上,等所有拿着旧版的读者都读完了,再回收旧版。这就是 Linux 内核里 RCU(Read-Copy-Update)的核心思路。
传统的锁思路是:共享数据要么用互斥锁让读者排队,要么用读写锁让写着独占。但读写锁有个让人头疼的问题——写着等读者、读者等写着,互相拖慢。RCU 说:我干脆让读者完全不加锁、不计数、不等待,直接读。那写着怎么办?写着先把数据整体拷贝一份,修改副本,然后用原子操作把指针换过去。旧的读者还在读旧数据,没关系,它们会自然结束。等所有"旧读者"都退出了——这个等待窗口叫"宽限期"(grace period)——再回收旧数据。
这听起来是不是有点像 Copy-on-Write?确实有点亲戚关系。但 RCU 精妙的地方在于,它不需要读者做任何事。不递增计数器,不获取锁,什么都没有。读者就像读一个普通指针一样,零开销。那内核怎么知道旧读者都退出了?这正是 RCU 和硬件架构配合最深的地方——在 x86 上,一次上下文切换意味着 CPU 离开了旧读端,所以只要每个 CPU 都至少经历过一次上下文切换,宽限期就结束了。
RCU 从 2000 年代初进入主线内核,到今天已经从几个辅助函数演变成内核里最核心的同步原语之一。在 6.x 内核里,你能在网络栈、文件系统、进程调度这些最热的路径上看到rcu_read_lock()/rcu_read_unlock()的身影。它不是银弹——写着仍然要拷贝、要等宽限期,所以写频繁的场景并不适合。但读多写少恰好是操作系统里最常见的模式:路由表更新频率远低于查表,进程描述符读取远高于创建销毁。
所以下次看到代码里rcu_dereference()的时候,别以为只是又一个指针解引用。那一行的背后,是一整套让"读者零成本"成为可能的精妙机制。比起加锁再优化,不如从数据结构层面让冲突本身消失——这大概就是 Linus 说的"好品味"了。