แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ Linux-แƒจแƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜? แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 2

แƒ›แƒแƒ’แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ’แƒ˜แƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒ— แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒก "แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ Linux-แƒจแƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜?" แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒแƒฅ. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ”แƒก แƒกแƒ”แƒ แƒ˜แƒ แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ™แƒฃแƒ แƒกแƒ–แƒ” แƒแƒฎแƒแƒšแƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒแƒก "แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜", แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒšแƒ” แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ— VFS-แƒก eBPF แƒ“แƒ bcc แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ–แƒ” sysfs แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒ“แƒแƒœแƒแƒฎแƒ•แƒ แƒ“แƒ ARM64-แƒ˜แƒก แƒงแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒ–แƒ eBPF-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ. eBPF (แƒ‘แƒ”แƒ แƒ™แƒšแƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ) แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ แƒ˜แƒ•แƒ˜แƒšแƒ”แƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒแƒœ (query) แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ“แƒแƒœ. แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜ แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ˜แƒแƒœ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก, แƒ แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก; แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ” eBPF แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜.

แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ Linux-แƒจแƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜? แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 2

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, eBPF-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒซแƒ•.แƒฌ., แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ Linux แƒ“แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ”แƒ แƒœแƒแƒ แƒ“ แƒ’แƒ แƒ”แƒ’แƒ˜. แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜ bcc แƒแƒ แƒ˜แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ C แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒฉแƒแƒœแƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒก, แƒ•แƒ˜แƒœแƒช แƒแƒ แƒ˜แƒ•แƒ” แƒ”แƒœแƒแƒก แƒ˜แƒชแƒœแƒแƒ‘แƒก, แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒชแƒ•แƒšแƒ. IN bcc/tools แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก 80 แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ“แƒ˜แƒ“แƒ˜ แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒก แƒจแƒ”แƒ”แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒก แƒ แƒแƒ˜แƒ›แƒ” แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“.
แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒ–แƒ”แƒ“แƒแƒžแƒ˜แƒ แƒฃแƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ VFS-แƒ”แƒ‘แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ”, แƒกแƒชแƒแƒ“แƒ”แƒ— vfscount แƒแƒœ vfsstat. แƒ”แƒก แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ แƒแƒ› แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒ–แƒแƒ แƒ˜ vfs_open() แƒ“แƒ "แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ”แƒ‘แƒ˜" แƒฎแƒ“แƒ”แƒ‘แƒ แƒคแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒงแƒแƒ•แƒ”แƒš แƒฌแƒแƒ›แƒก.

แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ Linux-แƒจแƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜? แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 2

vfsstat.py แƒแƒ แƒ˜แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ C แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒœแƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก VFS แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒก.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ›แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒฃแƒคแƒ แƒ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช USB แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒก แƒฉแƒแƒ•แƒกแƒ•แƒแƒ›แƒ— แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒฆแƒ›แƒแƒแƒฉแƒ”แƒœแƒก แƒ›แƒแƒก.

แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ Linux-แƒจแƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜? แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 2

eBPF-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒจแƒ˜ /sysแƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜แƒ USB แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜. แƒแƒฅ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜.

แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, bcc แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ™แƒ•แƒแƒšแƒ˜.py แƒ‘แƒ”แƒญแƒ“แƒแƒ•แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก sysfs_create_files(). แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— sysfs_create_files() แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒ kworker แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“, แƒ แƒแƒ› แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ˜ แƒ˜แƒงแƒ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ? แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก eBPF-แƒ˜แƒก แƒซแƒแƒšแƒแƒก. แฒแƒฅ trace.py แƒ‘แƒ”แƒญแƒ“แƒแƒ•แƒก kernel backtrace-แƒก (-K แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜) แƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก sysfs_create_files(). แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ แƒแƒ แƒ˜แƒก C แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒชแƒœแƒแƒ‘แƒแƒ“ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Python แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก LLVM-แƒก. แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒ แƒแƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜. แƒ˜แƒก แƒแƒ“แƒ’แƒ”แƒœแƒก แƒแƒ› แƒฎแƒแƒ–แƒก แƒ“แƒ แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒจแƒ˜. แƒกแƒ แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ sysfs_create_files () แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ แƒ”แƒžแƒ แƒแƒ“แƒฃแƒชแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒแƒ แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒจแƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ“แƒ”แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ–แƒ”. C แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ› แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก C แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒšแƒ˜แƒก แƒชแƒœแƒแƒ‘แƒแƒ“ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ -l แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒœแƒแƒฎแƒแƒ•แƒ— "BPF แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ". แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒชแƒœแƒแƒ‘แƒ”แƒœ C แƒ“แƒ Python-แƒก, แƒ˜แƒžแƒแƒ•แƒ˜แƒแƒœ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก bcc แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒšแƒ.

