ááŸá
áºáááŒá¬ááœá¶á·ááŒáá¯ážááá¯ážáááºááŒá®ážáá±á¬áẠLinus Torvalds
- Disk ááœá²á
áá
áºá I/O ááŸáá·áº ááá¯ááºá
áá
áºáá»á¬áž
- á¡ááŒáá¯ááºá¡ááá¯áẠI/O á¡ááœáẠá¡ááºáá¬áá±á·á
áºá¡áá
áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááẠ-
io_uring I/O áá²áá¯á¶á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº buffering ááŒáá·áº ááá¯á·ááá¯áẠááá«áá² áá¯ááºáá±á¬ááºááá¯ááºááŸá¯ááá¯á·á¡ááœáẠááŸááºáá¬ážááœááºáá±á¬ááºážáááºá ááááºá á¡ááá¯ááŒá¯áá¬ážááá·áº á¡ááŒáá¯ááºá¡ááá¯áẠI/O ááá¹ááá¬áž "aio" ááẠbuffered I/O ááᯠááá¶á·ááá¯ážáá²á O_DIRECT áá¯áẠ(buffering ááŸáá·áº cache ááᯠáá»á±á¬áºááœáŸá¬ážááŒááºážáááŸááá²) ááœááºáᬠáá¯ááºáá±á¬ááºááá¯ááºáááºááŸá¬ áááºáá¬áá±áá¬áááŸáááá¯ááºááŸá¯ááᯠá á±á¬áá·áºááá¯ááºážááŒááºážááŒá±á¬áá·áº áá±á¬á·ááºáá»áá¬ááœáẠááŒá¿áá¬áá»á¬áž ááŸááá²á·ááŒá±á¬ááºážá Memory ááœáẠData áá°ážáá°ááŒááºážááŒá±á¬áá·áº áá¯ááºáá»á áááẠááŒá®ážáá¬ážáááºáAPI á¡ááœááºáž
io_uring developer áá»á¬ážááẠaio interface á¡áá±á¬ááºážá áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááẠááŒáá¯ážá á¬ážáá²á·ááŒáááºá á¡á¬ážááŒáá·áºáá¯ááºáá¯ááºá áœááºážá¡á¬áž io_uring ááẠá¡ááœááºáá®ážá ááºáá«áááºáSPDK áá²áá¯á¶ááœáá·áºáá¬ážááŒááºážááŒáá·áº á¡áá¯ááºáá¯ááºáá±á¬á¡áá« libaio ááẠáááááá¬áᬠáá»á±á¬áºááœááºáá±áá«áááºá á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááœááºááœááºáááºáááºáá±áá±á¬ end applications áá»á¬ážááœáẠio_uring ááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá á¬ááŒáá·áºááá¯ááºáá áºáá¯ááᯠááŒááºáááºáá¬ážáá«áááºáliburing á - FS fanotify() ááŸá ááŒá
áºáááºááŒá±áá¬áá¶ááŒááºáž ááá¹ááá¬ážááœááºá
áááºááŒá±á¬áááºá superblock ááŸáá·áº ááœá²á·á ááºážáá¯á¶ááŒá±á¬ááºážáá²ááŸá¯ á¡ááŒá±á¡áá±áá»á¬ážááᯠááŒá±áá¬áá¶ááẠáá¶á·ááá¯ážááŸá¯ááá·áºáá»ááºááẠ(áááºážááœáŸááºáá»á¬ážáááºáá®ážááŒááºážá áá»ááºááŒááºážááŸáá·áº ááœáŸá±á·ááŒááºážááŒá áºáááºáá»á¬áž)á áááºááŒáá¬ážáá±á¬ á¡ááºá¹áá«áááºáá»á¬ážááẠinotify ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡ááœááºááŒá®ážáá¬ážáá±á¬ ááá¯ááºá áá áºáá»á¬ážááœáẠrecursive change tracking ááŒá¯áá¯ááºáá±á¬á¡áá«ááœáẠááŒá áºáá±á«áºáá¬áá±á¬ á¡ááœááºá¡á á¬ážááŸá ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáá¬ááœáẠáá°áá®áá±ážááẠ(ááááºá inotify ááŸáááá·áºáᬠááŒá±áá¬áá¶ááá¯ááºáá±á¬áºáááºážá
ááŒá®ážáá¬ážáá±á¬ nested directory áá»á¬ážá recursive ááŒá±áá¬áá¶ááŒááºážá¡ááŒá±á¡áá±áá»á¬ážááœáẠá áœááºážáá±á¬ááºáááºááẠááá¯áá»ááºá áá¬áá»á¬ážá áœá¬áá»ááºáá²á·áááº)á ááá¯ááá¯áá²á·ááá¯á·áá±á¬á á±á¬áá·áºááŒáá·áºááŸá¯ááᯠfanotify ááŸáááá·áºáááá±á¬ááºá áœá¬áá¯ááºáá±á¬ááºááá¯ááºáááº; - Btrfs ááá¯ááºá
áá
áºááœááº
áááºááŒá±á¬áááºá ááŒááºáááºáá±á¬áºáááºáž áááá±á¬ááºááŸá¯áááŸááá±á¬ lz4 ááŸáá·áº ááŸá±ážááœá±ážáá±á¬áºáááºáž áá±á¬ááºážáá±á¬ compression xz á¡ááŒá¬áž á¡áá±á¬ááºážáá¯á¶ážáá±á¬ á¡áá±ážá¡áá°áá áºáá¯á¡ááŒá Ạáá°áááá¯ááºáá±á¬ zstd á¡ááºáááá¯áá®áááºá¡ááœáẠáá»á¯á¶á·ááŸá¯á¡ááá·áºááᯠá áááºááŒáá¯ááºááŒááºáááºááá¯ááºááŸá¯á zlib ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« ááááááºááŸá¯á¡ááá·áºááᯠááááºáááºááŸááºááá¯ááºáá¯á¶ááŸáá·áº ááŸáá¯ááºážááŸááºááŒááºážááŒáá·áºá â-o compress=zstd:levelâ mount option ááᯠzstd á¡ááœáẠáá¶á·ááá¯ážáá±ážáá¬ážáá«áááºá á ááºážáááºáá±á ááºá¡ááœááºážá á¡áááá·áºáá¯á¶ážáááá¡ááá·áºááẠáá±áá¬áá»á¯á¶á·áá»á²á·ááŸá¯á¡ááŒááºááŸá¯ááºáž 2.658 MB/sá áá»á¯á¶á·ááŒááºááŸá¯ááºáž 438.47 MB/s ááŸáá·áº ááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ 910.51 MB ááŸáá·áº á¡ááŒáá·áºáá¯á¶ážá¡ááá·áº 780 ááẠ15 ááŒááẠáá¶á·ááá¯ážáá±ážáá±á¬áºáááºáž ááááááºááŸá¯ááŸáá·áºá¡áá° á¡ááŒááºááŸá¯ááºáž 3.126 MB/sá áá¯ááºááá¯ážááŸá¯ 37.30 MB/s ááŸáá·áº ááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ 878.84 MB; -
áááºááŒá±á¬áá«áááºá initramfs ááá¯á¡áá¯á¶ážáááŒá¯áá² device-mapper device ááœááºááŸááá±á¬ ááá¯ááºá áá áºá០á áááºááá¯ááºáááºá áááºááŸá kernel áá¯ááºáá±ááŸá¯ááŸá áááºá boot áá¯ááºáááºážá ááºá¡ááœááºáž device-mapper áááááá¬áá»á¬ážááᯠááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá root ááá¯ááºá áá áºááŸáá·áº á¡ááá¯ááºážááœá²áá áºáá¯á¡ááŒá áºá partition ááᯠboot parameter "dm-mod.create" ááŒáá·áº configure áá¯ááºáá¬ážáááºá loading á¡ááœáẠááœáá·áºááŒá¯ááá·áº á ááºáá á¹á ááºáž-ááŒá±áá¯á¶áá¯ááºááá·áº áá±á¬áºáá»á°ážáá»á¬ážááœááº- "crypt", "delay", "linear", "snapshot-origin" ááŸáá·áº "verity"; - F2FS_NOCOW_FL á¡áá¶á¡á¬áž Flash drive áá»á¬ážáá®ááá¯á· áŠážáááºáá±á¬ F2FS ááá¯ááºá áá áºááá¯á· áá±á«ááºážááá·áºáá¬ážááŒá®ážá áááºážááẠááá¯ááºáá áºáá¯á¡ááœáẠáá±á¬áºáá®-áá±á«áº-áá±ážáá¯ááºááᯠááááºááá¯ááºá á±áá«áááºá
- ááá¯ááºá
áá
Ạkernel á០áááºááŸá¬ážáá²á·áááºá
ááœááºáá±á«áẠext2 á áá°ááœá²áá áºáá¯ááŒá áºááá·áº OSD (Object-based Storage Device) object storages ááŸáá·áº á¡áá¯ááºáá¯ááºáááºá¡ááœáẠá¡áááºááŒá±á¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáááºá ááá¯áá²á·ááá¯á·áá±á¬ á¡áá¬ááá¹áá¯ááá¯ááŸá±á¬ááºááŸá¯áááááá¬áá»á¬ážá¡ááœáẠSCSI áááá¯ááá¯áá±á¬á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááá¯áááºáž áááºááŸá¬ážááá¯ááºááŒá®ááŒá áºáááºá
- á¡ááŒáá¯ááºá¡ááá¯áẠI/O á¡ááœáẠá¡ááºáá¬áá±á·á
áºá¡áá
áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááẠ-
- Virtualization ááŸáá·áº áá¯á¶ááŒá¯á¶áá±áž
- ááœá±ážáá»ááºáá¬ážáá±á¬ áá¯ááºáááºážá ááºá¡ááœáẠáááºážááœáŸááºáá»ááºáá»á¬ážááᯠááŸááºážááá¯ááºáá±á¬ááºááŸá¯ááᯠááááºážáá»á¯ááºááẠPR_SPEC_DISABLE_NOEXEC ááœá±ážáá»ááºááœáá·áºááᯠprctl() ááœáẠááá·áºááœááºážáá²á·áááºá ááœá±ážáá»ááºááŸá¯á¡áá áºáá áºáá¯ááẠSpectre ááá¯ááºááá¯ááºááŸá¯á០ááá¯ááºááá¯ááºáá¶áááá¯ááºáá»á±ááŸááá±á¬ áá¯ááºáááºážá ááºáá»á¬ážá¡ááœáẠááŸááºážááá¯ááºáá±á¬ááºááŸá¯ááᯠááœá±ážáá»ááºááááºááá¯ááºá á±áááºááŒá áºáááºá exec();
- LSM module ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
SafeSetID á¡áá°ážá¡ááœáá·áºá¡áá±ážáá»á¬áž (CAP_SETUID) ááŸáá·áº root á¡ááœáá·áºáá°ážáá»á¬ážááááŸááá² á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠáá¯á¶ááŒá¯á¶á áœá¬á á®áá¶ááá·áºááœá²ááá¯ááºá á±ááá·áº á áá áºáááºáá±á¬ááºááŸá¯áá»á¬ážá ááá¬ážáááºá ááºážááŸá±á¬ááºááŸá¯á á¬áááºážá¡ááŒá° (âUID1:UID2â áá±á¬ááºááœááº)á - áá¯á¶ááŒá¯á¶áá±áž áá±á¬áºáá»á°ážáá»á¬áž (LSMs) áá»á¬ážááᯠá¡á á¯ááá¯ááº-á¡ááŒá±áá¶á áááºááŒááºážá¡ááœáẠááá¯á¡ááºáá±á¬ á¡ááá·áºáááá·áºááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž ááá·áºááœááºážáá¬ážáááºá áááºááá·áº modules áá»á¬ážáááºáááºááŸáá·áº áááºááá·áºáááºážááŒáá·áº ááááºážáá»á¯ááºááẠ"lsm" kernel boot option ááá¯ááááºáááºáá±ážáá²á·áááºá
- ááá¯ááºá¡áááºáá±áá¬ááœááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠá á¬áááºážá á áºá áá áºááœá²ááá¯á· áá±á«ááºážááá·áºáá¬ážáááºá
-
áá»á²á·ááœááºáá²á·áááºá áááºááá¯áá®á¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž áá±á«ááºááŒá¬ážááá¯ááºááŒá±ááŸááá±á¬ áá±á«ááºááŒá¬ážááŸá¯áá»á¬ážááᯠááááºááá¯á·ááá¯ááºá á±ááá·áº GCC plugin structleak á á áœááºážáááºáá»á¬ážá stack áá±á«áºááŸá áááºááœáŸááºážáááºáá±á¬ááºááŸá¯ááŸáá áºááá·áº áá¯ááºááœááºá¡áá¯á¶ážááŒá¯áá¬ážááá·áº áááºááá·áº variable áá»á¬ážááá¯áááᯠá¡á ááŒá¯ááŒááºážá¡á¬áž áá¶á·ááá¯ážáá±ážáá¬ážáá«áááºá
- ááœááºáááºá
áá
áºááœá²
- ááŒá±á
áœááºáá»á¬ážá¡ááœááº
á¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá ááœá±ážáá»ááºááŸá¯á¡áá Ạ"SO_BINDTOIFINDEX" ááŸáá·áº á¡áá¬ážáá°áááºá
"SO_BINDTODEVICE"á ááá¯á·áá±á¬áº á¡ááºáá¬áá±á·á áºá¡áááºá¡á á¬áž ááœááºáááºá¡ááºáá¬áá±á·á áºá á¡ááœáŸááºážááááºážáá¶áá«ááºááᯠá¡ááŒááºážá¡áá¯á¶á¡ááŒá áºáá°áááºá - mac80211 stack ááẠá ááºáá áºáá¯ááá¯á· BSSIDs (MAC ááááºá á¬áá»á¬áž) á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºááŸááºáá±ážááá¯ááºá áœááºážááᯠáá±á«ááºážááá·áºáá¬ážáááºá WiFi á áœááºážáá±á¬ááºáááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááẠááá±á¬áá»ááºáá áºáá¯á¡áá±ááŒáá·áºá mac80211 stack ááẠairtime accounting ááŸáá·áº station áá»á¬ážá áœá¬ááŒá¬ážááœáẠairtime ááŒáá·áºáá±ááá¯ááºááŸá¯ááá¯á·ááᯠáá±á«ááºážááá·áºáá¬ážááẠ( access point mode ááœááºáááºáááºááá·áºá¡áá«á ááŒáá¯ážáá²á· station áá»á¬ážááᯠááŸá±ážááœá±ážá á±ááẠtransmission time áááºážáá«ážá á±áááºá á¡á¬ážáá¯á¶ážááᯠá¡áá»áááºá¡áá®á¡áá»áŸ ááŒáá·áºáá±ááá·áºá¡á á¬ážá áá°áá¬áá»á¬áž);
- ááá·áºáá¬ážáá²á· ááá¹ááá¬áž "
devlink áá»ááºážáá¬áá±áž ááœááºáááºá¡ááºáá¬áá±á·á áºááœáẠááŒá¿áá¬áá»á¬ážááŒá áºáá±á«áºááá·áºá¡áá« á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá±á¬á
- ááŒá±á
áœááºáá»á¬ážá¡ááœááº
- Memory ááŸáá·áº System áááºáá±á¬ááºááŸá¯áá»á¬áž
-
ááá¯áᬠPID ááŒááºáá¯á¶ážááẠááœáá·áºááŒá¯ááá·áº áá¯á¶ááŒá¯á¶áá±á¬ á¡áá»ááºááŒáá±ážááá¯á·ááŸá¯á á¥ááá¬á¡á¬ážááŒáá·áºá ááááºá kill ááá¯áá±á«áºááá¯áá±á¬á¡áá«á signal áá±ážááá¯á·ááŒá®ážááŒá®ážáá»ááºážá áá áºááŸáẠPID ááẠáá¯ááºáááºážá ááºáááºá á²ááŒá®áž á¡ááŒá¬ážáá¯ááºáááºážá ááºáá áºáá¯á ááááºážááá¯ááºááŸá¯ááŒá±á¬áá·áº ááœááºááŒá±á¬ááºááá¯ááºááŒá®ážá signal ááẠá¡ááŒá¬ážáá¯ááºáááºážá ááºáá áºáá¯ááá¯á· áá°ážááŒá±á¬ááºážááœá¬ážááŒááºážááŒá±á¬áá·áº á¡áá¯á¶ážáááºááœá¬ážáááºááŒá áºáááºá ááá¯ááá¯á·áá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááᯠáááºááŸá¬ážáááºá áááºááŒáááºáá±á¬ áá¯ááºáááºážá áẠáá»áááºáááºááŸá¯ááᯠáá±áá»á¬á á±ááẠ/proc/pid á០ááá¯ááºáá±á¬áºááŒáá»ááºáá»á¬ážá¡á¬áž á¡áá¯á¶ážááŒá¯ááá·áº á áá áºá¡áá Ạpidfd_send_signal áá±á«áºááá¯ááŸá¯ááᯠááá·áºááœááºážáá¬ážáááºá á áá áºáá±á«áºááá¯ááŸá¯áá¯ááºáá±á¬ááºáá±á ááºááœáẠPID ááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯áá±á¬áºáááºážá ááá¯ááºáá±á¬áºááŒáá»ááºááẠááŒá±á¬ááºážáá²áááºááá¯ááºááá·áºá¡ááŒáẠáá¯ááºáááºážá ááºááá¯á· á¡áá»ááºááŒáá±ážááá¯á·áááºá¡ááœáẠáá±ážáááºážá áœá¬á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá -
áááºááŒá±á¬áá«áááºá á¡ááŒá²áááºážááŸááºáá¬ááºáááááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºáž (á¥ááá¬á persistent-memoryNVDIMM RAM á¡áá±ááŒáá·áº) ááá¯á¡áá»áááºá¡ááá kernel ááẠááá¯áá²á·ááá¯á·áá±á¬ á ááºáá á¹á ááºážáá»á¬ážááᯠááá¯ááŸá±á¬ááºááŸá¯áááááá¬áá»á¬ážá¡ááŒá Ạáá¶á·ááá¯ážáá±ážáá²á·áá±á¬áºáááºáž ááá¯á¡áá« áááºážááá¯á·ááᯠá¡ááᯠRAM á¡ááŒá áºáááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá dax á¡ááœáẠmmap áááááºááœááºááŸáááŒá®ážáá¬áž user-space memory ááœá²áá±ááŸá¯á áá áºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡á á¬áž áá°á Linux kernel memory management API ááá¯á¡áá¯á¶ážááŒá¯ááá¯áá±á¬á¡áá¯á¶ážááŒá¯áá°áá»á¬ážáááá¹áááá¯áá¯á¶á·ááŒááºááá·áºá¡áá±ááŒáá·áºá¡ááºá¹áá«áááºááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááŒá áºáááºá ááá¯ááº; - CPU idle handler (cpuidleá CPU ááᯠáááºááŸáá¯ááºážáá±á¬ áá«áá«áá»áœá±áá¬ááá·áºáá¯ááºáá»á¬ážáá²ááá¯á· áááºááá·áºá¡áá»áááºááœáẠááá·áºááœááºážááá¯ááºáááºááᯠáá¯á¶ážááŒááºáááºá áá¯ááºááá¯ááá¯áááºááŸáá¯ááºážáá±á áá»áœá±áá¬ááá¯ááºáá±á áá¯ááºááŸááœááºááẠá¡áá»áááºááá¯ááŒá¬áá±áá±) - TEO (á¡áá»áááºááá¯ááºááŒá
áºáááºáá»á¬ážááᯠáŠážáááºááá·áº á¡á¯ááºáá»á¯ááºáá±ážááŸá°áž ) ááá¯á¡áá»áááºá¡ááá áá°ááá±áááá¯ááºáᬠáááºááá¯ááºáááááᬠááŸá
áºáá¯ááᯠá¡ááá¯ááŒá¯áá¬ážááẠ- "áá®áá°áž" ááŸáá·áº "ááŸá±áá¬áž" áá°áááºááŸá¬ ááœá±ážáá±á«áºááŸá¯á¡á ááœá²ááŒá¬ážáááºá "áá®áá°áž" ááá¯ááºááœááºáá°ááẠááá¯ááºááœááºáá°á¡áá
áºááᯠááŒááºáááºááẠáá¯á¶ážááŒááºáá²á·ááá·áº ááá
á¹á
ááᯠáááºááŸá¬ážááẠáá°áá
áºá
áá®áá¯á¶ážááŒááºáá»ááºáá»á¬ážáá»áá¬ááœáẠááŒá¿áá¬áá»á¬ážááᯠááááŸááá¬ážáááºá TEO ááẠáá«áá«áá¯á¶ážá
áœá²ááŸá¯á¡ááá·áºááᯠááááºážááááºážáá¬ážá
áẠááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á
áœááºážáá±á¬ááºáááºááᯠáááŸáá
á±ááá·áº "áá®áá°áž" ááá¯ááºááœááºáááááá¬á á¡á
á¬ážááá¯ážáá
áºáá¯á¡ááŒá
Ạáá±áá¬áá»áá¬ážáá«áááºá
boot parameter "cpuidle.governor=teo" ááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááœááºáá°á¡áá áºááᯠá¡áááºááœááºážááá¯ááºáá«áááºá - ááá»á±á¬ááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááŒááºážá áá
áºá
áááºáá
áºááá¯ááºážá¡ááŒá
áº
2038 ááŒá¿áá¬áá»á¬áž 32-bit time_t á¡áá»áá¯ážá¡á á¬ážá ááŒáá·áºáá»áŸá¶ááŸá¯ááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬á 32-bit áááá¯áá¬áá»á¬ážá¡ááœáẠ64-bit time counters áá»á¬ážááᯠáá±ážáá±á¬ááºááá·áº á áá áºáá±á«áºááá¯ááŸá¯áá»á¬áž áá«áááºáááºá ááááºá¡áá±ááŒáá·áºá 64-bit time_t ááœá²á·á ááºážáá¯á¶ááᯠááá¯á¡áá« áááá¯áá¬á¡á¬ážáá¯á¶ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááœá±ážáá»ááºá áá¬áá»á¬ážá¡ááœáẠááœááºáááºá áá áºááœá²ááœááºáááºáž á¡áá¬ážáá°ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá²á·áááºáTimestamp ááœááºáááºááŒá±á áœááºáá»á¬áž; - core á¡ááœáẠhot patching system (ááá¯ááºááá¯ááºáá¬áá±ážááŒááºáž)
áááºááŒá±á¬áááºá áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯áááºážááá¯á· á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá áœá¬ááᯠá¡ááºáááºá¡ááá¯áẠááŒá±á¬ááºážáá²á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠ"Atomic Replace" á¡ááºá¹áá«áááºá á€á¡ááºá¹áá«áááºááẠááá·áºá¡á¬áž áááºážááŒááºá áœá¬áááºááŸááºáá¬ážáá±á¬ á¡á á®á¡á á¥áºá¡ááá¯ááºáž ááááºážááááºážáááºáááºáá²áá±á¬ ááá¯ááºááá¯ááºááŒááºáááºáá¬áá±ážááŸá¯áá»á¬ážááᯠá¡ááá·áºááá·áºáá¯ááºáá±á¬ááºááŒááºážáá¯ááºáááºážá ááºá¡á á¬áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá áœá¬áá«ááŸááá±á¬ á¡áá»ááºážáá»á¯ááºáá¬áá±ážááŸá¯áá»á¬ážááᯠáá áºááŒáááºáááºážááœáẠááŒáá·áºáá±ááá¯ááºá á±áá«áááºá ááááºá áá±á¬ááºáááºááœá²ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á á®ááẠáá±á¬ááºáá¯á¶ážááŒá±á¬ááºážáá²ááŸá¯ááŒá®ážáá±á¬áẠáá¯ááºáá±á¬ááºááŸá¯á¡ááŒá±á¡áá±á¡áá±á«áº á¡ááŒá±áá¶áá¬ážááá±á¬áºáááºáž ááá¯á¡áá«ááœáẠáááŠážá¡ááŒá±á¡áá±áá áºáá¯ááŸáá·áº áááºá ááºáá±áá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá áœá¬ááᯠáá¯ááºááœáŸáá·áºááá¯ááºááẠ(ááá¯ááá¯áááºááŸá¬á ááááºážááááºážáá°áá»á¬ážááẠáááºážá¡á á¬áž á¡ááŒá±áᶠkernel ááŸáá·áº áááºá ááºáá±á¬ áá±á«ááºážá ááºážáá¬ážáá±á¬ patch áá áºáá¯ááᯠááááºážááááºážáá¬ážááá¯ááºáááºá áá áºáá¯ááŸáá·áºáá áºáᯠááŸá®ááá¯áá±áá±á¬ ááœááºážáááºáá áºáᯠ) -
ááŒá±ááŒá¬áá²á·áááºá a.out á á®áá¶áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááá¯ááºáá±á¬áºáááºááŸáá·áº áá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážáá¬ážáááºá
áá»ááºááá¯ááºááŒá®á á áœáá·áºáá áºáá¬ážáá±á¬á¡ááŒá±á¡áá±ááœááºááŸááá±á¬ a.out áá±á¬áºáááºááŒáá·áº core ááá¯ááºáá»á¬ážááá¯áá¯ááºáá±ážáááºá¡ááœááºáá¯ááºá a.out áá±á¬áºáááºááᯠLinux á áá áºáá»á¬ážááœáẠá¡áá»áááºá¡áá±á¬áºááŒá¬ á¡áá¯á¶ážáááŒá¯ááá±ážáá²á áá¯á¶ááŸáẠLinux ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážááœáẠáá±ááºáá®áááááá¬áá»á¬ážááŒáá·áº a.out ááá¯ááºáá»á¬áž áá»áá¯ážáááºááᯠáá¶á·ááá¯ážááá±ážáááºááŸá¬ ááŒá¬áá«ááŒá®á ááá¯á·á¡ááŒáẠa.out ááá¯ááºáá»á¬ážá¡ááœáẠloader ááᯠuser space ááœáẠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááºá - á¡áá¯á¶ážáááŒá¯áá±á¬áá¯ááºááᯠááœá²ááŒá¬ážááááŒááºááá¯ááºááŒá®áž áááºááŸá¬ážááá¯ááºááá·áºá áœááºážáááºááᯠBPF áááá¯ááááºá¡áááºááŒá¯ááŒááºážááá¹ááá¬ážááœáẠááá·áºááœááºážáá¬ážáááºá kernel ááœáẠBPF á áá áºááœá²á¡ááœáẠspinlock áá¶á·ááá¯ážááŸá¯áá«ááŸááá±á¬ áá¬áá±ážááŸá¯áá»á¬ážáááºáž áá«áááºááŒá®áž BPF áááá¯ááááºáá»á¬ážá á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááŸá¯ááᯠá á®áá¶ááá·áºááœá²áááºá¡ááœáẠáááºáá±á¬ááºážá áœááºážáááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
-
- áá
á¹á
ááºážááááá¬
- Nouveau áááá¯ááºáá¬
áááºááŒá±á¬áááºá CPU ááŸáá·áº GPU ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áááºáá°ááŒá¯áá¬ážááá·áº ááŸááºáá¬ááºá§áááá¬áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážááá·áº ááœá²ááŒá¬ážáá±á¬ áááºááá¯áá®á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯á áá»áŸáá±áá¬ážáá±á¬ virtual memory system (SVMá shared virtual memory) ááᯠáááºážááá¯á·á ááá¯ááºááá¯áẠmemory management unit (MMUá memory management unit) ááŒáá·áº á ááºáá á¹á ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážááá·áº HMM (Heterogeneous memory management) subsystem ááᯠá¡ááŒá±áá¶á á¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá áááºáááŸááºáá¬ááºá á¡áá°ážáááŒáá·áºá HMM ááᯠá¡áá¯á¶ážááŒá¯á GPU ááẠáá¯ááºáááºážá ááºá áááºáááŸááºáá¬ááºááᯠááá°ááá¯ááºááá·áº GPU ááŸáá·áº CPU á¡ááŒá¬áž áá»áŸáá±áá¬ážáá±á¬ ááááºá á¬áá±áá¬ááᯠá á¯á ááºážááá¯ááºáááºá SVM áá¶á·ááá¯ážááŸá¯á¡á¬áž Volta ááŸáá·áº Turing GPU áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá±ážáá±á¬áºáááºáž Pascal áááá¬ážá ᯠGPU áá»á¬ážá¡ááœááºáᬠáááºááŸáááœáẠááœáá·áºáá¬ážáááºá ááá¯á·á¡ááŒáẠNouveau ááœááºáááºááŒá±á¬ááẠioctl á¡áá áºááẠáá¯ááºáááºážá ááºááŸááºáá¬ááºáá±áá¬áá»á¬ážááᯠGPU ááŸááºáá¬ááºááá¯á· ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááᯠááááºážáá»á¯ááºáááºá - GPU Skylake ááŸáá·áº áá±á¬ááºááá¯ááºáž (gen9+) á¡ááœáẠIntel DRM driver ááœááº
áá«áááºáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá fastboot áá¯ááºááẠboot áá¯ááºáá±á ááºá¡ááœááºáž áááá¯á¡ááºáá±á¬áá¯ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáááºááŸá¬ážáá±ážáááºááááºááŒá±á¬áá«áááºá МПвÑе Coffelake ááŸáá·áº Ice Lake microarchitectures áá»á¬ážááᯠá¡ááŒá±áá¶á á ááºáá á¹á ááºáž ááœá²ááŒá¬ážáááºááŸááºááŸá¯áá»á¬ážá Coffelake áá»á áºááºáá»á¬ážá¡ááœááºáááºááŒá±á¬áááºá GVT áá¶á·ááá¯ážááŸá¯ (GPU á¡áá¯áá¯ááºááŒááºáž ) virtual GPU áá»á¬ážá¡ááœááºá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá VFIO EDID áá¶á·ááá¯ážááŸá¯á LCD panel áá»á¬ážá¡ááœáẠMIPI/DSIáááºááŒá±á¬áááºá ACPI/PMIC ááŒááºá ááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯áááá¯áᬠáá®áá®áá¯ááºá¡áá Ạ1080p30/50/60 TV; - Vega10/20 BACO GPU á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠamdgpu áááá¯ááºáá¬ááá¯á· áá±á«ááºážááá·áºáá¬ážáááºá Vega 10/20 áá«áá«á
á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº Vega 10 á¡á¡á±ážáá±ážááááºážáá»á¯ááºááŸá¯ááá¬ážáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá Picasso GPUs á¡ááœáẠPCI áááááá¬á¡áá
áºáá»á¬áž ááœá²ááŒá¬ážáááºááŸááºááŸá¯áá»á¬áž áááºááá·áºáá¬ážáááºá
áááºááŒá±á¬áá«áááºá áá±á¬á·áááºááŸá¯áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠá¡áá»áááºááá¬ážááœá²ááá¯ááºáá±á¬ ááŸá®ááá¯ááŸá¯ááᯠá á®áá¶ááá·áºááœá²áááºá¡ááœáẠá¡ááºáá¬áá±á·á áºá -
áááºááŒá±á¬áá«áááºá áá»ááºááŸá¬ááŒááºá¡ááŸáááºááŒáŸáá·áºá ááºáá»á¬ážá¡ááœáẠDRM/KMS áááá¯ááºáá¬ARM Komeda (áá¬áá® 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 gigabit Ethernet controllers ááŸáá·áº MediaTek MT7603E (PCIe) ááŸáá·áº MT76x8 ááŒáá¯ážáá²á·á¡ááºáá¬áá±á·á áºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯áááºááá·áºáá¬ážáááºá
- Nouveau áááá¯ááºáá¬
áá
áºáá»áááºáááºážááŸá¬áááºá áááºáááºá¡áá±áááá¡ááá²á·áá±á¬á·ááºáá²áá±á¬ááºáá±ážááŸááºáž
option ááá¯
source: opennet.ru