เบเบฒเบ™เบ›เปˆเบญเบเปเบเปˆเบ™ Linux 5.1

เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, Linus Torvalds เปเบ™เบฐ เบ™เบณ เบเบฒเบ™เบ›เปˆเบญเบเปเบเปˆเบ™ Linux 5.1. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบ—เบตเปˆเบชเบธเบ”: เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš asynchronous I/O io_uring, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ NVDIMM เป€เบ›เบฑเบ™ RAM, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ virtual เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปƒเบ™ Nouveau, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเป‚เบ”เบเบœเปˆเบฒเบ™ fanotify, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ” Zstd. เบฅเบฐเบ”เบฑเบšเปƒเบ™ Btrfs, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ TEO เบ‚เบญเบ‡ cpuidle เปƒเบซเบกเปˆ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ 2038, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบšเบนเบ”เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปเบœเบ™เบ—เบตเปˆเป‚เบ”เบเบšเปเปˆเบกเบต initramfs, เป‚เบกเบ”เบนเบ™ SafeSetID LSM, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒ patches เบชเบปเบ”.

เบ•เบปเป‰เบ™โ€‹เบ•เป เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒ:

  • เบฅเบฐเบšเบปเบšเบเปˆเบญเบเปเบœเปˆเบ™, I/O เปเบฅเบฐเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ
    • เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš asynchronous I/O - io_uring, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™ I/O เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบผเบทเบšเปเปˆเบกเบต buffering. เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบเบปเบ™เป„เบ I/O asynchronous เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™ "aio" เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ I/O buffed, เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป‚เบซเบกเบ” O_DIRECT (เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ buffering เปเบฅเบฐ bypassing the cache), เบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบฅเบฑเบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเปเบ–เป‰เบฒเปƒเบซเป‰ metadata, เปเบฅเบฐ. เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบตเปˆเปƒเบซเบเปˆเบซเบผเบงเบ‡เบเป‰เบญเบ™เบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ.

      เบžเบฒเบเปƒเบ™ API
      เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ io_uring เบžเบฐเบเบฒเบเบฒเบกเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš aio เป€เบเบปเปˆเบฒ. เป‚เบ”เบ เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™ io_uring เปเบกเปˆเบ™เปƒเบเป‰เบŠเบดเบ”เบเบฑเบš SPDK เปเบฅเบฐเปเบกเปˆเบ™เบขเบนเปˆเบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡ libaio เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ io_uring เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰ เบเบฒเบ™เป€เบ›เบตเบ”เป€เบชเบฅเบต, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบญเบšเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš kernel;

    • เปƒเบ™เบเบปเบ™เป„เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป€เบซเบ”เบเบฒเบ™เปƒเบ™ FS fanotify() เป€เบžเบตเปˆเบก เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก superblock เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ เป€เบ›เบทเป‰เบญเบ™ (เป€เบซเบ”เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡, เบฅเบถเบšเปเบฅเบฐเบเป‰เบฒเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต). เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบšเบš recursive เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบเบปเบ™เป„เบ inotify (เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเป„เบ”เป‰เป‚เบ”เบเบœเปˆเบฒเบ™ inotify, เปเบ•เปˆ.
      เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก recursive เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบฎเบฑเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ›เบฐเป„เบงเป‰เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™). เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบœเปˆเบฒเบ™ fanotify;

    • เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ Btrfs เป€เบžเบตเปˆเบก เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเปเบฒเบฅเบฑเบš algorithm zstd, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡ lz4 เบ—เบตเปˆเป„เบงเปเบ•เปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบœเบปเบ™เปเบฅเบฐ xz เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบŠเป‰เบฒเปเบ•เปˆเบ”เบต. เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบกเบทเปˆเบญเปƒเบŠเป‰ zlib, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ "-o compress = zstd:level" เบ—เบฒเบ‡เป€เบฅเบทเบญเบ mount เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบชเปเบฒเบฅเบฑเบš zstd. เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบš, เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เบ•เปเบฒโ€‹เปˆโ€‹เบชเบธเบ”โ€‹เบ—เบตเปˆโ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ”โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป‚เบ”เบ 2.658 เป€เบ—เบทเปˆเบญโ€‹เบ”เป‰เบงเบโ€‹เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ” 438.47 MB/s, เบ„เบงเบฒเบกโ€‹เป„เบง decompression 910.51 MB/s เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เป‚เบžเบโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒ 780 MB, เปเบฅเบฐโ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบชเบนเบ‡โ€‹เบชเบธเบ” 15 เปƒเบซเป‰ 3.126 เป€เบ—เบทเปˆเบญ, เปเบ•เปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ”. เบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡ 37.30 MB/s. unpacking 878.84 MB/s เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ 2547 MB;
    • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบšเบนเบ”เบˆเบฒเบเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เปเบœเบ™เบ—เบตเปˆเบญเบธเบ›เบฐเบเบญเบ™, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰ initramfs. เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบญเบ kernel เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบญเบธเบ›เบฐเบเบญเบ™เปเบœเบ™เบ—เบตเปˆเบญเบธเบ›เบฐเบเบญเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ boot, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ›เบฑเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบฎเบฒเบ. เบเบฒเบ™เปเบšเปˆเบ‡เบžเบฒเบ—เบดเบŠเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบšเบนเบ” โ€œdm-mod.createโ€. เป‚เบกเบ”เบนเบ™เบญเบธเบ›เบฐเบเบญเบ™-mapper เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ›เบฐเบเบญเบšเบกเบต: "crypt", "เบŠเบฑเบเบŠเป‰เบฒ", "linear", "snapshot-origin" เปเบฅเบฐ "verity";
    • เบ—เบธเบ‡ F2FS_NOCOW_FL เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ F2FS เบฎเบฑเบ”เบเบธเบกเปƒเบชเปˆ Flash drives, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบ-on-write เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปƒเบ”เบซเบ™เบถเปˆเบ‡;
    • เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ–เบทเบเป€เบญเบปเบฒเบญเบญเบเบˆเบฒเบ kernel Exofs, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‚เบญเบ‡ ext2, เบ”เบฑเบ”เปเบ›เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš OSD (Object-based Storage Device) เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบงเบฑเบ”เบ–เบธ. เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒ SCSI เบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบงเบฑเบ”เบ–เบธเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบ;
  • Virtualization เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž
    • เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบ PR_SPEC_DISABLE_NOEXEC เปƒเบชเปˆ prctl() เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเบกเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบˆเบกเบ•เบตเป‚เบ”เบเบเบฒเบ™เป‚เบˆเบกเบ•เบต Spectre. lock เบˆเบฐเปเบเปˆเบเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบเบฑเบš exec();
    • เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบกเบ”เบนเบ™ LSM SafeSetID, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ” (CAP_SETUID) เปเบฅเบฐเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบดเบ”เบ—เบดเบฎเบฒเบ. เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เป„เบ”เป‰เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเปƒเบ™ securityfs เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบชเบตเบ‚เบฒเบงเบ‚เบญเบ‡เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ (เปƒเบ™เบฎเบนเบšเปเบšเบš "UID1: UID2");
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบณเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เป‚เบกเบ”เบนเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž (LSMs). เปเบ™เบฐเบ™เปเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ boot kernel "lsm" เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเป‚เบกเบ”เบนเบ™เปƒเบ”เบ–เบทเบเป‚เบซเบฅเบ”เปเบฅเบฐเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ”;
    • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš namespaces เป„เบŸเบฅเปŒเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบš;
    • เบ‚เบฐเบซเบเบฒเบ เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ GCC plugin structleak, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป„เบ”เป‰.
  • เบฅเบฐเบšเบปเบšเบเปˆเบญเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ
    • เบชเปเบฒเบฅเบฑเบšเป€เบ•เบปเป‰เบฒเบฎเบฑเบš เบ›เบฐเบ•เบดเบšเบฑเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเบกเปˆ "SO_BINDTOIFINDEX" เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš
      "SO_BINDTODEVICE", เปเบ•เปˆเบ–เบทเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเป€เบฅเบเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบŠเบทเปˆเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆ;

    • stack mac80211 เป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบ BSSIDs เบซเบผเบฒเบเบญเบฑเบ™ (เบ—เบตเปˆเบขเบนเปˆ MAC) เปƒเบซเป‰เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ”เบฝเบง. เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš WiFi, stack mac80211 เป„เบ”เป‰เป€เบžเบตเปˆเบกเบšเบฑเบ™เบŠเบตเป€เบงเบฅเบฒเบญเบญเบเบญเบฒเบเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเป€เบงเบฅเบฒเบญเบญเบเบญเบฒเบเบฒเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบซเบผเบฒเบเบชเบฐเบ–เบฒเบ™เบต (เป€เบกเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เป‚เบซเบกเบ”เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เบˆเบฑเบ”เบชเบฑเบ™เป€เบงเบฅเบฒเบชเบปเปˆเบ‡เบซเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบžเบทเปˆเบญเบŠเป‰เบฒเบฅเบปเบ‡เบชเบฐเบ–เบฒเบ™เบตเป„เบฎเป‰เบชเบฒเบ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปเบˆเบเบขเบฒเบเป€เบงเบฅเบฒเป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”. เบชเบฐเบ–เบฒเบ™เบต);
    • เป€เบžเบตเปˆเบกโ€‹เบเบปเบ™โ€‹เป„เบ "เบชเบธเบ‚เบฐเบžเบฒเบš devlink", เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ;
  • เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบฐเบšเบปเบš
    • เบ›เบฐเบ•เบดเบšเบฑเบ” เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰ PID เบ„เบทเบ™เปƒเปเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเป‚เบ—เบซเบฒ kill เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เป„เบ”เป‰, เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™, PID เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบเบเป‰เบญเบ™เบเบฒเบ™เบขเบธเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบ–เบทเบเบ„เบญเบšเบ„เบญเบ‡เป‚เบ”เบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™, เปเบฅเบฐเบชเบฑเบ™เบเบฒเบ™เบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เป€เบ–เบดเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™. เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบฅเบฐเบšเบปเบšเปƒเบซเบกเปˆเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ pidfd_send_signal เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒเบˆเบฒเบ /proc/pid เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ PID เบˆเบฐเบ–เบทเบเบ™เปเบฒเบกเบฒเปƒเบŠเป‰เปƒเบซเบกเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš, เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒเบˆเบฐเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป„เบ›เบซเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™;
    • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบธเบ›เบฐเบเบญเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™ (เบ„เบงเบฒเบกเบˆเปเบฒเบ„เบปเบ‡เบ—เบตเปˆ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡ NVDIMMs) เป€เบ›เบฑเบ™ RAM. เบˆเบปเบ™เบเปˆเบงเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, kernel เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ RAM เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ›เบฒเบ”เบ–เบฐเบซเบ™เบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบŠเบฑเบเบŠเป‰เบฒเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ API เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ Linux kernel เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ‚เบญเบ‡ mmap เบชเปเบฒเบฅเบฑเบš dax. เป„เบŸเบฅเปŒ;
    • เป€เบžเบตเปˆเบกเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ CPU เปƒเปเปˆ (cpuidle, เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒ CPU เบชเบฒเบกเบฒเบ”เปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบซเบกเบ”เบ›เบฐเบซเบเบฑเบ”เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เป€เบฅเบดเบเป€เบ—เบปเปˆเบฒเปƒเบ”; เป‚เบซเบกเบ”เบ—เบตเปˆเป€เบฅเบดเบเบเบงเปˆเบฒ, เบ›เบฐเบซเบเบฑเบ”เบซเบผเบฒเบ, เปเบ•เปˆเบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบญเบญเบเบˆเบฒเบเป‚เบซเบกเบ”) - TEO (Timer Events Oriented Governor ). เบˆเบปเบ™เบเปˆเบงเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบชเบญเบ‡ handlers cpuidle เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต - "เป€เบกเบ™เบน" เปเบฅเบฐ "ladder", เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™ heuristics. เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ "เป€เบกเบ™เบน" เบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ heuristic, เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบฐเบเบฝเบกเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เปƒเบซเบกเปˆ. TEO เบ–เบทเบเบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ "เป€เบกเบ™เบน", เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ”เบฝเบงเบเบฑเบ™.
      เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เปƒเบซเบกเปˆเป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต boot โ€œcpuidle.gover=teoโ€;

    • เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡ เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ‚เบญเบ‡โ€‹เบ›เบต 2038โ€‹, เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบฅเบปเป‰เบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” time_t 32-เบšเบดเบ”, เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ™เบฑเบšเป€เบงเบฅเบฒ 32-bit เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ 64-bit. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ time_t 64-bit เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบงเบฅเบฒ เป€เบ•เบปเป‰เบฒเบฎเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ;
    • เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบšเบปเบš patching เบฎเป‰เบญเบ™เบชเปเบฒเบฅเบฑเบšเบซเบผเบฑเบ (เบเบฒเบ™ patching เบชเบปเบ”) เป€เบžเบตเปˆเบก เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฝเบง. เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบˆเบเบขเบฒเบ patches เบชเบฐเบซเบผเบธเบšเป‚เบ”เบเบเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบง, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ patches เบชเบปเบ”เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”, เป€เบŠเบดเปˆเบ‡เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเปˆเบญเบ™เบซเบ™เป‰เบฒเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เปเปˆเบกเบฒเบ•เป‰เบญเบ‡เบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบฑเป‰เบ‡เบชเบธเบ”เบ—เป‰เบฒเบ, เบ•เบญเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ—เบธเบเปเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ•เบดเบ”เบเบฑเบšเบฅเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™ (i. เบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ‚เบญเบ‡ patches เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™ );
    • เบ›เบฐโ€‹เบเบฒเบ” เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰ a.out เปเบฅเบฐ
      เบฅเบถเบšเปเบฅเป‰เบง เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบซเบผเบฑเบเปƒเบ™เบฎเบนเบšเปเบšเบš a.out, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ–เบดเป‰เบกเป„เบงเป‰. เบฎเบนเบšเปเบšเบš a.out เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš Linux เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒ a.out เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Linux เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ•เบปเบงเป‚เบซเบผเบ”เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ a.out เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰;

    • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เปเบฅเบฐเป€เบญเบปเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบปเบ™เป„เบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป‚เบ„เบ‡เบเบฒเบ™ BPF. kernel เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบต patches เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ spinlock เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบเปˆเบญเบ BPF, เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™ BPF;
  • เบญเบธเบ›เบฐเบเบญเบ™
    • เปƒเบ™ Nouveau เบ„เบปเบ™เบ‚เบฑเบš เป€เบžเบตเปˆเบก เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบ, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ CPU เปเบฅเบฐ GPU เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ synchronized เบ—เบปเปˆเบงเป„เบ›. เบฅเบฐเบšเบปเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ virtual เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™ (SVM, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ virtual เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™) เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบ HMM (Heterogeneous memory management) เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ (MMU, เบซเบ™เปˆเบงเบเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ), เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบปเป‰เบ™เบ•เป. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ HMM, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบขเบนเปˆเบฎเปˆเบงเบกเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ GPU เปเบฅเบฐ CPU, เป€เบŠเบดเปˆเบ‡ GPU เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เบ›เบฐเบˆเบธเบšเบฑเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SVM เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš GPU เบ„เบญเบšเบ„เบปเบง Pascal, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบš GPUs Volta เปเบฅเบฐ Turing เป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เปƒเบ™ Nouveau เป€เบžเบตเปˆเบก ioctl เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป„เบ›เบชเบนเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ GPU;
    • เปƒเบ™ Intel DRM driver เบชเปเบฒเบฅเบฑเบš GPU Skylake เปเบฅเบฐเบ•เปเปˆเบกเบฒ (gen9+) เบฅเบงเบก เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป‚เบซเบกเบ” fastboot เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ boot. เป€เบžเบตเปˆเบกเปเบฅเป‰เบง ะฝะพะฒั‹ะต เบ•เบปเบงเบฅเบฐเบšเบธเบญเบธเบ›เบฐเบเบญเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบˆเบธเบฅเบฐเบžเบฒเบเบ‚เบญเบ‡ Coffelake เปเบฅเบฐ Ice Lake. เบชเปเบฒเบฅเบฑเบšเบŠเบดเบšเบเบฒเป€เบŸ เป€เบžเบตเปˆเบก เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GVT (GPU virtualization). เบชเปเบฒเบฅเบฑเบš GPUs virtual เบ›เบฐเบ•เบดเบšเบฑเบ” เบฎเบญเบ‡เบฎเบฑเบš VFIO EDID. เบชเปเบฒเบฅเบฑเบšเปเบœเบ‡ LCD MIPI/DSI เป€เบžเบตเปˆเบก เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš ACPI / PMIC. เบ›เบฐเบ•เบดเบšเบฑเบ” เป‚เปเบ”เป‚เบ—เบฅเบฐเบžเบฒเบšเปƒเปเปˆ 1080p30/50/60 TV;
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš Vega10/20 BACO GPU เบเบฑเบšเป„เบ”เป€เบงเบต amdgpu. เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ Vega 10/20 เปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เบงเบšเบ„เบธเบกเป€เบ„เบทเปˆเบญเบ‡เป€เบขเบฑเบ™ Vega 10. เป€เบžเบตเปˆเบกเบ•เบปเบงเบฅเบฐเบšเบธเบญเบธเบ›เบฐเบเบญเบ™ PCI เปƒเปเปˆเบชเบณเบฅเบฑเบš Picasso GPUs. เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ deadlocks;
    • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เป„เบ”เป€เบงเบต 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 audio codecs, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป€เบงเบ—เบตเบชเบฝเบ‡ Mediatek MT8183;
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš NAND controllers Flash STMicroelectronics FMC2, Amlogic Meson;
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบฎเบฒเบ”เปเบง Habana AI;
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš NXP ENETC gigabit Ethernet controllers เปเบฅเบฐ MediaTek MT7603E (PCIe) เปเบฅเบฐ MT76x8 เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป„เบฎเป‰เบชเบฒเบ.

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบกเบนเบ™เบ™เบดเบ—เบดเบŠเบญเบšเปเบงเป€เบชเบฅเบตเบญเบฒเป€เบกเบฅเบดเบเบฒเบฅเบฒเบ•เบดเบ™ เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ kernel เบŸเบฃเบตเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ 5.1 - Linux-libre 5.1-gnu, เบฅเป‰เบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบŸเบตเบกเปเบงเปเบฅเบฐเป„เบ”เป€เบงเบตเบ—เบตเปˆเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบŸเบฃเบตเบซเบผเบทเบžเบฒเบเบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”, เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเบœเบนเป‰เบœเบฐเบฅเบดเบ”. เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ, เบเบฒเบ™เป‚เบซเบผเบ” blob เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบงเบต mt7603 เปเบฅเบฐ goya. เบญเบฑเบšเป€เบ”เบ”เบฅเบฐเบซเบฑเบ”เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” blob เปƒเบ™เป„เบ”เป€เบงเบตเปเบฅเบฐเบฅเบฐเบšเบปเบšเบเปˆเบญเบ wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk เปเบฅเบฐ touchscreen_dmi. เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” Blob เปƒเบ™เบ•เบปเบงเป‚เบซเบผเบ”เป€เบŸเบตเบกเปเบง lantiq xrx200 เป„เบ”เป‰เบ–เบทเบเบขเบธเบ”เป€เบŠเบปเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเปเบเปˆเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™