XNUMX ãæã®éçºãçµãŠãLinus Torvalds æ°ã¯
- ãã£ã¹ã¯ ãµãã·ã¹ãã ãI/Oãããã³ãã¡ã€ã« ã·ã¹ãã
- éåæ I/O çšã®æ°ããã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããŸãã -
io_uring ããã¯ãI/O ããŒãªã³ã°ã®ãµããŒããšããããã¡ãªã³ã°ã®æç¡ã«ãããããåäœããæ©èœã§æ³šç®ã«å€ããŸãã 以åã«ææ¡ãããéåæ I/O ã¡ã«ããºã ãaioãã¯ãããã¡ãªã³ã°ããã I/O ããµããŒãããŠããããO_DIRECT ã¢ãŒãã§ã®ã¿åäœå¯èœã§ãã (ãããã¡ãªã³ã°ããã£ãã·ã¥ã®ãã€ãã¹ã¯è¡ãã)ãã¡ã¿ããŒã¿ã®å©çšå¯èœæ§ãåŸ æ©ããããããã¯ã®åé¡ããã£ãããšãæãåºããŠãã ãããã¡ã¢ãªå ã®ããŒã¿ãã³ããŒãããããå€é¡ã®ãªãŒããŒããã ã³ã¹ããçºçããŸãããAPIå ã§
io_uring éçºè ã¯ãå€ã aio ã€ã³ã¿ãŒãã§ã€ã¹ã®æ¬ ç¹ã解æ¶ããããšããŸããã ã«ããããã©ãŒãã³ã¹ io_uring ã¯ä»¥äžã«éåžžã«è¿ãã§ãSPDK ããŒãªã³ã°ãæå¹ã«ããŠäœæ¥ãããš libaio ãããå€§å¹ ã«äžåããŸãã ãŠãŒã¶ãŒç©ºéã§å®è¡ããããšã³ãã¢ããªã±ãŒã·ã§ã³ã§ io_uring ã䜿çšããããã®ã©ã€ãã©ãªãæºåãããŸãã解æŸãã ãã«ãŒãã« ã€ã³ã¿ãŒãã§ã€ã¹äžã«é«ã¬ãã«ã®ãã¬ãŒã ã¯ãŒã¯ãæäŸããŸãã - FS ã®ã€ãã³ã远跡ã¡ã«ããºã 㧠fanotify()
è¿œå ãã ã¹ãŒããŒãããã¯ããã³æ§é å€æŽç¶æ³ã®è¿œè·¡ã®ãµããŒãçŽæ¥ (ãã£ã¬ã¯ããªã®äœæãåé€ã移åã®ã€ãã³ã)ã æ瀺ãããæ©èœã¯ãinotify ã¡ã«ããºã ã䜿çšããŠéåžžã«å€§èŠæš¡ãªãã¡ã€ã« ã·ã¹ãã ã§ååž°çå€æŽè¿œè·¡ãäœæãããšãã«çºçããã¹ã±ãŒã©ããªãã£ã®åé¡ã解決ããã®ã«åœ¹ç«ã¡ãŸã (以åã¯çŽæ¥ã®å€æŽã¯ inotify ãéããŠã®ã¿è¿œè·¡ã§ããŸãããã
倧ããªãã¹ãããããã£ã¬ã¯ããªãååž°çã«è¿œè·¡ããæ¡ä»¶ã§ã®ããã©ãŒãã³ã¹ã«ã¯ããŸã å€ãã®ç¹ãæ®ãããŠããŸã)ã ãã®ãããªç£èŠã¯ãfanotify ãéããŠå¹æçã«å®è¡ã§ããããã«ãªããŸããã - Btrfs ãã¡ã€ã« ã·ã¹ãã äž
è¿œå ãã zstd ã¢ã«ãŽãªãºã ã®å§çž®ã¬ãã«ãã«ã¹ã¿ãã€ãºããæ©èœãããã¯ãé«éã ãå¹æã®äœã lz4 ãšäœéã ãå§çž®å¹æã®é«ã xz ã®éã®æé©ãªåŠ¥åç¹ãšèããããšãã§ããŸãã 以å㯠zlib ã䜿çšãããšãã«å§çž®ã¬ãã«ãèšå®ã§ããã®ãšåæ§ã«ãã-o compress=zstd:levelãããŠã³ã ãªãã·ã§ã³ã®ãµããŒãã zstd ã«è¿œå ãããŸããã ãã¹ãäžãæå°ã®æåã®ã¬ãã«ã§ã¯ãå§çž®é床 2.658 MBââ/ç§ã解åé床 438.47 MB/ç§ãã¡ã¢ãªæ¶è²»é 910.51 MB 㧠780 åã®ããŒã¿å§çž®ãå®çŸãããæ倧ã¬ãã« 15 ã§ã¯ 3.126 åã®ããŒã¿å§çž®ãå®çŸãããŸããããå§çž®ã¯è¡ãããŸããã§ãããé床㯠37.30 MB/ç§ã解åæ㯠878.84 MB/ç§ãã¡ã¢ãªæ¶è²»é㯠2547 MBââã -
è¿œå ãã initramfs ã䜿çšããã«ãããã€ã¹ããããŒããã€ã¹äžã«ãããã¡ã€ã«ã·ã¹ãã ããããŒãããæ©èœã çŸåšã®ã«ãŒãã« ãªãªãŒã¹ä»¥éãããã€ã¹ ããã㌠ããã€ã¹ã¯ãããŒã ããã»ã¹äžã«ãããšãã°ã«ãŒã ãã¡ã€ã« ã·ã¹ãã ã®ããŒãã£ã·ã§ã³ãšããŠçŽæ¥äœ¿çšã§ããããã«ãªããŸããã ããŒãã£ã·ã§ã³ã¯ããŒããã©ã¡ãŒã¿ãdm-mod.createãã䜿çšããŠæ§æãããŸãã ããŒããèš±å¯ãããŠããããã€ã¹ ããã㌠ã¢ãžã¥ãŒã«ã«ã¯ããcryptãããdelayãããlinearãããsnapshot-originããããã³ãverityããå«ãŸããŸãã - F2FS_NOCOW_FL ãã©ã°ããã©ãã·ã¥ ãã©ã€ãåãã® F2FS ãã¡ã€ã« ã·ã¹ãã ã«è¿œå ãããŸãããããã«ãããç¹å®ã®ãã¡ã€ã«ã®ã³ã㌠ãªã³ ã©ã€ã ã¢ãŒããç¡å¹ã«ããããšãã§ããŸãã
- ãã¡ã€ã«ã·ã¹ãã ãã«ãŒãã«ããåé€ãããŸãã
Exof ãã㯠ext2 ã®ããªã¢ã³ãã§ãããOSD (ãªããžã§ã¯ãããŒã¹ã®ã¹ãã¬ãŒãžããã€ã¹) ãªããžã§ã¯ãã¹ãã¬ãŒãžã®æäœã«é©åããŠããŸãã ãã®ãããªãªããžã§ã¯ã ã¹ãã¬ãŒãž ããã€ã¹ã® SCSI ãããã³ã«ã®ãµããŒããåé€ãããŸããã
- éåæ I/O çšã®æ°ããã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããŸãã -
- ä»®æ³åãšã»ãã¥ãªãã£
- éžæããããã»ã¹ã®åœä»€ã®ææ©çå®è¡ãå¶åŸ¡ããããã® PR_SPEC_DISABLE_NOEXEC ãªãã·ã§ã³ã prctl() ã«è¿œå ããŸããã æ°ãããªãã·ã§ã³ã䜿çšãããšãSpectre æ»æã«ããæ»æãåããå¯èœæ§ã®ããããã»ã¹ã®ææ©çå®è¡ãéžæçã«ç¡å¹ã«ããããšãã§ããŸãã ããã¯ã¯ãæåã® exec() åŒã³åºããŸã§æç¶ããŸãã
- å®è£
ãããLSMã¢ãžã¥ãŒã«
ã»ãŒãã»ããID ããã«ãããã·ã¹ãã ãµãŒãã¹ã¯ãæš©éãææ Œããã (CAP_SETUID) ããããroot æš©éãååŸãããããããšãªãããŠãŒã¶ãŒãå®å šã«ç®¡çã§ããããã«ãªããŸãã ç¹æš©ã¯ãæå¹ãªãã€ã³ãã£ã³ã°ã®ãã¯ã€ã ãªã¹ã (ãUID1:UID2ãã®åœ¢åŒ) ã«åºã¥ã㊠securityfs ã§ã«ãŒã«ãå®çŸ©ããããšã«ãã£ãŠå²ãåœãŠãããŸãã - ã»ãã¥ãªã㣠ã¢ãžã¥ãŒã« (LSM) ã®ã¹ã¿ãã¯ããŒã¹ã®èªã¿èŸŒã¿ã«å¿ èŠãªäœã¬ãã«ã®å€æŽãè¿œå ããŸããã ã©ã®ã¢ãžã¥ãŒã«ãã©ã®ãããªé åºã§ããŒããããããå¶åŸ¡ãããlsmãã«ãŒãã«ããŒããªãã·ã§ã³ãå°å ¥ãããŸããã
- ãã¡ã€ã«åå空éã®ãµããŒããç£æ»ãµãã·ã¹ãã ã«è¿œå ãããŸããã
-
æ¡åŒµããã GCC ãã©ã°ã€ã³ structleak ã®æ©èœã«ãããã¡ã¢ãªå 容ã®æœåšçãªãªãŒã¯ããããã¯ã§ããããã«ãªããã¹ã¿ãã¯äžã®åç §ã¢ã¯ã»ã¹ãéããŠã³ãŒãå ã§äœ¿çšãããå€æ°ã®åæåãæäŸãããŸãã
- ãããã¯ãŒã¯ãµãã·ã¹ãã
- ãœã±ããçš
å®è£ ãããŸãã æ°ãããªãã·ã§ã³ãSO_BINDTOIFINDEXãã¯æ¬¡ã®ããã«ãªããŸã
ãSO_BINDTODEVICEãã§ãããã€ã³ã¿ãŒãã§ã€ã¹åã®ä»£ããã«ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã®ã€ã³ããã¯ã¹çªå·ãåŒæ°ãšããŠåãåããŸãã - mac80211 ã¹ã¿ãã¯ã«ã¯ã80211 ã€ã®ããã€ã¹ã«è€æ°ã® BSSID (MAC ã¢ãã¬ã¹) ãå²ãåœãŠãæ©èœãè¿œå ãããŸããã WiFi ããã©ãŒãã³ã¹ãæé©åãããããžã§ã¯ãã®äžç°ãšããŠãmacXNUMX ã¹ã¿ãã¯ã«ã¯éä¿¡æéã¢ã«ãŠã³ãã£ã³ã°ãšãè€æ°ã®ã¹ããŒã·ã§ã³éã§éä¿¡æéãåæ£ããæ©èœãè¿œå ãããŸãã (ã¢ã¯ã»ã¹ ãã€ã³ã ã¢ãŒãã§åäœããŠããå Žåããã¹ãŠã®ã¹ããŒã·ã§ã³ã«åçã«æéãé åããã®ã§ã¯ãªããé ãç¡ç·ã¹ããŒã·ã§ã³ã«å°ãªãéä¿¡æéãå²ãåœãŠãŸã)é§ ïŒ;
- è¿œå ãããä»çµã¿ã
ãããªã³ã¯ã®å¥åº·ç¶æ ": ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã§åé¡ãçºçãããšãã«éç¥ãæäŸããŸãã
- ãœã±ããçš
- ã¡ã¢ãªããã³ã·ã¹ãã ãµãŒãã¹
-
å®è£ æžã¿ PID ã®åå©çšãå¯èœã«ããå®å šãªä¿¡å·é ä¿¡ã ããšãã°ã以åã« kill ãåŒã³åºããå Žåãã·ã°ãã«ãéä¿¡ããçŽåŸã«ãã¿ãŒã²ããã® PID ãããã»ã¹ã®çµäºã«ãã解æŸãããå¥ã®ããã»ã¹ã«ãã£ãŠå æãããã·ã°ãã«ãå¥ã®ããã»ã¹ã«æž¡ãããŠããŸããšããç¶æ³ãçºçããå¯èœæ§ããããŸãã ãã®ãããªç¶æ³ãæé€ããããã«ãæ°ããã·ã¹ãã ã³ãŒã« pidfd_send_signal ãè¿œå ãããŸãããããã¯ã/proc/pid ã®ãã¡ã€ã«èšè¿°åã䜿çšããŠå®å®ããããã»ã¹ ãã€ã³ãã£ã³ã°ãä¿èšŒããŸãã ã·ã¹ãã ã³ãŒã«ã®åŠçäžã« PID ãåå©çšãããå Žåã§ãããã¡ã€ã«èšè¿°åã¯å€æŽããããããã»ã¹ã«ã·ã°ãã«ãéä¿¡ããããã«å®å šã«äœ¿çšã§ããŸãã -
è¿œå ãã æ°žç¶ã¡ã¢ãª ããã€ã¹ (æ°žç¶ã¡ã¢ãªãªã©) ã䜿çšããæ©èœNVDIMM ) RAMãšããŠã ãããŸã§ãã«ãŒãã«ã¯ã¹ãã¬ãŒãž ããã€ã¹ãšããŠãã®ãããªããã€ã¹ããµããŒãããŠããŸããããè¿œå ã® RAM ãšããŠã䜿çšã§ããããã«ãªããŸããã ãã®æ©èœã¯ãããã©ãŒãã³ã¹ã®é ããææ ¢ããdax ã® mmap äžã§å®è¡ãããæ¢åã®ãŠãŒã¶ãŒç©ºéã¡ã¢ãªå²ãåœãŠã·ã¹ãã ã䜿çšãã代ããã«ããã€ãã£ã Linux ã«ãŒãã« ã¡ã¢ãªç®¡ç API ã䜿çšããããŠãŒã¶ãŒã®èŠæã«å¿ããŠå®è£ ãããŸããããã¡ã€ã«; - æ°ãã CPU ã¢ã€ãã« ãã³ãã©ãŒ (cpuidleãCPU ããã€æ·±ãçé»åã¢ãŒãã«ã§ãããã決å®ããŸããã¢ãŒããæ·±ãã»ã©ç¯çŽå¹æã¯å€§ãããªããŸãããã¢ãŒããçµäºããã®ã«ãããæéãé·ããªããŸã) - TEO (ã¿ã€ã㌠ã€ãã³ãæåã¬ãããŒ) ïŒã ãããŸã§ããã¥ãŒãªã¹ãã£ãã¯ã®ç¹ã§ç°ãªããã¡ãã¥ãŒããšãã©ããŒããšãã XNUMX ã€ã® cpuidle ãã³ãã©ãŒãææ¡ãããŠããŸããã ãã¡ãã¥ãŒããã³ãã©ãŒã«ã¯ãã¥ãŒãªã¹ãã£ãã¯ãªæ±ºå®ãè¡ãéã«åé¡ãããããšãç¥ãããŠãããããã解æ¶ããããã«æ°ãããã³ãã©ãŒãæºåããããšã決å®ãããŸããã TEO ã¯ãã¡ãã¥ãŒããã³ãã©ãŒã®ä»£æ¿ãšããŠäœçœ®ä»ããããŠãããåãã¬ãã«ã®é»åæ¶è²»ãç¶æããªããããé«ãããã©ãŒãã³ã¹ãå®çŸããŸãã
ããŒããã©ã¡ãŒã¿ãcpuidle.governor=teoãã䜿çšããŠæ°ãããã³ãã©ãã¢ã¯ãã£ãåã§ããŸãã - æ²æ»
äœæ¥ã®äžç°ãšããŠ
2038幎åé¡ 32 ããã time_t åã®ãªãŒããŒãããŒã«ãã£ãŠçºçãããã®ãšã©ãŒã«ã¯ã32 ããã ã¢ãŒããã¯ãã£ã« 64 ããã ã¿ã€ã ã«ãŠã³ã¿ãæäŸããã·ã¹ãã ã³ãŒã«ãå«ãŸããŠããŸãã ãã®çµæã64 ãããã® time_t æ§é äœããã¹ãŠã®ã¢ãŒããã¯ãã£ã§äœ¿çšã§ããããã«ãªããŸããã åæ§ã®å€æŽããªãã·ã§ã³ã®ãããã¯ãŒã¯ ãµãã·ã¹ãã ã«ãå®è£ ãããŸãããã¿ã€ã ã¹ã¿ã³ã ãããã¯ãŒã¯ãœã±ããã - ã³ã¢ã®ããã ããã ã·ã¹ãã ãžã®ç§»è¡ (ã©ã€ã ããã)
è¿œå ãã äžé£ã®å€æŽãåäžã®é¢æ°ã«ã¢ãããã¯ã«é©çšãããAtomic Replaceãæ©èœã ãã®æ©èœã䜿çšãããšãä¿å®ãéåžžã«å°é£ãªãå³å¯ã«å®çŸ©ãããé åºã§ã©ã€ã ãããã段éçã«é©çšããããã»ã¹ã®ä»£ããã«ãè€æ°ã®å€æŽãã«ããŒãããµããªãŒ ããããäžåºŠã«é åžã§ããŸãã 以åã¯åŸç¶ã®åå€æŽã¯æåŸã®å€æŽåŸã®é¢æ°ã®ç¶æ ã«åºã¥ãå¿ èŠããããŸããããçŸåšã¯ XNUMX ã€ã®åæç¶æ ã«é¢é£ä»ããããè€æ°ã®å€æŽãäžåºŠã«äŒæããããšãå¯èœã§ã (ã€ãŸããä¿å®è ã¯ä»£ããã«ãããŒã¹ ã«ãŒãã«ã«å¯Ÿã㊠XNUMX ã€ã®çµ±åããããä¿å®ã§ããŸã)çžäºã«äŸåãããããã®ãã§ãŒã³ã®); -
çºè¡šãããŸãã a.out å®è¡å¯èœãã¡ã€ã«åœ¢åŒã®éæšå¥šã®ãµããŒããš
åé€ãããŸãã a.out 圢åŒã§ã³ã¢ ãã¡ã€ã«ãçæããããã®ã³ãŒããããã¯æŸæ£ãããç¶æ ã§ãã a.out 圢åŒã¯ Linux ã·ã¹ãã ã§ã¯é·ãé䜿çšãããŠããããããã©ã«ãã® Linux æ§æã§ã¯ãææ°ã®ããŒã«ã§ã¯ a.out ãã¡ã€ã«ã®çæãé·ãéãµããŒããããŠããŸããã§ããã ããã«ãa.out ãã¡ã€ã«ã®ããŒããŒã¯å®å šã«ãŠãŒã¶ãŒç©ºéã«å®è£ ã§ããŸãã - æªäœ¿çšã®ã³ãŒããèå¥ããŠåé€ããæ©èœããBPF ããã°ã©ã æ€èšŒã¡ã«ããºã ã«è¿œå ãããŸããã ã«ãŒãã«ã«ã¯ãBPF ãµãã·ã¹ãã ã®ã¹ãã³ãã㯠ãµããŒããåããããããå«ãŸããŠãããBPF ããã°ã©ã ã®äžŠåå®è¡ã管çããããã®è¿œå æ©èœãæäŸããŸãã
-
- æ©åš
- ããŒããŒãã©ã€ããŒã§
è¿œå ãã ç°çš®ã¡ã¢ãªç®¡çã®ãµããŒãã«ãããCPU ãš GPU ãå ±éã®åæã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã å ±æä»®æ³ã¡ã¢ãª ã·ã¹ãã (SVMãå ±æä»®æ³ã¡ã¢ãª) ã¯ãHMM (ç°çš®ã¡ã¢ãªç®¡ç) ãµãã·ã¹ãã ã«åºã¥ããŠå®è£ ãããŠãããããã«ãããã¢ã¯ã»ã¹ã§ããç¬èªã®ã¡ã¢ãªç®¡çãŠããã (MMUãã¡ã¢ãªç®¡çãŠããã) ãåããããã€ã¹ã®äœ¿çšãå¯èœã«ãªããŸããã¡ã€ã³ã¡ã¢ãªã ç¹ã«ãHMM ã䜿çšãããšãGPU ãš CPU ã®éã®å ±æã¢ãã¬ã¹ç©ºéãç·šæã§ãããã㧠GPU ãããã»ã¹ã®ã¡ã€ã³ ã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ããŸãã SVM ãµããŒãã¯çŸåšãPascal ãã¡ã㪠GPU ã«å¯ŸããŠã®ã¿æå¹ã«ãªã£ãŠããŸãããVolta ããã³ Turing GPU ã«ããµããŒããæäŸãããŠããŸãã ãããããŒãŽã©ãŒã§ã¯è¿œå ãããŸãã ããã»ã¹ ã¡ã¢ãªé åã® GPU ã¡ã¢ãªãžã®ç§»è¡ãå¶åŸ¡ããæ°ãã ioctlã - GPU Skylake 以é (gen9+) çšã® Intel DRM ãã©ã€ããŒ
å«ãŸããŠããŸã ããã©ã«ãã§ã¯ãfastboot ã¢ãŒãã«ãããèµ·åäžã®äžå¿ èŠãªã¢ãŒãå€æŽãæé€ãããŸããè¿œå ãã МПвÑе Coffelake ããã³ Ice Lake ãã€ã¯ãã¢ãŒããã¯ãã£ã«åºã¥ãããã€ã¹èå¥åã ã³ãŒããŒã¬ãŒã¯ãããã¹çšè¿œå ãã GVT ãµããŒã (GPUä»®æ³å ïŒã ä»®æ³GPUã®å Žåå®è£ ãããŸãã VFIO EDID ãµããŒãã 液æ¶ããã«çš MIPI/DSIè¿œå ãã ACPI/PMIC èŠçŽ ã®ãµããŒããå®è£ æžã¿ æ°ãã TV ã¢ãŒã 1080p30/50/60 TV; - Vega10/20 BACO GPU ã®ãµããŒãã amdgpu ãã©ã€ããŒã«è¿œå ãããŸããã Vega 10/20 é»æºç®¡çããŒãã«ãš Vega 10 ã¯ãŒã©ãŒ ã³ã³ãããŒã« ããŒãã«ãå®è£
ããPicasso GPU çšã®æ°ãã PCI ããã€ã¹èå¥åãè¿œå ããŸããã
è¿œå ãã ãããããã¯ãåé¿ããããã«ã¹ã±ãžã¥ãŒã«å¯èœãªäŸåé¢ä¿ã管çããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã -
è¿œå ãã ç»é¢ã¢ã¯ã»ã©ã¬ãŒã¿çšã® DRM/KMS ãã©ã€ããŒARMã³ã¡ã (ã㪠D71); - Toppoly TPG110ãSitronix ST7701ãPDA 91-00156-A0ãLeMaker BL035-RGB-002 3.5ãããã³ Kingdisplay kd097d04 ã¹ã¯ãªãŒã³ ããã«ã®ãµããŒããè¿œå ããŸããã
- Rockchip RK3328ãCirrus Logic CS4341 ããã³ CS35L36ãMediaTek MT6358ãQualcomm WCD9335 ããã³ Ingenic JZ4725B ãªãŒãã£ãª ã³ãŒããã¯ãããã³ Mediatek MT8183 ãªãŒãã£ãª ãã©ãããã©ãŒã ã®ãµããŒããè¿œå ããŸããã
- NAND ã³ã³ãããŒã©ãŒ Flash STMicroelectronics FMC2ãAmlogic Meson ã®ãµããŒããè¿œå ããŸããã
- Habana AI ããŒããŠã§ã¢ ã·ã¹ãã ã®ã¢ã¯ã»ã©ã¬ãŒã¿ ãµããŒããè¿œå ããŸããã
- NXP ENETC ã®ã¬ããã ã€ãŒãµããã ã³ã³ãããŒã©ãMediaTek MT7603E (PCIe) ããã³ MT76x8 ã¯ã€ã€ã¬ã¹ ã€ã³ã¿ãŒãã§ã€ã¹ã®ãµããŒããè¿œå ãããŸããã
- ããŒããŒãã©ã€ããŒã§
åæã«ãã©ãã³ã¢ã¡ãªã«ã»ããªãŒã»ãœãããŠã§ã¢è²¡å£
ваÑОаМÑ
åºæïŒ ãªãŒãã³ããã.ru