แƒ แƒแƒ“แƒ”แƒกแƒแƒช USB แƒ“แƒ แƒแƒ˜แƒ•แƒ˜ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜แƒ, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฃแƒ™แƒแƒœ แƒ“แƒแƒฎแƒ”แƒ•แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› PID 7711 แƒแƒ แƒ˜แƒก แƒซแƒแƒคแƒ˜ kworkerแƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒคแƒแƒ˜แƒšแƒ˜ ยซeventsยป ะฒ sysfs. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ–แƒแƒ แƒ˜ sysfs_remove_files() แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒคแƒแƒ˜แƒšแƒ˜ แƒฌแƒแƒ˜แƒจแƒแƒšแƒ events, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒก. แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก, แƒงแƒฃแƒ แƒ”แƒ‘แƒ sysfs_create_link () eBPF-แƒ˜แƒ— USB แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ˜แƒกแƒแƒก แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› 48 แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ˜.

แƒ แƒ แƒแƒ–แƒ แƒ˜ แƒแƒฅแƒ•แƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก? แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ cscope แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒšแƒแƒ“ __device_add_disk(), แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ แƒแƒก แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก disk_add_events (), แƒ“แƒ แƒแƒ แƒช "media_change"แƒแƒœ "eject_request" แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒฌแƒ”แƒ แƒแƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜. แƒแƒฅ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒคแƒ”แƒœแƒ แƒแƒชแƒœแƒแƒ‘แƒ”แƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒก, แƒ แƒแƒ› "แƒ“แƒ˜แƒกแƒ™แƒ˜" แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒ“แƒ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒฃแƒšแƒ˜แƒ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ USB แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ˜แƒ—, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒกแƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒงแƒแƒ แƒแƒ“แƒแƒœ.

แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ root แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ แƒ—แƒแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒก

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ แƒแƒ•แƒ˜แƒœ แƒ—แƒ˜แƒจแƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒแƒœ แƒ›แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒก แƒจแƒขแƒ”แƒคแƒกแƒ”แƒšแƒ˜แƒ“แƒแƒœ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒ—. แฒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒขแƒแƒ›? แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒจแƒ”แƒกแƒแƒœแƒแƒฎ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒš แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒ— แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒœ แƒ›แƒแƒ— แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒงแƒแƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ—แƒแƒœ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ”แƒก แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ”แƒšแƒแƒ“แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“. fsck filesystem-recovery แƒ“แƒ, แƒฃแƒแƒ แƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ.

แƒ—แƒฃแƒ›แƒชแƒ, แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒ› แƒ•แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ IoT แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜, แƒ—แƒ”แƒ แƒ›แƒแƒกแƒขแƒแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜, แƒแƒฎแƒšแƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux-แƒ–แƒ”. แƒ‘แƒ”แƒ•แƒ  แƒแƒ› แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒแƒœ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒฅแƒ•แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒ“แƒ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒแƒ—แƒ˜ "แƒกแƒฃแƒคแƒ—แƒ" แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ. แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒก แƒ›แƒ™แƒ•แƒ“แƒแƒ แƒ˜ แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ Linux แƒ’แƒแƒ›แƒฃแƒ“แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒฆแƒšแƒ แƒ“แƒ แƒฅแƒ•แƒ”แƒ•แƒ˜แƒ— แƒฎแƒขแƒฃแƒœแƒแƒ•แƒก. แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒฉแƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ แƒ”แƒจแƒ” fsckแƒ แƒแƒ“แƒ˜แƒก แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒซแƒ แƒแƒ•แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก? แƒ“แƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ”แƒงแƒ แƒ“แƒœแƒแƒ‘แƒ root แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒจแƒ”แƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ— ro-rootfs (แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ root แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ)).

