📸 🔍 黄礼志 via @yejigallery
RT AND REPLY🩷
HWANGderful YEJI DAY #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
RT AND REPLY🩷
HWANGderful YEJI DAY #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
📸 🔍 黄礼志 via @yejigallery
Happy 26th birthday to the most adorable girl ! Thank you for your kindness and unwavering dedication. May you always enjoy excellent health ! Have a wonderful day, we love you🖤
HWANGderful YEJI DAY #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
Happy 26th birthday to the most adorable girl ! Thank you for your kindness and unwavering dedication. May you always enjoy excellent health ! Have a wonderful day, we love you🖤
HWANGderful YEJI DAY #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📸 @yejigallery ×2
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
📸 @yejigallery ×2
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
📸 @yejigallery ×3
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
instagram stories update with
HWANGderful YEJI DAY #LIA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
This media is not supported in your browser
VIEW IN TELEGRAM
📸 @yejigallery
instagram stories update with
HWANGderful YEJI DAY #CHAERYEONG #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
instagram stories update with
HWANGderful YEJI DAY #CHAERYEONG #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
📸 @Kendo_Jidai ×3
剣道時代7月号にて第24回全日本選抜剣道八段優勝大会を、吉成正大氏の解説で詳報しています。優勝鍋山隆弘教士(茨城)、2位平尾泰教士(東京)、3位寺地四幸教士(東京)、米田敏郎教士(熊本) #八段戦 #剣道
原文 #剣道
剣道時代7月号にて第24回全日本選抜剣道八段優勝大会を、吉成正大氏の解説で詳報しています。優勝鍋山隆弘教士(茨城)、2位平尾泰教士(東京)、3位寺地四幸教士(東京)、米田敏郎教士(熊本) #八段戦 #剣道
原文 #剣道
Linux 页面置换:教科书骗你说用的是 LRU
学操作系统的时候,页面置换算法那一章几乎总是从 FIFO 讲到 LRU,然后告诉你 LRU 太难实现,退而求其次用 Clock 算法。最后留下一个印象:大概就是个近似 LRU 吧,意思差不多就行。
但如果你去看 Linux 内核源码(mm/vmscan.c),会发现它根本没用任何教科书里写的那种 LRU。Linux 维护的不是一条 LRU 链表,而是两条——active list 和 inactive list,各自都是双向链表。新分配的页面先进 inactive list 的头部;被再次访问时通过设置 PG_referenced 位,晋升到 active list 的尾部。反过来,active list 尾部的页面在内存紧张时会被"降级"回 inactive list 的头部。而真正被换出的,是 inactive list 尾部的页面。
这个设计的核心直觉是:区分"热页面"和"温页面"。只被访问一次的页面(比如刚 mmap 读进去的大文件)停留在 inactive list,很快就会被扫到尾部换出,不会污染真正的热数据。只有被访问两次以上的页面才有资格进入 active list,享受更长的驻留时间。这比朴素 LRU 好在哪里?朴素 LRU 无法区分"刚读一次就不会再读"和"真正频繁在用"——它们都会因为最近访问过而被保护。而双链表结构天然给了一次性页面一个冷却窗口。
具体晋升逻辑在 mark_page_accessed() 函数里:页面第一次被访问,设置 PG_referenced;第二次被访问时如果 PG_referenced 已经置位,就把它从 inactive 升到 active。这使得一次性的顺序读(比如
思考题:如果有一个页面每隔几秒被访问一次,但每次间隔足够长使得它在 inactive list 里已经滑到了尾部,它还能被保护吗?这暴露了双链表方案对"低频周期访问"模式的什么弱点?
#CS
学操作系统的时候,页面置换算法那一章几乎总是从 FIFO 讲到 LRU,然后告诉你 LRU 太难实现,退而求其次用 Clock 算法。最后留下一个印象:大概就是个近似 LRU 吧,意思差不多就行。
但如果你去看 Linux 内核源码(mm/vmscan.c),会发现它根本没用任何教科书里写的那种 LRU。Linux 维护的不是一条 LRU 链表,而是两条——active list 和 inactive list,各自都是双向链表。新分配的页面先进 inactive list 的头部;被再次访问时通过设置 PG_referenced 位,晋升到 active list 的尾部。反过来,active list 尾部的页面在内存紧张时会被"降级"回 inactive list 的头部。而真正被换出的,是 inactive list 尾部的页面。
这个设计的核心直觉是:区分"热页面"和"温页面"。只被访问一次的页面(比如刚 mmap 读进去的大文件)停留在 inactive list,很快就会被扫到尾部换出,不会污染真正的热数据。只有被访问两次以上的页面才有资格进入 active list,享受更长的驻留时间。这比朴素 LRU 好在哪里?朴素 LRU 无法区分"刚读一次就不会再读"和"真正频繁在用"——它们都会因为最近访问过而被保护。而双链表结构天然给了一次性页面一个冷却窗口。
具体晋升逻辑在 mark_page_accessed() 函数里:页面第一次被访问,设置 PG_referenced;第二次被访问时如果 PG_referenced 已经置位,就把它从 inactive 升到 active。这使得一次性的顺序读(比如
cat 一个大文件)几乎不会冲击 active list,因为它们达不到"两次访问"的门槛。#CS
当 ASLR 遇到信息泄露:随机化的盔甲怎么被拆了
地址空间布局随机化(ASLR)是现代操作系统的标配防御——每次启动,栈、堆、共享库的加载地址都不同,攻击者写死地址的 shellcode 基本就废了。但问题在于,ASLR 的随机性只活到第一次内存泄露为止。
原理很简单:ASLR 通常只在不重启时保持不变(同一次运行内地址固定),而实际攻击链几乎都是先拿到一个信息泄露漏洞,再拼出目标地址去触发第二个漏洞。比如格式化字符串漏洞可以让攻击者直接读取栈上残留的指针值;又比如某些漏洞允许越界读,泄露出 libc 的基址后,
更狠的是,即使重启后地址会变,攻击者也有办法绕过:一是利用部分覆写——低 12 位偏移在 ASLR 中不变,只覆盖后半字节就能跳到目标附近的 gadget;二是利用侧信道,比如逐字节爆破地址,对方如果崩了就说明猜错,没崩就继续,几秒就能把基址探出来。在香港 Pwn 题里这已经是基本功。
所以防御思路不能只靠 ASLR 一层。PIE(位置无关可执行文件)把代码段也随机化了;RELRO 把 GOT 表设成只读;CFI 限制间接跳转的目标范围。但如果泄露本身没法堵住,这些机制都只是在给攻击者增加一两个步骤而已——这也是为什么"无泄露即无利用"这句话,反过来也成立:有泄露就几乎等于没有 ASLR。
#Security
地址空间布局随机化(ASLR)是现代操作系统的标配防御——每次启动,栈、堆、共享库的加载地址都不同,攻击者写死地址的 shellcode 基本就废了。但问题在于,ASLR 的随机性只活到第一次内存泄露为止。
原理很简单:ASLR 通常只在不重启时保持不变(同一次运行内地址固定),而实际攻击链几乎都是先拿到一个信息泄露漏洞,再拼出目标地址去触发第二个漏洞。比如格式化字符串漏洞可以让攻击者直接读取栈上残留的指针值;又比如某些漏洞允许越界读,泄露出 libc 的基址后,
system() 的地址就能算出来。此时 ASLR 的"随机"就变成了"已知"——它只是把一步 RCE 变成了两步而已。更狠的是,即使重启后地址会变,攻击者也有办法绕过:一是利用部分覆写——低 12 位偏移在 ASLR 中不变,只覆盖后半字节就能跳到目标附近的 gadget;二是利用侧信道,比如逐字节爆破地址,对方如果崩了就说明猜错,没崩就继续,几秒就能把基址探出来。在香港 Pwn 题里这已经是基本功。
所以防御思路不能只靠 ASLR 一层。PIE(位置无关可执行文件)把代码段也随机化了;RELRO 把 GOT 表设成只读;CFI 限制间接跳转的目标范围。
#Security
検証と立証,学术写作里搞混就尴尬了
写论文的时候,有没有在「假设を検証する」和「仮説を立証する」之间犹豫过?这两个词都跟"证明"有关,但逻辑方向完全不同。検証是拿着已有的东西去检查对不对——实验设计、数据分析、流程审查,这些叫検証,重点是"确认是否正确"。立証是从无到有地建立起一个主张——用证据和论证让别人接受你的观点,这叫立証,重点是"使之成立"。换句话说,検証是对着一面墙敲它结不结实,立証是把砖一块块砌起来告诉别人这面墙站得住。学术界最常见的问题是该用検証的地方写了立証,比如实验部分其实在验证已有模型,你写成「モデルを立証した」,评审一看就知道你没分清。反过来也一样:如果你提出了新理论并用数据支撑它,那才该说立証。记住一个简单判断:你在查东西对不对→検証,你在证明东西成立→立証。那么问题来了——「誤りを指摘する」这件事,应该算検証还是立証?答案是哪个都不算,那是「反証」(はんしょう),证伪和证明也不是一回事
#日本語
写论文的时候,有没有在「假设を検証する」和「仮説を立証する」之间犹豫过?这两个词都跟"证明"有关,但逻辑方向完全不同。検証是拿着已有的东西去检查对不对——实验设计、数据分析、流程审查,这些叫検証,重点是"确认是否正确"。立証是从无到有地建立起一个主张——用证据和论证让别人接受你的观点,这叫立証,重点是"使之成立"。换句话说,検証是对着一面墙敲它结不结实,立証是把砖一块块砌起来告诉别人这面墙站得住。学术界最常见的问题是该用検証的地方写了立証,比如实验部分其实在验证已有模型,你写成「モデルを立証した」,评审一看就知道你没分清。反过来也一样:如果你提出了新理论并用数据支撑它,那才该说立証。记住一个简单判断:你在查东西对不对→検証,你在证明东西成立→立証。那么问题来了——「誤りを指摘する」这件事,应该算検証还是立証?
#日本語