ááŸá
áºáááŒá¬ááœá¶á·ááŒáá¯ážááá¯ážáááºááŒá®ážáá±á¬áẠLinus Torvalds
áá¬ážááŸááºážá¡áá
áºááœáẠdeveloper 15033 áá¶á០ááŒááºáááºáá»áẠ1961 áá«áááºáááºá
patch á¡ááœááºá¡á
á¬áž - 39 MB (ááŒá±á¬ááºážáá²ááŸá¯ 11590 ááá¯ááºáá»á¬ážá áá¯ááºááá¯ááºážáá±á«ááºáž 570560 ááᯠááá·áºááœááºážáá¬ážáááºá
áááááá áááºážááᯠáááºááŸá¬ážáá²á·áááºá) 297401 ááœááºáááºááŒáá°á¡á¬ážáá¯á¶ážá 41% ááá·áº
á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááẠá
ááºáá
á¹á
ááºážáááá¯ááºáá¬áá»á¬ážááŸáá·áº áááºá
ááºáá±ááŒá®áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá 16% ááá·áºááŸááááºá
áá¬á·ááºáá²áááá¯áá¬áá»á¬ážááá¯ááºáᬠáá¯ááºáá®ážááá·áº á¡ááºááááºáá¯ááºááŒááºážá¡áá±á«áº ááá±á¬áá¬áž 13%á
network stack ááŸáá·áº áááºáááºáá±á¬á ááá¯ááºá
áá
áºáá»á¬ážááá¯á· 4% ááŸáá·áº internal á¡ááœáẠ4%
kernel ááœá²á
áá
áºáá»á¬ážá
- Disk ááœá²á
áá
áºá I/O ááŸáá·áº ááá¯ááºá
áá
áºáá»á¬áž
- exFAT áááá¯ááºáá¬á¡áá
Ạáááºáá±á¬ááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á
áááºáá±á¬ááºáá²á·áááºá áááºážá Android á áááºáá¯ááºážáá»á¬ážá¡ááœáẠSamsung á០áááºáá®ážáá¬ážáá±á¬ áááºááŸá âsdfatâ (2.x) áá¯ááºá¡ááŒá±áá¶ááᯠá¡ááŒá±áá¶áá¬ážáááºá kernel ááœááºááááºááá·áºááœááºážáá¬ážáá±á¬ driver ááẠá¡ááœá±á¡ááŸá ẠSamsung áá¯áẠ(áá¬ážááŸááºáž 1.2.9) ááá¯á¡ááŒá±áá¶áá¬ážááŒá®áž á áœááºážáá±á¬ááºáááºááá¯ááºážá driver á¡áá áºááá±á¬ááºááœáẠ10% ááá·áºááŸááááºá Microsoft ááŒá®ážáá±á¬áẠkernel ááá¯á· exFAT áá¶á·ááá¯ážááŸá¯áá±á«ááºážááá·áºááŒááºážááẠááŒá áºááá¯ááºááŒá±á¬ááºáž ááááááŒáá«á áá¯á·áá¯ááºáá±áá²á·ááẠá¡áá»á¬ážáá°ááŸá¬ áááºááŸááºáá»ááºáá»á¬áž ááŸáá·áº exFAT áá°ááá¯ááºááœáá·áºáá»á¬ážááᯠLinux ááœáẠRoyalty-free á¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœáẠáááŸáááá¯ááºáá«áááºá - Btrfs ááẠioctl() á¡áááá·áºá¡áá Ạ- BTRFS_IOC_SNAP_DESTROY_V2 ááᯠáááºážááááºááŸááºááŸá¯ááŒáá·áº á¡ááá¯ááºážááœá²áá áºáá¯ááᯠáá»ááºááœáá·áºááŒá¯áááºá áá¯á¶áá°ááœá¬ážááŒááºážá¡ááœáẠá¡ááŒáá·áºá¡ááá¶á·ááá¯ážááŸá¯áá±ážáá¬ážáááºá ááŒááºáááºááœá²áá±ááŒááºážááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœáẠáá»ááºááááºážááŒááºážá¡ááŸááºá¡áá±á¡ááœááºááᯠááá¯ážáá»á²á·áá¬ážááŒá®ážá 'áááºáá»ááºááœá±áá»á±ááŒááºáž' ááœáŸááºááŒá¬ážáá»ááºááᯠáá¯ááºáá±á¬ááºááá·áºá¡áá« ááŒá¬ááŸááºá á±á¬áá·áºááá¯ááºážááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážáááºá áá±á¬ááºáá¶ááá·áºááºáá»á¬ážááᯠá¡ááá¯ááºážá¡áá¬á¡áá áááºááŸááºááŒááºážá¡á¬áž á¡ááŸáááºááŒáŸáá·áºááá¯ááºáá«ááŒá® (á¥ááá¬á á ááºážáááºááŸá¯ script á¡áá±á¬ááºá¡áááºáá±á¬áºáá»áááºááẠáá áºáá¬áá®á០áááá áºáá»á¬ážá áœá¬ááá¯á· áá»á±á¬á·áááºážááœá¬ážáááº)á áá áºáááºáá áºáááºá inode áá áºáá¯á á®ááœáẠááá¯ááºá¡ááá¯ááºážá¡áá¬áá»á¬ážááᯠáá°ážááœá²ááá·áºááá¯ááºáááºá á¡ááá¯ááºážááœá²áá»á¬ážáᶠá á¬áá±ážááá·áºá¡áá«ááŸáá·áº NOCOW ááᯠáááºáá¯ááºááá·áºá¡áá« á¡áá¯á¶ážááŒá¯ááá·áº ááááºááá¯á·ááŒááºážá¡á á®á¡á ááºááᯠááŒááºáááºáá®ááá¯ááºážáá¯ááºáá¬ážáá«áááºá á¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážá¡ááœáẠfsync áá¯ááºáá±á¬ááºááŸá¯á á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá
- XFS ááẠáááºááŒáœáá±á¬á¡ááá¯ááºážáá»á¬ážá¡ááœáẠáááºáá¬áá±áá¬á á áºáá±ážááŒááºážááŸáá·áº fsck ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºáá¬ážáááºá á¡áááºážááá·áºááᯠááááºáá² ááŒááºáááºáá°áá±á¬ááºááŒááºážáááŒá¯áá² á¡áá¬áááºááœáẠxfs_repair ááŒááºáááºáá¯ááºáá±á¬ááºáááºááŸáá·áº ááŒááºáááºááá°ááẠááŒá áºááá¯ááºááŒá±ááᯠá¡áá±á¬ááºá¡áááºáá±á«áºááá·áº btree á¡áá±á¬ááºá¡áŠáá»á¬ážááᯠááŒááºáááºáááºáá±á¬ááºáááºá¡ááœáẠá á¬ááŒáá·áºááá¯ááºáá áºáá¯ááᯠá¡ááá¯ááŒá¯áá¬ážáá«áááºá
- SMB3 ááá¯ááŸá±á¬ááºááŸá¯ááœáẠswap partition áá¬ážááŸáááŒááºážá¡ááœáẠá ááºážáááºáá¶á·ááá¯ážááŸá¯ááᯠCIFS ááœáẠááá·áºááœááºážáá¬ážáá«áááºá SMB3.1.1 áááºááŸááºáá»ááºááœáẠáááºááŸááºáá¬ážáá±á¬ readdir ááá¯á· POSIX ááá¯ážáá»á²á·ááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá cache=strict mode ááá¯ááœáá·áºááŒá®áž protocol áá¬ážááŸááºáž 64+ ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá« 2.1KB á á¬áá»ááºááŸá¬áá»á¬ážá¡ááœáẠá áœááºážáá±á¬ááºáááºááŒáŸáá·áºáááºáá¬ážáááºá
- FS EXT4 ááᯠbmap ááŸáá·áº iopoll á០iomap ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á· ááœáŸá²ááŒá±á¬ááºážáá¬ážáá«áááºá
- F2FS ááẠzstd á¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯á áá±áá¬áá»á¯á¶á·ááŸá¯á¡ááœáẠá áááºááŒáá¯ááºááœá±ážáá»ááºááœáá·áºááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá LZ4 algorithm ááᯠáá»á¯á¶á·áááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áááºá "chattr -c commit" á¡áááá·áºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá áááºáááºáá»áááºááᯠááŒááá±ážáá¬ážáááºá áá»á¯á¶á·áá¬ážáá±á¬áá¯ááºááœááºá¡áá±á¡ááœááºááŸáá·áºáááºáááºáá±á¬á¡áá»ááºá¡áááºáá»á¬ážááá¯ááá°ááẠioctl F2FS_IOC_GET_COMPRESS_BLOCKS ááᯠááá·áºáá²á·áááºá statx ááŸáááá·áº áá»á¯á¶á·áá±áá¬á¡ááœááºááᯠáá±á«ááºážááá·áºáááºá
- Ceph ááá¯ááºá áá áºááẠáá¬áá¬á០áá¯á¶á·ááŒááºááŸá¯ááᯠá á±á¬áá·áºááá¯ááºážááŒááºážáááŸááá² ááá¯ááºáááºáá®ážááŒááºážááŸáá·áº áá»ááºááŒááºáž (ááá·áºááºááŒá¯ááºááŒááºáž) ááá¯á·ááᯠá ááºááœááºážááœáẠáá¯ááºáá±á¬ááºááá¯ááºááá·áº á áœááºážáááºááᯠááá·áºááœááºážáá¬ážáááºá á¥ááá¬á¡á¬ážááŒáá·áº ááŒá±á¬ááºážáá²ááŸá¯ááẠrsync utility ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« á áœááºážáá±á¬ááºáááºááᯠáááááá¬áᬠááá¯ážáááºá á±ááá¯ááºáááºá
- ááááºáááºážá¡ááá·áº ááá¯ááºá áá áºáá áºáá¯á¡áá±ááŒáá·áº virtiofs ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠOVERLAYFS ááœáẠááá·áºááœááºážáá¬ážáááºá
-
ááŒááºáá±ážáááºá VFS ááœáẠáááºážááŒá±á¬ááºážááŒááºáá»á±á¬áºáá¯ááºá áááºá¹áá±áááá·áºááºááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá¯ááºááᯠááŒááºáááºáá¯ááºáá±á¬ááºááŒá®ážá áá»áááºáááºááŸá¯áááºážááŒá±á¬ááºážááᯠáá±á«ááºážá ááºážáá¬ážáááºá - scsi subsystem ááœáẠunprivileged á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœááº
ááœáá·áºááŒá¯ ZBC á¡áááá·áºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá - dm_writecache ááœááº
á¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá ááá±á¬ááºáá áºáá¯á á¡ááŒáá·áºáá¯á¶ážáááºáááºážááᯠáááºááŸááºáá±ážááá·áº max_age ááá·áºáááºáá»ááºá¡áá±á«áº á¡ááŒá±áá¶á áááºááŸáºááᯠáááŒááºážááŒááºážááŸááºážáááºážááẠá áœááºážáááºá - dm_integrity ááœááº
áááºááŒá±á¬áááºá "á áœáá·áºáá áº" áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯á - null_blk ááœááº
áááºááŒá±á¬áááºá á ááºážáááºáá±á ááºá¡ááœááºáž áá¡á±á¬ááºááŒááºááŸá¯áá»á¬ážááᯠá¡áá¯áá°ááẠá¡ááŸá¬ážá¡á á¬ážááá¯ážááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯á -
áááºááŒá±á¬áá«áááºá ááááºááá¯á·áááááá¬á¡ááœááºá¡á á¬ážááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž udev á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáááºá
- exFAT áááá¯ááºáá¬á¡áá
Ạáááºáá±á¬ááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á
- ááœááºáááºá
áá
áºááœá²
- Netfilter áá«áááºáá«áááºá
á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž subnetsá network portsá protocol ááŸáá·áº MAC ááááºá á¬áá»á¬ážááᯠáá±á«ááºážá ááºá á áºáá±ážááẠááá¯á¡ááºááá·áº ááŒá®ážáá¬ážáá±á¬ match lists (nftables sets) á áá¯ááºáá±á¬ááºááŸá¯ááᯠáááááá¬áᬠá¡ááŸáááºááŒáŸáá·áºáá±ážáá«áááºá
ááá¯áá±á¬ááºážá¡á±á¬áẠáá¯ááºáá«ááá«áááºááẠIP ááŸáá·áº ááœááºáááºááá¯á·ááºá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬áž (nft_set_rbtree ááŸáá·áº nft_set_hash áá²á·ááá¯á·áá±á¬ á ááºážáá»á¥áºážáá»á¬ážááᯠá á áºáá¯ááºááŒááºážááá¯ááºáᬠá ááºážáá»ááºážáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áááá¬ážá¡ááœááºá¡ááŒá±á¡áá±á¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááŸáá·áºá¡áá° packet á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááá¯ááºáá®ááŸá¯ááŸááá±á¬ ááŒá¿áá¬ááᯠááŒá±ááŸááºážáá±ážáá±á¬ nft_set_pipapo (PIle PAcket POlicies)) áá±á¬áºáá»á°ážááá¯á·á ) AMD Epyc 256 áááá¯áááºáá¬áá«ááá·áº á áá áºááŸá 2-bit AVX7402 ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á pipapo vectorized áá¬ážááŸááºážááẠport-protocol áá±á«ááºážá ááºááŸá¯áá»á¬ážá¡áá«á¡ááẠááŸááºáááºážáá±á«ááºáž 420 ááᯠááœá²ááŒááºážá áááºááŒá¬áá±á¬á¡áá« á áœááºážáá±á¬ááºááẠ30% ááá¯ážáá¬ááŒá±á¬ááºáž ááŒááá²á·áááºá 1000 ááŸááºáááºážáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááá·áºá¡áá« áá»áááºáááºááŸá¯áá áºáá¯ááŸáá·áº áá»áááºáááºáá¶áá«ááºáá áºáá¯ááᯠáá±á«ááºážá ááºáá±á¬á¡áá« ááá¯ážáá¬ááŸá¯ááẠIPv87 á¡ááœáẠ4% ááŸáá·áº IPv128 á¡ááœáẠ6% ááŒá áºáááºá -
áááºááŒá±á¬áá«áááºá MPLSá IP ááŸáá·áº NSH áá²á·ááá¯á·áá±á¬ á¡áá»áá¯ážáá»áá¯ážáá±á¬ L3 áááá¯ááá¯áá±á¬áá»á¬ážááᯠUDP á¥áááºááá¯ááºáá±á«ááºážáá áºáá¯á¡ááŒá Ạáá¯á¶ážááœááºáá¬ážááá¯ááºááá·áº bareudp áá±á¬áºáá»á°ážá - MPTCP (MultiPath TCP) á¡á áááºá¡ááá¯ááºážáá»á¬áž áá±á«ááºážá ááºážááŒááºážá ááá°áá®áá±á¬ IP ááááºá á¬áá»á¬ážááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ ááá°áá®áá±á¬ IP ááááºá á¬áá»á¬ážááŸáááá·áº áááºážááŒá±á¬ááºážáá»á¬ážá áœá¬áá áºáá»áŸá±á¬áẠTCP áá»áááºáááºááŸá¯á áááºáááºáá¯ááºáá±á¬ááºááŸá¯ááᯠá á¯á ááºážááẠTCP áá»áááºáááºááŸá¯á ááá¯ážáá»á²á·ááŸá¯áá áºáᯠáá±á«ááºážá ááºááŸá¯ááẠáááºáááºááŸááá±áá«áááºá
-
áááºááŒá±á¬áá«áááºá 802.11 (Wi-Fi) ááœáẠEthernet frames áá»á¬ážááᯠáá¯ááºááá¯ážáááºá¡ááœáẠáá¬á·ááºáá² á¡ááŸáááºááŒáŸáá·áºááá·áº ááá¹ááá¬ážáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á - á ááºáá á¹á ááºážáá áºáá¯á¡á¬áž ááœááºáááºáá áºáá¯á០áá áºáá¯ááá¯á· ááŒá±á¬ááºážááœáŸá±á·áá±á¬á¡áá«á sysfs ááŸá áááºááá¯ááºáá¬ááá¯ááºáá»á¬ážá áááºáá±á¬ááºááœáá·áºááŸáá·áº ááá¯ááºááá¯ááºááŸá¯ááᯠáá»áááºááŸááá±ážáá«áááºá
- root ááá¯ááºáá±á¬á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœáẠSO_BINDTODEVICE á¡áá¶ááᯠá¡áá¯á¶ážááŒá¯ááẠá áœááºážáááºááᯠááá·áºááœááºážáá²á·áááºá
- áá¬áá±ážááŸá¯áááááá¡ááá¯ááºážááᯠáááºáá¶áá²á·ááŒá®ážá ethtool toolkit ááᯠioctl() á០netlink interface ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á· ááŒá±á¬ááºážáá²áá²á·áááºá á¡ááºáá¬áá±á·á áºá¡áá áºááẠááá¯ážáá»á²á·ááŸá¯áá»á¬ážááá·áºááẠááá¯ááá¯ááœááºáá°á á±áááºá á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááá¯ááºááœááºááŒááºážá¡á¬áž ááá¯ááá¯áá±á¬ááºážááœááºá á±áááºá ááŒááºáááºááŒá±á¬ááºážáá²ááá·áºá¡áá« á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºá á±áááºáá kernel ááŸáá·áº á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááá¯á·ááŒá¬áž á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááᯠááá¯ážááŸááºážá á±áá¬á áááºáá°ááŒá¯áááºááá¯á¡ááºááá·áº á¡áááºá á¬áááºážáá»á¬ážááᯠáá»áŸá±á¬á·áá»áá±ážáááºá
- áá»áááºáááºááŸá¯ ááŒá±áá¬áá¶ááŒááºáž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠá¡áá°ážáá¬á·ááºáá² á¡ááŸáááºááŒáŸáá·áºá ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á áœááºážáááºááᯠáá±á«ááºážááá·áºáá¬ážáááºá
- netfilter ááœááº
áááºááŒá±á¬ááẠá¡áááºáááºáááºáá»á¬áž (ingress) á¡ááœáẠááááºá áá á¹á á¯áá¹áááºáá»áááºááᯠááŒáá·áºáá±ážáá±á¬ ááœááºááœá¬ážáá±á¬ áááºáááºáá»á¬áž (egress) á á¡áá»áá¯ážá¡á á¬ážááœá²ááœá²ááŒá¬ážáááºááŸááºááŸá¯ áá»áááºáááºáááºá¡ááœáẠáá»áááºáá áºáá¯á
- Netfilter áá«áááºáá«áááºá
- Virtualization ááŸáá·áº áá¯á¶ááŒá¯á¶áá±áž
- ááœáŸááºááŒá
á
áºáá±ážááŒááºážááá¯ááºáᬠáá¬á·ááºáá²ááá·áºááœááºážááŒááºáž (
Pointer Authentication Re-oriented programming (ROP) áááºážááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠáá¬ááœááºááẠá¡áá°ážááŒá¯ ARM64 CPU ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž ááá¯ááºááá¯ááºáá°ááẠáááºážááá¯ááºááᯠááŸááºáá¬ááºááœáẠááá·áºááœááºážááẠáááŒáá¯ážá á¬ážáá² áááºáá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬ážááœáẠáááŸáááŒá®ážáá¬áž á ááºááœáŸááºááŒá¬ážáá»ááºá¡ááá¯ááºážá¡á áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ážáá«áááºá ááááºážáá»á¯ááºááŸá¯ááŒááºááœáŸááºááŒá¬ážáá»ááºááŸáá·áºá¡áá°á áá¯á¶ááŒá¯á¶áá±ážááẠkernel á¡ááá·áºááŸá ááŒááºáá¬ááá·áºááááºá á¬áá»á¬ážááᯠá¡áááºááŒá¯ááẠáá áºáá»á áºáááºáááºááŸááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááœáẠá¡áá»á¯á¶ážáááºáááºá áááºááŸááºááᯠááœáŸááºááŒáá°ááá¯ááºááá¯áẠá¡áá¯á¶ážáááŒá¯áá±á¬ ááááºááœááºáá»á¬ážááœáẠááááºážáááºážáá¬ážáááºá áá±á¬á·ááºáá²ááºá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááŸáá·áºááá°áá²á á¡áá°áž CPU ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá áºáá»á áºáááºáááºááŸááºáá»á¬ážááᯠáááºáá®ážááŒááºážááŸáá·áº á¡áááºááŒá¯ááŒááºážááá¯á·ááᯠáá¯ááºáá±á¬ááºáááºá -
áááºááŒá±á¬áá«áááºá userfaultfd() system call ááá¯á¡áá¯á¶ážááŒá¯á á á¬áá±ážááŒááºážá០memory area ááá¯áá¬ááœááºááẠá áœááºážáááºá á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŸá á á¬áá»ááºááŸá¬áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠááá¯ááºááœááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá á¡áá¯ááºáá®áá¬ááŸá¬ á á¬áá±áž-áá¬ááœááºáá¬ážááá·áº á á¬áá»ááºááŸá¬áá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºáá»áá¯ážáá±á¬ááºááŸá¯áá»á¬ážááᯠááŸá¬ááœá±áááºááŸáá·áº ááá¯ááá¯á·áá±á¬áá±ážáááºááŒáá¯ážáááºážááŸá¯áá»á¬ážááᯠáá¯á¶á·ááŒááºááá¯ááºááá·áº ááá¯ááºááœááºáá°ááᯠáá±á«áºááẠ(á¥ááá¬á áá¯ááºáá±á¬ááºáá±ááá·áº áá¯ááºáááºážá ááºáá»á¬ážá ááá¯ááºááá¯ááºáá»áŸááºáá áºááŒááºááá¯ááºáá»ááºáá»á¬ážááᯠáááºáá®ážáá±á ááºá¡ááœááºáž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá¯ááºááœááºáááºá ááŒááºáááºá áááºááá¯áá®ááᯠáá áºááºááá¯á· á áœáá·áºáá áºááŒááºážá áá»áŸáá±áá¬ážáá±á¬ ááŸááºáá¬ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá áááºááá¯áá®á¡ááœááºáž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá±áá¬áá¶ááŒááºáž)á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá®áá»áŸáááºá SIGSEGV signal handler ááŸáá·áº ááœá²ááẠmpprotect() ááᯠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž áááááá¬áᬠááá¯ááŒááºáá«áááºá - SELinux ááẠá ááºážáá»á¥áºážá ááºážáááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœáẠááŸááºáá¬ááºáá¬ááœááºááŸá¯á á áºáá±ážááŸá¯áá»á¬ážááᯠááááºááá¯ááºá á±ááá·áº "checkreqprot" ááá·áºáááºáá±á¬ááºááᯠáááºááá·áºááá¯ááºááẠ(á ááºážáá»ááºážáá»á¬ážááœáẠáááºááŸááºáá¬ážááá·áº á ááºážáá»ááºážáá»á¬ážá¡ááá¯ááºáž áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááŸááºáá¬ááºá§áááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá¡á¬áž ááœáá·áºááŒá¯áááº)á Kernfs symlinks áá»á¬ážááẠáááºážááá¯á·á áááºááááºážááœáŸááºáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬ááᯠá¡ááœá±áááºáá¶ááẠááœáá·áºááŒá¯áá¬ážáááºá
- á¡ááá¯áá«ááœá²á·á
ááºážáá¯á¶ááŸá¬
áá«áááºáá«áááºá module áá áºáá¯KRSI BPF áááá¯ááááºáá»á¬ážááᯠkernel á¡ááœááºážááŸá áááºááá·áº LSM áá»áááºáá»á¬ážááŸáá·áºáááᯠáá°ážááœá²ááœáá·áºááŒá¯áááºá ááŒá±á¬ááºážáá²ááŸá¯ááẠá á¬áááºážá á áºááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºááŸáá·áº áááŒá áºááá±áááºáá±á¬ááºááœáá·áºááááºážáá»á¯ááºáááºá¡ááœáẠBPF áááá¯ááááºáá¯á¶á á¶ááŒáá·áº LSM modules (Linux Security Module) ááᯠáááºáá®ážááá¯ááºá á±áááºááŒá áºáááºá -
áá±á¬ááºááœááºáá²á·áá«áááºá RNG ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá áºáŠážáá»ááºážáá±á«áºááá¯ááá·áºá¡á á¬áž CRNG áááºááá¯ážáá»á¬ážááᯠá¡á á¯ááá¯ááºá¡ááŒá¯á¶ááá¯ááºááŒáá·áº /dev/random áá áœááºážáá±á¬ááºáááºááᯠááá¯áá±á¬ááºážá¡á±á¬ááºááŒá¯áá¯ááºáááºá RNG ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº ARM64 á áá áºáá»á¬ážááœáẠgetrandom ááŸáá·áº /dev/random ááá¯á·á á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá - elliptic curve Curve25519 ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá
á¡á á¬ážááá¯áž á á¬ááŒáá·áºááá¯ááºááŸááœá±ážáá»ááºá áá¬á¡ááœááºHACL áááºá¡ááœááºáá²áááááºážááááºážáá¶á ááá¬ážáááºáá¯á¶ááŒááºá áááºáá»áááŸá¯á¡áááºááŒá¯ááŒááºážááááºá¹áá»á¬ááá¯ááºáá¬á¡áá±á¬ááºá¡áá¬ážá -
áááºááŒá±á¬áá«áááºá á¡ááá²á·ááŸááºáá¬áẠá á¬áá»ááºááŸá¬áá»á¬ážá¡ááŒá±á¬ááºáž á¡áááá±ážááẠááá¹ááá¬ážá á€ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯á á§áá·áºáááºá áá áºáá»á¬ážááẠáááºáá¶áá°á áá áºááœáẠá¡áá¯á¶ážáááŒá¯áá±á¬á·ááá·áº á á¬áá»ááºááŸá¬áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠááá¯á·ááœáŸááºááá¯ááºááŒá®áž á¡áááºááŸááºááẠá á¬áá»ááºááŸá¬áá±áá¬ááᯠááŒááºáááºááá°ááá¯ááºáááºá - vfio/pci ááœááº
áááºááŒá±á¬áááºá SR-IOV (Single-Root I/O Virtualization) á¡ááœáẠáá¶á·ááá¯ážááŸá¯á
- ááœáŸááºááŒá
á
áºáá±ážááŒááºážááá¯ááºáᬠáá¬á·ááºáá²ááá·áºááœááºážááŒááºáž (
- Memory ááŸáá·áº System áááºáá±á¬ááºááŸá¯áá»á¬áž
- á
á¬áá¯á¶ážáá± 80 á០100 á¡áá
ááá¯ážáá¬áááºá á¡áááºážá¡ááŒá Ạá á¬áá¬ážáá»á¬ážááœáẠá¡áá»á¬ážáá¯á¶áž á á¬ááŒá±á¬ááºážá¡ááŸááºá¡áá±á«áº ááá·áºáááºáá»ááºá áá áºáá»áááºáááºážááŸá¬áááºá developer áá»á¬ážááẠá á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºážáá»áŸáẠá á¬áá¯á¶áž 80 á¡ááœááºážáá±ááẠá¡ááŒá¶ááŒá¯áá¬ážáá±á¬áºáááºáž áááºážááẠáááºáá²áá±á¬ááá·áºáááºáá»ááºááá¯ááºáá±á¬á·áá«á ááá¯á·á¡ááŒááºá checkpatch ááᯠ'--strict' ááœá±ážáá»ááºááŸá¯ááŒáá·áº áá¯ááºáá±á¬ááºááŸáᬠááá¯ááºážá¡ááœááºá¡á á¬áž ááá·áºáááºáá»ááºááᯠáá»á±á¬áºááœááºááœá¬ážáá«á ááá¯á¡áá« áááºáá±á¬ááºááŸá¯ááááá±ážáá»áẠáááŸááááºááŒá áºáááºá á¡ááŒá±á¬ááºážá¡áá²á developer áá»á¬ážááᯠá¡á¬áá¯á¶áááŒá±á¬ááºážá á±áá² ááŒá áºááá¯ááºáááºáááŒááºááŸááºááŒááºážá space áá»á¬ážááŸáá·áºá¡áá° áá¯ááºááᯠáá»áááºááŸáááá·áºá¡áá«ááœááºáááºáž ááá¯ááá¯ááœááºáááºáááºáᯠáá¶á á¬ážááááºááá¬ážáá®ážáá«áááá·áºáááºá á¡ááœááºá¡áá»áœá¶ ááá¯ááºážáá»áá¯ážááŒááºážáá áááºá¡ááŸá±á¬ááºá¡ááŸáẠáá¯ááºáá¬ážáááºááŸá¯ááŸáá·áº ááŸá¬ááœá±ááŸá¯á -
áááºááŒá±á¬áá«áááºá á¡áá°ážááŒá¯ bootloader ááá¯á¡áá¯á¶ážáááŒá¯áá² 64-bit CPU áá±á«áºááœáẠáááºáááºáá±áá±á¬ 32-bit firmware á០64-bit kernel ááᯠEFI áá±á¬ááŸá±á¬ boot mode á¡ááœáẠáá¶á·ááá¯ážááŸá¯á -
ááœáá·áºáá¬ážáááºá ááœá²áá±á¬áá±á¬á·áá»á¬ážááᯠááœá²ááŒá¬ážáááºááŸááºááŒááºážááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºážá¡ááœáẠá áá Ạ("split áá±á¬á·ááẠ") á¡ááºáááºááœáŸááºááŒá¬ážáá»ááºáá áºáá¯ááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á áá±áá¬ááẠCPU áááºááŸáºááá¯ááºážááŸá áºáá¯ááᯠááŒááºááœá¬ážáá±á¬ááŒá±á¬áá·áº ááŸááºáá¬ááºáá²ááœáẠááá®áá±á¬áá±áá¬ááᯠáááºáá±á¬ááºááá·áºá¡áá« ááŒá áºáá±á«áºáááºá ááá¯ááá¯á·áá±á¬ááááºááá¯á·ááŒááºážááẠáááá¬áááºááŸá¬ážáá±á¬ á áœááºážáá±á¬ááºáááºááᯠááŒá áºáá±á«áºá á±ááẠ(áááºááŸáºááá¯ááºážáá áºáá¯ááá¯á· áá»áá±á¬ááºááá·áº áá±áá¬á¡ááœáẠá¡áá¯ááŒá°áá¯ááºáá±á¬ááºááŸá¯ááẠáááºáááºááŸá¯ 1000 ááŸá±ážáááº)á "split_lock_detect" boot parameter áá±á«áºáá°áááºá kernel ááẠááá¯áá±á¬á·ááá±á¬ááºáá»á¬ážááᯠááŸá¬ááœá±ááœá±á·ááŸáááá¯ááºááŒá®áž ááááá±ážáá»ááºáá»á¬ážááᯠáá¯ááºááŒááºááá¯ááºááẠááá¯á·ááá¯áẠáá±á¬á·ááºááŒá áºá á±ááá·áº á¡ááá®áá±ážááŸááºážáá¶ááá¯á· SIGBUS á¡áá»ááºááŒááŸá¯áá áºáᯠáá±ážááá¯á·ááá¯ááºáá«áááºá - á¡áá¯ááºáá»áááºááá¬ážááẠá¡áá°áá»áááºá¡á¬áá¯á¶áá¶áááááá¬áá»á¬ážááᯠááŒá±áá¬áá¶áá±ážááẠ(
á¡áá°ááá¡á¬áž ) á¡áá¯ááºáá»á¬ážáá¯ááºááá·áºá¡áá« á¡áá°ááœááºáá²ááŸá¯ááᯠááá·áºááœááºážááœááºáá»ááºáá«á áá±ážáá¬ážáá±á¬ ááááºážááááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá°ááœááºáá²áá±á¬á¡áá« á¡ááŒáá·áºáá¯á¶áž CPU ááŒáááºááŸá¯ááºážááᯠáá»áááºááŸáááá¯ááºááŒá®áž á¡áá¯ááºáá»áááºááá¬ážááẠááᯠáá¯ááºáá±á¬ááºáááá·áº á¡áá¯ááºáá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²ááá·áºá¡áá« á¡ááŒáááºáá± áá»á±á¬á·áááºážááŒááºážááŒá±á¬áá·áº ááœááºáá»ááºááŸá¯ áá«áá«áá»á±á¬á·áá«ážááœá¬ážááŒááºážááᯠááá·áºááœááºážá ááºážá á¬ážááẠ(ááááºá á¡á á®á¡á ááºááœá²áá°ááẠááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáá¯á¶á·ááŒááºáá²á·áááºá á¡áá»áá¯á·áá±á¬ ááŒáá·áºááŒá¬ááŸá¯ááŸáá·áºá¡áá° ááŒáááºááŸá¯ááºážá¡áá áááŸáááá¯ááºáá±á¬ ááœááºáá»ááºááŸá¯ááá¯ááºáᬠá¡áááºážá¡ááŒá áºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºážááœáá±áá±á¬ áá°ááá»ááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á áá¯á¶ážááŒááºáá»ááºáá»á¬áž áá»áá¬ááœáẠá¡áá»áááºá¡áááºááŒá¬á - Task Scheder ááœáẠáá«áááºáá«áááºá
áá°ááœá²á¡ááœáŸááºážáá»á¬áž áááºááŸá CPU áááºáááºááŸá¯á¡ááŒáááºáá±ááŸáá·áº ááááºááá¯ááºáá² áááºááᯠááŸááºáááºá áœá¬ ááá·áºááŸááºážááá¯ááºá á±ááá·áº áááºááŒá±áá¬áá¶ááŒááºážá ááŒá±á¬ááºážáá²ááŸá¯ááẠááá¯á·á¡á¬ážááŸáá·áº CPU ááŒáááºááŸá¯ááºážáá»á¬ážááœáẠááœá±á·áá»á¬ážááŒá±á¬ááºážáá²áá±áá±á¬ á¡ááŒá±á¡áá±áá»á¬ážá¡á±á¬ááºááœáẠá¡áá¯ááºáá»á¬ážá á¡ááŒá¯á¡áá°ááᯠááá¯ááá¯áááá»á áœá¬ ááá·áºááŸááºážááá¯ááºá á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá 1 MHz ááœáẠCPU á¡áááºážá¡ááŒá áºáá»á¬ážá 3/1000 ááá¯á á¬ážáá¯á¶ážáá±á¬á¡áá¯ááºáá áºáá¯ááẠááŒáááºááŸá¯ááºáž 2 MHz ááá¯á·áá»áááºážááœá¬ážáá±á¬á¡áá«ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážá 3/500 ááá¯á á¬ážáá¯á¶ážáááºááŒá áºááŒá®ážá áááºážááẠááááºáá áœááºážáá±á¬ááºáááºá¡ááŒáá·áºááŒáá·áºáááºáááºáá±áááºáá¯ááŸá¬ážááœááºážáá±á¬áá°ááá»ááºáá áºáá¯ááá¯áááºáá®ážáá²á·ááá·áº (ááá¯ááá¯áááºááŸá¬ á¡áá¯ááºáá»á¬ážáá±á«áºáá¬ááẠSchedutil cpufreq á¡á¯ááºáá»á¯ááºáá±ážááŸá°ážááœáẠááŸá¬ážááœááºážáá±á¬ áá¯á¶ážááŒááºáá»ááºáá»á¬áž áá»ááŸááºááá¯ááºá á±ááá·áº ááŒáááºááŸá¯ááºážááᯠáá»áŸá±á¬á·áá»ááŒááºážááŒáá·áºáᬠá¡áá»áááºááá¬ážááœá²áá°áᶠááá¯ááŒá®ážáááºá) - á
áœááºážáá±á¬ááºáááºáá¯ááºáá»á¬ážááᯠááœá±ážáá»ááºááẠáá¬áááºááŸáááá·áº Intel P-state driver ááᯠá¡áá¯á¶ážááŒá¯ááẠááŒá±á¬ááºážáá¬ážáááºá
áá±á¬ááºááŒá®ážááŒáá¯á· . - Kernel ááẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® (PREEMPT_RT) ááᯠá¡áá±á¬ááºá¡ááẠáá±á¬áºááá·áºá¡áá« BPF á áá áºááœá²ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážá ááááºáá PREEMPT_RT ááá¯ááœáá·áºáá¬ážáá±á¬á¡áá«á BPF ááá¯ááááºáá¬ážáááºááá¯á¡ááºáááºá
- BPF áááá¯áááẠá¡áá»áá¯ážá¡á á¬ážá¡áá áºááᯠáá±á«ááºážááá·áºááá¯ááºááẠ- BPF_MODIFY_RETURN ááẠkernel á¡ááœááºážááŸá áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááŸáá·áº ááœá²ááá¯ááºááŒá®áž á€áá¯ááºáá±á¬ááºáá»ááºá០ááŒááºáá±ážááá·áº áááºááá¯ážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºá
- áááºááŒá±á¬áá«áááºá
á¡ááœáá·áºá¡áá±áž clone3() á áá áºáá±á«áºááá¯ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á parent cgroup ááŸáá·áº ááœá²ááŒá¬ážáá±á¬ cgroup ááœáẠáá¯ááºáááºážá ááºáá áºáá¯áááºáá®ážáááºá parent process á¡á¬áž ááá·áºáááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºááŸáá·áº áá¯ááºáááºážá ááºá¡áá áºáá áºáᯠááá¯á·ááá¯áẠthread á¡áá áºáá áºáá¯áááºáá®ážááŒá®ážáá±á¬áẠáá»ááºáá»ááºážá á¬áááºážááá¯ááºááŒááºážááᯠááœáá·áºááœáá·áºáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºáá±á¬ááºááŸá¯áááºáá±áá»á¬áá áºáŠážááẠáááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážááᯠcgroups ááœá²áá»á¬ážááá¯á· ááá¯ááºááá¯ááºááœá²áá±áá±ážááá¯ááºááŒá®ážá "frozen" cgroups ááœáẠááá·áºááœááºážáá±á¬á¡áá« áá¯ááºáááºážá ááºá¡áá áºáá»á¬ážááẠáá»ááºáá»ááºážáááºááá·áºááœá¬ážáááºááŒá áºáááºá - Kbuild ááœááº
áááºááŒá±á¬áááºá kernel ááá¯áááºáá±á¬ááºáá±á¬á¡áá« Clang/LLVM toolkit ááá¯á·ááŒá±á¬ááºážááẠEnvironment variable "LLVM=1" á¡ááœáẠáá¶á·ááá¯ážááŸá¯á Binutils áá¬ážááŸááºážá¡ááœáẠááá¯á¡ááºáá»ááºáá»á¬áž (2.23) ááᯠááŒáŸáá·áºáááºáá¬ážáá«áááºá - kunit á ááºážáááºááŸá¯ááááºáá»á¬ážááŸáá·áºá¡áá° ááá¹ááá áºáᯠ/sys/kernel/debug/kunit/ ááᯠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážáá²ááá¯á· áá±á«ááºážááá·áºáá¬ážáááºá
- ááá·áºááœááºážáá¬ážáá±á¬ kernel boot parameter ááẠpm_debug_messages ( /sys/power/pm_debug_messages ááŸáá·áº áá°áá®áááº) á power management system á áá¯ááºáá±á¬ááºááŸá¯ááá¯ááºáᬠá¡ááŸá¬ážááŸá¬á¡áá»ááºá¡áááºá á¡ááœááºááᯠááœáá·áºáá±ážááẠ( hibernation ááŸáá·áº standby mode ááœáẠááŒá¿áá¬áá»á¬ážááᯠá¡ááŸá¬ážááŸá¬ááá·áºá¡áá« á¡áá¯á¶ážáááºáááº)á
- á¡ááŒáá¯ááºá¡ááá¯áẠI/O áá»ááºááŸá¬ááŒááºááá¯á·
io_uring áá¶á·ááá¯ážáá°áá®ááŸá¯ ááá¯á·ááᯠááá·áºááœááºážáá²á·áááºáSplice() Оatomic buffer ááœá±ážáá»ááºááŸá¯ . - perf áááááá¬á¡á
á¯á¶ááᯠá¡áá¯á¶ážááŒá¯á cgroup áááá¯ááá¯ááºááᯠááá¯ážáááºá¡á±á¬ááºáá¯ááºáá«á ááááºáá perf ááẠáá®ážááŒá¬áž cgroup ááœáẠáá¯ááºáá±á¬ááºá
áá¬áá»á¬ážááá¯áᬠáááá¯ááá¯ááºááŒá¯áá¯ááºááá¯ááºáá²á·ááŒá®áž áááºááŸáááá°áá¬ááœáẠáááºááá·áº cgroup ááá¯á០ááŸá¬áááœá±á·áá«á perf ááẠááá¯á¡áá« ááá°áá¬áá
áºáá¯á
á®á¡ááœáẠcgroup á¡áá»ááºá¡áááºááᯠáááºáá¶áááŸááá¬ážááŒá®ážá áááºááẠcgroup áá
áºáá¯áááºááá¯áá±á¬ áááá¯ááá¯ááºááᯠááŒá¯áá¯ááºááá¯ááºááŒá®áž á¡áá»áá¯ážá¡á
á¬ážá¡ááá¯áẠá
á®ááŒááºážá¡á¬áž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
cgroup á¡á á®áááºáá¶á á¬áá»á¬ážá - cgroupfsá cgroups áá»á¬ážááᯠá á®áá¶ááá·áºááœá²áááºá¡ááœáẠpseudo-FS ááẠááá¯ážáá»á²á·áá¬ážáá±á¬ attributes (xattrs) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá±á«ááºážááá·áºáá¬ážááŒá®áž á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŸá ááá¯ááºááœááºáá°áá»á¬ážá¡ááœáẠáá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá»ááºáá¬ážááá¯ááºáááºá
- cgroup memory controller ááœááº
áááºááŒá±á¬ááẠá¡ááœá²á·áááºáá»á¬ážáᶠáá±ážáá±á¬ááºááá·áº á¡áááá·áºáá¯á¶áž RAM ááá¬áááᯠááááºážááŸááá±ážááá·áº âmemory.lowâ áááºááá¯ážá áááºáá¬áááºáᬠáá¬ááœááºááŸá¯áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á "memory_recursiveprot" ááœá±ážáá»ááºááŸá¯ááŒáá·áº cgroup á¡áááºáááºážá¡ááá·áºááᯠáááºáááºáá±á¬á¡áá«á á¡á±á¬ááºááá¯ááºáž node á¡ááœáẠáááºááŸááºáá¬ážáá±á¬ "memory.low" áááºááá¯ážááẠááá±áž node á¡á¬ážáá¯á¶ážáᶠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá±ááœá¬ážáá«áááºá -
áááºááŒá±á¬áá«áááºá CPU ááŸáá·áº peripheral devices áá»á¬ážááŒá¬ážááœáẠvirtual addresses (SVAá Shared Virtual Addressing) ááᯠáá»áŸáá±áááºá¡ááœáẠ(Unified/User-space-access-intended Accelerator Framework) framework ááẠCPU ááŸáá·áº peripheral devices áá»á¬ážá¡ááŒá¬áž hardware accelerators áá»á¬ážááẠhardware accelerators áá»á¬ážááẠmain CPU ááŸá áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážáááºá
- á
á¬áá¯á¶ážáá± 80 á០100 á¡áá
- áá¬á·ááºáá²áááá¯áá¬áá»á¬áž
- ARM áááá¯áá¬á¡ááœááºá hot-fetch memory á áœááºážáááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá
- RISC-V áááá¯áá¬á¡ááœááºá áá°ááŒááºážáá±á¬ ááááºáá±á«ááºáá»á¬ážááŸáá·áº CPU áá»á¬áž (CPU hotplug) ááᯠáááºááŸá¬ážááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠááá·áºááœááºážáá¬ážáááºá 32-bit RISC-V á¡ááœáẠeBPF JIT ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá
- KVM á§áá·áºáááºáááºáááºážáá»ááºáá»á¬ážááá¯áááºáááºááẠ32-bit ARM á áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠáááºááŸá¬ážááá¯ááºáá«ááŒá®á
- á áœááºážáá±á¬ááºááẠááŒáŸáá·áºáááºááŸá¯áá»á¬áž áááŸááááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááŸá¯ááá á¹á áá»á¬áž áááœá±á·ááŸááááá·áºá¡ááœáẠs390 áááá¯áá¬á¡ááœáẠ"dummy" NUMA á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááᯠáááºááŸá¬ážáá²á·áááºá
- ARM64 á¡ááœááºá ARMv8.4 ááœáẠáááºááŸááºáá¬ážáá±á¬ AMU (Activity Monitors Unit) ááá¯ážáá»á²á·ááŸá¯á¡ááœáẠáá¶á·ááá¯ážáá°áá®ááŸá¯ááŸáá·áº á¡áá¯ááºáá»áááºááá¬ážá áá áºááŸá ááŒáááºááŸá¯ááºážá áá±ážááŒá¯ááŒááºááŒááºážááá¯ááºáá¬á¡áá»ááºáá»á¬ážááœááºáá»ááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á áœááºážáá±á¬ááºáááºáá±á¬ááºáá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
- áá
á¹á
ááºážááááá¬
-
áááºááŒá±á¬áá«áááºá virtio áááºááŸááºáá»ááºáá»á¬ážááŸáá·áºá¡áá® áá±áá¬áááŸááºááá·áºáá»ááºáááºááᯠá¡áá¯á¶ážááŒá¯ááá·áº vDPA á ááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á vDPA á ááºáá»á¬ážááẠáá¯ááºááá¯ááºážááá¯ááºáᬠáá»áááºáááºáá¬ážáá±á¬ á ááºáááááá¬áá»á¬áž ááá¯á·ááá¯áẠáá±á¬á·ááºáá²ááᯠá¡áá¯áá°áá¬ážááá·áº áááá áááááá¬áá»á¬áž ááŒá áºááá¯ááºáááºá - GPIO á
áá
áºááœá²ááœááº
áááºáááºááŸá¬áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºáááºá¡ááœáẠioctl() command á¡áá áºáá áºáá¯ááẠááá·áºá¡á¬áž GPIO ááá¯ááºážá á¡ááŒá±á¡áá±ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž áá¯ááºáááºážá ááºááᯠá¡áááá±ážááœáá·áºááŒá¯áááºá command á¡áá áºááá¯á¡áá¯á¶ážááŒá¯ááŒááºážáá¥ááá¬áá áºáá¯á¡áá±ááŒáá·áºá¡ááá¯ááŒá¯áááºá gpio-watch á¡áá¯á¶ážáááºááŸá¯á - Intel áá®áá®ááá¯áááºáá»á¬ážá¡ááœáẠi915 DRM áááá¯ááºáá¬
áá«áááºááẠTigerlake ("Gen12") áá»á áºááºáá»á¬ážá¡ááœáẠáá°áááºážáá¶á·ááá¯ážááŸá¯ááŸáá·áº OLED áá±á¬ááºáá¶á¡áááºážááááºážáá»á¯ááºááŸá¯á¡ááœáẠáááŠážáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá«áááºá Ice Lakeá Elkhart Lakeá Baytrail ááŸáá·áº Haswell áá»á áºááºáá»á¬ážá¡ááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ áá¶á·ááá¯ážááŸá¯á - amdgpu driver áá²ááŸá¬
áááºááŒá±á¬áááºá ASIC á¡ááœáẠUSBC áá»á áºááºáá²ááá¯á· Firmware áááºááá¯ááºáááºá AMD Ryzen 4000 "Renoir" áá»á áºááºáá»á¬ážá¡ááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ áá¶á·ááá¯ážááŸá¯á ááá¯á¡áá« OLED panel áá»á¬ážááᯠááááºážáá»á¯ááºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ ááŸááá¬áá«ááŒá®á á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážáá»á¬ážááœáẠáá¬ááºážáá²áẠá¡ááŒá±á¡áá±ááᯠááŒááá±ážáá¬ážáááºá - á§áá·áºáááºá áá áºáá»á¬ážááœáẠOpenGL 4 ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áºá áœááºážáááºááᯠVMware virtualization á áá áºáá»á¬ážá¡ááœáẠvmwgfx DRM áááá¯ááºáá¬ááá¯á· ááá·áºááœááºážáá¬ážááẠ(ááááºá OpenGL 3.3 ááᯠáá¶á·ááá¯ážáá¬ážáááº)á
- TI Keystone ááááºáá±á¬ááºážááŒáááŸá¯á áá áºá¡ááœáẠDRM áááá¯ááºáᬠtidss á¡áá áºááᯠáá±á«ááºážááá·áºáá¬ážáááºá
- LCD á¡ááá·áºáá»á¬ážá¡ááœáẠáááºááá·áºáá¬ážáá±á¬ áááá¯ááºáá¬áá»á¬áž- Feixin K101 IM2BA02á Samsung s6e88a0-ams452ef01á Novatek NT35510á Elida KD35T133á EDTá NewEast Optoelectronics WJFH116008Aá Rocktech RKD101HD01II
- áá¬ááºá¡á¬áž á
á®áá¶ááá·áºááœá²ááŸá¯á
áá
áºáá®ááá¯á·
áááºááŒá±á¬áááºá Atom-based Intel Jasper Lake (JSL) ááááºáá±á¬ááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á - Rockchip RK3399á Pine64 PineTab áááºááááºááŸáá·áº á
áááºáá¯ááºážááá¯á·ááᯠá¡ááŒá±áá¶á Pinebook Pro áááºááºáá±á¬á·á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážááá·áºáá¬ážáááºá
PinePhone Allwinner A64 ááá¯á¡ááŒá±áá¶áááºá - á¡áá¶áá¯ááºáá
áºáá»á¬ážááŸáá·áº áá»á
áºááºá¡áá
áºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáááº-
Amlogic AIUá Amlogic T9015á Texas áá°áááᬠTLV320ADCX140á Realtek RT5682á ALC245á Broadcom BCM63XX I2Sá Maxim MAX98360Aá Presonus Studio 1810cá MOTU MicroBook IIcá - ARM áá¯ááºáá»á¬ážááŸáá·áº ááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠQualcomm Snapdragon 865 (SM8250)á IPQ6018á NXP i.MX8M Plusá Kontron âsl28âá 11 i.MX6 TechNexion Pico áá¯ááºááœá±ážáá»ááºááŸá¯áá»á¬ážá Toradex Colibri ááœá±ážáá»ááºá áá¬á¡áá áºáá¯á¶ážáá»áá¯ážá Samsung S7710 Galaxy Xcover 2 ST ááá¯á¡ááŒá±áá¶áá¬ážáá±á¬ -Ericsson u8500á DH á¡á®áááºáááœááºážáá ẠDHCOM SoM ááŸáá·áº PDK2á Renesas M3ULCBá Hoperun HiHopeá Linutronix Testbox v2á PocketBook Touch Lux 3á
-
source: opennet.ru