ro-rootfs แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒ‘แƒ”แƒ•แƒ  แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒแƒจแƒ™แƒแƒ แƒแƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒแƒ•แƒ—แƒ”แƒœแƒขแƒฃแƒ แƒแƒ‘แƒ. แƒ”แƒ แƒ—แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ•แƒœแƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒก แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒก /usr แƒแƒœ /lib, แƒ—แƒฃ แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒฅ แƒฉแƒแƒฌแƒ”แƒ แƒ. แƒ›แƒ”แƒแƒ แƒ” แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒ˜แƒ“แƒฌแƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜แƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ•แƒ”แƒšแƒ” แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒ˜ แƒ”แƒงแƒ แƒ“แƒœแƒแƒ‘แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒœแƒแƒ›แƒ˜แƒœแƒแƒšแƒฃแƒ แƒแƒ“ แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜แƒ แƒกแƒแƒ•แƒ”แƒšแƒ” แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒšแƒ‘แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ (แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒ–แƒแƒ™แƒ•แƒ แƒฃแƒšแƒ˜) แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› ro-rootfs แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ”. Ro-rootf-แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒขแƒ™แƒ˜แƒ•แƒœแƒ”แƒฃแƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ const แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒ•แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ›แƒแƒ แƒ—แƒšแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒก.

แƒจแƒ”แƒฅแƒ›แƒœแƒ rootfs แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ VFS. Linux แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก, แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ /var แƒ˜แƒงแƒ แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ”, แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ dot-files ะฒ $HOME. แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ—แƒ˜ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ rootfs. แƒ˜แƒงแƒ˜แƒ“แƒ”แƒ‘แƒ /var แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒ แƒชแƒแƒšแƒ™แƒ” แƒ“แƒแƒกแƒแƒฌแƒ”แƒ  แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ–แƒ”, แƒฎแƒแƒšแƒ / แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“. แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ™แƒ•แƒ แƒ˜แƒก แƒแƒœ แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒกแƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ“แƒแƒ›แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒแƒฌแƒงแƒแƒ‘แƒ˜ แƒกแƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—

แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ man mount แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ’แƒ–แƒ แƒจแƒ”แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒจแƒ”แƒกแƒแƒ™แƒ แƒแƒ•แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒแƒ“แƒ˜ แƒกแƒแƒ›แƒแƒœแƒขแƒแƒŸแƒแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒœ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ”แƒ แƒ— แƒ’แƒ–แƒแƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒแƒ•แƒšแƒ˜แƒœแƒแƒœ แƒ˜แƒ’แƒ˜ แƒกแƒฎแƒ•แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜. แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก /var แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒแƒœ แƒ“แƒแƒกแƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜ แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช tmpfs ะฒ /var แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒชแƒ”แƒ›แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒœ แƒ˜แƒฅ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜ (แƒกแƒ™แƒ แƒแƒšแƒ˜). แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒชแƒ แƒฉแƒแƒ แƒ—แƒแƒ•แƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก /var แƒ“แƒแƒ˜แƒ™แƒแƒ แƒ’แƒ”แƒ‘แƒ. แƒ’แƒแƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ˜แƒก แƒกแƒแƒ›แƒแƒ’แƒ แƒ˜ แƒฅแƒ›แƒœแƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก แƒจแƒแƒ แƒ˜แƒก tmpfs แƒ“แƒ แƒคแƒฃแƒซแƒ”แƒ›แƒ“แƒ”แƒ‘แƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒแƒจแƒ™แƒแƒ แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ ro-tootf แƒ›แƒแƒจแƒ˜แƒœ แƒ แƒแƒชแƒ แƒจแƒ”แƒกแƒแƒ™แƒ แƒแƒ•แƒ˜ แƒกแƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒฎแƒšแƒ˜แƒก แƒ“แƒแƒชแƒšแƒแƒก tmpfs แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ”แƒ‘แƒ˜ แƒฉแƒแƒœแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒ˜ ro-rootfs แƒ’แƒ–แƒ”แƒ‘แƒ˜. แƒฎแƒแƒšแƒ overlayfs แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒฌแƒแƒ แƒ˜ (proper) แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜, แƒจแƒ”แƒ™แƒ•แƒ แƒแƒ“แƒ˜ แƒกแƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜แƒ VFS แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”.

แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒแƒ›แƒแƒ’แƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒ”แƒก แƒแƒ แƒแƒ•แƒ˜แƒก แƒฃแƒ™แƒ•แƒ˜แƒ แƒก Linux แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— systemd-nspawn แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— mountsnoop แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ bcc.

แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ system-nspawn แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก mountsnoop.py.

แƒ•แƒœแƒแƒฎแƒแƒ— แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ:

ะ—ะฐะฟัƒัะบ mountsnoop แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก "แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก" แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒ“แƒ˜แƒ“แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒกแƒแƒ›แƒแƒ’แƒ แƒ–แƒ” (แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜).

แƒแƒฅ systemd-nspawn แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒจแƒ”แƒ แƒฉแƒ”แƒฃแƒš แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก procfs ะธ sysfs แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒ™แƒ”แƒœ rootfs... แƒ’แƒแƒ แƒ“แƒ MS_BIND แƒ“แƒ แƒแƒจแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ’แƒ”แƒœแƒก แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒกแƒแƒ›แƒแƒ’แƒ แƒก, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒฎแƒ•แƒ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜ แƒ›แƒ—แƒแƒ–แƒ” แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒแƒก แƒฐแƒแƒกแƒขแƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒกแƒแƒ›แƒแƒ’แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒœ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒแƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ /proc ะธ /sys แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜, แƒแƒœ แƒ“แƒแƒ›แƒแƒšแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

Linux-แƒ˜แƒก แƒจแƒ˜แƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฉแƒแƒœแƒ“แƒ”แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ  แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒ™แƒแƒ“แƒก, แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ— แƒขแƒแƒ•แƒ”แƒ‘แƒก Linux-แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒ“แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒก C แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ glibc. แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ’แƒ–แƒแƒ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒ–แƒ”, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒจแƒ˜แƒ“แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜. file_operations. แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒก "แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒ" แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒก, แƒ แƒแƒช แƒ›แƒแƒ— แƒ›แƒแƒ แƒ—แƒ•แƒแƒก แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒก แƒฎแƒ“แƒ˜แƒก. C แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ–แƒ”แƒ“แƒ แƒ“แƒแƒœแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ fs/ แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒšแƒ”แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒแƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ˜แƒก แƒคแƒ”แƒœแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒคแƒแƒ แƒ—แƒ แƒ“แƒ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒแƒก แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒš แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒจแƒ”แƒกแƒแƒœแƒแƒฎ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒ แƒแƒ แƒ˜แƒก VFS-แƒ˜แƒก แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒก แƒฎแƒ“แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ root แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก. แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก, eBPF แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ bcc
แƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒแƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒแƒ“แƒ”แƒกแƒ›แƒ”.

แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ”แƒ‘แƒ, แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ—, แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒงแƒ? แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒ’แƒแƒฅแƒ•แƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜ แƒแƒœ แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ? แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ™แƒฃแƒ แƒกแƒ˜แƒ— แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒฌแƒ•แƒ”แƒฃแƒšแƒœแƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒฆแƒ˜แƒ แƒ“แƒฆแƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช 18 แƒแƒžแƒ แƒ˜แƒšแƒก แƒ’แƒแƒ˜แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ.

แฒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